Re: GUI, CPAN

2016-07-01 Thread Tadeusz Sośnierz

On 01/07/16 15:59, The Holy Ghost wrote:

Hello,

without the good interface to C


Waitwaitwait.

AFAICT, perl 6 has about the best interface to C that I've used in the 
similarly-leveled language; is there anything you're missing from 
https://docs.perl6.org/language/nativecall?


boost::regards,
Tadzik


[perl #128048] Need command-line tool for reading embedded documentation

2016-05-02 Thread Tadeusz Sośnierz via RT
> I had better luck with:
> 
> #
> p6doc DBIish
> #
> 
> ... which produced results similar to that of 'perl6 --doc '
> in the original post, i.e., output to STDOUT, unpaged, sans 'man'
> highlighting.
> 
> So, partly this is a question of incorrect or misleading
> documentation.

Synopsis 26[1] states that --doc should be capable of most of the things p6doc 
does now, one of them being capable of finding where a given module (like 
DBIish here) lives and display its Pod after parsing and formatting it. I see 
two courses of action here:

1) (proposed on IRC) -- deprecate --doc, possibly rename it to --renderpod and 
direct people to p6doc instead, since --doc is barely useful to them and quite 
misleading

2) (which I'll be in favour of) -- stick to original S26 ideas, and improve 
--doc so it's actually useful for end-users. We already have a precendent in 
rakudo for delegating some of the optional heavy-lifting-y stuff to modules: 
perl6-debug requires Debugger::Commandline::UI; --doc=HTML will ask the user to 
install Pod::To::HTML. I think it's a reasonable step to turn p6doc into this 
sort of 'second-degree core' module, where --doc will either work as it does 
now (generate pod from paths), or attempt to load p6doc and delegate work to 
it, optionally showing an error message that it needs to be installed for it to 
work. This way the core rakudo installation (the compiler itself) still gives 
you a usable --doc for your own development, while distributions like Star will 
ship p6doc with it and make --doc better, as it was originally intended.

[1] https://design.perl6.org/S26.html#How_Pod_is_parsed_and_processed



Re: Where do I need to put a pm6 file?

2016-05-02 Thread Tadeusz Sośnierz

On 02/05/16 09:22, Fernando Santagata wrote:


Nope. My fault: I didn't understand that the META* name ought to be 
either META6.json or META.info; I had it named META6.info (unhelpful 
error message, though).


Indeed, it could provide something more informational if you clearly 
give it a local directory that doesn't contain a proper project inside. 
I'll note it down and fix it for the next release, thanks :)


Re: Where do I need to put a pm6 file?

2016-05-01 Thread Tadeusz Sośnierz
Starting from the end: there's no need to use github, panda can install 
stuff just fine from a local directory :)
As for the directory layout, 
https://github.com/rakudo/rakudo/blob/nom/docs/module_management.md is 
probably the best source to learn how it works under the hood.


Hope this helps,

tadzik

On 01/05/16 15:35, Fernando Santagata wrote:


Yes, that works too. But I was just trying to understand how the 
directory layout works.


In particular I was trying to reproduce what panda does, since I 
didn't want to use github.com  just to install a 
test module.

I found no documentation about this, so I tried this mailing list.

On May 1, 2016 15:23, "Brock Wilcox" > wrote:


I recommend putting your module into a 'lib' dir near your script.
Then in your script add:

  use lib 'lib';

That way you don't have to add the -l param.

On May 1, 2016 09:21, "Fernando Santagata"
> wrote:

Hello,

I'm trying to write a module and make a program load and use it.
Since this code:

perl6 -e 'say $*REPO'

outputs:

inst#/home/nando/.perl6

I thought that putting the .pm6 file in there would be enough.
So, since my module is A::B, I put B.pm6 into ~/.perl6/A .
But when I run a test program which loads A::B, I receive this
error:

===SORRY!===
Could not find A::B at line 5 in:
/home/nando/.perl6
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6/site
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6/vendor
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6
CompUnit::Repository::AbsolutePath<140256602878904>
CompUnit::Repository::NQP<140256602876152>
CompUnit::Repository::Perl5<140256602873560>

If I run the test program this way it works:

perl6 -I ~/.perl6 ./test.p6

Why is that? Where should I put the module file to be seen
automatically, without adding the -I option?

As a side note, if I want to precompile the module, as panda
does when installing new modules from the repository, where
should I put the .moarvm file?

Thanks!

-- 
Fernando Santagata






Re: Where do I need to put a pm6 file?

2016-05-01 Thread Tadeusz Sośnierz
To expand on why putting the file in a directory doesn't Just Work, and 
why so much magic needs to be there for it to work: loading modules is a 
complicated thing in Perl 6, and long story short, if you want to be 
able to have multiple versions installed and loadable at the same time, 
you need some magic under the hood to compensate for that. This magic is 
what makes installing/precompiling a module you want to have installed 
more complicated than a couple of 'mv's.


If you want to avoid the overhead of panda or other installers (to their 
defense, there are several good reasons why they're so bulky and 
complicated :)), I sometimes use a script based on Module::Toolkit, 
where if you want to "just install the damned thing, nothing else", it's 
just a simple 'mtk install .': 
https://gist.github.com/tadzik/dc5c12cab0dc141167fb850f9ede2117


Hope this helps,

tadzik

On 01/05/16 15:23, Brock Wilcox wrote:


I recommend putting your module into a 'lib' dir near your script. 
Then in your script add:


  use lib 'lib';

That way you don't have to add the -l param.

On May 1, 2016 09:21, "Fernando Santagata" > wrote:


Hello,

I'm trying to write a module and make a program load and use it.
Since this code:

perl6 -e 'say $*REPO'

outputs:

inst#/home/nando/.perl6

I thought that putting the .pm6 file in there would be enough. So,
since my module is A::B, I put B.pm6 into ~/.perl6/A .
But when I run a test program which loads A::B, I receive this error:

===SORRY!===
Could not find A::B at line 5 in:
/home/nando/.perl6
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6/site
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6/vendor
/home/nando/.rakudobrew/moar-2016.04/install/share/perl6
CompUnit::Repository::AbsolutePath<140256602878904>
CompUnit::Repository::NQP<140256602876152>
CompUnit::Repository::Perl5<140256602873560>

If I run the test program this way it works:

perl6 -I ~/.perl6 ./test.p6

Why is that? Where should I put the module file to be seen
automatically, without adding the -I option?

As a side note, if I want to precompile the module, as panda does
when installing new modules from the repository, where should I
put the .moarvm file?

Thanks!

-- 
Fernando Santagata






Re: Difficulty Installing Module on Latest Rakudo Star

2016-04-29 Thread Tadeusz Sośnierz
Right; looks like Digest isn't properly installed after all. Try 'panda 
--force install Digest'?


On 29/04/16 23:39, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC at 
Cisco) wrote:

Hmmm, No that gets a similar error.

$ perl6 -MDigest -e1

===SORRY!===

Could not find Digest at line 1 in:

  /Users/jpolanik/.perl6

  /Applications/Rakudo/share/perl6/site

  /Applications/Rakudo/share/perl6/vendor

  /Applications/Rakudo/share/perl6

  CompUnit::Repository::AbsolutePath<4435167512>

  CompUnit::Repository::NQP<4435164760>

  CompUnit::Repository::Perl5<4435162168>


Joe


From: Tadeusz Sośnierz <tadeusz.sosni...@onet.pl 
<mailto:tadeusz.sosni...@onet.pl>>

Date: Friday, April 29, 2016 at 5:28 PM
To: "perl6-us...@perl.org <mailto:perl6-us...@perl.org>" 
<perl6-us...@perl.org <mailto:perl6-us...@perl.org>>

Subject: Re: Difficulty Installing Module on Latest Rakudo Star

Alright. You mention Digest itself being installed, so just to be 
sure: 'perl6 -MDigest -e1' works fine?


On 29/04/16 23:21, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC 
at Cisco) wrote:

Tadeusz,

I tried using —force because I initially thought I would be 
reinstalling Bailador.


Eliminating -—force and -—prefix had no effect. Here is the entire 
output.


$ sudo panda install Digest::HMAC

==> Fetching Digest::HMAC

==> Building Digest::HMAC

==> Testing Digest::HMAC

===SORRY!===

Could not find Digest at line 6 in:

/Users/jpolanik/Documents/myPerl6/Bailador/life/.panda-work/1461964706_1/lib

/Users/jpolanik/.perl6

/Applications/Rakudo/share/perl6/site

/Applications/Rakudo/share/perl6/vendor

/Applications/Rakudo/share/perl6

CompUnit::Repository::AbsolutePath<140471828218032>

CompUnit::Repository::NQP<140471823022992>

CompUnit::Repository::Perl5<140471823023032>

t/01-basic.t ..

Dubious, test returned 1 (wstat 256, 0x100)

No subtests run


Test Summary Report

---

t/01-basic.t (Wstat: 256 Tests: 0 Failed: 0)

  Non-zero exit status: 1

  Parse errors: No plan found in TAP output

Files=1, Tests=0,  1 wallclock secs ( 0.02 usr  0.01 sys +  1.60 
cusr  0.10 csys =  1.73 CPU)


Result: FAIL

test stage failed for Digest::HMAC: Tests failed

  in method install at 
/Applications/Rakudo/share/perl6/site/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A 
(Panda) line 157


  in method resolve at 
/Applications/Rakudo/share/perl6/site/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A 
(Panda) line 234


  in sub MAIN at 
/Applications/Rakudo/share/perl6/site/resources/E0D978079BB5081DE986D058BB8AB08252F05CC8 
line 18


  in block  at 
/Applications/Rakudo/share/perl6/site/resources/E0D978079BB5081DE986D058BB8AB08252F05CC8 
line 152




Failure Summary



Digest::HMAC(

*test stage failed for Digest::HMAC: Tests failed)


Thanks,

Joe



From: Tadeusz Sośnierz <tadeusz.sosni...@onet.pl 
<mailto:tadeusz.sosni...@onet.pl>>

Date: Friday, April 29, 2016 at 5:10 PM
To: "perl6-us...@perl.org" <perl6-us...@perl.org 
<mailto:perl6-us...@perl.org>>

Subject: Re: Difficulty Installing Module on Latest Rakudo Star

Hey Joe,
Can you post the entire panda output? Also, does the situation change 
when you don't use --prefix, and/or is there a particular reason why 
you use --force?


On 29/04/16 23:02, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC 
at Cisco) wrote:
I'm trying to install Bailador on a Mac running OSX 10.11.4 with the 
Latest Rakudo Star (2016.04). The installation fails on a dependency.


Digest::HMAC can't be installed using

sudo panda --prefix=/Applications/Rakudo/share/perl6/site/bin/ 
--force install Digest::HMAC


The error message says

Could not find Digest at line 6 in:

/Applications/Rakudo/share/perl6/site

/Applications/Rakudo/share/perl6/vendor

/Applications/Rakudo/share/perl6


However, Digest itself is installed. It's visible in the file system 
browser and my .per.6/panda/state file lists it as having been 
successfully installed.


Any advice would be appreciated.

Thanks,

Joe









Re: Difficulty Installing Module on Latest Rakudo Star

2016-04-29 Thread Tadeusz Sośnierz
Alright. You mention Digest itself being installed, so just to be sure: 
'perl6 -MDigest -e1' works fine?


On 29/04/16 23:21, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC at 
Cisco) wrote:

Tadeusz,

I tried using —force because I initially thought I would be 
reinstalling Bailador.


Eliminating -—force and -—prefix had no effect. Here is the entire output.

$ sudo panda install Digest::HMAC

==> Fetching Digest::HMAC

==> Building Digest::HMAC

==> Testing Digest::HMAC

===SORRY!===

Could not find Digest at line 6 in:

/Users/jpolanik/Documents/myPerl6/Bailador/life/.panda-work/1461964706_1/lib

  /Users/jpolanik/.perl6

  /Applications/Rakudo/share/perl6/site

  /Applications/Rakudo/share/perl6/vendor

  /Applications/Rakudo/share/perl6

CompUnit::Repository::AbsolutePath<140471828218032>

  CompUnit::Repository::NQP<140471823022992>

  CompUnit::Repository::Perl5<140471823023032>

t/01-basic.t ..

Dubious, test returned 1 (wstat 256, 0x100)

No subtests run


Test Summary Report

---

t/01-basic.t (Wstat: 256 Tests: 0 Failed: 0)

Non-zero exit status: 1

Parse errors: No plan found in TAP output

Files=1, Tests=0,  1 wallclock secs ( 0.02 usr  0.01 sys +  1.60 cusr  
0.10 csys =  1.73 CPU)


Result: FAIL

test stage failed for Digest::HMAC: Tests failed

in method install at 
/Applications/Rakudo/share/perl6/site/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A 
(Panda) line 157


in method resolve at 
/Applications/Rakudo/share/perl6/site/sources/582CB7486602954A4601BDCE5A0EAC54B05DA58A 
(Panda) line 234


in sub MAIN at 
/Applications/Rakudo/share/perl6/site/resources/E0D978079BB5081DE986D058BB8AB08252F05CC8 
line 18


in block  at 
/Applications/Rakudo/share/perl6/site/resources/E0D978079BB5081DE986D058BB8AB08252F05CC8 
line 152




Failure Summary



Digest::HMAC(

*test stage failed for Digest::HMAC: Tests failed)


Thanks,

Joe



From: Tadeusz Sośnierz <tadeusz.sosni...@onet.pl 
<mailto:tadeusz.sosni...@onet.pl>>

Date: Friday, April 29, 2016 at 5:10 PM
To: "perl6-us...@perl.org <mailto:perl6-us...@perl.org>" 
<perl6-us...@perl.org <mailto:perl6-us...@perl.org>>

Subject: Re: Difficulty Installing Module on Latest Rakudo Star

Hey Joe,
Can you post the entire panda output? Also, does the situation change 
when you don't use --prefix, and/or is there a particular reason why 
you use --force?


On 29/04/16 23:02, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC 
at Cisco) wrote:
I'm trying to install Bailador on a Mac running OSX 10.11.4 with the 
Latest Rakudo Star (2016.04). The installation fails on a dependency.


Digest::HMAC can't be installed using

sudo panda --prefix=/Applications/Rakudo/share/perl6/site/bin/ 
--force install Digest::HMAC


The error message says

Could not find Digest at line 6 in:

/Applications/Rakudo/share/perl6/site

/Applications/Rakudo/share/perl6/vendor

/Applications/Rakudo/share/perl6


However, Digest itself is installed. It's visible in the file system 
browser and my .per.6/panda/state file lists it as having been 
successfully installed.


Any advice would be appreciated.

Thanks,

Joe







Re: Difficulty Installing Module on Latest Rakudo Star

2016-04-29 Thread Tadeusz Sośnierz

Hey Joe,
Can you post the entire panda output? Also, does the situation change 
when you don't use --prefix, and/or is there a particular reason why you 
use --force?


On 29/04/16 23:02, Joe Polanik -X (jpolanik - RESOLVIT RESOURCES LLC at 
Cisco) wrote:
I'm trying to install Bailador on a Mac running OSX 10.11.4 with the 
Latest Rakudo Star (2016.04). The installation fails on a dependency.


Digest::HMAC can't be installed using

sudo panda --prefix=/Applications/Rakudo/share/perl6/site/bin/ --force 
install Digest::HMAC


The error message says

Could not find Digest at line 6 in:

/Applications/Rakudo/share/perl6/site

  /Applications/Rakudo/share/perl6/vendor

  /Applications/Rakudo/share/perl6


However, Digest itself is installed. It's visible in the file system 
browser and my .per.6/panda/state file lists it as having been 
successfully installed.


Any advice would be appreciated.

Thanks,

Joe





Re: Perl 6 pod-handling code seems widely scattered

2016-04-25 Thread Tadeusz Sośnierz

On 25/04/16 14:13, Tom Browder wrote:
I would like to hack on the pod handling code (particularly the HTML 
generation) but it seems to be quite scattered around github.  Is 
> the definitive repo location 
for that chunk?
Yes, that's the module that turns Pod AST into HTML. That's what you're 
looking for :)


Cheers,
tadzik


Re: [perl #127977] AutoReply: [BUG] Constraint on a slurpy MAIN parameter leaks out internal exceptions

2016-04-24 Thread Tadeusz Sośnierz

https://github.com/rakudo/rakudo/tree/rt-127977 contains a fix for that

On 24/04/16 12:28, perl6 via RT wrote:

Greetings,

This message has been automatically generated in response to the
creation of a trouble ticket regarding:
"[BUG] Constraint on a slurpy MAIN parameter leaks out internal 
exceptions",
a summary of which appears below.

There is no need to reply to this message right now.  Your ticket has been
assigned an ID of [perl #127977].

Please include the string:

  [perl #127977]

in the subject line of all future correspondence about this issue. To do so,
you may reply to this message.

 Thank you,
 perl6-bugs-follo...@perl.org

-
$ cat test.pl
sub MAIN(@args where sub { False }) {
  say ":)"
}

$ perl6 test.pl
Usage:
test.pl 



$ cat test.pl # note the slurpy
sub MAIN(*@args where sub { False }) {
  say ":)"
}

$ perl6 test.pl
Constraint type check failed for parameter '@args'
in sub MAIN at test.pl line 1
in block  at test.pl line 1

--

I expect USAGE in both cases, since it's both exactly invalid use of MAIN.
Patch and spectest incoming.





Adopt a module!

2016-02-02 Thread Tadeusz Sośnierz

My fellow Perl6ers,

Some of you probably recognize my (nick)name, I've been around for quite 
a while. These days, however, as you inevitably noticed if you happened 
to submit a bug or a PR to one of my modules on github, I find myself 
with less and less tuits for Perl 6 stuff; most of what I wrote for it 
was solving problems that I needed solved, and since I don't use much 
Perl 6 these days, I find little incentive to work on stuff I don't 
really use myself. This hardly matters for stuff like Acme::Meow or 
Text::T9, but has been a major pain for a while with core toolchain 
stuff like panda or rakudobrew.


With that in mind, I decided to transfer my modules to people who'll 
take good care of them. The obvious place for these is 
https://github.com/perl6-community-modules, which is where I'll be 
putting them in some foreseeable future. However, if you'd like to 
become the new owner of any of my stuff, please contact me either via 
email, IRC (I'm tadzik, constantly online on freenode) or at 
@tadzik:matrix.org if you're into the new exciting IM stuff. I already 
found a new happy father for JSON::Unmarshal, but I haven't been asking 
around for the rest of the things, so if you'd like some of this 
burden-glory hybrid, please get in touch. Bonus points if you've been 
contributing to any of them before :)


Best regards,
tadzik


[PSA] panda doesn't precompile modules anymore

2015-08-27 Thread Tadeusz Sośnierz
This will probably impact quite a few people, so I thought I'll explain 
myself here :)


As of now, panda will not precompile Perl 6 code anymore. This will 
introduce unexpected slowness, for instance HTTP::UserAgent now takes 
5.4 seconds to load instead of 0.8 on my machine.


It may now sound like a very bad idea, but I think it's necessary. Panda 
was never doing precompilation very well, and maintaining it as both 
module manager and a precompilation manager was a massive PITA. It's 
been long agreed that precompiled modules are a cache
that should be managed by rakudo itself, just nobody got around to 
implementing it yet :)
Hopefully now that everything in the wild will be slow it will raise 
some awareness of the issue and make someone sit down to it and make it 
happen. Possibly myself.


It may be desired and/or tempting to take the old precompilation logic 
from panda git history
and implement it as an external tool, thus bringing us to the state we 
were in before, just with two tools instead of one. Maybe it's not a bad 
idea, it will surely make life of the end-users a lot less painful, but 
it will still make it seem like the problem is solved and there are more 
pressing matters to attend to before christmas. I don't want that to 
happen, so I'm putting my mixed feelings aside and I won't make it 
happen myself, in the name of raising awareness of the problem.


I hope this won't ruin your development flow too much, but as a certain 
short king^Wprince once said, it's a sacrifice I'm willing to make :)


Hope you have a wonderful day.

xoxo,
tadzik


Re: panda: Should it have an 'uninstall' option?

2015-04-07 Thread Tadeusz Sośnierz

Oh joy, of course I sent it to Tom only instead of everyone. Classic me.


 Forwarded Message 
Subject: Re: panda: Should it have an 'uninstall' option?
Date: Tue, 07 Apr 2015 13:34:15 +0200
From: Tadeusz Sośnierz tadeusz.sosni...@onet.pl
To: Tom Browder tom.brow...@gmail.com

On 07.04.2015 12:54, Tom Browder wrote:

Wouldn't an uninstall option be a good thing for panda?

I don't know how insulated a Perl 6 package is from the rest of the
installed packages, but I remember on more than one occasion wishing
CPAN and Perl 5 packages had an uninstall option when an installation
somehow got corrupted.

Best regards,

~Tom



It's planned: https://github.com/tadzik/panda/issues/99
Planned for a while though, patiently waiting for someone to take a
closer look at it :) But the way panda stores keeps the state of
installed packages is designed in such a way that it should be able to
automatically clean the unneeded dependencies after it uninstalls a
package. So: panda can't do it yet, but it's been my intention all along
for it to be able to.

boost::regards,
tadzik




Re: perl6 hackathon at fpw'14?

2014-06-11 Thread Tadeusz Sośnierz

On 06/11/2014 05:35 PM, Marc Chantreux wrote:

* s-exml (which is about writting a grammar in perl6 or NQP),
   a s-expression based dialect to generate xml:

 (body :lang(fr) :editable
 (div :class(abstract important) s-expr is way more readable and
 editable than xml and more saner than a builder based on nested
 datastructures because
 (ul
 (li i can compile and collapse the structure as the
 longest string as possible)
 (li this dialect is even more readable than the
 equivalent perl6 datastructure)
 (li parentheses are at the right place: it is s easy
 to edit it with a decent editor ('vi for example) )
 (li this is (a :href(http://acmeism.org/) acmeic), i
 really think it's important for a template system)
 )
 )
 )


This looks like fun to me :)



want to help for one of this projets? have your own one in perl6? please
tell me: we'll hack together.



Best regards,
tadzik


Re: Is passing excess parameters while creating object legal?

2014-05-27 Thread Tadeusz Sośnierz

On 05/25/2014 09:50 AM, Kamil Kułaga wrote:

Hi,

My question is about passing parameters to .new method that do not
correspond to any field in class. This example;

use v6;

class PersonalId{
 has Int $.number;
 has Str $.full_name;
}

my Hash $p; #just because i'm scared of pair conversions
$p{number} = 13123123123;
$p{full_name} = John Doe;
$p{age}=64;
$p{shoesize}=44;

say PersonalId.new(|%($p)).perl;
# PersonalId.new(number = 13123123123, full_name = John Doe)

Works perfectly fine but I don't know whether I can rely on that. S12
speaks only about type objects: (It is allowed to pass type objects
that don't correspond to any parent class.)


Hello Kamil,
Why the behaviour above is correct and documented, you may find it 
bug-prone or inconvenient. To address that, I've ported 
MooseX::StrictConstructor to Perl 6[1]. Here's example usage 
demonstrated on a piece of code similar to yours:


use v6;
use ClassX::StrictConstructor;

class PersonalId does ClassX::StrictConstructor {
has Int $.number;
has Str $.full_name;
}

PersonalId.new(number = 7,
   full_name = Edgar Poe,
   yada = 'yada');
# Output:
# The following attributes are not declared for type PersonalId: yada
#  in method new at /yada/yada/StrictConstructor.pm:32
#  in block  at test.pl:9

It may come to your liking :)

Best regards,
Tadeusz Sośnierz


[1] https://github.com/tadzik/ClassX-StrictConstructor


[Announce] Rakudo Perl 6 compiler, Development Release #74 (Adelaide.pm)

2014-03-21 Thread Tadeusz Sośnierz

On behalf of the Rakudo development team, I'm happy to announce the
March 2014 release of Rakudo Perl 6 #74 Adelaide.pm. Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine, the Java Virtual
Machine and the Moar Virtual Machine[^1]. The tarball for this release
is available from http://rakudo.org/downloads/rakudo/.

Please note: This announcement is not for the Rakudo Star
distribution[^2] --- it's announcing a new release of the compiler
only.  For the latest Rakudo Star release, see
http://rakudo.org/downloads/star/.

The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. This time it's the Perl
Mongers group of Adelaide.

Some of the changes in this release are outlined below:

+ Fix for for-loops to be properly lazy
+ uniname, uniprop, and unival implemented on MoarVM backend
+ Numerous Pod parsing and formatting improvements
+ @c as shortcut for @$c, %c as shortcut for %$c
+ list infix reductions no longer flatten
+ Numerous compiler suggestion improvements

These are only some of the changes in this release. For a more
detailed list, see docs/ChangeLog.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on
Parrot, the Perl 6 test suite, MoarVM and the specification.

The following people contributed to this release:

Larry Wall, Alexander Moquin, Elizabeth Mattijsen, lue, Tobias Leich, 
Jonathan Worthington,

Will Coke Coleda, Moritz Lenz, Arne Skjærholt and Reini Urban.

If you would like to contribute, see http://rakudo.org/how-to-help,
ask on the perl6-compi...@perl.org mailing list, or ask on IRC
\#perl6 on freenode.

The next release of Rakudo (#75), is scheduled for April 17, 2014.
A list of the other planned release dates and code names for future
releases is available in the docs/release_guide.pod file. A Rakudo
development release typically occurs a few days (often two) after the
third Tuesday of each month.

On behalf of the development team, I encourage you to enjoy the new release,
try awesome stuff, have the appropriate amount of fun, and get back to us
with feedback.

[^1]: See http://moarvm.org/

[^2]: What's the difference between the Rakudo compiler and the Rakudo
Star distribution?

The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, a module installer, the most recent
incarnation of the Using Perl 6 book, and other software that can
be used with the Rakudo compiler to enhance its utility.  Rakudo Star
is meant for early adopters who wish to explore what's possible with
Rakudo Perl 6 and provide feedback on what works, what doesn't, and
what else they would like to see included in the distribution.



[Announce] Rakudo Star 2014.01

2014-01-31 Thread Tadeusz Sośnierz

# Announce: Rakudo Star Release 2014.01

## A useful, usable, early adopter distribution of Perl 6

On behalf of the Rakudo and Perl 6 development teams, I'm happy to
announce the January 2014 release of Rakudo Star, a useful and usable
distribution of Perl 6. The tarball for the January 2014 release is
available from http://rakudo.org/downloads/star/. A Windows .MSI
version of Rakudo star will usually appear in the downloads area
shortly after the tarball release.

In the Perl 6 world, we make a distinction between the language
(Perl 6) and specific implementations of the language such as
Rakudo Perl. This Star release includes [release 2014.01] of the
[Rakudo Perl 6 compiler], version 5.9.0 of the [Parrot Virtual
Machine], plus various modules, documentation, and other resources
collected from the Perl 6 community.

[release 2014.01]:
https://github.com/rakudo/rakudo/blob/nom/docs/announce/2014.01.md
[Rakudo Perl 6 compiler]: http://github.com/rakudo/rakudo
[Parrot Virtual Machine]: http://parrot.org

Some of the new features added to this release include:

+ The eval sub and method are now spelled EVAL
+ Numeric.narrow to coerce to narrowest type possible
+ Can now supply blocks with multiple arguments as sequence endpoints
+ Method calls and hash/list access on Nil give Nil

This release also contains a range of bug fixes, improvements to error
reporting and better failure modes.

Please note that this release of Rakudo Star does not support the JVM
nor the MoarVM backends from the Rakudo compiler. While the other backends
mostly implement the same features as the Parrot backend, many bits are
still missing, most prominently the native call interface.
We hope to provide a JVM-based and MoarVM-based Rakudo Star releases soon.

There are some key features of Perl 6 that Rakudo Star does not yet
handle appropriately, although they will appear in upcoming releases.
Some of the not-quite-there features include:

  * advanced macros
  * threads and concurrency (in work for the JVM backend)
  * Unicode strings at levels other than codepoints
  * interactive readline that understands Unicode
  * non-blocking I/O
  * much of Synopsis 9 and 11

There is an online resource at http://perl6.org/compilers/features
that lists the known implemented and missing features of Rakudo and
other Perl 6 implementations.

In many places we've tried to make Rakudo smart enough to inform the
programmer that a given feature isn't implemented, but there are many
that we've missed. Bug reports about missing and broken features are
welcomed at rakudo...@perl.org.

See http://perl6.org/ for links to much more information about
Perl 6, including documentation, example code, tutorials, reference
materials, specification documents, and other supporting resources. A
draft of a Perl 6 book is available as docs/UsingPerl6-draft.pdf in
the release tarball.

The development team thanks all of the contributors and sponsors for
making Rakudo Star possible. If you would like to contribute, see
http://rakudo.org/how-to-help, ask on the perl6-compi...@perl.org
mailing list, or join us on IRC #perl6 on freenode.


Re: Panda on Windows

2013-03-20 Thread Tadeusz Sośnierz

On 03/20/2013 10:21 AM, phi...@free.fr wrote:

Hello,

when I type panda on the Windows command line, I get the following message:

D:\users\mepanda
connect failed: A connection attempt failed because the connected party did not 
properly respond after a period of time, or established conn
ection failed because connected host has failed to respond.


Hi,
are you sure that you aren't behind some firewall, or restricting proxy?

Best regards,
Tadeusz Sośnierz



Re: Panda on Windows

2013-03-20 Thread Tadeusz Sośnierz

On 03/20/2013 02:42 PM, phi...@free.fr wrote:

Hi,

which ports should be authorized?

Philippe


Hi,
panda currently connects to port 3000 on feather.perl6.nl. This may 
change in near future; the projects list will probably be kept in git 
somehow, see https://github.com/tadzik/panda/issues/33


Regards,
Tadeusz Sośnierz


Re: Panda on Windows

2013-03-20 Thread Tadeusz Sośnierz

On 03/20/2013 02:18 PM, Patrick R. Michaud wrote:

Out of curiosity, is there a way to get the error message to indicate
what panda was attempting to connect *to*?

connect failed: A connection attempt to somehost.org failed


This would normally happen. Panda does: die Unable to fetch $src; 
($src being the url) if the response code is not satisfying; I suppose 
in this case we have some internal Parrot LWP::UserAgent error leaking 
out. As in GH-33 we're soon dropping the dependency on it, so we'll 
hopefully have better error messages then.


Regards,
Tadeusz Sośnierz



Re: a method with the name of an attribute creates infinite loop

2012-07-13 Thread Tadeusz Sośnierz
On Friday, July 13, 2012 08:18:19 Gabor Szabo wrote:
method add {
   say 'before';
   @.add.push( 42 );

If I recall correctly, calling @.add() is the same as @(self.add). Calling a 
method recursively without ending is bound to go into an infinite loop :)

To avoid that you can call push on the attribute, directly, without going 
through the accessor method:

=== CODE ===
class A {
   has @.add;
   method add {
  say 'before';
  @!add.push( 42 );
  say 'ever after';
   }
}

A.new.add;

Which works without problems:
=== RESULT ===
before
ever after


Kind regards,
Tadeusz Sośnierz


Re: Missing or wrong version of dependency 'src/gen/CORE.setting'

2012-07-12 Thread Tadeusz Sośnierz

On Thu, 12 Jul 2012 13:08:44 +0200, Gabor Szabo ga...@szabgab.com wrote:


I have installed a bunch of modules using Panda, then recompiled
Rakudo and now I get this error:

===SORRY!===
Missing or wrong version of dependency 'src/gen/CORE.setting'


In order to fix this I need to rebuild all the modules, starting by
bootstrapping Panda.
It is ok, I remember 3 modules but I still get this error message and now
I don't remember which else do I need to install.

Would it be possible to include in the error message the name of the
module that caused the problem?

Gabor


I think there's an env variable which lets you trace module loading,  
RAKUDO_MODULE_DEBUG.
Try RAKUDO_MODULE_DEBUG=1 ./your-program and that may tell you what  
exactly is wrong.


--
Tadeusz Sośnierz


Re: Capturing warning

2012-07-12 Thread Tadeusz Sośnierz

On Thu, 12 Jul 2012 13:27:26 +0200, Gabor Szabo ga...@szabgab.com wrote:


Hi,

is there a way to capture warnings in Perl 6 - similar to
$SIG{__WARN__} in Perl 5 ?

Gabor


CONTROL block seems to be the solution.

$ perl6 -e 'warn oh noes; CONTROL { default { say caught: $_ } }'
caught: oh noes

--
Tadeusz Sośnierz


Re: Panda with git:// or https:// ?

2012-06-28 Thread Tadeusz Sośnierz
On Thursday, June 28, 2012 14:32:58 Gabor Szabo wrote:
 In panda all the projects, where there is a source URL, are listed with
 their git:// url except of https://github.com/perlpilot/p6-File-Temp.git
Where is that?

 I am just wondering why, and if it would not be better if that was
 also using git://
That's because it was added to the ecosystem with https:// rather than git://. 
Panda doesn't care, for it just uses the url to tell `git clone` where to get 
the source from.

 Some project have no source URL:
 - Druid
 - GGE
 - HTML::Template
 - Lingua::EN::Numbers::Ordinal
 - Perl6::Literate
 - Tardis
 - Test::Mock
 - Text::CSV
 - Yarn
Those are using the old META.info format, which wanted repo-type and repo-url 
rather than source-url.

 Should the URLs be added? Where?
Should be, aye, in the modules' META.info files. See 
https://github.com/masak/druid/blob/master/META.info for example.

Regards,
Tadeusz Sośnierz


Re: DateTime::Utils failing test - force install with panda?

2012-06-27 Thread Tadeusz Sośnierz
On Wednesday, June 27, 2012 17:20:03 Gabor Szabo wrote:
 Hi,
 
 I was trying to install DateTime::Utils using
 
 panda install DateTime::Utils
 
 but i failed in a test that is currently unrelated to what I wanted to use.
 Can I somehow force install or notest it?

Hi Gabor,
--notest should work, ISTR having a closed ticket about this.

Cheers,
Tadeusz


[Announce] Rakudo 2012.05 MadMongers

2012-05-17 Thread Tadeusz Sośnierz
Announce: Rakudo Perl 6 compiler development release #52 (MadMongers)

On behalf of the Rakudo development team, I'm glad to announce the
May 2012 release of Rakudo Perl #52 MadMongers. Rakudo is an
implementation of Perl 6 on the Parrot Virtual Machine (see 
http://www.parrot.org). The tarball for this release
is available from http://github.com/rakudo/rakudo/downloads.

Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
http://github.com/rakudo/star/downloads.

The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The May 2012 release is
code named after MadMongers.

This release includes a whole lot of changes since the last one, including:

* -I and -M command-line options
* support for non-Int enums
* 'use' now accepts positional arguments and is able to import by tag name
* 'import' now works
* basic support for Version literals
* %*ENV now propagates into subprocesses
* basic implementation of pack and unpack ported from 'ng' branch
* fff flip-flop operator is now implemented, ff has been improved
* various new regex features and improvements

Rakudo now also includes the lib.pm module.

This is only a small peek at the changes in this release. For a more
detailed list, see docs/ChangeLog.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on 
Parrot, the Perl 6 test suite and the specification.

The following people contributed to this release:

Moritz Lenz, Jonathan Worthington, Patrick R. Michaud,
Jonathan Scott Duff, Tadeusz Sośnierz, Carl Masak, Will Coke Coleda,
Marcus Ramberg, kboga, TimToady, Kyle Hasselbacher, Geir Amdal, JimmyZ,
benabik and gfldex.

If you would like to contribute, see http://rakudo.org/how-to-help,
ask on the perl6-compi...@perl.org mailing list, or ask on IRC #perl6
on freenode.

The next release of Rakudo (#53) is scheduled for June 21, 2012. A
list of the other planned release dates and code names for 2012 is
available in the docs/release_guide.pod file. In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release. Parrot releases the third Tuesday of each month.

On behalf of the development team, I encourage you to try the new release.
Have fun, and let us know about your experience.

Kind regards,
Tadeusz Sośnierz

[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?  

The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the Using
Perl 6 book, and other software that can be used with the Rakudo
compiler to enhance its utility.  Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.


Re: Production Ready Perl 6?

2011-11-22 Thread Tadeusz Sośnierz
On Tuesday, November 22, 2011 16:59:52 Wendell Hatcher wrote:
 Are there people using Perl 6 in production at this time? Is Perl 6
 production ready?

http://ttjjss.wordpress.com/2011/08/24/what-is-production-ready/
Kind regards,
-- 
Tadeusz Sośnierz


Announce: Rakudo Perl 6 compiler development release #46 (London)

2011-11-18 Thread Tadeusz Sośnierz
On behalf of the Rakudo development team, I'm happy to announce the
November 2011 release of Rakudo Perl #46 London.  Rakudo is an 
implementation of Perl 6 on the Parrot Virtual Machine (see 
http://www.parrot.org). The tarball for this release
is available from http://github.com/rakudo/rakudo/downloads.

Please note: This announcement is not for the Rakudo Star
distribution[*] -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
http://github.com/rakudo/star/downloads.

The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group.  The November 2011 release is
code named after the London Perl Mongers, organizers of many London Perl
Workshops, including the 2011 edition that took place this month. Over
200 people showed up for this great event, which had some Perl 6 talks
amongst the schedule.

This compiler release is from the latest development branch of Rakudo.
It brings many exciting improvements, but also some regressions compared
to the compiler release shipped with the latest Rakudo Star distribution.
If your primary interest is that your existing code running on Rakudo Perl
continues to work, we suggest sticking with the Rakudo Star distribution
release for a little longer; we are aiming to issue a Rakudo Star based on
this development branch in December. If instead you want to play with the
latest in Rakudo development - including meta-programming and performance
improvements - try this release.

Some of the specific changes and improvements occurring with this
release include:

* Big integer support
* Basic protoregex support with NFA-driven LTM for some declarative
  constructs
* CATCH blocks are now much closer to spec, and thus much more useful
* Improved support for MAIN argument parsing

We are still regressed on a few features just as in the previous
release. These regressions should be rectified in coming releases.

For a more detailed list of changes, see docs/ChangeLog.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on 
Parrot, the Perl 6 test suite and the specification.

The following people contributed to this release:

Jonathan Worthington, Moritz Lenz, Will Coke Coleda, Tadeusz Sośnierz, 
Geoffrey Broadwell, Solomon Foster, Jonathan Scott Duff,
Michael Schroeder, Carl Masak, Geoff Broadwell, not_gerd and coto

If you would like to contribute, see http://rakudo.org/how-to-help,
ask on the perl6-compi...@perl.org mailing list, or ask on IRC #perl6
on freenode.

The next release of Rakudo (#47) is scheduled for December 22, 2011. A
list of the other planned release dates and code names for 2011 is
available in the docs/release_guide.pod file.  In general, Rakudo
development releases are scheduled to occur soon after each Parrot
monthly release.  Parrot releases the third Tuesday of each month.

Have a great deal of fun!


[*] What's the difference between the Rakudo compiler and the Rakudo
Star distribution?  

The Rakudo compiler is a compiler for the Perl 6 language.
Nothing else.

The Rakudo Star distribution is the Rakudo compiler plus a selection
of useful Perl 6 modules, the most recent incarnation of the Using
Perl 6 book, and other software that can be used with the Rakudo
compiler to enchance its utility.  Rakudo Star is meant for early
adopters who wish to explore what's possible with Rakudo Perl 6 and
provide feedback on what works, what doesn't, and what else they
would like to see included in the distribution.

-- 
Tadeusz Sośnierz


Announce: Rakudo Perl 6 compiler development release #44 (Riga)

2011-10-01 Thread Tadeusz Sośnierz
On behalf of the Rakudo development team, I'm happy to announce the
September 2011 release of Rakudo Perl #44 Riga.  Rakudo is an 
implementation of Perl 6 on the Parrot Virtual Machine (see 
http://www.parrot.org). The tarball for this release
is available from http://github.com/rakudo/rakudo/downloads.

Please note: This announcement is not for the Rakudo Star distribution --
it's announcing a new release of the compiler only.  For the latest
Rakudo Star release, see http://github.com/rakudo/star/downloads.

The Rakudo Perl compiler follows a monthly release cycle, with each release
named after a Perl Mongers group. The September 2011 release is code named
after the host city of the YAPC::EU 2011 conference, which included a
very successful Perl 6 track and hackathon.

This is the first compiler release from the latest development branch
of Rakudo. It brings many exciting improvements, but also some
regressions, which we are working on. If your primary interest is that
your existing code running on Rakudo Perl continues to work, we
suggest sticking with the Rakudo Star distribution release for a
little longer. If instead you want to play with the latest in Rakudo
development - including meta-programming and performance improvements
- try this release.

Some of the specific changes and improvements occurring with this
release include:

* numerous speedups
* Int, Num and Str are now far more lightweight
* int/num as attributes are stored compactly in the object body
* meta objects are now much easier to modify
* a Pod parser capable of attaching documentation to objects
* --doc command line option producing formatted documentation
* much more robust handling of infinite list
* basic LoL (List of Lists) support
* :U and :D type modifiers
* improved handling of BEGIN phasers
* protos and multis now conform to the new spec
* improved enum support
* basic 'constant' declarator
* .WHAT and friends as macros
* support for .gist
* run() has been renamed to shell() to conform to current spec
* hyper methods now descend into nested data structures
* basic safe mode (through --seting=SAFE)
* many bug fixes in parametric roles
* a custom BUILD does not suppress default values
* undeclared attributes detected and reported at compile time
* basic support for native int/num types on lexical variables
* a new regex engine

We briefly regress on a few features since the previous release.
Most notably, new regex engine has not implemented proto regexes
yet, and only integer-based enums are available.

For a more detailed list of changes, see docs/ChangeLog.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on 
Parrot, the Perl 6 test suite and the specification.

The following people contributed to this release:
Jonathan Worthington, Moritz Lenz, Patrick R. Michaud, Tadeusz Sośnierz, Will
Coke Coleda, Solomon Foster, Kodi Arfer, Carl Mäsak, Martin Berends, kboga,
Jonathan Scott Duff, Michael Schröder, JD Horelick, TimToady, Arne Skjærholt,
Kyle Hasselbacher, flussence, Dave Whipp, William Orr, Jimmy Zhuo, Andy
Lester, Patrick Abi Salloum, Fitz Elliott, snarkyboojum, Ruslan Zakirov,
Vasily Chekalkin, kristof, Stefan O'Rear, Geoff Broadwell, Martin
Kjeldsen, supernovus, Timothy Totten, Felix Herrmann, Jarrod, mikehh,
Michael Stapelberg, baest, Erik Johansen, bbkr

If you would like to contribute, see http://rakudo.org/how-to-help, ask on
the perl6-compi...@perl.org mailing list, or ask on IRC #perl6 on freenode.

The next release of Rakudo (#45) is scheduled for October 20, 2011.
A list of the other planned release dates and code names for 2011 is
available in the docs/release_guide.pod file.  In general, Rakudo
development releases are scheduled to occur two days after each
Parrot monthly release.  Parrot releases the third Tuesday of each month.

Have fun!

-- 
Tadeusz Sośnierz


Re: Module deprecation in Rakudo install?

2011-08-22 Thread Tadeusz Sośnierz
On Monday, August 22, 2011 15:15:22 Parrot Raiser wrote:
 As I was installing Rakudo-star-2011.07 on Mandriva, I noticed the
 install process grumbling about the inclusion of File::Copy, (and at
 least one other File:: module that flashed by too fast to recognise).
 
 The message stated that the module was deprecated, and the Perl 6
 method should be used.
That's probably my fault. Since Rakudo gained IO.copy() I deprecated copy() in 
File::Copy [0], but there were probably some modules in Star still using it. 
Apologises, and thanks for reporting.

[0] – https://github.com/tadzik/perl6-File-Tools/commit/058d25651

-- 
Tadeusz Sośnierz


Re: Core modules for Perl 6

2011-05-05 Thread Tadeusz Sośnierz
On  3-05-2011 15:03:50, Parrot Raiser wrote:
 Presumably, at some point soon, there will have to be 6-safe versions
 of the modules in the core library, (except for the ones superceded by
 the language itself). Is anybody working on this? If not, has anybody
 produced a dependency tree for the library?

Hello,
The Perl 6 Ecosystem wiki has a page [1] with a list of modules which
turned out to be most wanted along the users and developers. If you put
the ones you need on that list, there's a chance that someone will pick
them up.

Regards

[1]
https://github.com/perl6/ecosystem/wiki/most-wanted:-modules-to-write-port

-- 
Tadeusz Sośnierz


News from the modules' world

2011-04-16 Thread Tadeusz Sośnierz
Hello Perlists and Zebras,

Today was quite a big day for the module ecosystem, and as not everyone
lives on the IRC I feel obliged to announce the changes to the wider
world.

First of all, my fork of the ecosystem repo is now merged into
perl6/ecosystem. What changes does it introduce? If you look closely,
the modules list is now not a list of names and urls, but a list of urls
to some json files. Those, called META.info are now the officia^Wmain,
and modern way of publishing your module to a Perl 6 community. It has
been around for a while now, but mostly as an experimental thing: now it
becomes The Way To Publish Your Modules. Don't hide your excitement!

Of course the http://modules.perl6.org website has been updated to use
the META.list too. If you look closely, you will see that some of the
modules have a nice-looking names now, like Foo::Bar rather than
perl6-Foo-Bar. That's just a side effect of the new infrastructure.

Worried that you haven't touched your project for ages, and it is no
gone forever? No worries: every module which still haven't been updated
to the new spec now lives in a so called SHELTER [1] - every sad module
which doesn't yet have a META.info has been given one: for free! It's
far from perfect, but keeps your module from being forgotten.

Why should you care then? If the Proper Module Name doesn't seem
attractive enough, look at modules.perl6.org again. See the badges? At
the moment of writing this, there are probably three of them. But you
may alredy notice four, or at least four slots. That's right, a new
badge! Everyone who makes his/her module conformant to the new specs [2]
will be awarded with a Cute Panda [3] badge. Panda as in panda, the
module manager [4]. Panda badge means your module is panda-friendly, and
everyone using it to install Perl 6 modules (I don't think there is any
other way at the moment) will be able to fully experience and appreciate
your work. Go for it!

Please look through the new spec [2] and see how do you like it. It's
pretty far from the previous philosophy (whatever you make module
managers will install), but I believe the changes are for the better. If
you disagree, or have some awesome idea, please contribute. Constructive
criticism is very welcome.

TL;DR:
 * There is a new spec for Perl 6 modules [2]
 * Make your module spec-compatibile to achieve fame, glory and
   cheezburgers

Have an appropriate amount of fun!

[1] https://github.com/perl6/ecosystem/tree/master/SHELTER
[2] https://github.com/perl6/ecosystem/blob/master/spec.pod
[3] http://en.wikipedia.org/wiki/File:Panda_Cub_from_Wolong,_Sichuan,_China.JPG
[4] https://github.com/tadzik/Pies

-- 
Tadeusz Sośnierz


Announce: Rakudo Perl 6 compiler development release #37 (BristolBath)

2011-01-20 Thread Tadeusz Sośnierz
Announce: Rakudo Perl 6 compiler development release #37
(BristolBath)

On behalf of the Rakudo development team, I'm happy to announce the
January 2011 release of Rakudo Perl #37 BristolBath.  Rakudo is an 
implementation of Perl 6 on the Parrot Virtual Machine (see 
http://www.parrot.org). The tarball for the January 2011 release
is available from http://github.com/rakudo/rakudo/downloads.

Please note: This announcement is not for the Rakudo Star
distribution -- it's announcing a new release of the compiler only.
For the latest Rakudo Star release, see
http://github.com/rakudo/star/downloads.

The Rakudo Perl compiler follows a monthly release cycle, with each
release named after a Perl Mongers group. The December 2010 release
is code named after Bristol  Bath Perl Mongers group.

Some of the specific changes and improvements occurring with this
release include:

 * faster subroutine calls (type cache)
 * implemented 'handles Rolename' trait
 * 'use Devel::Trace' debugging pragma
 * improved parsing of keyword boundaries
 * faster .comb

For a more detailed list of changes, see docs/ChangeLog.

The development team thanks all of our contributors and sponsors for
making Rakudo Perl possible, as well as those people who worked on 
Parrot, the Perl 6 test suite and the specification.

The following people contributed to this release:

Moritz Lenz, Kodi Arfer, smashz, Jonathan Worthington, Solomon Foster,
Tadeusz Sośnierz, Kyle Hasselbacher, Patrick R. Michaud,
Jonathan Scott Duff, Fitz Elliott, Adrian White, Christoph Otto,
Stefan O'Rear, Michael H. Hind, Vasily Chekalkin and Hongwen Qiu.

If you would like to contribute, see http://rakudo.org/how-to-help,
ask on the perl6-compi...@perl.org mailing list, or ask on IRC #perl6
on freenode.

The next release of Rakudo (#38) is scheduled for February 17, 2011.
A list of the other planned release dates and code names for 2011 is
available in the docs/release_guide.pod file.  In general, Rakudo
development releases are scheduled to occur two days after each
Parrot monthly release.  Parrot releases the third Tuesday of each
month.

Have fun!


The new (proposed) module infrastructure

2011-01-08 Thread Tadeusz Sośnierz
Hello,
Inspired by reading S22 draft, I started building some new module
infrastructure for the Perl 6 ecosystem, described briefly in [1].
To cut the long story short, it allows to easily collect the metadata of
all the modules in the ecosystem, like versions, dependencies etc
without neceserilly cloning the repositories. Plenty of modules have
alredy been adjusted to use the new ideas (includind JSON, NativeCall
(aka Zavolaj), Testing and a few more), but I think the idea is
worthwhile so I ask the module authors to consider adapting your modules
too. If you do, please let me know so I can add them to the list [2] and
test the whole idea in action.

Any words of advice, criticism and ideas about the new ideas are also
very welcome.

Kind regards,
Ted

[1] http://goo.gl/ldFPE
[2] https://github.com/tadzik/ecosystem/blob/master/META.list


Re: Various questions

2010-12-28 Thread Tadeusz Sośnierz
On 29-12-2010 00:32:40, Daniel Carrera wrote:
 Hello,
 
 I have a few miscellaneous questions:
 
 1)  Does anyone know what a Parcel is?

I'm never sure, but it's something like a list :)
 
 2) How do you figure out the length of an array? The scalar function
 is gone. I tried len, length and size without success.
Array.elems is what you seek
 
 3) More generally, is there a way to find out what methods are
 available? I'm thinking of something like @foo.METHODS and it'd give
 me a list of all the methods available in arrays. That would be
 useful.
You were close. That'd be Array.^methods, for example.

Regards,
Ted


Re: Q: Is there a reason why I can't do this?

2010-12-27 Thread Tadeusz Sośnierz
On 27-12-2010 21:46:05, Daniel Carrera wrote:
 Hello,
 
 Looking at the first example in Using Perl6, I have:
 
 if $r1  $r2 {
 %matches{$p1}++;
 } else {
 %matches{$p2}++;
 }
 
 I was thinking that it should be possible to make this more compact, but the
 two ideas I tried didn't work:
 
 # Idea 1 gives: Unable to parse postcircumfix:sym{ }, couldn't find final
 '}'
 %matches{  $r1  $r2 ? $p1 : $p2 }++;
 
 # Idea 2 gives: Unable to parse blockoid, couldn't find final '}'
 $r1  $r2 ? { %matches{$p1}++ } : { %matches{$p2}++ };
 
 
 Is there a way to make something along these lines work?
Yes. In Perl 6 (a ? b : c) became (a ?? b !! c)

Regards,
Ted


New Perl 6 Advent Calendar: call for ideas

2010-11-06 Thread Tadeusz Sośnierz
Hello,
As I accidentally volunteered for managing a list of topics and writers
for this year's Advent Calendar [1], I started to collect some ideas of
things it'd be nice to write about. There's a gist [2] with the list of
things from the top of my head. If you have any ideas, please post them,
bonus points if you could write about it.

Regards,
Ted

[1] http://perl6advent.wordpress.com/
[2] https://gist.github.com/664348


The case of modules

2010-08-06 Thread Tadeusz Sośnierz
Hello,
While writing neutro (a working module installer, while waiting for
proto/pls, see [1]), and wandering around modules listed on
proto.perl6.org, I started wondering about a universal way to handle
installing them. For now, there are a few different approaches:

  - some modules just supply a lib/ (and sometimes t/) directories
  - some supply a makefile
  - some give Configure.pl and Makefile.in

I'm thinking if there's some one, right way [tm] to do stuff, and if
maybe it should be specified. I'm personally for the first approach.
It does not have any external dependencies, and the only needed things
is handling module files and tests. But I started wondering, is this
everything? Besides dependencies (deps.proto seems fine to me) is
anything else actually needed? Could we specify some one, right way, to
prepare modules and to install them?

Kind regards,
Ted


Compiling Perl6 code to bytecode

2010-01-29 Thread Tadeusz Sośnierz
Hello,
I recently got interested in Perl 6, installed Parrot 2.0.0 and Rakudo
2010-01. Running the code works fine:

$ cat hello.pl 
say Hello, world!
$ parrot /usr/lib/parrot/2.0.0/languages/perl6/perl6.pbc hello.pl
Hello, world!

However, compiling the code for later use makes problems:

$ perl6 --target=pir hello.pl  hello.pir
$ parrot /usr/lib/parrot/2.0.0/languages/perl6/perl6.pbc hello.pir
Confused at line 2, near \perl6\\n\n.
in Main (file unknown, line unknown)

I tried to ask for help on #perl6 on freenode, and the following seems
to work with rakudo compiled with --gen-parrot. Is this some known case
of separately used Parrot? Am I doing something wrong?

Kind regards,
Ted