»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend! | Rakudo Star Released!
Set by diakopter on 6 September 2010.
00:05 zostay left 00:06 zostay joined 00:07 simon joined 00:13 xinming left 00:14 Eevee left 00:44 hudnix joined 00:48 F00LI5H is now known as f00li5h 00:56 Eevee joined 01:02 hercynium joined 01:11 Schwern joined
colomon rakudo: my %a; (1..15).map({%a{$_*2} = 1}); (1..10).map({%a{$_*3} = 1}); (1..6).map({%a{$_*6} = 1}); say %a.keys>>.Int.sort.perl 01:11
p6eval rakudo : OUTPUT«()␤»
colomon rakudo: my %a; (1..15).map({%a{$_*2} = 1}); (1..10).map({%a{$_*3} = 1}); (1..6).map({%a{$_*6} = 1}); say %a.keys 01:12
p6eval rakudo : OUTPUT«␤»
colomon rakudo: my %a; (1..15).map({%a{$_*2} = 1}).eager; (1..10).map({%a{$_*3} = 1}).eager; (1..6).map({%a{$_*6} = 1}).eager; say %a.keys>>.Int.sort.perl
p6eval rakudo : OUTPUT«(2, 3, 4, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 26, 27, 28, 30, 36)␤»
colomon rakudo: my %a; (1..15).map({%a{$_*2} = 1}).eager; (1..10).map({%a{$_*3} = 1}).eager; (1..6).map({%a{$_*5} = 1}).eager; say %a.keys>>.Int.sort.perl; say %a.keys.elems 01:13
p6eval rakudo : OUTPUT«(2, 3, 4, 5, 6, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 22, 24, 25, 26, 27, 28, 30)␤22␤»
colomon rakudo: say 2*3*5*7 01:17
p6eval rakudo : OUTPUT«210␤»
01:22 ggoebel left 01:31 Schwern left, meppl joined, starcoder joined
sorear drat, I didn't come back soon enough to continue with jnthn. 01:54
tomorrow!
02:06 alester joined 02:17 estrabd left 02:54 nymacro joined 03:17 risou joined 03:18 perlpilot joined, Limbic_Region joined
Limbic_Region I am sure you have probably seen it - varlogrant.blogspot.com/2010/10/few...-wall.html 03:19
sorear ENEEDSBETTERTITLE 03:21
Limbic_Region Larry Wall On Programming 03:23
sorear That's not a title, that's an entire genre 03:24
Limbic_Region *shrug* 03:25
The questions were all over the map
perlpilot "The Softer Side of Computer Science" ;-)
03:25 meppl left 03:26 meppl joined 03:35 mdxi left 03:37 whiteknight left 03:59 cdarroch left 04:14 tylercurtis joined
sorear hello tylercurtis 04:18
tylercurtis Hi, sorear.
04:18 risou left 04:23 snarkyboojum joined
sorear tylercurtis: I want to use the LLVM unwind mechanism to implement CALLER::<$foo> 04:23
Or more precisely, I want to get rid of the CALLER:: shadow stack, because maintaining it is the most expensive part of sub calls 04:24
snarkyboojum \o/ perl6 hacker types 04:25
sorear ...
today's really embarrasing bug:
niecza: my @foo = [1, 2, 3]; say +@foo 04:26
p6eval niecza 4f60774: OUTPUT«===SORRY!===␤Action method circumfix__S_Bra_Ket not yet implemented at /home/p6eval/niecza/src/Niecza/Actions.pm line 54.␤Attribute (positionals) does not pass the type constraint because: Validation failed for 'ArrayRef[Op]' with value ARRAY(0x7b57878) at
../home/p…
sorear huh, I implemented that nearly a week ago
will need to talk to moritz++
anyways, I made [] and {} flatten in list context 04:27
-oops-
04:29 twik joined 04:33 mdxi joined
tylercurtis sorear: how would you do that? 04:35
sorear tylercurtis: I'm asking you
04:39 twik left
tylercurtis sorear: I don't know. It doesn't seem obvious to me that one can do so with unwind. On the other hand, I am not that familiar with LLVM in general or unwind specifically. 04:45
04:49 perlpilot left 04:51 sftp joined 04:53 Limbic_Region left 04:55 araujo left 05:02 risou joined 05:11 pythonian4000 is now known as pythonian4000afk 05:12 pythonian4000afk is now known as pythonian4000 05:14 pythonian4000 is now known as pythonian4000afk, pythonian4000afk is now known as pythonian4000 05:31 alester left
SpiceMan hmm... class Foo { has $.foo } my $f = Foo.new; $f.foo(1) # too many positional arguments: 2 passed, 1 expected 05:33
what am I missing? :p 05:34
05:34 justatheory left 06:08 Schwern joined
sorear SpiceMan: $f.foo() = 1 06:12
accessors don't take arguments; they return lvalues instead 06:13
SpiceMan oh, I see 06:15
so I need to explicitly create setter methods? 06:17
no, I need to explicitly say is rw :p 06:18
sorear niecza: my $stop = 0; until $stop { $stop = 0; }; say "got here" # wow 06:25
p6eval niecza 4f60774: OUTPUT«(timeout)»
sorear niecza: my $stop = 0; until $stop { $stop = 0; }; say "got here" # wow 06:26
p6eval niecza 4f60774: OUTPUT«(timeout)»
sorear interesting 06:27
this is a regression
that is oct 01 niecza
dalek ecza/master: 1372bcd | sorear++ | / (6 files):
Match.synthetic and a first crack at testing EXPR
06:36
ecza/master: 28fb38b | sorear++ | / (2 files):
Fix [] and {} returning lists
ecza/master: 93ff317 | sorear++ | / (2 files):
Fix until loop miscompilation
06:42 tylercurtis left 06:45 baux joined 06:52 araujo joined 07:02 Schwern left
sorear ok, I've gotten EXPR to stop crashing... this is a good sign 07:03
07:04 mila__ joined 07:05 mila__ is now known as mila 07:08 mila left 07:13 BinGOs left 07:18 szabgab left 07:25 szabgab joined 07:29 BinGOs joined 07:33 alaun left 07:49 Tene left 07:50 _kaare joined, icwiener joined 07:51 molaf joined 07:52 Tene joined, Tene left, Tene joined 07:53 tadzik joined 08:11 nadim joined 08:13 jhuni joined 08:14 tadzik left
moritz_ good morning 08:15
sorear hey moritz_ 08:16
moritz_ forgot to start cron in the chroot where the rebuilds run 08:18
SpiceMan hmm, trying to do Class Foo { for %hash.kv -> $k, $v { has "$k" is ro = $v } } # sadly not working, any pointers? 08:39
SpiceMan has some Moose background
moritz_ 'has' is compile time in Perl 6 08:40
SpiceMan: just use a hash as attribute
SpiceMan was giving HTTP::Status a try. in p5 it exports a bunch of constants, and felt like avoiding that, but thought it would be nice to have $s = HTTP::Status.new; say $s.HTTP_OK; # 200 instead 08:42
moritz_ just write methods 08:43
method HTTP_OK() { 200 }
constants don't work properly in rakudo yet 08:44
you can also do somethiing like
BEGIN { for (a => 1, b => 2).kv -> $k, $v { MyClass.^add_method($k, method () { $v }) } 08:45
]
erm, }
SpiceMan great, I like that :p
SpiceMan gives it a try
08:48 am0c^ joined
moritz_ for now BEGIN doesn't see lexicals, so you might need to declare the hash as 'our' 08:50
SpiceMan I noticed, hehe 08:53
09:06 Ross joined 09:07 Ross left, Ross joined, Ross left, Ross joined 09:09 MayDaniel joined
SpiceMan omg, no wonder p6 is said to be slow 09:13
sorear those people should say rakudo 09:17
SpiceMan I guess me too 09:20
09:28 kjeldahl joined 09:29 pythonian4000 is now known as pythonian4000afk 09:34 timbunce joined 09:38 Chillance joined 09:41 am0c^ left 09:42 wamba joined, Ross left 09:44 dual left
moritz_ SpiceMan: did the .^add_method thing work out? 09:51
10:05 Ross joined, Ross left, Ross joined 10:09 kjeldahl left 10:12 mavrc joined 10:18 kjeldahl joined 10:23 ggoebel joined 10:32 baux left 10:33 MayDaniel left 10:37 pythonian4000afk is now known as pythonian4000
SpiceMan moritz_: not really :/ erxz.com/pb/440?hl=on&submit=Format+it! 10:40
10:42 xinming joined
jnthn o/ 10:48
10:49 MayDaniel joined, icwiener left 10:50 _twitch joined, icwiener joined
jnthn packs for $trip 10:57
11:02 risou_ joined 11:03 pythonian4000 is now known as pythonian4000afk 11:04 risou left 11:06 jhuni left 11:09 pythonian4000afk is now known as pythonian4000 11:14 risou_ left 11:24 kjeldahl left
colomon jnthn: where are you off to? 11:36
jnthn colomon: Going for a few days in England to see some close friends.
colomon sounds fun! 11:37
jnthn Yeah!
First thing after my arrival we go for a roast lunch at a pub. \o/
Certainly fun. :-)
jnthn is looking forward to some lovely food and beers 11:38
jnthn -> shop, bbs
moritz_ SpiceMan: that's weird... running the code add_method code at run time makes it work. Ugh. 11:46
rakudo: class A { }; A.^add_method('foo', method () { 42 }); A.new.foo
p6eval rakudo acce29: ( no output )
moritz_ rakudo: class A { }; A.^add_method('foo', method () { 42 }); say A.new.foo
p6eval rakudo acce29: OUTPUT«42␤» 11:47
moritz_ rakudo: class A { }; BEGIN { A.^add_method('foo', method () { 42 }) }; say A.new.foo
p6eval rakudo acce29: OUTPUT«42␤»
moritz_ huh.
why does it work here, but not in that script?
colomon difference in when BEGIN runs? 11:50
moritz_ notreally 11:51
moritz_ just discovered the -P $max_procs argument to xargs 11:54
12:18 MayDaniel left 12:19 ggoebel left 12:20 zby_home joined 12:22 Ross is now known as Ross|Away 12:26 rhr left 12:33 rhr joined 12:38 zulon joined 12:42 whiteknight joined, baest_ joined 12:43 baest left 12:50 ggoebel joined 12:57 Helios left 12:58 am0c joined 13:04 Helios joined 13:12 dual joined 13:21 Patterner left 13:26 am0c left 13:32 Psyche^ joined, Psyche^ is now known as Patterner, risou joined 13:39 MayDaniel joined 13:54 Axius joined 14:00 Ross|Away is now known as Ross
SpiceMan rakudo: Class A { }; $m = "foo"; A.^add_method( $m, method() { 1 } ); say A.new.foo 14:07
p6eval rakudo acce29: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
jnthn class
Not Class
SpiceMan rakudo: class A { }; $m = "foo"; A.^add_method( $m, method() { 1 } ); say A.new.foo 14:08
p6eval rakudo acce29: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
SpiceMan rakudo: class A { }; my $m = "foo"; A.^add_method( $m, method() { 1 } ); say A.new.foo # my?
p6eval rakudo acce29: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
14:08 mikehh joined
jnthn rakudo: class A { }; my $m = "foo"; A.^add_method( $m, method () { 1 } ); say A.new.foo 14:09
p6eval rakudo acce29: OUTPUT«1␤»
jnthn foo() is always a function call
SpiceMan the problem is the lack of space after method? 14:10
jnthn yes
jnthn -> England, will be muchly offline for a few days. o/ 14:13
SpiceMan have a nice trip 14:26
14:48 zulon left, _twitch left 14:49 _twitch joined 14:55 am0c joined
simon what's a good perl6 book? 14:56
moritz_ github.com/perl6/book/downloads is the best we have - full refund if you don't like it :-) 14:57
simon does that mean that 'git clone' has an inverse? ;P 14:59
moritz_ sure, it's called 'git push' 15:00
simon thanks.
(I meant thanks for the link.)
15:04 Ross is now known as Ross|Away 15:05 am0c left 15:15 hercynium left 15:31 hercynium joined
SpiceMan does this mean that refund == a patch commit; in here ? :p 15:32
moritz_ SpiceMan: refund means he gets his money back 15:35
15:36 hercynium left
SpiceMan I know what refund means, but if 'git push' must push *something* 15:42
s\if//
stupid keyboard
15:45 silug left 15:50 Axius left 15:51 nymacro left 15:54 patspam joined 16:13 tadzik joined
tadzik ~~ 16:13
16:14 wamba left 16:15 wamba joined
s_mosher perl6: sub infix:<T>(|$T) { for ^$T.elems { $T[$_].WHAT.say } }; (1,2) T (1,2) T (1,2) T (1,2); 16:34
p6eval rakudo acce29: OUTPUT«Parcel()␤Parcel()␤List()␤Parcel()␤List()␤Parcel()␤»
..pugs: OUTPUT«*** No compatible multi variant found: "&infix:T"␤ at /tmp/Y5hdaLxcIH line 1, column 59-88␤»
s_mosher hm. are those List()s legit? 16:35
rakudo: sub infix:<T>(|$T) { $T.WHAT.say; for ^$T.elems { $T[$_].perl.say } }; (1,2) T (1,2) T (1,2) T (1,2)
p6eval rakudo acce29: OUTPUT«Capture()␤(1, 2)␤(1, 2)␤Capture()␤(Bool::True, Bool::True)␤(1, 2)␤Capture()␤(Bool::True, Bool::True)␤(1, 2)␤»
moritz_ the Bool::True come from successful say() 16:37
s_mosher oh!
moritz_ rakudo: sub infix:<T>(|$T) { $T.WHAT.say; for ^$T.elems { $T[$_].perl.say }; [+] @($T) }; (1,2) T (1,2) T (1,2) T (1,2)
p6eval rakudo acce29: OUTPUT«Capture()␤(1, 2)␤(1, 2)␤Capture()␤4␤(1, 2)␤Capture()␤3␤(1, 2)␤»
s_mosher rakudo: sub infix:<T>(|$T) { $T.elems.say; [+] @($T) }; (1,2) T (1,2) T (1,2) T (1,2) 16:43
p6eval rakudo acce29: OUTPUT«2␤2␤2␤»
s_mosher rakudo: sub infix:<T>(|$T) { $T.elems.say; [+] @($T) }; ((1,2) T (1,2) T (1,2) T (1,2)).say
p6eval rakudo acce29: OUTPUT«2␤2␤2␤3␤»
16:47 icwiener_ joined 16:50 icwiener left 16:52 meppl left
dalek ecza/master: 638cc46 | sorear++ | test3.pl:
Working version of EXPR test harness
17:06
ecza/master: afb1d26 | sorear++ | / (6 files):
EXPR dependencies go live; add .suppose
17:08 timbunce left
sorear good * #perl6 17:12
17:15 timbunce joined 17:31 Limbic_Region joined 17:52 silug joined 17:56 justatheory joined 17:57 patspam1 joined 17:58 patspam left 18:00 SpiceMan left 18:09 masak joined
masak lol hai, #perl6 18:10
sorear hello masak! 18:11
tadzik masak: o/
masak greetings gentlemen. 18:12
18:13 timbunce left 18:14 rindolf joined 18:17 patspam1 left 18:21 timbunce joined 18:30 rindolf left 18:32 nadim left
dukeleto google-opensource.blogspot.com/2010...-love.html 18:33
18:34 s_mosher left 18:36 nadim joined, MayDaniel left
dalek ecza/master: 8d62cee | sorear++ | / (5 files):
Rework self and $¢ a bit

The parameter to regexes is now named self like in any other method.
  $¢ is a lexical alias created within $~MAIN snippets.
18:36
ecza/master: e7c2875 | sorear++ | / (4 files):
Allow $/ in strings in regexes
masak dukeleto++
dalek ecza/master: 5f8e944 | sorear++ | / (3 files):
Allow $/ in subrule arg lists
dukeleto masak: lots of interest in perl 6 here, I am fielding lots of questions 18:37
sorear dukeleto: What is your relationship to GSoC?
masak dukeleto: that's great news!
dukeleto sorear: i was the org admin for Perl and Parrot the last 2 years, as well as a mentor for the last 3 years 18:38
sorear Under what authority can you post on google-opensource.blogspot.com? 18:39
dukeleto sorear: the spice must flow 18:40
18:47 zby_home left 18:59 timbunce left 19:06 timbunce joined 19:07 _twitch left 19:22 molaf left
masak rakudo: role A { method foo {} }; role B { method foo {} }; role C does A does B {}; say "alive"; C.new 19:32
p6eval rakudo acce29: OUTPUT«alive␤Method 'foo' collides and a resolution must be provided by the class␤ in main program body at line 63␤»
masak the resolution can't be provided by the class, because the class is anonymous and created implicitly by role-to-class punnery.
19:33 MayDaniel joined
masak masak's law of error messages: "Each additional helpful detail in the error message has an equal and opposite exception in which the detail is confusing rather than helpful." 19:34
19:35 risou left
masak obra++ wants 5.14 to improve AST roundtripping! \o/ 19:39
tadzik woosh, #neutro mentioned on twitter 20:10
dalek ecza/master: 0aa0b91 | sorear++ | v6/ (2 files):
Port .nibble to new API
20:11
ecza/master: 6b69b85 | sorear++ | / (4 files):
Improve handling of listiness in regexes
ecza/master: 52b4159 | sorear++ | / (7 files):
Implement fixed-format <after> cases
20:14 am0c joined 20:15 hudnix left 20:16 hudnix joined
Tene dukeleto: where are you? 20:18
20:20 timbunce left, mavrc left
masak wow, I'm glad Yapsi hasn't bitrotted, but I don't remember it being *that* slow... 20:27
20:27 mavrc joined 20:33 zby_home joined 20:38 MayDaniel left 20:44 Ross|Away left 20:49 rgrau_ left, Ross joined
dukeleto Tene: at Google 20:53
masak you're *in* the actual Google? :) 20:54
20:55 bluescreen joined
dalek psi: 0b3160c | masak++ | lib/Yapsi.pm:
[Yapsi] bumped SIC version

Between releases, the SIC version is always the version number of the upcoming release.
20:58
21:04 pythonian4000 is now known as pythonian4000afk
masak what's the relation between TheDamian's "every" and (the conjectural) "each"? 21:04
also, reading www.nntp.perl.org/group/perl.perl6....34271.html , I'm thinking I might try doing Yapsi wihtout first-class junctions. most of those uses look like sugar to me. 21:07
C<my $coefficient where Num & 0..1> -- what does that gain over C<my Num $coefficient where 0..1>? 21:10
lue ohai o/ 21:11
masak lue! \o/ 21:12
S05:501: "With the new C<:ex> (C<:exhaustive>) modifier, the current regex will match every possible way (including overlapping) and return all matches in a list context, or a disjunction of matches in item context."
seems that part of the spec hasn't been reached by the good news of the demise of wantarray and context dependence. 21:13
either that, or I'm overinterpreting that demise.
flussence wouldn't that behave the same as :g ?
masak anyway, I question the usefulness of a disjunction of matches.
flussence: no, because :g never overlaps.
rakudo: $_ = "abababa"; s:g/aba/!!!/; .say 21:14
p6eval rakudo acce29: OUTPUT«!!!b!!!␤»
flussence no, I mean, the list contextishness of it
(did we ever figure out what to do there?)
masak checks 21:15
the semantics of :g doesn't seem to be defined by S05. 21:16
which means... it's like in Perl 5. which means, no junctions.
flussence I recall there being a conversation here exactly because there's no wantarray for :g either...
masak I'll be honest. I don't think junctions belong in the regex machinery. 21:17
colomon flussence: that sounds familiar to me too.
I think it's been causing trouble for moritz_++
masak if you want a disjunction, just prefix the match with 'any'.
colomon +1
masak I'm not foolish enough to make the change, though -- risking the wrath of TheDamian. :) 21:18
masak ⇝ bed 21:21
'night, #perl6
21:21 masak left
tadzik .u ⇝ 21:23
phenny U+21DD RIGHTWARDS SQUIGGLE ARROW (⇝)
21:31 jhuni joined, MayDaniel joined 21:43 wamba left 21:45 jaldhar left 21:46 _jaldhar joined
cognominal 22:02
22:02 mikehh left 22:09 icwiener_ left 22:18 zby_home left 22:19 _kaare left 22:37 rgrau_ joined 22:40 MayDaniel left 22:55 mavrc left 22:56 MayDaniel joined 23:16 Ross left 23:18 MayDaniel left 23:19 felipe left 23:20 hudnix left, hudnix joined 23:22 sftp_ joined, sftp left 23:41 am0c left 23:55 pythonian4000afk is now known as pythonian4000 23:56 ggoebel left 23:58 ggoebel joined