Re: CPAN and META.yml: no_index dir vs directory

2006-07-06 Thread Johan Vromans
  no_index/dir 13
  no_index/directory 1397
  private/directory40

 As for dir, I'm three of the 13, 

I'm another three of the 13, and I'll switch to 'directory' as of the
next upload.

-- Johan


Re: Test::Builder feature request...

2006-07-06 Thread Michael G Schwern

On 2/9/06, Geoffrey Young [EMAIL PROTECTED] wrote:

 This works:

yes, excellent randy.  thanks for that.  it still seems a little hackish but
that's ok - hackish works for me if it means I can do what I want and nobody
else needs to do extra work :)

I made some tweaks to your format and added a few minor notes here

  http://people.apache.org/~geoff/test-more-separately.tar.gz


A less hackish version of plan.t is...

 use Test::More;
 my $TB = Test::More-builder;
 $TB-no_ending(1);

 plan tests = 3;

 print qx!perl t/response.pl!;


Re: Proposal Suggestion - Test::Run

2006-07-06 Thread Shlomi Fish n
On Thursday 06 July 2006 00:36, Jonathan T. Rockway wrote:
 Two comments, pretty much agreeing with chromatic and Ricardo:

 1)  How would this proposed module benefit the perl community? Why 
 can't you fix things in Test::Harness and send the patch in?  If you fix
 deployed modules, everyone wins.  If you write your own module, it sits
 on CPAN unused.

 What exactly is wrong with Test::Harness, anyway?  The development team
 is pretty agreeable, the code is good, the module works, etc.  Is there
 some large problem I'm missing?  (A problem so large that TPF needs to
 *pay* someone to fix it!?)


I've answered some of these things in the following links:

http://www.shlomifish.org/lecture/Perl/Lightning/Test-Run/
http://use.perl.org/~Shlomi+Fish/journal/27467
http://use.perl.org/~Shlomi+Fish/journal/27887

Also see my other replies to this thread:

http://www.mail-archive.com/perl-qa%40perl.org/msg05987.html

And also the resource that Schwern pointed to:

http://www.mail-archive.com/perl-qa%40perl.org/msg06014.html

 2) If you use GPL'd code in an MIT-licensed app, the entire app becomes
 GPL.  I don't think you can say, this requires xyz GPL'd code, but if
 it didn't it would be MIT.  It's GPL by virtue of requiring GPL code.
 (Hence the accusation that the GPL is 'viral' or whatever.)  IANAL, but
 this is my understanding from reading the license, the FSF's site, etc.
 If the code isn't derived, though, feel free to MIT license it.  

There is a difference between derived code and inclusive code. The code that 
originated from other people's code was kept under the same licence 
(GPL+Artistic in this case). I also disclaimed any explicit ownership of it. 

OTOH, the code that was written from scratch and was my original code was 
licensed under the X11 licence, because it did not include anything else.

 (The 
 fact of the matter, though, is that Perl uses the Perl license.  I don't
 really love the Artistic license, but I release my perl code under the
 dual license because Everyone Else Does.  

I don't like doing everything only because everyone else does them. I like to 
think for myself what is the best course of action and long time strategy. 

 It makes everything work 
 nicely and builds community too  :)


I don't see using the X11 licence for my software as anti-social. Like I said, 
anyone can easily fork it as a software of a different licence. It's also 
more permissive than the GPL+Artistic licence (and much less problematic than 
the Artistic 1.0 licence, which some people don't even consider as 
free-as-in-speech.)

So far I've released all the software (Perl or otherwise) for which I had a 
choice under the Public Domain or X11 licence.

Regards,

Shlomi Fish

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.


Re: TAP::Harness

2006-07-06 Thread Michael G Schwern

On 7/1/06, Michael G Schwern [EMAIL PROTECTED] wrote:

As my flight is delayed I'll try to make a stab at posting up the basic design.


The whole point of replacing the Perl QA wiki was to have a public
place for the TAP::Harness design to live. :)

http://perl-qa.yi.org/index.php/TAP::Harness

The sources and runners work.  I started on the parser and then
stopped when I realized it would work better with a separate lexer.
The responsibilities of the parser vs the aggregator are still a bit
fuzzy as is exactly what goes into an event.  But hopefully there's
enough there to give a clearish idea of where I'm headed, what its
potentially capable of and to warn me alway from any horrible design
mistakes.


Re: Proposal Suggestion - Test::Run

2006-07-06 Thread chromatic
On Wednesday 05 July 2006 23:02, Shlomi Fish n wrote:

 I don't see using the X11 licence for my software as anti-social. Like I
 said, anyone can easily fork it as a software of a different licence.

Supposing you actually find a mentee and TPF actually does fund this project 
and this code is substantially better than Test::Harness such that it is an 
obvious candidate for inclusion in the Perl core.

It must be under the Perl license.

Now there is a fork of a fork, as the code that makes it into the core has an 
incompatible license with your fork.

(Do NOT assert, yet again without proof or a demonstratable understanding of 
the problem, that there exists a trivial solution.  The linking clause of the 
GPL is hardly a new or poorly understood legal invention, for example.)

I am not sure what to call this, but I do know that it is not a viable long 
term strategy for anyone else.  How is your refusal to follow community norms 
(or, I suppose, to work with an amenable maintainer) anything *but* 
anti-social?

I suppose copy-and-relicense forking is as good a description as any.

That is not a complimentary description, by the way.

-- c


Re: a smarter form of whitespace

2006-07-06 Thread Allison Randal

Patrick R. Michaud wrote:

On Tue, Jul 04, 2006 at 12:57:16PM -0700, Allison Randal wrote:

--

token start { ^emptyline*$ }

regex emptyline { ^^ $$ \n }

token ws { [sp | \t]* }

--


The above grammar doesn't have a grammar statement; as a result
the regexes are being installed into the '' namespace.


The original did have a 'grammar' statement, I just didn't paste it into 
the email.



$ cat xyz.pir
.sub main :main
load_bytecode 'PGE.pbc'
load_bytecode 'ar.pir'
load_bytecode 'dumper.pbc'
load_bytecode 'PGE/Dumper.pbc'

$P0 = find_global 'XYZ', 'start'
$P1 = $P0(\n\n\n\n\n\n\n, 'grammar' = 'XYZ')


What the original didn't have is the 'grammar' named argument when 
calling the start rule. When I replace the previous line with:


  $P1 = $P0(\n\n\n\n\n\n\n)

then your sample code exhibits the same problem. I assume this means 
that the reason overriding ws wasn't working is because it was calling 
the default version of ws in the root namespace. But, if it was 
defaulting to the root namespace, why was it able to find any of the 
rules? Shouldn't it have complained that it couldn't find emptyline?


Thanks,
Allison


namespaces, a single colon to separate HLL prefix?

2006-07-06 Thread Allison Randal
Quick question, is there a syntax specified in Perl 6 for referring to 
namespaces from other languages?


I'm reviewing the namespaces PDD and want to update this snippet:
--
IMPLEMENTATION EXAMPLES: Suppose a Perl program were to import some Tcl 
module with an import pattern of ``c*'' -- something that might be 
expressed in Perl 6 as use tcl:Some::Module 'c*'. This operation would 
import all the commands that start with 'c' from the given Tcl namespace 
into the current Perl namespace. This is so because, regardless of 
whether 'c*' is a Perl 6 style export pattern, it is a valid Tcl export 
pattern.


{XXX - Is the ':' for HLL approved or just proposed? Somebody familiar 
with Perl 6 please fix the example in the preceding paragraph to use the 
currently planned syntax for importing modules from other languages.}

--

Thanks,
Allison


Re: The new wiki

2006-07-06 Thread Shane Calimlim

I own p6docs.com if you'd like to use that, just give me some nameservers to
point to.

On 7/5/06, Michael G Schwern [EMAIL PROTECTED] wrote:


Thanks to Tyler MacDonald and yi.org we now have a brand spanking new
wiki!  http://perl-qa.yi.org/ is its location, we'll worry about
getting more official domains later.

Its a wiki.  Go nuts.  Err on the side of editing rather than doing
nothing.  Not sure if something should go on the wiki?  Put it there,
it can be deleted.

This is MediaWiki, the wiki which Wikipedia runs.  Its got some
features and differences from other wikis, so please read
http://perl-qa.yi.org/index.php/MediaWiki_Editing_Tips to learn how to
use it most effectively.

I've put together a short list of things you can do for the Wiki.
http://perl-qa.yi.org/index.php/What_can_I_do%3F

Those of you who have proposed TAP extensions, kindly scrape the
details off the mailing list, write them up on the wiki and list them
here:
http://perl-qa.yi.org/index.php/TAP_Proposals

Those writing TAP parsers, kindly write them up on the wiki and list them
here:
http://perl-qa.yi.org/index.php/TAP_Parsers

Those writing TAP producers (things which can produce TAP output.  ie.
Test::Builder, libtap, Test.pm, Selenium?...), write them up on the
Wiki and list them here:
http://perl-qa.yi.org/index.php/TAP_Producers



Re: a smarter form of whitespace

2006-07-06 Thread Nathan Gray
On Tue, Jul 04, 2006 at 12:57:16PM -0700, Allison Randal wrote:
 I'm writing a parser for a language that treats a double newline as a
 statement terminator. It works if I make every rule a 'regex' (to turn
 off smart whitespace). But I want spaces and tabs to act as smart
 whitespace, and newlines to act as literal whitespace. I've
 overloaded ws to match only spaces and tabs, but the grammar still
 consumes newlines where it shouldn't consume newlines. For a simple
 repeatable example, take the following grammar:

Overloading ws and other builtins was fixed in parrot and pugs
approaching midnight (hackathon time) on 2006-06-29.  If your parrot
and pugs are both more recent than that, I'm not sure where the bug
is.

-kolibrie



Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Allison Randal

Chip Salzenberg wrote:


  --- PART 2, IN WHICH AN ELEGANT SOLUTION IS PROPOSED --

On the other hand, we could extend the key PMC to represent emptiness,
i.e. zero dimensions.  This seems useful for namespaces and could even prove
useful for real keys.  And this makes keys even more compatible with the
Array interface, which I think they might need to implement someday anyway.

Allison, what do you think of zero-length keys, i.e. having [] construct a
Key PMC describing no dimensions of lookup?  If we use those we can get rid
of the current null-string hack.


Fundamentally altering the way keyed access works seems like a pretty 
extreme solution when the problem is just the root HLL namespace 
doesn't have a name. (Actually, it does have a name: 'parrot', 'tcl', 
'perl6', etc. A sort of key who must not be named, if I won't be shot 
for making terrible Harry Potter references at 1am.)


It's simpler to give the root HLL namespace a name.


If zero-length keys are not OK, then...

  --- PART 3, IN WHICH AN UGLY BUT WORKING HACK IS DESCRIBED --

I introduced a hack in my recent namespace cleanups.  I was planning to
ask/warn users about it, but then forgot I'd done it, so it's in the svn
repo now.  The hack is:

When find_global or store_global expects a string or PMC to designate (name)
a namespace, Parrot takes a null value to name the HLL root namespace.


A null string could be canonized as the name of the root namespace, 
though something a little more meaningful and easier to type would be nice.


The problem is really that we're trying to simultaneously a) refer to 
the root HLL namespace directly, and b) pretend that it doesn't exist.


I had a much longer reply, but I'm going to let it steep overnight and 
see what percolates.


Allison


Re: TAP Grammar

2006-07-06 Thread jerry gay

On 7/5/06, Chris Dolan [EMAIL PROTECTED] wrote:

On Jul 3, 2006, at 6:33 PM, chromatic wrote:

 On Monday 03 July 2006 09:01, Jonathan T. Rockway wrote:

 That said, I would be interested.  I'm still trying to page all the
 perl6/parrot grammars (PGE, TGE, etc.) into my brain, so any
 additional
 examples would helpful, interesting, and fun.  For me, anyway :)

 Jerry Gay just wrote a PGE TAP grammar:

 http://svn.perl.org/parrot/trunk/examples/pge/grammars/TAP.pg

 -- c

I hacked a rudimentary test case for that grammar, borrowing heavily
from Punie:
   https://svn.clotho.com/public/parrot-experiments/TAP/


excellent! i have the beginnings of a TAP parser in my working copy,
i'll look at what you've got and synchronize them up. thanks for the
test cases, it should be a simple matter to migrate them into tests in
the parrot repo. i'll also make the makefile platform-independent, as
it won't run on windows as it is.


To run it, edit the first line of the Makefile to specify the path to
PARROT_DIR and run make.  My tests found a few bugs in Jerry's
grammar.  My fixed version of that grammar is here:
   https://svn.clotho.com/public/parrot-experiments/TAP/grammars/TAP.pg


i've applied your changes (with one minor mod: s/\n/$$/) to parrot
revision 13168.)
thanks and keep the patches coming!
~jerry


Re: CPAN and META.yml: no_index dir vs directory

2006-07-06 Thread Adam Kennedy

 B/BL/BLM/Win32API-Registry-0.27


I can move this one pretty easily too, it needs a new release anyway.


 R/RC/RCAPUTO/POE-0.3502
 R/RC/RCAPUTO/POE-Component-Client-Keepalive-0.0801


I'm pretty sure Rocco will move next release as well.

Adam K


Re: On Gaming CPANTS, and a Kwalitee Suggestion

2006-07-06 Thread David Cantrell

Tels wrote:


And, improve compatibility - with broken systems? OMG. :)


Yeah, you know, like when you comment this out before release :-)

# die(Sorry, you must have a computer to run this software\n)
#   if($^O =~ /win32/i);


Given that Mod::Sig checks are just that the signature is valid, not
that the signature matches a known/registered developer, the security
aspect is already minimal.

This is a security bug and should then be fixed ASAP.


Given that you have to be logged in to the PAUSE and have permission to 
upload stuff for that module, then I don't think that signatures matter 
in the slightest.  It doesn't give you any kind of trust metric (like, 
say, that the author is a nice guy and his Makefile.PL won't delete your 
home directory) that you don't already have from the fact that my module 
had to have been uploaded by me.


--
David Cantrell


Old and broken versions of Module::Install

2006-07-06 Thread Steffen Mueller

Hi perl.qa,

hopefully, this message will not provoke another flame war about 
Module::Install and Module::Build. Please don't feel tempted. I don't 
care which build system you use if it works.


Versions of Module::Install  0.61 do not work on the current ActivePerl 
release 5.8.8 build 817. There are *a lot* of CPAN distributions that 
use Module::Install versions in the 0.3X range. In fact the most modules 
that use Module::Install are still 0.3X. For example an integral 
distribution like Scalar-List-Utils is using Module::Install 0.37. You 
can find a complete (and somewhat current) list of problematic modules 
at http://steffen-mueller.net/mi_old.html


Installing modules from CPAN on win32 is really frustrating if you have 
to do the following dance for every other module you install:


(install current Module::Install once, then:)
 look Foo::Bar
$ rm -rf inc/
$ perl Makefile.PL
$ make
$ make install
$ exit

This is particularly nasty if it happens somewhere in the dependency chain.

Why am I posting here?

a) Perhaps some of those distributions belong to you. If so, please 
consider releasing a new version with a more current Module::Install or 
without using Module::Install at all.
b) You care about perl and CPAN qa. What can we do to motivate authors 
to upgrade?


Keep in mind that a kitten, err, a would-be win32 Perl programmer and/or 
user is turned away for every module that doesn't install because of 
this. In particular, the above solution for a module that doesn't 
install cleanly isn't known to just anybody because the error you get 
isn't self-explanatory.


Ideas?

Steffen


Re: Old and broken versions of Module::Install

2006-07-06 Thread David Golden

Steffen Mueller wrote:
Versions of Module::Install  0.61 do not work on the current ActivePerl 
release 5.8.8 build 817. There are *a lot* of CPAN distributions that 
use Module::Install versions in the 0.3X range. In fact the most modules 
that use Module::Install are still 0.3X. For example an integral 
distribution like Scalar-List-Utils is using Module::Install 0.37. You 
can find a complete (and somewhat current) list of problematic modules 
at http://steffen-mueller.net/mi_old.html


Ideas?


What about adding NO_BROKEN_INSTALLER as a Kwalitee point for CPANTS?

:-)

Regards,
David Golden


Re: Test::Builder feature request...

2006-07-06 Thread Geoffrey Young
Michael G Schwern wrote:
 On 2/9/06, Geoffrey Young [EMAIL PROTECTED] wrote:
 
  This works:

 yes, excellent randy.  thanks for that.  it still seems a little
 hackish but
 that's ok - hackish works for me if it means I can do what I want and
 nobody
 else needs to do extra work :)

 I made some tweaks to your format and added a few minor notes here

   http://people.apache.org/~geoff/test-more-separately.tar.gz
 
 
 A less hackish version of plan.t is...
 
  use Test::More;
  my $TB = Test::More-builder;
  $TB-no_ending(1);
 
  plan tests = 3;
 
  print qx!perl t/response.pl!;

cool, thanks.  I've updated the example package to include that format
as well.

--Geoff




Re: Old and broken versions of Module::Install

2006-07-06 Thread Steffen Mueller

David Golden schrieb:

What about adding NO_BROKEN_INSTALLER as a Kwalitee point for CPANTS?


Maybe tongue-in-cheek, but it's actually a good idea. Module::Install 
pre-0.61 is certainly broken.


What does Module::Build count as? ;)

Steffen


Re: [perl #39734] t/doc/pod.t fails on Mac OS 10.4.6/perl 5.8.8

2006-07-06 Thread jerry gay

On 7/5/06, via RT David H. Adler [EMAIL PROTECTED] wrote:

As bugs go, not a killer, but still...

The problem tests are as follows:

not ok 329 - POD test for /Users/dha/parrot-0.4.5/src/ops/experimental.ops

# Failed test (t/doc/pod.t at line 62)
# /Users/dha/parrot-0.4.5/src/ops/experimental.ops (229): '=item' outside of 
any '=over'

and

not ok 1162 - POD test for /Users/dha/parrot-0.4.5/docs/ops/experimental.pod

# Failed test (t/doc/pod.t at line 62)
# /Users/dha/parrot-0.4.5/docs/ops/experimental.pod (105): '=item' outside of 
any '=over'


i can't recreate this with a recent revision.
from the svn log, it seems src/ops/experimental.ops was modified 19 june.

perhaps you have a modified file in your working copy?
~jerry

snip/
Updated to revision 13181.

D:\usr\local\parrot\trunkprove t/doc/pod.t
t/doc/pod# finding files with pod, this may take a minute.
t/doc/podok
All tests successful.
Files=1, Tests=1177, 226 wallclock secs ( 0.00 cusr +  0.00 csys =  0.00 CPU)


Re: Cage Cleaning for dummies? Re: Call for Parrot Janitors

2006-07-06 Thread Steve Peters
On Thu, Jul 06, 2006 at 06:33:48AM +0100, Nicholas Clark wrote:
 On Wed, Jul 05, 2006 at 09:10:47PM -0700, chromatic wrote:
  On Wednesday 05 July 2006 19:58, Bill Ricker wrote:
 
   * Minimum GCC == whatever Perl5 was built with? or specific?
  
  Probably at least 2.9x.
 
 Why? IIRC gcc 2.7 was good and stable, and it's not like C89 has changed much
 in the past 10 years. I guess it's really down to whether the C compiler
 (gcc or otherwise) has awkward bugs on your platform.
 
   (Alas, I do _not_ have the Tru64/DEC compiler for Alpha AXP on my
   Debian/Alpha. There's someone I can talk to, I might be able to get
   it, or get access to it. Hmm.)
  
  Alpha would be very good.
 
 Any vendor compiler is very good at picking up sloppy C code. As well as
 Tru64, anyone with Irix, AIX, HP-UX, particularly if 64 bit, would be most
 welcome.
 

The MS Visual Studio compilers are also very picky, and that's where I 
made some initial contributions.

Alternative compilers on various OS's are also a good place to look for 
problems.  Intel C++ is on Linux, Windows, and Mac OS X (Intel).  The 
alpha Sun Studio compiler is available for Linux.  

Steve Peters
[EMAIL PROTECTED]


Re: Module Signatures [was Re: On Gaming CPANTS...]

2006-07-06 Thread A. Pagaltzis
* Jonathan Rockway [EMAIL PROTECTED] [2006-07-06 03:25]:
 I think the solution (to dependency hell) is to dictate that
 CPAN modules be signed with a standard algorithm. OpenPGP
 allows too many different algorithms, hence the 22 modules
 Crypt::OpenPGP is dependent on.  The only strong reason to
 stick with OpenPGP is that it has the whole web-of-trust and
 keyserver infrastructure.
 
 If we can live without that,

What’s the point?

If all that’s verified is that the distribution was signed with
the key uploaded to the same directory, then all you can have
confidence in is that distribution was uploaded by someone who
has permission to upload a key. That might be the author, or it
might be an impostor who got ahold of the author’s account
details and uploaded his own key.

But to upload a distribution you need the author’s account
details anyway! So the cryptosig doesn’t give you confidence in
any facts that you didn’t already have confidence in. In other
words, for the signatures to improve confidence, they have to
be generated from keys that either form of a web of trust in
which the downloader participates, or they have to be issued by a
certification authority that imposes additional background
verification before it will issue a key.

I don’t think running a cert auth is feasible for CPAN. So the
only worthwhile option is to participate in the PGP web of trust.
If you do away with that, you can just as well do away with
cryptosigs alltogether.

NB.: of course, Mod::Sig currently doesn’t check the
trustworthiness of a key, only whether a distribution is
signed with the uploaded key, so it’s pointless in precisely
the way outlined above. Until such time as trust checks are
implemented, there is no point to signing CPAN distros.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: Old and broken versions of Module::Install

2006-07-06 Thread Chris Dolan

On Jul 6, 2006, at 9:18 AM, A. Pagaltzis wrote:


* Steffen Mueller [EMAIL PROTECTED] [2006-07-06 15:20]:

What does Module::Build count as? ;)


I use M::B with `create_makefile_pl = 'traditional'`. What does
that count as?

Regards,
--  
Aristotle Pagaltzis // http://plasmasturm.org/


IMHO it likely counts as a CPANTS pass for now, but it may be a fail  
in the future unless you update the Makefile.PL with a newer M::B as  
bugs are discovered.


Chris
--
Chris Dolan, Software Developer, Clotho Advanced Media Inc.
608-294-7900, fax 294-7025, 1435 E Main St, Madison WI 53703
vCard: http://www.chrisdolan.net/ChrisDolan.vcf

Clotho Advanced Media, Inc. - Creators of MediaLandscape Software  
(http://www.media-landscape.com/) and partners in the revolutionary  
Croquet project (http://www.opencroquet.org/)





Re: Old and broken versions of Module::Install

2006-07-06 Thread Chris Dolan

On Jul 6, 2006, at 8:10 AM, Steffen Mueller wrote:


David Golden schrieb:

What about adding NO_BROKEN_INSTALLER as a Kwalitee point for CPANTS?


Maybe tongue-in-cheek, but it's actually a good idea.  
Module::Install pre-0.61 is certainly broken.


What does Module::Build count as? ;)

Steffen


I agree, this is a really good idea.  I would call it  
UP_TO_DATE_INSTALLER.  For the present, it could simply test for  
old Module::Install.  In the future, it could be expanded to look for  
compatibility problems in Build.PL or Makefile.PL (e.g. a Makefile.PL  
using out-of-date Module::Build::Compat boilerplate).


If the CPANTS game gets any M::I-using authors to upgrade, then it  
has served its purpose.


Chris
--
Chris Dolan, Software Developer, Clotho Advanced Media Inc.
608-294-7900, fax 294-7025, 1435 E Main St, Madison WI 53703
vCard: http://www.chrisdolan.net/ChrisDolan.vcf

Clotho Advanced Media, Inc. - Creators of MediaLandscape Software  
(http://www.media-landscape.com/) and partners in the revolutionary  
Croquet project (http://www.opencroquet.org/)





Re: Old and broken versions of Module::Install

2006-07-06 Thread A. Pagaltzis
* Steffen Mueller [EMAIL PROTECTED] [2006-07-06 15:20]:
 What does Module::Build count as? ;)

I use M::B with `create_makefile_pl = 'traditional'`. What does
that count as?

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: Old and broken versions of Module::Install

2006-07-06 Thread A. Pagaltzis
* Chris Dolan [EMAIL PROTECTED] [2006-07-06 16:30]:
 IMHO it likely counts as a CPANTS pass for now, but it may be a
 fail in the future unless you update the Makefile.PL with a
 newer M::B as bugs are discovered.

To make sure we’re on the same page: that would be bugs in
M::B::Compat, not M::B itself, right? If that isn’t accepted,
then I will revert to EU::MM (with apologies to Schwern) until
you all figure out the damn installers among yourselves.

But you’re not catching me dead using an installer that requires
me to pay attention to its development and to push up new
versions of my distros in response to its bugs. There are far
better ways to waste my time.

Sorry that this turned into an M::B/M::I flame anyway,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread Gabor Szabo

Using  Test::WWW::Mechanize 1.10 I am trying to
$w-page_links_ok();

on a page that has an e-mail address in it and the test fails.

How could I tell TWM not to bother with the mailto links on the page?

Gabor


Re: Cage Cleaning for dummies? Re: Call for Parrot Janitors

2006-07-06 Thread Chris Dolan

On Jul 5, 2006, at 11:10 PM, chromatic wrote:


* Is a FQDN with RDNS required for access or posting of bugs?


I believe you can post through the web interface.


Not as of yesterday.  RT appears broken and searches return no  
bugs...  The official bug submission recommendations are listed here:  
http://bugs6.perl.org/


Chris
--
Chris Dolan, Software Developer, Clotho Advanced Media Inc.
608-294-7900, fax 294-7025, 1435 E Main St, Madison WI 53703
vCard: http://www.chrisdolan.net/ChrisDolan.vcf

Clotho Advanced Media, Inc. - Creators of MediaLandscape Software  
(http://www.media-landscape.com/) and partners in the revolutionary  
Croquet project (http://www.opencroquet.org/)





Re: Cage Cleaning for dummies? Re: Call for Parrot Janitors

2006-07-06 Thread Will Coleda

Submitting bugs is not done through the web interface, but via email.

Please see: http://www.parrotcode.org/docs/submissions.html

RT was upgraded recently. It seems to be working at the moment.

Regards.

On Jul 6, 2006, at 10:39 AM, Chris Dolan wrote:


On Jul 5, 2006, at 11:10 PM, chromatic wrote:


* Is a FQDN with RDNS required for access or posting of bugs?


I believe you can post through the web interface.


Not as of yesterday.  RT appears broken and searches return no  
bugs...  The official bug submission recommendations are listed  
here: http://bugs6.perl.org/


Chris


--
Will Coke Coleda
[EMAIL PROTECTED]




Re: namespaces, a single colon to separate HLL prefix?

2006-07-06 Thread Audrey Tang


在 2006/7/6 上午 3:30 時,Allison Randal 寫到:

Quick question, is there a syntax specified in Perl 6 for referring  
to namespaces from other languages?


I'm reviewing the namespaces PDD and want to update this snippet:
--
IMPLEMENTATION EXAMPLES: Suppose a Perl program were to import some  
Tcl module with an import pattern of ``c*'' -- something that might  
be expressed in Perl 6 as use tcl:Some::Module 'c*'. This operation  
would import all the commands that start with 'c' from the given  
Tcl namespace into the current Perl namespace. This is so because,  
regardless of whether 'c*' is a Perl 6 style export pattern, it is  
a valid Tcl export pattern.


{XXX - Is the ':' for HLL approved or just proposed? Somebody  
familiar with Perl 6 please fix the example in the preceding  
paragraph to use the currently planned syntax for importing modules  
from other languages.}

--


The : form is approved and canonical (line 303, the Modules spec, aka  
S11.pm version 14).


use perl5:DBI;

However, currently it's only available at use/require line.   
Afterwards, the user simply say:


my $dbh = DBI.connect(...);

Though I think this:

my $dbh = perl5:DBI.connect(...)

can be made to work, as it's currently parsefail, thought there is a  
marginal case:


my $dbh = perl5:DBI; # currently parsed as perl5(:DBI)

but we can say that for each HLL-qualified module name, it's a single  
token and is therefore recognized first.


Does that sound sane?  If yes, S11 can be updated to reflect that.

Thanks,
Audrey

PGP.sig
Description: This is a digitally signed message part


Re: a smarter form of whitespace

2006-07-06 Thread Patrick R. Michaud
On Thu, Jul 06, 2006 at 12:29:12AM -0700, Allison Randal wrote:
 $ cat xyz.pir
 .sub main :main
 load_bytecode 'PGE.pbc'
 load_bytecode 'ar.pir'
 load_bytecode 'dumper.pbc'
 load_bytecode 'PGE/Dumper.pbc'
 
 $P0 = find_global 'XYZ', 'start'
 $P1 = $P0(\n\n\n\n\n\n\n, 'grammar' = 'XYZ')
 
 What the original didn't have is the 'grammar' named argument when 
 calling the start rule. When I replace the previous line with:
 
   $P1 = $P0(\n\n\n\n\n\n\n)
 
 then your sample code exhibits the same problem. I assume this means 
 that the reason overriding ws wasn't working is because it was calling 
 the default version of ws in the root namespace. But, if it was 
 defaulting to the root namespace, why was it able to find any of the 
 rules? Shouldn't it have complained that it couldn't find emptyline?

At the moment (and this may be incorrect), PGE looks for named rules
via inheritance, and if not found that way it looks in the available
symbol tables using the find_name opcode.

So, the match was able to find the rules because they are in the 
current namespace, but when it came time to find the rule for ?ws 
there was a ws method available (the default) and so that one
was used.

Again, this may not be the correct behavior; I've been using S12 as
the guide here, in that a method call first considers methods from
the class hierarchy and fails over to subroutine dispatch.

Pm


Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread Andy Lester


On Jul 6, 2006, at 10:22 AM, Gabor Szabo wrote:


Using  Test::WWW::Mechanize 1.10 I am trying to
$w-page_links_ok();

on a page that has an e-mail address in it and the test fails.

How could I tell TWM not to bother with the mailto links on the page?


That's silly that it tries the mailto.  I'm fixing it right now.

xoxo,
Andy

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread A. Pagaltzis
* Gabor Szabo [EMAIL PROTECTED] [2006-07-06 17:25]:
 Using  Test::WWW::Mechanize 1.10 I am trying to
 $w-page_links_ok();
 
 on a page that has an e-mail address in it and the test fails.
 
 How could I tell TWM not to bother with the mailto links on the page?

There’s no official way. Until Andy fixes it somehow, you can
hack it:

package Test::WWW::Mechanize::CheckOnlyHTTPURI;

our @ISA = qw( Test::WWW::Mechanize );

sub _check_links_status {
my $self = shift;
my $urls = shift;
$urls = [ grep m!^s?https?:!, @$urls ];
return $self-SUPER::_check_links_status( $urls, @_ );
}

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread demerphq

On 7/6/06, Andy Lester [EMAIL PROTECTED] wrote:


On Jul 6, 2006, at 10:46 AM, A. Pagaltzis wrote:

 $urls = [ grep m!^s?https?:!, @$urls ];

What's an shttps link?


That the Sean Connery version...

Yves

--
perl -Mre=debug -e /just|another|perl|hacker/


Re: Proposal Suggestion - Test::Run

2006-07-06 Thread David Landgren

Shlomi Fish n wrote:


I don't see using the X11 licence for my software as anti-social. Like I said,


But it is. You are forcing people to spend some of their precious time 
to understand the ramifications of this different license, and consider 
the differences between it and the GPL and AL.


anyone can easily fork it as a software of a different licence. It's also 


Again, you are forcing people to expend effort for what could otherwise 
be a non-issue.


more permissive than the GPL+Artistic licence (and much less problematic than 
the Artistic 1.0 licence, which some people don't even consider as 
free-as-in-speech.)


That's their problem.

So far I've released all the software (Perl or otherwise) for which I had a 
choice under the Public Domain or X11 licence.


Personally, I'm happy enough to sign my modules as licenced under the 
same terms as Perl itself, thereby letting other people deal with a 
matter for which I have next to no interest in.


My own take on this is that even if your code was better, I wouldn't use 
it, since I couldn't be sure that my use of it may in some way violate 
its terms. At least I know where I stand with the GPL and AL.


Life is short, and the less I have to think about licensing issues, the 
better.


David


Regards,

Shlomi Fish

-
Shlomi Fish  [EMAIL PROTECTED]
Homepage:http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.


Indeed.

--
Much of the propaganda that passes for news in our own society is given 
to immobilising and pacifying people and diverting them from the idea 
that they can confront power. -- John Pilger




Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread A. Pagaltzis
* Andy Lester [EMAIL PROTECTED] [2006-07-06 17:55]:
 On Jul 6, 2006, at 10:46 AM, A. Pagaltzis wrote:
 
 $urls = [ grep m!^s?https?:!, @$urls ];
 
 What's an shttps link?

Err, right. I suppose that should be `m!^(s?)http(?(1)|s?):!`, or
else you just punt on `shttp` (does LWP handle those, anyway?).

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread Andy Lester


On Jul 6, 2006, at 10:46 AM, A. Pagaltzis wrote:


$urls = [ grep m!^s?https?:!, @$urls ];


What's an shttps link?

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread Andy Lester


On Jul 6, 2006, at 11:01 AM, A. Pagaltzis wrote:


Err, right. I suppose that should be `m!^(s?)http(?(1)|s?):!`, or
else you just punt on `shttp` (does LWP handle those, anyway?).


I was going to just make it be /^https?/.  Never heard of shttp.

--
Andy Lester = [EMAIL PROTECTED] = www.petdance.com = AIM:petdance






Re: check if all the links on an HTML page are working (except the mailto links)

2006-07-06 Thread A. Pagaltzis
* A. Pagaltzis [EMAIL PROTECTED] [2006-07-06 18:05]:
 Err, right. I suppose that should be `m!^(s?)http(?(1)|s?):!`,

Drat, `m!^(s)?http(?(1)|s?):!` of course.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: Old and broken versions of Module::Install

2006-07-06 Thread Chris Dolan

On Jul 6, 2006, at 10:18 AM, A. Pagaltzis wrote:


* Chris Dolan [EMAIL PROTECTED] [2006-07-06 16:30]:

IMHO it likely counts as a CPANTS pass for now, but it may be a
fail in the future unless you update the Makefile.PL with a
newer M::B as bugs are discovered.


To make sure we’re on the same page: that would be bugs in
M::B::Compat, not M::B itself, right? If that isn’t accepted,
then I will revert to EU::MM (with apologies to Schwern) until
you all figure out the damn installers among yourselves.


Yes indeed, that's what I meant.  I'm not saying there are  
M::B::Compat bugs, just *if* any were discovered someday, they could  
be flagged by CPANTS.


Anywhere you have boilerplate code, you have the possibility of bugs  
that need to be fixed via the good intentions of authors deploying  
that boilerplate.  M::B- and EU::MM-using authors generally create  
minimal boilerplate and thus have a central point of upgrade.   
M::B::Compat is the only exception I could think of, so it became my  
example in my effort *not* to incite an M::I vs. M::B flamefest.   
Apologies for any confusion.


Chris
--
Chris Dolan, Software Developer, Clotho Advanced Media Inc.
608-294-7900, fax 294-7025, 1435 E Main St, Madison WI 53703
vCard: http://www.chrisdolan.net/ChrisDolan.vcf

Clotho Advanced Media, Inc. - Creators of MediaLandscape Software  
(http://www.media-landscape.com/) and partners in the revolutionary  
Croquet project (http://www.opencroquet.org/)





Re: Old and broken versions of Module::Install

2006-07-06 Thread Michael G Schwern

On 7/6/06, Steffen Mueller [EMAIL PROTECTED] wrote:

Versions of Module::Install  0.61 do not work on the current ActivePerl
release 5.8.8 build 817.


What's broken and why suddenly 5.8.8?


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 01:21:08AM -0700, Allison Randal wrote:
 The problem is really that we're trying to simultaneously a) refer to 
 the root HLL namespace directly, and b) pretend that it doesn't exist.

I don't think (b) is quite true.  It's more that we're avoiding explicit
re-coding of a known bit of environmental information, as in the first
floor of this building rather than the first floor of 123 main street.

 Chip Salzenberg wrote:
 Allison, what do you think of zero-length keys, i.e. having [] construct a
 Key PMC describing no dimensions of lookup?  If we use those we can get rid
 of the current null-string hack.
 
 Fundamentally altering the way keyed access works seems like a pretty 
 extreme solution when the problem is just the root HLL namespace 
 doesn't have a name.

I brought it up partly because I was hoping you'd say something like, Oh
yeah, we're gonna need zero-length keys anyway for Perl 6.  What is the
parameter to operator:postcircumfix [] when a user says

   @array.[]

?

 It's simpler to give the root HLL namespace a name.

Indeed, it already has the name of empty list when a PMC array is the
naming vehicle:

$P0 = new .FixedPMCArray
$P1 = get_namespace $P0   # that's the HLL root

There are two kinds of lists in play for namespaces; one of them can have a
length of zero (PMC array), but the other one can't (key), and the one that
can be zero-length doesn't have convenience pasm syntax.

 A null string could be canonized as the name of the root namespace, 
 though something a little more meaningful and easier to type would be nice.

I should emphasize that I've gone to the recent trouble of making namespace
[''] *not* mean the HLL root for two reasons: (1) it's poor manners on the
part of a VM to steal names from HLLs or users, and (2) when a user is
working with an array of names, they'll want to be able to decompose the
list -- which puts a string that used to be in the middle out on the front,
or by itself -- without accidentally re-rooting the search.

Possibility: If we introduce a pasm keyword Null to mean a pmc constant null
(and perhaps a string contant null), then the null name could be easier to
type.  It could also be useful in other contexts.

Gentle observation: [] is pretty easy to type, and offers consistency:

$P2 = get_namespace ['a','b']   # two levels from root
$P1 = get_namespace ['a']   # one level from root
$P0 = get_namespace []  # zero levels from root

Ugly hack / joke: If you were willing to look the other way, [] could be an
alternative spelling for PMC Null.  :-P
-- 
Chip Salzenberg [EMAIL PROTECTED]


[perl #39738] bind fails with errno EADDRNOTAVAIL on darwin and FreeBSD

2006-07-06 Thread via RT
# New Ticket Created by  Chris Dolan 
# Please include the string:  [perl #39738]
# in the subject line of all future correspondence about this issue. 
# URL: http://rt.perl.org/rt3/Ticket/Display.html?id=39738 


---
osname= darwin
osvers= 8.0
arch=   darwin-thread-multi-2level
cc= cc 
---
Flags:
category=core
severity=medium
ack=no
---
With parrot r13181, binding to a non-privileged port on localhost
consistently fails with EADDRNOTAVAIL on Mac OS X and FreeBSD boxes
for Intel and PPC platforms.  The same command succeeds on Linux.

Steps to reproduce:
  1) ./parrot examples/io/httpd.pir
  2) netstat -na | grep 1234 | grep LISTEN

Actual results:
  Socket is not bound

Expected results:
  netstat -na should contain a line like this:
   tcp0  0 127.0.0.1:1234  0.0.0.0:*   LISTEN

Reproducibility:
  Reproduced on a G5 Powermac running Mac OS X 10.4.6
  Reproduced on an Intel Macbook running Mac OS X 10.4.7
  Reproduced on a G5 Xserve running Mac OS X Server 10.3.9
  Reproduced on an x86 box running FreeBSD 5.4
  Not reproduced on an x86 box running RedHat 7.x

  On my G5 Powermac, I get the same results if I change
  examples/io/httpd.pir to listen on 127.0.0.1 instead of
  localhost.

---
Summary of my parrot 0.4.5 (r13165) configuration:
  configdate='Wed Jul  5 14:31:06 2006'
  Platform:
osname=darwin, archname=darwin-thread-multi-2level
jitcapable=1, jitarchname=ppc-darwin,
jitosname=DARWIN, jitcpuarch=ppc
execcapable=1
perl=perl
  Compiler:
cc='cc', ccflags='-g -pipe -fno-common -no-cpp-precomp  
-I/usr/local/include -pipe -fno-common -Wno-long-double  -I/sw/include 
-I/sw/include',
  Linker and Libraries:
ld='c++', ldflags='-L/usr/local/lib -flat_namespace  -L/sw/lib -L/sw/lib',
cc_ldflags='',
libs='-lm -lgmp -lreadline'
  Dynamic Linking:
share_ext='.dylib', ld_share_flags='-dynamiclib -undefined suppress',
load_ext='.bundle', ld_load_flags='-bundle -undefined suppress'
  Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=1 byteorder=4321, 
nv=double, numvalsize=8, doublesize=8

---
Environment:
DYLD_LIBRARY_PATHHOMELANGLANGUAGELC_ALLLD_LIBRARY_PATH  
  LOGDIRPATHPERL5LIBPERL5_CPANPLUS_CONFIGSHELL


Re: namespaces, a single colon to separate HLL prefix?

2006-07-06 Thread Larry Wall
On Thu, Jul 06, 2006 at 10:40:21AM -0400, Audrey Tang wrote:
: The : form is approved and canonical (line 303, the Modules spec, aka  
: S11.pm version 14).
: 
: use perl5:DBI;
: 
: However, currently it's only available at use/require line.   
: Afterwards, the user simply say:
: 
: my $dbh = DBI.connect(...);
: 
: Though I think this:
: 
: my $dbh = perl5:DBI.connect(...)
: 
: can be made to work, as it's currently parsefail, thought there is a  
: marginal case:
: 
: my $dbh = perl5:DBI; # currently parsed as perl5(:DBI)
: 
: but we can say that for each HLL-qualified module name, it's a single  
: token and is therefore recognized first.
: 
: Does that sound sane?  If yes, S11 can be updated to reflect that.

It's only sane if we require the predeclaration of the language higher
in the lexical scope.  Suppose we try to maintain a secret canonical
list, and then suppose someone adds a language 'q', for instance?
But after a use q:mumble we can certainly recognize q:, presumably
forcing people to write q :mumble for the rest of the lexical scope
if they want a mumbled quote.  Alternately we could force explicit
declaration of all foreign namespaces:

use namespace perl5 q;
...
use q:QueryMe;
use perl5:DBI;

Actually, I kinda like that because it gives a logical spot to talk
about how to import a namespace, if you want to modify it.  Like what
if you want to alias the namespace:

use namespace :perl5OldSchoolPerl;

or some such.

But it's also possible we should do something more sigilistic or
twigilistic for foreign namespace roots.  A punishingly dehuffmanized
version might be

use NAMESPACE::perl5::DBI;

which for alphabetic names the parser might allow us to reduce to

use **perl5::DBI;

much like we allow *Foo as short for GLOBAL::Foo.

Larry


sprintf for S29

2006-07-06 Thread Aaron Sherman
I've taken a stab at sprintf for S29. All I've done differently from
Perl 5 is to drop %p and %n (generates an exception) and add %C
(closure) to replace the functionality of %n. Are there any additional
formats that we want to add?

Other than that, this should be exactly the same as Perl 5:

=item sprintf

 our method Str Str::sprintf ( Str $format: [EMAIL PROTECTED] )
 our multi Str sprintf ( Str $format, [EMAIL PROTECTED] )

This function is mostly identical to the C library sprintf function.

The C$format is scanned for C% characters. Any C% introduces a
format token. Format tokens have the following grammar:

 grammar Str::SprintfFormat {
  rule format_token { \%: index? precision? modifier? directive }
  rule index { \d+ \$ }
  rule precision { flags? vector? precision_count }
  rule flags { [\ +0\#\-]+ }
  rule precision_count { [ [1-9]\d* | \* ]? [ \. [ \d* | \* ] ]? }
  rule vector { \*? v }
  rule modifier { [lhVqL] | ll }
  rule directive { [\%csduoxefgXEGbpniDUOF] }
 }

Directives guide the use (if any) of the arguments. When a directive
(other than C%) are used, they indicate how the next argument
passed is to be formatted into the string.

The directives are:

 %   a percent sign
 c   a character with the given number
 s   a string
 d   a signed integer, in decimal
 u   an unsigned integer, in decimal
 o   an unsigned integer, in octal
 x   an unsigned integer, in hexadecimal
 e   a floating-point number, in scientific notation
 f   a floating-point number, in fixed decimal notation
 g   a floating-point number, in %e or %f notation
 X   like x, but using upper-case letters
 E   like e, but using an upper-case E
 G   like g, but with an upper-case E (if applicable)
 b   an unsigned integer, in binary
 C   special: invokes the arg as code, see below

Compatibility:

 i   a synonym for %d
 D   a synonym for %ld
 U   a synonym for %lu
 O   a synonym for %lo
 F   a synonym for %f

Perl 5 compatibility:

 n   produces a runtime exception (see below)
 p   produces a runtime exception

The special format directive, C%C invokes the target argument as
code, passing it the result string that has been generated thus
far and the argument array.

Here's an example of its use:

 sprintf %d%C is %d digits long,
$num,
sub($s,@args is rw) [EMAIL PROTECTED],
0;

The special directive, C%n does not work in Perl 6 because of the
difference in parameter passing conventions, but the example above
simulates its effect using C%C.

=cut

-- 
Aaron Sherman [EMAIL PROTECTED]
Senior Systems Engineer and Toolsmith
We had some good machines, but they don't work no more. -Shriekback




Re: namespaces, a single colon to separate HLL prefix?

2006-07-06 Thread Larry Wall
On Thu, Jul 06, 2006 at 09:09:08AM -0700, Larry Wall wrote:
: use **perl5::DBI;

which, if you don't like the two-character form, you can spell:

⁑perl5::DBI

:-)

Hmm, hmm, speaking of sanity, how 'bout user-defined sigils and twigils:

sigil ¢ = Capture;
twigil ¬ = NOTREALLY::;
¢¬foo;  # not really a capture...  :)

Larry


Re: [perl #38594] [BUG] source line numbers

2006-07-06 Thread Vishal Soni

Hi Chip,

Can you please apply this patch for me? This is a fix to the YACC file. As a
result you will also have to checkin the imcparser.c and imcparser.h after
applying the patch and recompiling the source.

Thanks,
Vishal

Index: compilers/imcc/imcc.y
===
--- compilers/imcc/imcc.y   (revision 13035)
+++ compilers/imcc/imcc.y   (working copy)
@@ -202,7 +202,7 @@
   r-type = (r-type  VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED : VT_PCC_SUB;
   r-pcc_sub = calloc(1, sizeof(struct pcc_sub_t));
   cur_call = r;
-i-line = line - 1;
+i-line = line ;
   add_namespace(interp, unit);
   return i;
}


On 7/3/06, Vishal Soni [EMAIL PROTECTED] wrote:


Will,

Did we get this one in?

-Vishal


On 6/30/06, Vishal Soni [EMAIL PROTECTED] wrote:

  Hi,

 The .end seems to be replaced by an implicit end.

 -Vishal


  On 6/29/06, Will Coleda via RT  [EMAIL PROTECTED]
 wrote:
 
  Hey, Vishal:
 
   [vsoni - Tue Jun 27 05:48:27 2006]:
  
   Hi,
  
   This was a straight forward fix. The line number was being
  decremented
   at the start of a 'sub' token imcc.y.
  
  
   Thanks,
   Vishal
  
   Here is a sample run
  
   Sample Code:
   ---
   .sub main :main
   print 2\n
   print 3\n
   print 4\n
   .end
  
   Output:
   
   ./parrot -d 10 ./hello.pir
   1
   last:5
   pcc_sub main nparams 0
  
   Dumping the instructions status:
   ---
   nins line blck deep flags   type opnr size   pc  X ins
  0100 0  8   -100 main:
  1200 1  0  41320print
  2\n
  2300 1  0  41322print
  3\n
  3400 1  0  41324print
  4\n
  4400 0  18000016end
 
  Looks like the first line is fixed there (1) and then the guts are
  fixed (2,3,4), but is the
  duplicate line 4 correct? (is that corresponding to the implicit end
  that PIR puts in, or the .end
  of the subroutine?
 
  If you can just validate that, we can apply this.
 
  
   Labels
   namepos last ref
   ---
  
  
   Dumping the CFG:
   ---
   0 (0)-  -
  
  
   Dumping the Dominators Tree:
   ---
0 - ( 0)  0
  
   Loop info
   -
  
  
  
   Patch
   
  
   Index: compilers/imcc/imcc.y
  
  =
  ==
   --- compilers/imcc/imcc.y   (revision 13035)
   +++ compilers/imcc/imcc.y   (working copy)
   @@ -202,7 +202,7 @@
r-type = (r-type  VT_ENCODED) ? VT_PCC_SUB|VT_ENCODED :
   VT_PCC_SUB;
r-pcc_sub = calloc(1, sizeof(struct pcc_sub_t));
cur_call = r;
   -i-line = line - 1;
   +i-line = line ;
add_namespace(interp, unit);
return i;
}
  
  
  
  
  
 
 


 --
 Thanks,

 Vishal




--
Thanks,

Vishal





--
Thanks,
Vishal


Re: [perl #39734] t/doc/pod.t fails on Mac OS 10.4.6/perl 5.8.8

2006-07-06 Thread David H. Adler
On Thu, Jul 06, 2006 at 06:22:31AM -0700, jerry gay wrote:
 On 7/5/06, via RT David H. Adler [EMAIL PROTECTED] wrote:
 As bugs go, not a killer, but still...
 
 The problem tests are as follows:
 
 not ok 329 - POD test for /Users/dha/parrot-0.4.5/src/ops/experimental.ops
 
 # Failed test (t/doc/pod.t at line 62)
 # /Users/dha/parrot-0.4.5/src/ops/experimental.ops (229): '=item' outside 
 of any '=over'
 
 and
 
 not ok 1162 - POD test for 
 /Users/dha/parrot-0.4.5/docs/ops/experimental.pod
 
 # Failed test (t/doc/pod.t at line 62)
 # /Users/dha/parrot-0.4.5/docs/ops/experimental.pod (105): '=item' outside 
 of any '=over'
 
 i can't recreate this with a recent revision.
 from the svn log, it seems src/ops/experimental.ops was modified 19 june.
 
 perhaps you have a modified file in your working copy?

Actually, as I see it, you have a modified file in yours. :-)

I was working from the release version, which predates that change by
about 2 hours...

I guess it's fixed now. I suppose this is what I get for posting bug
reports at 3am...

dha

-- 
David H. Adler - [EMAIL PROTECTED] - http://www.panix.com/~dha/
In the silence that followed, Homer was heard to mutter,
Mmmm... context- dependent semantics...
- Darrin Edwards in c.l.p.m.


.namespace [''] in TGE

2006-07-06 Thread Chip Salzenberg
I think this patch is advisable, or at least not wrong.  Yes/no?

=== compilers/tge/TGE/Compiler.pir
==
--- compilers/tge/TGE/Compiler.pir  (revision 13181)
+++ compilers/tge/TGE/Compiler.pir  (local)
@@ -380,6 +380,9 @@
 .return (code)
 .end
 
+# NOTE - this code assumes that a type of '' is impossible
+#(in older versions of Parrot, it was)
+
 .sub 'grammar_string' :method
 .param pmc grammar
 .local string code
@@ -387,9 +390,13 @@
 .local string inherit
 type = grammar[type]
 inherit = grammar[inherit]
-code = \n.namespace [ '
+code = \n.namespace
+if type == '' goto no_type
+code .=  [ '
 code .= type
-code .= ' ]\n\n
+code .= ' ]
+  no_type:
+code .= \n\n
 code .= .sub '__onload' :load\n
 code .= load_bytecode 'TGE.pbc'\n
 code .= $I0 = find_type '

-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: Old and broken versions of Module::Install

2006-07-06 Thread Steffen Mueller

Michael G Schwern schrieb:

On 7/6/06, Steffen Mueller [EMAIL PROTECTED] wrote:

Versions of Module::Install  0.61 do not work on the current ActivePerl
release 5.8.8 build 817.


What's broken and why suddenly 5.8.8?


ActiveState introduced some new form of local configuration or 
something. Module::Install couldn't handle it until 0.61. M::I's change 
log would have told you:


[Changes for 0.61 - 2006-03-15]

* ActivePerl::Config on case-insensitive filesystems interacts
  erroneously with Module::Install's (outdated) @INC hack, so remove it.
  (Patch from Gisle Aas)
[...]

Sounds like its a combination of an M::I hack and Windows being the bad 
platform its often perceived as.


5.8.8 because AS Perl build 817 *is* 5.8.8. Build 816 was the first 
5.8.8 build and a bad build (some symbols weren't exported, PAR broke, 
etc.) which is why 817 was pushed out of the door quickly. I don't 
*think* versions prior to build 816 were affected. Now, that doesn't 
help. It just means people who have AS Perl on their boxes since before 
the 816 release won't notice a problem. (Hence the cpan testers results 
for win32 are likely PASS if no other problems exist.) But if a new Perl 
programmer or an end user who wants to run an application written in 
Perl on Windows installs AS Perl build 817 (which happens to be 5.8.8), 
he or she will not be able to install many modules from CPAN. (One way 
or another you'll end up installing a M::I based module due to 
dependencies.)


Just one more thing. Please, nobody suggest that people download older 
AS Perl releases to fix this. It's not going to happen. Unless, of 
course, you want to limit the usage of Perl (and CPAN) to programmers 
and sysadmins.


Does that clarify things?

Steffen


RE: Old and broken versions of Module::Install

2006-07-06 Thread Jan Dubois
On Thu, 06 Jul 2006, Michael G Schwern wrote:
 On 7/6/06, Steffen Mueller [EMAIL PROTECTED] wrote:
  Versions of Module::Install  0.61 do not work on the current
  ActivePerl release 5.8.8 build 817.

 What's broken and why suddenly 5.8.8?

Module::Install version 0.60 and earlier pushes one of its own
directories to the front of @INC, and that directory contains Base.pm or
BASE.pm, shadowing the core base.pm on case insensitive filesystems
(Windows, OS X).

ActivePerl 5.8.7 build 815 and later load additional code in Config.pm
to automatically adjust to using dmake and gcc if nmake and/or the
Microsoft compiler cannot be found on the PATH.  This allows you to use
MingW with ActivePerl out of the box with zero configuration required.

One of the modules used in the ActivePerl::Config code use 'base.pm',
which breaks if it cannot load the core version anymore.

This has been fixed in Module::Install version 0.61:

http://rt.cpan.org/Public/Bug/Display.html?id=18181

I've also modified the code in ActivePerl to not use base.pm in any
of the modules loaded by Config.pm, so starting with build 818 you
should be able to install CPAN modules with the broken Module::Install
again.

Cheers,
-Jan






Re: TAP extension proposal: test groups

2006-07-06 Thread Michael G Schwern

On 7/4/06, Ovid [EMAIL PROTECTED] wrote:

 Original Message 
From: Jonathan Rockway [EMAIL PROTECTED]

 This leads me to another question -- what to do about output that the
 program prints to STDOUT or STDERR?  There are some modules that I use
 that insist on Cwarn-ing whenever something weird happens... will
 these mess up my tests?  (They don't *now*, but that's because
 Test::Harness is being overly nice.)

From the discussion here, anything which is not recognized as TAP output is 
discarded, so those warnings probably won't matter unless they look like a test 
plan or a test line.


I'm finding myself more and more liking this feature of TAP and
reversing my will become more stringent in the future declaration.
If nothing else it makes backwards compatibility with older TAP
parsers a lot easier to deal with.

Anyhow, TAP says nothing about STDOUT or STDERR.  It just wants a
stream of text.  If your TAP source decides to blend STDOUT and STDERR
together and feed it to the TAP parser, it can do that.



 What would happen if TAP dictated that TAP output be sent to an extra
 filehandle?  For example, prove could open filehandle 3, fork the test
 process, and collect TAP data on descriptor 3  ...

Unless I'm greatly mistaken, the is outside the scope of TAP.  TAP is merely a 
protocal and where it gets written to/read from should be irrelevant.  
Mandating that would only impose extra overhead.


More importantly it would limit us to executing local programs on
systems with good filehandle support.  Consider the case of accepting
TAP by fetching an HTTP uri.  No filehandles there.  I'm sure you
could fake it, but then all your simplicity is gone.


Re: TAP extension proposal: test groups

2006-07-06 Thread Michael G Schwern

On 7/3/06, Jonathan Rockway [EMAIL PROTECTED] wrote:

If you wanted to truly please DJB (with his don't parse mantra), then
you could open two extra filehandles, one for 'ok' and one for 'not ok',
and print the number of the test mod 256 (i.e. one byte per test, no
newline; just the byte) to each handle.  If it comes in on pipe one and
the number is where it should be, it's a 'ok #', if it comes in on that
second pipe, it's a 'not ok #'.


Some days I wish I was DJB and only had to support one operating
system and one environment. :P


PGE and TGE vs. .namespace

2006-07-06 Thread Chip Salzenberg
The below patches are my guess as to how to fix PGE and TGE for the recent
change in .namespace.  (That is, C.namespace [''] now means what it says,
and the HLL root is reachable by C.namespace w/o parameters.)

The TGE patch seems to work, but I got test failure from my PGE patch.
Patrick?  Allison?

=== compilers/tge/TGE/Compiler.pir
==
--- compilers/tge/TGE/Compiler.pir  (revision 13181)
+++ compilers/tge/TGE/Compiler.pir  (local)
@@ -380,6 +380,9 @@
 .return (code)
 .end
 
+# NOTE - this code assumes that a type of '' is impossible
+#(in older versions of Parrot, it was)
+
 .sub 'grammar_string' :method
 .param pmc grammar
 .local string code
@@ -387,9 +390,13 @@
 .local string inherit
 type = grammar[type]
 inherit = grammar[inherit]
-code = \n.namespace [ '
+code = \n.namespace
+if type == '' goto no_type
+code .=  [ '
 code .= type
-code .= ' ]\n\n
+code .= ' ]
+  no_type:
+code .= \n\n
 code .= .sub '__onload' :load\n
 code .= load_bytecode 'TGE.pbc'\n
 code .= $I0 = find_type '

=== compilers/pge/PGE/P6Regex.pir
==
--- compilers/pge/PGE/P6Regex.pir   (revision 13181)
+++ compilers/pge/PGE/P6Regex.pir   (local)
@@ -117,9 +117,14 @@
   pir:
 .local pmc code
 .local string grammar
+.local string nsformat
 grammar = adverbs['grammar']
+nsformat = .namespace
+if grammar == '' goto pir_emit
+nsformat = .namespace [ '%0' ]
+  pir_emit:
 code = new 'PGE::CodeString'
-code.emit(.namespace [ '%0' ], grammar)
+code.emit(nsformat, grammar)
 $P0 = exp.root_pir(adverbs :flat :named)
 code .= $P0
 if target != 'PIR' goto bytecode


-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: [perl #39734] t/doc/pod.t fails on Mac OS 10.4.6/perl 5.8.8

2006-07-06 Thread jerry gay

On 7/6/06, David H. Adler [EMAIL PROTECTED] wrote:

On Thu, Jul 06, 2006 at 06:22:31AM -0700, jerry gay wrote:
 perhaps you have a modified file in your working copy?

Actually, as I see it, you have a modified file in yours. :-)

I was working from the release version, which predates that change by
about 2 hours...


your report didn't specify which revision you were testing.
as parrot's under active (pre-release) development, i assumed HEAD.


I guess it's fixed now. I suppose this is what I get for posting bug
reports at 3am...


no problem, no bugs are good bugs :)
thanks for reporting!
~jerry


Re: Old and broken versions of Module::Install

2006-07-06 Thread David Golden

Steffen Mueller wrote:

Michael G Schwern schrieb:

What's broken and why suddenly 5.8.8?


* ActivePerl::Config on case-insensitive filesystems interacts
  erroneously with Module::Install's (outdated) @INC hack, so remove it.
  (Patch from Gisle Aas)
[...]

Sounds like its a combination of an M::I hack and Windows being the bad 
platform its often perceived as.


I take issue with the bad platform bit.  The underlying issue is Perl 
developers who assume unix semantics (perhaps unconsciously, even) and 
don't write for portability.


The Vanilla Perl project (vanillaperl.com) has been squashing numerous 
bugs of this sort in CPAN modules.  There are surprisingly many 
forward/backslash bugs, even by developers who should know better.  Many 
of them crop up in test-suites, even when the code itself uses File::Spec.


The M::I hack doesn't help, but probably neither does AS's config hacking.

David Golden



Re: Old and broken versions of Module::Install

2006-07-06 Thread Steffen Mueller

Jan Dubois schrieb:

Module::Install version 0.60 and earlier pushes one of its own
directories to the front of @INC, and that directory contains Base.pm or
BASE.pm, shadowing the core base.pm on case insensitive filesystems
(Windows, OS X).


Thank you for the explanation. I wasn't aware of this.


ActivePerl 5.8.7 build 815 and later load additional code in Config.pm
to automatically adjust to using dmake and gcc if nmake and/or the
Microsoft compiler cannot be found on the PATH.  This allows you to use
MingW with ActivePerl out of the box with zero configuration required.


Which is great, by the way.


One of the modules used in the ActivePerl::Config code use 'base.pm',
which breaks if it cannot load the core version anymore.

This has been fixed in Module::Install version 0.61:

http://rt.cpan.org/Public/Bug/Display.html?id=18181

I've also modified the code in ActivePerl to not use base.pm in any
of the modules loaded by Config.pm, so starting with build 818 you
should be able to install CPAN modules with the broken Module::Install
again.


While that's also great, I still think the old Module::Install versions 
lying around on CPAN are prone to blow up eventually and need a fix.


Steffen


Re: Old and broken versions of Module::Install

2006-07-06 Thread demerphq

On 7/6/06, David Golden [EMAIL PROTECTED] wrote:

Steffen Mueller wrote:
 Michael G Schwern schrieb:
 What's broken and why suddenly 5.8.8?

 * ActivePerl::Config on case-insensitive filesystems interacts
   erroneously with Module::Install's (outdated) @INC hack, so remove it.
   (Patch from Gisle Aas)
 [...]

 Sounds like its a combination of an M::I hack and Windows being the bad
 platform its often perceived as.

I take issue with the bad platform bit.  The underlying issue is Perl
developers who assume unix semantics (perhaps unconsciously, even) and
don't write for portability.

The Vanilla Perl project (vanillaperl.com) has been squashing numerous
bugs of this sort in CPAN modules.  There are surprisingly many
forward/backslash bugs, even by developers who should know better.  Many
of them crop up in test-suites, even when the code itself uses File::Spec.


Hear, hear!

Yves



--
perl -Mre=debug -e /just|another|perl|hacker/


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Allison Randal

Allison Randal wrote:


I had a much longer reply, but I'm going to let it steep overnight and 
see what percolates.


I ran through a number of possibilities, but so far my favorite is: 
find_global and store_global are truly 'global', that is, they always 
require a fully specified namespace, including the HLL namespace.


$P0 = find_global 'bar'   # the top-level namespace
$P1 = find_global 'parrot', 'bar' # 'bar' in ['parrot']
$P2 = find_global ['parrot';'Foo'], 'bar' # 'bar' in ['parrot';'Foo']
$P3 = find_global 'tcl', 'bar'# 'bar' in ['tcl']

Then a set of opcodes using the add_*, del_*, get_* naming scheme handle 
the magically assume the HLL root/current namespace behavior. (PDD 21 
uses both get_* and find_* for retrieval. It's better to standardize on 
one, but it doesn't really matter which one.)


.HLL Perl5, perl5_group
$P0 = get_symbol 'bar'# 'bar' in ['perl5']
$P1 = get_symbol 'Foo', 'bar' # 'bar in ['perl5';'Foo']

.namespace [ 'Foo' ]
$P2 = get_symbol 'bar'# 'bar' in ['perl5';'Foo']

(I thought about prefixing all the opcodes that assume the HLL namespace 
with hll_, but since those are the common case, I'd rather mark the 
rarer global case.)



The .namespace directive has more flexibility, since it's a directive 
not an opcode. We can keep the basic syntax as the magical HLL behavior:


.namespace [ 'Foo' ]# namespace is ['parrot';'Foo']

.HLL Perl5, perl5_group # namespace is ['perl5']
.namespace [ 'Foo' ]# namespace is ['perl5';'Foo']

If you only use .HLL and no .namespace, then it assumes the root HLL 
namespace.


And add a couple of special forms for the rarer cases when you want to 
set the current namespace to the HLL or global root:


.namespace hll_root
.namespace global_root


--

Here are some of the also-rans, in abbreviated form:
--
We could take the Perl 5 strategy of reserving a name ('main' or 'root' 
or something similar) to always act as an alias to the top-level of the 
current HLL namespace.


Conclusion: Perl 5 on Parrot will use this strategy, and so might other 
languages, but we shouldn't force it on all languages.


--
We could break out the root prefix from the rest of the name:


  $P2 = find_global 'parrot', ['Foo'], 'bar' # bar in ['parrot';'Foo']

Conclusion: reaching the global root would require an empty prefix key 
and an empty namespace name key. Not really an improvement, more of an 
unprovement.


--
We could have separate opcodes for direct access and hll indirect 
access.


Conclusion: this led to a combinatorial explosion (bad), but then to the 
simplified solution above.


--
We could assume the current HLL namespace, and call methods on the 
namespace object to retrieve meta information like the root HLL 
namespace or global namespace.


Conclusion: more complex than is necessary to solve the problem.

--

Allison


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Allison Randal

Chip Salzenberg wrote:

On Thu, Jul 06, 2006 at 01:21:08AM -0700, Allison Randal wrote:
The problem is really that we're trying to simultaneously a) refer to 
the root HLL namespace directly, and b) pretend that it doesn't exist.


I don't think (b) is quite true.  It's more that we're avoiding explicit
re-coding of a known bit of environmental information, as in the first
floor of this building rather than the first floor of 123 main street.


That's another good way of phrasing it. It's essentially the linguistic 
problem of being able to refer to something both by its full name and by 
the pronoun it. (Otherwise known as topic.) Only, currently it 
isn't represented by a word. There are natural languages with 
zero-length pronouns, but they generally compensate by marking the verb 
with enough information to disambiguate. And when that gets unclear, 
they throw in the full name again.



...I was hoping you'd say something like, Oh
yeah, we're gonna need zero-length keys anyway for Perl 6.  What is the
parameter to operator:postcircumfix [] when a user says

   @array.[]

?


Various HLLs will assign some meaning to a null key. But the semantics 
of this isn't keyed access. The HLL is just using a bit of unused syntax 
to mean return an empty list, or return null, or return all the 
elements of the array as a list, or whatever else they decide to use it 
for.  It's up to the HLL compiler to distill the syntax down to 
meaningful semantics.


Allison


Re: namespaces, a single colon to separate HLL prefix?

2006-07-06 Thread Aaron Sherman
On Thu, 2006-07-06 at 09:09 -0700, Larry Wall wrote:
 On Thu, Jul 06, 2006 at 10:40:21AM -0400, Audrey Tang wrote:
 : The : form is approved and canonical (line 303, the Modules spec, aka  
 : S11.pm version 14).
 : 
 : use perl5:DBI;
[...]
 : my $dbh = perl5:DBI; # currently parsed as perl5(:DBI)
 : 
 : but we can say that for each HLL-qualified module name, it's a single  
 : token and is therefore recognized first.
 : 
 : Does that sound sane?  If yes, S11 can be updated to reflect that.
 
 It's only sane if we require the predeclaration of the language higher
 in the lexical scope.

Namespaces aren't your only concern here. You also care about all of the
semantics of module loading and the integration of the target language's
module loading semantics with Perl 6's. For example, there's a
completely separate search path for Perl 5 modules, and an implicit
invocation of a package method that might not happen in P6. I think what
you want to be saying is not, use DBI from the Perl 5 namespace, but
invoke the Perl 6 / Perl 5 module loader interface for DBI.

That's really something like:

use Lang::Perl5::Loader;
perl5use DBI;

That we provide a shortcut called use perl5:DBI is just sugar, and we
might provide that for many languages. However, the user should know how
to do it the hard way in case they want to talk to a less officially
blessed language:

use Lang::Bash::Loader;
use Lang::Elisp::Loader;
bashuse ~/.bashrc;
elispuse hanoi;
say %*ENV{PATH}
hanoi(13);

Inventing syntactic sugar for the back-end case probably doesn't buy you
anything special.

-- 
Aaron Sherman [EMAIL PROTECTED]
Senior Systems Engineer and Toolsmith
We had some good machines, but they don't work no more. -Shriekback




Re: [perl #39743] [PATCH] change perl6-internals to parrot-porters in docs

2006-07-06 Thread Chris Dolan
Oops, I missed a couple of instances of perl6-internals in the  
previous patch (notably, in parrotbug).  This updated patch obsoletes  
the previous one.


% diffstat parrot-porters2.patch
README   |4 ++--
README.win32.pod |2 +-
RELEASE_INSTRUCTIONS |8 
compilers/imcc/README|2 +-
docs/debug.pod   |2 +-
docs/dev/dod.pod |6 +++---
docs/faq.pod |6 +++---
docs/gettingstarted.pod  |   15 ---
docs/glossary.pod|2 +-
docs/intro.pod   |8 
docs/parrot.pod  |2 +-
docs/pdds/pdd00_pdd.pod  |4 ++--
docs/submissions.pod |4 ++--
editor/pir-mode.el   |4 ++--
languages/regex/README   |4 ++--
languages/tcl/README.pod |2 +-
parrotbug|2 +-
src/exceptions.c |2 +-
18 files changed, 40 insertions(+), 39 deletions(-)



parrot-porters2.patch
Description: Binary data


[svn:parrot-pdd] r13183 - in trunk: . compilers/imcc docs docs/dev docs/pdds editor languages/regex languages/tcl src

2006-07-06 Thread chip
Author: chip
Date: Thu Jul  6 13:05:47 2006
New Revision: 13183

Modified:
   trunk/docs/pdds/pdd00_pdd.pod

Changes in other areas also in this revision:
Modified:
   trunk/README
   trunk/README.win32.pod
   trunk/RELEASE_INSTRUCTIONS
   trunk/compilers/imcc/README
   trunk/docs/debug.pod
   trunk/docs/dev/dod.pod
   trunk/docs/faq.pod
   trunk/docs/gettingstarted.pod
   trunk/docs/glossary.pod
   trunk/docs/intro.pod
   trunk/docs/parrot.pod
   trunk/docs/submissions.pod
   trunk/editor/pir-mode.el
   trunk/languages/regex/README
   trunk/languages/tcl/README.pod
   trunk/parrotbug
   trunk/src/exceptions.c

Log:
From: Chris Dolan [EMAIL PROTECTED]
Subject: Re: [perl #39743] [PATCH] change perl6-internals to parrot-porters in 
docs
{ a followup patch will be required if p6i doesn't end up forwarding to p2 }

Modified: trunk/docs/pdds/pdd00_pdd.pod
==
--- trunk/docs/pdds/pdd00_pdd.pod   (original)
+++ trunk/docs/pdds/pdd00_pdd.pod   Thu Jul  6 13:05:47 2006
@@ -145,8 +145,8 @@
 
 =head2 SUBMISSION CRITERIA
 
-Proposed PDDs should be submitted to the perl6-internals mailing list (located
-at perl6-internals@perl.org) for discussion, criticism and general kibitzing.
+Proposed PDDs should be submitted to the parrot-porters mailing list (located
+at [EMAIL PROTECTED]) for discussion, criticism and general kibitzing.
 Acceptance of a particular PDD is ultimately up to the Parrot Architect.
 
 =head2 PDD TRANSLATIONS


Re: [perl #39743] [PATCH] change perl6-internals to parrot-porters in docs

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 02:52:10PM -0500, Chris Dolan wrote:
 Oops, I missed a couple of instances of perl6-internals in the  
 previous patch (notably, in parrotbug).  This updated patch obsoletes  
 the previous one.

Thanks, applied.  A followup may be needed if p6i ends up *not* forwarding
to p2.  The perl.org admins are not pleased by the prospect, saying it has
caused confusion in the past, and it's easy for a bounce message to tell
people a new list address.

 % diffstat parrot-porters2.patch
 README   |4 ++--

Hey, I *like* diffstat.  I wish I saw it used more.
-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: Module Signatures

2006-07-06 Thread Jonathan T. Rockway

Sorry, meant to send this to the list. :)


What’s the point?
 

Good question.  Crypt::OpenPGP doesn't maintain a web-of-trust either.  
People that have webs of trust have GPG, otherwise, what are they using?



If all that’s verified is that the distribution was signed with
the key uploaded to the same directory, then all you can have
confidence in is that distribution was uploaded by someone who
has permission to upload a key. That might be the author, or it
might be an impostor who got ahold of the author’s account
details and uploaded his own key.
 

This protects end-users against a malicious CPAN mirror, though.  If 
PAUSE is compromised, that's a whole other set of problems.  (Yes, WoT 
would protect you from PAUSE being compromised.  Only if your network is 
extensive enough to cover every person who has ever uploaded anything to 
CPAN.  I use PGP extensively, but have never actually verified any CPAN 
authors' keys in person.  I tried at YAPC but I never managed to 
actually find anyone that was intersted in exchanging keys :)   I doubt 
the average JAPH is going to go to that much effort just to be sure that 
nobody's secretly compromised the PAUSE or their friendly local CPAN 
mirror.



I don’t think running a cert auth is feasible for CPAN. So the
only worthwhile option is to participate in the PGP web of trust.
If you do away with that, you can just as well do away with
cryptosigs alltogether.
 



True.  Right now they're pretty useless.  I have downloaded some modules 
that didn't verify and installed them anyway.  Jifty, for example, 
contains a bunch of ._foo and ._bar files that aren't in the MANIFEST, 
and therefore CPANPLUS chokes when you try to install it.


On a more positive note, we can eliminate a lot of Crypt::OpenPGP's 
dependencies by stripping out keygen (Crypt::Random - Math::Pari, which 
is a nightmare to isntall on some systems).  If everyone somehow gets a 
web-of-trust, then modifying Crypt::OpenPGP to require a certain level 
of trust would be simple.  Right now, though, it's just not worth it IMHO.


(What would be marginally worth it is having PAUSE sign distros.  At 
least we can assure that the CPAN mirror didn't tamper with the files, 
which I think is the most likely attack on CPAN.)


Regards,
Jonathan Rockway



Re: CPAN and META.yml: no_index dir vs directory

2006-07-06 Thread Adam Kennedy
Hmm, it looks like there is a strong correspondence between distros 
using 'directory' and distros produced by Module::Install. There goes 
Adam, breaking rules and rebelling against established conventions.


Hehe. Just kidding. I think I like 'directory' better myself anyway.


Sigh, one of these days people will realize that Module::Install is NOT 
MY FAULT and I'm just the guy that documents EXISTING behavior and tries

to make things less buggy and insane.

Well, except for the 0.59 and 0.60 disaster, that was my fault...

But yes, Module::Install does use directory, and it adds it pretty much 
automatically to make sure nothing in t gets indexed, but I'm not sure 
why that got added as directory, and in any case I like it better too. :)


While we're tweaking META.yaml, can we find out if ANYBODY is using 
is_dynamic (the optimization flag), and if not can we move it to 
is_static, like it should have been in the first place.


There's also been requests for things like links to SVN, RT/support, and 
commercial support in the spec.


Is it perhaps time for a more general 0.1 increment?

Adam K


Re: Old and broken versions of Module::Install

2006-07-06 Thread Adam Kennedy

But you’re not catching me dead using an installer that requires
me to pay attention to its development and to push up new
versions of my distros in response to its bugs. There are far
better ways to waste my time.


Good, because that's entirely the point I've been trying to make ever 
since I started doing maint releases of Module::Install.


Module;:Install is not finished (at 1.0) and until it is if you want to 
take advantage of it as an early user, you should be willing to do the 
occasional incremental release if something big comes up.


Module::Build is not finished (at 1.0) and until it is if you want to 
take advantage of it as an early user, and you use ::Compat, you should 
be willing to do the occasional incremental release if something big 
comes up.


If you ONLY use the basic functionality, and you aren't willing to pay 
attention, you should be using EU:MM still, until either MB or or MI 
hits 1.0, because neither of them are ready for general use.


I find it unfortunate that hype on both sides resulted in what I would 
consider overuse this early in their development, but there you go...


Adam K


Re: PGE and TGE vs. .namespace

2006-07-06 Thread Allison Randal

Chip Salzenberg wrote:

The below patches are my guess as to how to fix PGE and TGE for the recent
change in .namespace.  (That is, C.namespace [''] now means what it says,
and the HLL root is reachable by C.namespace w/o parameters.)


TGE and PGE both need a thorough going-over for the new namespaces 
implementation.


I'm thinking they should act in an HLL-agnostic fashion, so it's 
possible to compile one grammar in, say, the Perl 6 HLL namespace, 
another in Ruby, another in Python, and another system-internal grammar 
into 'parrot'.


Allison


Re: Old and broken versions of Module::Install

2006-07-06 Thread A. Pagaltzis
* Adam Kennedy [EMAIL PROTECTED] [2006-07-07 00:00]:
 If you ONLY use the basic functionality, and you aren't willing
 to pay attention, you should be using EU:MM still, until either
 MB or or MI hits 1.0, because neither of them are ready for
 general use.

Manual inspection has always suggested that the Makefile.PL
generated for me by M::B::Compat is sane enough. Given that, I’d
prefer to stick with it so I don’t have to do much of anything at
the time that M::B hits both 1.0 and core.

I understand the concerns with M::B itself; that’s why I always
use `create_makefile_pl = 'traditional'`.

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 12:11:47PM -0700, Allison Randal wrote:
 It's essentially the linguistic problem of being able to refer to
 something both by its full name and by the pronoun it. (Otherwise known
 as topic.) Only, currently it isn't represented by a word.

Well, we have three distinct 'it's for namespaces: the Parrot root, the HLL
root, and the current.

I view the HLL root as the main one for most purposes, and escaping the HLL
root I model as escaping a Unix chroot (in rarity if not security), which is
why I'm conformable with using interpinfo to get the global root.  And of
course the current namespace maps onto the Unix working dir for me.
-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Chip Salzenberg
{ All you HLL implementors and other PIR users out there, please be assured
  that I'll be providing as easy a transition as possible when/if these global
  opcodes are adjusted. }

On Thu, Jul 06, 2006 at 11:53:59AM -0700, Allison Randal wrote:
 I ran through a number of possibilities, but so far my favorite is: 
 find_global and store_global are truly 'global', that is, they always 
 require a fully specified namespace, including the HLL namespace.
 
 Then a set of opcodes using the add_*, del_*, get_* naming scheme handle 
 the magically assume the HLL root/current namespace behavior. (PDD 21 
 uses both get_* and find_* for retrieval. It's better to standardize on 
 one, but it doesn't really matter which one.)

Well, I see a lot to like about this, but (and you knew there was a but
(but that's my job now :-))), in descending order of difficulty:

 * The division into two categories (global and symbol) leaves the third
   category (current namespace) with no clear home.

 * All the things being accessed are globals.  Seems like the word global
   should be used consistently, and symbol has many meanings in Parrot
   that only partly overlap the specific meaning of global.

 * We still don't have way to ask for my HLL without spelling it.  I can
   say my HLL's Foo without spelling my HLL, but when I go up to my HLL's
   root I must suddenly know the spelling of my HLL and say it.  Seems like
   a sign of a design problem.

 * The global root is available as Cinterpinfo .INTERPINFO_ROOT_NAMESPACE
   at present -- awkward but fast.  Since global root accesses are supposed
   to be rare, awkwardness doesn't bug me for that case.  But adding opcodes
   for absolute-root ... hey, absolute, that's a good name.
 
 * Huffmanizing shouldn't be as big a consideration with PIR/pasm as with
   most languages.  Most PIR/pasm is program-generated.

So here's an illustrative suggestion, which I think is a variant on one of
your also-rans, albeit one that leaves the common HLL case unmarked:

  .HLL 'perl5', perl5_group
  .namespace ['Foo']

  $P0 = get_cur_global 'x'  # ['perl5';'Foo';'x']
  $P0 = get_cur_global ['Bar'], 'x' # ['perl5';'Foo';'Bar';'x']

  $P0 = get_global 'x'  # ['perl5';'x']
  $P0 = get_global ['Corge'], 'x'   # ['perl5';'Corge';'x']

  $P0 = get_abs_global 'x'  # ['x']
  $P0 = get_abs_global ['parrot'], 'x'  # ['parrot';'x']

(If there is no Null, substitute a null PMC register.)
-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: PGE and TGE vs. .namespace

2006-07-06 Thread jerry gay

On 7/6/06, Allison Randal [EMAIL PROTECTED] wrote:

Chip Salzenberg wrote:
 The below patches are my guess as to how to fix PGE and TGE for the recent
 change in .namespace.  (That is, C.namespace [''] now means what it says,
 and the HLL root is reachable by C.namespace w/o parameters.)

TGE and PGE both need a thorough going-over for the new namespaces
implementation.


meanwhile, back at the ranch, perl6 is failing all
t/00-parrot/08-regex.t tests due to the .namespace changes. chip's
proposed PGE patch fixes those failures.

i don't mind broken tests between releases, but if this patch won't be
applied in the next day or three, let me know. the tests can be marked
as TODO, and we can eagerly wait for the day of unexpected success
that will surely follow.
~jerry


Re: PGE and TGE vs. .namespace

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 04:44:35PM -0700, jerry gay wrote:
 On 7/6/06, Allison Randal [EMAIL PROTECTED] wrote:
 Chip Salzenberg wrote:
  The below patches are my guess as to how to fix PGE and TGE for the 
 recent
  change in .namespace.  (That is, C.namespace [''] now means what it 
 says,
  and the HLL root is reachable by C.namespace w/o parameters.)
 
 TGE and PGE both need a thorough going-over for the new namespaces
 implementation.
 
 meanwhile, back at the ranch, perl6 is failing all
 t/00-parrot/08-regex.t tests due to the .namespace changes. chip's
 proposed PGE patch fixes those failures.

Indeed, the patch has nothing to do with extending full nested namespace
support to TGE and PGE.  It's just a regression fix now that .namespace ['']
doesn't do what it used to.

Unless you're planning to do that overhaul before 0.4.6, I'd like to at
least avoid those regressions.
-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: PGE and TGE vs. .namespace

2006-07-06 Thread Allison Randal

jerry gay wrote:

On 7/6/06, Allison Randal [EMAIL PROTECTED] wrote:

meanwhile, back at the ranch, perl6 is failing all
t/00-parrot/08-regex.t tests due to the .namespace changes. chip's
proposed PGE patch fixes those failures.


Oh, I didn't mean don't apply it, just there's more work ahead. I 
can't speak for Patrick, but go ahead and apply the TGE patch.


Chip, did you resolve the failing PGE test(s)?

Allison


Re: Module Signatures

2006-07-06 Thread Adam Kennedy
(What would be marginally worth it is having PAUSE sign distros.  At 
least we can assure that the CPAN mirror didn't tamper with the files, 
which I think is the most likely attack on CPAN.)


Frankly, that's the best idea I've heard yet.

It would at least be trivial to implement compared to the current 
situation, and would allow us to provide some manner of security against 
bad mirrors.


The only downside though might be problems if we have custom mirrors 
that have third-party module built into them.


But in general I find the idea less insane that what we do now.

Adam K



Re: Old and broken versions of Module::Install

2006-07-06 Thread Adam Kennedy

I understand the concerns with M::B itself; that’s why I always
use `create_makefile_pl = 'traditional'`.


Indeed, and if you insist on using Module::Build, that is most certainly 
the sanest approach.


Adam K


Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread jerry gay

On 7/6/06, Chip Salzenberg [EMAIL PROTECTED] wrote:

So here's an illustrative suggestion, which I think is a variant on one of
your also-rans, albeit one that leaves the common HLL case unmarked:

  .HLL 'perl5', perl5_group
  .namespace ['Foo']

  $P0 = get_cur_global 'x'  # ['perl5';'Foo';'x']
  $P0 = get_cur_global ['Bar'], 'x' # ['perl5';'Foo';'Bar';'x']


am i silly to think that if i'm looking for globals from the current
namespace, they're just as likely to be found closer to the namespace
root, than further away? perhaps something like

   .namespace [ 'Foo'; 'Bar' ]
   $P0 = get_cur_global -1, 'x' # [ 'perl5' ; 'Foo' ; 'x' ]

i don't see any examples that make it easy to look in that direction.
~jerry


Re: Module Signatures

2006-07-06 Thread Adam Kennedy



Andreas J. Koenig wrote:

On Fri, 07 Jul 2006 10:02:00 +1000, Adam Kennedy [EMAIL PROTECTED] said:


  (What would be marginally worth it is having PAUSE sign distros.  At
  least we can assure that the CPAN mirror didn't tamper with the
  files, which I think is the most likely attack on CPAN.)

   Frankly, that's the best idea I've heard yet.

What does it bring you more that the signed CHECKSUMS file?



That sounds more or less equivalent. Are they signed now?

Adam K


Re: Module Signatures

2006-07-06 Thread Andreas J. Koenig
 On Fri, 07 Jul 2006 10:02:00 +1000, Adam Kennedy [EMAIL PROTECTED] said:

  (What would be marginally worth it is having PAUSE sign distros.  At
  least we can assure that the CPAN mirror didn't tamper with the
  files, which I think is the most likely attack on CPAN.)

   Frankly, that's the best idea I've heard yet.

What does it bring you more that the signed CHECKSUMS file?

-- 
andreas


Re: Module Signatures

2006-07-06 Thread A. Pagaltzis
* Adam Kennedy [EMAIL PROTECTED] [2006-07-07 03:25]:
 Andreas J. Koenig wrote:
 On Fri, 07 Jul 2006 10:02:00 +1000, Adam Kennedy [EMAIL PROTECTED] 
 said:
   (What would be marginally worth it is having PAUSE sign
   distros.  At least we can assure that the CPAN mirror
   didn't tamper with the files, which I think is the most
   likely attack on CPAN.)
 
Frankly, that's the best idea I've heard yet.
 
 What does it bring you more that the signed CHECKSUMS file?
 
 
 That sounds more or less equivalent. Are they signed now?

And if so, by whom?

Regards,
-- 
Aristotle Pagaltzis // http://plasmasturm.org/


Re: Re: HLL root globals and empty keys (was Re: test of get_namespace opcode)

2006-07-06 Thread Matt Diephouse

Allison Randal [EMAIL PROTECTED] wrote:

Chip Salzenberg wrote:

   --- PART 2, IN WHICH AN ELEGANT SOLUTION IS PROPOSED --

 On the other hand, we could extend the key PMC to represent emptiness,
 i.e. zero dimensions.  This seems useful for namespaces and could even prove
 useful for real keys.  And this makes keys even more compatible with the
 Array interface, which I think they might need to implement someday anyway.

 Allison, what do you think of zero-length keys, i.e. having [] construct a
 Key PMC describing no dimensions of lookup?  If we use those we can get rid
 of the current null-string hack.

Fundamentally altering the way keyed access works seems like a pretty
extreme solution when the problem is just the root HLL namespace
doesn't have a name. (Actually, it does have a name: 'parrot', 'tcl',
'perl6', etc. A sort of key who must not be named, if I won't be shot
for making terrible Harry Potter references at 1am.)


I don't think fundamentally altering the way keyed access works is a
fair description of what Chip proposed (and what I was asking for).
0-dimensional keys seem like a logical extension to multi-dimensional
keys, IMO.

Chip actually forgot that there is another way to get to the root HLL
namespace besides using the null string hack:

   $P0 = new .ResizablePMCArray # this can be any array type
   $P1 = get_namespace $P0

But arrays fill a different niche than keys do. Arrays are a runtime
solution and keys are a compile time solution. Writing out arrays when
you're writing code is painful and making keys at runtime is
impossible AFAICT.

So for the runtime (this is the HLL runtime, not the PIR runtime, btw)
we're all set. Arrays fill the need perfectly and let us access the
root HLL namespace. That makes me think that we don't need any new
opcodes.

It's just the compile time time -- the code that humans actually have
to write -- that is giving us trouble. That's a bit of a
simplification because in many cases compiler writers can optimize the
code and use keyed access in the output code, but it's just as simple
in that case to use any old hack.

That's why I was asking for C $P0 = get_namespace []  -- because I
actually have to write it. And I think it's a worthy goal to make
compiler writer's lives good.

Adding 0-dimensional keys would also let us get rid of the C
.namespace  special case and replace it with C .namespace [] .


It's simpler to give the root HLL namespace a name.


I disagree on two counts here. First, I think C []  *is* a name.
Second, any solution which involves giving the HLL namespace a
different name will have to either (a) add new opcodes, (b) add more
code for all the other cases by making all referencing originate at
the root, or (c) add a special syntax, none of which is simple.

--
matt diephouse
http://matt.diephouse.com


Re: PGE and TGE vs. .namespace

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 05:22:47PM -0700, Allison Randal wrote:
 jerry gay wrote:
 On 7/6/06, Allison Randal [EMAIL PROTECTED] wrote:
 
 meanwhile, back at the ranch, perl6 is failing all
 t/00-parrot/08-regex.t tests due to the .namespace changes. chip's
 proposed PGE patch fixes those failures.
 
 Oh, I didn't mean don't apply it, just there's more work ahead. I 
 can't speak for Patrick, but go ahead and apply the TGE patch.
 
 Chip, did you resolve the failing PGE test(s)?

Oddly enough, no.  I actually made it worse, to my great surprise.  Still
hacking tho...
-- 
Chip Salzenberg [EMAIL PROTECTED]


Re: PGE and TGE vs. .namespace

2006-07-06 Thread Chip Salzenberg
On Thu, Jul 06, 2006 at 10:01:39PM -0700, Chip Salzenberg wrote:
 On Thu, Jul 06, 2006 at 05:22:47PM -0700, Allison Randal wrote:
  jerry gay wrote:
  On 7/6/06, Allison Randal [EMAIL PROTECTED] wrote:
  
  meanwhile, back at the ranch, perl6 is failing all
  t/00-parrot/08-regex.t tests due to the .namespace changes. chip's
  proposed PGE patch fixes those failures.
  
  Oh, I didn't mean don't apply it, just there's more work ahead. I 
  can't speak for Patrick, but go ahead and apply the TGE patch.
  
  Chip, did you resolve the failing PGE test(s)?
 
 Oddly enough, no.

Strangely enough, yes.  Apparently I hadn't waved enough 'make clean'
chickens over the computer.  All better now.
-- 
Chip Salzenberg [EMAIL PROTECTED]