[svn:parrot] r44376 - in branches/boehm_gc_2: compilers/ncigen/t compilers/ncigen/t/NCIGENAST config/gen/makefiles include/parrot lib/Parrot lib/Parrot/Ops2c runtime/parrot/library runtime/parrot/library/Configure src src/call src/gc src/interp src/io src/nci src/ops src/pmc src/runcore t/codingstd t/compilers/imcc/syn t/compilers/json t/compilers/pge t/compilers/tge t/configure t/dynoplibs t/dynpmc t/examples t/library t/manifest t/native_pbc t/oo t/op t/perl t/pir t/pmc t/steps/init/hints t/tools t/tools/dev t/tools/install t/tools/pmc2cutils tools/dev

bacek at svn.parrot.org bacek at svn.parrot.org
Tue Feb 23 09:37:14 UTC 2010


Author: bacek
Date: Tue Feb 23 09:37:07 2010
New Revision: 44376
URL: https://trac.parrot.org/parrot/changeset/44376

Log:
Merge branch 'master' into boehm2

Modified:
   branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/struct_00.t
   branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/typedef_00.t
   branches/boehm_gc_2/compilers/ncigen/t/parse_00.t
   branches/boehm_gc_2/compilers/ncigen/t/parse_01.t
   branches/boehm_gc_2/compilers/ncigen/t/parse_02.t
   branches/boehm_gc_2/config/gen/makefiles/root.in
   branches/boehm_gc_2/include/parrot/call.h
   branches/boehm_gc_2/include/parrot/hash.h
   branches/boehm_gc_2/include/parrot/io.h
   branches/boehm_gc_2/include/parrot/oplib.h
   branches/boehm_gc_2/include/parrot/pobj.h
   branches/boehm_gc_2/lib/Parrot/Distribution.pm
   branches/boehm_gc_2/lib/Parrot/Ops2c/Utils.pm
   branches/boehm_gc_2/runtime/parrot/library/Configure/genfile.pir
   branches/boehm_gc_2/runtime/parrot/library/distutils.pir
   branches/boehm_gc_2/src/call/ops.c
   branches/boehm_gc_2/src/gc/gc_ms.c
   branches/boehm_gc_2/src/hash.c
   branches/boehm_gc_2/src/interp/inter_create.c
   branches/boehm_gc_2/src/io/filehandle.c
   branches/boehm_gc_2/src/nci/core_thunks.c
   branches/boehm_gc_2/src/nci/extra_thunks.c
   branches/boehm_gc_2/src/ops/set.ops
   branches/boehm_gc_2/src/pmc/filehandle.pmc
   branches/boehm_gc_2/src/pmc/nci.pmc
   branches/boehm_gc_2/src/pmc/sockaddr.pmc
   branches/boehm_gc_2/src/pmc/socket.pmc
   branches/boehm_gc_2/src/runcore/cores.c
   branches/boehm_gc_2/src/runcore/main.c
   branches/boehm_gc_2/src/runcore/profiling.c
   branches/boehm_gc_2/src/tsq.c
   branches/boehm_gc_2/t/codingstd/c_arg_assert.t
   branches/boehm_gc_2/t/codingstd/c_cppcomments.t
   branches/boehm_gc_2/t/codingstd/c_indent.t
   branches/boehm_gc_2/t/codingstd/c_macro_args.t
   branches/boehm_gc_2/t/codingstd/cuddled_else.t
   branches/boehm_gc_2/t/codingstd/opcode_doc.t
   branches/boehm_gc_2/t/codingstd/perlcritic.t
   branches/boehm_gc_2/t/codingstd/pod_description.t
   branches/boehm_gc_2/t/codingstd/pod_syntax.t
   branches/boehm_gc_2/t/codingstd/trailing_space.t
   branches/boehm_gc_2/t/compilers/imcc/syn/labels.t
   branches/boehm_gc_2/t/compilers/imcc/syn/objects.t
   branches/boehm_gc_2/t/compilers/imcc/syn/op.t
   branches/boehm_gc_2/t/compilers/imcc/syn/scope.t
   branches/boehm_gc_2/t/compilers/imcc/syn/subflags.t
   branches/boehm_gc_2/t/compilers/imcc/syn/veracity.t
   branches/boehm_gc_2/t/compilers/json/from_parrot.t
   branches/boehm_gc_2/t/compilers/pge/00-basic.t
   branches/boehm_gc_2/t/compilers/pge/02-match.t
   branches/boehm_gc_2/t/compilers/pge/03-optable.t
   branches/boehm_gc_2/t/compilers/pge/04-compile.t
   branches/boehm_gc_2/t/compilers/pge/06-grammar.t
   branches/boehm_gc_2/t/compilers/pge/pge-hs.t
   branches/boehm_gc_2/t/compilers/tge/basic.t
   branches/boehm_gc_2/t/compilers/tge/parser.t
   branches/boehm_gc_2/t/configure/008-file_based_configuration.t
   branches/boehm_gc_2/t/dynoplibs/math.t
   branches/boehm_gc_2/t/dynoplibs/obscure.t
   branches/boehm_gc_2/t/dynpmc/foo2.t
   branches/boehm_gc_2/t/dynpmc/gdbmhash.t
   branches/boehm_gc_2/t/dynpmc/subproxy.t
   branches/boehm_gc_2/t/examples/catchall.t
   branches/boehm_gc_2/t/examples/pod.t
   branches/boehm_gc_2/t/examples/tutorial.t
   branches/boehm_gc_2/t/library/cgi_query_hash.t
   branches/boehm_gc_2/t/library/getopt_obj.t
   branches/boehm_gc_2/t/library/mime_base64.t
   branches/boehm_gc_2/t/library/p6object.t
   branches/boehm_gc_2/t/library/pg.t
   branches/boehm_gc_2/t/library/test_class.t
   branches/boehm_gc_2/t/library/test_more.t
   branches/boehm_gc_2/t/manifest/01-basic.t
   branches/boehm_gc_2/t/manifest/02-regenerate_file.t
   branches/boehm_gc_2/t/manifest/03-regenerate_skip.t
   branches/boehm_gc_2/t/manifest/04-alt_file.t
   branches/boehm_gc_2/t/manifest/05-alt_skip.t
   branches/boehm_gc_2/t/native_pbc/header.t
   branches/boehm_gc_2/t/native_pbc/integer.t
   branches/boehm_gc_2/t/native_pbc/string.t
   branches/boehm_gc_2/t/oo/composition.t
   branches/boehm_gc_2/t/oo/metamodel.t
   branches/boehm_gc_2/t/oo/methods.t
   branches/boehm_gc_2/t/oo/mro-c3.t
   branches/boehm_gc_2/t/oo/names.t
   branches/boehm_gc_2/t/oo/new-old.t
   branches/boehm_gc_2/t/oo/new.t
   branches/boehm_gc_2/t/oo/ops.t
   branches/boehm_gc_2/t/oo/root_new.t
   branches/boehm_gc_2/t/oo/subclass.t
   branches/boehm_gc_2/t/op/64bit.t
   branches/boehm_gc_2/t/op/annotate.t
   branches/boehm_gc_2/t/op/cc_params.t
   branches/boehm_gc_2/t/op/integer.t
   branches/boehm_gc_2/t/op/string.t
   branches/boehm_gc_2/t/op/string_cmp.t
   branches/boehm_gc_2/t/op/stringu.t
   branches/boehm_gc_2/t/op/sysinfo.t
   branches/boehm_gc_2/t/perl/Parrot_Test.t
   branches/boehm_gc_2/t/pir/macro.t
   branches/boehm_gc_2/t/pmc/capture.t
   branches/boehm_gc_2/t/pmc/class.t
   branches/boehm_gc_2/t/pmc/eventhandler.t
   branches/boehm_gc_2/t/pmc/filehandle.t
   branches/boehm_gc_2/t/pmc/fixedintegerarray.t
   branches/boehm_gc_2/t/pmc/fixedpmcarray.t
   branches/boehm_gc_2/t/pmc/hash.t
   branches/boehm_gc_2/t/pmc/lexinfo.t
   branches/boehm_gc_2/t/pmc/os.t
   branches/boehm_gc_2/t/pmc/packfileannotation.t
   branches/boehm_gc_2/t/pmc/packfileannotations.t
   branches/boehm_gc_2/t/pmc/parrotinterpreter.t
   branches/boehm_gc_2/t/pmc/ro.t
   branches/boehm_gc_2/t/pmc/stringhandle.t
   branches/boehm_gc_2/t/pmc/sub.t
   branches/boehm_gc_2/t/steps/init/hints/darwin-01.t
   branches/boehm_gc_2/t/tools/dev/pmctree.t
   branches/boehm_gc_2/t/tools/install/02-install_files.t
   branches/boehm_gc_2/t/tools/install/03-lines_to_files.t
   branches/boehm_gc_2/t/tools/pbc_disassemble.t
   branches/boehm_gc_2/t/tools/pmc2cutils/04-dump_pmc.t
   branches/boehm_gc_2/t/tools/pmc2cutils/05-gen_c.t
   branches/boehm_gc_2/tools/dev/nci_thunk_gen.pir

Modified: branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/struct_00.t
==============================================================================
--- branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/struct_00.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/struct_00.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
 
 use lib ('./lib', '../../lib');
 use Parrot::Test::NCIGENAST;
@@ -16,3 +18,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/boehm_gc_2/compilers/ncigen/t/NCIGENAST/typedef_00.t
==============================================================================
--- branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/typedef_00.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/compilers/ncigen/t/NCIGENAST/typedef_00.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
 
 use lib ('./lib', '../../lib');
 use Parrot::Test::NCIGENAST;
@@ -24,3 +26,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/boehm_gc_2/compilers/ncigen/t/parse_00.t
==============================================================================
--- branches/boehm_gc_2/compilers/ncigen/t/parse_00.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/compilers/ncigen/t/parse_00.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
 
 use lib ('./lib', '../../lib');
 use Parrot::Test::NCIGENAST;
@@ -173,3 +175,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/boehm_gc_2/compilers/ncigen/t/parse_01.t
==============================================================================
--- branches/boehm_gc_2/compilers/ncigen/t/parse_01.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/compilers/ncigen/t/parse_01.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
 
 use lib ('./lib', '../../lib');
 use Parrot::Test::NCIGENAST;
@@ -26,3 +28,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/boehm_gc_2/compilers/ncigen/t/parse_02.t
==============================================================================
--- branches/boehm_gc_2/compilers/ncigen/t/parse_02.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/compilers/ncigen/t/parse_02.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id$
 
 use lib ('./lib', '../../lib');
 use Parrot::Test::NCIGENAST;
@@ -70,3 +72,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/boehm_gc_2/config/gen/makefiles/root.in
==============================================================================
--- branches/boehm_gc_2/config/gen/makefiles/root.in	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/config/gen/makefiles/root.in	Tue Feb 23 09:37:07 2010	(r44376)
@@ -283,7 +283,6 @@
     $(LIBRARY_DIR)/Getopt/Obj.pbc \
     $(LIBRARY_DIR)/Iter.pbc \
     $(LIBRARY_DIR)/JSON.pbc \
-    $(LIBRARY_DIR)/data_json.pbc \
     $(LIBRARY_DIR)/Math/Rand.pbc \
     $(LIBRARY_DIR)/MIME/Base64.pbc \
     $(LIBRARY_DIR)/NCI/Utils.pbc \
@@ -527,7 +526,7 @@
 PARROT_CONFIG       = ./parrot_config$(EXE)
 PIRC                = ./pirc$(EXE)
 NQP_RX              = ./parrot-nqp$(EXE)
-NCI_THUNK_GEN	    = ./parrot_nci_thunk_gen$(EXE)
+NCI_THUNK_GEN       = ./parrot_nci_thunk_gen$(EXE)
 
 # Installable executables
 INSTALLABLEPARROT    = ./installable_parrot$(EXE)
@@ -2452,7 +2451,8 @@
     $(ALL_PARROT_LIBS) @opengl_lib@
 
 src/extra_nci_thunks.c : src/nci/extra_thunks.nci $(NCI_THUNK_GEN)
-	$(NCI_THUNK_GEN) --dynext --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
+	$(NCI_THUNK_GEN) --dynext --no-warn-dups \
+	    --output=src/extra_nci_thunks.c <src/nci/extra_thunks.nci
 
 src/extra_nci_thunks$(O) : $(GENERAL_H_FILES)
 

Modified: branches/boehm_gc_2/include/parrot/call.h
==============================================================================
--- branches/boehm_gc_2/include/parrot/call.h	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/include/parrot/call.h	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/include/parrot/hash.h
==============================================================================
--- branches/boehm_gc_2/include/parrot/hash.h	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/include/parrot/hash.h	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/include/parrot/io.h
==============================================================================
--- branches/boehm_gc_2/include/parrot/io.h	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/include/parrot/io.h	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/include/parrot/oplib.h
==============================================================================
--- branches/boehm_gc_2/include/parrot/oplib.h	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/include/parrot/oplib.h	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/include/parrot/pobj.h
==============================================================================
--- branches/boehm_gc_2/include/parrot/pobj.h	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/include/parrot/pobj.h	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/lib/Parrot/Distribution.pm
==============================================================================
--- branches/boehm_gc_2/lib/Parrot/Distribution.pm	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/lib/Parrot/Distribution.pm	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/lib/Parrot/Ops2c/Utils.pm
==============================================================================
--- branches/boehm_gc_2/lib/Parrot/Ops2c/Utils.pm	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/lib/Parrot/Ops2c/Utils.pm	Tue Feb 23 09:37:07 2010	(r44376)
@@ -477,7 +477,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;
@@ -899,7 +899,7 @@
 /* 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
@@ -956,7 +956,7 @@
         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 +964,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 +977,7 @@
     }
     else {
         print $fh <<END_C;
-static void hop_deinit(void) {}
+static void hop_deinit(SHIM_INTERP) {}
 END_C
     }
     return 1;
@@ -1026,11 +1026,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 +1038,7 @@
     }
     /* deinit - free resources */
     else {
-    hop_deinit();
+        hop_deinit(interp);
     }
     return NULL;
 }

Modified: branches/boehm_gc_2/runtime/parrot/library/Configure/genfile.pir
==============================================================================
--- branches/boehm_gc_2/runtime/parrot/library/Configure/genfile.pir	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/runtime/parrot/library/Configure/genfile.pir	Tue Feb 23 09:37:07 2010	(r44376)
@@ -46,17 +46,28 @@
     .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)
-    unless has_verbose goto L1
-    unless verbose goto L1
+    unless has_verbose goto L3
+    unless verbose goto L3
     print "generate "
     say outfile
-  L1:
+  L3:
 .end
 
 .sub 'slurp' :anon

Modified: branches/boehm_gc_2/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/boehm_gc_2/runtime/parrot/library/distutils.pir	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/runtime/parrot/library/distutils.pir	Tue Feb 23 09:37:07 2010	(r44376)
@@ -328,7 +328,7 @@
 
 =cut
 
-.sub 'setup'
+.sub 'setup' :multi()
     .param pmc args :slurpy
     .param pmc kv :slurpy :named
     .local pmc steps
@@ -364,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
@@ -374,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.
@@ -3345,12 +3351,13 @@
 .sub '_command_setup' :anon
     .param string setup
     .local string command
-    command = "parrot setup.pir"
-    $I0 = index setup, "."
+    command = "parrot "
+    $I0 = index setup, '.'
     $S0 = substr setup, $I0
     unless $S0 == '.nqp' goto L1
-    command = "parrot-nqp setup.nqp"
+    command = "parrot-nqp "
   L1:
+    command .= setup
     .return (command)
 .end
 
@@ -4518,10 +4525,15 @@
     .const string srcname = 'tmp.c'
     spew(srcname, source)
     .local string exename
-    $S0 = get_exe()
-    exename = 'tmp' . $S0
+    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 .= " "
@@ -4532,21 +4544,20 @@
     cmd .= cflags
   L1:
     cmd .= " "
+    cmd .= srcname
+    cmd .= " "
     $S0 = get_ldflags()
     cmd .= $S0
     unless has_ldflags goto L2
     cmd .= " "
     cmd .= ldflags
   L2:
-    cmd .= " "
-    cmd .= srcname
     cmd .= " -o "
     cmd .= exename
     system(cmd, verbose :named('verbose'), 1 :named('ignore_error'))
     unlink(srcname, verbose :named('verbose'))
 
-    cmd = "./" . exename
-    $P0 = open cmd, 'rp'
+    $P0 = open exename, 'rp'
     $S0 = $P0.'readall'()
     $P0.'close'()
 

Modified: branches/boehm_gc_2/src/call/ops.c
==============================================================================
--- branches/boehm_gc_2/src/call/ops.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/call/ops.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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)>
@@ -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/boehm_gc_2/src/gc/gc_ms.c
==============================================================================
--- branches/boehm_gc_2/src/gc/gc_ms.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/gc/gc_ms.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -17,6 +17,15 @@
 #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 */
@@ -166,8 +175,8 @@
         FUNC_MODIFIES(*buffer);
 
 static void * gc_ms_reallocate_memory_chunk(PARROT_INTERP,
-    ARGFREE(void *data),
-    size_t newsize)
+    ARGFREE(void *from),
+    size_t size)
         __attribute__nonnull__(1);
 
 static void * gc_ms_reallocate_memory_chunk_zeroed(PARROT_INTERP,
@@ -1094,8 +1103,8 @@
 
 =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 *data,
-size_t newsize)>
+=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)>
@@ -1113,22 +1122,46 @@
 gc_ms_allocate_memory_chunk(PARROT_INTERP, size_t size)
 {
     ASSERT_ARGS(gc_ms_allocate_memory_chunk)
-    return mem_sys_allocate(size);
+    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 *data), size_t newsize)
+gc_ms_reallocate_memory_chunk(PARROT_INTERP, ARGFREE(void *from), size_t size)
 {
     ASSERT_ARGS(gc_ms_reallocate_memory_chunk)
-    return mem_sys_realloc(data, newsize);
+    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)
-    /* FIXME UB of realloc to clear allocated memory */
-    return mem_sys_realloc(NULL, size);
+    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 *
@@ -1146,7 +1179,11 @@
 gc_ms_free_memory_chunk(PARROT_INTERP, ARGFREE(void *data))
 {
     ASSERT_ARGS(gc_ms_free_memory_chunk)
-    mem_sys_free(data);
+#ifdef DETAIL_MEMORY_DEBUG
+    fprintf(stderr, "Freed %p\n", data);
+#endif
+    if (data)
+        free(data);
 }
 
 

Modified: branches/boehm_gc_2/src/hash.c
==============================================================================
--- branches/boehm_gc_2/src/hash.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/hash.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -750,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));
     }
 
@@ -951,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;
 
@@ -1010,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);
 }
 
 
@@ -1040,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;
         }
     }
@@ -1075,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;
         }

Modified: branches/boehm_gc_2/src/interp/inter_create.c
==============================================================================
--- branches/boehm_gc_2/src/interp/inter_create.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/interp/inter_create.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -254,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;
@@ -438,18 +438,18 @@
     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);
@@ -458,10 +458,10 @@
         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;
     }
 
@@ -471,15 +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);
+
             /* Finalyze GC */
             Parrot_gc_finalize(interp);
 
-            parrot_free_vtables(interp);
-            mem_sys_free(interp);
+            mem_internal_free(interp);
         }
     }
 }

Modified: branches/boehm_gc_2/src/io/filehandle.c
==============================================================================
--- branches/boehm_gc_2/src/io/filehandle.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/io/filehandle.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/src/nci/core_thunks.c
==============================================================================
--- branches/boehm_gc_2/src/nci/core_thunks.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/nci/core_thunks.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1040,10 +1040,12 @@
 
 }
 
-
  void
 Parrot_nci_load_core_thunks(PARROT_INTERP)
-{
+;
+ void
+Parrot_nci_load_core_thunks(PARROT_INTERP)
+ {
     PMC *iglobals;
     PMC *nci_funcs;
     PMC *temp_pmc;
@@ -1231,6 +1233,7 @@
     VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_P_Ji);
     VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "PJi"), temp_pmc);
 
+
 }
 
 

Modified: branches/boehm_gc_2/src/nci/extra_thunks.c
==============================================================================
--- branches/boehm_gc_2/src/nci/extra_thunks.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/nci/extra_thunks.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -6192,10 +6192,12 @@
 
 }
 
-
  void
 Parrot_nci_load_extra_thunks(PARROT_INTERP)
-{
+;
+ void
+Parrot_nci_load_extra_thunks(PARROT_INTERP)
+ {
     PMC *iglobals;
     PMC *nci_funcs;
     PMC *temp_pmc;
@@ -7223,6 +7225,7 @@
     VTABLE_set_pointer(interp, temp_pmc, (void *)pcf_i_pitii);
     VTABLE_set_pmc_keyed_str(interp, nci_funcs, CONST_STRING(interp, "ipitii"), temp_pmc);
 
+
 }
 
 

Modified: branches/boehm_gc_2/src/ops/set.ops
==============================================================================
--- branches/boehm_gc_2/src/ops/set.ops	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/ops/set.ops	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/src/pmc/filehandle.pmc
==============================================================================
--- branches/boehm_gc_2/src/pmc/filehandle.pmc	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/pmc/filehandle.pmc	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/src/pmc/nci.pmc
==============================================================================
--- branches/boehm_gc_2/src/pmc/nci.pmc	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/pmc/nci.pmc	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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 */

Modified: branches/boehm_gc_2/src/pmc/sockaddr.pmc
==============================================================================
--- branches/boehm_gc_2/src/pmc/sockaddr.pmc	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/pmc/sockaddr.pmc	Tue Feb 23 09:37:07 2010	(r44376)
@@ -65,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;
         }
     }

Modified: branches/boehm_gc_2/src/pmc/socket.pmc
==============================================================================
--- branches/boehm_gc_2/src/pmc/socket.pmc	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/pmc/socket.pmc	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/src/runcore/cores.c
==============================================================================
--- branches/boehm_gc_2/src/runcore/cores.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/runcore/cores.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1052,7 +1052,7 @@
     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/boehm_gc_2/src/runcore/main.c
==============================================================================
--- branches/boehm_gc_2/src/runcore/main.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/runcore/main.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -55,7 +55,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,
@@ -91,7 +93,8 @@
 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 = (\
@@ -481,7 +484,7 @@
 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_gc_free(interp, interp->evc_func_table);
@@ -580,7 +583,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;
@@ -640,13 +643,13 @@
         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_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_gc_free(interp, cg_lib->op_func_table);
     cg_lib->op_func_table = NULL;
@@ -707,7 +710,7 @@
                 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;
 
@@ -725,7 +728,7 @@
     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);
 
@@ -766,7 +769,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;
@@ -780,7 +783,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);
 }
 
 
@@ -802,7 +805,7 @@
     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    *cg_lib   = init_func(interp, 1);
     op_lib_t    *new_lib;
 
 #if 0
@@ -893,13 +896,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
@@ -910,10 +914,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;
 }
 
@@ -934,7 +938,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/boehm_gc_2/src/runcore/profiling.c
==============================================================================
--- branches/boehm_gc_2/src/runcore/profiling.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/runcore/profiling.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -613,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/boehm_gc_2/src/tsq.c
==============================================================================
--- branches/boehm_gc_2/src/tsq.c	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/src/tsq.c	Tue Feb 23 09:37:07 2010	(r44376)
@@ -402,7 +402,7 @@
 
     COND_DESTROY(queue->queue_condition);
     MUTEX_DESTROY(queue->queue_mutex);
-    mem_sys_free(queue);
+    mem_internal_free(queue);
 }
 
 /*

Modified: branches/boehm_gc_2/t/codingstd/c_arg_assert.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/c_arg_assert.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/c_arg_assert.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/codingstd/c_cppcomments.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/c_cppcomments.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/c_cppcomments.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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

Modified: branches/boehm_gc_2/t/codingstd/c_indent.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/c_indent.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/c_indent.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/codingstd/c_macro_args.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/c_macro_args.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/c_macro_args.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/codingstd/cuddled_else.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/cuddled_else.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/cuddled_else.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/codingstd/opcode_doc.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/opcode_doc.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/opcode_doc.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2005, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/codingstd/perlcritic.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/perlcritic.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/perlcritic.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -80,7 +80,8 @@
              map  { $_->path }
              grep { $_->read !~ m/use v6;/ }
              $dist->get_perl_language_files();
-} else {
+}
+else {
     @files = <@ARGV>;
 }
 

Modified: branches/boehm_gc_2/t/codingstd/pod_description.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/pod_description.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/pod_description.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2009, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/codingstd/pod_syntax.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/pod_syntax.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/pod_syntax.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2009, The Perl Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/codingstd/trailing_space.t
==============================================================================
--- branches/boehm_gc_2/t/codingstd/trailing_space.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/codingstd/trailing_space.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -73,4 +73,7 @@
 # generated by tools/dev/nci_thunk_gen.pir
 src/nci/core_thunks.c
 src/nci/extra_thunks.c
-
+t/examples/pir.t
+t/perl/Parrot_Test.t
+t/library/getopt_obj.t
+t/run/options.t

Modified: branches/boehm_gc_2/t/compilers/imcc/syn/labels.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/labels.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/labels.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/imcc/syn/objects.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/objects.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/objects.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/imcc/syn/op.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/op.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/op.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/imcc/syn/scope.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/scope.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/scope.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/imcc/syn/subflags.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/subflags.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/subflags.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/imcc/syn/veracity.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/imcc/syn/veracity.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/imcc/syn/veracity.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/json/from_parrot.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/json/from_parrot.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/json/from_parrot.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/pge/00-basic.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/00-basic.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/00-basic.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/compilers/pge/02-match.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/02-match.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/02-match.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/pge/03-optable.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/03-optable.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/03-optable.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/pge/04-compile.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/04-compile.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/04-compile.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/pge/06-grammar.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/06-grammar.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/06-grammar.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/compilers/pge/pge-hs.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/pge/pge-hs.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/pge/pge-hs.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/tge/basic.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/tge/basic.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/tge/basic.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/compilers/tge/parser.t
==============================================================================
--- branches/boehm_gc_2/t/compilers/tge/parser.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/compilers/tge/parser.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/configure/008-file_based_configuration.t
==============================================================================
--- branches/boehm_gc_2/t/configure/008-file_based_configuration.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/configure/008-file_based_configuration.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/dynoplibs/math.t
==============================================================================
--- branches/boehm_gc_2/t/dynoplibs/math.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/dynoplibs/math.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! parrot
-# Copyright (C) 2009, Parrot Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -179,8 +179,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/boehm_gc_2/t/dynoplibs/obscure.t
==============================================================================
--- branches/boehm_gc_2/t/dynoplibs/obscure.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/dynoplibs/obscure.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/dynpmc/foo2.t
==============================================================================
--- branches/boehm_gc_2/t/dynpmc/foo2.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/dynpmc/foo2.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/dynpmc/gdbmhash.t
==============================================================================
--- branches/boehm_gc_2/t/dynpmc/gdbmhash.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/dynpmc/gdbmhash.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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,85 @@
 
 =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'
+    $P0.'rm'(filename)
+.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 +110,201 @@
     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')
 
+    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"
     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')
 
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.sub test_exists_keyed
+    .local pmc gdbmhash_lib
+    gdbmhash_lib = loadlib "gdbmhash"
+    .local pmc hash_1
+    hash_1 = new "GDBMHash"
     hash_1 = "gdbm_hash_1"
 
-    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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
-    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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     .local pmc val
     val = new 'String'
-    val = "Wert\n"
+    val = "Wert"
     .local pmc key_pmc
     key_pmc = new 'String'
     key_pmc = "Schluessel"
@@ -337,28 +314,27 @@
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     hash_1["Schluessel"] = -11012005
@@ -367,32 +343,27 @@
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.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_1"
 
     .local pmc key_pmc
@@ -404,62 +375,46 @@
     .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')
+
+    unlink('gdbm_hash_1')
 .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" );
+.sub test_delete_keyed
+    .local pmc gdbmhash_lib
+    gdbmhash_lib = loadlib "gdbmhash"
+    .local pmc hash_1
+    hash_1 = new "GDBMHash"
     hash_1 = "gdbm_hash_1"
 
     .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')
+
+    unlink('gdbm_hash_1')
+.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/boehm_gc_2/t/dynpmc/subproxy.t
==============================================================================
--- branches/boehm_gc_2/t/dynpmc/subproxy.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/dynpmc/subproxy.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/examples/catchall.t
==============================================================================
--- branches/boehm_gc_2/t/examples/catchall.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/examples/catchall.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/examples/pod.t
==============================================================================
--- branches/boehm_gc_2/t/examples/pod.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/examples/pod.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2009, The Perl Foundation.
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -58,19 +58,19 @@
     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: {
@@ -78,7 +78,7 @@
         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/boehm_gc_2/t/examples/tutorial.t
==============================================================================
--- branches/boehm_gc_2/t/examples/tutorial.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/examples/tutorial.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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;
 }
 
@@ -85,7 +85,7 @@
 
     ##Note extra whitespace after 3rd hello
     '21_string_ops_repeat.pir' => << 'END_EXPECTED',
-Hello Hello Hello 
+Hello Hello Hello
 END_EXPECTED
 
     '22_string_ops_length.pir' => << 'END_EXPECTED',
@@ -244,7 +244,8 @@
             @todo = (todo => $reason) if defined $reason;
         }
         example_output_is( $tutorial, $expected, @todo );
-    } else {
+    }
+    else {
         fail($tutorial);
     }
 }

Modified: branches/boehm_gc_2/t/library/cgi_query_hash.t
==============================================================================
--- branches/boehm_gc_2/t/library/cgi_query_hash.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/cgi_query_hash.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/library/getopt_obj.t
==============================================================================
--- branches/boehm_gc_2/t/library/getopt_obj.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/getopt_obj.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #!perl
-# Copyright (C) 2001-2008, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/library/mime_base64.t
==============================================================================
--- branches/boehm_gc_2/t/library/mime_base64.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/mime_base64.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!./parrot
-# Copyright (C) 2006-2008, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/library/p6object.t
==============================================================================
--- branches/boehm_gc_2/t/library/p6object.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/p6object.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/library/pg.t
==============================================================================
--- branches/boehm_gc_2/t/library/pg.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/pg.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/library/test_class.t
==============================================================================
--- branches/boehm_gc_2/t/library/test_class.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/test_class.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/library/test_more.t
==============================================================================
--- branches/boehm_gc_2/t/library/test_more.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/library/test_more.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #!parrot
-# Copyright (C) 2005-2009, Parrot Foundation.
+# Copyright (C) 2005-2010, Parrot Foundation.
 # $Id$
 
 .sub _main :main
@@ -371,13 +371,13 @@
     test_diag( expected )
     is( left, right, 'comparing two pmcs' )
     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
@@ -385,7 +385,7 @@
     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
@@ -401,7 +401,7 @@
     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
@@ -417,7 +417,7 @@
     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
@@ -873,6 +873,7 @@
     test_diag( "Want: null" )
     test_test( 'failing test is_null for String pmc')
 .end
+
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/boehm_gc_2/t/manifest/01-basic.t
==============================================================================
--- branches/boehm_gc_2/t/manifest/01-basic.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/manifest/01-basic.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/manifest/02-regenerate_file.t
==============================================================================
--- branches/boehm_gc_2/t/manifest/02-regenerate_file.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/manifest/02-regenerate_file.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/manifest/03-regenerate_skip.t
==============================================================================
--- branches/boehm_gc_2/t/manifest/03-regenerate_skip.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/manifest/03-regenerate_skip.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/manifest/04-alt_file.t
==============================================================================
--- branches/boehm_gc_2/t/manifest/04-alt_file.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/manifest/04-alt_file.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/manifest/05-alt_skip.t
==============================================================================
--- branches/boehm_gc_2/t/manifest/05-alt_skip.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/manifest/05-alt_skip.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/native_pbc/header.t
==============================================================================
--- branches/boehm_gc_2/t/native_pbc/header.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/native_pbc/header.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2005, 2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/native_pbc/integer.t
==============================================================================
--- branches/boehm_gc_2/t/native_pbc/integer.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/native_pbc/integer.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2005,2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/native_pbc/string.t
==============================================================================
--- branches/boehm_gc_2/t/native_pbc/string.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/native_pbc/string.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2005,2009 Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;

Modified: branches/boehm_gc_2/t/oo/composition.t
==============================================================================
--- branches/boehm_gc_2/t/oo/composition.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/composition.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/metamodel.t
==============================================================================
--- branches/boehm_gc_2/t/oo/metamodel.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/metamodel.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/methods.t
==============================================================================
--- branches/boehm_gc_2/t/oo/methods.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/methods.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! parrot
-# Copyright (C) 2007 - 2008, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME

Modified: branches/boehm_gc_2/t/oo/mro-c3.t
==============================================================================
--- branches/boehm_gc_2/t/oo/mro-c3.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/mro-c3.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! parrot
-# Copyright (C) 2007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME
@@ -95,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'()
@@ -187,7 +187,7 @@
     $P0 = A.'new'()
     $S0 = $P0.'bar'()
     is($S0, 'Method from B', 'Merge Two Pairs - Method A.bar added from B')
-    
+
     .return ()
 
 test_fail:

Modified: branches/boehm_gc_2/t/oo/names.t
==============================================================================
--- branches/boehm_gc_2/t/oo/names.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/names.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/new-old.t
==============================================================================
--- branches/boehm_gc_2/t/oo/new-old.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/new-old.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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,9 @@
 CODE
 ok #test exception from init vtable
 OUT
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/boehm_gc_2/t/oo/new.t
==============================================================================
--- branches/boehm_gc_2/t/oo/new.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/new.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/ops.t
==============================================================================
--- branches/boehm_gc_2/t/oo/ops.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/ops.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/root_new.t
==============================================================================
--- branches/boehm_gc_2/t/oo/root_new.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/root_new.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/oo/subclass.t
==============================================================================
--- branches/boehm_gc_2/t/oo/subclass.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/oo/subclass.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/op/64bit.t
==============================================================================
--- branches/boehm_gc_2/t/op/64bit.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/64bit.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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' )
 

Modified: branches/boehm_gc_2/t/op/annotate.t
==============================================================================
--- branches/boehm_gc_2/t/op/annotate.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/annotate.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/op/cc_params.t
==============================================================================
--- branches/boehm_gc_2/t/op/cc_params.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/cc_params.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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)

Modified: branches/boehm_gc_2/t/op/integer.t
==============================================================================
--- branches/boehm_gc_2/t/op/integer.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/integer.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/op/string.t
==============================================================================
--- branches/boehm_gc_2/t/op/string.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/string.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -182,25 +182,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 +235,7 @@
     is( $S5, "japh", '' )
     is( $S3, "JAPHxyzw", '' )
 .end
- 
+
 .sub chopn_with_set
     set $S4, "JAPHxyzw"
     set $S5, "japhXYZW"
@@ -265,44 +265,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 +347,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 +389,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 +890,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 +951,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 +962,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,7 +976,7 @@
     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' )
@@ -987,29 +987,29 @@
     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 +1021,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 +1033,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 +1148,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 +1169,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 +1422,7 @@
     interp = getinterp
     .local pmc config
     config = interp[.IGLOBALS_CONFIG_HASH]
-    .local int intvalsize 
+    .local int intvalsize
     intvalsize = config['intvalsize']
 
     $S0 = ''
@@ -1436,7 +1436,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 +1450,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 +1529,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 +1577,7 @@
     bors $S1, $S2
     null $S3
     is( $S1, $S3, 'bors NULL string' )
- 
+
     bors $S2, $S1
     is( $S2, $S3, 'bors NULL string' )
 
@@ -1687,7 +1687,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 +1702,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 +1730,7 @@
     bnots $S1, $S2
     null $S3
     is( $S1, $S3, 'bnots NULL string' )
-    
+
     bnots $S2, $S1
     is( $S2, $S3, 'bnots NULL string' )
 .end
@@ -1744,10 +1744,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 +1782,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 +1798,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 +1819,7 @@
     push $P0, "a"
     join $S0, "--", $P0
     is( $S0, "a", 'join' )
-    
+
     new $P0, 'ResizablePMCArray'
     push $P0, "a"
     push $P0, "b"
@@ -1883,21 +1883,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 +1932,7 @@
     set $S0, "ABcd012YZ"
     downcase $S1, $S0
     is( $S1, "abcd012yz", 'downcase' )
-    
+
     downcase $S0
     is( $S0, "abcd012yz", 'downcase inplace' )
 
@@ -1967,7 +1967,7 @@
     set $S0, "aBcd012YZ"
     titlecase $S1, $S0
     is( $S1, "Abcd012yz", 'titlecase' )
-    
+
     titlecase $S0
     is( $S0, "Abcd012yz", 'titlecase inplace' )
 
@@ -2111,7 +2111,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')

Modified: branches/boehm_gc_2/t/op/string_cmp.t
==============================================================================
--- branches/boehm_gc_2/t/op/string_cmp.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/string_cmp.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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
 

Modified: branches/boehm_gc_2/t/op/stringu.t
==============================================================================
--- branches/boehm_gc_2/t/op/stringu.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/stringu.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -96,7 +96,7 @@
     print $S0
     print "\n"
     end
-.end 
+.end
 CODE
 aaaaaa\xf0\x9d\x90\x80-aaaaaa
 OUTPUT

Modified: branches/boehm_gc_2/t/op/sysinfo.t
==============================================================================
--- branches/boehm_gc_2/t/op/sysinfo.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/op/sysinfo.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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',
     },

Modified: branches/boehm_gc_2/t/perl/Parrot_Test.t
==============================================================================
--- branches/boehm_gc_2/t/perl/Parrot_Test.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/perl/Parrot_Test.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pir/macro.t
==============================================================================
--- branches/boehm_gc_2/t/pir/macro.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pir/macro.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/capture.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/capture.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/capture.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/class.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/class.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/class.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/eventhandler.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/eventhandler.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/eventhandler.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,6 +1,6 @@
 #! parrot
-# Copyright (C) 2007-2008, Parrot Foundation.
-# $Id $
+# Copyright (C) 2007-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/pmc/filehandle.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/filehandle.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/filehandle.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/fixedintegerarray.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/fixedintegerarray.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/fixedintegerarray.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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,7 +230,7 @@
 
     a1[1] = 84
     isnt(a1, a2, "Not equal when second element differ")
-    
+
     a2[1] = 84
     is(a1, a2, "Equal when second element same")
 .end

Modified: branches/boehm_gc_2/t/pmc/fixedpmcarray.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/fixedpmcarray.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/fixedpmcarray.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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

Modified: branches/boehm_gc_2/t/pmc/hash.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/hash.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/hash.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/lexinfo.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/lexinfo.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/lexinfo.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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'()

Modified: branches/boehm_gc_2/t/pmc/os.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/os.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/os.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -238,7 +238,8 @@
         end
 .end
 CODE
-} else {
+}
+else {
   SKIP: {
     skip 'broken test TT #457', 1 if $solaris;
 

Modified: branches/boehm_gc_2/t/pmc/packfileannotation.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/packfileannotation.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/packfileannotation.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 =head1 NAME
 

Modified: branches/boehm_gc_2/t/pmc/packfileannotations.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/packfileannotations.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/packfileannotations.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,6 @@
 #!parrot
-# Copyright (C) 2006-2009, Parrot Foundation.
+# Copyright (C) 2006-2010, Parrot Foundation.
+# $Id$
 
 
 =head1 NAME

Modified: branches/boehm_gc_2/t/pmc/parrotinterpreter.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/parrotinterpreter.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/parrotinterpreter.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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')

Modified: branches/boehm_gc_2/t/pmc/ro.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/ro.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/ro.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/stringhandle.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/stringhandle.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/stringhandle.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/pmc/sub.t
==============================================================================
--- branches/boehm_gc_2/t/pmc/sub.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/pmc/sub.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -1425,12 +1425,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 +1637,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 +1694,7 @@
     $P0 = inspect s, 'pos_optional'
     print 'pos_optional '
     say $P0
-    
+
     $P0 = inspect s, 'pos_slurpy'
     print 'pos_slurpy '
     say $P0

Modified: branches/boehm_gc_2/t/steps/init/hints/darwin-01.t
==============================================================================
--- branches/boehm_gc_2/t/steps/init/hints/darwin-01.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/steps/init/hints/darwin-01.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/tools/dev/pmctree.t
==============================================================================
--- branches/boehm_gc_2/t/tools/dev/pmctree.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/dev/pmctree.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 202007, Parrot Foundation.
+# Copyright (C) 2007-2010, Parrot Foundation.
 # $Id$
 # pmctree.t
 

Modified: branches/boehm_gc_2/t/tools/install/02-install_files.t
==============================================================================
--- branches/boehm_gc_2/t/tools/install/02-install_files.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/install/02-install_files.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/tools/install/03-lines_to_files.t
==============================================================================
--- branches/boehm_gc_2/t/tools/install/03-lines_to_files.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/install/03-lines_to_files.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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/boehm_gc_2/t/tools/pbc_disassemble.t
==============================================================================
--- branches/boehm_gc_2/t/tools/pbc_disassemble.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/pbc_disassemble.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2009, Parrot Foundation
+# Copyright (C) 2009-2010, Parrot Foundation.
 # $Id$
 
 =head1 NAME

Modified: branches/boehm_gc_2/t/tools/pmc2cutils/04-dump_pmc.t
==============================================================================
--- branches/boehm_gc_2/t/tools/pmc2cutils/04-dump_pmc.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/pmc2cutils/04-dump_pmc.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -111,7 +111,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 +215,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 +272,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 +376,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 +470,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 +538,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/boehm_gc_2/t/tools/pmc2cutils/05-gen_c.t
==============================================================================
--- branches/boehm_gc_2/t/tools/pmc2cutils/05-gen_c.t	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/t/tools/pmc2cutils/05-gen_c.t	Tue Feb 23 09:37:07 2010	(r44376)
@@ -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

Modified: branches/boehm_gc_2/tools/dev/nci_thunk_gen.pir
==============================================================================
--- branches/boehm_gc_2/tools/dev/nci_thunk_gen.pir	Tue Feb 23 09:25:55 2010	(r44375)
+++ branches/boehm_gc_2/tools/dev/nci_thunk_gen.pir	Tue Feb 23 09:37:07 2010	(r44376)
@@ -28,7 +28,7 @@
 
 .macro_const VERSION 0.01
 
-.macro_const OPTS_GLOBAL_NAME       'options'
+.macro_const OPTS_GLOBAL_NAME 'options'
 
 .sub 'main' :main
     .param pmc argv
@@ -108,6 +108,7 @@
 .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
@@ -118,6 +119,7 @@
     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'
@@ -163,10 +165,14 @@
 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', 'coda', 'all', 'names', and 'signatures'). Default value is 'all'
+                        '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>
@@ -174,7 +180,8 @@
                         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'.
+    --loader-name       set the name used for the loader function. Default value is
+                        'Parrot_load_nci_thunks'.
 USAGE
     exit 0
 .end
@@ -190,6 +197,11 @@
 .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'] = ''
@@ -337,8 +349,6 @@
 /* All our static functions that call in various ways. Yes, terribly
    hackish, but that is just fine */
 
-PARROT_DYNEXT_EXPORT void Parrot_glut_nci_loader(PARROT_INTERP);
-
 HEAD
     .return (head)
 .end
@@ -367,72 +377,58 @@
 .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)
-    .local string code
-    code = 'sprintf'(<<'FN_HEADER', $S0, $S1)
-
+    $S2 = 'sprintf'(<<'DECL', $S0, $S1)
 %s void
 %s(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)));
-
-FN_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
+DECL
+    .return ($S2)
+.end
 
-        inc i
-        goto loop
-    end_loop:
+.sub 'get_dynext_loader'
+    .param pmc sigs
 
-    code = concat code, <<'FN_FOOTER'
+    $S0 = 'get_dynext_loader_decl'(sigs)
+    $S1 = 'get_loader_body'(sigs)
+    $S2 = 'sprintf'(<<'LOADER', $S0, $S0, $S1)
+%s;
+%s {
+%s
 }
-FN_FOOTER
-
-    .return (code)
+LOADER
+    .return ($S2)
 .end
 
-.sub 'get_dynext_loader'
+.sub 'get_dynext_loader_decl'
     .param pmc sigs
 
     $S0 = 'read_from_opts'(.LOADER_STORAGE_CLASS)
     $S1 = 'read_from_opts'(.LOADER_NAME)
-    .local string code
-    code = 'sprintf'(<<'FN_HEADER', $S0, $S1)
-
+    $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;
@@ -444,7 +440,7 @@
             IGLOBALS_NCI_FUNCS);
     PARROT_ASSERT(!(PMC_IS_NULL(nci_funcs)));
 
-FN_HEADER
+HEADER
 
     .local int i, n
     i = 0
@@ -473,10 +469,6 @@
         goto loop
     end_loop:
 
-    code = concat code, <<'FN_FOOTER'
-}
-FN_FOOTER
-
     .return (code)
 .end
 
@@ -717,6 +709,9 @@
     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:
@@ -733,8 +728,12 @@
         # 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
+            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
@@ -765,18 +764,21 @@
     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:
+    .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:
@@ -1088,7 +1090,15 @@
     .param pmc extns :slurpy
 
     .local string dir, file, extn
-    file = clone full_path
+
+    # 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
@@ -1101,20 +1111,22 @@
         substr file, $I1, $I0, ''
     end_extn_loop:
 
-    # TODO: make this portable
-    .const string file_sep = '/'
+    .return (dir, file, extn)
+.end
 
-    strip_dir_loop:
-        $I0 = index file, file_sep
-        if $I0 < 0 goto end_strip_dir_loop
-        inc $I0
-        $S0 = substr file, 0, $I0
-        dir = concat dir, $S0
-        file = substr file, $I0
-        goto strip_dir_loop
-    end_strip_dir_loop:
+.sub 'native_file_separator'
+    load_bytecode 'config.pbc'
+    $P0 = '_config'()
+    $S0 = $P0['slash']
+    .return ($S0)
+.end
 
-    .return (dir, file, extn)
+.sub 'alternate_whitespaces' :anon :immediate
+    $P0 = new ['ResizableStringArray']
+    push $P0, "\t"
+    push $P0, "\n"
+    push $P0, "\r"
+    .return ($P0)
 .end
 
 # }}}


More information about the parrot-commits mailing list