Re: Unintended consequences

2006-05-23 Thread David H. Adler
On Mon, May 22, 2006 at 09:45:31PM -0500, Andy Lester wrote:
 Here's an example of why I'm not real excited about CPANTS:
 
 http://community.livejournal.com/perl/120747.html

You mean the fact that there's a perl community on LJ? :-)

dha

-- 
David H. Adler - [EMAIL PROTECTED] - http://www.panix.com/~dha/
perl -e 'print Just another P$0-r-l hacker'


RE: Getting to hello world?

2006-05-23 Thread Conrad Schneiker
 James Peregrino [EMAIL PROTECTED] writes:
  You folks took me too literally :) I meant: Given a system without
  pugs/parrot/haskell (I assume perl5 is required), what are the
  things you need to install
 
 I just translated my german Pugs First Blood notes about how to
 compile Pugs.
 
 Try one of these topics on our Dresden Perl Mongers site:
 
  http://dresden-pm.org/cgi-bin/twiki/view/PM/PugsFirstBlood
  http://dresden-pm.org/cgi-bin/twiki/view/PM/PugsFirstBloodEnglish
 
 Maybe it helps.
 
 It isn't that hard but Feel free to add them to the FAQ if they are
 worth it.

Very nice! Your links are now in the FAQ. 

I also added archive link to another post about running on Ubuntu.

(Minor typos: s/lok at/look at/, s/spezification/specification/.)

Best regards,
Conrad Schneiker
 
www.athenalab.com/Perl_6_Users_FAQ.htm

www.AthenaLab.com (Nano-electron-beam technology.)



CPANTS is not a game.

2006-05-23 Thread Michael G Schwern

I haven't looked at what's going on in CPANTS for a while but Andy's post
made me have a look and oh dear.  There's a problem.  CPANTS is not a game.
If you make it a game, the system does not work.

Let's review.

CPANTS is not a measure of module quality since module quality is not well
defined and difficult to measure.  CPANTS is a measure of those things which
can be measured about quality modules.  To use a real world example, fast
cars tend to be red.

There is no direct relationship between a CPANTS kwalitee indicator and the
actual quality of the module, it is merely a statistical indicator.  A car
can be red without being fast.  Conversely, a blue car can be fast.

If I alter my distribution to increase its CPANTS score I have not reduced
the bug count, made it more efficient, improved the documentation or given
it an easier interface.  I have not done any of the difficult to measure
things which we associate with improving the real quality of a module. [1]
If I paint my car red, it does not go faster.

If people *think* red cars are faster, and I want to sell my car, I'm going
to paint my car red.  People will now be more likely to buy my car thinking
it goes faster, but they have been fooled.  I have gamed the system, used my
knowledge of its rules to my own gain.

The more people game CPANTS, the more they alter their modules specificly to
increase their CPANTS score, the less useful the CPANTS indicators will be.
If everyone paints their car red then its no longer a valid indicator of
whether its a fast car.  The indicator is now useless.

CPANTS is already easy to game since its rules are published.  This is hard
enough to deal with, but gaming is gleefully encouraged!  Its called The
CPANTS Game.  There's a scoreboard with a top 40, hall of fame and shame.
Failure to have a CPANTS indicator is expressed as a shortcoming which
must be remedied.

In order to best perform its function and reduce the urge to game, CPANTS
should...

* not express itself as a game or competition
* not widely publish its rules
* express its indicators in a neutral fashion without indication as to which
state of the indicator is better
* not suggest ways to fix your module
* not publish a numerical score which one may be compelled to raise, instead
a less precise indicator such as color
* not publish a scoreboard, top ten, hall of fame or shame
* add a feedback loop so that certain human-checked low and high quality
modules are checked against their CPANTS indicators to see which still have
value.  Adjust the indicator's weights accordingly.

Sorry if it sucks all the fun out of it, and I don't mean to poo-poo the
work Thomas and others have done, but I think we've forgotten what CPANTS
is.


[1] I may have improved the real quality of the distribution, but not the
payload contained within.  Using CPANTS as a distribution improvement tool
is another story and may ultimately be its best destiny.


Re: Getting to hello world?

2006-05-23 Thread James E Keenan

Gabor Szabo wrote:

On Ubuntu it was quite straigt forward, I think this is everything I 
needed:


sudo apt-get install subversion
sudo apt-get install ghc6



Given that, in the above, you installed subversion and ghc6 for all 
users ...


[snip]


# To compile Parrot
svn co https://svn.perl.org/parrot/trunk parrot
cd parrot
perl Configure.pl --prefix=$HOME/parrot --cc=cc --cxx=CC --link=cc --ld=cc
make
make test
make install

# added the following to ~/.bashrc and ran source ~/.bashrc
export PATH=$HOME/parrot/bin:$PATH
export LD_LIBRARY_PATH=$HOME/parrot/lib/
export PARROT_PATH=$HOME/work/parrot


... is there some reason why you chose to install parrot only under your 
home directory?


jimk


(Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).

2006-05-23 Thread Conrad Schneiker
I was googling around, looking for the most suitable Perl Wiki for a
possible addition of a Perl 6 section, and happened across this site:

Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).

Their posted policies, FAQ, and (http://perl.net.au/wiki/PerlNet:About),
seem to be very favorably inclined to serving the purposes of recent Perl 6
Wiki proposals made on comp.perl6.lang and comp.perl6.users. (I've cc'd
their contact on this note.)

If previous Perl 6 Wiki proponents are OK with this site, then we could
perhaps post a note on comp.perl6.announce about it, and informally
encourage people to make use of it for the time being. 

(And of course, I've already added the above Perl 6 Wiki link to the Perl 6
Users FAQ.)

Best regards,
Conrad Schneiker

www.athenalab.com/ http://www.athenalab.com/Perl_6_Users_FAQ.htm
Perl_6_Users_FAQ.htm

www. http://www.AthenaLab.com AthenaLab.com (Nano-electron-beam
technology.)

 



Re: CPANTS is not a game.

2006-05-23 Thread Yuval Kogman
On Tue, May 23, 2006 at 01:18:48 -0700, Michael G Schwern wrote:
 I haven't looked at what's going on in CPANTS for a while but Andy's post
 made me have a look and oh dear.  There's a problem.  CPANTS is not a game.
 If you make it a game, the system does not work.

Likewise it should not test for things like

has a pod coverage test

because it's pod may be good enough even if it doesn't have a test.
This leads to attrocities like Catalyst stuff being shipped with a
boilerplate 02pod.t and 03pod_coverage.t that are disabled unless
$ENV{TEST_POD} is off. They add kwalitee, but they usually fail
making this even more of a contest when size doesn't matter ;-)

-- 
  Yuval Kogman [EMAIL PROTECTED]
http://nothingmuch.woobling.org  0xEBD27418



pgpJrzR5jQP6v.pgp
Description: PGP signature


Re: (Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).

2006-05-23 Thread Juerd
Conrad Schneiker skribis 2006-05-23  0:42 (-0700):
 Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).

That's a nice page, and Mediawiki is a nice wiki. But I'd really prefer
a wiki written in Perl 6, because it's about time we started to show
off. Serving important information with PHP is possible, but there will
be people who will interpret that meta-info.

Besides that, the page is kind of slow... But that could be temporary.


Juerd
-- 
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html 
http://convolution.nl/gajigu_juerd_n.html


Re: CPANTS is not a game.

2006-05-23 Thread Smylers
Michael G Schwern writes:

 There's a problem.  CPANTS is not a game.  If you make it a game, the
 system does not work.

Hi there.  I made a similarish point on this list about a year ago, to
which you replied:

  http://groups.google.co.uk/[EMAIL PROTECTED]

Your reply included:

  Finally, the scoreboard does have a purpose.  Part of the original
  idea of CPANTS was to provide an automated checklist for a good
  distribution.  ... Then, if this were a web page, the author could
  just click on that to get an explaination of why this is a Good Thing
  and what they can do to fix it. ...
  
  How do you get authors to actually look at the CPANTS information and
  make corrections?  Well, we like competition.  Make it a game! 

So it was you -- or somebody impersonating you on this list -- who
managed to persuade me that actually Cpants being a game was a good
thing!

Smylers


Re: CPANTS is not a game.

2006-05-23 Thread Andy Lester
  How do you get authors to actually look at the CPANTS information  
and

  make corrections?  Well, we like competition.  Make it a game!

So it was you -- or somebody impersonating you on this list -- who
managed to persuade me that actually Cpants being a game was a good
thing!


The key is that we're playing for different goals.  Schwern was  
saying that the improvement of the modules is a game.  PerlGirl is  
making a game out of improving the numeric score for her modules, but  
without any improvement of the module itself.


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





Re: CPANTS is not a game.

2006-05-23 Thread David Golden

Andy Lester wrote:

  How do you get authors to actually look at the CPANTS information and
  make corrections?  Well, we like competition.  Make it a game!

So it was you -- or somebody impersonating you on this list -- who
managed to persuade me that actually Cpants being a game was a good
thing!


The key is that we're playing for different goals.  Schwern was saying 
that the improvement of the modules is a game.  PerlGirl is making a 
game out of improving the numeric score for her modules, but without any 
improvement of the module itself.


How does is_prereq improve quality?

Or, put differently, how does measuring something that an author can't 
control create an incentive to improve?


If CPANTS is a objective quality measure, then it makes sense.  If 
CPANTS is a quality game -- i.e. a friendly competition to improve 
one's scores -- then it doesn't.


If CPANTS stays with a narrow set of well-defined, objective criteria, 
then it can serve both purposes.  Remove or refine the subjective or 
hard-to-measure ones and the numerical gaming that doesn't change 
apparent quality goes away.


Regards,
David Golden



Re: Newbe: How do I configure @*INC ?

2006-05-23 Thread Jonathan Scott Duff
On Mon, May 22, 2006 at 11:02:15PM -0500, John M. Dlugosz wrote:
 Anyway, where is the configuration kept?  I need to change the default 
 values of @*INC to be where my copy is really located.

You should be able to set the PERL6LIB environment variable to contain
a semi-colon (on win32) separated list of directories to search.

-Scott
-- 
Jonathan Scott Duff
[EMAIL PROTECTED]


Re: CPANTS is not a game.

2006-05-23 Thread Chris Dolan

On May 23, 2006, at 8:39 AM, David Golden wrote:


How does is_prereq improve quality?

Or, put differently, how does measuring something that an author  
can't control create an incentive to improve?


is_prereq is usually a proxy metric for software maturity: if someone  
thinks your module is good enough that he would rather depend on it  
than reinvent it, then it's probably a better-than-average module on  
CPAN.  is_prereq is usually a vote of confidence, so it is likely a  
good proxy for quality.  In fact I believe that because the author  
(usually) can't control it directly, is_prereq is one of the best  
proxies for quality among the current kwalitee metrics.


CPANTS by itself does nothing to improve quality.  However, by  
drawing attention to kwalitee metrics, I argue that CPANTS draws  
attention to quality too.  Even if many authors don't understand  
that, the ones that do makes CPANTS worthwhile.  If making it a game  
helps to further raise awareness, then I think that should be  
tolerated until CPANTS matures.


IMHO, the best way to improve CPANTS and move away from the game  
mentality is to continually add more tests.  Each added test  
diminishes the weight of previous tests.  This will annoy the  
gamers because their modules keep dropping in kwalitee, while those  
that genuinely care about quality will appreciate the additional  
measurements.  If some gamers get annoyed enough to quit the game,  
that's not a big deal because they didn't really understand the point  
of CPANTS anyway.  If some keep playing the game by cleaving to the  
standards the community sets for them, then all the better for the  
rest of us.


As an example, consider pod_coverage.  It's a rather annoying metric,  
most of us agree.  Test::Pod::Coverage really only needs to be run on  
the author's machine, not on every user's machine.  However, by  
adding pod_coverage to kwalitee we got LOTS of authors to improve  
their POD with the cost of wasting cycles on users' machines.  I  
think that's a price worth paying -- at least until we rewrite the  
metric to actually test POD coverage (which is a decent proxy for POD  
quality) instead of just checking for the presence of a t/ 
pod_coverage.t file (which is a weak proxy for POD quality, but  
dramatically easier to measure).


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: [perl #39135] Problem with concat on Match objects

2006-05-23 Thread Leopold Toetsch
Am Samstag, 13. Mai 2006 05:36 schrieb Patrick R.Michaud (via RT):
 I've run into the following problem using concat with
 Match objects from PGE.  The code below performs a match,
 then attempts to concatenate a string with the results
 of the returned Match object:

This is now fixed, I've removed the initial test workaround.
leo


Re: CPANTS is not a game.

2006-05-23 Thread H.Merijn Brand
On Tue, 23 May 2006 09:35:27 -0500, Chris Dolan [EMAIL PROTECTED] wrote:

 On May 23, 2006, at 8:39 AM, David Golden wrote:
 
  How does is_prereq improve quality?
 
  Or, put differently, how does measuring something that an author  
  can't control create an incentive to improve?
 
 is_prereq is usually a proxy metric for software maturity: if someone  
 thinks your module is good enough that he would rather depend on it  
 than reinvent it, then it's probably a better-than-average module on  
 CPAN.

Very true for base modules like Getopt::Long, Test::More, or DBI
They are built to be used as basic blocks. DBI on itself is quite useless. It
only shows it's value combined with a DBD. The DBD itself however is more
unlikely to be required, as it is an end-block. That does not inhibit other
authors to extend on it (see DBD::Pg), but the functionality on itself quite
often is enough to not invite people to make it a requirement for a new
module (see DBD::mysql). These modules however are mature enough to compete.

 is_prereq is usually a vote of confidence,

I respectfully disagree completely.
It's been more than once that I did *not* install a module because it
required a module that I did not trust, either because of (the programming
style of) the author of that module, or because that module required yet
another zillion things I do not want installed (think YAML).

 so it is likely a good proxy for quality.  In fact I believe that because
 the author (usually) can't control it directly, is_prereq is one of the best  
 proxies for quality among the current kwalitee metrics.

I'd say: drop it. It's a worthless metric.

 CPANTS by itself does nothing to improve quality.  However, by  
 drawing attention to kwalitee metrics, I argue that CPANTS draws  
 attention to quality too.  Even if many authors don't understand  
 that, the ones that do makes CPANTS worthwhile.  If making it a game  
 helps to further raise awareness, then I think that should be  
 tolerated until CPANTS matures.

Hurray!
Yes, I used it to go over all my modules again, and use Covarage and pod
testing because of CPANTS. That indeed increased the qualitee of my modules

 IMHO, the best way to improve CPANTS and move away from the game  
 mentality is to continually add more tests.  Each added test  
 diminishes the weight of previous tests.  This will annoy the  
 gamers because their modules keep dropping in kwalitee, while those  
 that genuinely care about quality will appreciate the additional  
 measurements.  If some gamers get annoyed enough to quit the game,  
 that's not a big deal because they didn't really understand the point  
 of CPANTS anyway.  If some keep playing the game by cleaving to the  
 standards the community sets for them, then all the better for the  
 rest of us.

Tests should make sense. I still think there should be a test for copyright
notices, and TODO lists.

 As an example, consider pod_coverage.  It's a rather annoying metric,  
 most of us agree.  Test::Pod::Coverage really only needs to be run on  
 the author's machine, not on every user's machine.  However, by  
 adding pod_coverage to kwalitee we got LOTS of authors to improve  
 their POD with the cost of wasting cycles on users' machines.

Yep. Here too.

 I think that's a price worth paying -- at least until we rewrite the  
 metric to actually test POD coverage (which is a decent proxy for POD  
 quality) instead of just checking for the presence of a t/ 
 pod_coverage.t file (which is a weak proxy for POD quality, but  
 dramatically easier to measure).


-- 
H.Merijn BrandAmsterdam Perl Mongers (http://amsterdam.pm.org/)
using  porting perl 5.6.2, 5.8.x, 5.9.x  on HP-UX 10.20, 11.00, 11.11,
 11.23, SuSE 10.0, AIX 4.3  5.2, and Cygwin.   http://qa.perl.org
http://mirrors.develooper.com/hpux/   http://www.test-smoke.org
   http://www.goldmark.org/jeff/stupid-disclaimers/


Re: CPANTS is not a game.

2006-05-23 Thread David Golden

Chris Dolan wrote:
is_prereq is usually a proxy metric for software maturity: if someone 
thinks your module is good enough that he would rather depend on it than 
reinvent it, then it's probably a better-than-average module on CPAN.  
is_prereq is usually a vote of confidence, so it is likely a good proxy 
for quality.  In fact I believe that because the author (usually) can't 
control it directly, is_prereq is one of the best proxies for quality 
among the current kwalitee metrics.


I'd go so far to argue that is_prereq is perhaps a more significant 
metric than Kwalitee itself as it is really a measure of *utility*.  I'd 
be very interested to see it explored fully, not just as a binary -- 
e.g. how many different authors used a module in at least one of their 
distributions.


That said, it doesn't mean much for quality -- people may well use a 
poor quality distribution if it is sufficiently useful.


As an example, consider pod_coverage.  It's a rather annoying metric, 
most of us agree.  Test::Pod::Coverage really only needs to be run on 
the author's machine, not on every user's machine.  However, by adding 
pod_coverage to kwalitee we got LOTS of authors to improve their POD 
with the cost of wasting cycles on users' machines.  I think that's a 
price worth paying -- at least until we rewrite the metric to actually 
test POD coverage (which is a decent proxy for POD quality) instead of 
just checking for the presence of a t/pod_coverage.t file (which is a 
weak proxy for POD quality, but dramatically easier to measure).


It doesn't check for the existence of a t/pod_coverage.t file.  It 
checks that a string like use Test::Pod::Coverage appears properly 
formatted.  E.g. I believe this is sufficient to get the Kwalitee point:


  # t/pod_coverage.t
  __END__
  use Test::Pod::Coverage;

And, unfortunately, it also misses actual perl that doesn't meet its 
regex expectations.  (E.g. see the bug I recently filed for 
Module::ExtractUse.)


Regards,
David



Re: CPANTS is not a game.

2006-05-23 Thread Chris Dolan

On May 23, 2006, at 10:34 AM, David Golden wrote:


Chris Dolan wrote:
... just checking for the presence of a t/pod_coverage.t file  
(which is a weak proxy for POD quality, but dramatically easier to  
measure).


It doesn't check for the existence of a t/pod_coverage.t file.  It  
checks that a string like use Test::Pod::Coverage appears  
properly formatted.  E.g. I believe this is sufficient to get the  
Kwalitee point:


  # t/pod_coverage.t
  __END__
  use Test::Pod::Coverage;

And, unfortunately, it also misses actual perl that doesn't meet  
its regex expectations.  (E.g. see the bug I recently filed for  
Module::ExtractUse.)


Point taken, apologies for the inaccuracy.  However, that supports my  
argument that pod_coverage is a weak proxy.  I say it's much better  
than nothing, but still weak and the brittleness documented above  
makes it weaker.


Actually, I'd rather see a robust pod_coverage that just checks for  
the existence of t/.*pod_coverage.t than a slightly brittle that  
parses that file.  That is, I'd rather see false positives than false  
negatives.  To put it another way, I'll tolerate cheaters to avoid  
annoying the well-intentioned authors.


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: CPANTS is not a game.

2006-05-23 Thread Chris Dolan

On May 23, 2006, at 10:15 AM, H.Merijn Brand wrote:


is_prereq is usually a vote of confidence,


I respectfully disagree completely.
It's been more than once that I did *not* install a module because it
required a module that I did not trust, either because of (the  
programming
style of) the author of that module, or because that module  
required yet

another zillion things I do not want installed (think YAML).


I believe we are largely in agreement, but I think your example  
demonstrates that you missed my point.  As you well know, CPANTS is  
not making recommendations whether a module is a good solution for  
your problem, or whether you should trust a given module.  Instead,  
it is currently measuring maturity of a module and the author's  
attention to detail.  is_prereq just measures whether *any* other  
humans trust the module in question.  In that way, is_prereq is like  
a simplistic binary version of Google's page rank.  Just because  
Google rates a page highly doesn't mean it's a good page.  Similarly  
just because CPANTS ranks a module highly doesn't mean it's a good  
module.  However, both is_prereq and page rank are among the current  
best automatable proxies we have for approximating human judgment of  
quality.  Yes, there are great modules with is_prereq of 0 and there  
are great web sites with low page ranks.  But in both cases they're  
harder to find than their highly-linked counterparts, except via word  
of mouth (perlmonks, cpanratings, etc).


I keep advocating for is_prereq because currently it's the only non- 
author-controlled input to CPANTS.  That's it's primary value, and it  
will continue to be important until some better proxy for human  
confidence comes along, like incorporating cpanratings into CPANTS (I  
do NOT advocate that!) or getting download stats from CPAN (never  
gonna happen) or adding voluntary Someone installed module X pings  
from CPAN.pm.


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: (Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6)

2006-05-23 Thread Conrad Schneiker

Please see forwarded note below.

(( Paul:  Didn't see this show up in the archives, so I'm forwarding it on
your behalf. Looks like you have to be subscribed to post. Details for doing
that are in:

http://www.athenalab.com/Perl_6_Users_FAQ.htm

Also please look at a posted reply:

   http://www.nntp.perl.org/group/perl.perl6.language/25399

Could you switch to an existing Perl 5 based wiki for the time being? ))

-- Forwarded message --
From: Paul Fenwick
Date: May 23, 2006 1:03 AM

[...]

G'day Conrad and P6ers,

My apology for this being a very brief note.  I'm on an interstate training
assignment until the end of the week, and I'm scrounging net access where I
can.

Conrad Schneiker wrote:

[snip]


Their posted policies, FAQ, and (http://perl.net.au/wiki/PerlNet:About),
seem to be very favorably inclined to serving the purposes of recent Perl

6

Wiki proposals made on comp.perl6.lang and comp.perl6.users. (I've cc'd
their contact on this note.)


As one of the PerlNet admins, I'd be delighted if PerlNet was used to assist
in
any Perl 6 development, discussions, or other activities.  PerlNet exists to
provide support for the Perl community, and if there's anything I can do to
make
it more suitable to help the Perl 6 effort, then I'd be very happy to do my
best
to make it happen.

All the very best,

   Paul

--
Paul Fenwick [EMAIL PROTECTED] | http://perltraining.com.au/
Director of Training   | Ph:  +61 3 9354 6001
Perl Training Australia| Fax: +61 3 9354 2681


Re: (Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6)

2006-05-23 Thread Michael Mathews

I for one, think a Perl6-users wiki would be extremely useful, I'm
just not sure why a site that distinguishes itself as a portal for
the Australian and New Zealand Perl community makes the most sense
(particularly to anyone trying to find the Perl6-users wiki from
outside this mailing list).

Okay, New Zealand and Australia have parrots but the connection is a
stretch. Isn't Larry and/or Damian from Australia? Maybe that's the
connection?

I'm just askin'...

--michael
onperl.org

On 23/05/06, Conrad Schneiker [EMAIL PROTECTED] wrote:

Please see forwarded note below.

(( Paul:  Didn't see this show up in the archives, so I'm forwarding it on
your behalf. Looks like you have to be subscribed to post. Details for doing
that are in:

 http://www.athenalab.com/Perl_6_Users_FAQ.htm

Also please look at a posted reply:

http://www.nntp.perl.org/group/perl.perl6.language/25399

Could you switch to an existing Perl 5 based wiki for the time being? ))

-- Forwarded message --
From: Paul Fenwick
Date: May 23, 2006 1:03 AM

[...]

G'day Conrad and P6ers,

My apology for this being a very brief note.  I'm on an interstate training
assignment until the end of the week, and I'm scrounging net access where I
can.

Conrad Schneiker wrote:

[snip]

 Their posted policies, FAQ, and (http://perl.net.au/wiki/PerlNet:About),
 seem to be very favorably inclined to serving the purposes of recent Perl
6
 Wiki proposals made on comp.perl6.lang and comp.perl6.users. (I've cc'd
 their contact on this note.)

As one of the PerlNet admins, I'd be delighted if PerlNet was used to assist
in
any Perl 6 development, discussions, or other activities.  PerlNet exists to
provide support for the Perl community, and if there's anything I can do to
make
it more suitable to help the Perl 6 effort, then I'd be very happy to do my
best
to make it happen.

All the very best,

Paul

--
Paul Fenwick [EMAIL PROTECTED] | http://perltraining.com.au/
Director of Training   | Ph:  +61 3 9354 6001
Perl Training Australia| Fax: +61 3 9354 2681




perl 6 hosting?

2006-05-23 Thread Michael Mathews

I realise its still very, very early days, but considering the growing
number of people who would enjoy just dabbling a little in perl6, it
seems unreasonable to expect that the average person would install
the many megabytes of beta (alpha?) software required, and keep it all
updated with the latest releases. However, if someone had already done
that, why not let folks log in remotely via shell accounts and try out
the latest version on that computer?

Okay, okay, I know there are a million security issues with that, but
maybe if the server were highly locked down and isolated, maybe wiped
clean regularly, and restricted in the necessary ways... Is this even
possible? I'm not a sys. admin, but I thought I'd throw that out
there. Any one think that would be useful and possible, and want to
suggest a way to proceed with that?

--michael
onperl.org


Re: perl 6 hosting?

2006-05-23 Thread Chris Yocum

That is an interesting idea but, as you say, fraught with security
problems.  Maybe we can find a team of people to create binaries on a
regular basis for most of the major platforms?  That would mitigate
the security concerns and allow people to run up-to-date stuff.

This is just a thought, however.

Chris

On 5/23/06, Michael Mathews [EMAIL PROTECTED] wrote:

I realise its still very, very early days, but considering the growing
number of people who would enjoy just dabbling a little in perl6, it
seems unreasonable to expect that the average person would install
the many megabytes of beta (alpha?) software required, and keep it all
updated with the latest releases. However, if someone had already done
that, why not let folks log in remotely via shell accounts and try out
the latest version on that computer?

Okay, okay, I know there are a million security issues with that, but
maybe if the server were highly locked down and isolated, maybe wiped
clean regularly, and restricted in the necessary ways... Is this even
possible? I'm not a sys. admin, but I thought I'd throw that out
there. Any one think that would be useful and possible, and want to
suggest a way to proceed with that?

--michael
onperl.org



Re: CPANTS is not a game.

2006-05-23 Thread Michael G Schwern

On 5/23/06, David Golden [EMAIL PROTECTED] wrote:


How does is_prereq improve quality?



Can we avoid getting side-tracked by individual indicators?  Move it to
another thread, please.


Re: perl 6 hosting?

2006-05-23 Thread Andrew Shitov
 updated with the latest releases. However, if someone had already done
 that, why not let folks log in remotely via shell accounts and try out
 the latest version on that computer?

I have played with server-side Perl 6 m-m-m about two years ago:
http://real.perl6.ru/. Wokrs well since April 2004, even today ;-)

Can you imagine that Parrot 0.1.0 built for i386-freebsd lives there.

--
Andrew Shitov
__
[EMAIL PROTECTED] | http://www.shitov.ru



Re: CPANTS is not a game.

2006-05-23 Thread Michael G Schwern

On 5/23/06, Andy Lester [EMAIL PROTECTED] wrote:


   How do you get authors to actually look at the CPANTS information
 and
   make corrections?  Well, we like competition.  Make it a game!

 So it was you -- or somebody impersonating you on this list -- who
 managed to persuade me that actually Cpants being a game was a good
 thing!



See, now that's why I write stuff down.  On mailing lists.  So someone else
can remember it for me. ;)


The key is that we're playing for different goals.  Schwern was

saying that the improvement of the modules is a game.  PerlGirl is
making a game out of improving the numeric score for her modules, but
without any improvement of the module itself.



Therein lies the problem.  CPANTS is a fairly direct measure of distribution
quality (as opposed to code quality), so it has become useful as a
distribution improvement tool.  Trouble is, CPANTS as distribution quality
tool and CPANTS as kwalitee measurement have mutually exclusive methods to
reach their goals.  One works better as a game, one does not.

So I guess its down to this: pick a goal.  Either drop the gaming aspects or
drop any remaining pretense that its a measurement of module quality.  Since
the whole kwalitee thing is pretty flimsy to begin with, I'd go with just
making it a distribution improvement game.  That's what it seems to do best,
what people like to use it for and games are fun!


[perl #39188] imcc dumps core when called with -o file.pasm.

2006-05-23 Thread via RT
# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #39188]
# in the subject line of all future correspondence about this issue. 
# URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39188 


As of this morning's snapshot (Tue May 23 07:15:07 2006 UTC) The
following additional 90 tests dump core.  They didn't do that last
week.

Failed Test   Stat Wstat Total Fail  Failed  List of Failed
---
t/compilers/imcc/imcpasm/cfg.t   3   768 33 100.00%  1-3
t/compilers/imcc/imcpasm/opt0.t  4  1024 64  66.67%  2 4-6
t/compilers/imcc/imcpasm/opt1.t 75 1920078   75  96.15%  1-75
t/compilers/imcc/imcpasm/opt2.t  5  1280 65  83.33%  1-4 6
t/compilers/imcc/imcpasm/sub.t   2   512 22 100.00%  1-2
t/compilers/imcc/reg/alloc.t 1   256 31  33.33%  3

The core dumps all look similar:  main.c is calling PackFile_fixup_subs
with an interpreter argument where interpreter-code is NULL.  I don't
understand the code well enough to figure out where interpreter-code
was supposed to get set to anything non-NULL.

$ dbx parrot
(dbx) run -o cfg_1.pasm t/compilers/imcc/imcpasm/cfg_1.pir
Running: parrot -o cfg_1.pasm t/compilers/imcc/imcpasm/cfg_1.pir 
(process id 8438)
[EMAIL PROTECTED] ([EMAIL PROTECTED]) signal SEGV (no mapping at the fault 
address) in do_sub_pragmas at line 430 in file packfile.c
  430   struct PackFile_FixupTable *ft = self-fixups;
(dbx) where
current thread: [EMAIL PROTECTED]
=[1] do_sub_pragmas(interpreter = 0x30d370, self = (nil), action = 16, 
eval_pmc = (nil)), line 430 in packfile.c
  [2] PackFile_fixup_subs(interpreter = 0x30d370, what = PBC_POSTCOMP, eval = 
(nil)), line 3388 in packfile.c
  [3] main(argc = 1, argv = 0xffbefa48), line 624 in main.c
(dbx) print *interpreter-code
dbx: reference through nil pointer
(dbx) print *interpreter
*interpreter = {
ctx = {
state = 0x30dfb8
bp= {
regs_n = 0x30e120
regs_i = 0x30e120
}
bp_ps = {
regs_p = 0x30e220
regs_s = 0x30e220
}
}
ctx_mem = {
free_list= 0x30de68
n_free_slots = 81
}
stash_hash  = 0x364fd0
arena_base  = 0x30eab8
class_hash  = 0x364fa0
vtables = 0x357378
n_vtable_max= 72
n_vtable_alloced= 100
piodata = 0x30e2b0
op_lib  = 0x29daf8
op_count= 1219U
op_info_table   = 0x29ee38
op_func_table   = 0x29db28
evc_func_table  = (nil)
save_func_table = (nil)
n_libs  = 0
all_op_libs = (nil)
flags   = PARROT_NO_FLAGS
debug_flags = 0
run_core= PARROT_SLOW_CORE
profile = (nil)
resume_flag = 4
resume_offset   = 0
code= (nil)
initial_pf  = 0x4b2d10
imc_info= 0x4b2cb0
output_file = 0xffbefb76 cfg_1.pasm
pdb = (nil)
debugger= (nil)
lo_var_ptr  = (nil)
parent_interpreter  = (nil)
world_inited= 1
iglobals= 0x3648e0
DOD_registry= (nil)
HLL_info= 0x3696b8
HLL_namespace   = 0x3696a0
binop_mmd_funcs = 0x357138
n_binop_mmd_funcs   = 47U
caches  = 0x30e2e0
const_cstring_table = 0x3526a0
task_queue  = 0x4b2c70
sleeping= 0
exceptions  = (nil)
exc_free_list   = (nil)
exception_list  = 0x4ae108
thread_data = (nil)
recursion_limit = 1000U
gc_generation   = 0
current_args= (nil)
current_params  = (nil)
current_returns = (nil)
current_cont= (nil)
current_object  = (nil)
current_method  = (nil)
}

Summary of my parrot 0.4.4 (r0) configuration:
  configdate='Tue May 23 11:50:30 2006'
  Platform:
osname=solaris, archname=sun4-solaris
jitcapable=0, jitarchname=nojit,
jitosname=solaris, jitcpuarch=sun4
execcapable=0
perl=perl5.6
  Compiler:
cc='cc', ccflags='-I/usr/local/include -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 -DDISABLE_GC_DEBUG=1 -DNDEBUG -g',
  Linker and Libraries:
ld='cc', ldflags=' -L/usr/local/lib -R/usr/local/lib ',
cc_ldflags='',
libs='-lsocket -lnsl -ldl -lm -lpthread -lrt'
  Dynamic Linking:
share_ext='.so', ld_share_flags='-G -L/usr/local/lib -R/usr/local/lib',
load_ext='.so', ld_load_flags='-G -L/usr/local/lib -R/usr/local/lib'
  Types:
iv=long, intvalsize=4, intsize=4, opcode_t=long, opcode_t_size=4,
ptrsize=4, ptr_alignment=4 byteorder=4321, 
nv=double, numvalsize=8, doublesize=8

-- 
Andy Dougherty  [EMAIL PROTECTED]


[perl #39190] [PATCH] trivial ./parrot -h help text patch

2006-05-23 Thread via RT
# New Ticket Created by  Andy Dougherty 
# Please include the string:  [perl #39190]
# in the subject line of all future correspondence about this issue. 
# URL: https://rt.perl.org/rt3/Ticket/Display.html?id=39190 


Trying to debug why imcc dumps core, I puzzled over why parrot wouldn't 
accept the --imcc_debug option as advertised.  Checking main.c, I found 
and fixed the simple typo:

--- parrot-current/compilers/imcc/main.c Mon May 22 19:15:06 2006
+++ parrot-andy/compilers/imcc/main.c   Tue May 23 13:37:57 2006
@@ -94,7 +94,7 @@
 -. --waitRead a keystroke before starting\n
--runtime-prefix\n
Compiler options\n
--d --imcc_debug[=HEXFLAGS]\n
+-d --imcc-debug[=HEXFLAGS]\n
 -v --verbose\n
 -E --pre-process-only\n
 -o --output=FILE\n

-- 
Andy Dougherty  [EMAIL PROTECTED]



[perl #39190] [PATCH] trivial ./parrot -h help text patch

2006-05-23 Thread Will Coleda via RT
Thanks, applied.


Re: perl 6 hosting?

2006-05-23 Thread Randy W. Sims

Michael Mathews wrote:

I realise its still very, very early days, but considering the growing
number of people who would enjoy just dabbling a little in perl6, it
seems unreasonable to expect that the average person would install
the many megabytes of beta (alpha?) software required, and keep it all
updated with the latest releases. However, if someone had already done
that, why not let folks log in remotely via shell accounts and try out
the latest version on that computer?

Okay, okay, I know there are a million security issues with that, but
maybe if the server were highly locked down and isolated, maybe wiped
clean regularly, and restricted in the necessary ways... Is this even
possible? I'm not a sys. admin, but I thought I'd throw that out
there. Any one think that would be useful and possible, and want to
suggest a way to proceed with that?


Maybe something along the lines of http://tryruby.hobix.com/

Randy.



Re: perl 6 hosting?

2006-05-23 Thread Michael Mathews

Um, yes anyone wanna work on a tryperl6 virtual shell?

--michael
onperl.og

On 23/05/06, Randy W. Sims [EMAIL PROTECTED] wrote:


Maybe something along the lines of http://tryruby.hobix.com/

Randy.




[svn:parrot-pdd] r12774 - trunk/docs/pdds/clip

2006-05-23 Thread chip
Author: chip
Date: Tue May 23 11:06:17 2006
New Revision: 12774

Modified:
   trunk/docs/pdds/clip/pdd23_exceptions.pod

Log:
Half-done.  The new opcodes and directives are certain,
and can be the basis of implementation work immediately.

Modified: trunk/docs/pdds/clip/pdd23_exceptions.pod
==
--- trunk/docs/pdds/clip/pdd23_exceptions.pod   (original)
+++ trunk/docs/pdds/clip/pdd23_exceptions.pod   Tue May 23 11:06:17 2006
@@ -3,7 +3,7 @@
 
 =head1 NAME
 
-docs/pdds/clip/pdd23_exceptions.pod - Parrot Exceptions
+docs/pdds/pdd23_exceptions.pod - Parrot Exceptions
 
 =head1 ABSTRACT
 
@@ -16,169 +16,108 @@
 
 =head1 DESCRIPTION
 
-An exception system gives user-developed code control over how run-time
-error conditions are handled. Exceptions are errors or unusual
-conditions that require special processing. An exception handler
-performs the necessary steps to appropriately respond to a particular
-kind of exception.
+An exception system gives user-developed code control over how run-time error
+conditions are handled.  Exceptions are errors or unusual conditions that
+require special processing.  An exception handler performs the necessary steps
+to appropriately respond to a particular kind of exception.
+
+Parrot is designed to support dynamic languages, but Parrot compromises the
+principle of dynamic behavior when necessary. For example, Parrot requires any
+given subroutine to be fully compiled before it can be called.
+
+Since the structure and content of a compiled subroutine are fixed at compile
+time, it would be wasteful use the dynamic execution of opcodes at runtime to
+keep track of meta-information about that structure -- Iincluding the spans
+of opcodes that the programmer expects to throw exceptions, and how the
+programmer wants to handle them.
+
+=head2 Exception PIR Directives
+
+These are the PIR directives relevant to exceptions and exception handlers:
+
+=over
+
+=item B.begin_eh ILABEL
+
+A C.begin_eh directive marks the beginning of a span of opcodes which the
+programmer expects to throw an exception.  If an exception occurs in the
+execution of the given opcode span, Parrot will transfer control to ILABEL.
+
+[XXX - Is a label a good approach?  Treating exception handlers as label jumps
+rather than full subroutines may be error-prone, but having the lexical stack
+conveniently at hand is worth a lot.]
+
+=item B.end_eh
+
+A C.end_eh marks the end of the most recent (innermost) still-open exception
+handler opcode span.
+
+=back
 
 =head2 Exception Opcodes
 
 These are the opcodes relevant to exceptions and exception handlers:
 
-=over
+=item Bthrow IPMC
+
+The Cthrow opcode throws the given PMC as an exception.
+
+Any PMC can be thrown, as long as you're prepared to catch it.  If there's any
+chance of cross-language calls -- and in a Parrot environment, cross-language
+operations are kind of the point -- then be prepared to catch object of
+classes you would never throw yourself.
+
+However, it is IVERY STRONGLY RECOMMENDED for inter-HLL operation that any
+thrown PMC that can possibly escape your private sandbox should meet the
+minimal interface requirements of the Cparrot;exception class.
 
-=item *
+=item Brethrow
 
-Cpush_eh creates an exception handler and pushes it onto the control
-stack. It takes a label (the location of the exception handler) as its
-only argument. [Is this right? Treating exception handlers as label
-jumps rather than full subroutines is error-prone.]
-
-=item *
-
-Cclear_eh removes the most recently added exception from the control
-stack.
-
-=item *
-
-Cthrow throws an exception object.
-
-=item *
-
-Crethrow rethrows an exception object. It can only be called from
-inside an exception handler.
-
-=item *
-
-Cdie throws an exception. It takes two arguments, one for the severity
-of the exception and one for the type of exception.
-
-If the severity is CEXCEPT_DOOMED, it exits via a call to
-C_exit($2), which is not a catchable exception.
-
-These are the constants defined for severity:
-
-  0EXCEPT_NORMAL
-  1EXCEPT_WARNING
-  2EXCEPT_ERROR
-  3EXCEPT_SEVERE
-  4EXCEPT_FATAL
-  5EXCEPT_DOOMED
-  6EXCEPT_EXIT
-
-These are the constants defined for exception types:
-
-  0E_Exception
-  1E_SystemExit
-  2E_StopIteration
-  3E_StandardError
-  4E_KeyboardInterrupt
-  5E_ImportError
-  6E_EnvironmentError
-  7E_IOError
-  8E_OSError
-  9E_WindowsError
-  10   E_VMSError
-  11   E_EOFError
-  12   E_RuntimeError
-  13   E_NotImplementedError
-  14   E_LibraryNotLoadedError
-  15   E_NameError
-  16   E_UnboundLocalError
-  17   E_AttributeError
-  18   E_SyntaxError
-  19   E_IndentationError
-  20   E_TabError
-  21   E_TypeError
-  22   E_AssertionError
-  23   E_LookupError
-  24   E_IndexError
-  25   E_KeyError
-  26   E_ArithmeticError
-  27   E_OverflowError
-  28   E_ZeroDivisionError
-  29   

Re: CPANTS is not a game.

2006-05-23 Thread chromatic
On Tuesday 23 May 2006 07:35, Chris Dolan wrote:

 is_prereq is usually a proxy metric for software maturity: if someone  
 thinks your module is good enough that he would rather depend on it  
 than reinvent it, then it's probably a better-than-average module on  
 CPAN.

Contra: File::Find.

-- c


Simple Print/Say Question

2006-05-23 Thread Chris Yocum

Hi all,
I was converting a program that I wrote a while back from Perl5
to Perl6 and I got stuck on something really easy.  In Perl5, when I
want to print something out, in this case an array with lines between
the columns, like this:

1|2|3

I would say something like:

print $array[0] . | . $array[1] . | . $array[2] . \n;

not the best way but it works.

In Perl6 if say something like this:

print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;

I get

1 2 3 | | |

My question is: why is it doing that or, more to the point, what am I
doing wrong?

Thanks,
Chris

PS This is what I am running currently:

This is Perl6 User's Golfing System, version 6.2.11, February 1, 2006 built for
MSWin32-x86-multi-thread

Summary of pugs configuration:
   archlib: C:\Perl6\lib
   archname: MSWin32-x86-multi-thread
   bin: C:\Perl\bin
   exe_ext: .exe
   file_sep: \
   installarchlib: C:\Perl6\lib
   installbin: C:\Perl\bin
   installman1dir: C:\Perl\man\man1
   installman3dir: C:\Perl\man\man3
   installprivlib: C:\Perl6\lib
   installscript: C:\Perl\bin
   installsitearch: C:\Perl6\site\lib
   installsitebin: C:\Perl\bin
   installsitelib: C:\Perl6\site\lib
   installsiteman1dir: C:\Perl\man\man1
   installsiteman3dir: C:\Perl\man\man3
   osname: MSWin32
   pager: more /e
   path_sep: ;
   perl5path: C:\Perl\bin\perl.exe
   perl_revision: 6
   perl_subversion: 0
   perl_version: 0
   prefix: C:\Perl
   privlib: C:\Perl6\lib
   pugs_revision: 0
   pugs_version: Perl6 User's Golfing System, version 6.2.11, February 1, 2
006
   pugs_versnum: 6.2.11
   pugspath: C:\Perl\bin\pugs.exe
   scriptdir: C:\Perl\bin
   sitearch: C:\Perl6\site\lib
   sitebin: C:\Perl\site\bin
   sitelib: C:\Perl6\site\lib
   siteprefix: C:\Perl\site
   sitescript: C:\Perl\bin
   sourcedir: F:/Hacking/Pugs-Build

@*INC:
C:\Perl6\lib
C:\Perl6\lib
C:\Perl6\site\lib
C:\Perl6\site\lib
C:\Perl6\lib\auto\pugs\perl6\lib
C:\Perl6\site\lib\auto\pugs\perl6\lib
.


Re: Simple Print/Say Question

2006-05-23 Thread Gabor Szabo

On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:


1|2|3

I would say something like:

print $array[0] . | . $array[1] . | . $array[2] . \n;

not the best way but it works.

In Perl6 if say something like this:

print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;

I get

1 2 3 | | |

My question is: why is it doing that or, more to the point, what am I
doing wrong?



I am not sure, maybe the . before \n cause the problem but why not try this
one:

my @array = (1, 2, 3);
say join |, @array;

Gabor


Re: Simple Print/Say Question

2006-05-23 Thread Chris Yocum

Oops.  That last . is a typo on my part.  Sorry about that!  It should
read, which it does in my code:

print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

However, your say join technique does not work.  I will keep on it but
for now I am off to dinner!

Thanks!,
Chris

On 5/23/06, Gabor Szabo [EMAIL PROTECTED] wrote:

On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:

 1|2|3

 I would say something like:

 print $array[0] . | . $array[1] . | . $array[2] . \n;

 not the best way but it works.

 In Perl6 if say something like this:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;

 I get

 1 2 3 | | |

 My question is: why is it doing that or, more to the point, what am I
 doing wrong?


I am not sure, maybe the . before \n cause the problem but why not try this
one:

my @array = (1, 2, 3);
say join |, @array;

Gabor



Re: Simple Print/Say Question

2006-05-23 Thread Fagyal Csongor
Chris,

Strange. I have just tried this using an old version (6.2.3) of Pugs:

my (@array) = 1,2,3;
print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

It prints
1|2|3
on my terminal.

Gabor's join-ed version also works.

- Fagzal

 Oops.  That last . is a typo on my part.  Sorry about that!  It should
 read, which it does in my code:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

 However, your say join technique does not work.  I will keep on it but
 for now I am off to dinner!

 Thanks!,
 Chris

 On 5/23/06, Gabor Szabo [EMAIL PROTECTED] wrote:
 On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:
 
  1|2|3
 
  I would say something like:
 
  print $array[0] . | . $array[1] . | . $array[2] . \n;
 
  not the best way but it works.
 
  In Perl6 if say something like this:
 
  print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;
 
  I get
 
  1 2 3 | | |
 
  My question is: why is it doing that or, more to the point, what am
 I doing wrong?
 

 I am not sure, maybe the . before \n cause the problem but why not
 try this one:

 my @array = (1, 2, 3);
 say join |, @array;

 Gabor





Re: Simple Print/Say Question

2006-05-23 Thread Chris Yocum

Dear Fagyal,
Huh.  Strange.  I tried the code on its own without the rest of
the script and it did just fine as well.  There must be something
wrong in my script somewhere.

Chris

On 5/23/06, Fagyal Csongor [EMAIL PROTECTED] wrote:

Chris,

Strange. I have just tried this using an old version (6.2.3) of Pugs:

my (@array) = 1,2,3;
print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

It prints
1|2|3
on my terminal.

Gabor's join-ed version also works.

- Fagzal

 Oops.  That last . is a typo on my part.  Sorry about that!  It should
 read, which it does in my code:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

 However, your say join technique does not work.  I will keep on it but
 for now I am off to dinner!

 Thanks!,
 Chris

 On 5/23/06, Gabor Szabo [EMAIL PROTECTED] wrote:
 On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:
 
  1|2|3
 
  I would say something like:
 
  print $array[0] . | . $array[1] . | . $array[2] . \n;
 
  not the best way but it works.
 
  In Perl6 if say something like this:
 
  print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;
 
  I get
 
  1 2 3 | | |
 
  My question is: why is it doing that or, more to the point, what am
 I doing wrong?
 

 I am not sure, maybe the . before \n cause the problem but why not
 try this one:

 my @array = (1, 2, 3);
 say join |, @array;

 Gabor






Re: Simple Print/Say Question

2006-05-23 Thread Ovid
This seems to work for me:

  pugs -e 'say (1,2,3).join(|)'
  1|2|3

Or even:

  pugs -e '(1,2,3).join(|).say'
  1|2|3

Cheers,
Ovid
 
-- If this message is a response to a question on a mailing list, please send 
follow up questions to the list.
 
Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/

- Original Message 
From: Fagyal Csongor [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: perl6-users@perl.org
Sent: Tuesday, May 23, 2006 12:11:07 PM
Subject: Re: Simple Print/Say Question

Chris,

Strange. I have just tried this using an old version (6.2.3) of Pugs:

my (@array) = 1,2,3;
print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

It prints
1|2|3
on my terminal.

Gabor's join-ed version also works.

- Fagzal

 Oops.  That last . is a typo on my part.  Sorry about that!  It should
 read, which it does in my code:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

 However, your say join technique does not work.  I will keep on it but
 for now I am off to dinner!

 Thanks!,
 Chris

 On 5/23/06, Gabor Szabo [EMAIL PROTECTED] wrote:
 On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:
 
  1|2|3
 
  I would say something like:
 
  print $array[0] . | . $array[1] . | . $array[2] . \n;
 
  not the best way but it works.
 
  In Perl6 if say something like this:
 
  print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;
 
  I get
 
  1 2 3 | | |
 
  My question is: why is it doing that or, more to the point, what am
 I doing wrong?
 

 I am not sure, maybe the . before \n cause the problem but why not
 try this one:

 my @array = (1, 2, 3);
 say join |, @array;

 Gabor









Re: Simple Print/Say Question

2006-05-23 Thread Chris Yocum

Huh.  The script is not too long so I will post it here for people to
see since I cannot see anything wrong with it.  It is just
embarrassing to give out bad code.

All it does is solves a bucket problem, which I have been working on
for something else.



my @wArray;
my @xArray;
my @yArray;
my @zArray;

for 0..4 - my $i {
@wArray[$i] = $i * 10.5;
}

for 0..6 - my $j {
@xArray[$j] = $j * 7;
}

for 0..12 - my $k {
@yArray[$k] = $k * 3;
}

for 0..18 - my $l {
@zArray[$l] = $l * 2;
}

my %hash;
my $key = 0;

for 0..4 - my $i {
my $w = @wArray[$i];

for 0..6 - my $j {
my $x = @xArray[$j];
for 0..12 - my $k {
my $y = @yArray[$k];
for 0..18 - my $l {
my $z = @zArray[$l];

if(($w + $x + $y + $z) == 35) {
my @total = ($i, $j, $k, $l);
%hash{$key} = [EMAIL PROTECTED];
$key++;
}
}
}
}
}

for %hash.sort.keys - my $key {
my @total = %hash{$key};

print $key:  ~ @total[0] ~ | ~ @total[1] ~ | ~ @total[2] ~ |
~ @total[3] ~ \n;
}

On 5/23/06, Ovid [EMAIL PROTECTED] wrote:

This seems to work for me:

  pugs -e 'say (1,2,3).join(|)'
  1|2|3

Or even:

  pugs -e '(1,2,3).join(|).say'
  1|2|3

Cheers,
Ovid

-- If this message is a response to a question on a mailing list, please send 
follow up questions to the list.

Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/

- Original Message 
From: Fagyal Csongor [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Cc: perl6-users@perl.org
Sent: Tuesday, May 23, 2006 12:11:07 PM
Subject: Re: Simple Print/Say Question

Chris,

Strange. I have just tried this using an old version (6.2.3) of Pugs:

my (@array) = 1,2,3;
print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

It prints
1|2|3
on my terminal.

Gabor's join-ed version also works.

- Fagzal

 Oops.  That last . is a typo on my part.  Sorry about that!  It should
 read, which it does in my code:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] ~ \n;

 However, your say join technique does not work.  I will keep on it but
 for now I am off to dinner!

 Thanks!,
 Chris

 On 5/23/06, Gabor Szabo [EMAIL PROTECTED] wrote:
 On 5/23/06, Chris Yocum [EMAIL PROTECTED] wrote:
 
  1|2|3
 
  I would say something like:
 
  print $array[0] . | . $array[1] . | . $array[2] . \n;
 
  not the best way but it works.
 
  In Perl6 if say something like this:
 
  print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;
 
  I get
 
  1 2 3 | | |
 
  My question is: why is it doing that or, more to the point, what am
 I doing wrong?
 

 I am not sure, maybe the . before \n cause the problem but why not
 try this one:

 my @array = (1, 2, 3);
 say join |, @array;

 Gabor










Re: Simple Print/Say Question

2006-05-23 Thread Chris Yocum

Dear Mr. Bach,
You were indeed correct so I wrapped the %hash like this
@{%hash} like you would to de-refrence an array and it worked
perfectly.  It was indeed just me.
Thanks to everyone that responded!

Chris

On 5/23/06, [EMAIL PROTECTED] [EMAIL PROTECTED] wrote:

Oh, I just saw some discussion about the flatten op and:
for %hash.sort.keys - my $key {
 my @total = [,] %hash{$key};

maybe, would be the unroll or:
for %hash.sort.keys - my $key {
 my @total = ( %hash{$key} );

or
for %hash.sort.keys - my $key {
 my (@total) = %hash{$key};

perhaps?

a

Andy Bach, Sys. Mangler
Internet: [EMAIL PROTECTED]
VOICE: (608) 261-5738  FAX 264-5932

It's a summons.
What's a summons?
It means summon's in trouble.
-- Rocky and Bullwinkle



Re: CPANTS is not a game.

2006-05-23 Thread Thomas Klausner
Hi!

I missed most of this discussion due to work and a very important
shopping trip to IKEA (well, maybe not that important, but I'll let you
argue this out with my girlfriend...)

I'm also a bit exhausted now, so here are just some semi-random comments
on this thread:

- I think the biggest problem with CPANTS now is lack of (meaningful)
  tests. There were a lot of suggestions for more tests on this list, in
  private mail (and some even in my brain..). The only problem is that I
  never had time implementing them ($job etc, you know). Then, in
  Jannuary this year, I changed jobs, so I had to move CPANTS to a new
  server. At the same time I did some fundamental changes to the internals
  (e.g. factor out Module:CPANTS::Analyse to allow for stuff like
  Test::Kwalitee and cpants_lint.pl)

  But...

  I'm now settled in my new job (and new appartment), the new and
  improved CPANTS is running on a new server (provided by yi.org, thanks
  again to Tyler MacDonald!). So basically all the time I can spend on
  CPANTS will go into new tests (eg a check if used modules (minus stuff
  in Module::CoreList) matches PREREQ_PM).


- Until I grok PPI and merry it with CPANTS, testing distribution
  kwalitee is basically the only halfway serious option. Even this
  doesn't work all the time (see has_test_pod*).

  Dist tests are low-hanging fruits. But I'll promise I'll reach
  further. Later...


- CPANTS as a multiplayer online game is an easy way to get peoples
  attention without totaly offending them. I /could/ send an email to
  everybody on CPAN with some 'helpfull hints' on how to improve
  kwalitee. I guess the biggest effect would be to get added to some SPAM
  blacklists etc...

  But with the tongue-in-cheek 'highscore lists', people get
  interested/hooked and DO improve their code. I got several mails of
  people who discovered semi-serious problems in their code (eg missing
  'use strict' statements) because they checked their CPANTS ratings.

  If people want to 'cheat', that's ok for me. As soon as I have some
  time to spend on the issue, I can improve the tests (but that's rather
  low on my todo list, as I like to assume that we are all grown-ups and
  do not need faked cpants ratings to boost our ego (I might be
  wrong...)).

  And no, I won't take the fun out of CPANTS.

- With regard to various problems with certain metrics: I won't remove a
  single metric unless I (or somebody else...) implemented a new one
  (and even than I'll think very hard before removing it)
  
  Again, serveral people found bugs/lacks of docu thanks to
  has_test_pod_coverage. Yes, some people use other tools to check
  pod/code coverage. Ok, some people don't ship their developer test
  suite to the world. But those are very few and very able authors. They
  do not need CPANTS to increase their kwalitee.
  
  But there are hundreds of authors who do need hints to increase
  kwalitee (most likely because there's a new trend in Perl, and not
  everyone attends YAPCs / reads all the lists / etc). CPANTS is a way
  to introduce those new (or not so new) trends to the majority of CPAN
  authors who do not participate in the 'inner circles' of PERL.



-- 
#!/usr/bin/perl   http://domm.zsi.at
for(ref bless{},just'another'perl'hacker){s-:+-$-gprint$_.$/}


[svn:perl6-synopsis] r9306 - doc/trunk/design/syn

2006-05-23 Thread larry
Author: larry
Date: Tue May 23 12:54:49 2006
New Revision: 9306

Modified:
   doc/trunk/design/syn/S02.pod

Log:
Ambiguity noted by spinclad++.


Modified: doc/trunk/design/syn/S02.pod
==
--- doc/trunk/design/syn/S02.pod(original)
+++ doc/trunk/design/syn/S02.podTue May 23 12:54:49 2006
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall [EMAIL PROTECTED]
   Date: 10 Aug 2004
-  Last Modified: 15 May 2006
+  Last Modified: 23 May 2006
   Number: 2
-  Version: 42
+  Version: 43
 
 This document summarizes Apocalypse 2, which covers small-scale
 lexical items and typological issues.  (These Synopses also contain
@@ -1252,8 +1252,8 @@
 Characters indexed by hex, octal, and decimal can be interpolated
 into strings using either C\x123 (with C\o and C\d behaving
 respectively) or using square brackets: C\x[123].  Multiple
-characters may be put into any of these by separating the numbers
-with comma: C\x[41,42,43].
+characters may be specified within any of the bracketed forms by
+separating the numbers with comma: C\x[41,42,43].
 
 =item *
 


Perl 6 and Parrot links

2006-05-23 Thread Jurosz Michal
Hello,

  feel free to use
http://wiki.kn.vutbr.cz/mj/index.cgi?Perl%206%20and%20Parrot%20links
.


Re: (Existing) Perl 6 Wiki: (http://perl.net.au/wiki/Perl_6).

2006-05-23 Thread Paul Fenwick
G'day Conrad and P6ers,

My apology for this being a very brief note.  I'm on an interstate training
assignment until the end of the week, and I'm scrounging net access where I can.

Conrad Schneiker wrote:

[snip]

 Their posted policies, FAQ, and (http://perl.net.au/wiki/PerlNet:About),
 seem to be very favorably inclined to serving the purposes of recent Perl 6
 Wiki proposals made on comp.perl6.lang and comp.perl6.users. (I've cc'd
 their contact on this note.)

As one of the PerlNet admins, I'd be delighted if PerlNet was used to assist in
any Perl 6 development, discussions, or other activities.  PerlNet exists to
provide support for the Perl community, and if there's anything I can do to make
it more suitable to help the Perl 6 effort, then I'd be very happy to do my best
to make it happen.

All the very best,

Paul

-- 
Paul Fenwick [EMAIL PROTECTED] | http://perltraining.com.au/
Director of Training   | Ph:  +61 3 9354 6001
Perl Training Australia| Fax: +61 3 9354 2681


Re: Getting to hello world?

2006-05-23 Thread Andy Dougherty
On Sun, 21 May 2006, James Peregrino wrote:

 You folks took me too literally :)  I meant:  Given a system without
 pugs/parrot/haskell (I assume perl5 is required), what are the things you
 need to install so that you can say
 
 perl6 -e say 'hello world'
 
 i.e.
 
 tar xf ghc.tar.gz
 ./configure
 make
 make install

To build GHC, you need a pre-existing, relatively recent version of GHC. 
Cross-compiling GHC is documented fairly carefully, but I haven't tried it 
myself.  There are pre-built binaries available for a few of the most
common architecture/operating system combinations.

 tar xf parrot.tar.gz
 make
 make test
 make install

Here too, the core developers only have access to a limited set of 
architecture/operating system combinations.  In principle, parrot ought to 
build and run just fine on many of the places where perl 5 currently does.  
In practice, it doesn't.  Patches to make it do so would likely be 
welcome.

 tar xf pugs.tar.gz
 perl Makefile.PL
 make
 make test
 make install

I've never made it past the haskell barrier, so I can't comment on how 
well this works.

-- 
Andy Dougherty  [EMAIL PROTECTED]


Re: Simple Print/Say Question

2006-05-23 Thread Dr.Ruud
Chris Yocum schreef:

 print @array[0] ~ | ~ @array[1] ~ | ~ @array[2] . \n;

First the Perl6-equivalent of

  $ = '|' ;

and then

  say @array ;

-- 
Affijn, Ruud

Gewoon is een tijger.




Re: Simple Print/Say Question

2006-05-23 Thread Ovid
Hi Chris,

I hope you don't mind.  With the idea of getting back into Perl6, I've taken 
the liberty of rewriting your code to clean it up a bit (somewhat 
successfully), and make it more perl6ish (somewhat unsuccessfully).  The only 
significant issue I have with my version is the terribly nested loop which I'm 
sure could be cleaned up some more.

Also, because Pugs is so slow, I've included some performance hacks in it.  It 
originally was taking about 4 minutes to run on my computer.  It now takes 
about 50 seconds.

If anyone can offer a better/cleaner version, I'd love to see it.

Cheers,
Ovid
 
-- If this message is a response to a question on a mailing list, please send 
follow up questions to the list.
 
Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/--

my %buckets = (
'w' = {
'count' = 4,
'scale' = 10.5,
'array' = [],
 },
'x' = {
'count' = 6,
'scale' = 7,
'array' = [],
 },
'y' = {
'count' = 12,
'scale' = 3,
'array' = [],
 },
'z' = {
'count' = 18,
'scale' = 2,
'array' = [],
 },
);

for %buckets.kv - my $bucket, $arg_for {
for 0 .. $arg_for{'count'} - $index {
$arg_for{'array'}.push($index * $arg_for{'scale'});
}
}

my int @results;
my int $target = 35;

my $w_bucket = %buckets{'w'};
for 0 .. $w_bucket{'count'} - my $i {
say To 4: $i;
my $w = $w_bucket{'array'}[$i];

last if $w  $target;

my $x_bucket = %buckets{'x'};
for 0 .. $x_bucket{'count'} - my $j {
say   To 6: $j;
my $x = $x_bucket{'array'}[$j];

last if ($w, $x).sum  $target;

my $y_bucket = %buckets{'y'};
for 0 .. $y_bucket{'count'} - my $k {
my $y = $y_bucket{'array'}[$k];

last if ($w, $x, $y).sum  $target;

my $z_bucket = %buckets{'z'};
for 0 .. $z_bucket{'count'} - my $l {
my $z = $z_bucket{'array'}[$l];

if( $target == ($w, $x, $y, $z).sum ) {
@results.push( [$i, $j, $k, $l] );
}
}
}
}
}

my $counter = 0;
for @results - my $result {
say $counter:  ~ $result.join( | );
$counter++;
}







Re: Simple Print/Say Question

2006-05-23 Thread Ovid
Er, and the first loop is better written as this:

  for %buckets.values - my $arg_for {
  for 0 .. $arg_for{'count'} - $index {
  $arg_for{'array'}.push($index * $arg_for{'scale'});
  }
  }
 
Instead of:

  for %buckets.kv - my $bucket, $arg_for {
  for 0 .. $arg_for{'count'} - $index {
  $arg_for{'array'}.push($index * $arg_for{'scale'});
  } 
  }

Cheers,
Ovid


-- If this message is a response to a question on a mailing list, please send 
follow up questions to the list.
 
Web Programming with Perl -- http://users.easystreet.com/ovid/cgi_course/







Re: Simple Print/Say Question

2006-05-23 Thread Ovid
- Original Message 
 From: Larry Wall [EMAIL PROTECTED]

 You should not need my on the right side of a -.  Also, you should
 be able to write $arg_forcount for constant subscripts.

Thanks!  The revised script is below for those who are interested.

Cheers,
Ovid

-

my %buckets = (
'w' = {
'count' = 4,
'scale' = 10.5,
'array' = [],
 },
'x' = {
'count' = 6,
'scale' = 7,
'array' = [],
 },
'y' = {
'count' = 12,
'scale' = 3,
'array' = [],
 },
'z' = {
'count' = 18,
'scale' = 2,
'array' = [],
 },
);

for %buckets.values - $arg_for {
for 0 .. $arg_forcount - $index {
$arg_forarray.push($index * $arg_forscale);
}
}

my int @results;
my int $target = 35;

my $w_bucket = %bucketsw;
for 0 .. $w_bucketcount - $i {
say To 4: $i;
my $w = $w_bucketarray[$i];

last if $w  $target;

my $x_bucket = %bucketsx;
for 0 .. $x_bucketcount - $j {
say   To 6: $j;
my $x = $x_bucketarray[$j];

last if ($w, $x).sum  $target;

my $y_bucket = %bucketsy;
for 0 .. $y_bucketcount - $k {
my $y = $y_bucketarray[$k];

last if ($w, $x, $y).sum  $target;

my $z_bucket = %bucketsz;
for 0 .. $z_bucketcount - $l {
my $z = $z_bucketarray[$l];

if( $target == ($w, $x, $y, $z).sum ) {
@results.push( [$i, $j, $k, $l] );
}
}
}
}
}

my $counter = 0;
for @results - $result {
say $counter:  ~ $result.join( | );
$counter++;
}







Re: CPANTS is not a game.

2006-05-23 Thread James E Keenan

David Golden wrote:





How does is_prereq improve quality?




I've mostly ignored CPANTS, in large part because I refuse to include 
t/pod.t and t/pod_coverage.t in my distributions because they don't pick 
up the format in which some of my best documentation is written.  And 
refusing to include those tests lowers my kwalitee score.


But I do read everything on this list, so I took a look at 
http://cpants.perl.org/author/JKEENAN tonight for the first time in at 
least a year.


I was shocked, shocked to see that I was tied for 138th on the hit 
parade.  Little did I dream that my distros had such high kwalitee! 
What an honor!


More to the point (and to give credit where credit is due), the chart 
did point to the fact that one of my distros lacked 'use strict;' in its 
principal .pm package.  So I remedied that tonight.


Now, as to is_prereq:  My hunch is that it does not pick up instances 
where CPAN modules are required in other distributions' *test suites* 
rather than .pm files.   Some of my own code is written primarily to be 
used in t/*.t files (such as in some of my other distros), not in .pm 
files -- which means that they would never gain points for is_prereq 
as currently calculated.


jimk


Re: parrot and pugs builds for os x

2006-05-23 Thread David Romano

FYI, another mirror is set up at http://lenin.net/~emile/www.unobe.com/packages/

David


Re: CPANTS is not a game.

2006-05-23 Thread Andy Lester


On May 23, 2006, at 9:24 PM, James E Keenan wrote:

I've mostly ignored CPANTS, in large part because I refuse to  
include t/pod.t and t/pod_coverage.t in my distributions because  
they don't pick up the format in which some of my best  
documentation is written.  And refusing to include those tests  
lowers my kwalitee score.


Have we talked about this?  I'd like to make those more useful to you  
if I can.


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





Re: Classes moving into namespaces; parrot reserved namespace

2006-05-23 Thread Chip Salzenberg
I've got a partial solution to the pending question of namespace vs. class.
Specifically, I've realized that Parrot already had most of a simple
solution to populating a class's methods even if the class has no public
namespace, what with the .const .Sub technique.

When I went to implement the rest, I found it was already mostly there:
default.pmc already implements the add_method vtable entry, but there's no
addmethod opcode...  or at least, there _was_ no addmethod opcode until
a minute ago.  :-)  This example now works:

.sub main :main
.local pmc c
c = newclass ['whatever']

.const .Sub foo = whatever_foo
addmethod c, foo, foo

$P0 = new ['whatever']
$P0.foo()   
.end

.sub whatever_foo :anon :method
print Foo!\n
.end

Note that the default implementation of vtable add_method() still depends on
public namespaces.  But we can fix that.  }:-)
-- 
Chip Salzenberg [EMAIL PROTECTED]