Re: Unintended consequences
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?
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.
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?
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).
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.
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).
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.
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.
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.
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 ?
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.
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
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.
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.
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.
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.
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)
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)
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?
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?
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.
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?
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.
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.
# 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
# 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
Thanks, applied.
Re: perl 6 hosting?
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?
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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).
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?
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
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
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
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
- 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.
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
FYI, another mirror is set up at http://lenin.net/~emile/www.unobe.com/packages/ David
Re: CPANTS is not a game.
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
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]