»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by moderator on 4 August 2010.
00:35 melte joined 00:52 Barrabas joined 00:58 alester joined 01:21 DrakeAnubis joined 01:26 Woody2143 joined 01:27 DrakeAnubis left, LaVolta joined 01:39 jaldhar joined 02:10 rwtwrt joined
alester ok, what can I do to help? 02:59
03:01 justatheory joined
lue hm, why are Radians/Degrees/Gradians/Circles given a definition in cheats/constants.pir ? I thought they were part of an Enum already. 03:04
03:05 araujo joined
sorear alester: help what? 03:15
03:23 alester joined 03:31 orafu joined 03:38 MAK__ joined
MAK__ Hi 03:38
sorear Hi
MAK__ I had a small discussion on #parrot yesterday for a silly problem i faced
irclog.perlgeek.de/parrot/2010-08-07#i_2674402 03:39
from there
I was thinking shouldn't rakudo use 'printerr' to print error messages instead of the 'say' statement
Tene MAK__: really, it should use 'warn' for error messages. 03:46
MAK__ ok 03:47
04:06 tadzik joined 04:33 melte joined 04:34 leprevost joined 04:37 NiiHiiL joined 04:43 sea-gull joined
tylercurtis lue: I don't think enums are quite working properly yet in some manner. 04:44
04:50 molaf joined
TiMBuS rakudo: say 1 / 10000000000000000000000000 04:59
p6eval rakudo 6ebba8: OUTPUT«6.28575819193153e-19␤»
TiMBuS rakudo: say 1 / 100000000000000000000000000
p6eval rakudo 6ebba8: OUTPUT«No applicable candidates found to dispatch to for 'infix:<div>'. Available candidates are:␤:(Int $a, Int $b)␤␤ in 'Rat::new' at line 3835:CORE.setting␤ in 'infix:</>' at line 3923:CORE.setting␤ in main program body at line 22:/tmp/QVp_PicjOf␤» 05:00
TiMBuS rakudo: say 100000000000000000000000000.WHAT 05:01
p6eval rakudo 6ebba8: OUTPUT«Int()␤»
TiMBuS ¯\\(°_o)/¯
05:04 envi^home joined
TiMBuS rakudo: say 100000000000000000000000000 05:05
p6eval rakudo 6ebba8: OUTPUT«-2537764290115403776␤»
TiMBuS there we go 05:06
05:20 LaVolta joined 05:28 molaf joined 05:31 masak joined
masak good morning! 05:31
sjohnson masak: :thumbsup: 05:33
masak std: :$<a> 05:41
p6eval std 31912: OUTPUT«ok 00:01 111m␤» 05:42
masak std: rule => 't' 05:45
p6eval std 31912: OUTPUT«ok 00:01 113m␤» 05:46
05:52 Guest23195 joined
masak "Though she looks quite pretty positioned there, she's kind of like my cat who used to sit on my keyboard when I was trying to type!" *lol* rt.perl.org/rt3/Ticket/Display.html?id=77050 06:00
rakudo: my @in = 1..4; my @out := @in.map({$_*=10;}); say @in[1]; 06:03
p6eval rakudo 6ebba8: OUTPUT«2␤»
pugssvn r31922 | masak++ | [S05] fixed copy-pasto 06:06
06:09 gfx joined
masak rakudo: (my @a)[1..*]; say "alive" 06:11
p6eval rakudo 6ebba8: ( no output )
masak locally, 'Segmentation fault'
masak submits rakudobug 06:12
06:27 tylercurtis joined
masak our Str multi Str::pack( Str::Encoding $encoding, Pair *@items ) 06:39
our Str multi Str::pack( Str::Encoding $encoding, Str $template, *@items )
these are the only two mentions of Str::Encoding in the spec.
also, I'm not too happy with the encoding parameter being the first positional in that signature.
thinking of nuking these two variants and only leaving the ones that return a buf8. 06:40
moritz_ scratch those signatures
Pair *@items
typed, slurpy param?
how is that going to work?
masak doesn't know 06:41
masak removes those signatures
they've been in there since 2006 -- added by ajs++
moritz_ is that Aaron Sherman?
masak think so. 06:42
hm -- why does it take a list of pairs? why not just a list of things? isn't that what Perl 5's pack does? 06:43
masak perldocs -f 'pack'
moritz_ has no idea 06:44
06:44 Axius joined
moritz_ geht nochmal schlafen 06:44
sorry, wrong channel :-) 06:45
masak schlafe well. :)
moritz_ will do :-)
masak wow, the 'pack' function is long and wondrous. 06:48
cxreg masak: in perl 6? 06:54
masak in Perl 5 perldoc. 06:56
I'm implementing it in Perl 6 today.
(again) 06:57
TimToady: "I think pack formats should be human readable but compiled to an internal form for efficiency." -- does "human readable" mean "let's do a S05-like revolution on the single-letter names for things"? because I doubt I'd pull that off on my own, and certainly not within the scope of this grant. :) 06:58
06:59 hanekomu joined
masak TimToady: I'm just going to go as close to p5 as possible in Rakudo for now, and then we can evolve the .pack format backed up by working code. 06:59
07:03 Casan joined 07:04 mberends joined
mberends \\o masak 07:05
masak mberends: o/
std: sub foo( *@items where { @items »~~ Pair }) {} 07:18
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing « or » at /tmp/8x78Bdr5Hn line 1:␤------> [32msub foo( *@items where { @items »~~[33m⏏[31m Pair }) {}[0m␤ expecting infix_circumfix_meta_operator␤Parse failed␤FAILED 00:01 117m␤»
masak oh wait.
std: sub foo( *@items where { @items »~~» Pair }) {}
p6eval std 31912: OUTPUT«ok 00:01 117m␤»
pugssvn r31923 | masak++ | [S32/Str] cruft-removal for &pack 07:22
r31923 |
r31923 | - Ditch the encoding bit for now. Users can encode to Str the usual way.
r31923 | - Not sure a typed slurpy parameter is going to fly. Changing to a 'where'
r31923 | clause.
r31923 | - Added TOP rule to grammar, anchoring at start and end of format string.
masak My plan for the day is to study 'perldoc -f pack', grok as much as possible of it, implement as much as possible of it in working code, and update S32/Str with things I learn from that. 07:23
Tene masak: I hear some other languages have very nice binary format handling. Erlang, maybe? Might be nice to look around at other sources. 07:24
masak Tene: thanks for the tip. 07:26
I've heard too that Erlang rocks at binary format handling.
this seems to be it -- www.erlang.org/doc/man/ei.html 07:27
masak will read
ei_x_format("{~a,~i,~d}", "numbers", 12, 3.14159) 07:31
I must say it feels like exactly the same idea as &pack
maybe they just re-invented &pack without realizing it and thought that it was the best thing since sliced bread. 07:32
this one did a better job at explaining Erlang's pack format: www.trapexit.org/How_to_use_ei_to_m...t_programs 07:37
the ease of communication with C seems to be the important part.
07:39 [Coke] joined
Casan I'm experimenting with OO stuff in p6, and have a problem overriding a default constructor. Been reading through s12, but I still can't get it right, I wonder if anyone can see what I'm doing wrong.. there is a pastbin here with the code: pastebin.org/456460 07:49
masak looks
Casan: ok, here's the thing: you're making a .new method as if it were a BUILD submethod. 07:50
Casan: let's go through it step by step.
Casan: a constructor, for example one named .new, is a method which returns a new object.
Casan: that means that the method can't access $!id, because it's not *called* on the new object (because it is the method that creates it, so it doesn't exist when we call it, so self can't be bound to the new object) 07:51
with me so far?
Casan I think, let's continue.
masak next natural question is: how to actually create a new object of a given class?
the answer is SomeClass.bless(*, :attr1(...), :attr2(...)) 07:52
in your case self.bless(*, :$id, :$name)
that's all your .new method need contain.
make sure that's on the last line, so that it gets returned. 07:53
(the 'self' is actually bound to the type object, Student, so it's the same as writing 'Student.bless(...)')
Casan: in some languages, we differ between ordinary methods and "static methods"; the latter are called on a class rather than an instance. 07:54
Casan ohh, so in p6, if you want to override the default constructor, you have to use bless and know additional parts.. I have to admit, I know a little about bless from p5, otherwise I've learned about OO via java and c#, and was hoping that we would abstract away from bless and stuff like that for people not familiar to it.
masak Casan: in Perl, we don't really have that distinction. a type object (such as Student) is just an undefined, unmodifiable instance of Student. 07:55
Casan: in Perl 6, a constructor is any method which does .bless
thus, the default .new is a constructor, and the default .clone is a constructor. 07:57
Casan ok, let me run through your messages for a while, and see if I can apply it into a solution. In my first step I'll just ignore about the real objective of overriding the default constructor, and simply focus on imitating manually what an automatic default constructor would do.
masak Casan: it's actually set up so that the default .new should be enough most of the time. 07:59
Casan: and usually you override BUILD instead to affect how an object is initialized. 08:00
Casan: overriding the default .new is mostly if you want the .new method to have a particular signature. in your case, you get positional parameters instead of the default named parameters.
masak has to go, will be back later today
08:02 wamba joined 08:08 risou_ joined 08:25 hanekomu_ joined 08:27 snearch joined 08:38 darkop joined 08:40 jfried joined 09:09 risou joined
pugssvn r31924 | radus++ | [t/spec] Unfudged test for RT 77072 - @a[*] works as expected now. 09:11
09:15 araujo joined 09:18 Axius joined 09:21 wamba joined 09:27 briang joined 09:29 Alias joined
TiMBuS is bug #77078 valid? doesnt it just segfault because its infinitely creating memory until parrots GC fails 09:41
sorear not valid anymore, no 09:42
09:44 sawyer_ joined
TiMBuS if the * is meant to mean .elems then it needs to be parsed differently or postcircumfix[] needs to have a extra special case added 09:44
09:46 wamba left 09:53 meppl joined 10:29 wamba joined 10:31 azert0x joined 10:33 Alias_ joined 10:43 Alias__ joined
moritz_ good morning 10:52
TiMBuS: it's supposed to detect infinite ranges 10:53
TiMBuS i see 10:54
moritz_ also, segfaulting on trying to iterate infinite lists is not OK 10:55
TiMBuS isnt that a parrot issue though? 10:57
moritz_ yes - but we use RT to track all rakudo bugs, including those caused by parrot 10:59
www.kiffingish.com/2010/03/perl-on-steroids.html
TiMBuS hrm so then, focusing on what I can try to fix: should the infinite slice actually mean @a[1..@a.elems] or should it really mean what it looks like it means? 11:02
moritz_ I know that array assignment detects it 11:04
rakudo: my @a = 1..*; say "alive"; say @a[3];
p6eval rakudo 6ebba8: OUTPUT«alive␤4␤»
moritz_ rakudo: say (1..*).perl
p6eval rakudo 6ebba8: OUTPUT«1..Inf␤»
moritz_ so it likely needs special-casing 11:05
rakudo: my @a = 1..*; my @b = @a; say "alive";
p6eval rakudo 6ebba8: ( no output )
moritz_ curious :-)
TiMBuS yeah i've stumbled into few eager issues like that. i thought the solution was using gather/take blocks but they also eager-fy when using '=' 11:09
moritz_ it needs a lot of tweaking, in a lot of cases 11:14
rakudo: say { a => 1, b => 2}.{*}.WHAT 11:16
p6eval rakudo 6ebba8: OUTPUT«Any()␤»
moritz_ rakudo: say { a => 1, b => 2}.{*}.perl
p6eval rakudo 6ebba8: OUTPUT«Any␤»
11:21 desertm4x joined
TiMBuS p6eval needs updating i guess 11:22
moritz_ somehow I broke all the automatic rebuilds 11:28
hugme: add supernovous to proto 11:31
hugme moritz_: ERROR: Can't add supernovous to proto: 404 Not Found
moritz_ hugme: add supernovus to proto
hugme hugs supernovus. Welcome to proto!
dalek kudo: 7d4a624 | moritz++ | build/PARROT_REVISION:
bump PARROT_REVISION to get Digest::MD5 fix, cosimo++
kudo: 53ee804 | moritz++ | docs/compiler_overview.pod:
[docs] update NQP description in compiler_overview.pod
cono moritz_: github.com/cono/p6-LinkedList any ideas, critic? :)
moritz_ takes a look 11:35
cono: is there a good reason to use the SENTINEL over just a type object? smart-matchability? 11:37
11:38 jferrero joined
cono moritz_: It was () (Nil) value before, masak said that Sentinel would be better 11:43
moritz_ curious :-) 11:46
anyway, I like the module
cono thanks :)
But I don't like name "iterate"
any ideas?
I want another method wich will be return descending list iterator
moritz_ .list
and just return a lazy list 11:47
cono and in descending order?
moritz_ .descending
rakudo: / <[-]> / 11:51
p6eval rakudo fca2d3: OUTPUT«===SORRY!===␤Unsupported use of - as character range;in Perl 6 please use .. at line 22, near "]> /"␤»
11:53 araujo joined
cono moritz_: done ;) 11:55
moritz_: btw, I found a minimal version to reproduce a bug: rt.perl.org/rt3/Public/Bug/Display.html?id=77036 11:56
moritz_ cono++ 11:57
cono Tried to find how to fix it. But lost in "flat" and "eager" methods in pir
moritz_ :-)
that's a tough area
might also be related .Str/.Stringy
11:57 tadzik joined
tadzik morning #perl6 11:58
moritz_ good afternoon tadzik :-)
pugssvn r31925 | moritz++ | [t/spec] test for hash zen slices; RRT #77072
tadzik oh wow, it's afternoon alredy
tadzik--
pugssvn r31926 | moritz++ | [t/spec] switch parse error message recognition to new wording in rx.t
moritz_ (it's 2pm, and I've got up like, one hour ago)
which is fine, attended a wedding yesterday... stretched well into today :-)
tadzik I got up like now, and got to sleep on like 6 AM 11:59
how was the wedding?
cono moritz_: flat returns a Lazy list?
tadzik Yours? ;)
moritz_ tadzik: very nice. Not mine
rakudo: say Date.new('2010-08-27') - Date.today() 12:00
p6eval rakudo fca2d3: OUTPUT«19␤»
moritz_ tadzik: mine is like, in 19 days :-)
tadzik no way! Congratulations!
moritz_ bows
tadzik awesome :)
moritz_ doesn't know what to think of www.perlmonks.org/?node_id=853646 12:01
"we introduce this random multiplier, and then do concatenation instead of math, and end up with... something that looks like a year". huh. 12:02
tadzik I barely get it
moritz_ probably because there's barely sense in there 12:03
tadzik It sounds like this people getting celebrity name, adding few letters, removing a few, changing some of them, summing and multiplying randomly finally getting 9/11 or something 12:04
12:04 molaf joined
moritz_ yes 12:04
rakudo: sub abc($x, $y, $_, $z) { say "$x $y $_ $z"; }; abc(1,2,3,4); 12:06
p6eval rakudo fca2d3: OUTPUT«1 2 3 4␤»
moritz_ has a hard time finding a place to put tests for that
t/spec/S06-signature/ is full of test files for very advanced features 12:07
but has little for simple things like positional and named
oh, there is a positional.t
12:09 MAK__ joined
MAK__ Hi 12:11
moritz_ hi
pugssvn r31927 | moritz++ | [t/spec] test for $_ and $/ as parameter names, RT #77054 12:12
MAK__ Grammar.pm is written in PGE and Actions.pm in NQP
moritz_ no
MAK__ where can I read more documentation about them
moritz_ both are written in NQP-rx
MAK__ ok
moritz_ which now supports grammars
MAK__ ok
moritz_ PGE is being phased out
(I suppose I should update some old documents... :) 12:13
MAK__ Well where can I read more about NQP?
moritz_ github.com/perl6/nqp-rx/#readme
there are also slides from a talk about nqp-rx, by its creator: www.pmichaud.com/2010/pres/yapcna-n...start.html 12:14
12:14 pmurias joined
tadzik that's nicely explained in pmichaud++ talk 12:14
:)
TiMBuS maybe that metaperl entry is using metahumor? :/
tadzik too slow
moritz_ std: my Nil $x; 12:15
p6eval std 31912: OUTPUT«ok 00:01 113m␤»
MAK__ is this talk by pmichaud recorded somewhere? 12:17
moritz_ MAK__: if so, it's probably not yet online 12:18
tadzik yep, but I don't think it's published yet
moritz_ it was held last Thursday
12:20 whiteknight joined
moritz_ rakudo: say {a => 1, b=> 2}.{*}.perl 12:20
p6eval rakudo fca2d3: OUTPUT«(1, 2)␤»
moritz_ rakudo: say {a => 1, b=> 2}.{*}.perl
p6eval rakudo fca2d3: OUTPUT«(1, 2)␤»
moritz_ rakudo: say {a => 1, b=> 2}.{*}.perl
p6eval rakudo fca2d3: OUTPUT«(1, 2)␤»
12:31 Axius joined
moritz_ std: i 12:34
p6eval std 31912: OUTPUT«ok 00:01 111m␤» 12:35
pugssvn r31928 | moritz++ | [t/spec] test for RT #76994, bare i is the complex unit
12:35 tjyang joined 12:38 tjyang joined
TiMBuS rakudo: Seq.new(1..*).eager.[2]; 12:44
p6eval rakudo fca2d3: ( no output )
TiMBuS uh
tadzik ENOSAY
TiMBuS rakudo: say Seq.new(1..*).eager.[2]; 12:45
p6eval rakudo fca2d3: ( no output )
TiMBuS hrm
rakudo: say (1..*).Seq.eager.[2]; #maybe? 12:46
p6eval rakudo fca2d3: ( no output )
moritz_ why do you .eager an infinite list? 12:52
TiMBuS it's what array assignment does 12:54
tadzik that's why You don't assign infinite list to an array 12:56
TiMBuS but
rakudo: my @a = (1..*); @a[3].say
p6eval rakudo 53ee80: OUTPUT«4␤»
tadzik star: my @a = (1..*); my @b = @a; say 'alive' 12:57
but
star: my @a = (1..*); my @b := @a; say 'alive'
p6eval star 2010.07: ( no output )
tadzik or
p6eval star 2010.07: OUTPUT«alive␤»
tadzik star: my @a = (1..*); my $b = @a; say 'alive'
p6eval star 2010.07: OUTPUT«alive␤»
TiMBuS well the spec says 'list assignment is eager unless it's infinite' 12:59
tadzik but these are arrays 13:00
star: my @a = (1..*); say @a.WHAT
p6eval star 2010.07: OUTPUT«Array()␤»
TiMBuS im just using the spec terminology here.. 13:01
List Assignment: my @a = @something;
tadzik hrm 13:02
pugssvn r31929 | qiuhw++ | [t/spec] typo fix.
TiMBuS im also aware that knowing if something is infinite is a little difficult (impossible?)
isnt it the halting problem. like if you have a loop in a gather 13:03
tadzik what's wrong with a loop in a gather? 13:05
allbery_b hm, I thought the basic assumption was that involvement of Whatever or a closure was enough to dtrip "possibly infinite" and switch to laziness 13:06
so up to the point that it's concrete and finite it's eager, but hit Whatever or a closure and it becomes lazy at that point 13:07
this was dfiscussed a couple weeks back IIRC
TiMBuS s07 needs to update that then 13:08
13:11 risou_ joined 13:23 clintongormley joined 13:25 Visitor99 joined
Visitor99 rakudo: my %h = <a 1 b 2 c 3>; %h.perl; 13:29
p6eval rakudo 53ee80: ( no output )
tadzik ENOSAY
TiMBuS i think its broken atm
oh
tadzik rakudo: my %h = <a 1 b 2 c 3>; %h.perl.say
p6eval rakudo 53ee80: OUTPUT«{"c" => "3", "a" => "1", "b" => "2"}␤»
TiMBuS my bad
Visitor99 ok, thanks tadzik 13:30
13:30 araujo joined
Visitor99 i thought that perl implied a "say" 13:30
tadzik Visitor99: REPL prints, evalbot does not
13:32 araujo joined
Visitor99 mmm, now everything can use a $ sigil, scalars and hashes too.... 13:42
TiMBuS yes, but they work differently for assignment 13:43
tadzik nothing new
Visitor99 rakudo: my %h = <a 1 b 2 c 3>; %h.push(<a> => 10); %h.perl.say; my $s = %h{'a'}; say $s[0]; $s.WHAT.say; $s.push(100); $s.perl.say;
p6eval rakudo 53ee80: OUTPUT«{"a" => ["1", 10], "b" => "2", "c" => "3"}␤1␤Array()␤["1", 10, 100]␤»
Visitor99 timbus, how's that?
TiMBuS they don't make a copy 13:44
rakudo: my @a = (1,2,3,4); my $b = @a; $b[2] = 'foo'; say ~@a; 13:45
p6eval rakudo 53ee80: OUTPUT«1 2 foo 4␤»
13:46 Axius joined
Visitor99 ahh, they are just references.. 13:46
rakudo: my Hash $h; $h{'a'}=1; $h.perl.say; 13:47
p6eval rakudo 53ee80: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!storage␤ in 'at_key' at line 4751:CORE.setting␤ in 'Any::postcircumfix:<{ }>' at line 1704:CORE.setting␤ in main program body at line 1␤»
TiMBuS that one is a known bug 13:48
13:53 LaVolta joined 13:57 slavik joined
tadzik Visitor99: everything is a reference now 13:59
Visitor99 so, what if you want to make a copy? 14:00
14:01 Axius joined
Visitor99 rakudo: my @a = (1,2,3); my @b = @a; @b[0] = 10; @a.perl.say; 14:02
p6eval rakudo 53ee80: OUTPUT«[1, 2, 3]␤»
Visitor99 rakudo: my @a = (1,2,3); my $b = @a; $b[0] = 10; @a.perl.say;
p6eval rakudo 53ee80: OUTPUT«[10, 2, 3]␤»
Visitor99 ahh, i see
tadzik :) 14:03
14:13 tadzik joined 14:14 ambs joined
ambs hello 14:14
[Coke] phenny: tell masak about www.tcl.tk/man/tcl8.5/TclCmd/binary.htm 14:15
phenny [Coke]: I'll pass that on when masak is around.
ambs how can I do this in Perl 6? push @{$foo{bar}}, 5;
my atempt on push @{%foo{'bar'}}, 5; was not successful :D
tadzik cmadsen: $foo<bar>.push(5)
ambs hmms... why $? 14:16
tadzik why not? :)
it's just an object, method do not change due to a sigil
* methods
14:16 copumpkin joined
ambs hmms.... 14:16
14:17 copumpkin left
ambs to access a value on the hash, don't you use %foo{'bar'} ? 14:17
tadzik You don't need no dereferencing in Perl 6
ambs: You do
ambs and why $foo<bar>, then?
tadzik or %foo<bar>
it's the same
<> autoquotes
{bar} is not the same as {'bar'} anymore
ambs yes, but you wrote $foo<bar> that was my doubt :)
tadzik yep
$foo<bar> == $foo{'bar'} 14:18
it's just faster to type :)
ambs no, no, no. My question is about $ vs % :D
tadzik which makes everyone like it
well, that makes no difference really
star: my %hash = foo => 1, bar => 2; my $other = %hash; %hash.WHAT.say; $other.WHAT.say
p6eval star 2010.07: OUTPUT«Hash()␤Hash()␤»
tadzik see? Both are hashes
ambs ok, but if I declared an object with 'has %!foo' then I should use %, right? 14:19
tadzik yep
ambs ok :)
ty
tadzik but, if you have %foo, you extract values with %foo<bar>, not $foo<bar>
sigils do not change in Perl 6 14:20
ambs: have You read Perl 5 to 6 today? :)
ambs no, I've read half of the Perl 6 book
but without writing some code, that is worth nothing :)
tadzik true
ambs but the book is needing much work :) or I need a coffee. 14:23
moritz_ probably both :-) 14:28
14:29 unik joined
unik hi #perl6 ! 14:29
I was wandering if anyone remembers the multi+count bug ? 14:30
moritz_ which one? 14:31
unik rakudo: multi sub dbl { $_ * $_ }; my $a = 0 .. 10; my $b = $a.map: &dbl; say ~$b;
p6eval rakudo 53ee80: OUTPUT«Method 'count' not found for invocant of class 'Perl6MultiSub'␤ in 'Any::join' at line 1␤ in 'List::Str' at line 2547:CORE.setting␤ in main program body at line 6581:CORE.setting␤»
unik rakudo: sub dbl { $_ * $_ }; my $a = 0 .. 10; my $b = $a.map: &dbl; say ~$b;
p6eval rakudo 53ee80: OUTPUT«␤»
unik weird 14:34
moritz_ $_ is not set in a sub 14:35
unik it's more than one bug here...
moritz_ and you're doing item assignment
unik isn't map supposed to get return value of callback?
oh 14:36
moritz_ rakudo: sub dbl { $_ * $_ }; say dbl().perl
p6eval rakudo 53ee80: OUTPUT«Use of uninitialized value in numeric context␤Use of uninitialized value in numeric context␤0␤»
unik changing them to $^a worked
rakudo: sub dbl { $^a * $^a }; my $a = 0 .. 10; my $b = $a.map: &dbl; say ~$b;
p6eval rakudo 53ee80: OUTPUT«0 1 4 9 16 25 36 49 64 81 100␤»
14:37 masak joined
masak \\o/ 14:37
phenny masak: 14:15Z <[Coke]> tell masak about www.tcl.tk/man/tcl8.5/TclCmd/binary.htm
moritz_ o/
masak \\o
tadzik \\o
masak hokay, tcl does binary stuff too.
unik i thought $_ could be used in that snippet 14:38
moritz_ rakudo: use MONKEY_TYPING; augment class Perl6MultiSub { method count { 1 } }; multi dbl($x) { $x**2}; say ~(1..5).map: &dbl
p6eval rakudo 53ee80: OUTPUT«===SORRY!===␤Can't augment class that doesn't exist␤»
masak ooh! 14:39
moritz_ don't even think about it 14:41
14:42 dual joined
masak frettled: a solution to the N-queen problem is just a matter of increasing/decreasing the number of nested for loops. (unless you want to get fancy with constraint propagation, something which is probably wise as N goes up) 14:44
frettled: and now I got momentarily distracted by en.wikipedia.org/wiki/Eight_queens_puzzle and en.wikipedia.org/wiki/Eight_queens_..._solutions :) 14:45
ambs does Perl 6 follow the usual module hierarchy like class Module::Class { ?
tadzik yep
If I understood You correctly :)
ambs and if so, when declaring a variable this type, I use the full qualitfied name, Module::Class $var; 14:46
moritz_ and like in p5, nested namespaces are not related to inheritance
ambs tadzik: heheh, no problem if you don't, just trying to experiment things.
moritz_: yes, I know :)
unik do p5 -style signature-less subs imply "no arguments" in p6? 14:48
moritz_ unik: if they contain no mention of @_ and %_, yes 14:49
unik oh, silly me, I got it now
ambs huh.. it worked? O:-) 14:50
14:51 tomaw joined
ambs afks& 14:52
pugssvn r31930 | moritz++ | [t/spec] improve tests for RT #70007 14:55
r31931 | moritz++ | [t/spec] some rakudo unfudges
unik rakudo: multi sub dbl { $^a * $^a }; my $a = 0 .. 10; my $b = $a.map: { dbl($^a); }; say ~$a; say ~$b; # that works 14:56
p6eval rakudo 53ee80: OUTPUT«0 1 2 3 4 5 6 7 8 9 10␤0 1 4 9 16 25 36 49 64 81 100␤»
unik rakudo: multi sub dbl { $^a * $^a }; my $a = 0 .. 10; my $b = $a.map: &dbl; say ~$a; say ~$b; # that doesn't 14:57
p6eval rakudo 53ee80: OUTPUT«0 1 2 3 4 5 6 7 8 9 10␤Method 'count' not found for invocant of class 'Perl6MultiSub'␤ in 'Any::join' at line 1␤ in 'List::Str' at line 2547:CORE.setting␤ in main program body at line 6581:CORE.setting␤»
jdv79 any particular reason parrot supports open()ing pipes and rakudo doesn't?
14:58 ktne joined
moritz_ jdv79: it seems nobody was aware that parrot supports it, and got around to porting it to rakudo 14:58
jdv79: at least I wasn't
ktne are perl6 performance issues related to rakudo specifically or to parrot? 14:59
moritz_ both
15:04 hillu joined
moritz_ rakudo: my $m = Perl6::Grammar.parse('my $x = 0;'); say $m.perl 15:04
p6eval rakudo 53ee80: OUTPUT«Method 'perl' not found for invocant of class 'Regex;Match'␤ in main program body at line 22:/tmp/PcWWbihHoN␤»
15:05 mberends joined
masak mberends: home already? 15:07
mberends \\o from .nl :)
moritz_ o/
mberends masak: yes, about 1.5 hours ago. I had some @chores to do, now it's time for a nice cup of tea. 15:08
masak tadzik: I've started fixing up Text::CSV. test files 01 to 03 pass; there are failures in 04, 05 and 06.
tadzik masak: good 15:09
masak mberends: we had a jolly old time on the way to Bologna. after a brief disagreement with Tomtom, we ended up on the Really Scenic Route. :)
tadzik is thinking about launching something like prototesters, showing which modules actually work
masak mberends: I'm now sitting outside my room where they plug in the vacuum cleaners, charging my laptop. 15:10
tadzik that would encourage people to 1) write tests 2) make their modules pass those tests
masak tadzik: shall we write it together? in my mind, that project is called "Emmentaler", and runs on top of pls.
moritz_ tadzik: I've attended a talk about cpantesters... seems that their infrastructure would be flexible enough to adopt it to our needs
masak moritz_: ooh!
moritz_ at least their server-side structure
masak that's great news.
tadzik masak: sure
hmm 15:11
avar or, just use cpantesters?
moritz_ they have something called "metabase", which is a database that collects facts
tadzik oh, curiosity: why are we not on CPAN?
but rather launching our own solutions
moritz_ avar: still involves writing a custom client, probably
tadzik: it's not so easy to use CPAN - but I'd appreciate any progress in that area 15:12
allbery_b because CPAN needs to be extended to know what is perl5 and what is perl6, I think
tadzik masak: seen my @perl6-users module post?
masak no. looking now.
moritz_ allbery_b: right; a good first step would be to make PAUSE ignore any p6 modules, and have our own index
avar It's easy, just 1. upload tarballs with p6 modules 2. have a META.* in them with no_index 3. Add custom CPAN 2.0 META data to specify prereqs / p6 specific stuff 4. Write a custom indexes (like proto, but use the cpan) 5. monkeypatch tools to work with it. 15:13
moritz_: There's already a facility to ignore p6 modules (see 2)
allbery_b "easy"
tadzik I'm pretty happy with our own proto
moritz_ avar: it exists, but it's a bit fragile, if you ask me
avar How is it fragile? 15:14
masak tadzik: you're looking for some regularity in the module universe? I can't say I blame you :)
moritz_ avar: last I looked it required no_index for each file to be ignored
tadzik masak: what do You mean?
masak tadzik: that's my reaction from reading your email.
tadzik masak: so are you positive or negative? 15:15
moritz_ avar: or is there a broader no_index thing?
tadzik I can't say I blame you -- ETOOCRYPTIC
masak tadzik: I can tell you how I think it should be done. but I'll be careful to phrase it as my opinions, and not as law.
avar moritz_: no, you can no_index on a per-directory basis. But in any case it's easy either way with tools like dzil that write the meta for you.
szbalint arrived $home :)
moritz_ \\o szbalint
tadzik masak: well, there is no law now, not any I'm aware of
avar see the no_index here: cpansearch.perl.org/src/AVAR/Hailo-.../META.json
masak tadzik: there are many ways to do it now because (1) there's inertia in the system and some or using old solutions, and (2) people have different needs
szbalint o/ 15:16
15:16 slavik joined
masak tadzik: I think github.com/masak/proto/blob/master/PIONEER still summarizes my position fairly well. 15:16
tadzik: and ufo summarizes my position on Makefile.in and Configure :) 15:17
moritz_ avar: that's much better than before
tadzik masak: I see
masak tadzik: I think that makes me an ultra-liberal, except for the Makefile.in/Configure part. 15:18
tadzik so the only thing neutro does not do now is Configure && make
avar moritz_: acc. to cpan.uwinnipeg.ca/htdocs/CPAN-Meta/...ersion_1_0 it has been like that since november 2006
tadzik masak: personally, I think this should be avoided
moritz_ avar: wow
tadzik masak: but this looks like a nice standard specification 15:19
ambs %!translations{$language}.push($translation); --> Method 'push' not found for invocant of class '' -- help? :)
tadzik masak: how about instead of Configure.pl/Makefile there will be some Build.pm perl 6 module, with a build() sub? No external app launching, no make dependency
and then installing lib/ as usual
masak tadzik: ok, let's first define terms here. 15:20
tadzik: there's the developer, and there's the user. they have slightly different needs.
the developer wants to be able to run make, run the tests, test install, etc.
the user just wants to run the module, as simply as possible.
tadzik: when you say 'there will be some Build.pm', are you talking about for the developer, or for the user? 15:21
tadzik masak: I was thinking about the developer. Now this approach means that the user will not install the module by himself
he will just pls . and the developer's work will do the best
* rest
masak: as looking at CPAN, some people tend to avoid Extuils::MakeMaker in favor of Module::Build 15:22
masak tadzik: as a developer, ufo mostly fills my needs. it means I don't have to put a Build.pm or a Configure.pm in my repository.
ambs Module::Build has some nice details
tadzik which seems like they don't like make, they don't really want not really portable, not-Perl solution
masak ergh, dangling modifier :)
tadzik yep, ufo makes makefile which can do what's needed 15:23
masak tadzik: there's been talk of a "pure-Perl6" make-replacing solution lately, including at YAPC::EU.
tadzik masak: so Your point is that ufo fullfils the developers and the users needs? 15:24
masak tadzik: but people have been trying to replace make for the past 15 years or so, and not succeeded yet.
tadzik: no, my point is that I wrote it to fulfill *my* needs, and it does :)
tadzik I see :)
masak tadzik: perhaps others' too
tadzik well, but let's look at the module management for a while again
masak I see the last 5 emails on the p6u list were about modules... :) 15:25
tadzik now we have no installing by hand, just a manager which does everything what's good for the use
masak ok, "module management" is the user installing/upgrading modules and their dependencies, yes?
tadzik r
yep
I'd even go for removing
masak removing is tricky. but sure. 15:26
tadzik What I was always missing in cpan was the lack of ability to: Install module with lots of deps, then remove this module and have the deps automagically removed
I've been thinking about this, in terms of neutro, and I figured out it'll be damn hard, if not impossible, to manage modules installed by something else 15:27
masak yes.
to do what you want, you have to have complete control over module installation. 15:28
tadzik I remember one of my first PM meetings, when I said "well, there's no easy way to remove modules" mongers said "oh, they're not big"
yep
which is, to say it delicately, risky
risky to assume and risky to force it 15:29
but I still thing this is a nice thing and it'd be nice to have
avar that's easy if you just convert the modules to packages installed by your package manager
TiMBuS could you not include a way to convert modules+deps into a ^ beaten 15:30
tadzik yep, that's how it usually ends now
in Linux distros at least
so there's another question, if comprehensive module management is really worth the effort 15:31
avar no?
tadzik and back to some old things I said: You say, masak, people are unable to replace make for 15 years or so. But make is about building mostly, and I doubt if Perl modules really need a build system 15:32
make is easy to use, yes, like ufo shows
slavik tadzik, they might if they have to link to native code or compiled to native code.
but what's the argument? 15:33
tadzik But I don't think relying on make in the potential Perl module installer is such a good thing
slavik masak: have you had any experience with the automatic package builders that would create distro specific packages (rpm/deb) from CPAN?
tadzik well, I'm just thinking aloud, provoking you guys to some discussion
masak tadzik: it's the little things I like about make. such as, when I do 'make test' and a .pm file is newer than its corresponding .pir file, it rebuilds the .pir file for me first.
tadzik: I could probably make a Perl 6 tool that did that, and never use make again :) 15:34
tadzik so that's nice for the developer
masak slavik: no, no experience.
slavik masak: k
tadzik but in terms of installing modules, it's mostly 1) download the fresh tarball 2) build everything from the beginning
slavik masak: why would you want to re-implement make?
masak tadzik: yes, I suspect such things are nice for the developer. nowadays I have Makefiles which make me not need to set PERL6LIB. (I usually end up doing that anyway, though) 15:35
slavik tadzik: I disagree on those steps :)
tadzik slavik: why so? :)
masak slavik: it was just an idea. :) I'm not sure I will. but experience seems to show it would help Windows Perl 6 developers, since nmake is so different from GNU make.
slavik tadzik: what about modules depending on other modules? do you want to blindly get them and build them, too no matter what?
tadzik slavik: no, checking deps occurs before building 15:36
I ommited that in those steps, aye
slavik tadzik: then why not just use make?
tadzik: even FreeBSD's ports system uses make
ambs star: my %a; %a<foo>.push(3); 15:37
tadzik slavik: for it's not quite portable. That's just another external app needed
p6eval star 2010.07: OUTPUT«Method 'push' not found for invocant of class ''␤ in main program body at line 22:/tmp/k8UE5LAD5o␤»
moritz_ blogs.perl.org/users/alberto_simoes...rnoon.html fwiw ambs++ re-formulated his review of my talk after private discussion, for which I'm very grateful
tadzik slavik: I have nothing against it, but sitting here on #perl6 shows me that many Perl devs use Windows
ambs any hint on how to fix the above code? :)
slavik tadzik: consider that most (almost all) retail (brick and mortar) systems come with windows. 15:38
ambs: I don't think you can push things onto a hash
moritz_ ambs: %a<foo> //= []; before the push line is a common work-around
tadzik ambs: %a<foo> is not an array
moritz_ ambs: we should have most of the framework in place to implement that kind of autovivification, it just hasn't happened yet
ambs moritz_: ok, so will use the work-around for now 15:39
masak ambs: do you mean %a.push( foo => 3 ) ?
hm, probably not :)
ambs masak: no, I wanted %a<foo> to have an array reference (push @{$a{foo}}, 3 #perl5) 15:40
slavik ambs: %a<foo> = []; ?
moritz_ rakudo: my %h; %h.push('a' => 3); say %h.perl; %h.push('a' => 5); say %h.perl
p6eval rakudo 53ee80: OUTPUT«{"a" => 3}␤{"a" => [3, 5]}␤»
moritz_ Hash.push is implemented, but not what ambs wants 15:41
ambs right.
15:41 Axius joined
masak ambs: (%a<foo> //= []).push(3) is what I usually end up doing these days. 15:43
ambs masak: yes, that's what moritz_ said. implementing it :)
and it works :)
moritz_ \\o/
masak :)
ambs ;) 15:44
masak moritz_ said on the line before. if I have room enough on the same line, I tend to do it with the parens.
pugssvn r31932 | moritz++ | [perl6.org] link to mx-declare emacs stuff, avar++
15:44 justatheory joined 15:45 azert0x_ joined, pmurias joined
ambs moritz++ # for the emacs stuff as well :) 15:45
is there any option to .perl to make it pretty print? 4 lines of dump is not really legible ;) 15:49
15:49 Axius_ joined
moritz_ no 15:49
I thought maybe a $*PERL_INDENT contextual 15:50
if set, enables pretty-printing, and indents that many spaces
(conjectural spec pondering, not working atm)
15:51 desertm4x joined
ambs ok. /me crosses the eyes. 15:51
pmurias ruoso: hi 15:55
tadzik masak: so, we end up staying with make? 15:57
masak tadzik: again, you're looking for directions, and I have none to give.
tadzik: I'm hoping someone picks up a torch and leads the way. :)
tadzik masak: oh, I have a point 15:58
let's keep the scripts in bin/ like modules in lib/
so proto/pls/whatever will know what to instal
moritz_ and tests in t/
tadzik yes, but that's alredy common 15:59
pmurias moritz_: that doesn't seem a very elegant solution
ambs when there is a spec for how modules should be shipped, let us know :)
tadzik ambs: there is, masak++ wrote one
github.com/masak/proto/blob/master/PIONEER
moritz_ pmurias: what would you prefer?
tadzik masak: mind me menioning bin/ there?
masak yes, but the "should" in that spec is "do whatever you want!"
tadzik masak: oh, there's also no mention to lib/ 16:00
"do whatever you want, but remember we're not obliged to run it then :P"
masak tadzik: I'm afraid I don't really see the big point of bin/ yet.
pmurias moritz_: a sane default
moritz_ masak: how would proto install ufo?
masak tadzik: lib/ should probably be in PIONEER, yes.
16:00 mdxi joined
moritz_ pmurias: "sane" depends on use case 16:01
tadzik masak: I can write it
masak moritz_: ufo has its own Makefile, so pls would default to it.
tadzik masak: how about ufo?
oh, moritz was faster
16:01 xlh joined
moritz_ masak: speaking of which... i'd like to add a 'Makefile' target to ufo generated makefiles that rebuilds it 16:01
tadzik masak: so when there's make, we run make install rather than installing lib/?
masak moritz_: I'm disinclined to make the Makefile generated by ufo dependent on ufo... 16:02
tadzik: that's always seemed sane to me.
tadzik a'right
masak tadzik: in general, defaulting to the build/install mechanisms we recognize and can handle.
tadzik masak: how about the bin/? 16:03
moritz_ masak: ok; thought you might have a reason to reject
16:03 mac| joined
masak tadzik: I'm afraid I don't really see the big point of bin/ yet. 16:03
mac| hiho #p6!
tadzik few modules supply scripts
pmurias moritz_: plus there seems to be more ways of formating code differently (see the list of options to perltidy)
tadzik mac|: o/
masak: let me find some to prove my point, hold on
masak: gotcha! Yapsi! 16:04
moritz_ pmurias: and then we have to ask ourselves how much of that belongs into the built-in .perl method
masak tadzik: ok. Yapsi. no Makefile.in, no Makefile. good.
ambs (weird, this is working too easily)
tadzik masak: also, I was thinking about writing a runnable, P6 based file_find binary to use in scripts e.g. 16:05
bin/ would be nice here
masak tadzik: pls takes it, generates the Makefile ufo would have generated, and promptly installs it. there's talk about eliminating the Makefile and just doing it all in Perl 6.
pmurias moritz_: the output of the .perl method is implementation specific
masak tadzik: sorry, you still haven't explained bin/ in a way that makes me understand what it's for.
moritz_ I know
tadzik masak: pls takes what, installing binary?
masak what? no. 16:06
tadzik masak: it's for modules installing not only modules, but applications
masak what does that even mean?
tadzik like Yapsi is an application
masak no, it's a project.
with a module.
the module can be installed.
just like any module.
tadzik Web frameworks tend to supply a scripts bootstraping apps, controllers etc
moritz_ masak: some modules come with executable scripts. bin/ would be a directory that makes it easy to mark files as being scripts-to-be-installed-in-$PATH
masak oh!
ok. I buy that. 16:07
tadzik moritz_++
that's my point
moritz_ for example on windows you can't look at the executable bit
masak reluctantly.
tadzik++
moritz_ because they don't have such a thing
masak I guess I can live with bin/ufo and bin/yapsi
tadzik whew. Thanks moritz_, I think I've never explained this eventually ;)
masak: yes!
masak and then they end up in the path when they're installed.
tadzik so while we have .perl6/lib, there can be .perl6/bin
masak tadzik: just to show my support, I will now change ufo and yapsi to be that way.
tadzik and while we are warning about lacking proper PERL6LIB, we can warn about lack of proper PATH 16:08
masak: great
masak: let me menion that in PIONEER
masak tadzik: let me know if you discover any other scripts like that, and I'll see if I can't get them moved to bin/
tadzik: sure, go ahead.
tadzik: make sure you make it a suggestion, and not a requirement.
tadzik: dangle the it-just-works-during-install flag somehow. :)
tadzik masak: sure :) 16:09
masak tadzik++
moritz_ our specs will be "if you put scripts into bin/, we install them for you", not "put scripts into bin/"
masak we're on the same wavelength now :)
moritz_ and we should adapt the shebang line on unixoid systems
masak for those bin files? 16:10
ambs yes
moritz_ yes
masak that would have to be just another recommendation. "consider putting a shebang line..."
ambs (check if they have a sheband, and that that shebang is perl6, if so, adapt to the correct perl6 path -- JMHO)
moritz_ well, the author doesn't know the path of the perl6 binary in advance 16:11
ambs moritz_: that's why the install system should adapt the path
tadzik masak: wklej.org/id/374229/ ok?
moritz_ aye
16:12 risou joined
masak tadzik: looks fine. 16:12
tadzik commiting
masak tadzik: there we go. both ufo and yapsi pushed to have a bin/ dir. 16:14
tadzik gitpush'd to proto
yayay
time to fix neutro now
masak: so what about prototesters? 16:15
16:15 macroron joined
moritz_ moritz.faui2k3.org/gallery/pisa/ # the few Pisa pictures I found worth publishing 16:15
tadzik thinks about writing a blogpost summarizing PIONEER
masak tadzik: you mean Emmentaler? the pieces are all there, they just have to be assembled. see my emmentaler repo on github for some very early planning.
tadzik: do it! write a blog post. 16:16
tadzik oh, great :)
ambs more photos: ambs.perl-hackers.net/photos/ye2010/
do we have any Test::Something available? 16:17
moritz_ ambs: Test.pm is shipped with Rakudo
masak moritz_: who's the statue woman?
moritz_ ambs: and iirc ingy wrote TestML
tadzik ambs: there is also Test::Mock in proto
moritz_ masak: she's called "OH NOEZ" 16:18
dalek psi: e4ed4ab | masak++ | (2 files):
moved yapsi -> bin/yapsi
tadzik :D
masak moritz_: lol!
ambs hmms, proto isn't been substituted by pls? or I got it wrong from pmichaud talk?
tadzik ambs: proto is the idea, with plenty of implementations
masak moritz_: perfect for some talk some time.
tadzik ...I think
ambs ok 16:19
tadzik ambs: from which I'm afraid only neutro is working
masak tadzik: no, proto was the first installer I wrote.
ambs still in my beginning on writing one of my perl5 modules in perl6 - github.com/ambs/Biblio-Thesaurus-6
tadzik masak: but the modules are still on proto.perl6.org, and I think proto is now a synonym for CPAN for us, no?
masak tadzik: pls is the second. it's done, but not sufficiently tried out and not sufficiently well packaged to completely replace proto.
tadzik Module available in proto
masak tadzik: that was never the idea.
tadzik oh
I've misunderstood then 16:20
masak please use modules.perl6.org :/
tadzik ok, pardon
masak some people like making subdomain names out of my internal never-meant-to-be-public project names.
:)
tadzik :)
like proto.perl6.org?
masak cf u4x.perl6.org...
moritz_ some people install permanent redirects to the properl domain names
tadzik masak: so PIONEER is sort of a standard for making Perl 6 modules? 16:21
masak tadzik: NO!
tadzik :(
I don't get it then
masak it's just meant to be a reassuring document for people who can't live without standards.
tadzik oh
ambs LOL 16:22
masak I. Don't. Make. The. Law.
moritz_ it's the "how do write a module that will work fine with proto/pls" document
tadzik You're allergic to the work 'standard', a'nt You masak?
masak a tiddle bittle.
tadzik sounds sane
ambs too early for that, but how to add a module to modules.perl6.org?
masak ambs: there's a file in the pls branch of the proto repo...
moritz_ called poc-projects.list or so 16:23
masak it's called poc-projects.list
(but that will change, as will its location)
"poc" stands for "proof-of-concept", which is the stage pls is currently stuck at.
pending someone's tuits.
maybe I should make a ROADMAP.
moritz_ hopes he can get some web-based submission thing up and running
ambs ok, I'll ask later (no idea where that branch is, no idea how to specify a branch on git, yet, and too early to put this module in the index)
tadzik moritz_: maybe a hugme plugin?
masak ambs: github.com/masak/proto/blob/pls/poc...jects.list 16:24
moritz_ tadzik: maybe
16:24 PacoLinux joined
moritz_ tadzik: as an option, not as the sole possiblity 16:24
tadzik moritz_: sure
ambs btw, smash made a very simple perl6doc.org. who knows if this shouldn't be linked from somewhere.
masak tadzik: re "fixed pull conflicts", may I recommend the excellent command 'git pull --rebase' next time? 16:25
ambs: according to me, that's not Perl 6 documentation, that's Rakudo documentation.
tadzik masak: oh, I was missing that thing
[Coke] regarding the discussions about make not being portable - I am pretty sure it works everywhere rakudo does atm.
(including windows)
masak ambs: I tried telling smash this. not sure he understood what I meant.
moritz_ [Coke]: which project?
ambs masak: probably. don't talk to him for some time. 16:26
masak [Coke]: then you should have a chat with jnthn, who tried to make pls work on Windows.
moritz_ masak: I think it's meant to be a prototype environment, to be filled with "real" Perl 6 docs
masak ambs: I met him last week.
moritz_: oh, I see.
ambs masak: yes, I know :P
masak right :) 16:27
ambs was there too :P
[Coke] masak: "I can't write portable makefiles" NEQ "make isn't portable" 16:28
masak [Coke]: you should definitely tell jnthn that.
I'm not the one on Windows, see?
[Coke] I just hate to see effort put into replacing something servicable when there is so much other places for effort to be expended. (not that effort is fungible) I also don't wish to repeat ant. 16:29
masak me neither.
though both Python and Ruby seem to have made their own make replacements.
so there seems to be *some* reason to.
[Coke] masak: once I have free time again, I can try pls on windows, sure. 16:30
ambs in any case, I think Schwern had much more problems with ExtUtils::Makefile than 'someone' with Module::Build.
[Coke] masak: yes, because everyone has NIH syndrome. =-)
pugssvn r31933 | pmichaud++ | [t/spec]: Spectest for rakudo fix in 6ebba8 commit. 16:31
[Coke] but I've had this same talk with folks on parrot, and we have dist utils there. So perhaps I should let this go.
ambs :)
masak [Coke]: does it have to be NIH? can't there be genuine advantages to having a Ruby build tool written in Ruby, for example?
ambs [Coke]: btw, do not forget to vote O:-)
tea time 16:32
[Coke] drops it. 16:33
ambs: I have a whole week left to do that, thanks.
ambs :) 16:35
ambs gets back to Perl 6 16:43
constructors are polymorphic? (can I have two new methods with different signatures?) 16:45
masak sure.
tadzik sure
masak just declare them 'multi method'
tadzik slow again
ambs ty :)
masak with the new not-yet-implemented-in-Rakudo spec about proto and multi methods, you'll even be able to dispatch to the default new method, if it's the narrowest match. 16:46
ambs what does it mean self.bless(* ... )? 16:47
I mean, the asterisk 16:48
moritz_ it means "default representation"
masak ...which is p6opaque 16:49
moritz_ for now.
masak right.
ambs sorry for being annoying. If you want me to shut up, I'll do it. -- what I'm doing wrong here? pastebin.com/RazfVYxi 16:53
tadzik I don't think accessors are present before bless 16:54
ambs $self.term? 16:55
masak they are, but they belong to the type object.
tadzik Wouldn't it be self.bless(*, term => $term, def-language => $def-language)?
masak and you're not allowed to change the attributes of the type object.
tadzik: yes indeed.
tadzik yay, I remembered
masak tadzik++
ambs tadzik, probably, but I was not understanding that type of line on the perl6 document 16:56
tadzik ambs: it's not quite different from Perl 5 here, yep?
masak ambs: one calls MyClass.new, right? so $.term = $term would try to change MyClass.term, which is disallowed.
ambs tadzik: now, no. But the example uses :$callback and :@depedencies that, while I've read about them, are not yet working on my head.
masak ambs: :$callback means :callback($callback) 16:57
tadzik yes
masak or callback => $callback
it's just sugar.
ambs yes, that means.. yes, that
I know, as I've said, I read that :) but not yet really working on my head :)
masak give it some time. 16:58
ambs nods
masak "I also think that compact classes should be able to express their serialization in pack form if asked for it with .packformat or some such." -- TimToady in S32/Str about pack. 16:59
I like this idea.
it's sort of &pack meets OO. 17:00
ambs still not working properly - pastebin.com/jB9seqw6
masak ambs: huh.
ambs: trying to reproduce that.
ambs: works here. 17:01
ambs: there must be something in the code you didn't post causing that. 17:02
ambs commenting code
masak or something other than your code, such as a faulty Rakudo.
ambs it should be rakudo star (of course, things could get mad during build) 17:03
masak I'm running bleed. not much I can do about that.
ambs :)
masak might be something that got fixed.
ambs let me try to install bleed 17:04
masak given what you posted, my bet was on the 'multi' keyword.
but that doesn't seem to be it.
ambs removed the multi, works
well, I can create a constructor not named new, and forget the multi for now. 17:06
tadzik ambs: erm, You declared 2-argument new, but You're using named parameters 17:08
masak I'm leaning towards "has been fixed since Star", then.
tadzik: he's using named arguments, which is fine even with positional parameters.
tadzik oh, ok
ambs (good)
masak yes, I was surprised too that that works. :) 17:09
pmurias [Coke]: isn't there a pmake?
masak right about when jnthn++ implemented it :)
ambs hmms, with rakudo star I think I've used perl Configure.pl --prefix=/opt/rakudo, but probably I am wrong :-\\ 17:12
masak &pack in fascinating, because it lies just at the intersection of binary data and character strings. it has a slightly forbidden feel to it. 17:18
take this specifier, for example: 17:20
A A text (ASCII) string, will be space padded.
what happens if you send it a Unicode string with non-ASCII characters?
runtime error?
oh, and 17:21
I An unsigned integer value.
can you send an Int to that?
is there an upper limit of the size of Int you can send in?
there's a limit on S, which is always exactly 16 bits wide. 17:22
f A single‐precision float in the native format. 17:23
ditto d. I have no idea how to get at 'the native format'. maybe I should ask #parrot.
ambs does rakudo support already a record separator? ($/...) 17:24
masak std: $RS 17:25
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $RS is not predeclared at /tmp/tYbO4o87nL line 1:␤------> [32m$RS[33m⏏[31m<EOL>[0m␤Check failed␤FAILED 00:01 112m␤»
masak oh well.
ambs: from S28:
$/ $RS $*IN.input_record_separator()
that is, the former two have been superseded by the latter.
17:25 xinming joined
ambs masak: thanks :) 17:26
masak you'll find other superseded variables in S28, too.
ambs after setting it, $file.lines does what I expect? :D
masak tias 17:27
if not, submit a rakudobug.
rakudo: say lines
p6eval rakudo 53ee80: OUTPUT«Land der Berge, Land am Strome,Land der Äcker, Land der Dome,Land der Hämmer, zukunftsreich!Heimat bist du großer Söhne,Volk, begnadet für das Schöne,vielgerühmtes Österreich,vielgerühmtes Österreich!Heiß umfehdet, wild umstrittenliegst dem Erdteil du inmitten,einem starken 17:28
..Herzen …
masak rakudo: say +lines
p6eval rakudo 53ee80: OUTPUT«23␤»
tadzik what's that?
masak tadzik: Austrian national anthem.
tadzik nice
ambs :-|
masak rakudo: $*IN.input_record_separator = "Land"; say +lines
ambs crazy people
p6eval rakudo 53ee80: OUTPUT«Method 'input_record_separator' not found for invocant of class 'IO'␤ in main program body at line 22:/tmp/8Tt4WngKVF␤»
masak ambs: seems NYI. 17:29
ambs :-|
masak well volunteered!
was I too early? :)
ambs if I knew where to loot at
look* 17:30
well, need to prepare the bag for vacations. later :) 17:32
tadzik masak: so, are we playing with Emmentaller? 17:37
masak tadzik: let's set a date and time for it. today I'm still working on GSoC stuff.
tadzik: do you have a feather account? 17:38
tadzik masak: I have plenty of time, feel free to choose what suits You best
masak: nah
masak tadzik: ask Juerd++ for one by email. it'll help.
tadzik masak: shall I point You and the project as the argumentation? 17:39
masak works for me.
tadzik a'right
…what is feather actually? Some big server for Perl 6-related stuff? 17:40
masak it's a server for diverse Perl 6 projects, admin'd by Juerd++.
tadzik masak: oh, CSV tests look failing for me 17:41
masak all of them? 17:42
tadzik 04..06
17:42 araujo joined
masak oh, that's what I have too. 17:42
tadzik 8 subtests
ok then
masak I figured now that I've gotten some of them working... someone may beat me to fixing the rest. :)
it's probably simple bitrot stuff.
tadzik masak: oh, You might want to update ufo README. ABC does not use Human Technology anymore 17:44
masak tadzik: noted. will update. 17:49
pushed. 17:55
tadzik masak++ 17:57
17:57 lue joined
lue hello o/ 17:57
tadzik \\o 18:00
masak: duh. Module installer has to figure out by itself whether to use Perl 5 or Perl 6 to run Configure.pl? 18:01
masak tadzik: are you saying there are still projects out there using a Perl 5 Configure.pl? 18:07
tadzik masak: No idea
masak then I'm not sure I understand the question. 18:09
tadzik Then I'm sure they all use Perl 6 18:10
oh, some modules define no install target in Makefile, that has to be checked
masak again, the same rule applies.
if the project defines something, use that. 18:11
tadzik yep
masak otherwise, do something default.
18:14 Axius_ joined 18:18 desertm4x joined
lue what if there is only a Makefile and someone is using Windows ? 18:19
(for the module installer) 18:20
masak lue: good question. I'd run the Makefile.
and fail to install if it doesn't work. 18:21
18:21 desertm4x joined
masak explicitly provided things trump platform-dependent workarounds. or something. 18:21
18:23 x3nU joined 18:25 Packetknife joined, araujo joined 18:26 Packetknife joined
desertm4x Is there a way to check whether a string and a certain token within a grammar match? I have written a small grammar and I would like to test some of the tokens separately to find the errors I have made. 18:32
masak desertm4x: say ?("this is my string" ~~ / ^ <MyGrammar::mytoken> $ /) 18:33
moritz_ except it doesn't work in rakudo 18:34
what runs now is
MyGrammar.parse($string, :rule<mytoken>);
masak oh. right. moritz_++
moritz_ masak: and <MyGrammar::mytoken> will only work for 'our token mytoken' or so
masak makes sense. 18:36
desertm4x Thanks, it works. :-)
18:46 Axius__ joined 18:59 hanekomu joined 19:04 itz joined 19:07 hanekomu joined
moritz_ phenny: tell MAK__ www.presentingperl.org/yn2010/not-quite-perl/ # a wee bit older, but should still apply 19:20
phenny moritz_: I'll pass that on when MAK__ is around.
19:49 ethel joined 20:00 Packetknife joined 20:12 smash joined
smash hello everyone 20:12
tadzik o/ 20:13
20:14 briang left 20:26 masak joined
masak just had mozzarella di bufala 20:27
highly recommended.
20:28 molaf joined
tadzik masak: what's that? And btw, what's Juerd's mail? 20:35
masak tadzik: see juerd.nl/site.plp/ 20:36
tadzik: have you tried ordinary mozzarella? the one out of cow milk.
tadzik masak: yeah, I know it 20:37
masak: these are really #'s?
masak aye :)
tadzik :D
catch
catchy *
masak says so when you hover on them.
tadzik: well, buffalo mozzarella is what cow milk mozzarella aspires to be. 20:38
tadzik yeah, it just thought there is a trap around ;)
20:39 azert0x joined 20:53 snearch joined 20:57 whiteknight joined 21:08 briang joined, briang left
cono rakudo: class A { my @!e; } 21:28
p6eval rakudo 53ee80: OUTPUT«Lexical 'self' not found␤ in main program body at line 22:/tmp/86wHIP37CR␤»
cono std: class A { my @!e; }
p6eval std 31912: OUTPUT«ok 00:01 113m␤»
21:34 Guest23195 left
frettled phenny: tell masak The N-queen problem is not a matter of increasing/decreasing the number of nested loops, as you don't know the value of N. N may be -12, 0, 1, 6, 8, 11, and a proper solution has no special-case code for normal values (it is usually deemed acceptable to have a cut-off and say that there are zero solutions for N ≤ 0). 21:34
phenny frettled: I'll pass that on when masak is around.
21:34 azert0x joined 21:41 wamba joined 21:46 azert0x joined
sorear um, -12? 22:00
22:05 pmurias joined 22:09 fod joined
gfldex rakudo: say //.WHAT; 22:11
p6eval rakudo 53ee80: OUTPUT«===SORRY!===␤Null regex not allowed at line 22, near ".WHAT;"␤»
gfldex rakudo: say /a/.WHAT; 22:12
p6eval rakudo 53ee80: OUTPUT«Regex()␤»
22:19 pjcj joined
gfldex std: my $re = "abc"; $re.subst(/*/, '.*', :g); say $re; 22:21
p6eval std 31912: OUTPUT«[31m===[0mSORRY![31m===[0m␤Quantifier quantifies nothing at /tmp/lQRfwGOSeu line 1:␤------> [32mmy $re = "abc"; $re.subst(/*[33m⏏[31m/, '.*', :g); say $re;[0m␤Check failed␤FAILED 00:01 118m␤» 22:22
gfldex std: my $re = "abc"; $re.subst(/'*'/, '.*', :g); say $re;
p6eval std 31912: OUTPUT«ok 00:01 118m␤»
gfldex rekudo: my $re = "abc"; $re.subst(/'*'/, '.*', :g); say $re;
hmm ... 22:23
sorear rakudo: my $re = "abc"; $re.subst(/'*'/, '.*', :g); say $re; 22:24
p6eval rakudo 53ee80: OUTPUT«abc␤»
sorear there is no literal '*' in $re
so of course nothing changes
gfldex i dont got any output from p6eval, what made me hmm 22:25
avuserow you misspelled rakudo
gfldex :D
well, silence is gold i suppose 22:26
avuserow rakudo: (1,1, *+* ... *)[^20].perl.say
p6eval rakudo 53ee80: OUTPUT«(1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765)␤»
avuserow rakudo: (1,1, *+* .. *)[^20].perl.say
p6eval rakudo 53ee80: OUTPUT«(1, 1, { ... }, "_block114", "_block115", "_block116", "_block117", "_block118", "_block119", "_block120", "_block121", "_block122", "_block123", "_block124", "_block125", "_block126", "_block127", "_block128", "_block129", "_block130")␤» 22:27
avuserow rakudo: (0,1, *+* ... *)[^20].perl.say
p6eval rakudo 53ee80: OUTPUT«(0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181)␤»
avuserow rakudo: (0,1, *+* ... *)[20].perl.say
p6eval rakudo 53ee80: OUTPUT«6765␤»
avuserow rakudo: (2,2, *** ... *)[20].perl.say
p6eval rakudo 53ee80: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "* ... *)[2"␤» 22:28
avuserow rakudo: (2,2, * * * ... *)[20].perl.say
p6eval rakudo 53ee80: OUTPUT«Inf␤»
avuserow rakudo: (2,2, * * * ... *)[10].perl.say
p6eval rakudo 53ee80: OUTPUT«6.1897001964269e+26␤»
avuserow rakudo: (2,2, * * * ... *)[3].perl.say
p6eval rakudo 53ee80: OUTPUT«8␤»
avuserow rakudo: (2,2, * * * ... *)[^10].perl.say 22:29
p6eval rakudo 53ee80: OUTPUT«(2, 2, 4, 8, 32, 256, 8192, 2097152, 17179869184, 3.6028797018964e+16)␤»
avuserow rakudo: (1, * * 2 ... *)[^10].perl.say 22:30
p6eval rakudo 53ee80: OUTPUT«(1, 2, 4, 8, 16, 32, 64, 128, 256, 512)␤»
22:50 ashleydev joined 22:59 sandra_f joined
gfldex how do i say [^abc] in a P6 regex? 23:05
tadzik <-[abc]> 23:06
timdemkowsky hey guys 23:11
tadzik o/ 23:12
23:13 thowe joined
sorear std: / <.++> / # What does this mean? 23:17
p6eval std 31912: OUTPUT«ok 00:01 114m␤»
23:20 Synn joined 23:31 Actium joined
sorear rakudo: / <.++> / 23:32
p6eval rakudo 53ee80: OUTPUT«===SORRY!===␤Confused at line 22, near "/ <.++> /"␤»
Actium hey fellas, i'm messing around with rakudo * and think I just found a bug. rakudo.org says to check with you guys, before filing an official bug-report. would ne1 be willing to give me a little help? 23:34
avuserow Actium: sure, what's your bug? 23:36
Actium much appreciated :)
just three little lines of code. i'll try and explain it real quick. 23:37
i defined an array with static types. when printing the array concatenated to sth else, im getting a really weird error. when i dont use static types or dont concatenate it, it works flawlessly. 23:38
sorear Arrays with static types don't work yet. 23:39
Actium ahh. okay.
good to know, thank you very much.
so i assume it's not necessary to file a bug report for this?
sorear no 23:43
it's been done already
(incidentally, this is what item #3 on the "known missing features" list of the R* announce means) 23:44
Actium oops. that explains why i didnt find it on the bugtracker. 23:45
huf rakudo: say "\\nabc\\n" ~~ m/ <ws>* 'abc' /; say "alive" 23:47
p6eval rakudo 53ee80: ( no output )
huf is this known? what is this? :)
Actium i suppose that's what happen's when one's so perl6-horny that he stops reading as soon as he stumbled upon the download link ... :D
sorear huf: the * quantifier is greedy, and <ws> can match an infinite number of times. So it does. 23:48
Actium well. thanks again and a good night to the europeans (including me) / good morning to the americans :) 23:49
huf ooh
23:59 Psyche^ joined