[svn:parrot] r40068 - in branches/tt761_keys_revamp: config/auto config/gen/config_pm config/gen/platform/win32 include/parrot lib/Parrot src src/gc src/pmc t/codingstd t/configure tools/dev

bacek at svn.parrot.org bacek at svn.parrot.org
Mon Jul 13 22:44:32 UTC 2009


Author: bacek
Date: Mon Jul 13 22:44:29 2009
New Revision: 40068
URL: https://trac.parrot.org/parrot/changeset/40068

Log:
Bring brunch up-to-date with trunk.

Modified:
   branches/tt761_keys_revamp/config/auto/msvc.pm
   branches/tt761_keys_revamp/config/gen/config_pm/config_lib_pasm.in
   branches/tt761_keys_revamp/config/gen/platform/win32/threads.h
   branches/tt761_keys_revamp/include/parrot/compiler.h
   branches/tt761_keys_revamp/include/parrot/interpreter.h
   branches/tt761_keys_revamp/include/parrot/multidispatch.h
   branches/tt761_keys_revamp/lib/Parrot/Op.pm
   branches/tt761_keys_revamp/src/gc/mark_sweep.c
   branches/tt761_keys_revamp/src/multidispatch.c
   branches/tt761_keys_revamp/src/packfile.c
   branches/tt761_keys_revamp/src/pmc/hash.pmc
   branches/tt761_keys_revamp/src/pmc/pmcproxy.pmc
   branches/tt761_keys_revamp/t/codingstd/c_indent.t
   branches/tt761_keys_revamp/t/configure/049-options_test_prepare.t
   branches/tt761_keys_revamp/tools/dev/pbc_to_exe.pir

Modified: branches/tt761_keys_revamp/config/auto/msvc.pm
==============================================================================
--- branches/tt761_keys_revamp/config/auto/msvc.pm	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/config/auto/msvc.pm	Mon Jul 13 22:44:29 2009	(r40068)
@@ -90,6 +90,13 @@
         # To disable deprecation, use _CRT_SECURE_NO_DEPRECATE. See online help
         # for details.
         $conf->data->add( " ", "ccflags", "-D_CRT_SECURE_NO_DEPRECATE" );
+
+        # Microsoft provides two annotations mechanisms.  __declspec, which has been
+        # around for a while, and Microsoft's standard source code annotation
+        # language (SAL), introduced with Visual C++ 8.0.
+        # See <http://msdn2.microsoft.com/en-us/library/ms235402(VS.80).aspx>,
+        # <http://msdn2.microsoft.com/en-us/library/dabb5z75(VS.80).aspx>.
+        $conf->data->set( HAS_MSVC_SAL => 1 );
     }
     return 1;
 }

Modified: branches/tt761_keys_revamp/config/gen/config_pm/config_lib_pasm.in
==============================================================================
--- branches/tt761_keys_revamp/config/gen/config_pm/config_lib_pasm.in	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/config/gen/config_pm/config_lib_pasm.in	Mon Jul 13 22:44:29 2009	(r40068)
@@ -18,7 +18,12 @@
     if I11, is_install
     set S1, "@PWD@"
     set P0["prefix"], S1
+    set P0["installed"], "0"
+    branch freeze_config
 is_install:
+    set P0["installed"], "1"
+freeze_config:
+
     freeze S0, P0
     print S0
     end

Modified: branches/tt761_keys_revamp/config/gen/platform/win32/threads.h
==============================================================================
--- branches/tt761_keys_revamp/config/gen/platform/win32/threads.h	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/config/gen/platform/win32/threads.h	Mon Jul 13 22:44:29 2009	(r40068)
@@ -8,6 +8,7 @@
 
 #undef CONST
 #include <windows.h>
+#undef CONST
 
 #ifdef PARROT_HAS_THREADS
 
@@ -15,8 +16,6 @@
 
 #endif /* PARROT_HAS_THREADS */
 
-#undef CONST
-
 #endif /* PARROT_PLATFORM_WIN32_THREADS_H_GUARD */
 
 /*

Modified: branches/tt761_keys_revamp/include/parrot/compiler.h
==============================================================================
--- branches/tt761_keys_revamp/include/parrot/compiler.h	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/include/parrot/compiler.h	Mon Jul 13 22:44:29 2009	(r40068)
@@ -14,20 +14,6 @@
  * for a given compiler.  They are based on GCC's __attribute__ functionality.
  */
 
-/*
- * Microsoft provides two annotations mechanisms.  __declspec, which has been
- * around for a while, and Microsoft's standard source code annotation
- * language (SAL), introduced with Visual C++ 8.0.
- * See <http://msdn2.microsoft.com/en-us/library/ms235402(VS.80).aspx>,
- * <http://msdn2.microsoft.com/en-us/library/dabb5z75(VS.80).aspx>.
- */
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-#  define PARROT_HAS_SAL 1
-#  include <sal.h>
-#else
-#  define PARROT_HAS_SAL 0
-#endif
-
 #ifdef HASATTRIBUTE_NEVER_WORKS
  #  error This attribute can never succeed.  Something has mis-sniffed your configuration.
 #endif
@@ -113,7 +99,8 @@
  */
 #define UNUSED(a) /*@-noeffect*/if (0) (void)(a)/*@=noeffect*/;
 
-#if PARROT_HAS_SAL
+#ifdef PARROT_HAS_MSVC_SAL
+#  include <sal.h>
 #  define PARROT_CAN_RETURN_NULL      /*@null@*/ __maybenull
 #  define PARROT_CANNOT_RETURN_NULL   /*@notnull@*/ __notnull
 #else
@@ -144,7 +131,7 @@
 /* Function argument instrumentation */
 /* For explanations of the annotations, see http://www.splint.org/manual/manual.html */
 
-#if PARROT_HAS_SAL
+#ifdef PARROT_HAS_MSVC_SAL
 #  define NOTNULL(x)                  /*@notnull@*/ __notnull x
     /* The pointer passed may not be NULL */
 

Modified: branches/tt761_keys_revamp/include/parrot/interpreter.h
==============================================================================
--- branches/tt761_keys_revamp/include/parrot/interpreter.h	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/include/parrot/interpreter.h	Mon Jul 13 22:44:29 2009	(r40068)
@@ -459,7 +459,12 @@
 #define PNCONST   PF_NCONST(interp->code)
 
 /* TODO - Make this a config option */
-#define PARROT_CATCH_NULL 1
+/* Splint complains about PMCNULL's storage, so don't use it. */
+#ifdef S_SPLINT_S
+#  define PARROT_CATCH_NULL 0
+#else
+#  define PARROT_CATCH_NULL 1
+#endif
 
 #if PARROT_CATCH_NULL
 PARROT_DATA PMC * PMCNULL;   /* Holds single Null PMC */

Modified: branches/tt761_keys_revamp/include/parrot/multidispatch.h
==============================================================================
--- branches/tt761_keys_revamp/include/parrot/multidispatch.h	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/include/parrot/multidispatch.h	Mon Jul 13 22:44:29 2009	(r40068)
@@ -109,7 +109,8 @@
         FUNC_MODIFIES(*cache);
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 PMC * Parrot_mmd_cache_lookup_by_types(PARROT_INTERP,
     ARGMOD(MMD_Cache *cache),
     ARGIN(const char *name),
@@ -121,7 +122,8 @@
         FUNC_MODIFIES(*cache);
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 PMC * Parrot_mmd_cache_lookup_by_values(PARROT_INTERP,
     ARGMOD(MMD_Cache *cache),
     ARGIN(const char *name),
@@ -165,7 +167,7 @@
         FUNC_MODIFIES(*cache);
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 PMC * Parrot_mmd_find_multi_from_long_sig(PARROT_INTERP,
     ARGIN(STRING *name),

Modified: branches/tt761_keys_revamp/lib/Parrot/Op.pm
==============================================================================
--- branches/tt761_keys_revamp/lib/Parrot/Op.pm	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/lib/Parrot/Op.pm	Mon Jul 13 22:44:29 2009	(r40068)
@@ -323,7 +323,6 @@
     local $_ = shift;
     my $trans = shift;
 
-    s/{{([a-z]+)\@([^{]*?)}}/ $trans->access_arg($1, $2, $self); /me;
     s/{{\@([^{]*?)}}/   $trans->access_arg($self->arg_type($1 - 1), $1, $self); /me;
 
     s/{{=0,=([^{]*?)}}/   $trans->restart_address($1) . "; {{=0}}"; /me;

Modified: branches/tt761_keys_revamp/src/gc/mark_sweep.c
==============================================================================
--- branches/tt761_keys_revamp/src/gc/mark_sweep.c	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/src/gc/mark_sweep.c	Mon Jul 13 22:44:29 2009	(r40068)
@@ -216,6 +216,10 @@
     /* Now mark the class hash */
     Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->class_hash);
 
+    /* Now mark the HLL stuff */
+    Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->HLL_info);
+    Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->HLL_namespace);
+
     /* Mark the registry */
     PARROT_ASSERT(interp->gc_registry);
     Parrot_gc_mark_PObj_alive(interp, (PObj *)interp->gc_registry);

Modified: branches/tt761_keys_revamp/src/multidispatch.c
==============================================================================
--- branches/tt761_keys_revamp/src/multidispatch.c	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/src/multidispatch.c	Mon Jul 13 22:44:29 2009	(r40068)
@@ -84,7 +84,8 @@
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static STRING * mmd_cache_key_from_types(PARROT_INTERP,
     ARGIN(const char *name),
     ARGIN(PMC *types))
@@ -92,7 +93,8 @@
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static STRING * mmd_cache_key_from_values(PARROT_INTERP,
     ARGIN(const char *name),
     ARGIN(PMC *values))
@@ -100,8 +102,8 @@
         __attribute__nonnull__(2)
         __attribute__nonnull__(3);
 
-PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static PMC* mmd_cvt_to_types(PARROT_INTERP, ARGIN(PMC *multi_sig))
         __attribute__nonnull__(1)
         __attribute__nonnull__(2);
@@ -141,7 +143,8 @@
 static PMC* Parrot_mmd_arg_tuple_func(PARROT_INTERP)
         __attribute__nonnull__(1);
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static PMC * Parrot_mmd_get_cached_multi_sig(PARROT_INTERP,
     ARGIN(PMC *sub_pmc))
         __attribute__nonnull__(1)
@@ -343,7 +346,7 @@
 */
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_CAN_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
 PMC *
 Parrot_mmd_find_multi_from_long_sig(PARROT_INTERP, ARGIN(STRING *name),
@@ -355,8 +358,9 @@
                                     interp->root_namespace, multi_str);
     PMC    * const multi_sub = Parrot_get_global(interp, ns, name);
 
-    if (PMC_IS_NULL(multi_sub))
+    if (PMC_IS_NULL(multi_sub)) {
         return PMCNULL;
+    }
     else {
         PMC * const type_tuple = mmd_build_type_tuple_from_long_sig(interp, long_sig);
         return Parrot_mmd_sort_candidates(interp, type_tuple, multi_sub);
@@ -748,8 +752,8 @@
 
 */
 
-PARROT_CANNOT_RETURN_NULL
 PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static PMC*
 mmd_cvt_to_types(PARROT_INTERP, ARGIN(PMC *multi_sig))
 {
@@ -805,7 +809,8 @@
 
 */
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static PMC *
 Parrot_mmd_get_cached_multi_sig(PARROT_INTERP, ARGIN(PMC *sub_pmc))
 {
@@ -1401,7 +1406,8 @@
 
 */
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static STRING *
 mmd_cache_key_from_values(PARROT_INTERP, ARGIN(const char *name),
     ARGIN(PMC *values))
@@ -1448,7 +1454,8 @@
 */
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 PMC *
 Parrot_mmd_cache_lookup_by_values(PARROT_INTERP, ARGMOD(MMD_Cache *cache),
     ARGIN(const char *name), ARGIN(PMC *values))
@@ -1499,7 +1506,8 @@
 
 */
 
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 static STRING *
 mmd_cache_key_from_types(PARROT_INTERP, ARGIN(const char *name),
     ARGIN(PMC *types))
@@ -1548,13 +1556,14 @@
 */
 
 PARROT_EXPORT
-PARROT_CANNOT_RETURN_NULL
+PARROT_WARN_UNUSED_RESULT
+PARROT_CAN_RETURN_NULL
 PMC *
 Parrot_mmd_cache_lookup_by_types(PARROT_INTERP, ARGMOD(MMD_Cache *cache),
     ARGIN(const char *name), ARGIN(PMC *types))
 {
     ASSERT_ARGS(Parrot_mmd_cache_lookup_by_types)
-    STRING * const key = mmd_cache_key_from_types(interp, name, types);
+    const STRING * const key = mmd_cache_key_from_types(interp, name, types);
 
     if (key)
         return (PMC *)parrot_hash_get(interp, cache, key);

Modified: branches/tt761_keys_revamp/src/packfile.c
==============================================================================
--- branches/tt761_keys_revamp/src/packfile.c	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/src/packfile.c	Mon Jul 13 22:44:29 2009	(r40068)
@@ -889,6 +889,14 @@
 pbc_action_enum_t action, PMC *eval_pmc)>
 
 C<action> is one of C<PBC_PBC>, C<PBC_LOADED>, C<PBC_INIT>, or C<PBC_MAIN>.
+These determine which subs get executed at this point. Some rules:
+
+ :immediate subs always execute immediately
+ :postcomp subs always execute immediately
+ :main subs execute when we have the PBC_MAIN or PBC_PBC actions
+ :init subs execute when :main does
+ :load subs execute on PBC_LOAD
+
 Also store the C<eval_pmc> in the sub structure, so that the eval PMC is kept
 alive by living subs.
 
@@ -4908,8 +4916,9 @@
 =item C<void PackFile_fixup_subs(PARROT_INTERP, pbc_action_enum_t what, PMC
 *eval)>
 
-Runs C<:load> or C<:immediate> subroutines for the current code segment.  If
-C<eval> is given, set this as the owner of the subroutines.
+Calls C<:load>, C<:init>, C<:main>, C<:immediate> and/or C<:postcomp>
+subroutines in the current packfile, depending on the value of C<action>.
+See C<do_sub_pragmas> for more details.
 
 =cut
 

Modified: branches/tt761_keys_revamp/src/pmc/hash.pmc
==============================================================================
--- branches/tt761_keys_revamp/src/pmc/hash.pmc	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/src/pmc/hash.pmc	Mon Jul 13 22:44:29 2009	(r40068)
@@ -384,8 +384,9 @@
         Parrot_Hash_attributes * const attr =
             mem_allocate_typed(Parrot_Hash_attributes);
 
-        PMC_data(SELF) = attr;
-        attr->hash     = parrot_new_hash(INTERP);
+        PMC_data(SELF)        = attr;
+        attr->hash            = parrot_new_hash(INTERP);
+        attr->hash->container = SELF;
         PObj_custom_mark_destroy_SETALL(SELF);
     }
 

Modified: branches/tt761_keys_revamp/src/pmc/pmcproxy.pmc
==============================================================================
--- branches/tt761_keys_revamp/src/pmc/pmcproxy.pmc	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/src/pmc/pmcproxy.pmc	Mon Jul 13 22:44:29 2009	(r40068)
@@ -94,8 +94,8 @@
         _pmc->all_parents      = pmc_new(interp, enum_class_ResizablePMCArray);
         _pmc->roles            = pmc_new(interp, enum_class_ResizablePMCArray);
         _pmc->methods          = pmc_new(interp, enum_class_Hash);
-        _pmc->vtable_overrides = constant_pmc_new(interp, enum_class_Hash);
-        _pmc->parent_overrides = pmc_new(interp, enum_class_Hash);
+        _pmc->vtable_overrides = pmc_new(interp, enum_class_Hash);
+        _pmc->parent_overrides = constant_pmc_new(interp, enum_class_Hash);
         _pmc->attrib_metadata  = pmc_new(interp, enum_class_Hash);
         _pmc->attrib_index     = PMCNULL;
         _pmc->attrib_cache     = PMCNULL;
@@ -202,59 +202,6 @@
 
 /*
 
-=item C<void destroy()>
-
-Free the memory associated with the object's underlying struct.
-
-=cut
-
-*/
-
-    VTABLE void destroy() {
-        mem_sys_free(PMC_data(SELF));
-    }
-
-/*
-
-=item C<void mark()>
-
-Mark any referenced strings and PMCs in the structure as live.
-
-=cut
-
-*/
-
-    VTABLE void mark() {
-        Parrot_Class_attributes * const _pmc = PARROT_CLASS(SELF);
-
-        if (_pmc->name)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->name);
-        if (_pmc->_namespace)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->_namespace);
-        if (_pmc->parents)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->parents);
-        if (_pmc->all_parents)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->all_parents);
-        if (_pmc->roles)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->roles);
-        if (_pmc->methods)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->methods);
-        if (_pmc->vtable_overrides)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->vtable_overrides);
-        if (_pmc->parent_overrides)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->parent_overrides);
-        if (_pmc->attrib_metadata)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->attrib_metadata);
-        if (_pmc->attrib_index)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->attrib_index);
-        if (_pmc->attrib_cache)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->attrib_cache);
-        if (_pmc->resolve_method)
-            Parrot_gc_mark_PObj_alive(interp, (PObj *)_pmc->resolve_method);
-    }
-
-/*
-
 =item C<INTVAL isa_pmc(PMC *classname)>
 
 Returns whether the class is or inherits from C<*classname>.

Modified: branches/tt761_keys_revamp/t/codingstd/c_indent.t
==============================================================================
--- branches/tt761_keys_revamp/t/codingstd/c_indent.t	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/t/codingstd/c_indent.t	Mon Jul 13 22:44:29 2009	(r40068)
@@ -221,6 +221,11 @@
             . " files:\n at c_indent" );
 }
 
+# dump_state() may be used to diagnose indentation problems.
+#     dump_state(\%state, $line);
+# Takes a list of two arguments:  reference to %state and the current line
+# (once it has been chomped).
+# Prints pipe-delimited list of important features of current state.
 sub dump_state {
     my ($state, $line) = @_;
     print STDERR (join q{|} => (

Modified: branches/tt761_keys_revamp/t/configure/049-options_test_prepare.t
==============================================================================
--- branches/tt761_keys_revamp/t/configure/049-options_test_prepare.t	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/t/configure/049-options_test_prepare.t	Mon Jul 13 22:44:29 2009	(r40068)
@@ -9,7 +9,6 @@
 use Cwd;
 use File::Basename qw( basename fileparse );
 use File::Path qw( mkpath );
-use File::Spec ();
 use File::Temp 0.13 qw| tempdir |;
 use Test::More tests => 10;
 use lib qw( lib );
@@ -56,16 +55,16 @@
 
     my ( $steps_tests_simple_ref, $steps_tests_complex_ref )  =
         Parrot::Configure::Options::Test::Prepare::_find_steps_tests($tdir);
-    my $full_bad_test = File::Spec->catfile( $tdir, $bad_test );
+    my $full_bad_test = $tdir . '/' . $bad_test;
     ok( ! exists $steps_tests_simple_ref->{$full_bad_test},
         "File in incorrect directory correctly excluded from list of configuration step tests");
-    my $full_lack_number_test = File::Spec->catfile( $tdir, $lack_number_test );
+    my $full_lack_number_test = $tdir . '/' . $lack_number_test;
     ok( ! exists $steps_tests_simple_ref->{$full_lack_number_test},
         "File lacking 2-digit number correctly excluded from list of configuration step tests");
-    my $full_init_hints_test = File::Spec->catfile( $tdir, $init_hints_test );
+    my $full_init_hints_test = $tdir . '/'. $init_hints_test;
     ok( exists $steps_tests_simple_ref->{$full_init_hints_test},
         "File in second-level directory correctly included in list of configuration step tests");
-    my $full_CamelCase_test = File::Spec->catfile( $tdir, $CamelCase_test );
+    my $full_CamelCase_test = $tdir . '/' . $CamelCase_test;
     ok( ! exists $steps_tests_simple_ref->{$full_CamelCase_test},
         "File containing capital letters in name correctly excluded from list of configuration step tests");
 
@@ -94,11 +93,6 @@
         like($stderr, qr/No tests exist for configure step $not_expected/,
             "Warning about step class lacking test captured");
     }
-#    foreach my $type ( qw| init inter auto gen | ) {
-#        my $t = $type . q(_sometest-01.t);
-#        ok($tests_seen{$t}, "Found needed test");
-#    }
-
     ok( chdir $cwd, "Able to change back to starting directory");
 }
 

Modified: branches/tt761_keys_revamp/tools/dev/pbc_to_exe.pir
==============================================================================
--- branches/tt761_keys_revamp/tools/dev/pbc_to_exe.pir	Mon Jul 13 22:34:22 2009	(r40067)
+++ branches/tt761_keys_revamp/tools/dev/pbc_to_exe.pir	Mon Jul 13 22:44:29 2009	(r40068)
@@ -507,16 +507,26 @@
 
     $P0 = '_config'()
     .local string cc, ccflags, cc_o_out, osname, build_dir, slash
+    .local string installed, includepath, versiondir
     cc        = $P0['cc']
     ccflags   = $P0['ccflags']
     cc_o_out  = $P0['cc_o_out']
     osname    = $P0['osname']
     build_dir = $P0['build_dir']
     slash     = $P0['slash']
+    installed = $P0['installed']
+    includepath = $P0['includedir']
+    versiondir = $P0['versiondir']
 
     .local string includedir, pathquote
+    if installed == '1' goto installed_includedir
     includedir = concat build_dir, slash
     includedir = concat includedir, 'include'
+    goto done_includedir
+  installed_includedir:
+    includedir = concat includepath, versiondir
+  done_includedir:
+
     pathquote  = ''
     unless osname == 'MSWin32' goto not_windows
     pathquote  = '"'


More information about the parrot-commits mailing list