[svn:parrot] r48018 - in branches/gsoc_threads: . config/gen/makefiles docs/project include/parrot lib/Parrot/Test/Util runtime/parrot/library src src/interp src/ops src/runcore t/configure t/postconfigure t/src tools/dev
Chandon at svn.parrot.org
Chandon at svn.parrot.org
Tue Jul 6 21:20:16 UTC 2010
Author: Chandon
Date: Tue Jul 6 21:20:15 2010
New Revision: 48018
URL: https://trac.parrot.org/parrot/changeset/48018
Log:
[gsoc_threads] Merge from trunk.
Modified:
branches/gsoc_threads/ (props changed)
branches/gsoc_threads/config/gen/makefiles/root.in
branches/gsoc_threads/docs/project/release_manager_guide.pod
branches/gsoc_threads/include/parrot/dynext.h
branches/gsoc_threads/include/parrot/runcore_trace.h (props changed)
branches/gsoc_threads/lib/Parrot/Test/Util/Runloop.pm
branches/gsoc_threads/runtime/parrot/library/P6object.pir
branches/gsoc_threads/src/dynext.c
branches/gsoc_threads/src/interp/inter_create.c (props changed)
branches/gsoc_threads/src/ops/core.ops
branches/gsoc_threads/src/ops/core_ops.c
branches/gsoc_threads/src/runcore/cores.c (props changed)
branches/gsoc_threads/src/runcore/trace.c (props changed)
branches/gsoc_threads/t/configure/017-revision_from_cache.t
branches/gsoc_threads/t/configure/018-revision_to_cache.t
branches/gsoc_threads/t/configure/061-revision_from_cache.t
branches/gsoc_threads/t/postconfigure/05-trace.t
branches/gsoc_threads/t/src/embed.t (props changed)
branches/gsoc_threads/tools/dev/mk_gitignore.pl (props changed)
Modified: branches/gsoc_threads/config/gen/makefiles/root.in
==============================================================================
--- branches/gsoc_threads/config/gen/makefiles/root.in Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/config/gen/makefiles/root.in Tue Jul 6 21:20:15 2010 (r48018)
@@ -2424,6 +2424,8 @@
tar -zcv -T - -f parrot-$(VERSION).tar.gz
$(PERL) -lane 'print"parrot-$(VERSION)/$$F[0]"unless!length||/#/' \
MANIFEST | tar -jcv -T - -f parrot-$(VERSION).tar.bz2
+ sha256sum parrot-$(VERSION).tar.gz > parrot-$(VERSION).tar.gz.sha256
+ sha256sum parrot-$(VERSION).tar.bz2 > parrot-$(VERSION).tar.bz2.sha256
mv MANIFEST.real MANIFEST
rm parrot-$(VERSION)
Modified: branches/gsoc_threads/docs/project/release_manager_guide.pod
==============================================================================
--- branches/gsoc_threads/docs/project/release_manager_guide.pod Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/docs/project/release_manager_guide.pod Tue Jul 6 21:20:15 2010 (r48018)
@@ -231,9 +231,11 @@
$ mkdir ~/ftp/releases/supported/a.b.c
-Copy the different compressed tarballs from your machine into the new directory.
+Copy the different compressed tarballs and the according checksum files from
+your machine into the new directory.
$ scp parrot-a.b.c.tar.gz parrot-a.b.c.tar.bz2 \
+ parrot-a.b.c.tar.gz.sha256 parrot-a.b.c.tar.bz2.sha256 \
<USERNAME>@ftp-osl.osuosl.org:~/ftp/releases/devel/a.b.c/.
(Or using C<wget> or whatever tool you prefer.)
Modified: branches/gsoc_threads/include/parrot/dynext.h
==============================================================================
--- branches/gsoc_threads/include/parrot/dynext.h Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/include/parrot/dynext.h Tue Jul 6 21:20:15 2010 (r48018)
@@ -32,6 +32,13 @@
FUNC_MODIFIES(*s);
PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void * Parrot_dlsym_str(PARROT_INTERP,
+ ARGIN_NULLOK(void *handle),
+ ARGIN_NULLOK(STRING *symbol))
+ __attribute__nonnull__(1);
+
+PARROT_EXPORT
PARROT_CANNOT_RETURN_NULL
PMC * Parrot_init_lib(PARROT_INTERP,
NULLOK(dynext_load_func load_func),
@@ -50,6 +57,8 @@
PARROT_ASSERT_ARG(d) \
, PARROT_ASSERT_ARG(s) \
, PARROT_ASSERT_ARG(lib_pmc))
+#define ASSERT_ARGS_Parrot_dlsym_str __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
+ PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_init_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
PARROT_ASSERT_ARG(interp))
#define ASSERT_ARGS_Parrot_load_lib __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
Modified: branches/gsoc_threads/lib/Parrot/Test/Util/Runloop.pm
==============================================================================
--- branches/gsoc_threads/lib/Parrot/Test/Util/Runloop.pm Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/lib/Parrot/Test/Util/Runloop.pm Tue Jul 6 21:20:15 2010 (r48018)
@@ -19,18 +19,19 @@
=head1 DESCRIPTION
This module provides a basic runloop for test scripts which perform the same
-test, over and over, on lots of files. It is intended to consolidate some code
-to handle loops, skips etc, replicated many times in the t/distro/ and
-t/codingstd/ test directories.
+test, over and over, on lots of files. It is intended to consolidate some
+code to handle loops, skips etc, replicated many times in the F<t/distro/> and
+F<t/codingstd/> test directories.
You can specify a callback routine to get called back once per line (with the
-per_line attribute), or once per file (with the per_file attribute). The
-per_line callback gets passed the line as a text string. The per_file callback
-gets passed the whole file as a text string. If the callback function returns
-positive, the test passed, otherwise the test failed. Failures are tallied,
-and later reported to the test harness once, as a single test. On failure,
-some informational diagnostics are also generated, showing the user which
-file(s) and which line(s) (if applicable) had the failure.
+C<per_line> attribute), or once per file (with the C<per_file> attribute).
+The C<per_line> callback gets passed the line as a text string. The
+C<per_file> callback gets passed the whole file as a text string. If the
+callback function returns positive, the test passed, otherwise the test
+failed. Failures are tallied, and later reported to the test harness once, as
+a single test. On failure, some informational diagnostics are also generated,
+showing the user which file(s) and which line(s) (if applicable) had the
+failure.
=head1 AUTHOR
Modified: branches/gsoc_threads/runtime/parrot/library/P6object.pir
==============================================================================
--- branches/gsoc_threads/runtime/parrot/library/P6object.pir Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/runtime/parrot/library/P6object.pir Tue Jul 6 21:20:15 2010 (r48018)
@@ -111,7 +111,8 @@
.sub 'WHAT' :method :nsentry
.local pmc how, what
how = self.'HOW'()
- .tailcall how.'WHAT'()
+ what = getattribute how, 'protoobject'
+ .return (what)
.end
@@ -162,25 +163,13 @@
=over
-=item WHAT()
-
-Return the protoobject for this metaclass.
-
-=cut
-
-.namespace ['P6metaclass']
-
-.sub 'WHAT' :method :nsentry
- $P0 = getattribute self, 'protoobject'
- .return ($P0)
-.end
-
=item isa(x)
Return a true value if the invocant 'isa' C<x>.
=cut
+.namespace ['P6metaclass']
.sub 'isa' :method :multi(_,_, _)
.param pmc obj
.param pmc x
Modified: branches/gsoc_threads/src/dynext.c
==============================================================================
--- branches/gsoc_threads/src/dynext.c Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/src/dynext.c Tue Jul 6 21:20:15 2010 (r48018)
@@ -413,6 +413,36 @@
/*
+=item C<void * Parrot_dlsym_str(PARROT_INTERP, void *handle, STRING *symbol)>
+
+Same as Parrot_dlsym but takes the symbol name from a Parrot String instead
+of a C string.
+
+=cut
+
+*/
+
+PARROT_EXPORT
+PARROT_CAN_RETURN_NULL
+void *
+Parrot_dlsym_str(PARROT_INTERP,
+ ARGIN_NULLOK(void *handle), ARGIN_NULLOK(STRING *symbol))
+{
+ ASSERT_ARGS(Parrot_dlsym_str)
+
+ void *ptr;
+ if (STRING_IS_NULL(symbol))
+ ptr = NULL;
+ else {
+ char *const symbol_cs = Parrot_str_to_cstring(interp, symbol);
+ ptr = Parrot_dlsym(handle, symbol_cs);
+ Parrot_str_free_cstring(symbol_cs);
+ }
+ return ptr;
+}
+
+/*
+
=item C<static PMC * run_init_lib(PARROT_INTERP, void *handle, STRING *lib_name,
STRING *wo_ext)>
@@ -453,18 +483,14 @@
"Parrot_lib_%Ss_load", lib_name);
STRING * const init_func_name = Parrot_sprintf_c(interp,
"Parrot_lib_%Ss_init", lib_name);
- char * const cload_func_name = Parrot_str_to_cstring(interp, load_name);
- char * const cinit_func_name = Parrot_str_to_cstring(interp, init_func_name);
/* get load_func */
- void * dlsymfunc = Parrot_dlsym(handle, cload_func_name);
+ void * dlsymfunc = Parrot_dlsym_str(interp, handle, load_name);
load_func = (PMC * (*)(PARROT_INTERP)) D2FPTR(dlsymfunc);
- Parrot_str_free_cstring(cload_func_name);
/* get init_func */
- dlsymfunc = Parrot_dlsym(handle, cinit_func_name);
+ dlsymfunc = Parrot_dlsym_str(interp, handle, init_func_name);
init_func = (void (*)(PARROT_INTERP, PMC *)) D2FPTR(dlsymfunc);
- Parrot_str_free_cstring(cinit_func_name);
}
else {
load_func = NULL;
Modified: branches/gsoc_threads/src/ops/core.ops
==============================================================================
--- branches/gsoc_threads/src/ops/core.ops Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/src/ops/core.ops Tue Jul 6 21:20:15 2010 (r48018)
@@ -1254,7 +1254,6 @@
}
op dlfunc(out PMC, invar PMC, in STR, in STR) {
- char * const name = Parrot_str_to_cstring(interp, ($3));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -1265,24 +1264,22 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, $3);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
$1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
$1 = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, $1, $4, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
}
op dlvar(out PMC, invar PMC, in STR) {
- char * const name = Parrot_str_to_cstring(interp, ($3));
void * dl_handle = NULL;
void * p = NULL;
@@ -1292,12 +1289,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data($2))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, $3);
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", $3, err ? err : "unknown reason");
$1 = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -1306,7 +1303,6 @@
$1 = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, $1, p);
}
- Parrot_str_free_cstring(name);
}
inline op compreg(in STR, invar PMC) {
Modified: branches/gsoc_threads/src/ops/core_ops.c
==============================================================================
--- branches/gsoc_threads/src/ops/core_ops.c Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/src/ops/core_ops.c Tue Jul 6 21:20:15 2010 (r48018)
@@ -15128,7 +15128,6 @@
opcode_t *
Parrot_dlfunc_p_p_s_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15139,27 +15138,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_sc_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15170,27 +15167,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), SREG(4), F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_s_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15201,27 +15196,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, SREG(3));
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlfunc_p_p_sc_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void *dl_handle = NULL;
void *ptr = NULL;
funcptr_t p;
@@ -15232,27 +15225,25 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- ptr = Parrot_dlsym(dl_handle, name);
+ ptr = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
p = D2FPTR(ptr);
if (p == NULLfunc) {
const char * err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
PREG(1) = Parrot_pmc_new(interp, enum_class_NCI);
VTABLE_set_pointer_keyed_str(interp, PREG(1), CONST(4)->u.string, F2DPTR(p));
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 5;}
opcode_t *
Parrot_dlvar_p_p_s(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (SREG(3)));
void * dl_handle = NULL;
void * p = NULL;
@@ -15262,12 +15253,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, SREG(3));
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", SREG(3), err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -15276,14 +15267,12 @@
PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 4;}
opcode_t *
Parrot_dlvar_p_p_sc(opcode_t *cur_opcode, PARROT_INTERP) {
const Parrot_Context * const CUR_CTX = Parrot_pcc_get_context_struct(interp, interp->ctx);
- char * const name = Parrot_str_to_cstring(interp, (CONST(3)->u.string));
void * dl_handle = NULL;
void * p = NULL;
@@ -15293,12 +15282,12 @@
dl_handle = ((Parrot_ParrotLibrary_attributes*)PMC_data(PREG(2)))->dl_handle;
}
- p = Parrot_dlsym(dl_handle, name);
+ p = Parrot_dlsym_str(interp, dl_handle, CONST(3)->u.string);
if (p == NULL) {
const char * const err = Parrot_dlerror();
Parrot_warn(interp, PARROT_WARNINGS_UNDEF_FLAG,
- "Symbol '%s' not found: %s\n", name, err ? err : "unknown reason");
+ "Symbol '%Ss' not found: %s\n", CONST(3)->u.string, err ? err : "unknown reason");
PREG(1) = Parrot_pmc_new(interp, enum_class_Undef);
}
else {
@@ -15307,7 +15296,6 @@
PREG(1) = Parrot_pmc_new(interp, enum_class_UnManagedStruct);
VTABLE_set_pointer(interp, PREG(1), p);
}
- Parrot_str_free_cstring(name);
return (opcode_t *)cur_opcode + 4;}
Modified: branches/gsoc_threads/t/configure/017-revision_from_cache.t
==============================================================================
--- branches/gsoc_threads/t/configure/017-revision_from_cache.t Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/t/configure/017-revision_from_cache.t Tue Jul 6 21:20:15 2010 (r48018)
@@ -7,10 +7,13 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 7 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 7;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Modified: branches/gsoc_threads/t/configure/018-revision_to_cache.t
==============================================================================
--- branches/gsoc_threads/t/configure/018-revision_to_cache.t Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/t/configure/018-revision_to_cache.t Tue Jul 6 21:20:15 2010 (r48018)
@@ -7,10 +7,13 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 8 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 8;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Modified: branches/gsoc_threads/t/configure/061-revision_from_cache.t
==============================================================================
--- branches/gsoc_threads/t/configure/061-revision_from_cache.t Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/t/configure/061-revision_from_cache.t Tue Jul 6 21:20:15 2010 (r48018)
@@ -7,10 +7,17 @@
use warnings;
use Test::More;
-plan( skip_all =>
- "\nRelevant only when working in checkout from repository and during configuration" )
- unless (-e 'DEVELOPING' and ! -e 'Makefile');
-plan( tests => 25 );
+#plan( skip_all =>
+# "\nRelevant only when working in checkout from repository and during configuration" )
+# unless (-e 'DEVELOPING' and ! -e 'Makefile');
+#plan( tests => 25 );
+if (-e 'DEVELOPING' and ! -e 'Makefile') {
+ plan tests => 25;
+}
+else {
+ plan skip_all =>
+ q{Relevant only when working in checkout from repository and prior to configuration};
+}
use Carp;
use Cwd;
use File::Copy;
Modified: branches/gsoc_threads/t/postconfigure/05-trace.t
==============================================================================
--- branches/gsoc_threads/t/postconfigure/05-trace.t Tue Jul 6 21:08:39 2010 (r48017)
+++ branches/gsoc_threads/t/postconfigure/05-trace.t Tue Jul 6 21:20:15 2010 (r48018)
@@ -14,7 +14,8 @@
plan tests => 40;
}
else {
- plan skip_all => q{Tests irrelevant unless configuration completed with tracing requested};
+ plan skip_all =>
+ q{Tests irrelevant unless configuration completed with tracing requested};
}
use lib qw( lib );
use Parrot::Config;
More information about the parrot-commits
mailing list