[svn:parrot] r45219 - in trunk: src/pmc tools/build

petdance at svn.parrot.org petdance at svn.parrot.org
Sun Mar 28 01:11:52 UTC 2010


Author: petdance
Date: Sun Mar 28 01:11:50 2010
New Revision: 45219
URL: https://trac.parrot.org/parrot/changeset/45219

Log:
headerizer now runs on PMC files

Modified:
   trunk/src/pmc/addrregistry.pmc
   trunk/src/pmc/arrayiterator.pmc
   trunk/src/pmc/bigint.pmc
   trunk/src/pmc/bignum.pmc
   trunk/src/pmc/boolean.pmc
   trunk/src/pmc/callcontext.pmc
   trunk/src/pmc/capture.pmc
   trunk/src/pmc/class.pmc
   trunk/src/pmc/codestring.pmc
   trunk/src/pmc/complex.pmc
   trunk/src/pmc/continuation.pmc
   trunk/src/pmc/coroutine.pmc
   trunk/src/pmc/default.pmc
   trunk/src/pmc/env.pmc
   trunk/src/pmc/eval.pmc
   trunk/src/pmc/eventhandler.pmc
   trunk/src/pmc/exception.pmc
   trunk/src/pmc/exceptionhandler.pmc
   trunk/src/pmc/exporter.pmc
   trunk/src/pmc/file.pmc
   trunk/src/pmc/filehandle.pmc
   trunk/src/pmc/fixedbooleanarray.pmc
   trunk/src/pmc/fixedfloatarray.pmc
   trunk/src/pmc/fixedintegerarray.pmc
   trunk/src/pmc/fixedpmcarray.pmc
   trunk/src/pmc/fixedstringarray.pmc
   trunk/src/pmc/float.pmc
   trunk/src/pmc/handle.pmc
   trunk/src/pmc/hash.pmc
   trunk/src/pmc/hashiterator.pmc
   trunk/src/pmc/hashiteratorkey.pmc
   trunk/src/pmc/imageio.pmc
   trunk/src/pmc/imageiosize.pmc
   trunk/src/pmc/integer.pmc
   trunk/src/pmc/iterator.pmc
   trunk/src/pmc/key.pmc
   trunk/src/pmc/lexinfo.pmc
   trunk/src/pmc/lexpad.pmc
   trunk/src/pmc/managedstruct.pmc
   trunk/src/pmc/multisub.pmc
   trunk/src/pmc/namespace.pmc
   trunk/src/pmc/nci.pmc
   trunk/src/pmc/null.pmc
   trunk/src/pmc/object.pmc
   trunk/src/pmc/opcode.pmc
   trunk/src/pmc/oplib.pmc
   trunk/src/pmc/orderedhash.pmc
   trunk/src/pmc/orderedhashiterator.pmc
   trunk/src/pmc/os.pmc
   trunk/src/pmc/packfile.pmc
   trunk/src/pmc/packfileannotation.pmc
   trunk/src/pmc/packfileannotations.pmc
   trunk/src/pmc/packfileconstanttable.pmc
   trunk/src/pmc/packfiledirectory.pmc
   trunk/src/pmc/packfilefixupentry.pmc
   trunk/src/pmc/packfilefixuptable.pmc
   trunk/src/pmc/packfilerawsegment.pmc
   trunk/src/pmc/packfilesegment.pmc
   trunk/src/pmc/parrotinterpreter.pmc
   trunk/src/pmc/parrotlibrary.pmc
   trunk/src/pmc/parrotrunningthread.pmc
   trunk/src/pmc/parrotthread.pmc
   trunk/src/pmc/pmcproxy.pmc
   trunk/src/pmc/pointer.pmc
   trunk/src/pmc/resizablebooleanarray.pmc
   trunk/src/pmc/resizablefloatarray.pmc
   trunk/src/pmc/resizableintegerarray.pmc
   trunk/src/pmc/resizablepmcarray.pmc
   trunk/src/pmc/resizablestringarray.pmc
   trunk/src/pmc/retcontinuation.pmc
   trunk/src/pmc/role.pmc
   trunk/src/pmc/scalar.pmc
   trunk/src/pmc/scheduler.pmc
   trunk/src/pmc/schedulermessage.pmc
   trunk/src/pmc/sockaddr.pmc
   trunk/src/pmc/socket.pmc
   trunk/src/pmc/string.pmc
   trunk/src/pmc/stringhandle.pmc
   trunk/src/pmc/stringiterator.pmc
   trunk/src/pmc/sub.pmc
   trunk/src/pmc/task.pmc
   trunk/src/pmc/timer.pmc
   trunk/src/pmc/undef.pmc
   trunk/src/pmc/unmanagedstruct.pmc
   trunk/tools/build/headerizer.pl

Modified: trunk/src/pmc/addrregistry.pmc
==============================================================================
--- trunk/src/pmc/addrregistry.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/addrregistry.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -28,6 +28,10 @@
 #include "parrot/hash.h"
 #include "pmc/pmc_hash.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass AddrRegistry extends Hash provides hash auto_attrs {
 /*
 

Modified: trunk/src/pmc/arrayiterator.pmc
==============================================================================
--- trunk/src/pmc/arrayiterator.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/arrayiterator.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -51,6 +51,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ArrayIterator extends Iterator no_ro auto_attrs {
     ATTR PMC    *array;     /* the array which this Iterator iterates */
     ATTR INTVAL  pos;       /* Current position of iterator for forward iterator */

Modified: trunk/src/pmc/bigint.pmc
==============================================================================
--- trunk/src/pmc/bigint.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/bigint.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -14,9 +14,9 @@
 
 =over 4
 
-=item C<static void bigint_set_long(Interp*, PMC *, long value)>
+=item C<static void bigint_set_long(PARROT_INTERP, PMC *self, long value)>
 
-=item C<static void bigint_set_double(Interp*, PMC *, double value)>
+=item C<static void bigint_set_double(PARROT_INTERP, PMC *self, double value)>
 
 =cut
 
@@ -35,6 +35,187 @@
 } BIGINT;
 
 
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void bigint_abs(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_add_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_add_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_clear(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static INTVAL bigint_cmp(PARROT_INTERP, PMC *self, PMC *value)
+        __attribute__nonnull__(1);
+
+static INTVAL bigint_cmp_int(PARROT_INTERP, PMC *self, INTVAL value)
+        __attribute__nonnull__(1);
+
+static void bigint_div_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_div_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_fdiv_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_fdiv_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static double bigint_get_double(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static long bigint_get_long(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static BIGINT* bigint_get_self(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static char * bigint_get_string(PARROT_INTERP, PMC *self, int base)
+        __attribute__nonnull__(1);
+
+static void bigint_mod_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_mod_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_mul_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_mul_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_neg(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_pow_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_set(PARROT_INTERP, PMC *dest, PMC *src)
+        __attribute__nonnull__(1);
+
+static void bigint_set_double(PARROT_INTERP, PMC *self, double value)
+        __attribute__nonnull__(1);
+
+static void bigint_set_long(PARROT_INTERP, PMC *self, long value)
+        __attribute__nonnull__(1);
+
+static void bigint_set_self(PARROT_INTERP, PMC *self, BIGINT *value)
+        __attribute__nonnull__(1);
+
+static void bigint_set_str(PARROT_INTERP, PMC *self, char *value, int base)
+        __attribute__nonnull__(1);
+
+static void bigint_sub_bigint(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bigint_sub_bigint_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_bigint_abs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_add_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_add_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_clear __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_cmp_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_div_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_div_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_fdiv_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_fdiv_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_get_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_get_long __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_get_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_get_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_mod_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_mod_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_mul_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_mul_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_neg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_pow_bigint_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_set_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_set_long __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_set_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_set_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_sub_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bigint_sub_bigint_int __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 */
+/* HEADERIZER HFILE: none */
+
 static void
 bigint_init(PARROT_INTERP, PMC *self) {
     BIGINT * const bi = mem_gc_allocate_zeroed_typed(interp, BIGINT);
@@ -323,6 +504,8 @@
     mpz_neg(bi_dest->b, bi_self->b);
 }
 
+/* HEADERIZER STOP */
+
 #else /* ifdef PARROT_HAS_GMP */
 
 typedef struct BIGINT {
@@ -389,7 +572,7 @@
         "no bigint lib loaded");
 }
 
-static long
+static int
 bigint_get_bool(PARROT_INTERP, PMC *self) {
     Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_LIBRARY_ERROR,
         "no bigint lib loaded");

Modified: trunk/src/pmc/bignum.pmc
==============================================================================
--- trunk/src/pmc/bignum.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/bignum.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -41,91 +41,112 @@
 
 =over 4
 
-=item C<static void bignum_init(Interp*, PMC *self)>
+=item C<static void bignum_init(PARROT_INTERP, PMC *self)>
 
-=item C<static void bignum_clear(Interp*, PMC *self)>
+=item C<static void bignum_clear(PARROT_INTERP, PMC *self)>
 
-=item C<static void bignum_set(Interp*, PMC *dest, PMC *src)>
+=item C<static void bignum_set(PARROT_INTERP, PMC *dest, PMC *src)>
 
-=item C<static void bignum_set_si(Interp*, PMC *self, long value)>
+=item C<static void bignum_set_si(PARROT_INTERP, PMC *self, long value)>
 
-=item C<static void bignum_set_ui(Interp*, PMC *self, unsigned long value)>
+=item C<static void bignum_set_ui(PARROT_INTERP, PMC *self, unsigned long
+value)>
 
-=item C<static void bignum_set_float(Interp*, PMC *self, FLOATVAL value)>
+=item C<static void bignum_set_float(PARROT_INTERP, PMC *self, FLOATVAL value)>
 
-=item C<static void bignum_set_double(Interp*, PMC *self, double value)>
+=item C<static void bignum_set_double(PARROT_INTERP, PMC *self, double value)>
 
-=item C<static void bignum_set_str(Interp*, PMC *self, char *value, int base)>
+=item C<static void bignum_set_str(PARROT_INTERP, PMC *self, char *value, int
+base)>
 
-=item C<static void bignum_set_bigint(Interp*, PMC *self, struct BIGINT *value)>
+=item C<static void bignum_set_bigint(PARROT_INTERP, PMC *self, struct BIGINT
+*value)>
 
-=item C<static BIGNUM* bignum_get_self(Interp*, PMC *self)>
+=item C<static BIGNUM* bignum_get_self(PARROT_INTERP, PMC *self)>
 
-=item C<static void bignum_set_self(Interp*, PMC *self, BIGNUM *value)>
+=item C<static void bignum_set_self(PARROT_INTERP, PMC *self, BIGNUM *value)>
 
-=item C<static long bignum_get_si(Interp*, PMC *self)>
+=item C<static long bignum_get_si(PARROT_INTERP, PMC *self)>
 
-=item C<static unsigned long bignum_get_ui(Interp*, PMC *self)>
+=item C<static unsigned long bignum_get_ui(PARROT_INTERP, PMC *self)>
 
-=item C<static int bignum_get_bool(Interp*, PMC *self)>
+=item C<static INTVAL bignum_get_bool(PARROT_INTERP, PMC *self)>
 
-=item C<static char* bignum_get_string(Interp*, PMC *self, int base)>
+=item C<static char * bignum_get_string(PARROT_INTERP, PMC *self, int base)>
 
-=item C<static char* bignum_get_string_size(Interp*, PMC *self, int base, int digits)>
+=item C<static char * bignum_get_string_size(PARROT_INTERP, PMC *self, int base,
+int digits)>
 
-=item C<static double bignum_get_double(Interp*, PMC *self)>
+=item C<static double bignum_get_double(PARROT_INTERP, PMC *self)>
 
-=item C<static FLOATVAL bignum_get_float(Interp*, PMC *self)>
+=item C<static FLOATVAL bignum_get_float(PARROT_INTERP, PMC *self)>
 
 =item C<static BIGINT bignum_get_bigint(Interp*, PMC *self)>
 
-=item C<static void bignum_add_bignum(Interp*, PMC *self, PMC *value, PMC *dest)>
+=item C<static void bignum_add_bignum(PARROT_INTERP, PMC *self, PMC *value, PMC
+*dest)>
 
-=item C<static void bignum_add_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_add_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
-=item C<static void bignum_add_bignum_float(Interp*, PMC *self, FLOATVAL value, PMC *dest)>
+=item C<static void bignum_add_bignum_float(PARROT_INTERP, PMC *self, FLOATVAL
+value, PMC *dest)>
 
-=item C<static void bignum_sub_bignum(Interp*, PMC *self, PMC *value, PMC *dest)>
+=item C<static void bignum_sub_bignum(PARROT_INTERP, PMC *self, PMC *value, PMC
+*dest)>
 
-=item C<static void bignum_sub_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_sub_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
-=item C<static void bignum_sub_bignum_float(Interp*, PMC *self, FLOATVAL value, PMC *dest)>
+=item C<static void bignum_sub_bignum_float(PARROT_INTERP, PMC *self, FLOATVAL
+value, PMC *dest)>
 
-=item C<static void bignum_mul_bignum(Interp*, PMC *self, PMC *value, PMC *dest)>
+=item C<static void bignum_mul_bignum(PARROT_INTERP, PMC *self, PMC *value, PMC
+*dest)>
 
-=item C<static void bignum_mul_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_mul_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
-=item C<static void bignum_mul_bignum_float(Interp*, PMC *self, FLOATVAL value, PMC *dest)>
+=item C<static void bignum_mul_bignum_float(PARROT_INTERP, PMC *self, FLOATVAL
+value, PMC *dest)>
 
-=item C<static void bignum_pow_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_pow_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
 =item C<static void bignum_check_divide_zero(Interp*, PMC *value)>
 
-=item C<static void bignum_div_bignum(Interp*, PMC *self, PMC *value, PMC *dest)>
+=item C<static void bignum_div_bignum(PARROT_INTERP, PMC *self, PMC *value, PMC
+*dest)>
 
-=item C<static void bignum_div_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_div_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
-=item C<static void bignum_div_bignum_float(Interp*, PMC *self, FLOATVAL value, PMC *dest)>
+=item C<static void bignum_div_bignum_float(PARROT_INTERP, PMC *self, FLOATVAL
+value, PMC *dest)>
 
-=item C<static void bignum_fdiv_bignum(Interp*, PMC *self, PMC *value, PMC *dest)>
+=item C<static void bignum_fdiv_bignum(PARROT_INTERP, PMC *self, PMC *value, PMC
+*dest)>
 
-=item C<static void bignum_fdiv_bignum_int(Interp*, PMC *self, INTVAL value, PMC *dest)>
+=item C<static void bignum_fdiv_bignum_int(PARROT_INTERP, PMC *self, INTVAL
+value, PMC *dest)>
 
-=item C<static INTVAL bignum_cmp(Interp*, PMC *self, PMC *value)>
+=item C<static INTVAL bignum_cmp(PARROT_INTERP, PMC *self, PMC *value)>
 
-=item C<static INTVAL bignum_cmp_double(Interp*, PMC *self, double value)>
+=item C<static INTVAL bignum_cmp_double(PARROT_INTERP, PMC *self, double value)>
 
-=item C<static INTVAL bignum_cmp_int(Interp*, PMC *self, INTVAL value)>
+=item C<static INTVAL bignum_cmp_int(PARROT_INTERP, PMC *self, INTVAL value)>
 
-=item C<static INTVAL bignum_cmp_ulong(Interp*, PMC *self, unsigned long value)>
+=item C<static INTVAL bignum_cmp_ulong(PARROT_INTERP, PMC *self, unsigned long
+value)>
 
-=item C<static void bignum_abs(Interp*, PMC *self, PMC *dest)>
+=item C<static void bignum_abs(PARROT_INTERP, PMC *self, PMC *dest)>
 
-=item C<static void bignum_neg(Interp*, PMC *self, PMC *dest)>
+=item C<static void bignum_neg(PARROT_INTERP, PMC *self, PMC *dest)>
 
-=item C<static INTVAL bignum_get_default_prec(Interp*, PMC *self)>
+=item C<static INTVAL bignum_get_default_prec(PARROT_INTERP, PMC *self)>
 
-=item C<static void bignum_set_default_prec(Interp*, PMC *self, INTVAL prec)>
+=item C<static void bignum_set_default_prec(PARROT_INTERP, PMC *self, INTVAL
+prec)>
 
 =cut
 
@@ -135,13 +156,6 @@
 #  undef PARROT_HAS_GMP /* splint barfs on the gmp.h header */
 #endif /* S_SPLINT_S */
 
-/* Uncomment to easily disable it */
-/*
-#ifdef PARROT_HAS_GMP
-#  undef PARROT_HAS_GMP
-#endif
-*/
-#undef PARROT_BIGNUM_CAN_BIGINT
 
 #ifdef PARROT_HAS_GMP
 #  include "pmc_bigint.h"
@@ -151,6 +165,517 @@
 } BIGNUM;
 #endif
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void bignum_abs(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_abs(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_add_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_clear(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static void bignum_clear(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp(PARROT_INTERP, PMC *self, PMC *value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp(PARROT_INTERP, PMC *self, PMC *value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp_double(PARROT_INTERP, PMC *self, double value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp_float(PARROT_INTERP, PMC *self, FLOATVAL value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp_int(PARROT_INTERP, PMC *self, INTVAL value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp_int(PARROT_INTERP, PMC *self, INTVAL value)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_cmp_ulong(PARROT_INTERP,
+    PMC *self,
+    unsigned long value)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_div_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_fdiv_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_fdiv_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_fdiv_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_fdiv_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_fdiv_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_get_bool(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_get_default_prec(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static INTVAL bignum_get_default_prec(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static double bignum_get_double(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static double bignum_get_double(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static FLOATVAL bignum_get_float(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static BIGNUM* bignum_get_self(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static BIGNUM* bignum_get_self(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static long bignum_get_si(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static long bignum_get_si(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static char * bignum_get_string(PARROT_INTERP, PMC *self, int base)
+        __attribute__nonnull__(1);
+
+static char * bignum_get_string(PARROT_INTERP, PMC *self, int base)
+        __attribute__nonnull__(1);
+
+static char * bignum_get_string_size(PARROT_INTERP,
+    PMC *self,
+    int base,
+    int digits)
+        __attribute__nonnull__(1);
+
+static char * bignum_get_string_size(PARROT_INTERP,
+    PMC *self,
+    int base,
+    int digits)
+        __attribute__nonnull__(1);
+
+static unsigned long bignum_get_ui(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static unsigned long bignum_get_ui(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static void bignum_init(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static void bignum_init(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_mul_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_neg(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_neg(PARROT_INTERP, PMC *self, PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_pow_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_pow_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_pow_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_set(PARROT_INTERP, PMC *dest, PMC *src)
+        __attribute__nonnull__(1);
+
+static void bignum_set(PARROT_INTERP, PMC *dest, PMC *src)
+        __attribute__nonnull__(1);
+
+static void bignum_set_bigint(PARROT_INTERP,
+    PMC *self,
+    struct BIGINT *value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_default_prec(PARROT_INTERP, PMC *self, INTVAL prec)
+        __attribute__nonnull__(1);
+
+static void bignum_set_default_prec(PARROT_INTERP, PMC *self, INTVAL prec)
+        __attribute__nonnull__(1);
+
+static void bignum_set_double(PARROT_INTERP, PMC *self, double value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_double(PARROT_INTERP, PMC *self, double value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_float(PARROT_INTERP, PMC *self, FLOATVAL value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_self(PARROT_INTERP, PMC *self, BIGNUM *value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_self(PARROT_INTERP, PMC *self, BIGNUM *value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_si(PARROT_INTERP, PMC *self, long value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_si(PARROT_INTERP, PMC *self, long value)
+        __attribute__nonnull__(1);
+
+static void bignum_set_str(PARROT_INTERP, PMC *self, char *value, int base)
+        __attribute__nonnull__(1);
+
+static void bignum_set_str(PARROT_INTERP, PMC *self, char *value, int base)
+        __attribute__nonnull__(1);
+
+static void bignum_set_ui(PARROT_INTERP, PMC *self, unsigned long value)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum(PARROT_INTERP,
+    PMC *self,
+    PMC *value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum_float(PARROT_INTERP,
+    PMC *self,
+    FLOATVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+static void bignum_sub_bignum_int(PARROT_INTERP,
+    PMC *self,
+    INTVAL value,
+    PMC *dest)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_bignum_abs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_abs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_add_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_clear __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_clear __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_cmp_ulong __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_div_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_fdiv_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_fdiv_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_fdiv_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_fdiv_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_fdiv_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_bool __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_default_prec __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_default_prec __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_si __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_si __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_string_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_string_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_ui __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_get_ui __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_init __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_mul_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_neg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_neg __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_pow_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_pow_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_pow_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_bigint __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_default_prec __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_default_prec __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_double __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_self __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_si __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_si __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_set_ui __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_bignum_sub_bignum_int __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 */
+
+/* Uncomment to easily disable it */
+/*
+#ifdef PARROT_HAS_GMP
+#  undef PARROT_HAS_GMP
+#endif
+*/
+#undef PARROT_BIGNUM_CAN_BIGINT
+
 static void
 bignum_init(PARROT_INTERP, PMC *self) {
 #ifdef PARROT_HAS_GMP
@@ -263,7 +788,7 @@
     Parrot_ex_throw_from_c_args(interp, NULL, 1, "bignum_get_ui: number too big");
 }
 
-static int
+static INTVAL
 bignum_get_bool(PARROT_INTERP, PMC *self) {
     BIGNUM *bn;
     GETATTR_BigNum_bn(interp, self, bn);
@@ -641,7 +1166,7 @@
     THROW_NYI;
 }
 
-static long
+static INTVAL
 bignum_get_bool(PARROT_INTERP, PMC *self) {
     THROW_NYI;
 }

Modified: trunk/src/pmc/boolean.pmc
==============================================================================
--- trunk/src/pmc/boolean.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/boolean.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,8 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+
 pmclass Boolean extends Integer provides boolean provides scalar auto_attrs {
 
 /*

Modified: trunk/src/pmc/callcontext.pmc
==============================================================================
--- trunk/src/pmc/callcontext.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/callcontext.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -52,6 +52,84 @@
 
 #define HLL_TYPE(i) Parrot_get_ctx_HLL_type(interp, (i))
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static FLOATVAL autobox_floatval(PARROT_INTERP, Pcc_cell *cell)
+        __attribute__nonnull__(1);
+
+static INTVAL autobox_intval(PARROT_INTERP, Pcc_cell *cell)
+        __attribute__nonnull__(1);
+
+static PMC * autobox_pmc(PARROT_INTERP, Pcc_cell *cell)
+        __attribute__nonnull__(1);
+
+static STRING * autobox_string(PARROT_INTERP, Pcc_cell *cell)
+        __attribute__nonnull__(1);
+
+static void ensure_positionals_storage(PARROT_INTERP,
+    ARGIN(PMC *self),
+    INTVAL size)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static Pcc_cell* get_cell_at(PARROT_INTERP, ARGIN(PMC *self), INTVAL key)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static Hash * get_hash(PARROT_INTERP, ARGIN(PMC *SELF))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static PMC * get_named_names(PARROT_INTERP, ARGIN(PMC *SELF))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static void mark_cell(PARROT_INTERP, ARGIN(Pcc_cell *c))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static void mark_hash(PARROT_INTERP, ARGIN(Hash *h))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+static void mark_positionals(PARROT_INTERP, ARGIN(PMC *self))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_autobox_floatval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_autobox_intval __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_autobox_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_autobox_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ensure_positionals_storage __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_get_cell_at __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_get_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(SELF))
+#define ASSERT_ARGS_get_named_names __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(SELF))
+#define ASSERT_ARGS_mark_cell __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(c))
+#define ASSERT_ARGS_mark_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(h))
+#define ASSERT_ARGS_mark_positionals __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(self))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 static void
 ensure_positionals_storage(PARROT_INTERP, ARGIN(PMC *self), INTVAL size)
 {

Modified: trunk/src/pmc/capture.pmc
==============================================================================
--- trunk/src/pmc/capture.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/capture.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -18,6 +18,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 #define CAPTURE_array_CREATE(i, obj) \
     do { \
         GETATTR_Capture_array((i), (obj), array); \

Modified: trunk/src/pmc/class.pmc
==============================================================================
--- trunk/src/pmc/class.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/class.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -94,6 +94,55 @@
 #include "pmc/pmc_object.h"
 #include "pmc/pmc_namespace.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void build_attrib_index(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+static int cache_class_attribs(PARROT_INTERP,
+    PMC *cur_class,
+    PMC *attrib_index,
+    PMC *cache,
+    int cur_index)
+        __attribute__nonnull__(1);
+
+static void calculate_mro(PARROT_INTERP, PMC *SELF, INTVAL num_parents)
+        __attribute__nonnull__(1);
+
+static void init_class_from_hash(PARROT_INTERP, PMC *self, PMC *info)
+        __attribute__nonnull__(1);
+
+static void initialize_parents(PARROT_INTERP, PMC *object, PMC *all_parents)
+        __attribute__nonnull__(1);
+
+static void initialize_parents_pmc(PARROT_INTERP,
+    PMC *object,
+    PMC *all_parents,
+    PMC *init)
+        __attribute__nonnull__(1);
+
+static STRING * make_class_name(PARROT_INTERP, PMC *SELF)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_build_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_cache_class_attribs __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_calculate_mro __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_init_class_from_hash __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_initialize_parents __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_initialize_parents_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_make_class_name __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 */
+
 static int
 cache_class_attribs(PARROT_INTERP, PMC *cur_class, PMC *attrib_index,
     PMC *cache, int cur_index)

Modified: trunk/src/pmc/codestring.pmc
==============================================================================
--- trunk/src/pmc/codestring.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/codestring.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -34,6 +34,10 @@
 #  include <unicode/uchar.h>
 #endif
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass CodeString extends String provides string auto_attrs {
     ATTR PMC *linepos;            /* start of line positions */
 

Modified: trunk/src/pmc/complex.pmc
==============================================================================
--- trunk/src/pmc/complex.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/complex.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -22,6 +22,23 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void complex_check_divide_zero(PARROT_INTERP, PMC *value)
+        __attribute__nonnull__(1);
+
+static void float_check_divide_zero(PARROT_INTERP, FLOATVAL value)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_complex_check_divide_zero __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_float_check_divide_zero __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<static void
@@ -264,8 +281,8 @@
           case enum_class_FixedIntegerArray:
           case enum_class_ResizableIntegerArray:
             if (VTABLE_get_integer(interp, initializer) == 2) {
-                FLOATVAL re = VTABLE_get_number_keyed_int(interp, initializer, 0);
-                FLOATVAL im = VTABLE_get_number_keyed_int(interp, initializer, 1);
+                const FLOATVAL re = VTABLE_get_number_keyed_int(interp, initializer, 0);
+                const FLOATVAL im = VTABLE_get_number_keyed_int(interp, initializer, 1);
                 SET_ATTR_re(INTERP, SELF, re);
                 SET_ATTR_im(INTERP, SELF, im);
                 break;
@@ -273,7 +290,7 @@
             /* else let it fall to default */
           default:
             if (VTABLE_isa(interp, initializer, CONST_STRING(interp, "String"))) {
-                STRING * s = VTABLE_get_string(interp, initializer);
+                STRING * const s = VTABLE_get_string(interp, initializer);
                 SELF.set_string_native(s);
             }
             else {

Modified: trunk/src/pmc/continuation.pmc
==============================================================================
--- trunk/src/pmc/continuation.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/continuation.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -36,6 +36,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 
 /*
  * A Continuation (and RetContinuation, ExceptionHandler) has in its

Modified: trunk/src/pmc/coroutine.pmc
==============================================================================
--- trunk/src/pmc/coroutine.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/coroutine.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -32,6 +32,19 @@
 
 #include "parrot/oplib/ops.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void print_sub_name(PARROT_INTERP, PMC *sub_pmc)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_print_sub_name __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 */
+
+
 static void
 print_sub_name(PARROT_INTERP, PMC *sub_pmc)
 {

Modified: trunk/src/pmc/default.pmc
==============================================================================
--- trunk/src/pmc/default.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/default.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -26,9 +26,60 @@
 /* undef 'interface' to keep MSVC happy */
 #undef interface
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static STRING * caller(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
+        __attribute__nonnull__(1);
+
+PARROT_DOES_NOT_RETURN
+static void cant_do_method(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), int index)
+        __attribute__nonnull__(1);
+
+PARROT_DOES_NOT_RETURN
+static void cant_do_write_method(PARROT_INTERP,
+    ARGIN_NULLOK(PMC *pmc),
+    int index)
+        __attribute__nonnull__(1);
+
+static INTVAL check_set_std_props(PARROT_INTERP,
+    PMC *pmc,
+    STRING *key,
+    PMC *value)
+        __attribute__nonnull__(1);
+
+static INTVAL does_isa(PARROT_INTERP,
+    const STRING *method,
+    const STRING *what)
+        __attribute__nonnull__(1);
+
+static INTVAL has_pending_std_props(ARGIN(const PMC *self))
+        __attribute__nonnull__(1);
+
+static PMC* make_prop_hash(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_caller __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_cant_do_method __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_cant_do_write_method __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_check_set_std_props __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_does_isa __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_has_pending_std_props __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(self))
+#define ASSERT_ARGS_make_prop_hash __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<static STRING *caller(PARROT_INTERP, PMC *pmc)>
+=item C<static STRING * caller(PARROT_INTERP, PMC *pmc)>
 
 Returns a C string for the name of C<*pmc>.
 
@@ -37,18 +88,17 @@
 */
 
 static STRING *
-caller(PARROT_INTERP, PMC *pmc /*NULLOK*/)
+caller(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc))
 {
     STRING * const null_str = CONST_STRING(interp, "(null)");
 
-    return pmc && pmc->vtable && pmc->vtable->whoami
+    return !PMC_IS_NULL(pmc) && pmc->vtable && pmc->vtable->whoami
                 ? VTABLE_name(interp, pmc) : null_str;
 }
 
 /*
 
-=item C<static void cant_do_method(PARROT_INTERP, PMC *pmc,
-                                   int index)>
+=item C<static void cant_do_method(PARROT_INTERP, PMC *pmc, int index)>
 
 Throws an exception "$methname() not implemented in class '$class'", used by
 all unimplemented messages.
@@ -59,7 +109,7 @@
 
 PARROT_DOES_NOT_RETURN
 static void
-cant_do_method(PARROT_INTERP, PMC *pmc /*NULLOK*/, int index)
+cant_do_method(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), int index)
 {
     Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_ILL_INHERIT,
             "%s() not implemented in class '%Ss'",
@@ -70,8 +120,7 @@
 
 /*
 
-=item C<static void cant_do_write_method(PARROT_INTERP, PMC *pmc,
-                                   int index)>
+=item C<static void cant_do_write_method(PARROT_INTERP, PMC *pmc, int index)>
 
 Throws an exception "$methname() on read-only instance of '$class'", used by
 all updating messages on read-only instances.
@@ -82,7 +131,7 @@
 
 PARROT_DOES_NOT_RETURN
 static void
-cant_do_write_method(PARROT_INTERP, PMC *pmc /*NULLOK*/, int index)
+cant_do_write_method(PARROT_INTERP, ARGIN_NULLOK(PMC *pmc), int index)
 {
     Parrot_ex_throw_from_c_args(interp, NULL, EXCEPTION_WRITE_TO_CONSTCLASS,
             "%s() in read-only instance of '%Ss'",
@@ -92,8 +141,8 @@
 
 /*
 
-=item C<static INTVAL
-check_set_std_props(PARROT_INTERP, PMC *pmc, STRING *key, PMC *value)>
+=item C<static INTVAL check_set_std_props(PARROT_INTERP, PMC *pmc, STRING *key,
+PMC *value)>
 
 Called from C<setprop()>.
 
@@ -156,8 +205,7 @@
 
 /*
 
-=item C<static INTVAL
-has_pending_std_props(ARGIN(const PMC *self))>
+=item C<static INTVAL has_pending_std_props(const PMC *self)>
 
 Returns true if propagate_std_props() would create a non-empty prophash.
 
@@ -199,8 +247,7 @@
 
 /*
 
-=item C<static PMC *
-make_prop_hash(PARROT_INTERP, PMC *self)>
+=item C<static PMC* make_prop_hash(PARROT_INTERP, PMC *self)>
 
 Create a property hash for C<self>. Returns the created hash. Inferred
 properties will be added to the hash and it will be set as
@@ -221,8 +268,8 @@
 
 /*
 
-=item C<static INTVAL
-does_isa(PARROT_INTERP, STRING *method, STRING *what)>
+=item C<static INTVAL does_isa(PARROT_INTERP, const STRING *method, const STRING
+*what)>
 
 Compares C<*method> and C<*what>.
 Returns true (1) if B<method> is found in B<what>, false (0) otherwise.

Modified: trunk/src/pmc/env.pmc
==============================================================================
--- trunk/src/pmc/env.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/env.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -35,6 +35,11 @@
 #  endif /* __APPLE_CC__ */
 #endif /* !WIN32 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
+
 static PMC *Env_PMC;
 pmclass Env singleton provides hash {
 

Modified: trunk/src/pmc/eval.pmc
==============================================================================
--- trunk/src/pmc/eval.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/eval.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,28 @@
 
 #include "pmc/pmc_sub.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void clear_fixups(PARROT_INTERP, Parrot_Sub_attributes *sub_data)
+        __attribute__nonnull__(1);
+
+static PMC* get_sub(PARROT_INTERP, PMC *self, int idx)
+        __attribute__nonnull__(1);
+
+static void mark_subs(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_clear_fixups __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_sub __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_mark_subs __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 */
+
 static void
 clear_fixups(PARROT_INTERP, Parrot_Sub_attributes *sub_data)
 {

Modified: trunk/src/pmc/eventhandler.pmc
==============================================================================
--- trunk/src/pmc/eventhandler.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/eventhandler.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,11 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
+
 pmclass EventHandler extends Sub auto_attrs {
 
     ATTR STRING *type;          /* the type of the event to handle */

Modified: trunk/src/pmc/exception.pmc
==============================================================================
--- trunk/src/pmc/exception.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/exception.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -52,6 +52,10 @@
 #include "parrot/exceptions.h"
 #include "pmc/pmc_sub.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Exception auto_attrs {
 
     ATTR INTVAL          id;           /* The task ID in the scheduler. */

Modified: trunk/src/pmc/exceptionhandler.pmc
==============================================================================
--- trunk/src/pmc/exceptionhandler.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/exceptionhandler.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -22,6 +22,10 @@
 
 #include "parrot/oplib/ops.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ExceptionHandler extends Continuation auto_attrs {
 
     ATTR PMC    *handled_types;

Modified: trunk/src/pmc/exporter.pmc
==============================================================================
--- trunk/src/pmc/exporter.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/exporter.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -90,6 +90,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Exporter auto_attrs {
 
     ATTR PMC *ns_src;

Modified: trunk/src/pmc/file.pmc
==============================================================================
--- trunk/src/pmc/file.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/file.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -22,6 +22,10 @@
 #  include <direct.h>
 #endif
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /* TT #1050 apparently, strerror_r is thread-safe and should be used instead.*/
 
 static PMC *File_PMC;

Modified: trunk/src/pmc/filehandle.pmc
==============================================================================
--- trunk/src/pmc/filehandle.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/filehandle.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -31,6 +31,10 @@
 #endif
 #endif
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass FileHandle extends Handle auto_attrs {
     ATTR INTVAL flags;                /* Filehandle flags             */
     ATTR STRING *filename;            /* The opened path and filename */

Modified: trunk/src/pmc/fixedbooleanarray.pmc
==============================================================================
--- trunk/src/pmc/fixedbooleanarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/fixedbooleanarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -27,6 +27,17 @@
 
 #define BITS_PER_CHAR 8
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_INLINE
+static UINTVAL get_size_in_bytes(UINTVAL size);
+
+#define ASSERT_ARGS_get_size_in_bytes __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 PARROT_INLINE
 static UINTVAL
 get_size_in_bytes(UINTVAL size)

Modified: trunk/src/pmc/fixedfloatarray.pmc
==============================================================================
--- trunk/src/pmc/fixedfloatarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/fixedfloatarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass FixedFloatArray auto_attrs provides array {
     ATTR INTVAL    size;
     ATTR FLOATVAL *float_array;

Modified: trunk/src/pmc/fixedintegerarray.pmc
==============================================================================
--- trunk/src/pmc/fixedintegerarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/fixedintegerarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass FixedIntegerArray auto_attrs provides array {
     ATTR INTVAL   size;  /* number of INTVALs stored in this array */
     ATTR INTVAL * int_array; /* INTVALs are stored here */

Modified: trunk/src/pmc/fixedpmcarray.pmc
==============================================================================
--- trunk/src/pmc/fixedpmcarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/fixedpmcarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -27,6 +27,10 @@
 #define PMC_size(x)  ((Parrot_FixedPMCArray_attributes *)PMC_data(x))->size
 #define PMC_array(x) ((Parrot_FixedPMCArray_attributes *)PMC_data(x))->pmc_array
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass FixedPMCArray auto_attrs provides array {
     ATTR INTVAL   size;      /* number of elements in the array */
     ATTR PMC    **pmc_array; /* pointer to PMC array */

Modified: trunk/src/pmc/fixedstringarray.pmc
==============================================================================
--- trunk/src/pmc/fixedstringarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/fixedstringarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass FixedStringArray auto_attrs provides array {
     ATTR STRING **str_array; /* where the STRINGs are stored */
     ATTR UINTVAL  size;      /* element count */

Modified: trunk/src/pmc/float.pmc
==============================================================================
--- trunk/src/pmc/float.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/float.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -18,6 +18,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Float extends scalar provides float provides scalar auto_attrs {
     ATTR FLOATVAL fv;
 

Modified: trunk/src/pmc/handle.pmc
==============================================================================
--- trunk/src/pmc/handle.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/handle.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -25,6 +25,10 @@
 #include "parrot/parrot.h"
 #include "../src/io/io_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Handle provides Handle manual_attrs {
     /* TODO: Consider encapsulating PIOHANDLE as a PMC type, for subclassing */
     ATTR PIOHANDLE os_handle;         /* Low level OS descriptor      */

Modified: trunk/src/pmc/hash.pmc
==============================================================================
--- trunk/src/pmc/hash.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/hash.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -48,6 +48,10 @@
 #include "pmc/pmc_key.h"
 #include "pmc/pmc_hashiteratorkey.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Hash provides hash auto_attrs {
     ATTR Hash *hash;
 

Modified: trunk/src/pmc/hashiterator.pmc
==============================================================================
--- trunk/src/pmc/hashiterator.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/hashiterator.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -49,6 +49,10 @@
 #include "pmc/pmc_hash.h"
 #include "pmc/pmc_hashiteratorkey.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /*
 
 Advance to next position. Return found (if any) HashBucket.

Modified: trunk/src/pmc/hashiteratorkey.pmc
==============================================================================
--- trunk/src/pmc/hashiteratorkey.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/hashiteratorkey.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass HashIteratorKey no_ro auto_attrs {
     ATTR Hash        *parrot_hash; /* Underlying parrot's hash */
     ATTR HashBucket  *bucket;      /* Current bucket from HashItertor */

Modified: trunk/src/pmc/imageio.pmc
==============================================================================
--- trunk/src/pmc/imageio.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/imageio.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -33,6 +33,51 @@
     enum_PackID_seen       = 1,
 };
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void create_buffer(PARROT_INTERP, PMC *pmc, PMC *info)
+        __attribute__nonnull__(1);
+
+PARROT_INLINE
+static void ensure_buffer_size(PARROT_INTERP, ARGIN(PMC *io), size_t len)
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+PARROT_INLINE
+static PMC* id_list_get(PARROT_INTERP, PMC *io, UINTVAL id)
+        __attribute__nonnull__(1);
+
+PARROT_INLINE
+static INTVAL INFO_HAS_DATA(ARGIN(PMC *io))
+        __attribute__nonnull__(1);
+
+static void visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info)
+        __attribute__nonnull__(1);
+
+PARROT_INLINE
+static PMC * visit_todo_list_thaw(PARROT_INTERP, ARGIN(PMC* info))
+        __attribute__nonnull__(1)
+        __attribute__nonnull__(2);
+
+#define ASSERT_ARGS_create_buffer __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ensure_buffer_size __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(io))
+#define ASSERT_ARGS_id_list_get __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_INFO_HAS_DATA __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(io))
+#define ASSERT_ARGS_visit_todo_list_freeze __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_visit_todo_list_thaw __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp) \
+    , PARROT_ASSERT_ARG(info))
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 PARROT_INLINE
 static opcode_t *
 GET_VISIT_CURSOR(PMC *pmc){

Modified: trunk/src/pmc/imageiosize.pmc
==============================================================================
--- trunk/src/pmc/imageiosize.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/imageiosize.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -16,6 +16,10 @@
 
 #define GROW_TO_16_BYTE_BOUNDARY(size) ((size) + ((size) % 16 ? 16 - (size) % 16 : 0))
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 static void
 visit_todo_list_freeze(PARROT_INTERP, PMC* pmc, PMC* info) {
     int is_new = 0;

Modified: trunk/src/pmc/integer.pmc
==============================================================================
--- trunk/src/pmc/integer.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/integer.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,23 @@
 
 #include "pmc/pmc_bigint.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void maybe_throw_overflow_error(PARROT_INTERP)
+        __attribute__nonnull__(1);
+
+static PMC* upgrade_self_to_bignum(PARROT_INTERP, PMC *self)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_maybe_throw_overflow_error __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_upgrade_self_to_bignum __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 */
+
 static void
 maybe_throw_overflow_error(PARROT_INTERP)
 {

Modified: trunk/src/pmc/iterator.pmc
==============================================================================
--- trunk/src/pmc/iterator.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/iterator.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -57,6 +57,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Iterator no_ro {
 
 /*

Modified: trunk/src/pmc/key.pmc
==============================================================================
--- trunk/src/pmc/key.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/key.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -18,6 +18,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Key auto_attrs {
     ATTR PMC      *next_key; /* Sometimes it's the next key, sometimes it's
                                 not.  The Key code is like that. */

Modified: trunk/src/pmc/lexinfo.pmc
==============================================================================
--- trunk/src/pmc/lexinfo.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/lexinfo.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "pmc/pmc_hash.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /*
  * LexInfo contains a constant Hash with constant string
  * keys and integer indices

Modified: trunk/src/pmc/lexpad.pmc
==============================================================================
--- trunk/src/pmc/lexpad.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/lexpad.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -26,6 +26,10 @@
  * pmc_val    ... LexInfo
  */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass LexPad provides hash no_ro auto_attrs {
     ATTR PMC *lexinfo;
     ATTR PMC *ctx;

Modified: trunk/src/pmc/managedstruct.pmc
==============================================================================
--- trunk/src/pmc/managedstruct.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/managedstruct.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -22,6 +22,10 @@
 typedef void (*custom_free_func_t)(PARROT_INTERP, void *ptr, void *priv);
 typedef PMC * (*custom_clone_func_t)(PARROT_INTERP, PMC *ptr, void *priv);
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ManagedStruct extends UnManagedStruct auto_attrs {
     /* if custom_free_func and ptr (inherited from UnManagedStruct) are both set,
      * custom_free_func is called before the normal destroy() function does any

Modified: trunk/src/pmc/multisub.pmc
==============================================================================
--- trunk/src/pmc/multisub.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/multisub.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,10 @@
 
 #include "pmc/pmc_callcontext.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass MultiSub extends ResizablePMCArray auto_attrs provides array {
 
     VTABLE STRING * get_string() {

Modified: trunk/src/pmc/namespace.pmc
==============================================================================
--- trunk/src/pmc/namespace.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/namespace.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,7 +20,8 @@
 
 #include "pmc/pmc_sub.h"
 
-static void add_to_class(
+static void
+add_to_class(
         Interp *interp,
         Parrot_NameSpace_attributes * const nsinfo,
         PMC * const classobj,
@@ -181,6 +182,53 @@
 
 #define FPA_is_ns_ext PObj_private0_FLAG
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void add_multi_to_namespace(PARROT_INTERP,
+    PMC *SELF,
+    STRING *key,
+    PMC *value)
+        __attribute__nonnull__(1);
+
+static void add_nci_to_namespace(PARROT_INTERP,
+    PMC *SELF,
+    STRING *key,
+    PMC *value)
+        __attribute__nonnull__(1);
+
+static void add_to_class(
+     Interp *interp,
+    Parrot_NameSpace_attributes * const nsinfo,
+    PMC * const classobj,
+    STRING *key,
+    PMC *value);
+
+static int maybe_add_sub_to_namespace(PARROT_INTERP,
+    PMC *SELF,
+    STRING *key,
+    PMC *value)
+        __attribute__nonnull__(1);
+
+static int ns_insert_sub_keyed_str(PARROT_INTERP,
+    PMC *self,
+    STRING *key,
+    PMC *value)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_add_multi_to_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_add_nci_to_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_add_to_class __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+#define ASSERT_ARGS_maybe_add_sub_to_namespace __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ns_insert_sub_keyed_str __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 */
+
 pmclass NameSpace extends Hash provides hash no_ro auto_attrs {
 
     ATTR STRING *name;     /* Name of this namespace part. */

Modified: trunk/src/pmc/nci.pmc
==============================================================================
--- trunk/src/pmc/nci.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/nci.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -18,10 +18,14 @@
 
 */
 
-void pcc_params(PARROT_INTERP, STRING *sig, Parrot_NCI_attributes * const nci_info,
-                size_t sig_length);
-void pcc_params(PARROT_INTERP, STRING *sig, Parrot_NCI_attributes * const nci_info,
-                size_t sig_length) {
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
+void
+pcc_params(PARROT_INTERP, STRING *sig, Parrot_NCI_attributes * const nci_info,
+                size_t sig_length)
+{
     char    param_buf[8] = { 0, 0, 0, 0, 0, 0, 0, 0 };
     char   *param_sig    = sig_length <= 7
                          ? param_buf

Modified: trunk/src/pmc/null.pmc
==============================================================================
--- trunk/src/pmc/null.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/null.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,19 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+PARROT_DOES_NOT_RETURN
+static void null_pmc_access(PARROT_INTERP, int index)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_null_pmc_access __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 */
+
 PARROT_DOES_NOT_RETURN
 static void
 null_pmc_access(PARROT_INTERP, int index)

Modified: trunk/src/pmc/object.pmc
==============================================================================
--- trunk/src/pmc/object.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/object.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,39 @@
 #include "parrot/oo_private.h"
 #include "pmc/pmc_class.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void cache_method(PARROT_INTERP,
+    PMC *_class,
+    STRING *name,
+    PMC *method)
+        __attribute__nonnull__(1);
+
+static PMC * find_cached(PARROT_INTERP, PMC *_class, STRING *name)
+        __attribute__nonnull__(1);
+
+static INTVAL get_attrib_index(PARROT_INTERP, PMC *self, STRING *name)
+        __attribute__nonnull__(1);
+
+static INTVAL get_attrib_index_keyed(PARROT_INTERP,
+    PMC *self,
+    PMC *key,
+    STRING *name)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_cache_method __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_find_cached __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_attrib_index __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_get_attrib_index_keyed __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 */
+
 /* This finds the index of an attribute in an object's attribute store and
  * returns it. Returns -1 if the attribute does not exist. */
 static INTVAL

Modified: trunk/src/pmc/opcode.pmc
==============================================================================
--- trunk/src/pmc/opcode.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/opcode.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -16,6 +16,10 @@
 
 #include "parrot/parrot.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Opcode auto_attrs {
     ATTR op_info_t *info;
     ATTR INTVAL op_number;

Modified: trunk/src/pmc/oplib.pmc
==============================================================================
--- trunk/src/pmc/oplib.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/oplib.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -16,6 +16,10 @@
 
 #include "parrot/parrot.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /* TODO: Since Opcode PMCs are essentially read-only after initialization
          here, we should cache them. A FixedPMCArray would be okay, an
          INTVAL->PMC HASH might be better, since it's unlikely that we will

Modified: trunk/src/pmc/orderedhash.pmc
==============================================================================
--- trunk/src/pmc/orderedhash.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/orderedhash.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -77,6 +77,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /* Get list_item by index */
 static PMC*
 get_list_item(PARROT_INTERP, ARGIN(PMC *self), INTVAL idx) {

Modified: trunk/src/pmc/orderedhashiterator.pmc
==============================================================================
--- trunk/src/pmc/orderedhashiterator.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/orderedhashiterator.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,10 @@
 #include "pmc/pmc_orderedhash.h"
 #include "pmc/pmc_hashiteratorkey.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass OrderedHashIterator extends Iterator no_ro auto_attrs {
     ATTR PMC        *pmc_hash;      /* the Hash which this Iterator iterates */
     ATTR PMC        *next_entry;    /* Next entry to shift/pop */

Modified: trunk/src/pmc/os.pmc
==============================================================================
--- trunk/src/pmc/os.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/os.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -34,6 +34,10 @@
 /* XXX Check if we need to deallocate strerror strings */
 /* XXX apparently, strerror_r is thread-safe and should be used instead.*/
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 static PMC *OS_PMC;
 pmclass OS singleton {
 

Modified: trunk/src/pmc/packfile.pmc
==============================================================================
--- trunk/src/pmc/packfile.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfile.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,10 @@
 
 #include "pmc/pmc_packfiledirectory.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 /*
 Copy attributes from PackFile* to Packfile PMC.
 */

Modified: trunk/src/pmc/packfileannotation.pmc
==============================================================================
--- trunk/src/pmc/packfileannotation.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfileannotation.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileAnnotation auto_attrs {
     ATTR STRING    *name;
     ATTR INTVAL     offset;

Modified: trunk/src/pmc/packfileannotations.pmc
==============================================================================
--- trunk/src/pmc/packfileannotations.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfileannotations.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -29,6 +29,10 @@
 
 #include "pmc/pmc_packfileannotation.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileAnnotations auto_attrs extends PackfileSegment {
     /* ConstantTable used for names lookup */
     ATTR PMC *const_table;

Modified: trunk/src/pmc/packfileconstanttable.pmc
==============================================================================
--- trunk/src/pmc/packfileconstanttable.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfileconstanttable.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -24,6 +24,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileConstantTable auto_attrs extends PackfileSegment {
     /* ResizablePMCArray for storing constants */
     ATTR PMC *constants;

Modified: trunk/src/pmc/packfiledirectory.pmc
==============================================================================
--- trunk/src/pmc/packfiledirectory.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfiledirectory.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -25,6 +25,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileDirectory auto_attrs extends PackfileSegment {
     /* Directory is a hash of Segments */
     ATTR PMC *hash;

Modified: trunk/src/pmc/packfilefixupentry.pmc
==============================================================================
--- trunk/src/pmc/packfilefixupentry.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfilefixupentry.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -19,6 +19,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileFixupEntry auto_attrs {
     ATTR INTVAL     type;
     ATTR STRING     *name;

Modified: trunk/src/pmc/packfilefixuptable.pmc
==============================================================================
--- trunk/src/pmc/packfilefixuptable.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfilefixuptable.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -24,6 +24,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileFixupTable auto_attrs extends PackfileSegment {
     /* RPA of entries */
     ATTR PMC *entries;

Modified: trunk/src/pmc/packfilerawsegment.pmc
==============================================================================
--- trunk/src/pmc/packfilerawsegment.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfilerawsegment.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -24,6 +24,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileRawSegment auto_attrs extends PackfileSegment {
     /* Type of segment */
     ATTR INTVAL  type;

Modified: trunk/src/pmc/packfilesegment.pmc
==============================================================================
--- trunk/src/pmc/packfilesegment.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/packfilesegment.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -23,6 +23,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass PackfileSegment auto_attrs {
     /*
     Directory which owns this segment. Required for correct pack/unpack

Modified: trunk/src/pmc/parrotinterpreter.pmc
==============================================================================
--- trunk/src/pmc/parrotinterpreter.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/parrotinterpreter.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -36,10 +36,18 @@
 #define PMC_args(x)   ((Parrot_ParrotInterpreter_attributes *)PMC_data(x))->args
 #define PMC_sub(x)    ((Parrot_ParrotInterpreter_attributes *)PMC_data(x))->sub
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void create_interp(PMC *self, Parrot_Interp parent);
+#define ASSERT_ARGS_create_interp __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 /*
 
-=item C<void
-clone_interpreter(Parrot_Interp dest, const Parrot_Interp source, INTVAL flags)>
+=item C<void clone_interpreter(Parrot_Interp d, Parrot_Interp s, INTVAL flags)>
 
 Clones the interpreter as specified by the flags.
 
@@ -150,8 +158,7 @@
 
 /*
 
-=item C<static void
-create_interp(PMC *self, Parrot_Interp parent)>
+=item C<static void create_interp(PMC *self, Parrot_Interp parent)>
 
 Creates a new child interpreter of C<parent>.
 

Modified: trunk/src/pmc/parrotlibrary.pmc
==============================================================================
--- trunk/src/pmc/parrotlibrary.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/parrotlibrary.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -31,6 +31,10 @@
 #define PMC_dlhandle(x) ((Parrot_ParrotLibrary_attributes*)PMC_data(x))->dl_handle
 #define PMC_oplib_init(x) ((Parrot_ParrotLibrary_attributes*)PMC_data(x))->oplib_init
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ParrotLibrary auto_attrs provides library {
     ATTR void * dl_handle;  /* DLL handle */
     ATTR void * oplib_init; /* oplib init function */

Modified: trunk/src/pmc/parrotrunningthread.pmc
==============================================================================
--- trunk/src/pmc/parrotrunningthread.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/parrotrunningthread.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -32,6 +32,10 @@
 
 #define PMC_tid(x) (PARROT_PARROTRUNNINGTHREAD(x))->tid
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ParrotRunningThread no_ro auto_attrs {
     ATTR INTVAL tid; /* thread id */
 

Modified: trunk/src/pmc/parrotthread.pmc
==============================================================================
--- trunk/src/pmc/parrotthread.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/parrotthread.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -40,6 +40,15 @@
 
 #define PMC_interp(x) ((Parrot_ParrotInterpreter_attributes *)PMC_data(x))->interp
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void stop_GC(Interp *parent, Interp *thread);
+#define ASSERT_ARGS_stop_GC __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+/* HEADERIZER END: static */
+
 /*
  * can't do multi-threaded GC yet
  * XXX a quick hack to pass the few tests

Modified: trunk/src/pmc/pmcproxy.pmc
==============================================================================
--- trunk/src/pmc/pmcproxy.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/pmcproxy.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -63,6 +63,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 
 pmclass PMCProxy extends Class auto_attrs {
 

Modified: trunk/src/pmc/pointer.pmc
==============================================================================
--- trunk/src/pmc/pointer.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/pointer.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Pointer auto_attrs {
     ATTR void * mark_function;
     ATTR void * pointer;

Modified: trunk/src/pmc/resizablebooleanarray.pmc
==============================================================================
--- trunk/src/pmc/resizablebooleanarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/resizablebooleanarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -30,6 +30,10 @@
 /* Convert a size in bits to a size in bytes */
 #define BITS_TO_BYTES(size) ((size) / BITS_PER_CHAR)
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ResizableBooleanArray extends FixedBooleanArray auto_attrs provides array {
     /* RBA uses the same attributes as FBA, but in RBA they're used as follows:
        size:             position of the last element (a.k.a tail_pos)

Modified: trunk/src/pmc/resizablefloatarray.pmc
==============================================================================
--- trunk/src/pmc/resizablefloatarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/resizablefloatarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ResizableFloatArray extends FixedFloatArray auto_attrs provides array {
     ATTR INTVAL resize_threshold; /* max size before array needs resizing */
 

Modified: trunk/src/pmc/resizableintegerarray.pmc
==============================================================================
--- trunk/src/pmc/resizableintegerarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/resizableintegerarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ResizableIntegerArray extends FixedIntegerArray auto_attrs provides array {
     ATTR INTVAL resize_threshold; /* max size before array needs to be resized */
 

Modified: trunk/src/pmc/resizablepmcarray.pmc
==============================================================================
--- trunk/src/pmc/resizablepmcarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/resizablepmcarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -23,6 +23,10 @@
 #define PMC_array(x)     ((Parrot_ResizablePMCArray_attributes *)PMC_data(x))->pmc_array
 #define PMC_threshold(x) ((Parrot_ResizablePMCArray_attributes *)PMC_data(x))->resize_threshold
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ResizablePMCArray extends FixedPMCArray auto_attrs provides array {
     ATTR INTVAL resize_threshold; /* max size before array needs resizing */
 

Modified: trunk/src/pmc/resizablestringarray.pmc
==============================================================================
--- trunk/src/pmc/resizablestringarray.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/resizablestringarray.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -18,6 +18,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass ResizableStringArray extends FixedStringArray auto_attrs provides array {
     ATTR UINTVAL resize_threshold; /*max capacity before resizing */
 

Modified: trunk/src/pmc/retcontinuation.pmc
==============================================================================
--- trunk/src/pmc/retcontinuation.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/retcontinuation.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -23,6 +23,10 @@
 
 #include "parrot/oplib/ops.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass RetContinuation extends Continuation auto_attrs {
 
 /*

Modified: trunk/src/pmc/role.pmc
==============================================================================
--- trunk/src/pmc/role.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/role.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -50,8 +50,21 @@
 
 #include "pmc/pmc_namespace.h"
 
-/* Takes a hash and initializes the role based on it. */
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
 static void init_role_from_hash(PARROT_INTERP, PMC *self, PMC *info)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_init_role_from_hash __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 */
+
+/* Takes a hash and initializes the role based on it. */
+static void
+init_role_from_hash(PARROT_INTERP, PMC *self, PMC *info)
 {
     Parrot_Role_attributes * const role     = PARROT_ROLE(self);
     STRING * const ns_string     = CONST_STRING(interp, "NameSpace");

Modified: trunk/src/pmc/scalar.pmc
==============================================================================
--- trunk/src/pmc/scalar.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/scalar.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "pmc/pmc_bigint.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass scalar {
 
 /*

Modified: trunk/src/pmc/scheduler.pmc
==============================================================================
--- trunk/src/pmc/scheduler.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/scheduler.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "parrot/scheduler_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Scheduler auto_attrs {
 
     ATTR INTVAL        id;         /* The scheduler's ID. */

Modified: trunk/src/pmc/schedulermessage.pmc
==============================================================================
--- trunk/src/pmc/schedulermessage.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/schedulermessage.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "parrot/scheduler_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass SchedulerMessage auto_attrs {
     ATTR INTVAL  id;        /* The message's ID. */
     ATTR STRING *type;      /* The message's type. */

Modified: trunk/src/pmc/sockaddr.pmc
==============================================================================
--- trunk/src/pmc/sockaddr.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/sockaddr.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -29,6 +29,10 @@
 }
 #endif
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Sockaddr auto_attrs {
     ATTR void   *pointer; /* The stored pointer. */
 

Modified: trunk/src/pmc/socket.pmc
==============================================================================
--- trunk/src/pmc/socket.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/socket.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "../src/io/io_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Socket extends Handle provides socket auto_attrs {
     ATTR PMC *local;           /* Local addr                   */
     ATTR PMC *remote;          /* Remote addr                  */

Modified: trunk/src/pmc/string.pmc
==============================================================================
--- trunk/src/pmc/string.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/string.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 */
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass String extends scalar provides string provides scalar auto_attrs {
     ATTR STRING * str_val;
 

Modified: trunk/src/pmc/stringhandle.pmc
==============================================================================
--- trunk/src/pmc/stringhandle.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/stringhandle.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -17,8 +17,18 @@
 
 #include "../src/io/io_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
 PARROT_INLINE
-static int encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s));
+static int encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_encoding_is_utf8 __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 */
 
 /*
 
@@ -26,7 +36,7 @@
 
 =over 4
 
-=item C<static int encoding_is_utf8()>
+=item C<static int encoding_is_utf8(PARROT_INTERP, STRING *s)>
 
 Helper function for internal usage. Return 1 if the string argument is
 not null and has utf8 encoding, 0 otherwise.
@@ -38,7 +48,8 @@
 */
 
 PARROT_INLINE
-static int encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
+static int
+encoding_is_utf8(PARROT_INTERP, ARGIN_NULLOK(STRING *s))
 {
     if (STRING_IS_NULL(s))
         return 0;

Modified: trunk/src/pmc/stringiterator.pmc
==============================================================================
--- trunk/src/pmc/stringiterator.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/stringiterator.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -22,6 +22,10 @@
 */
 
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass StringIterator auto_attrs extends Iterator {
     ATTR PMC    *string;    /* String to iterate over */
     ATTR INTVAL  pos;       /* Current position of iterator for forward iterator */

Modified: trunk/src/pmc/sub.pmc
==============================================================================
--- trunk/src/pmc/sub.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/sub.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -21,6 +21,18 @@
 #include "parrot/oplib/ops.h"
 #include "sub.str"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static void print_sub_name(PARROT_INTERP, ARGIN_NULLOK(PMC *sub))
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_print_sub_name __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 */
+
 static void
 print_sub_name(PARROT_INTERP, ARGIN_NULLOK(PMC *sub))
 {

Modified: trunk/src/pmc/task.pmc
==============================================================================
--- trunk/src/pmc/task.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/task.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -20,6 +20,10 @@
 
 #include "parrot/scheduler_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Task auto_attrs {
     ATTR INTVAL        id;        /* The task ID. */
     ATTR INTVAL        priority;  /* The priority of the task. */

Modified: trunk/src/pmc/timer.pmc
==============================================================================
--- trunk/src/pmc/timer.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/timer.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -57,6 +57,10 @@
 
 #include "parrot/scheduler_private.h"
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Timer extends Task provides event auto_attrs {
     ATTR FLOATVAL duration;  /* The duration of the timer pause */
     ATTR FLOATVAL interval;  /* How often to repeat */

Modified: trunk/src/pmc/undef.pmc
==============================================================================
--- trunk/src/pmc/undef.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/undef.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -26,6 +26,10 @@
 #include "pmc/pmc_object.h"
 #define UNDEF_STRING_CLASS enum_class_String
 
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* HEADERIZER END: static */
+
 pmclass Undef no_ro {
 
 /*

Modified: trunk/src/pmc/unmanagedstruct.pmc
==============================================================================
--- trunk/src/pmc/unmanagedstruct.pmc	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/src/pmc/unmanagedstruct.pmc	Sun Mar 28 01:11:50 2010	(r45219)
@@ -24,13 +24,81 @@
 
 #include "parrot/compiler.h"
 
-static INTVAL key_2_idx(PARROT_INTERP, PMC *pmc, PMC *key);
-static size_t calc_offsets(PARROT_INTERP, PMC*, PMC *init, size_t toff);
+/* HEADERIZER HFILE: none */
+/* HEADERIZER BEGIN: static */
+/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */
+
+static int calc_align(PARROT_INTERP,
+    PMC *pmc,
+    PMC *type_pmc,
+    int type,
+    size_t offs)
+        __attribute__nonnull__(1);
+
+static size_t calc_offsets(PARROT_INTERP, PMC *pmc, PMC *value, size_t toff)
+        __attribute__nonnull__(1);
+
+static char * char_offset_int(PARROT_INTERP, PMC *pmc, INTVAL ix, int *type)
+        __attribute__nonnull__(1);
+
+static char * char_offset_key(PARROT_INTERP, PMC *pmc, PMC *key, int *type)
+        __attribute__nonnull__(1);
+
+static INTVAL key_2_idx(PARROT_INTERP, PMC *pmc, PMC *key)
+        __attribute__nonnull__(1);
+
+static FLOATVAL ret_float(PARROT_INTERP, const char *p, int type)
+        __attribute__nonnull__(1);
+
+static INTVAL ret_int(PARROT_INTERP, const char *p, int type)
+        __attribute__nonnull__(1);
+
+static PMC* ret_pmc(PARROT_INTERP, PMC *pmc, char *p, int type, INTVAL idx)
+        __attribute__nonnull__(1);
+
+static STRING* ret_string(PARROT_INTERP, char *p, int type)
+        __attribute__nonnull__(1);
+
+static void set_float(PARROT_INTERP, char *p, int type, FLOATVAL value)
+        __attribute__nonnull__(1);
+
+static void set_int(PARROT_INTERP, char *p, int type, INTVAL value)
+        __attribute__nonnull__(1);
+
+static void set_string(PARROT_INTERP, char *p, int type, STRING *value)
+        __attribute__nonnull__(1);
+
+#define ASSERT_ARGS_calc_align __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_calc_offsets __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_char_offset_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_char_offset_key __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_key_2_idx __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ret_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ret_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ret_pmc __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_ret_string __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_set_float __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_set_int __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+       PARROT_ASSERT_ARG(interp))
+#define ASSERT_ARGS_set_string __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<static char *
-char_offset_int(PARROT_INTERP, PMC *pmc, INTVAL ix, int *type)>
+=item C<static char * char_offset_int(PARROT_INTERP, PMC *pmc, INTVAL ix, int
+*type)>
 
 Returns the pointer for the element at index C<ix>, and sets the element
 type in C<*type>.
@@ -67,8 +135,7 @@
 
 /*
 
-=item C<static INTVAL
-key_2_idx(PARROT_INTERP, PMC *pmc, PMC *key)>
+=item C<static INTVAL key_2_idx(PARROT_INTERP, PMC *pmc, PMC *key)>
 
 Returns the index for the element associated with key C<*key>. Raises an
 exception if the key doesn't exist.
@@ -115,8 +182,8 @@
 
 /*
 
-=item C<static char *
-char_offset_key(PARROT_INTERP, PMC *pmc, PMC *key, int *type)>
+=item C<static char * char_offset_key(PARROT_INTERP, PMC *pmc, PMC *key, int
+*type)>
 
 Returns the pointer for the element associated with key C<*key>, and
 sets the element type in C<*type>.
@@ -217,8 +284,7 @@
 
 /*
 
-=item C<static INTVAL
-ret_int(PARROT_INTERP, const char *p, int type)>
+=item C<static INTVAL ret_int(PARROT_INTERP, const char *p, int type)>
 
 Returns the element of type C<type> starting at C<*p> as an C<INTVAL>.
 
@@ -292,8 +358,7 @@
 
 /*
 
-=item C<static FLOATVAL
-ret_float(PARROT_INTERP, const char *p, int type)>
+=item C<static FLOATVAL ret_float(PARROT_INTERP, const char *p, int type)>
 
 Returns the element of type C<type> starting at C<*p> as a C<FLOATVAL>.
 
@@ -323,8 +388,7 @@
 
 /*
 
-=item C<static STRING*
-ret_string(PARROT_INTERP, char *p, int type)>
+=item C<static STRING* ret_string(PARROT_INTERP, char *p, int type)>
 
 Returns the element of type C<type> starting at C<*p> as a Parrot string.
 
@@ -359,8 +423,8 @@
 
 /*
 
-=item C<static PMC*
-ret_pmc(PARROT_INTERP, PMC *pmc, char *p, int type, INTVAL idx)>
+=item C<static PMC* ret_pmc(PARROT_INTERP, PMC *pmc, char *p, int type, INTVAL
+idx)>
 
 Returns the element of type C<type> starting at C<*p> as a PMC.
 
@@ -416,8 +480,7 @@
 
 /*
 
-=item C<static void
-set_int(PARROT_INTERP, char *p, int type, INTVAL value)>
+=item C<static void set_int(PARROT_INTERP, char *p, int type, INTVAL value)>
 
 =cut
 
@@ -453,8 +516,7 @@
 
 /*
 
-=item C<static void
-set_float(PARROT_INTERP, char *p, int type, FLOATVAL value)>
+=item C<static void set_float(PARROT_INTERP, char *p, int type, FLOATVAL value)>
 
 Sets the value of the element of type C<type> starting at C<*p> to
 C<value>.
@@ -485,8 +547,7 @@
 
 /*
 
-=item C<static void
-set_string(PARROT_INTERP, char *p, int type, STRING *value)>
+=item C<static void set_string(PARROT_INTERP, char *p, int type, STRING *value)>
 
 Sets the value of the element of type C<type> starting at C<*p> to
 C<*value>.
@@ -511,9 +572,8 @@
 
 /*
 
-=item C<static int
-calc_align(PARROT_INTERP, PMC *pmc, PMC *type_pmc,
-        int type, size_t offs)>
+=item C<static int calc_align(PARROT_INTERP, PMC *pmc, PMC *type_pmc, int type,
+size_t offs)>
 
 Alignment of contained structures is the alignment of the biggest item in that
 C<struct>.
@@ -577,8 +637,8 @@
 
 /*
 
-=item C<static size_t
-calc_offsets(PARROT_INTERP, PMC *pmc, PMC *value, size_t toff)>
+=item C<static size_t calc_offsets(PARROT_INTERP, PMC *pmc, PMC *value, size_t
+toff)>
 
 Calculates the offsets for the C<struct>. See C<init_pmc()> for a description
 of C<*value>.

Modified: trunk/tools/build/headerizer.pl
==============================================================================
--- trunk/tools/build/headerizer.pl	Sat Mar 27 23:57:06 2010	(r45218)
+++ trunk/tools/build/headerizer.pl	Sun Mar 28 01:11:50 2010	(r45219)
@@ -1,5 +1,5 @@
 #! perl
-# Copyright (C) 2001-2009, Parrot Foundation.
+# Copyright (C) 2001-2010, Parrot Foundation.
 # $Id$
 
 use strict;
@@ -88,7 +88,7 @@
 
 =head1 FUNCTIONS
 
-=head2 extract_function_declarations( $source_file_text )
+=head2 extract_function_declarations( $sourcefile_text )
 
 Rips apart a C file to get the function declarations.
 
@@ -131,7 +131,10 @@
     @funcs = grep { !/YY_DECL/ } @funcs;
 
     # Ignore anything with magic words HEADERIZER SKIP
-    @funcs = grep !m{/\*\s*HEADERIZER SKIP\s*\*/}, @funcs;
+    @funcs = grep { !m{/\*\s*HEADERIZER SKIP\s*\*/} } @funcs;
+
+    # pmclass declarations in PMC files are no good
+    @funcs = grep { !m{^pmclass } } @funcs;
 
     # Variables are of no use to us
     @funcs = grep !/=/, @funcs;
@@ -217,8 +220,9 @@
     my $args = join( ' ', @lines );
 
     $args =~ s/\s+/ /g;
+
     $args =~ s{([^(]+)\s*\((.+)\);?}{$2}
-        or die qq{Couldn't handle "$proto"};
+        or die qq{Couldn't handle "$proto" in $file\n};
 
     my $name = $1;
     $args = $2;
@@ -449,12 +453,12 @@
 
 sub replace_headerized_declarations {
     my $source_code = shift;
-    my $cfile       = shift;
+    my $sourcefile = shift;
     my $hfile       = shift;
     my @funcs       = @_;
 
     # Allow a way to not headerize statics
-    if ( $source_code =~ m{/\*\s*HEADERIZER NONE:\s*$cfile\s*\*/} ) {
+    if ( $source_code =~ m{/\*\s*HEADERIZER NONE:\s*$sourcefile\s*\*/} ) {
         return $source_code;
     }
 
@@ -463,14 +467,14 @@
     my @function_decls = make_function_decls(@funcs);
 
     my $function_decls = join( "\n", @function_decls );
-    my $STARTMARKER    = qr#/\* HEADERIZER BEGIN: $cfile \*/\n#;
-    my $ENDMARKER      = qr#/\* HEADERIZER END: $cfile \*/\n?#;
+    my $STARTMARKER    = qr{/\* HEADERIZER BEGIN: $sourcefile \*/\n};
+    my $ENDMARKER      = qr{/\* HEADERIZER END: $sourcefile \*/\n?};
     my $DO_NOT_TOUCH   = q{/* Don't modify between HEADERIZER BEGIN / HEADERIZER END.  Your changes will be lost. */};
 
     $source_code =~
         s{($STARTMARKER)(?:.*?)($ENDMARKER)}
          {$1$DO_NOT_TOUCH\n\n$function_decls\n$DO_NOT_TOUCH\n$2}s
-        or die "Need begin/end HEADERIZER markers for $cfile in $hfile\n";
+        or die "Need begin/end HEADERIZER markers for $sourcefile in $hfile\n";
 
     return $source_code;
 }
@@ -486,15 +490,15 @@
         'macro=s' => \$macro_match,
     ) or exit(1);
 
-    die "No files specified.\n" unless @ARGV;
+    die 'No files specified.' unless @ARGV;
     my %ofiles;
     ++$ofiles{$_} for @ARGV;
     my @ofiles = sort keys %ofiles;
     for (@ofiles) {
         print "$_ is specified more than once.\n" if $ofiles{$_} > 1;
     }
-    my %cfiles;
-    my %cfiles_with_statics;
+    my %sourcefiles;
+    my %sourcefiles_with_statics;
     my %api;
 
     # Walk the object files and find corresponding source (either .c or .pmc)
@@ -517,31 +521,35 @@
         my $pmcfile = $ofile;
         $pmcfile =~ s/\Q$PConfig{o}\E$/.pmc/;
 
-        my $csource = read_file($cfile);
-        die "can't find HEADERIZER HFILE directive in '$cfile'"
-            unless $csource =~
+        my $from_pmc = -f $pmcfile && !$is_yacc;
+
+        my $sourcefile = $from_pmc ? $pmcfile : $cfile;
+
+        my $source_code = read_file( $sourcefile );
+        die qq{can't find HEADERIZER HFILE directive in "$sourcefile"}
+            unless $source_code =~
                 m{ /\* \s+ HEADERIZER\ HFILE: \s+ ([^*]+?) \s+ \*/ }sx;
 
         my $hfile = $1;
         if ( ( $hfile ne 'none' ) && ( not -f $hfile ) ) {
-            die "'$hfile' not found (referenced from '$cfile')";
+            die qq{"$hfile" not found (referenced from "$sourcefile")};
         }
 
         my @decls;
-        if ( $macro_match || (-f $pmcfile && !$is_yacc) ) {
-            @decls = extract_function_declarations( $csource );
+        if ( $macro_match ) {
+            @decls = extract_function_declarations( $source_code );
         }
         else {
-            @decls = extract_function_declarations_and_update_source( $cfile );
+            @decls = extract_function_declarations_and_update_source( $sourcefile );
         }
 
         for my $decl (@decls) {
-            my $components = function_components_from_declaration( $cfile, $decl );
-            push( @{ $cfiles{$hfile}->{$cfile} }, $components ) unless $hfile eq 'none';
-            push( @{ $cfiles_with_statics{$cfile} }, $components ) if $components->{is_static};
+            my $components = function_components_from_declaration( $sourcefile, $decl );
+            push( @{ $sourcefiles{$hfile}->{$sourcefile} }, $components ) unless $hfile eq 'none';
+            push( @{ $sourcefiles_with_statics{$sourcefile} }, $components ) if $components->{is_static};
             if ( $macro_match ) {
                 if ( grep { $_ eq $macro_match } @{$components->{macros}} ) {
-                    push( @{ $api{$cfile} }, $components );
+                    push( @{ $api{$sourcefile} }, $components );
                 }
             }
         }
@@ -562,13 +570,13 @@
     }
     else { # Normal headerization and updating
         # Update all the .h files
-        for my $hfile ( sort keys %cfiles ) {
-            my $cfiles = $cfiles{$hfile};
+        for my $hfile ( sort keys %sourcefiles ) {
+            my $sourcefiles = $sourcefiles{$hfile};
 
             my $header = read_file($hfile);
 
-            for my $cfile ( sort keys %{$cfiles} ) {
-                my @funcs = @{ $cfiles->{$cfile} };
+            for my $cfile ( sort keys %{$sourcefiles} ) {
+                my @funcs = @{ $sourcefiles->{$cfile} };
                 @funcs = grep { not $_->{is_static} } @funcs;    # skip statics
 
                 $header = replace_headerized_declarations( $header, $cfile, $hfile, @funcs );
@@ -578,8 +586,8 @@
         }
 
         # Update all the .c files in place
-        for my $cfile ( sort keys %cfiles_with_statics ) {
-            my @funcs = @{ $cfiles_with_statics{$cfile} };
+        for my $cfile ( sort keys %sourcefiles_with_statics ) {
+            my @funcs = @{ $sourcefiles_with_statics{$cfile} };
             @funcs = grep { $_->{is_static} } @funcs;
 
             my $source = read_file($cfile);


More information about the parrot-commits mailing list