Re: My autodetect stuff

2007-08-02 Thread James E Keenan

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

2007-08-02 Thread James E Keenan

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

2007-08-02 Thread Andy Dougherty
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

2007-08-02 Thread via RT
# 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

2007-08-02 Thread Andy Dougherty
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

2007-08-02 Thread Doug McNutt
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

2007-08-02 Thread Paul Cochrane
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

2007-08-02 Thread larry
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

2007-08-02 Thread Joshua Hoblitt
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

2007-08-02 Thread Joshua Hoblitt
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

2007-08-02 Thread Joshua Hoblitt
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

2007-08-02 Thread Larry Wall
: +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

2007-08-02 Thread via RT
# 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

2007-08-02 Thread via RT
# 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

2007-08-02 Thread via RT
# 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

2007-08-02 Thread Joshua Hoblitt
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