[svn:parrot] r46982 - in branches/ops_massacre: . config/gen/makefiles config/gen/platform/generic config/gen/platform/solaris config/gen/platform/win32 include/parrot/oplib runtime/parrot/library runtime/parrot/library/Archive runtime/parrot/library/Configure runtime/parrot/library/HTTP src src/dynoplibs src/interp src/ops t/compilers/opsc t/dynoplibs t/op

plobsing at svn.parrot.org plobsing at svn.parrot.org
Tue May 25 03:05:27 UTC 2010


Author: plobsing
Date: Tue May 25 03:05:26 2010
New Revision: 46982
URL: https://trac.parrot.org/parrot/changeset/46982

Log:
move sysinfo and some time routines (time itself stays in core) to dynops

Added:
   branches/ops_massacre/src/dynoplibs/sys.ops
   branches/ops_massacre/t/dynoplibs/sysinfo.t
   branches/ops_massacre/t/dynoplibs/time.t
Deleted:
   branches/ops_massacre/t/op/sysinfo.t
Modified:
   branches/ops_massacre/MANIFEST
   branches/ops_massacre/config/gen/makefiles/root.in
   branches/ops_massacre/config/gen/platform/generic/time.c
   branches/ops_massacre/config/gen/platform/solaris/time.c
   branches/ops_massacre/config/gen/platform/win32/time.c
   branches/ops_massacre/include/parrot/oplib/core_ops.h
   branches/ops_massacre/include/parrot/oplib/ops.h
   branches/ops_massacre/runtime/parrot/library/Archive/Zip.pir
   branches/ops_massacre/runtime/parrot/library/Configure/genfile.pir
   branches/ops_massacre/runtime/parrot/library/HTTP/Message.pir
   branches/ops_massacre/runtime/parrot/library/distutils.pir
   branches/ops_massacre/runtime/parrot/library/pcre.pir
   branches/ops_massacre/src/dynoplibs/Defines.in
   branches/ops_massacre/src/dynoplibs/Rules.in
   branches/ops_massacre/src/interp/inter_misc.c
   branches/ops_massacre/src/ops/core_ops.c
   branches/ops_massacre/src/ops/ops.num
   branches/ops_massacre/src/ops/sys.ops
   branches/ops_massacre/src/utils.c
   branches/ops_massacre/t/compilers/opsc/07-emitter.t
   branches/ops_massacre/t/op/io.t
   branches/ops_massacre/t/op/sprintf.t
   branches/ops_massacre/t/op/time.t
   branches/ops_massacre/t/op/time_old.t

Modified: branches/ops_massacre/MANIFEST
==============================================================================
--- branches/ops_massacre/MANIFEST	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/MANIFEST	Tue May 25 03:05:26 2010	(r46982)
@@ -1,7 +1,7 @@
 # ex: set ro:
 # $Id$
 #
-# generated by tools/dev/mk_manifest_and_skip.pl Sun May 23 18:01:00 2010 UT
+# generated by tools/dev/mk_manifest_and_skip.pl Tue May 25 01:28:25 2010 UT
 #
 # See below for documentation on the format of this file.
 #
@@ -983,7 +983,6 @@
 include/parrot/oplib.h                                      [main]include
 include/parrot/oplib/core_ops.h                             [main]include
 include/parrot/oplib/ops.h                                  [main]include
-include/parrot/opsenum.h                                    [main]include
 include/parrot/packfile.h                                   [main]include
 include/parrot/parrot.h                                     [main]include
 include/parrot/platform_interface.h                         [main]include
@@ -1263,9 +1262,12 @@
 src/dynoplibs/Defines.in                                    []
 src/dynoplibs/README                                        []doc
 src/dynoplibs/Rules.in                                      []
+src/dynoplibs/bit.ops                                       []
+src/dynoplibs/debug.ops                                     []
 src/dynoplibs/deprecated.ops                                []
 src/dynoplibs/math.ops                                      []
 src/dynoplibs/obscure.ops                                   []
+src/dynoplibs/sys.ops                                       []
 src/dynoplibs/trans.ops                                     []
 src/dynpmc/Defines.in                                       []
 src/dynpmc/README.pod                                       []doc
@@ -1335,7 +1337,6 @@
 src/ops/cmp.ops                                             []
 src/ops/core.ops                                            []
 src/ops/core_ops.c                                          []
-src/ops/debug.ops                                           []
 src/ops/experimental.ops                                    []
 src/ops/io.ops                                              []
 src/ops/math.ops                                            []
@@ -1658,9 +1659,12 @@
 t/distro/file_metadata.t                                    [test]
 t/distro/manifest.t                                         [test]
 t/distro/manifest_generated.t                               [test]
+t/dynoplibs/bit.t                                           [test]
+t/dynoplibs/debug.t                                         [test]
 t/dynoplibs/deprecated.t                                    [test]
 t/dynoplibs/math.t                                          [test]
 t/dynoplibs/obscure.t                                       [test]
+t/dynoplibs/time.t                                          [test]
 t/dynoplibs/trans-infnan.t                                  [test]
 t/dynoplibs/trans-old.t                                     [test]
 t/dynoplibs/trans.t                                         [test]

Modified: branches/ops_massacre/config/gen/makefiles/root.in
==============================================================================
--- branches/ops_massacre/config/gen/makefiles/root.in	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/config/gen/makefiles/root.in	Tue May 25 03:05:26 2010	(r46982)
@@ -630,6 +630,16 @@
 
 $(LIBRARY_DIR)/Digest/MD5.pbc: $(DYNEXT_DIR)/bit_ops$(LOAD_EXT)
 
+$(LIBRARY_DIR)/Archive/Zip.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/Configure/genfile.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/HTTP/Message.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/distutils.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
+$(LIBRARY_DIR)/pcre.pbc: $(DYNEXT_DIR)/sys_ops$(LOAD_EXT)
+
 # constant string support
 .c.str : # suffix rule (limited support)
 	$(PERL) $(BUILD_TOOLS_DIR)/c2str.pl $< > $@

Modified: branches/ops_massacre/config/gen/platform/generic/time.c
==============================================================================
--- branches/ops_massacre/config/gen/platform/generic/time.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/config/gen/platform/generic/time.c	Tue May 25 03:05:26 2010	(r46982)
@@ -94,6 +94,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -108,6 +109,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -122,6 +124,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/ops_massacre/config/gen/platform/solaris/time.c
==============================================================================
--- branches/ops_massacre/config/gen/platform/solaris/time.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/config/gen/platform/solaris/time.c	Tue May 25 03:05:26 2010	(r46982)
@@ -94,6 +94,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -108,6 +109,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -122,6 +124,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/ops_massacre/config/gen/platform/win32/time.c
==============================================================================
--- branches/ops_massacre/config/gen/platform/win32/time.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/config/gen/platform/win32/time.c	Tue May 25 03:05:26 2010	(r46982)
@@ -122,6 +122,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_gmtime_r(const time_t *t, struct tm *tm)
 {
@@ -139,6 +140,7 @@
 
 */
 
+PARROT_EXPORT
 struct tm *
 Parrot_localtime_r(const time_t *t, struct tm *tm)
 {
@@ -157,6 +159,7 @@
 
 */
 
+PARROT_EXPORT
 char*
 Parrot_asctime_r(const struct tm *tm, char *buffer)
 {

Modified: branches/ops_massacre/include/parrot/oplib/core_ops.h
==============================================================================
--- branches/ops_massacre/include/parrot/oplib/core_ops.h	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/include/parrot/oplib/core_ops.h	Tue May 25 03:05:26 2010	(r46982)
@@ -1024,18 +1024,6 @@
  opcode_t * Parrot_err_s_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_time_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_time_n(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_gmtime_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_gmtime_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_localtime_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_localtime_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodetime_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodetime_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodelocaltime_p_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_decodelocaltime_p_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_s_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_s_ic(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_i_i(opcode_t *, PARROT_INTERP);
- opcode_t * Parrot_sysinfo_i_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_i(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_ic(opcode_t *, PARROT_INTERP);
  opcode_t * Parrot_sleep_n(opcode_t *, PARROT_INTERP);

Modified: branches/ops_massacre/include/parrot/oplib/ops.h
==============================================================================
--- branches/ops_massacre/include/parrot/oplib/ops.h	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/include/parrot/oplib/ops.h	Tue May 25 03:05:26 2010	(r46982)
@@ -1019,148 +1019,136 @@
     PARROT_OP_err_s_ic,                        /* 1000 */
     PARROT_OP_time_i,                          /* 1001 */
     PARROT_OP_time_n,                          /* 1002 */
-    PARROT_OP_gmtime_s_i,                      /* 1003 */
-    PARROT_OP_gmtime_s_ic,                     /* 1004 */
-    PARROT_OP_localtime_s_i,                   /* 1005 */
-    PARROT_OP_localtime_s_ic,                  /* 1006 */
-    PARROT_OP_decodetime_p_i,                  /* 1007 */
-    PARROT_OP_decodetime_p_ic,                 /* 1008 */
-    PARROT_OP_decodelocaltime_p_i,             /* 1009 */
-    PARROT_OP_decodelocaltime_p_ic,            /* 1010 */
-    PARROT_OP_sysinfo_s_i,                     /* 1011 */
-    PARROT_OP_sysinfo_s_ic,                    /* 1012 */
-    PARROT_OP_sysinfo_i_i,                     /* 1013 */
-    PARROT_OP_sysinfo_i_ic,                    /* 1014 */
-    PARROT_OP_sleep_i,                         /* 1015 */
-    PARROT_OP_sleep_ic,                        /* 1016 */
-    PARROT_OP_sleep_n,                         /* 1017 */
-    PARROT_OP_sleep_nc,                        /* 1018 */
-    PARROT_OP_store_lex_s_p,                   /* 1019 */
-    PARROT_OP_store_lex_sc_p,                  /* 1020 */
-    PARROT_OP_store_dynamic_lex_s_p,           /* 1021 */
-    PARROT_OP_store_dynamic_lex_sc_p,          /* 1022 */
-    PARROT_OP_find_lex_p_s,                    /* 1023 */
-    PARROT_OP_find_lex_p_sc,                   /* 1024 */
-    PARROT_OP_find_dynamic_lex_p_s,            /* 1025 */
-    PARROT_OP_find_dynamic_lex_p_sc,           /* 1026 */
-    PARROT_OP_find_caller_lex_p_s,             /* 1027 */
-    PARROT_OP_find_caller_lex_p_sc,            /* 1028 */
-    PARROT_OP_get_namespace_p,                 /* 1029 */
-    PARROT_OP_get_namespace_p_p,               /* 1030 */
-    PARROT_OP_get_namespace_p_pc,              /* 1031 */
-    PARROT_OP_get_hll_namespace_p,             /* 1032 */
-    PARROT_OP_get_hll_namespace_p_p,           /* 1033 */
-    PARROT_OP_get_hll_namespace_p_pc,          /* 1034 */
-    PARROT_OP_get_root_namespace_p,            /* 1035 */
-    PARROT_OP_get_root_namespace_p_p,          /* 1036 */
-    PARROT_OP_get_root_namespace_p_pc,         /* 1037 */
-    PARROT_OP_get_global_p_s,                  /* 1038 */
-    PARROT_OP_get_global_p_sc,                 /* 1039 */
-    PARROT_OP_get_global_p_p_s,                /* 1040 */
-    PARROT_OP_get_global_p_pc_s,               /* 1041 */
-    PARROT_OP_get_global_p_p_sc,               /* 1042 */
-    PARROT_OP_get_global_p_pc_sc,              /* 1043 */
-    PARROT_OP_get_hll_global_p_s,              /* 1044 */
-    PARROT_OP_get_hll_global_p_sc,             /* 1045 */
-    PARROT_OP_get_hll_global_p_p_s,            /* 1046 */
-    PARROT_OP_get_hll_global_p_pc_s,           /* 1047 */
-    PARROT_OP_get_hll_global_p_p_sc,           /* 1048 */
-    PARROT_OP_get_hll_global_p_pc_sc,          /* 1049 */
-    PARROT_OP_get_root_global_p_s,             /* 1050 */
-    PARROT_OP_get_root_global_p_sc,            /* 1051 */
-    PARROT_OP_get_root_global_p_p_s,           /* 1052 */
-    PARROT_OP_get_root_global_p_pc_s,          /* 1053 */
-    PARROT_OP_get_root_global_p_p_sc,          /* 1054 */
-    PARROT_OP_get_root_global_p_pc_sc,         /* 1055 */
-    PARROT_OP_set_global_s_p,                  /* 1056 */
-    PARROT_OP_set_global_sc_p,                 /* 1057 */
-    PARROT_OP_set_global_p_s_p,                /* 1058 */
-    PARROT_OP_set_global_pc_s_p,               /* 1059 */
-    PARROT_OP_set_global_p_sc_p,               /* 1060 */
-    PARROT_OP_set_global_pc_sc_p,              /* 1061 */
-    PARROT_OP_set_hll_global_s_p,              /* 1062 */
-    PARROT_OP_set_hll_global_sc_p,             /* 1063 */
-    PARROT_OP_set_hll_global_p_s_p,            /* 1064 */
-    PARROT_OP_set_hll_global_pc_s_p,           /* 1065 */
-    PARROT_OP_set_hll_global_p_sc_p,           /* 1066 */
-    PARROT_OP_set_hll_global_pc_sc_p,          /* 1067 */
-    PARROT_OP_set_root_global_s_p,             /* 1068 */
-    PARROT_OP_set_root_global_sc_p,            /* 1069 */
-    PARROT_OP_set_root_global_p_s_p,           /* 1070 */
-    PARROT_OP_set_root_global_pc_s_p,          /* 1071 */
-    PARROT_OP_set_root_global_p_sc_p,          /* 1072 */
-    PARROT_OP_set_root_global_pc_sc_p,         /* 1073 */
-    PARROT_OP_find_name_p_s,                   /* 1074 */
-    PARROT_OP_find_name_p_sc,                  /* 1075 */
-    PARROT_OP_find_sub_not_null_p_s,           /* 1076 */
-    PARROT_OP_find_sub_not_null_p_sc,          /* 1077 */
-    PARROT_OP_trap,                            /* 1078 */
-    PARROT_OP_set_label_p_ic,                  /* 1079 */
-    PARROT_OP_get_label_i_p,                   /* 1080 */
-    PARROT_OP_fetch_p_p_p_p,                   /* 1081 */
-    PARROT_OP_fetch_p_pc_p_p,                  /* 1082 */
-    PARROT_OP_fetch_p_p_pc_p,                  /* 1083 */
-    PARROT_OP_fetch_p_pc_pc_p,                 /* 1084 */
-    PARROT_OP_fetch_p_p_p_pc,                  /* 1085 */
-    PARROT_OP_fetch_p_pc_p_pc,                 /* 1086 */
-    PARROT_OP_fetch_p_p_pc_pc,                 /* 1087 */
-    PARROT_OP_fetch_p_pc_pc_pc,                /* 1088 */
-    PARROT_OP_fetch_p_p_i_p,                   /* 1089 */
-    PARROT_OP_fetch_p_pc_i_p,                  /* 1090 */
-    PARROT_OP_fetch_p_p_ic_p,                  /* 1091 */
-    PARROT_OP_fetch_p_pc_ic_p,                 /* 1092 */
-    PARROT_OP_fetch_p_p_i_pc,                  /* 1093 */
-    PARROT_OP_fetch_p_pc_i_pc,                 /* 1094 */
-    PARROT_OP_fetch_p_p_ic_pc,                 /* 1095 */
-    PARROT_OP_fetch_p_pc_ic_pc,                /* 1096 */
-    PARROT_OP_fetch_p_p_s_p,                   /* 1097 */
-    PARROT_OP_fetch_p_pc_s_p,                  /* 1098 */
-    PARROT_OP_fetch_p_p_sc_p,                  /* 1099 */
-    PARROT_OP_fetch_p_pc_sc_p,                 /* 1100 */
-    PARROT_OP_fetch_p_p_s_pc,                  /* 1101 */
-    PARROT_OP_fetch_p_pc_s_pc,                 /* 1102 */
-    PARROT_OP_fetch_p_p_sc_pc,                 /* 1103 */
-    PARROT_OP_fetch_p_pc_sc_pc,                /* 1104 */
-    PARROT_OP_vivify_p_p_p_p,                  /* 1105 */
-    PARROT_OP_vivify_p_pc_p_p,                 /* 1106 */
-    PARROT_OP_vivify_p_p_pc_p,                 /* 1107 */
-    PARROT_OP_vivify_p_pc_pc_p,                /* 1108 */
-    PARROT_OP_vivify_p_p_p_pc,                 /* 1109 */
-    PARROT_OP_vivify_p_pc_p_pc,                /* 1110 */
-    PARROT_OP_vivify_p_p_pc_pc,                /* 1111 */
-    PARROT_OP_vivify_p_pc_pc_pc,               /* 1112 */
-    PARROT_OP_vivify_p_p_i_p,                  /* 1113 */
-    PARROT_OP_vivify_p_pc_i_p,                 /* 1114 */
-    PARROT_OP_vivify_p_p_ic_p,                 /* 1115 */
-    PARROT_OP_vivify_p_pc_ic_p,                /* 1116 */
-    PARROT_OP_vivify_p_p_i_pc,                 /* 1117 */
-    PARROT_OP_vivify_p_pc_i_pc,                /* 1118 */
-    PARROT_OP_vivify_p_p_ic_pc,                /* 1119 */
-    PARROT_OP_vivify_p_pc_ic_pc,               /* 1120 */
-    PARROT_OP_vivify_p_p_s_p,                  /* 1121 */
-    PARROT_OP_vivify_p_pc_s_p,                 /* 1122 */
-    PARROT_OP_vivify_p_p_sc_p,                 /* 1123 */
-    PARROT_OP_vivify_p_pc_sc_p,                /* 1124 */
-    PARROT_OP_vivify_p_p_s_pc,                 /* 1125 */
-    PARROT_OP_vivify_p_pc_s_pc,                /* 1126 */
-    PARROT_OP_vivify_p_p_sc_pc,                /* 1127 */
-    PARROT_OP_vivify_p_pc_sc_pc,               /* 1128 */
-    PARROT_OP_new_p_s_i,                       /* 1129 */
-    PARROT_OP_new_p_sc_i,                      /* 1130 */
-    PARROT_OP_new_p_s_ic,                      /* 1131 */
-    PARROT_OP_new_p_sc_ic,                     /* 1132 */
-    PARROT_OP_new_p_p_i,                       /* 1133 */
-    PARROT_OP_new_p_pc_i,                      /* 1134 */
-    PARROT_OP_new_p_p_ic,                      /* 1135 */
-    PARROT_OP_new_p_pc_ic,                     /* 1136 */
-    PARROT_OP_root_new_p_p_i,                  /* 1137 */
-    PARROT_OP_root_new_p_pc_i,                 /* 1138 */
-    PARROT_OP_root_new_p_p_ic,                 /* 1139 */
-    PARROT_OP_root_new_p_pc_ic,                /* 1140 */
-    PARROT_OP_find_codepoint_i_s,              /* 1141 */
-    PARROT_OP_find_codepoint_i_sc,             /* 1142 */
-    PARROT_OP_unroll_p,                        /* 1143 */
-    PARROT_OP_unroll_pc                        /* 1144 */
+    PARROT_OP_sleep_i,                         /* 1003 */
+    PARROT_OP_sleep_ic,                        /* 1004 */
+    PARROT_OP_sleep_n,                         /* 1005 */
+    PARROT_OP_sleep_nc,                        /* 1006 */
+    PARROT_OP_store_lex_s_p,                   /* 1007 */
+    PARROT_OP_store_lex_sc_p,                  /* 1008 */
+    PARROT_OP_store_dynamic_lex_s_p,           /* 1009 */
+    PARROT_OP_store_dynamic_lex_sc_p,          /* 1010 */
+    PARROT_OP_find_lex_p_s,                    /* 1011 */
+    PARROT_OP_find_lex_p_sc,                   /* 1012 */
+    PARROT_OP_find_dynamic_lex_p_s,            /* 1013 */
+    PARROT_OP_find_dynamic_lex_p_sc,           /* 1014 */
+    PARROT_OP_find_caller_lex_p_s,             /* 1015 */
+    PARROT_OP_find_caller_lex_p_sc,            /* 1016 */
+    PARROT_OP_get_namespace_p,                 /* 1017 */
+    PARROT_OP_get_namespace_p_p,               /* 1018 */
+    PARROT_OP_get_namespace_p_pc,              /* 1019 */
+    PARROT_OP_get_hll_namespace_p,             /* 1020 */
+    PARROT_OP_get_hll_namespace_p_p,           /* 1021 */
+    PARROT_OP_get_hll_namespace_p_pc,          /* 1022 */
+    PARROT_OP_get_root_namespace_p,            /* 1023 */
+    PARROT_OP_get_root_namespace_p_p,          /* 1024 */
+    PARROT_OP_get_root_namespace_p_pc,         /* 1025 */
+    PARROT_OP_get_global_p_s,                  /* 1026 */
+    PARROT_OP_get_global_p_sc,                 /* 1027 */
+    PARROT_OP_get_global_p_p_s,                /* 1028 */
+    PARROT_OP_get_global_p_pc_s,               /* 1029 */
+    PARROT_OP_get_global_p_p_sc,               /* 1030 */
+    PARROT_OP_get_global_p_pc_sc,              /* 1031 */
+    PARROT_OP_get_hll_global_p_s,              /* 1032 */
+    PARROT_OP_get_hll_global_p_sc,             /* 1033 */
+    PARROT_OP_get_hll_global_p_p_s,            /* 1034 */
+    PARROT_OP_get_hll_global_p_pc_s,           /* 1035 */
+    PARROT_OP_get_hll_global_p_p_sc,           /* 1036 */
+    PARROT_OP_get_hll_global_p_pc_sc,          /* 1037 */
+    PARROT_OP_get_root_global_p_s,             /* 1038 */
+    PARROT_OP_get_root_global_p_sc,            /* 1039 */
+    PARROT_OP_get_root_global_p_p_s,           /* 1040 */
+    PARROT_OP_get_root_global_p_pc_s,          /* 1041 */
+    PARROT_OP_get_root_global_p_p_sc,          /* 1042 */
+    PARROT_OP_get_root_global_p_pc_sc,         /* 1043 */
+    PARROT_OP_set_global_s_p,                  /* 1044 */
+    PARROT_OP_set_global_sc_p,                 /* 1045 */
+    PARROT_OP_set_global_p_s_p,                /* 1046 */
+    PARROT_OP_set_global_pc_s_p,               /* 1047 */
+    PARROT_OP_set_global_p_sc_p,               /* 1048 */
+    PARROT_OP_set_global_pc_sc_p,              /* 1049 */
+    PARROT_OP_set_hll_global_s_p,              /* 1050 */
+    PARROT_OP_set_hll_global_sc_p,             /* 1051 */
+    PARROT_OP_set_hll_global_p_s_p,            /* 1052 */
+    PARROT_OP_set_hll_global_pc_s_p,           /* 1053 */
+    PARROT_OP_set_hll_global_p_sc_p,           /* 1054 */
+    PARROT_OP_set_hll_global_pc_sc_p,          /* 1055 */
+    PARROT_OP_set_root_global_s_p,             /* 1056 */
+    PARROT_OP_set_root_global_sc_p,            /* 1057 */
+    PARROT_OP_set_root_global_p_s_p,           /* 1058 */
+    PARROT_OP_set_root_global_pc_s_p,          /* 1059 */
+    PARROT_OP_set_root_global_p_sc_p,          /* 1060 */
+    PARROT_OP_set_root_global_pc_sc_p,         /* 1061 */
+    PARROT_OP_find_name_p_s,                   /* 1062 */
+    PARROT_OP_find_name_p_sc,                  /* 1063 */
+    PARROT_OP_find_sub_not_null_p_s,           /* 1064 */
+    PARROT_OP_find_sub_not_null_p_sc,          /* 1065 */
+    PARROT_OP_trap,                            /* 1066 */
+    PARROT_OP_set_label_p_ic,                  /* 1067 */
+    PARROT_OP_get_label_i_p,                   /* 1068 */
+    PARROT_OP_fetch_p_p_p_p,                   /* 1069 */
+    PARROT_OP_fetch_p_pc_p_p,                  /* 1070 */
+    PARROT_OP_fetch_p_p_pc_p,                  /* 1071 */
+    PARROT_OP_fetch_p_pc_pc_p,                 /* 1072 */
+    PARROT_OP_fetch_p_p_p_pc,                  /* 1073 */
+    PARROT_OP_fetch_p_pc_p_pc,                 /* 1074 */
+    PARROT_OP_fetch_p_p_pc_pc,                 /* 1075 */
+    PARROT_OP_fetch_p_pc_pc_pc,                /* 1076 */
+    PARROT_OP_fetch_p_p_i_p,                   /* 1077 */
+    PARROT_OP_fetch_p_pc_i_p,                  /* 1078 */
+    PARROT_OP_fetch_p_p_ic_p,                  /* 1079 */
+    PARROT_OP_fetch_p_pc_ic_p,                 /* 1080 */
+    PARROT_OP_fetch_p_p_i_pc,                  /* 1081 */
+    PARROT_OP_fetch_p_pc_i_pc,                 /* 1082 */
+    PARROT_OP_fetch_p_p_ic_pc,                 /* 1083 */
+    PARROT_OP_fetch_p_pc_ic_pc,                /* 1084 */
+    PARROT_OP_fetch_p_p_s_p,                   /* 1085 */
+    PARROT_OP_fetch_p_pc_s_p,                  /* 1086 */
+    PARROT_OP_fetch_p_p_sc_p,                  /* 1087 */
+    PARROT_OP_fetch_p_pc_sc_p,                 /* 1088 */
+    PARROT_OP_fetch_p_p_s_pc,                  /* 1089 */
+    PARROT_OP_fetch_p_pc_s_pc,                 /* 1090 */
+    PARROT_OP_fetch_p_p_sc_pc,                 /* 1091 */
+    PARROT_OP_fetch_p_pc_sc_pc,                /* 1092 */
+    PARROT_OP_vivify_p_p_p_p,                  /* 1093 */
+    PARROT_OP_vivify_p_pc_p_p,                 /* 1094 */
+    PARROT_OP_vivify_p_p_pc_p,                 /* 1095 */
+    PARROT_OP_vivify_p_pc_pc_p,                /* 1096 */
+    PARROT_OP_vivify_p_p_p_pc,                 /* 1097 */
+    PARROT_OP_vivify_p_pc_p_pc,                /* 1098 */
+    PARROT_OP_vivify_p_p_pc_pc,                /* 1099 */
+    PARROT_OP_vivify_p_pc_pc_pc,               /* 1100 */
+    PARROT_OP_vivify_p_p_i_p,                  /* 1101 */
+    PARROT_OP_vivify_p_pc_i_p,                 /* 1102 */
+    PARROT_OP_vivify_p_p_ic_p,                 /* 1103 */
+    PARROT_OP_vivify_p_pc_ic_p,                /* 1104 */
+    PARROT_OP_vivify_p_p_i_pc,                 /* 1105 */
+    PARROT_OP_vivify_p_pc_i_pc,                /* 1106 */
+    PARROT_OP_vivify_p_p_ic_pc,                /* 1107 */
+    PARROT_OP_vivify_p_pc_ic_pc,               /* 1108 */
+    PARROT_OP_vivify_p_p_s_p,                  /* 1109 */
+    PARROT_OP_vivify_p_pc_s_p,                 /* 1110 */
+    PARROT_OP_vivify_p_p_sc_p,                 /* 1111 */
+    PARROT_OP_vivify_p_pc_sc_p,                /* 1112 */
+    PARROT_OP_vivify_p_p_s_pc,                 /* 1113 */
+    PARROT_OP_vivify_p_pc_s_pc,                /* 1114 */
+    PARROT_OP_vivify_p_p_sc_pc,                /* 1115 */
+    PARROT_OP_vivify_p_pc_sc_pc,               /* 1116 */
+    PARROT_OP_new_p_s_i,                       /* 1117 */
+    PARROT_OP_new_p_sc_i,                      /* 1118 */
+    PARROT_OP_new_p_s_ic,                      /* 1119 */
+    PARROT_OP_new_p_sc_ic,                     /* 1120 */
+    PARROT_OP_new_p_p_i,                       /* 1121 */
+    PARROT_OP_new_p_pc_i,                      /* 1122 */
+    PARROT_OP_new_p_p_ic,                      /* 1123 */
+    PARROT_OP_new_p_pc_ic,                     /* 1124 */
+    PARROT_OP_root_new_p_p_i,                  /* 1125 */
+    PARROT_OP_root_new_p_pc_i,                 /* 1126 */
+    PARROT_OP_root_new_p_p_ic,                 /* 1127 */
+    PARROT_OP_root_new_p_pc_ic,                /* 1128 */
+    PARROT_OP_find_codepoint_i_s,              /* 1129 */
+    PARROT_OP_find_codepoint_i_sc,             /* 1130 */
+    PARROT_OP_unroll_p,                        /* 1131 */
+    PARROT_OP_unroll_pc                        /* 1132 */
 
 } parrot_opcode_enums;
 

Modified: branches/ops_massacre/runtime/parrot/library/Archive/Zip.pir
==============================================================================
--- branches/ops_massacre/runtime/parrot/library/Archive/Zip.pir	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/runtime/parrot/library/Archive/Zip.pir	Tue May 25 03:05:26 2010	(r46982)
@@ -13,6 +13,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .include 'stat.pasm'
 .include 'tm.pasm'
 

Modified: branches/ops_massacre/runtime/parrot/library/Configure/genfile.pir
==============================================================================
--- branches/ops_massacre/runtime/parrot/library/Configure/genfile.pir	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/runtime/parrot/library/Configure/genfile.pir	Tue May 25 03:05:26 2010	(r46982)
@@ -38,6 +38,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .include 'sysinfo.pasm'
 
 .sub 'genfile'

Modified: branches/ops_massacre/runtime/parrot/library/HTTP/Message.pir
==============================================================================
--- branches/ops_massacre/runtime/parrot/library/HTTP/Message.pir	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/runtime/parrot/library/HTTP/Message.pir	Tue May 25 03:05:26 2010	(r46982)
@@ -18,6 +18,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .namespace ['HTTP';'Date']
 
 .include 'tm.pasm'

Modified: branches/ops_massacre/runtime/parrot/library/distutils.pir
==============================================================================
--- branches/ops_massacre/runtime/parrot/library/distutils.pir	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/runtime/parrot/library/distutils.pir	Tue May 25 03:05:26 2010	(r46982)
@@ -172,6 +172,8 @@
 
 =cut
 
+.loadlib 'sys_ops'
+
 .sub '__onload' :load :init :anon
     load_bytecode 'osutils.pbc'
     $P0 = new 'Hash'

Modified: branches/ops_massacre/runtime/parrot/library/pcre.pir
==============================================================================
--- branches/ops_massacre/runtime/parrot/library/pcre.pir	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/runtime/parrot/library/pcre.pir	Tue May 25 03:05:26 2010	(r46982)
@@ -45,6 +45,7 @@
 
 =cut
 
+.loadlib 'sys_ops'
 .include "sysinfo.pasm"
 
 .sub init

Modified: branches/ops_massacre/src/dynoplibs/Defines.in
==============================================================================
--- branches/ops_massacre/src/dynoplibs/Defines.in	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/dynoplibs/Defines.in	Tue May 25 03:05:26 2010	(r46982)
@@ -5,6 +5,7 @@
     $(DYNEXT_DIR)/trans_ops$(LOAD_EXT) \
     $(DYNEXT_DIR)/bit_ops$(LOAD_EXT) \
     $(DYNEXT_DIR)/debug_ops$(LOAD_EXT) \
+    $(DYNEXT_DIR)/sys_ops$(LOAD_EXT) \
 
 DYNOPLIBS_CLEANUPS = \
     src/dynoplibs/*.c \

Modified: branches/ops_massacre/src/dynoplibs/Rules.in
==============================================================================
--- branches/ops_massacre/src/dynoplibs/Rules.in	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/dynoplibs/Rules.in	Tue May 25 03:05:26 2010	(r46982)
@@ -96,3 +96,18 @@
 
 src/dynoplibs/debug_ops.c: src/dynoplibs/debug.ops $(OPS2C)
 	$(OPS2C) --dynamic src/dynoplibs/debug.ops
+
+#########################
+
+$(DYNEXT_DIR)/sys_ops$(LOAD_EXT): src/dynoplibs/sys_ops$(O) $(LIBPARROT)
+	$(LD) @ld_out@$@ src/dynoplibs/sys_ops$(O) $(LINKARGS)
+#IF(win32):	if exist $@.manifest mt.exe -nologo -manifest $@.manifest -outputresource:$@;2
+#IF(cygwin or hpux):	$(CHMOD) 0775 $@
+
+src/dynoplibs/sys_ops$(O): $(DYNOP_O_DEPS) \
+    src/dynoplibs/sys_ops.c src/dynoplibs/sys_ops.h
+
+src/dynoplibs/sys_ops.h: src/dynoplibs/sys_ops.c
+
+src/dynoplibs/sys_ops.c: src/dynoplibs/sys.ops $(OPS2C)
+	$(OPS2C) --dynamic src/dynoplibs/sys.ops

Added: branches/ops_massacre/src/dynoplibs/sys.ops
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ops_massacre/src/dynoplibs/sys.ops	Tue May 25 03:05:26 2010	(r46982)
@@ -0,0 +1,311 @@
+/*
+ * $Id: sys.ops 46691 2010-05-16 00:39:58Z plobsing $
+** sys.ops
+*/
+
+=head1 NAME
+
+sys.ops - System Interaction Dynops
+
+=head1 DESCRIPTION
+
+Operations that allow the user to interact with the system.
+
+=over 4
+
+=cut
+
+BEGIN_OPS_PREAMBLE
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+#  include <sys/utsname.h>
+#endif
+
+END_OPS_PREAMBLE
+
+########################################
+
+=item B<err>(out INT)
+
+Store the system error code in $1.
+
+=item B<err>(out STR)
+
+Store the system error message in $1.
+
+=item B<err>(out STR, in INT)
+
+Get the system error message for the system error code $2
+and store it in $1.
+
+=cut
+
+inline op err(out INT) {
+    $1 = errno;
+}
+
+op err(out STR) {
+    const char * const tmp = strerror(errno);
+    $1 = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+}
+
+op err(out STR, in INT) {
+    const char * const tmp = strerror($2);
+    $1 = string_make(interp, tmp, strlen(tmp), "ascii", 0);
+}
+
+########################################
+
+=item B<gmtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string.
+
+=item B<localtime>(out STR, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and turn it into a
+formatted string. The time is adjusted to localtime before formatting.
+
+=item B<decodetime>(out PMC, in INT)
+
+Take the integer, which represents GMT epoch-seconds, and return an Array
+PMC which represents the decoded time. The array elements are
+(include "tm.pasm" for the constants):
+
+=over 4
+
+=item 0, .TM_SEC
+
+Seconds (0-60)
+
+=item 1, .TM_MIN
+
+Minutes (0-59)
+
+=item 2, .TM_HOUR
+
+Hours (0-23)
+
+=item 3, .TM_MDAY
+
+Day of month (1-31)
+
+=item 4, .TM_MON
+
+Month of year (1-12) (Note, B<actual> month, not month - 1)
+
+=item 5, .TM_YEAR
+
+Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
+
+=item 6, .TM_WDAY
+
+Day of week. Sunday is day 0
+
+=item 7, .TM_YDAY
+
+Day of year (0-365)
+
+=item 8, .TM_ISDST
+
+Daylight savings/summer time in effect
+
+=back
+
+Timezone name will be GMT and offset will be 0, since the time is taken and
+decoded as GMT.
+
+=item B<decodelocaltime>(out PMC, in INT)
+
+Take the passed in  integer, which represents GMT epoch-seconds, and return
+an array as in decodetime. The time is first shifted to localtime before
+decoding.
+
+=cut
+
+op gmtime(out STR, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    char resultbuffer[26];
+    Parrot_gmtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op localtime(out STR, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    char resultbuffer[26];
+    Parrot_localtime_r(&t, &tm);
+    Parrot_asctime_r(&tm, resultbuffer);
+    $1 = Parrot_str_new(interp, resultbuffer, 25);
+}
+
+op decodetime(out PMC, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    Parrot_gmtime_r(&t, &tm);
+    $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+op decodelocaltime(out PMC, in INT) {
+    struct tm tm;
+    const time_t t = (time_t) $2;
+    Parrot_localtime_r(&t, &tm);
+    $1 = Parrot_tm_to_array(interp, &tm);
+}
+
+########################################
+
+=item B<sysinfo>(out STR, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_INTSIZE> The size of a platform integer
+
+=item C<PARROT_FLOATSIZE> The size of a platform float
+
+=item C<PARROT_POINTERSIZE> The size of a platform pointer (Largest possible data pointer)
+
+=item C<PARROT_INTMAX> The maximum value of a platform integer
+
+=item C<PARROT_INTMIN> The minimum value of a platform integer
+
+=back
+
+=item B<sysinfo>(out INT, in INT)
+
+Return system information. The values it returns depends on what you
+ask. They are:
+
+=over 4
+
+=item C<PARROT_OS> The OS name
+
+This is something like "OS X", "MacOS", "Windows", or "VMS".
+
+=item C<PARROT_OS_VERSION> The OS version string
+
+This is the current (hopefully) OS Version. For OSes that have plain
+version numbers it will be the version number. For OSes that name
+their versions, it will be the version name.
+
+On HP/UX, this may be something like 11.2, while on Windows it may be
+"95", "98", "2000", "NT", "ME", or "XP".
+
+=item C<PARROT_OS_VERSION_NUMBER> The OS version number string
+
+On OSes that don't name themselves, this will be the same as what's
+returned in the OS version string. On OSes that I<do> name themselves,
+this will be a more specific version number. In all cases it is OS
+dependent.
+
+=item C<CPU_ARCH> The CPU architecture
+
+The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
+
+=item C<CPU_TYPE> The CPU model
+
+The model name of the current system's CPU. This is something like
+"EV68", "Athlon", or "Pentium III".
+
+=back
+
+Note that some of these values may be set at Parrot compile time,
+rather than at runtime, if the system has no reliable way to fetch the
+data dynamically, or if there is no way the value can change. Also,
+the value returned may be somewhat misleading--Parrot running under a
+VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
+even if it's really running on an OS X system.
+
+=cut
+
+inline op sysinfo(out STR, in INT) {
+    switch ($2) {
+      case PARROT_OS:
+        $1 = Parrot_str_new_constant(interp, BUILD_OS_NAME);
+        break;
+
+#ifdef PARROT_HAS_HEADER_SYSUTSNAME
+      case PARROT_OS_VERSION:
+        {
+            struct utsname info;
+            if (uname(&info) == 0) {
+                $1 = string_make(interp, info.version, strlen(info.version), "ascii", 0);
+            }
+        }
+        break;
+
+      case PARROT_OS_VERSION_NUMBER:
+        {
+            struct utsname info;
+            if (uname(&info) == 0) {
+                $1 = string_make(interp, info.release, strlen(info.version), "ascii", 0);
+            }
+        }
+        break;
+#endif
+
+      case CPU_ARCH:
+        $1 = string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
+        break;
+
+      case CPU_TYPE:
+      default:
+        $1 = string_from_literal(interp, "");
+        break;
+    }
+}
+
+inline op sysinfo(out INT, in INT) {
+    switch ($2) {
+      case PARROT_INTSIZE:
+        $1 = sizeof (INTVAL);
+        break;
+
+      case PARROT_FLOATSIZE:
+        $1 = sizeof (FLOATVAL);
+        break;
+
+      case PARROT_POINTERSIZE:
+        $1 = sizeof (void *);
+        break;
+
+      case PARROT_INTMIN:
+        $1 = PARROT_INTVAL_MIN;
+        break;
+
+      case PARROT_INTMAX:
+        $1 = PARROT_INTVAL_MAX;
+        break;
+
+      default:
+        $1 = -1;
+        break;
+    }
+}
+
+###############################################################################
+
+=back
+
+=head1 COPYRIGHT
+
+Copyright (C) 2010, Parrot Foundation.
+
+=head1 LICENSE
+
+This program is free software. It is subject to the same license
+as the Parrot interp itself.
+
+=cut
+
+/*
+ * Local variables:
+ *   c-file-style: "parrot"
+ * End:
+ * vim: expandtab shiftwidth=4:
+ */

Modified: branches/ops_massacre/src/interp/inter_misc.c
==============================================================================
--- branches/ops_massacre/src/interp/inter_misc.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/interp/inter_misc.c	Tue May 25 03:05:26 2010	(r46982)
@@ -27,10 +27,6 @@
 
 #include "parrot/has_header.h"
 
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-#  include <sys/utsname.h>
-#endif
-
 /* HEADERIZER HFILE: include/parrot/interpreter.h */
 
 /*
@@ -365,106 +361,6 @@
 }
 
 /*
-
-=item C<INTVAL sysinfo_i(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info.
-
-C<info_wanted> is one of:
-
-    PARROT_INTSIZE
-    PARROT_FLOATSIZE
-    PARROT_POINTERSIZE
-    PARROT_INTMAX
-    PARROT_INTMIN
-
-In unknown info is requested then -1 is returned.
-
-=cut
-
-*/
-
-PARROT_WARN_UNUSED_RESULT
-PARROT_CONST_FUNCTION
-INTVAL
-sysinfo_i(SHIM_INTERP, INTVAL info_wanted)
-{
-    ASSERT_ARGS(sysinfo_i)
-    switch (info_wanted) {
-      case PARROT_INTSIZE:
-        return sizeof (INTVAL);
-      case PARROT_FLOATSIZE:
-        return sizeof (FLOATVAL);
-      case PARROT_POINTERSIZE:
-        return sizeof (void *);
-      case PARROT_INTMIN:
-        return PARROT_INTVAL_MIN;
-      case PARROT_INTMAX:
-        return PARROT_INTVAL_MAX;
-      default:
-        return -1;
-    }
-}
-
-/*
-
-=item C<STRING * sysinfo_s(PARROT_INTERP, INTVAL info_wanted)>
-
-Returns the system info string.
-
-C<info_wanted> is one of:
-
-    PARROT_OS
-    PARROT_OS_VERSION
-    PARROT_OS_VERSION_NUMBER
-    CPU_ARCH
-    CPU_TYPE
-
-If unknown info is requested then an empty string is returned.
-
-=cut
-
-*/
-
-PARROT_CANNOT_RETURN_NULL
-PARROT_WARN_UNUSED_RESULT
-STRING *
-sysinfo_s(PARROT_INTERP, INTVAL info_wanted)
-{
-    ASSERT_ARGS(sysinfo_s)
-    switch (info_wanted) {
-      case PARROT_OS:
-        return Parrot_str_new_constant(interp, BUILD_OS_NAME);
-      case PARROT_OS_VERSION:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-        {
-            struct utsname info;
-            if (uname(&info) == 0) {
-                return string_make(interp, info.version, strlen(info.version), "ascii", 0);
-            }
-        }
-#endif
-        break;
-      case PARROT_OS_VERSION_NUMBER:
-#ifdef PARROT_HAS_HEADER_SYSUTSNAME
-        {
-            struct utsname info;
-            if (uname(&info) == 0) {
-                return string_make(interp, info.release, strlen(info.version), "ascii", 0);
-            }
-        }
-#endif
-        break;
-      case CPU_ARCH:
-        return string_make(interp, PARROT_CPU_ARCH, sizeof (PARROT_CPU_ARCH) - 1, "ascii", 0);
-      case CPU_TYPE:
-      default:
-        break;
-    }
-    return CONST_STRING(interp, "");
-}
-
-/*
  * Local variables:
  *   c-file-style: "parrot"
  * End:

Modified: branches/ops_massacre/src/ops/core_ops.c
==============================================================================
--- branches/ops_massacre/src/ops/core_ops.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/ops/core_ops.c	Tue May 25 03:05:26 2010	(r46982)
@@ -61,13 +61,13 @@
 
 
 
-INTVAL core_numops = 1146;
+INTVAL core_numops = 1134;
 
 /*
 ** Op Function Table:
 */
 
-static op_func_t core_op_func_table[1146] = {  Parrot_end,                                        /*      0 */
+static op_func_t core_op_func_table[1134] = {  Parrot_end,                                        /*      0 */
   Parrot_noop,                                       /*      1 */
   Parrot_check_events,                               /*      2 */
   Parrot_check_events__,                             /*      3 */
@@ -1070,148 +1070,136 @@
   Parrot_err_s_ic,                                   /*   1000 */
   Parrot_time_i,                                     /*   1001 */
   Parrot_time_n,                                     /*   1002 */
-  Parrot_gmtime_s_i,                                 /*   1003 */
-  Parrot_gmtime_s_ic,                                /*   1004 */
-  Parrot_localtime_s_i,                              /*   1005 */
-  Parrot_localtime_s_ic,                             /*   1006 */
-  Parrot_decodetime_p_i,                             /*   1007 */
-  Parrot_decodetime_p_ic,                            /*   1008 */
-  Parrot_decodelocaltime_p_i,                        /*   1009 */
-  Parrot_decodelocaltime_p_ic,                       /*   1010 */
-  Parrot_sysinfo_s_i,                                /*   1011 */
-  Parrot_sysinfo_s_ic,                               /*   1012 */
-  Parrot_sysinfo_i_i,                                /*   1013 */
-  Parrot_sysinfo_i_ic,                               /*   1014 */
-  Parrot_sleep_i,                                    /*   1015 */
-  Parrot_sleep_ic,                                   /*   1016 */
-  Parrot_sleep_n,                                    /*   1017 */
-  Parrot_sleep_nc,                                   /*   1018 */
-  Parrot_store_lex_s_p,                              /*   1019 */
-  Parrot_store_lex_sc_p,                             /*   1020 */
-  Parrot_store_dynamic_lex_s_p,                      /*   1021 */
-  Parrot_store_dynamic_lex_sc_p,                     /*   1022 */
-  Parrot_find_lex_p_s,                               /*   1023 */
-  Parrot_find_lex_p_sc,                              /*   1024 */
-  Parrot_find_dynamic_lex_p_s,                       /*   1025 */
-  Parrot_find_dynamic_lex_p_sc,                      /*   1026 */
-  Parrot_find_caller_lex_p_s,                        /*   1027 */
-  Parrot_find_caller_lex_p_sc,                       /*   1028 */
-  Parrot_get_namespace_p,                            /*   1029 */
-  Parrot_get_namespace_p_p,                          /*   1030 */
-  Parrot_get_namespace_p_pc,                         /*   1031 */
-  Parrot_get_hll_namespace_p,                        /*   1032 */
-  Parrot_get_hll_namespace_p_p,                      /*   1033 */
-  Parrot_get_hll_namespace_p_pc,                     /*   1034 */
-  Parrot_get_root_namespace_p,                       /*   1035 */
-  Parrot_get_root_namespace_p_p,                     /*   1036 */
-  Parrot_get_root_namespace_p_pc,                    /*   1037 */
-  Parrot_get_global_p_s,                             /*   1038 */
-  Parrot_get_global_p_sc,                            /*   1039 */
-  Parrot_get_global_p_p_s,                           /*   1040 */
-  Parrot_get_global_p_pc_s,                          /*   1041 */
-  Parrot_get_global_p_p_sc,                          /*   1042 */
-  Parrot_get_global_p_pc_sc,                         /*   1043 */
-  Parrot_get_hll_global_p_s,                         /*   1044 */
-  Parrot_get_hll_global_p_sc,                        /*   1045 */
-  Parrot_get_hll_global_p_p_s,                       /*   1046 */
-  Parrot_get_hll_global_p_pc_s,                      /*   1047 */
-  Parrot_get_hll_global_p_p_sc,                      /*   1048 */
-  Parrot_get_hll_global_p_pc_sc,                     /*   1049 */
-  Parrot_get_root_global_p_s,                        /*   1050 */
-  Parrot_get_root_global_p_sc,                       /*   1051 */
-  Parrot_get_root_global_p_p_s,                      /*   1052 */
-  Parrot_get_root_global_p_pc_s,                     /*   1053 */
-  Parrot_get_root_global_p_p_sc,                     /*   1054 */
-  Parrot_get_root_global_p_pc_sc,                    /*   1055 */
-  Parrot_set_global_s_p,                             /*   1056 */
-  Parrot_set_global_sc_p,                            /*   1057 */
-  Parrot_set_global_p_s_p,                           /*   1058 */
-  Parrot_set_global_pc_s_p,                          /*   1059 */
-  Parrot_set_global_p_sc_p,                          /*   1060 */
-  Parrot_set_global_pc_sc_p,                         /*   1061 */
-  Parrot_set_hll_global_s_p,                         /*   1062 */
-  Parrot_set_hll_global_sc_p,                        /*   1063 */
-  Parrot_set_hll_global_p_s_p,                       /*   1064 */
-  Parrot_set_hll_global_pc_s_p,                      /*   1065 */
-  Parrot_set_hll_global_p_sc_p,                      /*   1066 */
-  Parrot_set_hll_global_pc_sc_p,                     /*   1067 */
-  Parrot_set_root_global_s_p,                        /*   1068 */
-  Parrot_set_root_global_sc_p,                       /*   1069 */
-  Parrot_set_root_global_p_s_p,                      /*   1070 */
-  Parrot_set_root_global_pc_s_p,                     /*   1071 */
-  Parrot_set_root_global_p_sc_p,                     /*   1072 */
-  Parrot_set_root_global_pc_sc_p,                    /*   1073 */
-  Parrot_find_name_p_s,                              /*   1074 */
-  Parrot_find_name_p_sc,                             /*   1075 */
-  Parrot_find_sub_not_null_p_s,                      /*   1076 */
-  Parrot_find_sub_not_null_p_sc,                     /*   1077 */
-  Parrot_trap,                                       /*   1078 */
-  Parrot_set_label_p_ic,                             /*   1079 */
-  Parrot_get_label_i_p,                              /*   1080 */
-  Parrot_fetch_p_p_p_p,                              /*   1081 */
-  Parrot_fetch_p_pc_p_p,                             /*   1082 */
-  Parrot_fetch_p_p_pc_p,                             /*   1083 */
-  Parrot_fetch_p_pc_pc_p,                            /*   1084 */
-  Parrot_fetch_p_p_p_pc,                             /*   1085 */
-  Parrot_fetch_p_pc_p_pc,                            /*   1086 */
-  Parrot_fetch_p_p_pc_pc,                            /*   1087 */
-  Parrot_fetch_p_pc_pc_pc,                           /*   1088 */
-  Parrot_fetch_p_p_i_p,                              /*   1089 */
-  Parrot_fetch_p_pc_i_p,                             /*   1090 */
-  Parrot_fetch_p_p_ic_p,                             /*   1091 */
-  Parrot_fetch_p_pc_ic_p,                            /*   1092 */
-  Parrot_fetch_p_p_i_pc,                             /*   1093 */
-  Parrot_fetch_p_pc_i_pc,                            /*   1094 */
-  Parrot_fetch_p_p_ic_pc,                            /*   1095 */
-  Parrot_fetch_p_pc_ic_pc,                           /*   1096 */
-  Parrot_fetch_p_p_s_p,                              /*   1097 */
-  Parrot_fetch_p_pc_s_p,                             /*   1098 */
-  Parrot_fetch_p_p_sc_p,                             /*   1099 */
-  Parrot_fetch_p_pc_sc_p,                            /*   1100 */
-  Parrot_fetch_p_p_s_pc,                             /*   1101 */
-  Parrot_fetch_p_pc_s_pc,                            /*   1102 */
-  Parrot_fetch_p_p_sc_pc,                            /*   1103 */
-  Parrot_fetch_p_pc_sc_pc,                           /*   1104 */
-  Parrot_vivify_p_p_p_p,                             /*   1105 */
-  Parrot_vivify_p_pc_p_p,                            /*   1106 */
-  Parrot_vivify_p_p_pc_p,                            /*   1107 */
-  Parrot_vivify_p_pc_pc_p,                           /*   1108 */
-  Parrot_vivify_p_p_p_pc,                            /*   1109 */
-  Parrot_vivify_p_pc_p_pc,                           /*   1110 */
-  Parrot_vivify_p_p_pc_pc,                           /*   1111 */
-  Parrot_vivify_p_pc_pc_pc,                          /*   1112 */
-  Parrot_vivify_p_p_i_p,                             /*   1113 */
-  Parrot_vivify_p_pc_i_p,                            /*   1114 */
-  Parrot_vivify_p_p_ic_p,                            /*   1115 */
-  Parrot_vivify_p_pc_ic_p,                           /*   1116 */
-  Parrot_vivify_p_p_i_pc,                            /*   1117 */
-  Parrot_vivify_p_pc_i_pc,                           /*   1118 */
-  Parrot_vivify_p_p_ic_pc,                           /*   1119 */
-  Parrot_vivify_p_pc_ic_pc,                          /*   1120 */
-  Parrot_vivify_p_p_s_p,                             /*   1121 */
-  Parrot_vivify_p_pc_s_p,                            /*   1122 */
-  Parrot_vivify_p_p_sc_p,                            /*   1123 */
-  Parrot_vivify_p_pc_sc_p,                           /*   1124 */
-  Parrot_vivify_p_p_s_pc,                            /*   1125 */
-  Parrot_vivify_p_pc_s_pc,                           /*   1126 */
-  Parrot_vivify_p_p_sc_pc,                           /*   1127 */
-  Parrot_vivify_p_pc_sc_pc,                          /*   1128 */
-  Parrot_new_p_s_i,                                  /*   1129 */
-  Parrot_new_p_sc_i,                                 /*   1130 */
-  Parrot_new_p_s_ic,                                 /*   1131 */
-  Parrot_new_p_sc_ic,                                /*   1132 */
-  Parrot_new_p_p_i,                                  /*   1133 */
-  Parrot_new_p_pc_i,                                 /*   1134 */
-  Parrot_new_p_p_ic,                                 /*   1135 */
-  Parrot_new_p_pc_ic,                                /*   1136 */
-  Parrot_root_new_p_p_i,                             /*   1137 */
-  Parrot_root_new_p_pc_i,                            /*   1138 */
-  Parrot_root_new_p_p_ic,                            /*   1139 */
-  Parrot_root_new_p_pc_ic,                           /*   1140 */
-  Parrot_find_codepoint_i_s,                         /*   1141 */
-  Parrot_find_codepoint_i_sc,                        /*   1142 */
-  Parrot_unroll_p,                                   /*   1143 */
-  Parrot_unroll_pc,                                  /*   1144 */
+  Parrot_sleep_i,                                    /*   1003 */
+  Parrot_sleep_ic,                                   /*   1004 */
+  Parrot_sleep_n,                                    /*   1005 */
+  Parrot_sleep_nc,                                   /*   1006 */
+  Parrot_store_lex_s_p,                              /*   1007 */
+  Parrot_store_lex_sc_p,                             /*   1008 */
+  Parrot_store_dynamic_lex_s_p,                      /*   1009 */
+  Parrot_store_dynamic_lex_sc_p,                     /*   1010 */
+  Parrot_find_lex_p_s,                               /*   1011 */
+  Parrot_find_lex_p_sc,                              /*   1012 */
+  Parrot_find_dynamic_lex_p_s,                       /*   1013 */
+  Parrot_find_dynamic_lex_p_sc,                      /*   1014 */
+  Parrot_find_caller_lex_p_s,                        /*   1015 */
+  Parrot_find_caller_lex_p_sc,                       /*   1016 */
+  Parrot_get_namespace_p,                            /*   1017 */
+  Parrot_get_namespace_p_p,                          /*   1018 */
+  Parrot_get_namespace_p_pc,                         /*   1019 */
+  Parrot_get_hll_namespace_p,                        /*   1020 */
+  Parrot_get_hll_namespace_p_p,                      /*   1021 */
+  Parrot_get_hll_namespace_p_pc,                     /*   1022 */
+  Parrot_get_root_namespace_p,                       /*   1023 */
+  Parrot_get_root_namespace_p_p,                     /*   1024 */
+  Parrot_get_root_namespace_p_pc,                    /*   1025 */
+  Parrot_get_global_p_s,                             /*   1026 */
+  Parrot_get_global_p_sc,                            /*   1027 */
+  Parrot_get_global_p_p_s,                           /*   1028 */
+  Parrot_get_global_p_pc_s,                          /*   1029 */
+  Parrot_get_global_p_p_sc,                          /*   1030 */
+  Parrot_get_global_p_pc_sc,                         /*   1031 */
+  Parrot_get_hll_global_p_s,                         /*   1032 */
+  Parrot_get_hll_global_p_sc,                        /*   1033 */
+  Parrot_get_hll_global_p_p_s,                       /*   1034 */
+  Parrot_get_hll_global_p_pc_s,                      /*   1035 */
+  Parrot_get_hll_global_p_p_sc,                      /*   1036 */
+  Parrot_get_hll_global_p_pc_sc,                     /*   1037 */
+  Parrot_get_root_global_p_s,                        /*   1038 */
+  Parrot_get_root_global_p_sc,                       /*   1039 */
+  Parrot_get_root_global_p_p_s,                      /*   1040 */
+  Parrot_get_root_global_p_pc_s,                     /*   1041 */
+  Parrot_get_root_global_p_p_sc,                     /*   1042 */
+  Parrot_get_root_global_p_pc_sc,                    /*   1043 */
+  Parrot_set_global_s_p,                             /*   1044 */
+  Parrot_set_global_sc_p,                            /*   1045 */
+  Parrot_set_global_p_s_p,                           /*   1046 */
+  Parrot_set_global_pc_s_p,                          /*   1047 */
+  Parrot_set_global_p_sc_p,                          /*   1048 */
+  Parrot_set_global_pc_sc_p,                         /*   1049 */
+  Parrot_set_hll_global_s_p,                         /*   1050 */
+  Parrot_set_hll_global_sc_p,                        /*   1051 */
+  Parrot_set_hll_global_p_s_p,                       /*   1052 */
+  Parrot_set_hll_global_pc_s_p,                      /*   1053 */
+  Parrot_set_hll_global_p_sc_p,                      /*   1054 */
+  Parrot_set_hll_global_pc_sc_p,                     /*   1055 */
+  Parrot_set_root_global_s_p,                        /*   1056 */
+  Parrot_set_root_global_sc_p,                       /*   1057 */
+  Parrot_set_root_global_p_s_p,                      /*   1058 */
+  Parrot_set_root_global_pc_s_p,                     /*   1059 */
+  Parrot_set_root_global_p_sc_p,                     /*   1060 */
+  Parrot_set_root_global_pc_sc_p,                    /*   1061 */
+  Parrot_find_name_p_s,                              /*   1062 */
+  Parrot_find_name_p_sc,                             /*   1063 */
+  Parrot_find_sub_not_null_p_s,                      /*   1064 */
+  Parrot_find_sub_not_null_p_sc,                     /*   1065 */
+  Parrot_trap,                                       /*   1066 */
+  Parrot_set_label_p_ic,                             /*   1067 */
+  Parrot_get_label_i_p,                              /*   1068 */
+  Parrot_fetch_p_p_p_p,                              /*   1069 */
+  Parrot_fetch_p_pc_p_p,                             /*   1070 */
+  Parrot_fetch_p_p_pc_p,                             /*   1071 */
+  Parrot_fetch_p_pc_pc_p,                            /*   1072 */
+  Parrot_fetch_p_p_p_pc,                             /*   1073 */
+  Parrot_fetch_p_pc_p_pc,                            /*   1074 */
+  Parrot_fetch_p_p_pc_pc,                            /*   1075 */
+  Parrot_fetch_p_pc_pc_pc,                           /*   1076 */
+  Parrot_fetch_p_p_i_p,                              /*   1077 */
+  Parrot_fetch_p_pc_i_p,                             /*   1078 */
+  Parrot_fetch_p_p_ic_p,                             /*   1079 */
+  Parrot_fetch_p_pc_ic_p,                            /*   1080 */
+  Parrot_fetch_p_p_i_pc,                             /*   1081 */
+  Parrot_fetch_p_pc_i_pc,                            /*   1082 */
+  Parrot_fetch_p_p_ic_pc,                            /*   1083 */
+  Parrot_fetch_p_pc_ic_pc,                           /*   1084 */
+  Parrot_fetch_p_p_s_p,                              /*   1085 */
+  Parrot_fetch_p_pc_s_p,                             /*   1086 */
+  Parrot_fetch_p_p_sc_p,                             /*   1087 */
+  Parrot_fetch_p_pc_sc_p,                            /*   1088 */
+  Parrot_fetch_p_p_s_pc,                             /*   1089 */
+  Parrot_fetch_p_pc_s_pc,                            /*   1090 */
+  Parrot_fetch_p_p_sc_pc,                            /*   1091 */
+  Parrot_fetch_p_pc_sc_pc,                           /*   1092 */
+  Parrot_vivify_p_p_p_p,                             /*   1093 */
+  Parrot_vivify_p_pc_p_p,                            /*   1094 */
+  Parrot_vivify_p_p_pc_p,                            /*   1095 */
+  Parrot_vivify_p_pc_pc_p,                           /*   1096 */
+  Parrot_vivify_p_p_p_pc,                            /*   1097 */
+  Parrot_vivify_p_pc_p_pc,                           /*   1098 */
+  Parrot_vivify_p_p_pc_pc,                           /*   1099 */
+  Parrot_vivify_p_pc_pc_pc,                          /*   1100 */
+  Parrot_vivify_p_p_i_p,                             /*   1101 */
+  Parrot_vivify_p_pc_i_p,                            /*   1102 */
+  Parrot_vivify_p_p_ic_p,                            /*   1103 */
+  Parrot_vivify_p_pc_ic_p,                           /*   1104 */
+  Parrot_vivify_p_p_i_pc,                            /*   1105 */
+  Parrot_vivify_p_pc_i_pc,                           /*   1106 */
+  Parrot_vivify_p_p_ic_pc,                           /*   1107 */
+  Parrot_vivify_p_pc_ic_pc,                          /*   1108 */
+  Parrot_vivify_p_p_s_p,                             /*   1109 */
+  Parrot_vivify_p_pc_s_p,                            /*   1110 */
+  Parrot_vivify_p_p_sc_p,                            /*   1111 */
+  Parrot_vivify_p_pc_sc_p,                           /*   1112 */
+  Parrot_vivify_p_p_s_pc,                            /*   1113 */
+  Parrot_vivify_p_pc_s_pc,                           /*   1114 */
+  Parrot_vivify_p_p_sc_pc,                           /*   1115 */
+  Parrot_vivify_p_pc_sc_pc,                          /*   1116 */
+  Parrot_new_p_s_i,                                  /*   1117 */
+  Parrot_new_p_sc_i,                                 /*   1118 */
+  Parrot_new_p_s_ic,                                 /*   1119 */
+  Parrot_new_p_sc_ic,                                /*   1120 */
+  Parrot_new_p_p_i,                                  /*   1121 */
+  Parrot_new_p_pc_i,                                 /*   1122 */
+  Parrot_new_p_p_ic,                                 /*   1123 */
+  Parrot_new_p_pc_ic,                                /*   1124 */
+  Parrot_root_new_p_p_i,                             /*   1125 */
+  Parrot_root_new_p_pc_i,                            /*   1126 */
+  Parrot_root_new_p_p_ic,                            /*   1127 */
+  Parrot_root_new_p_pc_ic,                           /*   1128 */
+  Parrot_find_codepoint_i_s,                         /*   1129 */
+  Parrot_find_codepoint_i_sc,                        /*   1130 */
+  Parrot_unroll_p,                                   /*   1131 */
+  Parrot_unroll_pc,                                  /*   1132 */
 
   NULL /* NULL function pointer */
 };
@@ -1222,7 +1210,7 @@
 ** Op Info Table:
 */
 
-static op_info_t core_op_info_table[1146] = {
+static op_info_t core_op_info_table[1134] = {
   { /* 0 */
     /* type PARROT_INLINE_OP, */
     "end",
@@ -13260,150 +13248,6 @@
     { 0 }
   },
   { /* 1003 */
-    /* type PARROT_FUNCTION_OP, */
-    "gmtime",
-    "gmtime_s_i",
-    "Parrot_gmtime_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1004 */
-    /* type PARROT_FUNCTION_OP, */
-    "gmtime",
-    "gmtime_s_ic",
-    "Parrot_gmtime_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1005 */
-    /* type PARROT_FUNCTION_OP, */
-    "localtime",
-    "localtime_s_i",
-    "Parrot_localtime_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1006 */
-    /* type PARROT_FUNCTION_OP, */
-    "localtime",
-    "localtime_s_ic",
-    "Parrot_localtime_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1007 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodetime",
-    "decodetime_p_i",
-    "Parrot_decodetime_p_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1008 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodetime",
-    "decodetime_p_ic",
-    "Parrot_decodetime_p_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1009 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodelocaltime",
-    "decodelocaltime_p_i",
-    "Parrot_decodelocaltime_p_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1010 */
-    /* type PARROT_FUNCTION_OP, */
-    "decodelocaltime",
-    "decodelocaltime_p_ic",
-    "Parrot_decodelocaltime_p_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_P, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1011 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_s_i",
-    "Parrot_sysinfo_s_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1012 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_s_ic",
-    "Parrot_sysinfo_s_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_S, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1013 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_i_i",
-    "Parrot_sysinfo_i_i",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_I },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1014 */
-    /* type PARROT_INLINE_OP, */
-    "sysinfo",
-    "sysinfo_i_ic",
-    "Parrot_sysinfo_i_ic",
-    /* "",  body */
-    0,
-    3,
-    { PARROT_ARG_I, PARROT_ARG_IC },
-    { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
-    { 0, 0 }
-  },
-  { /* 1015 */
     /* type PARROT_INLINE_OP, */
     "sleep",
     "sleep_i",
@@ -13415,7 +13259,7 @@
     { PARROT_ARGDIR_IN },
     { 0 }
   },
-  { /* 1016 */
+  { /* 1004 */
     /* type PARROT_INLINE_OP, */
     "sleep",
     "sleep_ic",
@@ -13427,7 +13271,7 @@
     { PARROT_ARGDIR_IN },
     { 0 }
   },
-  { /* 1017 */
+  { /* 1005 */
     /* type PARROT_INLINE_OP, */
     "sleep",
     "sleep_n",
@@ -13439,7 +13283,7 @@
     { PARROT_ARGDIR_IN },
     { 0 }
   },
-  { /* 1018 */
+  { /* 1006 */
     /* type PARROT_INLINE_OP, */
     "sleep",
     "sleep_nc",
@@ -13451,7 +13295,7 @@
     { PARROT_ARGDIR_IN },
     { 0 }
   },
-  { /* 1019 */
+  { /* 1007 */
     /* type PARROT_FUNCTION_OP, */
     "store_lex",
     "store_lex_s_p",
@@ -13463,7 +13307,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1020 */
+  { /* 1008 */
     /* type PARROT_FUNCTION_OP, */
     "store_lex",
     "store_lex_sc_p",
@@ -13475,7 +13319,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1021 */
+  { /* 1009 */
     /* type PARROT_FUNCTION_OP, */
     "store_dynamic_lex",
     "store_dynamic_lex_s_p",
@@ -13487,7 +13331,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1022 */
+  { /* 1010 */
     /* type PARROT_FUNCTION_OP, */
     "store_dynamic_lex",
     "store_dynamic_lex_sc_p",
@@ -13499,7 +13343,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1023 */
+  { /* 1011 */
     /* type PARROT_FUNCTION_OP, */
     "find_lex",
     "find_lex_p_s",
@@ -13511,7 +13355,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1024 */
+  { /* 1012 */
     /* type PARROT_FUNCTION_OP, */
     "find_lex",
     "find_lex_p_sc",
@@ -13523,7 +13367,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1025 */
+  { /* 1013 */
     /* type PARROT_FUNCTION_OP, */
     "find_dynamic_lex",
     "find_dynamic_lex_p_s",
@@ -13535,7 +13379,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1026 */
+  { /* 1014 */
     /* type PARROT_FUNCTION_OP, */
     "find_dynamic_lex",
     "find_dynamic_lex_p_sc",
@@ -13547,7 +13391,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1027 */
+  { /* 1015 */
     /* type PARROT_FUNCTION_OP, */
     "find_caller_lex",
     "find_caller_lex_p_s",
@@ -13559,7 +13403,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1028 */
+  { /* 1016 */
     /* type PARROT_FUNCTION_OP, */
     "find_caller_lex",
     "find_caller_lex_p_sc",
@@ -13571,7 +13415,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1029 */
+  { /* 1017 */
     /* type PARROT_FUNCTION_OP, */
     "get_namespace",
     "get_namespace_p",
@@ -13583,7 +13427,7 @@
     { PARROT_ARGDIR_OUT },
     { 0 }
   },
-  { /* 1030 */
+  { /* 1018 */
     /* type PARROT_FUNCTION_OP, */
     "get_namespace",
     "get_namespace_p_p",
@@ -13595,7 +13439,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1031 */
+  { /* 1019 */
     /* type PARROT_FUNCTION_OP, */
     "get_namespace",
     "get_namespace_p_pc",
@@ -13607,7 +13451,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1032 */
+  { /* 1020 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_namespace",
     "get_hll_namespace_p",
@@ -13619,7 +13463,7 @@
     { PARROT_ARGDIR_OUT },
     { 0 }
   },
-  { /* 1033 */
+  { /* 1021 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_namespace",
     "get_hll_namespace_p_p",
@@ -13631,7 +13475,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1034 */
+  { /* 1022 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_namespace",
     "get_hll_namespace_p_pc",
@@ -13643,7 +13487,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1035 */
+  { /* 1023 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_namespace",
     "get_root_namespace_p",
@@ -13655,7 +13499,7 @@
     { PARROT_ARGDIR_OUT },
     { 0 }
   },
-  { /* 1036 */
+  { /* 1024 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_namespace",
     "get_root_namespace_p_p",
@@ -13667,7 +13511,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1037 */
+  { /* 1025 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_namespace",
     "get_root_namespace_p_pc",
@@ -13679,7 +13523,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1038 */
+  { /* 1026 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_s",
@@ -13691,7 +13535,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1039 */
+  { /* 1027 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_sc",
@@ -13703,7 +13547,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1040 */
+  { /* 1028 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_p_s",
@@ -13715,7 +13559,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1041 */
+  { /* 1029 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_pc_s",
@@ -13727,7 +13571,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1042 */
+  { /* 1030 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_p_sc",
@@ -13739,7 +13583,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1043 */
+  { /* 1031 */
     /* type PARROT_FUNCTION_OP, */
     "get_global",
     "get_global_p_pc_sc",
@@ -13751,7 +13595,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1044 */
+  { /* 1032 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_s",
@@ -13763,7 +13607,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1045 */
+  { /* 1033 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_sc",
@@ -13775,7 +13619,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1046 */
+  { /* 1034 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_p_s",
@@ -13787,7 +13631,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1047 */
+  { /* 1035 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_pc_s",
@@ -13799,7 +13643,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1048 */
+  { /* 1036 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_p_sc",
@@ -13811,7 +13655,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1049 */
+  { /* 1037 */
     /* type PARROT_FUNCTION_OP, */
     "get_hll_global",
     "get_hll_global_p_pc_sc",
@@ -13823,7 +13667,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1050 */
+  { /* 1038 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_s",
@@ -13835,7 +13679,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1051 */
+  { /* 1039 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_sc",
@@ -13847,7 +13691,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1052 */
+  { /* 1040 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_p_s",
@@ -13859,7 +13703,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1053 */
+  { /* 1041 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_pc_s",
@@ -13871,7 +13715,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1054 */
+  { /* 1042 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_p_sc",
@@ -13883,7 +13727,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1055 */
+  { /* 1043 */
     /* type PARROT_FUNCTION_OP, */
     "get_root_global",
     "get_root_global_p_pc_sc",
@@ -13895,7 +13739,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1056 */
+  { /* 1044 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_s_p",
@@ -13907,7 +13751,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1057 */
+  { /* 1045 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_sc_p",
@@ -13919,7 +13763,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1058 */
+  { /* 1046 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_p_s_p",
@@ -13931,7 +13775,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1059 */
+  { /* 1047 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_pc_s_p",
@@ -13943,7 +13787,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1060 */
+  { /* 1048 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_p_sc_p",
@@ -13955,7 +13799,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1061 */
+  { /* 1049 */
     /* type PARROT_FUNCTION_OP, */
     "set_global",
     "set_global_pc_sc_p",
@@ -13967,7 +13811,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1062 */
+  { /* 1050 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_s_p",
@@ -13979,7 +13823,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1063 */
+  { /* 1051 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_sc_p",
@@ -13991,7 +13835,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1064 */
+  { /* 1052 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_p_s_p",
@@ -14003,7 +13847,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1065 */
+  { /* 1053 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_pc_s_p",
@@ -14015,7 +13859,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1066 */
+  { /* 1054 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_p_sc_p",
@@ -14027,7 +13871,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1067 */
+  { /* 1055 */
     /* type PARROT_FUNCTION_OP, */
     "set_hll_global",
     "set_hll_global_pc_sc_p",
@@ -14039,7 +13883,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1068 */
+  { /* 1056 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_s_p",
@@ -14051,7 +13895,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1069 */
+  { /* 1057 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_sc_p",
@@ -14063,7 +13907,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1070 */
+  { /* 1058 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_p_s_p",
@@ -14075,7 +13919,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1071 */
+  { /* 1059 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_pc_s_p",
@@ -14087,7 +13931,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1072 */
+  { /* 1060 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_p_sc_p",
@@ -14099,7 +13943,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1073 */
+  { /* 1061 */
     /* type PARROT_FUNCTION_OP, */
     "set_root_global",
     "set_root_global_pc_sc_p",
@@ -14111,7 +13955,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1074 */
+  { /* 1062 */
     /* type PARROT_FUNCTION_OP, */
     "find_name",
     "find_name_p_s",
@@ -14123,7 +13967,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1075 */
+  { /* 1063 */
     /* type PARROT_FUNCTION_OP, */
     "find_name",
     "find_name_p_sc",
@@ -14135,7 +13979,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1076 */
+  { /* 1064 */
     /* type PARROT_INLINE_OP, */
     "find_sub_not_null",
     "find_sub_not_null_p_s",
@@ -14147,7 +13991,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1077 */
+  { /* 1065 */
     /* type PARROT_INLINE_OP, */
     "find_sub_not_null",
     "find_sub_not_null_p_sc",
@@ -14159,7 +14003,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1078 */
+  { /* 1066 */
     /* type PARROT_FUNCTION_OP, */
     "trap",
     "trap",
@@ -14171,7 +14015,7 @@
     { (arg_dir_t) 0 },
     { 0 }
   },
-  { /* 1079 */
+  { /* 1067 */
     /* type PARROT_INLINE_OP, */
     "set_label",
     "set_label_p_ic",
@@ -14183,7 +14027,7 @@
     { PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 1 }
   },
-  { /* 1080 */
+  { /* 1068 */
     /* type PARROT_INLINE_OP, */
     "get_label",
     "get_label_i_p",
@@ -14195,7 +14039,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1081 */
+  { /* 1069 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_p_p",
@@ -14207,7 +14051,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1082 */
+  { /* 1070 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_p_p",
@@ -14219,7 +14063,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1083 */
+  { /* 1071 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_pc_p",
@@ -14231,7 +14075,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1084 */
+  { /* 1072 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_pc_p",
@@ -14243,7 +14087,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1085 */
+  { /* 1073 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_p_pc",
@@ -14255,7 +14099,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1086 */
+  { /* 1074 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_p_pc",
@@ -14267,7 +14111,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1087 */
+  { /* 1075 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_pc_pc",
@@ -14279,7 +14123,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1088 */
+  { /* 1076 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_pc_pc",
@@ -14291,7 +14135,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1089 */
+  { /* 1077 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_i_p",
@@ -14303,7 +14147,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1090 */
+  { /* 1078 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_i_p",
@@ -14315,7 +14159,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1091 */
+  { /* 1079 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_ic_p",
@@ -14327,7 +14171,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1092 */
+  { /* 1080 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_ic_p",
@@ -14339,7 +14183,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1093 */
+  { /* 1081 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_i_pc",
@@ -14351,7 +14195,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1094 */
+  { /* 1082 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_i_pc",
@@ -14363,7 +14207,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1095 */
+  { /* 1083 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_ic_pc",
@@ -14375,7 +14219,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1096 */
+  { /* 1084 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_ic_pc",
@@ -14387,7 +14231,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1097 */
+  { /* 1085 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_s_p",
@@ -14399,7 +14243,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1098 */
+  { /* 1086 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_s_p",
@@ -14411,7 +14255,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1099 */
+  { /* 1087 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_sc_p",
@@ -14423,7 +14267,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1100 */
+  { /* 1088 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_sc_p",
@@ -14435,7 +14279,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1101 */
+  { /* 1089 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_s_pc",
@@ -14447,7 +14291,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1102 */
+  { /* 1090 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_s_pc",
@@ -14459,7 +14303,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1103 */
+  { /* 1091 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_p_sc_pc",
@@ -14471,7 +14315,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1104 */
+  { /* 1092 */
     /* type PARROT_INLINE_OP, */
     "fetch",
     "fetch_p_pc_sc_pc",
@@ -14483,7 +14327,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1105 */
+  { /* 1093 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_p_p",
@@ -14495,7 +14339,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1106 */
+  { /* 1094 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_p_p",
@@ -14507,7 +14351,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1107 */
+  { /* 1095 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_pc_p",
@@ -14519,7 +14363,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1108 */
+  { /* 1096 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_pc_p",
@@ -14531,7 +14375,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1109 */
+  { /* 1097 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_p_pc",
@@ -14543,7 +14387,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1110 */
+  { /* 1098 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_p_pc",
@@ -14555,7 +14399,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1111 */
+  { /* 1099 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_pc_pc",
@@ -14567,7 +14411,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1112 */
+  { /* 1100 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_pc_pc",
@@ -14579,7 +14423,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1113 */
+  { /* 1101 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_i_p",
@@ -14591,7 +14435,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1114 */
+  { /* 1102 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_i_p",
@@ -14603,7 +14447,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1115 */
+  { /* 1103 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_ic_p",
@@ -14615,7 +14459,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1116 */
+  { /* 1104 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_ic_p",
@@ -14627,7 +14471,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1117 */
+  { /* 1105 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_i_pc",
@@ -14639,7 +14483,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1118 */
+  { /* 1106 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_i_pc",
@@ -14651,7 +14495,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1119 */
+  { /* 1107 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_ic_pc",
@@ -14663,7 +14507,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1120 */
+  { /* 1108 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_ic_pc",
@@ -14675,7 +14519,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1121 */
+  { /* 1109 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_s_p",
@@ -14687,7 +14531,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1122 */
+  { /* 1110 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_s_p",
@@ -14699,7 +14543,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1123 */
+  { /* 1111 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_sc_p",
@@ -14711,7 +14555,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1124 */
+  { /* 1112 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_sc_p",
@@ -14723,7 +14567,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1125 */
+  { /* 1113 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_s_pc",
@@ -14735,7 +14579,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1126 */
+  { /* 1114 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_s_pc",
@@ -14747,7 +14591,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1127 */
+  { /* 1115 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_p_sc_pc",
@@ -14759,7 +14603,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1128 */
+  { /* 1116 */
     /* type PARROT_INLINE_OP, */
     "vivify",
     "vivify_p_pc_sc_pc",
@@ -14771,7 +14615,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0, 0 }
   },
-  { /* 1129 */
+  { /* 1117 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_s_i",
@@ -14783,7 +14627,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1130 */
+  { /* 1118 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_sc_i",
@@ -14795,7 +14639,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1131 */
+  { /* 1119 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_s_ic",
@@ -14807,7 +14651,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1132 */
+  { /* 1120 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_sc_ic",
@@ -14819,7 +14663,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1133 */
+  { /* 1121 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_p_i",
@@ -14831,7 +14675,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1134 */
+  { /* 1122 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_pc_i",
@@ -14843,7 +14687,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1135 */
+  { /* 1123 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_p_ic",
@@ -14855,7 +14699,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1136 */
+  { /* 1124 */
     /* type PARROT_FUNCTION_OP, */
     "new",
     "new_p_pc_ic",
@@ -14867,7 +14711,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1137 */
+  { /* 1125 */
     /* type PARROT_FUNCTION_OP, */
     "root_new",
     "root_new_p_p_i",
@@ -14879,7 +14723,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1138 */
+  { /* 1126 */
     /* type PARROT_FUNCTION_OP, */
     "root_new",
     "root_new_p_pc_i",
@@ -14891,7 +14735,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1139 */
+  { /* 1127 */
     /* type PARROT_FUNCTION_OP, */
     "root_new",
     "root_new_p_p_ic",
@@ -14903,7 +14747,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1140 */
+  { /* 1128 */
     /* type PARROT_FUNCTION_OP, */
     "root_new",
     "root_new_p_pc_ic",
@@ -14915,7 +14759,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN, PARROT_ARGDIR_IN },
     { 0, 0, 0 }
   },
-  { /* 1141 */
+  { /* 1129 */
     /* type PARROT_FUNCTION_OP, */
     "find_codepoint",
     "find_codepoint_i_s",
@@ -14927,7 +14771,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1142 */
+  { /* 1130 */
     /* type PARROT_FUNCTION_OP, */
     "find_codepoint",
     "find_codepoint_i_sc",
@@ -14939,7 +14783,7 @@
     { PARROT_ARGDIR_OUT, PARROT_ARGDIR_IN },
     { 0, 0 }
   },
-  { /* 1143 */
+  { /* 1131 */
     /* type PARROT_FUNCTION_OP, */
     "unroll",
     "unroll_p",
@@ -14951,7 +14795,7 @@
     { PARROT_ARGDIR_IN },
     { 0 }
   },
-  { /* 1144 */
+  { /* 1132 */
     /* type PARROT_FUNCTION_OP, */
     "unroll",
     "unroll_pc",
@@ -24155,122 +23999,6 @@
 return (opcode_t *)cur_opcode + 2;}
 
 opcode_t *
-Parrot_gmtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_gmtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_localtime_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_localtime_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    SREG(1) = Parrot_str_new(interp, resultbuffer, 25);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodetime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    Parrot_gmtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodetime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    Parrot_gmtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodelocaltime_p_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) IREG(2);
-    Parrot_localtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_decodelocaltime_p_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    struct tm tm;
-    const time_t t = (time_t) cur_opcode[2];
-    Parrot_localtime_r(&t, &tm);
-    PREG(1) = tm_to_array(interp, &tm);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_s_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = sysinfo_s(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_s_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    SREG(1) = sysinfo_s(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_i_i(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = sysinfo_i(interp, IREG(2));
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
-Parrot_sysinfo_i_ic(opcode_t *cur_opcode, PARROT_INTERP)  {
-    const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
-    IREG(1) = sysinfo_i(interp, cur_opcode[2]);
-
-return (opcode_t *)cur_opcode + 3;}
-
-opcode_t *
 Parrot_sleep_i(opcode_t *cur_opcode, PARROT_INTERP)  {
     const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
     opcode_t *next = cur_opcode + 2;
@@ -26800,7 +26528,7 @@
   2,    /* major_version */
   4,    /* minor_version */
   0,    /* patch_version */
-  1145,             /* op_count */
+  1133,             /* op_count */
   core_op_info_table,       /* op_info_table */
   core_op_func_table,       /* op_func_table */
   get_op          /* op_code() */ 

Modified: branches/ops_massacre/src/ops/ops.num
==============================================================================
--- branches/ops_massacre/src/ops/ops.num	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/ops/ops.num	Tue May 25 03:05:26 2010	(r46982)
@@ -1024,78 +1024,66 @@
 err_s_ic                       1000
 time_i                         1001
 time_n                         1002
-gmtime_s_i                     1003
-gmtime_s_ic                    1004
-localtime_s_i                  1005
-localtime_s_ic                 1006
-decodetime_p_i                 1007
-decodetime_p_ic                1008
-decodelocaltime_p_i            1009
-decodelocaltime_p_ic           1010
-sysinfo_s_i                    1011
-sysinfo_s_ic                   1012
-sysinfo_i_i                    1013
-sysinfo_i_ic                   1014
-sleep_i                        1015
-sleep_ic                       1016
-sleep_n                        1017
-sleep_nc                       1018
-store_lex_s_p                  1019
-store_lex_sc_p                 1020
-store_dynamic_lex_s_p          1021
-store_dynamic_lex_sc_p         1022
-find_lex_p_s                   1023
-find_lex_p_sc                  1024
-find_dynamic_lex_p_s           1025
-find_dynamic_lex_p_sc          1026
-find_caller_lex_p_s            1027
-find_caller_lex_p_sc           1028
-get_namespace_p                1029
-get_namespace_p_p              1030
-get_namespace_p_pc             1031
-get_hll_namespace_p            1032
-get_hll_namespace_p_p          1033
-get_hll_namespace_p_pc         1034
-get_root_namespace_p           1035
-get_root_namespace_p_p         1036
-get_root_namespace_p_pc        1037
-get_global_p_s                 1038
-get_global_p_sc                1039
-get_global_p_p_s               1040
-get_global_p_pc_s              1041
-get_global_p_p_sc              1042
-get_global_p_pc_sc             1043
-get_hll_global_p_s             1044
-get_hll_global_p_sc            1045
-get_hll_global_p_p_s           1046
-get_hll_global_p_pc_s          1047
-get_hll_global_p_p_sc          1048
-get_hll_global_p_pc_sc         1049
-get_root_global_p_s            1050
-get_root_global_p_sc           1051
-get_root_global_p_p_s          1052
-get_root_global_p_pc_s         1053
-get_root_global_p_p_sc         1054
-get_root_global_p_pc_sc        1055
-set_global_s_p                 1056
-set_global_sc_p                1057
-set_global_p_s_p               1058
-set_global_pc_s_p              1059
-set_global_p_sc_p              1060
-set_global_pc_sc_p             1061
-set_hll_global_s_p             1062
-set_hll_global_sc_p            1063
-set_hll_global_p_s_p           1064
-set_hll_global_pc_s_p          1065
-set_hll_global_p_sc_p          1066
-set_hll_global_pc_sc_p         1067
-set_root_global_s_p            1068
-set_root_global_sc_p           1069
-set_root_global_p_s_p          1070
-set_root_global_pc_s_p         1071
-set_root_global_p_sc_p         1072
-set_root_global_pc_sc_p        1073
-find_name_p_s                  1074
-find_name_p_sc                 1075
-find_sub_not_null_p_s          1076
-find_sub_not_null_p_sc         1077
+sleep_i                        1003
+sleep_ic                       1004
+sleep_n                        1005
+sleep_nc                       1006
+store_lex_s_p                  1007
+store_lex_sc_p                 1008
+store_dynamic_lex_s_p          1009
+store_dynamic_lex_sc_p         1010
+find_lex_p_s                   1011
+find_lex_p_sc                  1012
+find_dynamic_lex_p_s           1013
+find_dynamic_lex_p_sc          1014
+find_caller_lex_p_s            1015
+find_caller_lex_p_sc           1016
+get_namespace_p                1017
+get_namespace_p_p              1018
+get_namespace_p_pc             1019
+get_hll_namespace_p            1020
+get_hll_namespace_p_p          1021
+get_hll_namespace_p_pc         1022
+get_root_namespace_p           1023
+get_root_namespace_p_p         1024
+get_root_namespace_p_pc        1025
+get_global_p_s                 1026
+get_global_p_sc                1027
+get_global_p_p_s               1028
+get_global_p_pc_s              1029
+get_global_p_p_sc              1030
+get_global_p_pc_sc             1031
+get_hll_global_p_s             1032
+get_hll_global_p_sc            1033
+get_hll_global_p_p_s           1034
+get_hll_global_p_pc_s          1035
+get_hll_global_p_p_sc          1036
+get_hll_global_p_pc_sc         1037
+get_root_global_p_s            1038
+get_root_global_p_sc           1039
+get_root_global_p_p_s          1040
+get_root_global_p_pc_s         1041
+get_root_global_p_p_sc         1042
+get_root_global_p_pc_sc        1043
+set_global_s_p                 1044
+set_global_sc_p                1045
+set_global_p_s_p               1046
+set_global_pc_s_p              1047
+set_global_p_sc_p              1048
+set_global_pc_sc_p             1049
+set_hll_global_s_p             1050
+set_hll_global_sc_p            1051
+set_hll_global_p_s_p           1052
+set_hll_global_pc_s_p          1053
+set_hll_global_p_sc_p          1054
+set_hll_global_pc_sc_p         1055
+set_root_global_s_p            1056
+set_root_global_sc_p           1057
+set_root_global_p_s_p          1058
+set_root_global_pc_s_p         1059
+set_root_global_p_sc_p         1060
+set_root_global_pc_sc_p        1061
+find_name_p_s                  1062
+find_name_p_sc                 1063
+find_sub_not_null_p_s          1064
+find_sub_not_null_p_sc         1065

Modified: branches/ops_massacre/src/ops/sys.ops
==============================================================================
--- branches/ops_massacre/src/ops/sys.ops	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/ops/sys.ops	Tue May 25 03:05:26 2010	(r46982)
@@ -107,172 +107,6 @@
 
 ########################################
 
-=item B<gmtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string.
-
-=item B<localtime>(out STR, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and turn it into a
-formatted string. The time is adjusted to localtime before formatting.
-
-=item B<decodetime>(out PMC, in INT)
-
-Take the integer, which represents GMT epoch-seconds, and return an Array
-PMC which represents the decoded time. The array elements are
-(include "tm.pasm" for the constants):
-
-=over 4
-
-=item 0, .TM_SEC
-
-Seconds (0-60)
-
-=item 1, .TM_MIN
-
-Minutes (0-59)
-
-=item 2, .TM_HOUR
-
-Hours (0-23)
-
-=item 3, .TM_MDAY
-
-Day of month (1-31)
-
-=item 4, .TM_MON
-
-Month of year (1-12) (Note, B<actual> month, not month - 1)
-
-=item 5, .TM_YEAR
-
-Year (note, B<actual> year. The year 2004 comes back as 2004, not 104)
-
-=item 6, .TM_WDAY
-
-Day of week. Sunday is day 0
-
-=item 7, .TM_YDAY
-
-Day of year (0-365)
-
-=item 8, .TM_ISDST
-
-Daylight savings/summer time in effect
-
-=back
-
-Timezone name will be GMT and offset will be 0, since the time is taken and
-decoded as GMT.
-
-=item B<decodelocaltime>(out PMC, in INT)
-
-Take the passed in  integer, which represents GMT epoch-seconds, and return
-an array as in decodetime. The time is first shifted to localtime before
-decoding.
-
-=cut
-
-op gmtime(out STR, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    char resultbuffer[26];
-    Parrot_gmtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op localtime(out STR, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    char resultbuffer[26];
-    Parrot_localtime_r(&t, &tm);
-    Parrot_asctime_r(&tm, resultbuffer);
-    $1 = Parrot_str_new(interp, resultbuffer, 25);
-}
-
-op decodetime(out PMC, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    Parrot_gmtime_r(&t, &tm);
-    $1 = tm_to_array(interp, &tm);
-}
-
-op decodelocaltime(out PMC, in INT) {
-    struct tm tm;
-    const time_t t = (time_t) $2;
-    Parrot_localtime_r(&t, &tm);
-    $1 = tm_to_array(interp, &tm);
-}
-
-########################################
-
-=item B<sysinfo>(out STR, in INT)
-
-=item B<sysinfo>(out INT, in INT)
-
-Return system information. The values it returns depends on what you
-ask. They are:
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-This is something like "OS X", "MacOS", "Windows", or "VMS".
-
-=item 5 The OS version string
-
-This is the current (hopefully) OS Version. For OSes that have plain
-version numbers it will be the version number. For OSes that name
-their versions, it will be the version name.
-
-On HP/UX, this may be something like 11.2, while on Windows it may be
-"95", "98", "2000", "NT", "ME", or "XP".
-
-=item 6 The OS version number string
-
-On OSes that don't name themselves, this will be the same as what's
-returned in the OS version string. On OSes that I<do> name themselves,
-this will be a more specific version number. In all cases it is OS
-dependent.
-
-=item 7 The CPU architecture
-
-The name of the CPU family, such as "VAX", "Alpha", "PPC", or "x86".
-
-=item 8 The CPU model
-
-The model name of the current system's CPU. This is something like
-"EV68", "Athlon", or "Pentium III".
-
-=back
-
-Note that some of these values may be set at Parrot compile time,
-rather than at runtime, if the system has no reliable way to fetch the
-data dynamically, or if there is no way the value can change. Also,
-the value returned may be somewhat misleading--Parrot running under a
-VirtualPC window will report "Windows" as its OS and "x86" as its CPU,
-even if it's really running on an OS X system.
-
-=cut
-
-inline op sysinfo(out STR, in INT) {
-    $1 = sysinfo_s(interp, $2);
-}
-
-inline op sysinfo(out INT, in INT) {
-    $1 = sysinfo_i(interp, $2);
-}
-
-########################################
-
 =item B<sleep>(in INT)
 
 =item B<sleep>(in NUM)

Modified: branches/ops_massacre/src/utils.c
==============================================================================
--- branches/ops_massacre/src/utils.c	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/src/utils.c	Tue May 25 03:05:26 2010	(r46982)
@@ -548,10 +548,11 @@
 
 */
 
+PARROT_EXPORT
 PARROT_WARN_UNUSED_RESULT
 PARROT_CANNOT_RETURN_NULL
 PMC*
-tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
+Parrot_tm_to_array(PARROT_INTERP, ARGIN(const struct tm *tm))
 {
     ASSERT_ARGS(tm_to_array)
 

Modified: branches/ops_massacre/t/compilers/opsc/07-emitter.t
==============================================================================
--- branches/ops_massacre/t/compilers/opsc/07-emitter.t	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/t/compilers/opsc/07-emitter.t	Tue May 25 03:05:26 2010	(r46982)
@@ -47,7 +47,7 @@
 ok($header ~~ /endif/, 'Close guard generated');
 ok($header ~~ /DO \s NOT \s EDIT \s THIS \s FILE/, 'Preamble generated');
 ok($header ~~ /Parrot_DynOp_core_ \d+ _ \d+ _ \d+/, '... and contains init_func');
-ok($header ~~ /Parrot_sysinfo_s_i/, 'We have proper names of ops functions');
+ok($header ~~ /Parrot_time_n/, 'We have proper names of ops functions');
 
 # Testing C emitting.
 #$emitter.print_c_source_file();

Added: branches/ops_massacre/t/dynoplibs/sysinfo.t
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ops_massacre/t/dynoplibs/sysinfo.t	Tue May 25 03:05:26 2010	(r46982)
@@ -0,0 +1,191 @@
+#!perl
+# Copyright (C) 2008-2010, Parrot Foundation.
+# $Id: sysinfo.t 44427 2010-02-24 00:30:09Z mikehh $
+
+# initial work by Brad Gilbert b2gills <at> gmail <dot> com
+
+use strict;
+use warnings;
+use lib qw( . lib ../lib ../../lib );
+
+use Test::More;
+use Config;
+
+use Parrot::Test tests => 14;
+use Parrot::Config;
+
+
+=head1 NAME
+
+t/op/sysinfo.t - System Info
+
+=head1 SYNOPSIS
+
+        % prove t/op/sysinfo.t
+
+=head1 DESCRIPTION
+
+Tests for basic system information.
+
+=over 4
+
+=item 1 The size of a platform integer
+
+=item 2 The size of a platform float
+
+=item 3 The size of a platform pointer. (Largest possible data pointer)
+
+=item 4 The OS name
+
+=item 5 The OS version string
+
+=item 6 The OS version number string
+
+=item 7 The CPU architecture
+
+=item 8 The CPU model
+
+=item 9, 10 The min and max INTVAL values
+
+=back
+
+=cut
+
+
+my @setup = (
+    { pconfig_key => 'intvalsize',
+      pasm_key    => 1,
+      pir_key     => 'SYSINFO_PARROT_INTSIZE',
+      desc        => 'integer size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'doublesize',
+      pasm_key    => 2,
+      pir_key     => 'SYSINFO_PARROT_FLOATSIZE',
+      desc        => 'float size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'ptrsize',
+      pasm_key    => 3,
+      pir_key     => 'SYSINFO_PARROT_POINTERSIZE',
+      desc        => 'pointer size',
+      reg_type    => 'I',
+    },
+    { pconfig_key => 'osname',
+      pasm_key    => 4,
+      pir_key     => 'SYSINFO_PARROT_OS',
+      desc        => 'osname',
+      reg_type    => 'S',
+    },
+    { pconfig_key => 'cpuarch',
+      pasm_key    => 7,
+      pir_key     => 'SYSINFO_CPU_ARCH',
+      desc        => 'CPU Arch Family',
+      reg_type    => 'S',
+    },
+);
+
+foreach ( @setup ) {
+    if ( $_->{reg_type} eq 'I' ) {
+        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo  $_->{desc}" );
+    .loadlib 'sys_ops'
+    sysinfo_i_ic I1, $_->{pasm_key}
+    print I1
+end
+CODE
+        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    \$I0 = sysinfo .$_->{pir_key}
+    print \$I0
+.end
+CODE
+    }
+    else {
+        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, $_->{pasm_key}
+    print S1
+end
+CODE
+        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    \$S0 = sysinfo .$_->{pir_key}
+    print \$S0
+.end
+CODE
+    }
+}
+
+SKIP:
+{
+    $PConfig{osname} eq 'MSWin32'
+        or skip "Tests only meaningful on Win32", 2;
+    SKIP:
+    {
+        eval { require Win32; } or
+            skip "requires package Win32 for these tests", 2;
+
+        my $osname = Win32::GetOSName();
+        $osname = 'WinXP' if $osname =~ m/^WinXP/;
+        TODO: {
+            local $TODO = "Not Currently Implemented";
+            pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, 5
+    print S1
+end
+CODE
+
+            my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
+
+            pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
+    .loadlib 'sys_ops'
+    sysinfo_s_ic S1, 6
+    print S1
+end
+CODE
+        } # END todo block
+    } # END inner SKIP block
+} # END outer SKIP block
+
+SKIP:
+{
+    skip "Requires a lot of work to find out the correct answer", 1;
+
+    pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
+   .loadlib 'sys_ops'
+   sysinfo_s_ic S1, 8
+   print S1
+end
+CODE
+}
+
+# 9, 10
+
+SKIP:
+{
+    skip 'Testing only in some known platforms', 1
+        unless $PConfig{osname} eq 'linux';
+
+    pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
+.loadlib 'sys_ops'
+.include 'sysinfo.pasm'
+.sub main :main
+    $I0 = sysinfo .SYSINFO_PARROT_INTMIN
+    say $I0
+    $I0 = sysinfo .SYSINFO_PARROT_INTMAX
+    say $I0
+.end
+CODE
+}
+
+# Local Variables:
+#   mode: cperl
+#   cperl-indent-level: 4
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4:

Added: branches/ops_massacre/t/dynoplibs/time.t
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ branches/ops_massacre/t/dynoplibs/time.t	Tue May 25 03:05:26 2010	(r46982)
@@ -0,0 +1,89 @@
+#!./parrot
+# Copyright (C) 2010, Parrot Foundation.
+# $Id$
+
+=head1 NAME
+
+t/dynoplibs/time.t - Time Dynops
+
+=cut
+
+.loadlib 'sys_ops'
+
+.sub main :main
+    .include 'test_more.pir'
+
+    plan(10)
+
+    test_gmtime_s_i()
+    test_time_n_vs_time_i()
+    test_decodetime_p_i()
+    test_localtime_s_i()
+    test_decodelocaltime_p_i()
+.end
+
+.sub test_gmtime_s_i
+    $S0 = gmtime 0
+    $I0 = isnull $S0
+    is($I0, 0, "gmtime string is not null")
+    is($S0, "Thu Jan  1 00:00:00 1970\n", "correct epoch")
+    $I1 = length $S0
+    is($I1, 25, "string is the correct length")
+.end
+
+.sub test_time_n_vs_time_i
+    .local int time_int
+    time_int = time
+
+    .local num time_float
+    time_float = time
+
+    # check if time_float is within [time_int - 5;time_int + 5]
+    .local int time_int_lower
+    time_int_lower = time_int - 5
+    if time_float < time_int_lower goto FAIL
+    .local int time_int_upper
+    time_int_upper = time_int + 5
+    if time_float > time_int_upper goto FAIL
+
+    ok(1, "time_n value corresponds to time_i value")
+    .return()
+
+  FAIL:
+    ok(0, "time_n value does not correspond to time_t value")
+    .return()
+.end
+
+.sub test_decodetime_p_i
+    $P0 = decodetime 0
+    $I0 = $P0
+    is($I0, 9, "decodetime result has 9 values")
+    $S0 = typeof $P0
+    # TODO: Actually, this should return whatever HLL type replaces
+    # FixedIntegerArray. We should test this behavior with a new HLL
+    is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
+.end
+
+.sub test_localtime_s_i
+    $S0 = localtime 0
+    $I0 = isnull $S0
+    is($I0, 0, "localtime string is not a null string")
+    $I0 = length $S0
+    is($I0, 25, "localtime string is the correct length")
+.end
+
+.sub test_decodelocaltime_p_i
+    $P0 = decodelocaltime 0
+    $I0 = $P0
+    is($I0, 9, "decodelocaltime result has 9 values")
+    $S0 = typeof $P0
+    # TODO: Actually, this should return whatever HLL type replaces
+    # FixedIntegerArray. We should test this behavior with a new HLL
+    is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
+.end
+
+# Local Variables:
+#   mode: pir
+#   fill-column: 100
+# End:
+# vim: expandtab shiftwidth=4 ft=pir:

Modified: branches/ops_massacre/t/op/io.t
==============================================================================
--- branches/ops_massacre/t/op/io.t	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/t/op/io.t	Tue May 25 03:05:26 2010	(r46982)
@@ -73,6 +73,7 @@
     ok(1, 'open with null mode')
 .end
 
+.loadlib 'sys_ops'
 .sub 'tt661_todo_test' :anon
     # As of r41963, these tests need to be todo'ed at least on Win32. Add new
     # platforms known to fail.

Modified: branches/ops_massacre/t/op/sprintf.t
==============================================================================
--- branches/ops_massacre/t/op/sprintf.t	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/t/op/sprintf.t	Tue May 25 03:05:26 2010	(r46982)
@@ -59,6 +59,8 @@
 
 .const int TESTS = 308
 
+.loadlib 'sys_ops'
+
 .sub main :main
     load_bytecode 'Test/Builder.pbc'
     .include "iglobals.pasm"

Deleted: branches/ops_massacre/t/op/sysinfo.t
==============================================================================
--- branches/ops_massacre/t/op/sysinfo.t	Tue May 25 03:05:26 2010	(r46981)
+++ /dev/null	00:00:00 1970	(deleted)
@@ -1,183 +0,0 @@
-#!perl
-# Copyright (C) 2008-2010, Parrot Foundation.
-# $Id$
-
-# initial work by Brad Gilbert b2gills <at> gmail <dot> com
-
-use strict;
-use warnings;
-use lib qw( . lib ../lib ../../lib );
-
-use Test::More;
-use Config;
-
-use Parrot::Test tests => 14;
-use Parrot::Config;
-
-
-=head1 NAME
-
-t/op/sysinfo.t - System Info
-
-=head1 SYNOPSIS
-
-        % prove t/op/sysinfo.t
-
-=head1 DESCRIPTION
-
-Tests for basic system information.
-
-=over 4
-
-=item 1 The size of a platform integer
-
-=item 2 The size of a platform float
-
-=item 3 The size of a platform pointer. (Largest possible data pointer)
-
-=item 4 The OS name
-
-=item 5 The OS version string
-
-=item 6 The OS version number string
-
-=item 7 The CPU architecture
-
-=item 8 The CPU model
-
-=item 9, 10 The min and max INTVAL values
-
-=back
-
-=cut
-
-
-my @setup = (
-    { pconfig_key => 'intvalsize',
-      pasm_key    => 1,
-      pir_key     => 'SYSINFO_PARROT_INTSIZE',
-      desc        => 'integer size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'doublesize',
-      pasm_key    => 2,
-      pir_key     => 'SYSINFO_PARROT_FLOATSIZE',
-      desc        => 'float size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'ptrsize',
-      pasm_key    => 3,
-      pir_key     => 'SYSINFO_PARROT_POINTERSIZE',
-      desc        => 'pointer size',
-      reg_type    => 'I',
-    },
-    { pconfig_key => 'osname',
-      pasm_key    => 4,
-      pir_key     => 'SYSINFO_PARROT_OS',
-      desc        => 'osname',
-      reg_type    => 'S',
-    },
-    { pconfig_key => 'cpuarch',
-      pasm_key    => 7,
-      pir_key     => 'SYSINFO_CPU_ARCH',
-      desc        => 'CPU Arch Family',
-      reg_type    => 'S',
-    },
-);
-
-foreach ( @setup ) {
-    if ( $_->{reg_type} eq 'I' ) {
-        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PASM sysinfo  $_->{desc}" );
-   sysinfo_i_ic I1, $_->{pasm_key}
-   print I1
-end
-CODE
-        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
-    \$I0 = sysinfo .$_->{pir_key}
-    print \$I0
-.end
-CODE
-    }
-    else {
-        pasm_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "sysinfo $_->{desc}" );
-   sysinfo_s_ic S1, $_->{pasm_key}
-   print S1
-end
-CODE
-        pir_output_is( <<"CODE", $PConfig{$_->{pconfig_key}}, "PIR sysinfo  $_->{desc}" );
-.include 'sysinfo.pasm'
-.sub main :main
-    \$S0 = sysinfo .$_->{pir_key}
-    print \$S0
-.end
-CODE
-    }
-}
-
-SKIP:
-{
-    $PConfig{osname} eq 'MSWin32'
-        or skip "Tests only meaningful on Win32", 2;
-    SKIP:
-    {
-        eval { require Win32; } or
-            skip "requires package Win32 for these tests", 2;
-
-        my $osname = Win32::GetOSName();
-        $osname = 'WinXP' if $osname =~ m/^WinXP/;
-        TODO: {
-            local $TODO = "Not Currently Implemented";
-            pasm_output_is( <<'CODE', $osname, "sysinfo OS version string" );
-    sysinfo_s_ic S1, 5
-    print S1
-end
-CODE
-
-            my ( $osvername, $major, $minor, $id ) = Win32::GetOSVersion();
-
-            pasm_output_is( <<'CODE', "$major.$minor", "sysinfo OS version number string" );
-    sysinfo_s_ic S1, 6
-    print S1
-end
-CODE
-        } # END todo block
-    } # END inner SKIP block
-} # END outer SKIP block
-
-SKIP:
-{
-    skip "Requires a lot of work to find out the correct answer", 1;
-
-    pasm_output_is( <<'CODE', $PConfig{archname}, "sysinfo CPU Model" );
-   sysinfo_s_ic S1, 8
-   print S1
-end
-CODE
-}
-
-# 9, 10
-
-SKIP:
-{
-    skip 'Testing only in some known platforms', 1
-        unless $PConfig{osname} eq 'linux';
-
-    pir_output_like( <<'CODE', '/^-[1-9][0-9]*\n[1-9][0-9]*\n$/', 'INTVAL min and max values');
-.include 'sysinfo.pasm'
-.sub main :main
-    $I0 = sysinfo .SYSINFO_PARROT_INTMIN
-    say $I0
-    $I0 = sysinfo .SYSINFO_PARROT_INTMAX
-    say $I0
-.end
-CODE
-}
-
-# Local Variables:
-#   mode: cperl
-#   cperl-indent-level: 4
-#   fill-column: 100
-# End:
-# vim: expandtab shiftwidth=4:

Modified: branches/ops_massacre/t/op/time.t
==============================================================================
--- branches/ops_massacre/t/op/time.t	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/t/op/time.t	Tue May 25 03:05:26 2010	(r46982)
@@ -11,7 +11,7 @@
 .sub main :main
     .include 'test_more.pir'
 
-    plan(29)
+    plan(19)
     test_time_i()
     test_time_n()
     test_sleep_i()
@@ -19,11 +19,6 @@
     test_sleep_n()
     test_sleep_n_negative()
     test_tm_pasm()
-    test_gmtime_s_i()
-    test_time_n_vs_time_i()
-    test_decodetime_p_i()
-    test_localtime_s_i()
-    test_decodelocaltime_p_i()
 .end
 
 .sub test_time_i
@@ -103,67 +98,6 @@
     is(.TM_ISDST, 8, "TM_ISDST ok")
 .end
 
-.sub test_gmtime_s_i
-    $S0 = gmtime 0
-    $I0 = isnull $S0
-    is($I0, 0, "gmtime string is not null")
-    is($S0, "Thu Jan  1 00:00:00 1970\n", "correct epoch")
-    $I1 = length $S0
-    is($I1, 25, "string is the correct length")
-.end
-
-.sub test_time_n_vs_time_i
-    .local int time_int
-    time_int = time
-
-    .local num time_float
-    time_float = time
-
-    # check if time_float is within [time_int - 5;time_int + 5]
-    .local int time_int_lower
-    time_int_lower = time_int - 5
-    if time_float < time_int_lower goto FAIL
-    .local int time_int_upper
-    time_int_upper = time_int + 5
-    if time_float > time_int_upper goto FAIL
-
-    ok(1, "time_n value corresponds to time_i value")
-    .return()
-
-  FAIL:
-    ok(0, "time_n value does not correspond to time_t value")
-    .return()
-.end
-
-.sub test_decodetime_p_i
-    $P0 = decodetime 0
-    $I0 = $P0
-    is($I0, 9, "decodetime result has 9 values")
-    $S0 = typeof $P0
-    # TODO: Actually, this should return whatever HLL type replaces
-    # FixedIntegerArray. We should test this behavior with a new HLL
-    is($S0, "FixedIntegerArray", "decodetime returns the correct PMC type")
-.end
-
-.sub test_localtime_s_i
-    $S0 = localtime 0
-    $I0 = isnull $S0
-    is($I0, 0, "localtime string is not a null string")
-    $I0 = length $S0
-    is($I0, 25, "localtime string is the correct length")
-.end
-
-.sub test_decodelocaltime_p_i
-    $P0 = decodelocaltime 0
-    $I0 = $P0
-    is($I0, 9, "decodelocaltime result has 9 values")
-    $S0 = typeof $P0
-    # TODO: Actually, this should return whatever HLL type replaces
-    # FixedIntegerArray. We should test this behavior with a new HLL
-    is($S0, "FixedIntegerArray", "decodelocaltime returns the correct PMC type")
-.end
-
-
 # Local Variables:
 #   mode: pir
 #   fill-column: 100

Modified: branches/ops_massacre/t/op/time_old.t
==============================================================================
--- branches/ops_massacre/t/op/time_old.t	Tue May 25 02:49:37 2010	(r46981)
+++ branches/ops_massacre/t/op/time_old.t	Tue May 25 03:05:26 2010	(r46982)
@@ -29,6 +29,7 @@
 # don't run this test 1 tick before the year changes #'
 
 pasm_output_is( <<'CODE', $year, "decodelocaltime" );
+.loadlib 'sys_ops'
     time I0
     decodelocaltime P0, I0
     .include "tm.pasm"


More information about the parrot-commits mailing list