Re: My autodetect stuff
Andy Lester wrote: I just committed a patch that autodetects the HASATTRIBUTE_xxx attributes for GCC. It's kinda funky under Solaris, but still passes. Please let me know what happens on other platforms. I'm off to bed. I'm assuming you're speaking of revisions to config/init/attributes.pm. It runs without incident on Darwin. I didn't look at config/init/attributes.pm too closely when it was first committed to trunk (other than to create an RT scheduling it for unit tests). On closer examination, however, I believe it is misnamed. It does not fit the description provided in docs/configuration.pod for an *initialization* test: "I are run before any other steps. They do tasks such as preparing the configuration system's data structures and checking the F." Rather, it fits the description for what docs/configuration.pod calls a *probe*: "Probes are automated tests of some feature of the computer. These should be used wherever a value will not often need to be modified by the user. A step containing probes is an I. Automatic steps should be in the F folder." Note that init::attributes::runstep(), like the runstep() methods of all other "auto" steps, has the C-compiler run tests over a code sample. init::attributes should therefore be renamed auto::attributes. If should probably also be moved later in the configuration process so that it sits beside other "init" steps, but I don't have the time now to investigate exactly where it should sit. kid51
Re: My autodetect stuff
James E Keenan wrote: Andy Lester wrote: I just committed a patch that autodetects the HASATTRIBUTE_xxx attributes for GCC. It's kinda funky under Solaris, but still passes. Please let me know what happens on other platforms. I'm off to bed. init::attributes should therefore be renamed auto::attributes. If should probably also be moved later in the configuration process so that it sits beside other "init" steps, but I don't have the time now to investigate exactly where it should sit. kid51 I see that Andy moved init::attributes to a later point in the configuration sequence. From what I've been able to see so far, this looks okay, but I do think that the step should be renamed 'auto::attributes' for the reason described in my last post. Thank you very much. kid51
Re: Floating point comparisons
On Thu, 2 Aug 2007, Joshua Isom wrote: > I'm pretty sure 0.0 always equals -0.0. I think it's part of the c > specification. Now, on OpenBSD, you can't print -0.0, as it will print 0.0 > instead which is really annoying. This is with at least 3.8 but I don't know > if it's been changed since then. Anyway, to test for -0.0 instead of 0.0, you > have to use copysign. I'm afraid copysign() is not generally suitable (though it may be on some platforms). On Linux, the copysign(3) man page has the following caveat: The copysign() functions may treat a negative zero as positive. Alas, there's no further information, so it's not obvious when such misbehavior might occur. In a C99 system, you should use signbit(3) instead, though you may need extra compiler flags or libraries to find it. In the absence of signbit(3), there are various bitwise tricks one can often use. Some of these are scattered about in config/gen/platform/*/math.h. > Anyway, comparing equality of floats is never accurate, since the floats > themselves are inaccurate. I disagree. In some circumstances, comparing to 0.0 can be perfectly well defined. This whole discussion seems pointless. The accuracy of floating point calculations depends sensitively on what, precisely, the programmer is attempting to do. Guessing programmer intent doesn't seem to me to be an appropriate job for a virtual machine. -- Andy Dougherty [EMAIL PROTECTED]
[perl #44333] [BUG] parrot build breaks with msvc
# New Ticket Created by Jerry Gay # Please include the string: [perl #44333] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=44333 > r20426 (or something shortly before--probably andy's compiler attribute detection) breaks with msvc. the config/build output follows. ~jerry c:\usr\local\parrot\clean>perl configure.pl Parrot Version 0.4.14 Configure 2.0 Copyright (C) 2001-2007, The Perl Foundation. Hello, I'm Configure. My job is to poke and prod your system to figure out how to build Parrot. The process is completely automated, unless you passed in the `--ask' flag on the command line, in which case I'll prompt you for a few pieces of info. Since you're running this program, you obviously have Perl 5--I'll be pulling some defaults from its configuration. Checking MANIFEST.done. Setting up Configure's default values.done. Setting up installation paths.done. Tweaking settings for miniparrot...skipped. Loading platform and local hints filesdone. Finding header files distributed with Parrot..done. Determining what C compiler and linker to use.done. Determining whether make is installed..yes. Determining whether lex is installed...skipped. Determining whether yacc is installed..skipped. Determining if your C compiler is actually gcc..no. Determining whether libc has the backtrace* functions (glibc only)..no. Determining if your C compiler is actually Visual C++..yes. Enabling optimization...no. Detecting compiler attributes (-DHASATTRIBUTE_xxx)done. Determining flags for building shared libraries...done. Determine if parrot should be linked against a shared library..yes. Determining what charset files should be compiled in..done. Determining what encoding files should be compiled in.done. Determining what types Parrot should use..done. Determining what opcode files should be compiled in...done. Determining what pmc files should be compiled in..done. Determining your minimum pointer alignment. 1 byte. Probing for C headers.done. Determining some sizesdone. Computing native byteorder for Parrot's wordsize.little-endian. Test the type of va_ptr (this test is likely to segfault)..x86. Figuring out how to pack() Parrot's types.done. Figuring out what formats should be used for sprintf..done. Determining if your C library has a working S_ISREG.no. Determining architecture, OS and JIT capability...done. Generating CPU specific stuff.done. Verifying that the compiler supports function pointer castsyes. Determining whether your compiler supports computed gotono. Determining if your compiler supports inline...yes. Determining what allocator to use.done. Determining if your C library supports memalign.no. Determining some signal stuff.done. Determining whether there is socklen_t..no. Determining if your C library has setenv / unsetenv...unsetenv. Determining if your platform supports AIO...no. Determining if your platform supports GMP...no. Determining if your platform supports readline..no. Determining if your platform supports gdbm..no. Testing snprintf..done. Determining whether perldoc is installed...yes. Determining whether python is installed.no. Determining whether GNU m4 is installedyes. Running CPU specific stuffdone. Determining whether ICU is installedfailed. Determining Parrot's revision...r20426. Generating C headers..done. Generating core pmc list..done. Generating runtime/parrot/include.done. Configuring languages...
Re: [perl #44291] [PATCH] Fix for suncc
On Wed, 1 Aug 2007, Paul Cochrane wrote: > On 01/08/07, chromatic <[EMAIL PROTECTED]> wrote: > > On Tuesday 31 July 2007 23:23:22 Paul Cochrane wrote: > > > > Hi Paul, > > > > > This is what I thought. However, making the change made suncc > > > happier, which made me wonder if it worked on other platforms (it > > > seemed to) and hence why I asked. Better safe than sorry :-) > > > > I think only GCC can compile the computed goto core. Certainly Visual > > Studio > > can't, and it doesn't suprise me that suncc doesn't want to. > > After some more testing that seems correct. Andy mentioned to me > yesterday about configuring with --cgoto=0 and this allows parrot to > compile on Solaris with suncc. > > I'll add this to the relevant hints file. The computed goto core used to work with suncc. Apparently the computed goto core has changed in some way that it now no longer compiles. It might be better to see if it's possible to undo that change so it compiles again, or to adjust the config/auto/cgoto/test_c.in test to more accurately test what the computed goto core is doing. -- Andy Dougherty [EMAIL PROTECTED]
Re: Floating point comparisons
At 09:34 -0400 8/2/07, Andy Dougherty wrote: > Guessing programmer intent doesn't seem to me to be an >appropriate job for a virtual machine. Agreed. But in engineering and science floating point tests are often buried in deep loops. An operator for rapid testing of near-equal can help with execution speed in a virtual machine. "Nearly" can be defined by a previously defined "environment" variable, with a default, that is set outside of the loop. -- --> Evolution made it possible for mankind to invent religion. <--
Re: [perl #44333] [BUG] parrot build breaks with msvc
I've been doing some digging on this issue today, and it seems that msvc doesn't barf with HASATTRIBUTE_WARN_UNUSED_RESULT like it does with the other attribute checks, and consequently HASATTRIBUTE_WARN_UNUSED_RESULT gets set as being defined. Then later on (within compiler.h) the __attribute__... is used (gcc specific), which msvc of course doesn't understand. I was going to pack an #ifdef WIN32 or similar around that to patch up the problem temporarily, but other things got in the way. Anyway, thought you'd be interested in the results of my digging. Paul On 02/08/07, via RT Jerry Gay <[EMAIL PROTECTED]> wrote: > # New Ticket Created by Jerry Gay > # Please include the string: [perl #44333] > # in the subject line of all future correspondence about this issue. > # http://rt.perl.org/rt3/Ticket/Display.html?id=44333 > > > > r20426 (or something shortly before--probably andy's compiler > attribute detection) breaks with msvc. the config/build output > follows. > ~jerry > > c:\usr\local\parrot\clean>perl configure.pl > Parrot Version 0.4.14 Configure 2.0 > Copyright (C) 2001-2007, The Perl Foundation. > > Hello, I'm Configure. My job is to poke and prod your system to figure out > how to build Parrot. The process is completely automated, unless you passed in > the `--ask' flag on the command line, in which case I'll prompt you for a few > pieces of info. > > Since you're running this program, you obviously have Perl 5--I'll be pulling > some defaults from its configuration. > > Checking MANIFEST.done. > Setting up Configure's default values.done. > Setting up installation paths.done. > Tweaking settings for miniparrot...skipped. > Loading platform and local hints filesdone. > Finding header files distributed with Parrot..done. > Determining what C compiler and linker to use.done. > Determining whether make is installed..yes. > Determining whether lex is installed...skipped. > Determining whether yacc is installed..skipped. > Determining if your C compiler is actually gcc..no. > Determining whether libc has the backtrace* functions (glibc only)..no. > Determining if your C compiler is actually Visual C++..yes. > Enabling optimization...no. > Detecting compiler attributes (-DHASATTRIBUTE_xxx)done. > Determining flags for building shared libraries...done. > Determine if parrot should be linked against a shared library..yes. > Determining what charset files should be compiled in..done. > Determining what encoding files should be compiled in.done. > Determining what types Parrot should use..done. > Determining what opcode files should be compiled in...done. > Determining what pmc files should be compiled in..done. > Determining your minimum pointer alignment. 1 byte. > Probing for C headers.done. > Determining some sizesdone. > Computing native byteorder for Parrot's wordsize.little-endian. > Test the type of va_ptr (this test is likely to segfault)..x86. > Figuring out how to pack() Parrot's types.done. > Figuring out what formats should be used for sprintf..done. > Determining if your C library has a working S_ISREG.no. > Determining architecture, OS and JIT capability...done. > Generating CPU specific stuff.done. > Verifying that the compiler supports function pointer castsyes. > Determining whether your compiler supports computed gotono. > Determining if your compiler supports inline...yes. > Determining what allocator to use.done. > Determining if your C library supports memalign.no. > Determining some signal stuff.done. > Determining whether there is socklen_t..no. > Determining if your C library has setenv / unsetenv...unsetenv. > Determining if your platform supports AIO...no. > Determining if your platform supports GMP...no. > Determining if your platform supports readline..no. > Determining if your platform supports gdbm..no. > Testing snprintf.
[svn:perl6-synopsis] r14431 - doc/trunk/design/syn
Author: larry Date: Thu Aug 2 16:19:18 2007 New Revision: 14431 Modified: doc/trunk/design/syn/S03.pod doc/trunk/design/syn/S11.pod doc/trunk/design/syn/S12.pod Log: Clarification of autoincrement semantics requested by pmichaud++ self does not expand in list context typos Modified: doc/trunk/design/syn/S03.pod == --- doc/trunk/design/syn/S03.pod(original) +++ doc/trunk/design/syn/S03.podThu Aug 2 16:19:18 2007 @@ -12,9 +12,9 @@ Maintainer: Larry Wall <[EMAIL PROTECTED]> Date: 8 Mar 2004 - Last Modified: 15 Jun 2007 + Last Modified: 2 Aug 2007 Number: 3 - Version: 117 + Version: 118 =head1 Overview @@ -28,11 +28,11 @@ Level Examples = -Terms 42 3.14 "eek" qq["foo"] $x :!verbose +Terms 42 3.14 "eek" qq["foo"] $x :!verbose @$array Method postfix .meth .+ .? .* .() .[] .{} .<> .«» .:: .= .^ .: Autoincrement ++ -- Exponentiation ** -Symbolic unary ! + - ~ ? $ @ % & | +^ ~^ ?^ \ ^ = +Symbolic unary ! + - ~ ? | +^ ~^ ?^ \ ^ = Multiplicative * / % x xx +& +< +> ~& ~< ~> ?& div mod Additive+ - ~ +| +^ ~| ~^ ?| ?^ Junctive and (all) & @@ -47,7 +47,7 @@ Loose unary true not Comma operator , List infix Z minmax X X~X X*X XeqvX -List prefix = : print push say die map substr ... [+] [*] any all +List prefix = : print push say die map substr ... [+] [*] any $ @ Loose and and Loose oror xor err Terminator ; <==, ==>, <<==, ==>>, {...}, modifiers, extra ), ], } @@ -355,10 +355,19 @@ say $x unless %seen{$x}++; Increment of a C (in a suitable container) works similarly to -Perl 5 except that the final alphanumeric sequence in the string is -incremented regardless of what comes before it. For its typical use -of incrementing a filename, you don't have to worry about the path name, but -you do still have to worry about the extension, so you probably want to say +Perl 5, but is generalized slightly. First, the string is examined +to see if it could be the string representation of a number in +any common representation, including floating point and radix +notation. (Surrounding whitespace is also allowed around such a +number.) If it appears to be a number, it is converted to a number +and incremented as a number. Otherwise, a scan is made for the +final alphanumeric sequence in the string. Unlike in Perl 5, this +alphanumeric sequence need not be anchored to the beginning of the +string, nor does it need to begin with an alphabetic character; the +final sequence in the string matching C<\w+> is incremented regardless +of what comes before it. For its typical use of incrementing a +filename, you don't have to worry about the path name, but you do +still have to worry about the extension, so you probably want to say my $fh = open $filename++ ~ '.jpg'; @@ -366,7 +375,7 @@ $filename ~~ s[ <( <<\w+>> )> \.\w+$] = $().succ; -Perl 6 also supports C decrement. +Perl 6 also supports C decrement with similar semantics. Increment and decrement are defined in terms of the C<.succ> and C<.pred> methods on the type of object in the C container. Modified: doc/trunk/design/syn/S11.pod == --- doc/trunk/design/syn/S11.pod(original) +++ doc/trunk/design/syn/S11.podThu Aug 2 16:19:18 2007 @@ -314,7 +314,7 @@ When specifying the version of your own module, C<1.2> is equivalent to C<1.2.0>, C<1.2.0.0>, and so on. However C searches for modules matching a version prefix, so the subversions are wildcarded, -and in this context C<< :vers<1.2> >> really means C<< :vers<1.2.*> >>. +and in this context C<< :ver<1.2> >> really means C<< :ver<1.2.*> >>. If you say: use v6; @@ -376,7 +376,7 @@ from other languages. The C adverb also parses any additional parts as short-form arguments. For instance: -use Whiteness:from:namever<1.12>:auth; +use Whiteness:from:name:ver<1.12>:auth; use Whiteness:from; # same thing The string form of a version recognizes the C<*> wildcard in place of any Modified: doc/trunk/design/syn/S12.pod == --- doc/trunk/design/syn/S12.pod(original) +++ doc/trunk/design/syn/S12.podThu Aug 2 16:19:18 2007 @@ -180,6 +180,22 @@ multi method doit ($x: $a; $b; $c) { ... } +If you declare an explicit invocant for an Array type using an array variable, +you may use that directly in list context to produce its elements + +method push3 (@x: $a, $b, $c) { ... any(@x) ... } + +Note that the C function is not context sensitive and thus always +returns the current object as a single item e
should Parrot_confess() call abort()? was Re: Thank you so much Josh Hoblitt for the backtracing
Does anyone object to this patch? Index: exceptions.c === --- exceptions.c(revision 20408) +++ exceptions.c(working copy) @@ -771,7 +771,7 @@ { fprintf(stderr, "%s:%u: failed assertion '%s'\n", file, line, cond); Parrot_print_backtrace(); -exit(EXIT_FAILURE); +abort(); } -J -- On Mon, Jul 30, 2007 at 12:29:39PM -1000, Joshua Hoblitt wrote: > I've just commit some notes on this into docs/debug.pod along with some > instructions for getting a backtrace with gdb. > > It's worth noting that assert() calls abort() while PARROT_ASSERT > currently does not so this change is not really semantically equivalent. > Some people _will want_ a core file as they are particularly useful for > tracing down intermittent issues in production systems. Perhaps we need > a runtime flag to enable/disable core dumps? I would vote for having > the dumps by default as many people (well at least me) like to > control core dumps with ulimit. > > -J > > -- > On Fri, Jul 27, 2007 at 12:42:13AM -0400, Jeff Horwitz wrote: > > very nice -- i could have used that THIS AFTEROON! :) > > > > On Thu, 26 Jul 2007, Andy Lester wrote: > > > > >Josh putting in the new backtrace behind my new assertions makes debugging > > >assertions SO MUCH EASIER. > > > > > >I'm gonna go s/assert/PARROT_ASSERT/ everywhere. > > > > > >xoxo, > > >Andy > > > > > >P.S. sample > > > > > ># Received: > > ># 1..1 > > ># Backtrace - Obtained 16 stack frames (max trace depth is 32). > > ># (unknown) > > ># Parrot_confess > > ># Parrot_make_COW_reference > > ># Parrot_String_get_string > > ># Parrot_set_s_p > > ># (unknown) > > ># (unknown) > > ># (unknown) > > ># (unknown) > > ># Parrot_runops_fromc_args > > ># Parrot_runcode > > ># (unknown) > > ># imcc_run > > ># (unknown) > > ># __libc_start_main > > ># (unknown) > > ># src/string.c:129: failed assertion 's' > > ># > > ># Expected: > > ># 1..1 > > ># ok 1 > > ># > > ># Looks like you failed 6 tests of 12. > > >t/pmc/exporterdubious > > > Test returned status 6 (wstat 1536, 0x600) > > > > > >-- > > >Andy Lester => [EMAIL PROTECTED] => www.petdance.com => AIM:petdance > > > > > > > > > > > > > > > pgpn62oisN7l5.pgp Description: PGP signature
Re: Quality improvement in volunteer software projects
Oops, please ignore the accidental CCs. -J -- On Thu, Aug 02, 2007 at 01:35:51PM -1000, Joshua Hoblitt wrote: > This is Martin Michlmayr Ph.d thesis: > > http://www.cyrius.com/publications/michlmayr-phd.pdf > > > -J > > -- pgpht9olpUBmS.pgp Description: PGP signature
Quality improvement in volunteer software projects
This is Martin Michlmayr Ph.d thesis: http://www.cyrius.com/publications/michlmayr-phd.pdf -J -- pgpBoYLGg19Mn.pgp Description: PGP signature
Re: [perl #44345] [PATCH] Add NQP to docs/glossary.pod
: +Acronym for Native Quite Perl (6). NQP is designed to be a very small compiler for s/Native/Not/ Larry
[perl #44345] [PATCH] Add NQP to docs/glossary.pod
# New Ticket Created by Colin Kuskie # Please include the string: [perl #44345] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=44345 > The attached patch adds NQP to the glossary in the docs directory. Index: docs/glossary.pod === --- docs/glossary.pod (revision 20431) +++ docs/glossary.pod (working copy) @@ -221,6 +221,12 @@ Acronym for Native Call Interface. +=head2 NQP + +Acronym for Native Quite Perl (6). NQP is designed to be a very small compiler for +quickly generating PIR routines to create transformers for Parrot (especially +HLL compilers). + =head2 Packfile Another name for a PBC file, due to the names used for data structures in one
[perl #44347] [PATCH] docs/pmc/*.pod for PerlArray
# New Ticket Created by Colin Kuskie # Please include the string: [perl #44347] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=44347 > This mail message contains standard MIME attachments. If you see this note, your e-mail program does not support MIME. You may need a MIME- compliant mail reader to read any non-text attachments in this message. Index: docs/pmc/array.pod === --- docs/pmc/array.pod (revision 20433) +++ docs/pmc/array.pod (working copy) @@ -94,7 +94,7 @@ set P0[1], "A string" Accessing an out-of-bounds array element raises an exception; if you want an -Array that will automatically resize, then use a C. +Array that will automatically resize, then use a C. You can test if there is a defined element at an array position by using Index: docs/pmc/struct.pod === --- docs/pmc/struct.pod (revision 20433) +++ docs/pmc/struct.pod (working copy) @@ -63,7 +63,7 @@ can be declared with this initializer: - new P2, .PerlArray + new P2, .ResizablePMCArray .include "datatypes.pasm" push P2, .DATATYPE_DOUBLE push P2, 0 # no array i.e. 1 element
[perl #44353] [BUG] Configure.pl: verbose-step option not working with named step
# New Ticket Created by James Keenan # Please include the string: [perl #44353] # in the subject line of all future correspondence about this issue. # http://rt.perl.org/rt3/Ticket/Display.html?id=44353 > --- osname= linux osvers= 2.6.18.3 arch= i486-linux-gnu-thread-multi cc= cc --- Flags: category=core severity=medium ack=no --- particle reported tonight that the --verbose-step option to Configure.pl doesn't DWIM. It appears to work okay if you say: perl Configure.pl --verbose-step=2, but not if you name the step: [li11-226:parrot] 515 $ perl Configure.pl --verbose-step=init::manifest Parrot Version 0.4.14 Configure 2.0 Copyright (C) 2001-2007, The Perl Foundation. Hello, I'm Configure. My job is to poke and prod your system to figure out how to build Parrot. The process is completely automated, unless you passed in the `--ask' flag on the command line, in which case I'll prompt you for a few pieces of info. Since you're running this program, you obviously have Perl 5--I'll be pulling some defaults from its configuration. Checking MANIFEST.done. Setting up Configure's default values.done. Setting up installation paths.done. I think the suspect code is here. Start at line 274 of lib/Parrot/Configure.pm: # by description elsif ( $description =~ /$args->{verbose_step}/ ) { $conf->options->set( verbose => 2 ); } I feel that the regex test in the elsif makes no sense. There's no fundamental reason why a particular step's $description should match the contents of $args->{verbose_step} -- which at this point should be something like init::manifest. Amazingly, this bad code has been in this package since before I began to maintain it ... and because (a) no one complained until now and (b) I didn't write a test, no one ever noticed. Assignment: Get the --verbose-step option working with a named step. --- Summary of my parrot 0.4.14 (r20439) configuration: configdate='Fri Aug 3 02:54:55 2007 GMT' Platform: osname=linux, archname=i686-linux jitcapable=1, jitarchname=i386-linux, jitosname=LINUX, jitcpuarch=i386 execcapable=1 perl=/usr/local/bin/perl Compiler: cc='cc', ccflags=' -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE', Linker and Libraries: ld='cc', ldflags=' -L/usr/local/lib', cc_ldflags='', libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt' Dynamic Linking: share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC', load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC' Types: iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, ptrsize=4, ptr_alignment=1 byteorder=1234, nv=double, numvalsize=8, doublesize=8 --- Environment: HOME =/home/jimk LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH =/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/mysql/bin:/home/jimk/bin:/home/jimk/bin/perl SHELL =/bin/bash
Re: [perl #44353] [BUG] Configure.pl: verbose-step option not working with named step
The issue is here is that there is nothing in Configure.pl's output to correlate the package name of the step with the output seen from a typical run. For example, say the test that outputs "Determining architecture, OS and JIT capability..." is failing for some reason so you want to run it verbosely? Unless you are one of the PI number of people in the world that has fiddled with the configure steps your not going to know that steps package name is 'auto::jit'. The current system lets you run that step verbosely with just `perl Configure.pl --verbose-step=jit` and it just works. Possible ways forward: 1) Do nothing and document the behavior 2) add an additional test for a step with a package name matching the string passed to --verbose-step 3) remove the "description" matching functionality 4) 2 & 3 5) remove --verbose-step altogether 6) remove the --verbose* options and just write a 'config.log' on every run that can be searched with your text editor for choice. This: - removes code - removes complexity - is helpful for user support, "please send me your config.log file" 7) have ever configure step print it's package name as part of it's output My vote would be for (in order of preference) 6, 2, 1. Cheers, -J -- On Thu, Aug 02, 2007 at 07:59:53PM -0700, James Keenan wrote: > # New Ticket Created by James Keenan > # Please include the string: [perl #44353] > # in the subject line of all future correspondence about this issue. > # http://rt.perl.org/rt3/Ticket/Display.html?id=44353 > > > > --- > osname= linux > osvers= 2.6.18.3 > arch= i486-linux-gnu-thread-multi > cc= cc > --- > Flags: > category=core > severity=medium > ack=no > --- > particle reported tonight that the --verbose-step option to Configure.pl > doesn't DWIM. It appears to work okay if you say: perl Configure.pl > --verbose-step=2, but not if you name the step: > > [li11-226:parrot] 515 $ perl Configure.pl --verbose-step=init::manifest > Parrot Version 0.4.14 Configure 2.0 > Copyright (C) 2001-2007, The Perl Foundation. > > Hello, I'm Configure. My job is to poke and prod your system to figure > out > how to build Parrot. The process is completely automated, unless you > passed in > the `--ask' flag on the command line, in which case I'll prompt you for > a few > pieces of info. > > Since you're running this program, you obviously have Perl 5--I'll be > pulling > some defaults from its configuration. > > Checking > MANIFEST.done. > Setting up Configure's default > values.done. > Setting up installation > paths.done. > > I think the suspect code is here. Start at line 274 of > lib/Parrot/Configure.pm: > > # by description > elsif ( $description =~ /$args->{verbose_step}/ ) { > $conf->options->set( verbose => 2 ); > } > > I feel that the regex test in the elsif makes no sense. There's no > fundamental reason why a particular step's $description should match the > contents of $args->{verbose_step} -- which at this point should be > something like init::manifest. > > Amazingly, this bad code has been in this package since before I began > to maintain it ... and because (a) no one complained until now and (b) I > didn't write a test, no one ever noticed. > > Assignment: Get the --verbose-step option working with a named step. > > --- > Summary of my parrot 0.4.14 (r20439) configuration: > configdate='Fri Aug 3 02:54:55 2007 GMT' > Platform: > osname=linux, archname=i686-linux > jitcapable=1, jitarchname=i386-linux, > jitosname=LINUX, jitcpuarch=i386 > execcapable=1 > perl=/usr/local/bin/perl > Compiler: > cc='cc', ccflags=' -pipe -I/usr/local/include -D_LARGEFILE_SOURCE > -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE', > Linker and Libraries: > ld='cc', ldflags=' -L/usr/local/lib', > cc_ldflags='', > libs='-lnsl -ldl -lm -lcrypt -lutil -lpthread -lrt' > Dynamic Linking: > share_ext='.so', ld_share_flags='-shared -L/usr/local/lib -fPIC', > load_ext='.so', ld_load_flags='-shared -L/usr/local/lib -fPIC' > Types: > iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4, > ptrsize=4, ptr_alignment=1 byteorder=1234, > nv=double, numvalsize=8, doublesize=8 > > --- > Environment: > HOME =/home/jimk > LANG (unset) > LANGUAGE (unset) > LD_LIBRARY_PATH (unset) > LOGDIR (unset) > PATH > =/usr/local/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/local/mysql/bin:/home/jimk/bin:/home/jimk/bin/perl > SHELL =/bin/bash pgpmawiJduTaG.pgp Description: PGP signature