»ö« 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!
Set by moderator on 26 July 2010.
00:01 gabiruh joined 00:08 Bucciarati joined
ingy rakudo: class C { has $.h }; say C.new(h=>'v').perl 00:17
p6eval rakudo 9808d7: OUTPUT«C.new(h => "v")␤»
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C.new(h=>'v').m 00:18
p6eval rakudo 9808d7: OUTPUT«C.new(h => "v")␤»
00:20 whee joined
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C().m 00:20
p6eval rakudo 9808d7: OUTPUT«Could not find sub &C␤ in main program body at line 22:/tmp/YzGyxeqMBj␤»
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C.m 00:21
p6eval rakudo 9808d7: OUTPUT«C␤»
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C.m(:h('v'))
jnthn -> sleep
p6eval rakudo 9808d7: OUTPUT«C␤»
ingy nite jnthn!
whee is p6eval source available somewhere for running elsewhere? 00:22
ingy what is :foo() ?
I'm wondering how to set :actions and :rule on a parser object before calling .parse() 00:24
Tene ingy: those are arguments to .parse 00:25
00:28 ruoso joined
ingy Tene: yeah I know... I was just wondering why they begin with ':' 00:48
Tene ingy: named arguments 00:49
00:49 masonkramer joined
ingy ok 00:49
00:49 mikelifeguard left, Eddward joined
Tene I wonder if you can use .assuming on methods... 00:49
sorear sure 00:50
methods are just subs
whee: the source is available, it's in misc/p6eval in the pugs repo 00:51
whee: if you want to run it elsewhere, you probably will need help from moritz
ingy Tene: so is .parse a "class" method? or is there some instance?
sorear there's no difference in Perl 6 00:52
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C.new().m
p6eval rakudo 9808d7: OUTPUT«C.new(h => Any)␤»
sorear every class is an instance of itself
ingy rakudo: class C { has $.h; method m() { say $.perl } }; C.m
p6eval rakudo 9808d7: OUTPUT«C␤»
whee sorear: that sounds like a challenge ;) 00:53
ingy is that a bug then?
sorear ingy: no
C is a perfectly good instance of C
you can call any method in class C on C itself
ingy why does it .perl different? 00:54
00:54 bjarneh joined
Tene rakudo: my @a = 1..10; my &b = @a.pick.assuming(:repl); say &b(5).perl; 00:54
p6eval rakudo 9808d7: OUTPUT«Method 'assuming' not found for invocant of class 'Integer'␤ in main program body at line 22:/tmp/__25n3Fn0W␤»
tylercurtis ingy: Because .perl generally gives you something you can eval to get the original.
PerlJam rakudo: class X {}; say X.WHAT; say X.perl
p6eval rakudo 9808d7: OUTPUT«X()␤X␤»
ingy rakudo: class X {}; say X.WHAT; say X.perl; say X.new().perl 00:55
p6eval rakudo 9808d7: OUTPUT«X()␤X␤X.new()␤»
ingy I'm not sure I get it, but it's no big deal 00:56
Tene ingy: the class object is an undefined prototype. It has no storage, and therefore no attributes.
ingy Tene: so it's not really an object of itself? 01:01
rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C; C.h = 3; say $c.perl 01:02
01:02 tyru joined
p6eval rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h␤ in main program body at line 22:/tmp/chNB1qAqId␤» 01:02
ingy heh
PerlJam tylercurtis: use classify(~*) instead of classify({$_}) (golf is fun :)
ingy rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C.new; C.h = 3; say $c.perl 01:03
p6eval rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h␤ in main program body at line 22:/tmp/BeWfs1vOSn␤»
ingy grr
rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C; $c.h = 3; say $c.perl
p6eval rakudo 9808d7: OUTPUT«Type objects are abstract and have no attributes, but you tried to access $!h␤ in main program body at line 22:/tmp/xRfHrbaKa6␤»
ingy rakudo: class C { has $.h; method m() { say $.perl } }; my $c = C.new; $c.h = 3; say $c.perl
p6eval rakudo 9808d7: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/qKlvdMyBh3␤»
Tene has $.h is rw;
ingy rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new; $c.h = 3; say $c.perl 01:04
p6eval rakudo 9808d7: OUTPUT«C.new(h => 3)␤»
Tene or initialize it, .new(:h(3))
ingy that's interesting
rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(:h(3); say $c.perl 01:05
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
ingy rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(:h(3)); say $c.perl
p6eval rakudo 9808d7: OUTPUT«C.new(h => 3)␤»
ingy rakudo: class C { has $.h is rw; method m() { say $.perl } }; my $c = C.new(h=>3); say $c.perl
p6eval rakudo 9808d7: OUTPUT«C.new(h => 3)␤»
ingy => wins :P
ingy golfs 01:06
tylercurtis PerlJam++ 01:10
PerlJam tylercurtis: and I *think* that a bare slurp will do the same as slurp(@*ARGS || die)
so, if you don't mind the slight semantic change ... 01:11
tylercurtis PerlJam: slurp() appears to require an argument.
Eddward Please forgive a stupid question, but what does 'PersonsName++' mean? I'm guessing it's a compliment? 01:14
PerlJam Hmm. I coulda sworn slurp was like lines
Eddward: karma. yes, it's a compliment.
tylercurtis karma PerlJam # presumably one of the bots keeps track of karma. 01:15
PerlJam yeah, but I never remember which one :)
Eddward thanks, I was just wondering.
tylercurtis And I guess that's not the incantation to find out. :) 01:16
Eddward I've seen it in blog posts and other places too.
PerlJam dalek: karma pmichaud 01:17
hugme: karma pmichaud
oh well
tylercurtis PerlJam: it appears to be specced to slurp $*ARGFILES by default. multi slurp (IO $fh = $*ARGFILES, Bool :$bin = False, Str :$enc = "Unicode", --> Str|Buf ) 01:18
01:21 masonkramer joined
PerlJam & 01:24
01:31 snarkyboojum joined 01:37 whee joined 01:39 felliott joined 01:41 mmpf joined 01:44 wormwood joined 02:07 whee joined
colomon anyone out there tried the new Math::Vector module? 02:08
I want to know if it's reasonably put together before I churn out a couple more modules on the same model...
02:09 ruoso joined
snarkyboojum colomon: FYI it's not on modules.perl6.org because poc-projects.list is missing a comma before your Math-Vector 02:16
(I'm guessing)
(at the end of the temporal-utils line) 02:17
tylercurtis How would one go about getting a commit bit to pugssvn?
colomon snarkyboojum++
just pushed the commas in the right places. 02:19
tylercurtis: you would ask someone who already had one.
presuming they remember how to do it. :(
tylercurtis colomon: It's that simple? 02:21
tylercurtis wants to write spectests for Path so he can try implementing it.
colomon pugssvn? you bet.
we give out commitbits at the drop of a hat.
but I've not actually done it before, so it may take me a minute to figure out the procedure.
perigrin drops a hat.
snarkyboojum colomon: awesome test suite on Math::Vector :) 02:22
colomon snarkyboojum: I didn't write it, it's from lastofthecarelessmen.blogspot.com/
snarkyboojum colomon: was just comparing those ;) 02:23
colomon He seems to have abandoned it, and I just ported what he had to the latest Rakudo and repackaged it as a standalone module.
snarkyboojum colomon: so is this a re-write?
colomon: ah cool
colomon mostly it's a tweak.
02:23 tedv joined
snarkyboojum colomon: is carlins around at all? because I've forked his HTTP::Client module as well 02:23
or do I have two different people mixed up :) 02:24
colomon he had a whole bunch of semi-related stuff in the one Vector package, I'm trying to break it out and make the pieces stand alone.
I haven't seen carlins any time recently.
snarkyboojum oops - I'm mixing people up
colomon: sweet re breaking it out to a standalone bit
colomon tylercurtis: pm me your e-mail address and desired username and I'll add you to pugssvn. (found the page and managed to log in.) 02:25
snarkyboojum: does the Math::Vector package look okay to you? If it seems reasonably put together, I can go back into SF's code and crank out Math::Polynomial as well. 02:27
s/crank/break/ 02:28
snarkyboojum colomon: only had a superficial look/play, but looks nice 02:30
tylercurtis colomon++
colomon tylercurtis: just following au|irc++'s good example. 02:32
tylercurtis colomon: the link in the email was broken, but removing the port number seems to have worked. Who should I contact about that? au|irc? 02:35
colomon tylercurtis: I have no idea who maintains it now. Seems unlikely to be au|irc, but she might know... 02:36
tylercurtis If I add a new spectest that probably isn't implemented yet by anyone, I should fudge it, right? For which implementations? 03:19
colomon rakudo for sure. 03:22
I'm not sure if sorear's project is using the fudging system or not. 03:23
I wouldn't worry about pugs, etc..
(or perhaps more accurately, I don't worry about pugs, etc, and no one has complained yet.) 03:24
tylercurtis Thanks. For something like qp{foo} that isn't yet supported by the parser, is '#?rakudo: eval "Rakudo doesn't parse this yet."' the appropriate way to fudge it? 03:27
colomon I've always used #?rakudo skip "Rakudo doesn't parse this yet." 03:30
I dont know eval at all.
(in a fudging context)
afk # bedtime 03:32
03:33 bpalmer joined 03:50 sftp left
colomon back # rocking toddler 03:52
03:54 sftp joined 04:02 sftp joined, bpalmer joined, ruoso joined, wormwood joined, mmpf joined, felliott joined, tyru joined, bjarneh joined, Eddward joined, Bucciarati joined, gabiruh joined, Patterner joined, justatheory joined, hudnix joined, rgrau_ joined, mberends joined, dual joined, Trashlord joined, ethel joined, dukeleto joined, ash___ joined, PacoLinux joined, molecules joined, dalek joined, cono joined, phenny joined, saaki joined, REPLeffect joined, jjore_ joined, Leonidas joined, mathw joined, jnthn joined, Snowclone joined, tylercurtis joined, Chandon joined, am0c joined, eternaleye joined, sawyer_ joined, sboyette joined, perigrin joined, xinming_ joined, mj41 joined, salv0 joined, dolmen_ joined, Maddingue joined, ldd joined, mulander joined, hercynium joined, [particle] joined, xabbu42 joined, jww joined, niko joined, rgrau joined, dimid joined, mtve joined, krakan joined, cbk joined, tewk joined, frooh joined, [Coke] joined, adhoc joined, cognominal joined, ingy joined, lestrrat joined, s1n joined, constant joined, ggoebel joined, pragma_ joined, jedai joined, wolverian joined, m6locks joined, szbalint joined, Juerd joined, slavik joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, TiMBuS joined, hugme joined, cosimo joined, TimToady joined, CSJewell joined, szabgab joined, cotto joined, PerlJam joined, hsb joined, diakopter joined, kst joined, sunnavy_ joined, sorear joined, cxreg joined, au|irc joined, Eevee joined, Sanitoeter joined, felliott__ joined, colomon joined, sbp joined, lucs joined, tomaw joined, itz joined, frodwith joined, Grrrr joined, exodist joined, _sri joined, huf joined, Khisanth joined, araujo joined, HarryS joined, rhr joined, BinGOs joined, Tene joined, avar joined, pmichaud joined, allbery_b joined, moritz_ joined, yahooooo joined 04:05 REPLeffect joined, Chillance joined 04:06 Chillance joined, bpalmer joined, ruoso joined, mmpf joined, felliott joined, Bucciarati joined, gabiruh joined, Patterner joined, justatheory joined, hudnix joined, rgrau_ joined, dual joined, Trashlord joined, ethel joined, dukeleto joined, ash___ joined, PacoLinux joined, molecules joined, cono joined, mathw joined, jnthn joined, Snowclone joined, tylercurtis joined, Chandon joined, sawyer_ joined, sboyette joined, mj41 joined, salv0 joined, dolmen_ joined, Maddingue joined, ldd joined, mulander joined, hercynium joined, [particle] joined, jww joined, niko joined, rgrau joined, [Coke] joined, cognominal joined, lestrrat joined, constant joined, wolverian joined, m6locks joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, TimToady joined, szabgab joined, hsb joined, kst joined, Eevee joined, Sanitoeter joined, felliott__ joined, colomon joined, sbp joined, lucs joined, tomaw joined, itz joined, frodwith joined, _sri joined, Khisanth joined, araujo joined, HarryS joined, BinGOs joined, avar joined, pmichaud joined, moritz_ joined, yahooooo joined 04:08 dalek joined, Tene_ joined, frooh_ joined, Chillance joined, bpalmer joined, ruoso joined, mmpf joined, felliott joined, Bucciarati joined, gabiruh joined, Patterner joined, justatheory joined, hudnix joined, rgrau_ joined, dual joined, Trashlord joined, ethel joined, dukeleto joined, ash___ joined, PacoLinux joined, molecules joined, cono joined, mathw joined, jnthn joined, Snowclone joined, tylercurtis joined, Chandon joined, sawyer_ joined, sboyette joined, mj41 joined, salv0 joined, dolmen_ joined, Maddingue joined, ldd joined, mulander joined, hercynium joined, [particle] joined, jww joined, niko joined, rgrau joined, [Coke] joined, cognominal joined, lestrrat joined, constant joined, wolverian joined, m6locks joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, TimToady joined, szabgab joined, hsb joined, kst joined, Eevee joined, Sanitoeter joined, felliott__ joined, colomon joined, sbp joined, lucs joined, tomaw joined, itz joined, frodwith joined, _sri joined, Khisanth joined, araujo joined, HarryS joined, BinGOs joined, avar joined, pmichaud joined, moritz_ joined, yahooooo joined 04:09 sunnavy joined, kloeri left 04:10 sftp_ joined, pragma_ left, knewt2 left, kcwu left, gabiruh left, Woody2143 left, araujo left, buu left, Khisanth left, avar left, f00li5h left, shade\ left, nadim left 04:11 Juerd_ joined 04:12 Juerd joined, sunnavy joined, saaki joined, perigrin joined, tewk joined, ingy joined, cotto joined 04:13 pragma_ joined 04:14 dimid joined, nothingmuch left 04:15 tyru left 04:17 s1n left, s1n joined, cbk joined 04:18 au|irc_ joined, dalek joined, Tene_ joined, frooh_ joined, Chillance joined, mmpf joined, felliott joined, Patterner joined, justatheory joined, hudnix joined, rgrau_ joined, dual joined, Trashlord joined, ethel joined, ash___ joined, PacoLinux joined, molecules joined, cono joined, jnthn joined, Snowclone joined, tylercurtis joined, sawyer_ joined, sboyette joined, salv0 joined, dolmen_ joined, Maddingue joined, hercynium joined, [particle] joined, niko joined, rgrau joined, [Coke] joined, constant joined, wolverian joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, TimToady joined, hsb joined, kst joined, Eevee joined, Sanitoeter joined, felliott__ joined, sbp joined, tomaw joined, _sri joined, Khisanth joined, araujo joined, avar joined, moritz_ joined, yahooooo joined
pugssvn r31844 | tcurtis++ | [t/spec] Start adding fudged(for Rakudo) Path tests. 04:24
04:48 ashleydev joined 04:59 molaf joined 05:05 Guest10341 joined 05:06 buu joined 05:11 plobsing joined 05:20 gfx joined 05:35 colomon_ joined 05:47 kaare joined 05:49 meppl joined 05:54 Su-Shee joined
sorear aaaah bad net day 06:00
colomon: here?
06:07 uniejo joined 06:26 revdiablo joined 06:39 daxim joined
moritz_ good morning 06:40
06:43 baest joined
moritz_ tylercurtis: just sent you another commitbit for pugscode, hadn't finished backlogging yet :-) - just ignore it 06:46
06:47 bpalmer left
tylercurtis moritz_: alright. :) 06:47
moritz_ tylercurtis: btw new test files don't need fudging - rakudo uses a whitelist to decide which tests to run
tylercurtis moritz_: I realized that after I committed it. I'll unfudge it when I work on it some more. 06:48
moritz_ great 06:49
sorear hello moritz 06:50
moritz_ hi sorear 06:53
06:56 slavik joined 07:03 foodoo joined
dalek ecza: 0fe5cb2 | sorear++ | (3 files):
New pass-aware compiler driver
07:11
pugssvn r31845 | azawawi++ | [docs/feather] ran "perl gen.pl in pugs/docs/feather/~" 07:14
sorear rakudo: say Whatever === * 07:19
p6eval rakudo 9808d7: OUTPUT«_block114␤»
sorear rakudo: say Whatever.defined
p6eval rakudo 9808d7: OUTPUT«0␤»
07:19 snarkyboojum joined
sorear rakudo: my $x = *; say $x.defined 07:19
p6eval rakudo 9808d7: OUTPUT«1␤»
sorear Does * have a name?
rakudo: my $x = *; my $y = *; say $x === $y; 07:20
p6eval rakudo 9808d7: OUTPUT«0␤»
sorear ah, looks like 'Whatever.new' will do
pugssvn r31846 | moritz++ | [t/spec] unfudge series tests for Rakudo 07:21
07:22 Ross joined 07:25 timbunce joined
mulander hi all 07:27
10 failed tests on rakudo make spectest
www.nopaste.pl/s2p 07:28
I believe all of the tests failed because of the strict networking rules on this host.
sorear it's pretty much to be expected that ~10 spectests will fail on any given user's machine 07:32
setting up the spectest system is ... not as exact a process as we'd like
mulander I see
well this host dissallows almost any tcp/ip, udp, icmp communication to the outside :)
sorear though I don't think I've seen *that* failure before 07:33
mulander that's why I guessed it's the reason for the failure :)
sorear rakudo: say Whatever.^parents.Str
p6eval rakudo 9808d7: OUTPUT«Any() Mu()␤»
snarkyboojum mulander: those tests should just talk to loopback I think 07:40
07:54 tadzik joined
mathw o/ 08:01
sorear hi! 08:02
08:02 gfx joined
frettled ho! 08:02
(it's off to work we go) 08:03
tadzik hey 08:07
08:14 thebird joined
jnthn morning, #perl6 08:22
08:22 jww left
mathw o/jnthn 08:22
08:23 phenny joined
jnthn o/ mathw 08:23
mathw Exciting times...
I'm going to try and put together some sort of documentation for Form.pm tonight 08:24
Is last week's release going to be the compiler version for R*, or will there be another one?
jnthn mathw: No, it won't be - we'll I guess have a compiler release cut just for R*. 08:25
mathw I thought so, I caught something the other day about fixing something for R* 08:26
Just thought I'd check what I should be verifying Form.pm against to make sure it'll work with *
sorear is testing Whatever currying for niecza
it's actually a lot simpler to implement than it sounds
mathw A lot of things are simpler when you're transforming the AST 08:27
08:27 pmurias joined
pmurias ruoso: hi 08:27
ruoso: do you know where is the repo for v6.pm?
08:28 Ross^ joined
cosimo moritz_: you interested in json 'make test' failures in t/04-roundtrip.t ? 08:37
08:37 snarkyboojum_ joined 08:38 dakkar joined 08:41 zulon joined
moritz_ cosimo: they are already reported 08:41
cosimo: I'm interested in fixes, though :-)
cosimo moritz_: cool 08:42
moritz_ afaict they are primarily due to not correctly round-tripped number types
cosimo i'll see if got a round tuit
moritz_ 1 -> '1' -> 1.0e0 (ie Num) or so 08:43
or other types, like Array -> [1,2,3] -> List
cosimo moritz_: 4.0 -> '4' but expected is '4/1' 08:44
moritz_ rakudo: ~4.0
p6eval rakudo 9808d7: ( no output )
moritz_ rakudo: say ~4.0
p6eval rakudo 9808d7: OUTPUT«4␤»
frettled jnthn: It just occurred to me that now that we have no ka[mn]elbullar, we're … no-ops!
sorear great errors: Failed to resolve lexical &infix:<&infix:<=>>
moritz_ rakudo: say 4.0.perl
p6eval rakudo 9808d7: OUTPUT«4/1␤» 08:45
dolmen_ rakudo: say 4e0.perl
p6eval rakudo 9808d7: OUTPUT«4␤»
dolmen_ rakudo: say 4.0e0.perl 08:46
p6eval rakudo 9808d7: OUTPUT«4␤»
moritz_ JSON has only one number type
dolmen_ rakudo: say 4.0e0 == 4e0
moritz_ I think the correct thing would be not to test the exact type, but just that $got == $expected if $exepcted ~~ Numeric
p6eval rakudo 9808d7: OUTPUT«1␤»
dolmen_ rakudo: say True 08:47
p6eval rakudo 9808d7: OUTPUT«1␤»
moritz_ hugme: add cosimo to json
hugme hugs cosimo. Welcome to json!
jnthn frettled: oh noes!
dolmen_ rakudo: multi Str(True) { "True" }; say True; 08:48
p6eval rakudo 9808d7: OUTPUT«1␤»
dolmen_ rakudo: multi Str(True) { "True" }; say Str(True);
p6eval rakudo 9808d7: OUTPUT«True␤»
dolmen_ rakudo: multi Str(True) { "True" }; say ~True;
p6eval rakudo 9808d7: OUTPUT«1␤» 08:49
cosimo moritz_: thanks, i'll have a look
dolmen_ how can I override "~True" ?
moritz_ since JSON has only a few data types, it shouldn't be hard to write a custom comparison function 08:50
rakudo: Bool does role { method Str() { $.perl } }; say ~Bool::True
colomon o/
p6eval rakudo 9808d7: OUTPUT«Attempt to use rebless_subclass where the new class was not a subclass␤ in 'infix:<does>' at line 6379:CORE.setting␤ in 'infix:<does>' at line 525:CORE.setting␤ in main program body at line 22:/tmp/vsMNEIdThV␤»
moritz_ \\o
08:50 rindolf joined
moritz_ rakudo: True does role { method Str() { $.perl } }; say ~Bool::True 08:51
p6eval rakudo 9808d7: OUTPUT«1␤»
moritz_ dolmen_: seems to require a rakudo patch
jnthn moritz_: Mixing in to type object = bad idea.
dolmen_ rakudo: True.perl.say
p6eval rakudo 9808d7: OUTPUT«Bool::True␤»
moritz_ jnthn: yeah, but the error message could be more awesome :-)
jnthn moritz_: I agree. It fails for the wrong reason ATM, I suspect. 08:52
sorear rakudo: say ~True
p6eval rakudo 9808d7: OUTPUT«1␤»
sorear rakudo: say True
p6eval rakudo 9808d7: OUTPUT«1␤»
moritz_ rakudo: say True.Str
p6eval rakudo 9808d7: OUTPUT«Bool::True␤» 08:53
moritz_ the method is there already, but the vtable override is missing, it seems
I suspect it uses the get_string vtable from Integer
08:54 snarkyboojum joined
moritz_ rakudo: say True.Stringy 08:54
p6eval rakudo 9808d7: OUTPUT«Method 'Stringy' not found for invocant of class 'Bool'␤ in main program body at line 22:/tmp/aCjQjsaTbt␤»
sorear moritz_: re. t/0* in rakudo 08:55
moritz_: that's basically what test.pl in niecza is
except I have it as one file due to abysmal O(1) factors in the compiler
dolmen_ rakudo: (~True).WHAT.say 08:56
p6eval rakudo 9808d7: OUTPUT«Str()␤»
cosimo rakudo: say ~"a" 09:00
p6eval rakudo 9808d7: OUTPUT«a␤»
cosimo rakudo: say ~"a","b"
p6eval rakudo 9808d7: OUTPUT«ab␤»
cosimo rakudo: say ~88.88 09:01
p6eval rakudo 9808d7: OUTPUT«88.88␤»
cosimo rakudo: say ~88.000
moritz_ rakudo: say ~('a', 'b')
p6eval rakudo 9808d7: OUTPUT«88␤»
rakudo 9808d7: OUTPUT«a b␤»
cosimo rakudo: say 88.000 + 0
p6eval rakudo 9808d7: OUTPUT«88␤»
Su-Shee german tech news just ordered two pieces on rakudo * on the 29th 09:02
mathw \\o/
daxim ix?
c't?
Su-Shee heise open
moritz_ hei.se :-) 09:03
daxim online only?
moritz_ Su-Shee: want somebody to proof-read it? :-)
Su-Shee moritz_: first of all I need a list of working features and not working features. ;) 09:04
moritz_ rakudo.org/status is a first start 09:05
though autovivification mostly works now
daxim I want to port stackoverflow.com/questions/203605#2024396 09:06
perl6: for (<あ ご ご>, "\\x{3099}") -> $string { say sprintf '%s $string', $string ~~ /^ \\X $/ ?? 'ok' !! 'nok' }
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\\x' at line 22, near "{3099}\\") -"␤»
..pugs: OUTPUT«Error eval perl5: "if (!$INC{'Pugs/Runtime/Match/HsBridge.pm'}) {␤ unshift @INC, '/home/p6eval/.cabal/share/Pugs-6.2.13.14/blib6/pugs/perl5/lib';␤ eval q[require 'Pugs/Runtime/Match/HsBridge.pm'] or die $@;␤}␤'Pugs::Runtime::Match::HsBridge'␤"␤*** '<HANDLE>' trapped by operat…
daxim unicode string escapes, anyone? 09:07
colomon moritz_: when you get the chance, can you look at Math::Vector and Math::Polynomial to sanity check my packaging of the? 09:08
09:08 xabbu42 joined
moritz_ colomon: I'll try tonight, currently I'm a bit distracted 09:08
colomon: but if you let ufo generate your makefiles, there's not much you can screw up :-) 09:09
colomon thanks. moritz_++
Su-Shee moritz_: so essentially besides details it's macros and threads missing? do I remember that correctly?
moritz_ Su-Shee: yes. Just updated the list
nested packages also often cause confusion
the implementation is somwhere between non-existant and not-very-robust 09:10
sorear testing++ not ok 61 - state variables preserve values 09:12
mathw nested packages is weird :) 09:13
moritz_ aye
sorear nested packages mostly works in niecza, although I still haven't implemented "class Foo::Bar" syntax 09:14
but I think I've figured out most of the finer points of lexical/dynamic packages and phasing
mathw the way they currently work in Rakudo seems to me to be entirely odd 09:15
But at least you can make them work
So I didn't have to turn Form into one giant module
sorear well, Rakudo uses Parrot nested packages, which are a clone of Perl5 nested packages
moritz_ added LTM to the not working/known to have problems list
sorear going over the R* checklist?
Su-Shee what's the best documentation I should link to? 09:19
sorear rakudo: CallFrame 09:20
p6eval rakudo 9808d7: ( no output )
sorear rakudo: Callframe
p6eval rakudo 9808d7: OUTPUT«Could not find sub &Callframe␤ in main program body at line 22:/tmp/jzLvH66uDP␤»
dalek ecza: 5fbd666 | sorear++ | (3 files):
Implement Whatever codegen
ecza: a97b2f5 | sorear++ | CORE.setting:
Add Whatever class
ecza: 07ebf12 | sorear++ | Niecza/Actions.pm:
Implement * syntax
ecza: 2b3c501 | sorear++ | CORE.setting:
Implement True and False (no Bool:: form yet due to STD bug)
ecza: fbe2e1f | sorear++ | CORE.setting:
Use ?? !! and True/False whenever reasonable in setting
ecza: 378b61f | sorear++ | CompilerDriver.pm:
Fix niecza_eval treating --aot as always enabled
09:21
ecza: ac8238d | sorear++ | (3 files):
Implement whatever currying
ecza: 9d1fa25 | sorear++ | test.pl:
Tests for whatever currying
cosimo In "rule object { '{' ~ '}' <pairlist> }", what does "~" mean? 09:22
and, totally unrelated, 09:25
make spectest_smolder fails w/ error 26... nopaste.snit.ch/22327
sorear cosimo: it actually means '{' <parlist> '}' 09:27
but with better error handling
cosimo sorear: so "literal1" + "~" + "literal2" + "whatever" is a special case that means any "whatever" between "literal1" and "literal2"? 09:29
09:29 Mowah joined
sorear yes. 09:30
moritz_ colomon: yes, but it also gives better error messages when it fails
sorear also the three tokens can be any regex
moritz_ rakudo: 'abb' ~~ /a ~ a b'
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "'abb' ~~ /"␤»
moritz_ rakudo: 'abb' ~~ /a ~ a b/
p6eval rakudo 9808d7: OUTPUT«Unable to parse _block115, couldn't find final a at line 1␤ in <anon> at line 22:/tmp/I4fJxFCakF␤ in 'Cool::match' at line 2377:CORE.setting␤ in 'Regex::ACCEPTS' at line 5470:CORE.setting␤ in main program body at line 10:/tmp/I4fJxFCakF␤» 09:31
moritz_ rakudo: 'abb' ~~ /:dba("'a'-delimited string") a ~ a b/
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "'abb' ~~ /"␤»
09:36 xabbu42 joined
sorear phenny: ask TimToady what do CallFrame.line and $?LINE mean in your LF-polymorphic model? 09:42
phenny sorear: I'll pass that on when TimToady is around.
sorear std: my module CORE; my class Bool { our constant False = 0; } 09:43
p6eval std 31846: OUTPUT«Can't call method "id" on an undefined value at /home/p6eval/pugs/src/perl6/snap/STD.pm line 63011.␤FAILED 00:01 114m␤»
sorear phenny: tell TimToady STD bug: my module CORE; my class Bool { our constant False = 0; } # Can't call method "id" on an undefined value
phenny sorear: I'll pass that on when TimToady is around.
pmurias sorear when having class Foo {} in setting i get that 09:46
09:47 envi^home joined
sorear pmurias: yes, ~same bug 09:49
pmurias i work around that my not defining any globals in the setting 09:50
sorear pmurias: in the setting, $*CURPKG is not initialized; also, 'my' packages don't override $*CURPKG
which they should
pmurias my module CORE should define it
09:58 mac joined
mac hi 09:58
10:00 aesop joined, jferrero joined
rindolf Hi mac 10:00
szabgab there were some perl6 questions posted in response to my screencast, if anyone has the time to respond: szabgab.com/blog/2010/07/introducti...files.html 10:02
10:09 xabbu42 joined
moritz_ doesn't see any comments 10:13
rindolf moritz_: you need to enable JS. 10:15
10:16 lichtkind joined
moritz_ actually agrees that the lines/words/chars thing is not very intuitive 10:21
lichtkind will be parrot included in rakudo * release? 10:26
moritz_ I think so
Su-Shee does it come with some of the modules already? 10:28
moritz_ yes 10:29
Su-Shee which ones?
moritz_ wiki.github.com/rakudo/rakudo/whats...nto-rakudo 10:30
lichtkind and whith the pdf book :)
moritz_ yes
lichtkind moritz_++ thanks
moritz_ I can also make the the 5-to-6 PODs available
lichtkind Su-Shee++ for her bread post
moritz_ -> lunch
Su-Shee moritz_: you probably should. 10:31
moritz_ wonders if he should make a mini-book out of that 10:34
Su-Shee moritz_: "guide to joy of six" ;)
lichtkind i think i found a bug 10:42
moritz_ that happens from time to time 10:43
lichtkind i think i found a bug
shit
moritz_ submit it to rakudobug@perl.org
10:43 ldd left
lichtkind moritz_: not the rt? 10:44
moritz_ lichtkind: sending a mail is the way to open a bug on rt
lichtkind allright 10:45
10:47 tuxuday joined
tuxuday hi all. 10:47
yesterday installed parrot/rakudo and played with it. 10:48
wrote sample scripts and all.
i feel the syntax is bit compilcated.
i have used perl, 5, that is for nearly 5/6 years. now perl6 10:49
the learning curve is scary, am not sure its worth.
10:49 xinming joined
tuxuday the work demands writing script in python. - you have no say on that! :( 10:50
lichtkind tuxuday: what especially was hard?
Su-Shee it's easier if you continue writing writing perl 5 - just in perl 6 - and just use the stuff which isn't really incredible new.
and wrap this in proper classes and use methods and essentially you're done. ;)
tuxuday the syntax, most of them.
ex. say "abcdefgh".substr(|@indexes) 10:51
Su-Shee
.oO(I don't even know what | does.. )
10:52
lichtkind beside of sigils ~ and -> you dont have to change that much
tuxuday i don't understand why new syntax, its another learning curve.
Su-Shee tuxuday: so use simpler syntax.
gfldex perl6 got a syntax because it's not perl5+1
tuxuday so whats the point of new syntax, if i am to use perl5(syntax of course) 10:53
gfldex: i buy your point, but the learning curve shouldn't be hard.
gfldex why shouldn't the learning curve be hard? 10:54
Su-Shee tuxuday: it isn't, if you really look and just write perl 5 in perl 6. it's really just exchanging the -> for a .
tuxuday ex. i could start coding in python/php without much learning.
Su-Shee gfldex: because it's annoying and you can't decide wether feature x is actually worthwhile learning it.
gfldex be happy with python or php then
mulander it's not about memorizing the whole language
Su-Shee tuxuday: so simplify your perl 6 code. 10:55
mulander the reference manual and your ide/editor will handle the tricky syntax bits.
also you are looking at something entirely new
Su-Shee that's cute in case of perl 6. ;)
lichtkind Su-Shee: | interpolates in a capture (signature) context
mulander python also was considered foreign by some people when it first appeared to gain popularity
Su-Shee lichtkind: I don't even understand the sentence. 10:56
mulander and about the complexity, look at the haskell syntax - it didn't scare off the hundreds of people sitting on #haskell
Su-Shee lichtkind: whatever a capture (signature) context might be.. :)
tuxuday su: please refer perlgeek.de/en/article/5-to-6#post_00
section Interpolation
Su-Shee tuxuday: why did you use the feature if you find its syntax too difficult? 10:57
tuxuday no i didn't, was checking how it affects programmers 10:58
you know perl 5 - 6.
so was checking that url. generally copy-paste-exec stuff.
some of the new syntax made me raise my brows. 10:59
i kept on doing it, until i came across interpolation stuff.
then decided its not worth.
Su-Shee don't use it, there's plenty of stuff you plainly don't need to write stuff.
pmurias mulander: haskell syntax is complex? 11:00
mulander pmurias: pardon the simplification. I know it's based on a simple rule set but for most people not familliar to the language it looks like line noise. 11:01
tuxuday su - not sure. i feel that i will either stick to perl5 syntax or python.
mulander I could easilly substitute haskell with erlang, prolog or lisp to make the same case.
maybe 'foreign' would be a better word than line noise here. 11:02
sorear pmurias: for several years I was convinced parsing Haskell was Rice-hard. I've recently managed to discover an EXPSPACE algorithm
Su-Shee tuxuday: well I am sure and I already used perl 6 that way.
tuxuday: works perfectly fine and then it's actually a cleaner, newer perl. 11:03
tuxuday yeah thats the first impression you get. 11:04
11:04 zulon joined
tuxuday the 'context sensitive' is gone. 11:04
Su-Shee so why don't you just stick with it? it's not that you _have_ to use all features.
the what?
sorear I wonder why nobody ever sees ioccc.org as their first vision of C and permanently regards C as a worthless unreadable language.
tuxuday one always use, $/@/% ir-respective of the context in which it is used. 11:05
sorear It seems as though Perl alone is subject to the "All X code is identical" fallacy
Su-Shee tuxuday: that's still there?
gfldex the context is moved to the operators
tuxuday nope its gone in perl 6.
mulander I believe tuxuday refers to using arrays in scalar context for example.
I believe perl 6 uses @ for arrays regardless of the context (also an example). 11:06
gfldex it does
what makes the code more readable
imagine you would have to read the end of a word to tell if it's a verb or noun 11:07
Su-Shee what does mean "the context is moved to the operators"?
gfldex operators know how to handle lists or scalars, depending on LHS and RHS
look up ~~ 11:08
it's pure magic :)
baest perlgeek.de/en/article/5-to-6#post_06 describe contexts
Su-Shee and how does that make an @array its arrayishness?
tuxuday gfl: that was there in perl5 too. 11:09
i mean one/many based on the operator. 11:10
just that they made everything as object in perl6.
gfldex it's the other way around
Su-Shee anyway. perl 6 always did what I expected it to do. problem solved for me. ;)
tuxuday so you can also use @a.elems
gfldex an operator will do the right thing no matter if you hand it one or many
tuxuday su - nice to hear that.
gfldex if you want to force many, you use a hyperoperator 11:11
snarkyboojum I think part of the perceived problem in "syntax" is really related to changed/new concepts underlying "different" syntax in perl 6 c.f. perl 5
hence all the comparisons to behaviour or concepts in perl 5
Su-Shee no, it isn't. I find perl 6 extremely difficult and don't know what half of the features are actually good for. 11:12
gfldex perl6 should have been named !perl5 to prevent all that confusion :)
11:12 tadzik joined
tuxuday gfl: may be it should be called as perl at all! :) 11:12
snarkyboojum i.e. once the concepts are understood, the supporting syntax generally makes sense 11:13
Su-Shee snarkyboojum: it would be wonderful if somebody actually explained for us common folks what the new concepts are and what they mean :)
snarkyboojum Su-Shee: I agree :)
lichtkind Su-Shee: for that i began perl 6 tablet sorry but currently i have to do something else 11:14
snarkyboojum reading the specs, moritz_'s 5 to 6 docs, the perl 6 book, irc logs, pestering the devs in here, lurking in the channel, and writing Perl 6 code are helpful :)
but it's definitely not all in one place 11:15
gfldex IMHO the base line is to allow definition of custom operator (even at runtime) and build a languare around it
Su-Shee snarkyboojum: I'm doing that since 2000. if you don't constantly read along here, you just don't get "stuff". and that's really bad.
snarkyboojum I guess it's in the specs, but they have a tendency to make my head feel funny after a while :P
Su-Shee: thankfully the rate of change seems to have slowed down, so perhaps documentation will have a better chance to catch up.. I think that's been part of the problem 11:17
Su-Shee snarkyboojum: unless I see convincing reasons to use feature x or y I don't use it. just for the cool of it, I don't.
snarkyboojum Su-Shee: sounds like a good rationale to me.. I do the same - but there's plenty of growing room there for additional expressiveness as competency increases.. it is Perl after all :) 11:19
Su-Shee snarkyboojum: I'm not really the target group for perl 6 anyway.
snarkyboojum Su-Shee: why's what? 11:20
Su-Shee snarkyboojum: I just wanted the nicer perl. that's what I have really use for. I'm way too much of a every-day developer to actually need more than just a well crafted basic language. I need "environment" much more - and not features. 11:21
gfldex there are indeed pretty much no bindings yet
but it doesn 11:22
Su-Shee snarkyboojum: I would have been fine with let's say the sigil change, a little of the grammars, OO and a little iterator sugar coating.
gfldex but it doesn't make much sense to write interfaces when the implementation got so many holes
11:22 mscha joined
Su-Shee snarkyboojum: which is essentially what I use of rakudo. 11:23
gfldex let's see what you will say in 5 years :)
Su-Shee gfldex: I will.
snarkyboojum Su-Shee: I agree with you - many of the core language features like OO are just clean and lovely to use :) 11:24
Su-Shee snarkyboojum: exactly.
snarkyboojum: and that's the perl I wished for in 2000.
snarkyboojum: and last but not least is an interesting question wether the fashion of functional programming stays and if the style of zenlike, tidy, simple code also remains. how does perl 6 fit in there... 11:28
gfldex very well
rakudo: my @a = <c B A d>; say @a.sort: *.lc; 11:29
p6eval rakudo 9808d7: OUTPUT«ABcd␤»
Su-Shee well then you must have read different examples than I did. ;)
gfldex this tiny *.lc creates a function for you 11:30
and it's quite simply ofc
pmurias Su-Shee: so what is the sort of things you can't find an use for? 11:31
gfldex i would even say there is no way to get a list sorted by the lower case of it's values any more simpler
Su-Shee pmurias: first, I tried to use everything methods have to offer in terms of parameter handling, because it sounded great and I thought I really needed it. then I realized that it doesn't really improve anything so I use either consistently @_ again or simple, stupid params like foo ($bar, @blubb) and that's essentially it. 11:33
huf i could see heavy use for the named params in poorly-planned code, when you have to patch extra behaviors onto stuff later on :D
11:34 rgrau_ joined
huf but p6 has better stuff for that, from what i gather on this chan 11:34
Su-Shee the point is probably that I code defensively. If I didn't understand something after reading the docs twice, I don't use it. 11:36
huf there are proper docs?
TiMBuS blinks
huf the S* is a bit too thick to be called end-programmer documentation, and the book is a bit too lightweight
Su-Shee well the specs and moritz's stuff.
huf on the other hand, idling on this channel is a pretty good way to learn ;) 11:38
Su-Shee yeah but there's tons of other things I have to learn and understand. ;) 11:39
tuxuday perl6: say 'hi' 11:40
huf yeah but you get to learn perl a second time! it was immense fun the first time for me, so i'm looking forward to it
p6eval pugs, rakudo 9808d7: OUTPUT«hi␤»
tuxuday how can i use evalbot? 11:41
tadzik tuxuday: just like You did 11:42
baest rakudo: say 'Hi tuxuday';
gfldex /query rakudo
p6eval rakudo 9808d7: OUTPUT«Hi tuxuday␤»
Su-Shee huf: I'm on my way of abadoning perl entirely, actually.
tuxuday rakudo: say 'hi';
p6eval rakudo 9808d7: OUTPUT«hi␤»
tadzik Su-Shee: why so?
gfldex err p6eval
tuxuday p6eval: say 'hi';
tadzik tuxuday: just use rakudo: 11:43
tuxuday nothing working i tried perl6/rakudo/p6eval
Su-Shee tadzik: because the stuff I find interesting is happening elsewhere.
baest tuxuday: rakudo worked fine?
tuxuday rakudo: say 'hi';
p6eval rakudo 9808d7: OUTPUT«hi␤» 11:44
tadzik tuxuday: works for me
Su-Shee me too?
tadzik Su-Shee: and what do You find interesting?
tuxuday yeah rakudo works. thx.
Su-Shee tadzik: high end web stuff, gui development, microcontrollers & mobile devices...
tadzik: the upcoming non-blocking/asynch stuff with Node.js for example is very interesting. 11:46
snarkyboojum perl6: say "or use all p6eval targets"
p6eval pugs, rakudo 9808d7: OUTPUT«or use all p6eval targets␤»
snarkyboojum oh you already tried that :) 11:47
moritz_ rakudo: say "-",[+] 2..7,'hello',"does anybody see me?" 11:51
p6eval rakudo 9808d7: OUTPUT«-27␤» 11:52
moritz_ rakudo: say "-",([+] 2..7),'hello',"does anybody see me?"
p6eval rakudo 9808d7: OUTPUT«-27hellodoes anybody see me?␤»
moritz_ lichtkind: works here
Su-Shee is there a good example of callbacks somewhere? 11:55
moritz_ Su-Shee: like, map or grep?
Su-Shee: or File::Find 11:56
ggoebel Sh-Shee: regarding rakudo.org/status ...it might be worth clarifying that the recent huge drop in number of passing tests is due to a reduction in the number of tests. Colomon can clarify, but if I recall correctly, the same functionality is being tested, it is just doing so with fewer tests.
Su-Shee ggoebel: I just need the features and capabilities.
moritz_ ggoebel: that's correct, and just shows that test counts are intrinsically meaningless 11:57
tadzik what's happening to that status graph btw? 11:58
11:58 bbkr joined
moritz_ it's being updated whenever docs/spectest-progress.csv is being updated 11:58
Su-Shee moritz_: no I meant like in GUI programming or JavaScript or the former foo => $subref->() I could use for that.. 11:59
tadzik moritz_: it looks like spectest-progress.csv is gone or something 12:00
gfldex rakudo: sub foo(){say 'foo was called'}; my $a = &foo; $a();
p6eval rakudo 9808d7: OUTPUT«foo was called␤»
moritz_ Su-Shee: I don't really see the difference between callbacks in GUI programing and map/grep/File::Find... or are you talking about the invocation syntax?
daxim moritz_, s{<h2>Common things that are known to have problems}{<h2 id="broken">Common things that are known to have problems} 12:01
snarkyboojum tadzik: it's in docs/
tadzik snarkyboojum: see the image on rakudo.org/status
snarkyboojum yeah.. I see a graph 12:02
moritz_ daxim: added
tadzik: huh? it's still in my checkout 12:03
tadzik snarkyboojum: that's my point, and worries. Doesn't look to promising just before R*, people will probably want to see it to see what's going around
moritz_: see the downfall in the recent days, on the graph?
moritz_ tadzik: yes, that's what ggoebel explained a few minutes ago
Su-Shee moritz_: about the syntax. 12:04
snarkyboojum tadzik: I don't understand, I can see the graph - the decrease is related to colomon redoing the trig spectests
tadzik moritz_: ah, I see
yeah, I get it now
moritz_ Su-Shee: ok. $thing() or $thing.() or $thing(arguments)
the . is optional, but I sometimes like it for clarity
tadzik it now looks like there are more passes than tests :>
moritz_ yeah, counting bug in the .csv file, I assume 12:05
Su-Shee but it has to be a subref? 12:08
12:08 masak joined
masak oh hai, #perl6! 12:08
does anyone have anything concrete to say about this? news.ycombinator.com/item?id=1543982
moritz_ Su-Shee: it has to be something Callable 12:09
Su-Shee moritz_: foo(@bla, .callme($blubb)) ?
moritz_ Su-Shee: a sub, a block, or anything that overloads postcircumfix:<( )>
.callme is the same as $_.callme - I don't know if that's what you want 12:10
masak oh, and I figured out whence the Mu() in my post came. :)
rakudo: say "".substr(4).WHAT 12:11
p6eval rakudo 9808d7: OUTPUT«Mu()␤»
moritz_ $widget.install-callback('onClose', &myCloseHandler);
masak I believe I filed a ticket for that.
snarkyboojum hi masak! o/ 12:12
moritz_ masak: so you did
masak hi snarky!
I'm almost back to IRC now. 12:13
Su-Shee moritz_: and 'onClose', myCloseHandler() ?
masak being obstructed by silly little things like gonig across the sound to help my dad buy planks. :P
snarkyboojum masak: w00t
moritz_ Su-Shee: would invoke myCloseHandler(), and pass the result to install-callback
masak s/gonig/going/
snarkyboojum: I expect to have the Yapsi refactor done in a day or so. after that, we can look at getting Tardis working for the release. 12:14
snarkyboojum masak: ok :)
masak snarkyboojum: I'm still very open to ideas about how to represent things like `my $a = 42; { my $a = 5 }` 12:15
during debugging, I mean.
snarkyboojum masak: right 12:16
moritz_ color-code blocks and variables
masak moritz_: hm. that presupposes showing the code along with the variable values. 12:17
perhaps not such a bad idea.
& # planks
pmurias masak: re ycombinator post it's incorrect
pmurias hopes masak doesn't have to walk the plank 12:19
12:21 bluescreen joined
moritz_ replied to that hackernews comment 12:21
tadzik > use File::Find; sub found ($a) { say $a }; find({callback => &found}, 'lib') 12:24
get_attr_str() not implemented in class 'Sub'
↑ what does he want here?
moritz_ tadzik: do you have some .pir files lying around from before your last rakudo update? 12:25
tadzik moritz_: I explicitly set PERL6LIB in here, but I had a problem with test.pirs lying, after make clean; make install they were fine though 12:27
works when I run from 2010.07 though, so I guess that's it
moritz_ tadzik: point is, whenever you recompile rakudo, you should be throwing away your old .pir files 12:28
tadzik moritz_: from where?
moritz_ tadzik: from the rakudo install location, ~/.perl6/lib, and from the directories where your .pm files live 12:29
tadzik ok, I'll keep my eye on this
mscha rakudo: say "a a" ~~ m/a a/ ?? "yes" !! "no" 12:35
p6eval rakudo 9808d7: OUTPUT«no␤»
mscha rakudo: say "a a" ~~ mm/a a/ ?? "yes" !! "no"
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "say \\"a a\\" "␤»
mscha rakudo: say "a a" ~~ m:s/a a/ ?? "yes" !! "no"
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "say \\"a a\\" "␤» 12:36
mscha rakudo: say "a a" ~~ m/:s a a/ ?? "yes" !! "no"
p6eval rakudo 9808d7: OUTPUT«yes␤»
mscha mm/.../ and m:flags/.../ not implemented yet?
moritz_ mscha: m:modifiers// is something I wanted to work on this week... though :s probably won't be easy to do on the outside
and yes, mm// is also not yet implemented 12:37
mscha No big deal, at least there's an easy workaround.
moritz_ phenny: tell pmichaud if you provide an API for passing modifiers (like :s and :i) to the regex parser, I'll try to implement mm// and m:i// and rx:i// and the like 12:38
phenny moritz_: I'll pass that on when pmichaud is around.
moritz_ phenny: tell pmichaud something like .LANG('Regex', 'nibbler', :%adverbs) or so 12:39
phenny moritz_: I'll pass that on when pmichaud is around.
moritz_ on s///, some adverbs work already
:g, :p, :c, :x, :nth, :samecase (though doesn't imply :i on the regex yet) 12:40
12:42 patrickas joined
mscha rakudo: my $s = "Hello, World!"; $s ~~ s:nth(2)/l/p/; say $s; 12:42
p6eval rakudo 9808d7: OUTPUT«Helpo, World!␤»
patrickas o/ perlsixers!
pmichaud good morning, #perl6
phenny pmichaud: 12:38Z <moritz_> tell pmichaud if you provide an API for passing modifiers (like :s and :i) to the regex parser, I'll try to implement mm// and m:i// and rx:i// and the like
pmichaud: 12:39Z <moritz_> tell pmichaud something like .LANG('Regex', 'nibbler', :%adverbs) or so
pmichaud moritz_: there's already an api of sorts -- see 'token' and 'rule' 12:43
moritz_ pmichaud: ohh, that's nice
12:44 wamba joined
moritz_ pmichaud: uhm... 'token' and 'rule' just set a contextual, and then call regex_def, which again calls .LANG('Regex', 'nibbler') - so is it the $*METHODTYPE contextual that's being inspected? 12:45
patrickas moritz_ I think I ported most of TheDamian's IO::Prompter to master, care to take a look ? I am sure there are some monstrosities that can be easilly fixed by someone who has an idea about what they are doing (aka not me :-) 12:46
github.com/patrickas/io-prompter/co...6b901fc958
moritz_ patrickas: I have to postpone it a bit (too many things going on in parallel), feel free to remind me tomorrow in case I forget 12:47
patrickas moritz_ no problem you're the Boss :)
moritz_ my @no_sink = gather loop {
should probably be
eager gather loop {
patrickas that's the kind of monstrosities I was talking about :-) 12:48
moritz_ thought so :-) 12:49
patrickas there is another one where I could not get !=:= to work :-( 12:50
[Coke] I wonder if perl6 has an unusally high number of people who are at least passingly familiar with more than one natural languae.
*language.
moritz_ patrickas: =:= is kinda broken at the moment
12:52 rgrau__ joined
mscha rakudo: token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<planet>/ 12:52
p6eval rakudo 9808d7: OUTPUT«Useless declaration of has-scoped token in a module; add our or my to install it in the lexpad or namespace␤Method 'planet' not found for invocant of class 'Cursor'␤ in <anon> at line 22:/tmp/lFaMiAgRtp␤ in 'Cool::match' at line 2377:CORE.setting␤ in 'Regex::ACCEPTS' at 12:53
..line 547…
mscha rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<planet>/
p6eval rakudo 9808d7: OUTPUT«Method 'planet' not found for invocant of class 'Cursor'␤ in <anon> at line 22:/tmp/BbkebEAr_0␤ in 'Cool::match' at line 2377:CORE.setting␤ in 'Regex::ACCEPTS' at line 5470:CORE.setting␤ in main program body at line 22:/tmp/BbkebEAr_0␤»
patrickas <&planet> maybe ?
mscha rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, World!" ~~ /<&planet>/
p6eval rakudo 9808d7: OUTPUT«␤»
mscha Doesn't complain, but doesn't appear to work either
patrickas rakudo: my token planet { :i 'world' | 'earth' | 'mars' | 'venus' }; say "Hello, world!" ~~ /<&planet>/ 12:54
pmichaud rakudo: my token xyz { a }; say 'a' ~~ /<&xyz>/;
p6eval rakudo 9808d7: OUTPUT«world␤»
rakudo 9808d7: OUTPUT«a␤»
patrickas seems like :i issure
s/issure/issue/ 12:55
moritz_ rakudo: say 'a' ~~ /:i A/
p6eval rakudo 9808d7: OUTPUT«a␤»
moritz_ rakudo: say 'a' ~~ /:i 'A'/
p6eval rakudo 9808d7: OUTPUT«␤»
moritz_ seems like :i doesn't descend into ''
pmichaud wow, that's.... weird.
moritz_ submits rakudobug
mscha++ for finding it in the first place
pmichaud (perl 6 syntax, from backscroll) it's worth noting that in many ways syntax was chosen to make things easier for non-perl programmers and not to ease the 5-to-6 transition. 12:58
jnthn pmichaud: fwiw, the :i doesn't descend into interpolated thingies either.
pmichaud jnthn: I'm not sure that it should. 12:59
moritz_ I think it shouldn't
considering that :i is basically lexically scoped
jnthn OK, there's a ticket we should reject about it then.
pmichaud jnthn: I'm not sure that it shouldn't. :)
moritz_ otoh there should be a way to interpolate a string and do case insensitive matching, somehow
jnthn pmichaud: :P
76500 is the ticket number, anyways :-) 13:00
pmichaud jnthn: the specification has long been a bit ambiguous on this particular point.
13:01 Util joined
pmichaud moritz_: %REGEX_MODIFIERS is the way that token/rule set (some) modifiers for the regex. 13:01
(in src/Perl6/Actions.pm) 13:02
moritz_ pmichaud: just found it, thanks
currently <quotepair> constructs PAST in its .ast 13:03
so I guess we can't just copy its .ast, but need to unwrap that PAST again... or maybe not construct it as PAST in the first place, and provide a wrapping function in Actions.pm
13:07 molecules_ joined
pmichaud I'm pretty sure we want <quotepair> to construct the PAST 13:07
13:07 PZt joined 13:08 molecules_ left
moritz_ and then inspect that PAST to generate %REGEX_MODIFIERS ? 13:08
and die on cases like m:i($x)/a/ ? 13:09
pmichaud well, the s/// construct itself needs to create a new %REGEX_MODIFIERS
(like token/regex/rule do)
13:10 atrodo joined
pmichaud and then yes, quotepairs would modify that 13:10
well, the thing that calls <quotepairs> would modify it.
moritz_ right
so quote:sym<s> passes $<quotepair>.ast to the .subst() call, but previously extracts :i and :s from $<quotepair>.ast and stores them in %REGEX_MODIFIERS 13:11
pmichaud yes
moritz_ then we have an agreement :-)
pmichaud or, it always sets %REGEX_MODIFIERS _and_ passes them to the .subst() call.
rather than trying to figure out which-is-which 13:12
bbkr how to merge two tickets in RT?
moritz_ pmichaud: that's not so easy, because they expect different formats
pmichaud ...different formats?
moritz_ %REGEX_MODIFIERS wants literals als parrot integers, for example, and .subst wants them as PAST::Val nodes 13:13
s/als/as/
pmichaud right, so unpack the quotepair for %REGEX_MODIFIERS (where constant), and leave them as PAST::Val for .subst
moritz_ right
pmichaud I'm just saying that I don't think it needs to be keyed on modifier name as to which is done... just always do both. 13:14
moritz_ I disagree 13:15
I think s:i($x)/// should die at compile time
because we need to know the value of i at compile time
whereas s:x($x)/// is totally fine
pmichaud I don't mind if we special-case a check on ':i'
I do mind if we special-case the code gen for ':'
*':i'
moritz_ does the regex engine ignore adverbs it doesn't understand? 13:16
pmichaud yes.
moritz_ ok
pmichaud (as most methods do)
[Coke] merging two tickets in RT: go to the links section on ticket one. enter ticket 2 in merge. submit 13:17
also be verrrry careful, no undo.
pmichaud ...no undo? I thought I've unmerged tickets before.
anyway, no harm in being careful :)
huf hmm, for is like for LIST BLOCK, right? so how do you pass an existing block to it? 13:21
moritz_ huf: by using map
bbkr [Coke]: thanks, merging works
moritz_ map &block, @list
13:21 ab5tract joined
huf moritz_: no way to do it with for? since i'd expect for and map to be slightly different 13:22
or they arent?
PerlJam good morning #perl6
moritz_ huf: they shouldn't be
PerlJam huf: they are slightly the same :)
moritz_ huf: currently map is lazier
pmichaud for and map are essentially the same. 13:23
moritz_ so you might need to write eager map &block, @list for now
huf so for is just a different syntax, one that needs the block to be there syntacticallt?
moritz_ but only until we get sink context
right
pmichaud I worked on sink context a couple of nights ago and it got... icky. :-(
I decided it was a bit much pre-R*
so, I'm not sure about 13:24
moritz_ right; you probably need to special-case assignment, and maybe other things too
pmichaud sub foo() { my $a = (1..10).map({ .say }); }; foo();
or, more precisely
sub foo() { my $a = (1..10).map({ .say }); }; foo(); 1
huf hmm, so what do you call this property of for that it doesnt allow runtime (or even compile time i guess) passing of the block? :) 13:25
i'd guess if and friends also have this property
moritz_ huf: it's a syntactic form
pmichaud huf: 'for' is a statement :-)
huf: so yes, 'if' and friends also have that characteristics
there's always for @list { &block(); }
huf you havent invented nice names for ALL the concepts? 13:26
pmichaud: i dont have a problem with the way this is, i just want to understand the edges
moritz_ there's also maybe quasi { for @list {{{ &block }}} }
not sure if that works
std: quasi { for @list {{{ &block }}} }
p6eval std 31846: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable @list is not predeclared at /tmp/b3ZnTG52HU line 1:␤------> [32mquasi { for @list[33m⏏[31m {{{ &block }}} }[0m␤Check failed␤FAILED 00:01 129m␤» 13:27
moritz_ std: my (@list, &block); quasi { for @list {{{ &block }}} }
p6eval std 31846: OUTPUT«ok 00:01 132m␤»
huf okay, i'll need to go read more documentation
pmichaud with 13:28
sub foo() { my $a = (1..10).map({ .say }); }; foo(); 1
I wonder if it's the fact that the return value is an item that prevents it from being evaluated eagerly somehow.
13:29 xinming_ joined
dolmen_ rakudo: sub foo(Int @a) { [+] @a }; my $a = [1, 2, 3]; say foo($a); # Difference between $a and @a when both contain an array 13:29
p6eval rakudo 9808d7: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional[Int] but got Array instead␤ in 'foo' at line 22:/tmp/RZvLw72NJ2␤ in main program body at line 22:/tmp/RZvLw72NJ2␤»
dolmen_ rakudo: sub foo(@a) { [+] @a }; my $a = [1, 2, 3]; say foo($a); # Difference between $a and @a when both contain an array 13:30
pmichaud $a isn't an Array of Int there -- it's an Array of Any
p6eval rakudo 9808d7: OUTPUT«6␤»
moritz_ pmichaud: I wonder if the fact that you return a variable (and not a value directly) affects eagerness
pmichaud moritz_: the problem is that at the point where foo() gets evaluated, we don't know that it's a variable 13:31
return only returns values
(unless the sub "is rw")
moritz_ pmichaud: but sink context flows inward
pmichaud moritz_: o_O
do not want()
there's no "flows inward" here.
sink context is applied to the thing returned from foo().... it's not that foo() recognizes "oh, I'm sink context". 13:32
moritz_ hm
I kinda thought we had that exception for sink context - but I might be wrong
that's something we can discuss with TimToady and jnthn at YAPC
jnthn yay YAPC is soon \\o/ 13:33
dolmen_ wonders how to explains sigils to a beginner as $ can contain @ and % too
PerlJam dolmen_: beginners don't need to know that :) 13:34
moritz_ dolmen_: it's rather easy. A $ sigil means that you get one iteration when you do for $thing { ... }\\
dolmen_: wheres with @ and % you get potentially many iterations
pmichaud in php, $ can contain arrays and hashes also, and beginners there don't have a big issue with it :)
dolmen_ pmichaud: the issue is how to tell them to use @ and % instead of always $ as they do in PHP 13:35
PerlJam dolmen_: tell them to always use @ for arrays and % for hashes. 13:36
dolmen_: When/how would you introduce the idea of "context" to a beginner? 13:37
gfldex the problem with PHPlings is that they have hashes but call it array
[Coke] I wouldn't call it context. it's more like coercion.
just be sure to distinguish between array and associative array.
huf gfldex: nope. they have ordered hashes.
dolmen_ rakudo: my $a = <a b c>; map { .say } $a;
huf much worse
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "map { .say"␤»
[Coke] (tcl will have the same issue.) hashes are arrays or dicts, and arrays are lists, there. =-) 13:38
pmichaud dolmen_: need comma
dolmen_ rakudo: my $a = <a b c>; map { .say }, $a;
pmichaud and eager :-)
p6eval rakudo 9808d7: ( no output )
pmichaud rakudo: my $a = <a b c>; eager map { .say }, $a; 13:39
p6eval rakudo 9808d7: OUTPUT«a b c␤»
PerlJam dolmen_: note that there's only one value :) 13:40
dolmen_ PerlJam: oh yes
pmichaud afk for a bit 13:41
dolmen_ rakudo: my $a = <a b c>; say $a.WHAT;
p6eval rakudo 9808d7: OUTPUT«Seq()␤»
PerlJam has some swiss chocolate for "breakfast" 13:42
mathw Good breakfast!
mscha Probably a stupid question: how do you dereference an array ref?
PerlJam mscha: what's an array ref? :)
mscha rakudo: my $a = [1, 2, 3]; for $a { .say; }
p6eval rakudo 9808d7: OUTPUT«1 2 3␤»
mscha rakudo: my $a = [1, 2, 3]; for @$a { .say; }
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "@$a { .say"␤»
PerlJam rakudo: my $a = [1, 2, 3]; for @($a) { .say } 13:44
(you were close)
p6eval rakudo 9808d7: OUTPUT«1␤2␤3␤»
mscha Thx!
dolmen_ would like some chocolate for his "quatre heures" (afternoon snack)
PerlJam mathw: hey! what happened to your github account? 13:45
mathw I changed it
I probably should have told someone I suppose
since it just broke all the URLs for Form
hmm
woops :) 13:46
but I thought, better now than later
github.com/mathw/form now
PerlJam you didn't like mattw ?
mathw no 13:47
I much prefer mathw
and it's consistent with IRC
I even have the domain name now :)
bbkr are there any tests for list laziness? I wonder if rt.perl.org/rt3/Ticket/Display.html?id=64886 can be closed or does it need another test 13:49
moritz_ bbkr: just add a test that puts a last; after the inner say() 13:50
(and don't use say(), but rather an assignment to a variable)
bbkr moritz_: ok 13:51
moritz_ rakudo: my $tracker = 0; for 1..10000000 { $tracker++; last }; use Test; is $tracker, 1, 'yay'; done_testing;
p6eval rakudo 9808d7: OUTPUT«ok 1 - yay␤1..1␤»
pmichaud (tests for laziness) wouldn't be valid. 13:54
moritz_ better if we wrote for 1..* { ... }? 13:57
pmichaud (looking at ticket) -- no, I'm guessing the ticket is fine.
moritz_ iirc infinite lists are guarantueed not to be eagerly evaluated, unless nessesary
pmichaud yeah, that might be better.
13:58 Guest23195 joined
pmichaud the wording in the ticket somehow doesn't follow my notion of 'laziness'. Or, I guess another way of saying it is that 'for' isn't eagerly evaluating its list. 13:58
i.e., that's what we're testing for
but 13:59
13:51 <moritz_> rakudo: my $tracker = 0; for 1..10000000 { $tracker++; last }; use Test; is $tracker, 1, 'yay'; done_testing;
tests the laziness of the argument to 'for', not the laziness of the for loop itself.
moritz_ right 14:00
because the for-loop isn't lazy
bbkr rakudo: [+] 14:02
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "[+]"␤»
pmichaud afk for a bit 14:04
bbkr rakudo: class Foo does Positional[::T] {}; say Foo ~~ Positional # what does this ::T should do? 14:06
p6eval rakudo 9808d7: OUTPUT«1␤»
dolmen_ rakudo: use Test; for (map { is $_, 1, 'yay' } [ 1, 2 ]) { last; }; done_testing; # map is not eager, but for is
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Unable to parse postcircumfix:sym<( )>, couldn't find final ')' at line 22␤»
bbkr rakudo: role A {}; class Foo does A[::T] {} 14:07
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤No applicable candidates found to dispatch to for '_block120'. Available candidates are:␤:()␤␤»
dolmen_ rakudo: use Test; for (map { is $_, 1, 'yay' }, [ 1, 2 ]) { last; }; done_testing; # map is not eager, but for is 14:08
p6eval rakudo 9808d7: OUTPUT«not ok 1 - yay␤# got: '1 2'␤# expected: '1'␤1..1␤# Looks like you failed 1 tests of 1␤»
dolmen_ rakudo: use Test; for (map { is $_, 1, 'yay' }, ( 1, 2) ) { last; }; done_testing; # map is not eager, but for is
p6eval rakudo 9808d7: OUTPUT«ok 1 - yay␤1..1␤»
dolmen_ rakudo: use Test; for (map { is $_, 1, 'yay' }, 1, 2 ) { last; }; done_testing; # map is not eager, but for is 14:09
p6eval rakudo 9808d7: OUTPUT«ok 1 - yay␤1..1␤»
dolmen_ for does not seem to be eager
rakudo: use Test; for (eager map { is $_, 1, 'yay' }, 1, 2 ) { last; }; done_testing; # map is not eager, but for is 14:10
p6eval rakudo 9808d7: OUTPUT«ok 1 - yay␤not ok 2 - yay␤# got: '2'␤# expected: '1'␤1..2␤# Looks like you failed 1 tests of 2␤»
14:12 xabbu42 joined
dolmen_ rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { is $n++, 1, 'yay'; $_ }, @input ) { last; }; done_testing; # map is not eager, but for should be 14:15
p6eval rakudo 9808d7: OUTPUT«ok 1 - yay␤1..1␤»
14:15 atrodo joined
dolmen_ rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { $n++; $_ }, @input ) { last; }; is $n, +@n; done_testing; # map is not eager, but for should be 14:16
14:16 zulon joined
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Symbol '@n' not predeclared in <anonymous> (/tmp/gmENvogOuw:22)␤» 14:16
dolmen_ rakudo: use Test; my @input = <a b c>; my $n = 1; for (map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # map is not eager, but for should be 14:17
p6eval rakudo 9808d7: OUTPUT«not ok 1 - ␤# got: '2'␤# expected: '3'␤1..1␤# Looks like you failed 1 tests of 1␤»
dolmen_ rakudo: use Test; my @input = <a b c>; my $n = 0; for (map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # map is not eager, but for should be 14:18
p6eval rakudo 9808d7: OUTPUT«not ok 1 - ␤# got: '1'␤# expected: '3'␤1..1␤# Looks like you failed 1 tests of 1␤» 14:19
dolmen_ moritz_: that one seems fine
rakudo: use Test; my @input = <a b c>; my $n = 0; for (eager map { $n++; $_ }, @input ) { last; }; is $n, +@input; done_testing; # added explicit eager 14:20
p6eval rakudo 9808d7: OUTPUT«ok 1 - ␤1..1␤»
14:27 perlygatekeeper joined
moritz_ mail.python.org/pipermail/python-de...02306.html first paragraph - au++ got that right from the start :-) 14:34
PerlJam au++ indeed. 14:35
I'm quite surprised to see guido loose the reigns like that though. 14:36
I guess even guido can learn something :)
moritz_ I kinda don't expect him to hand out commit bits quite as freely as we do 14:38
but still, he's moving in that direction
masak pmurias: re yc post being incorrect -- I'd be happy to know how, exactly. if I agree, I might post the reply.
masak logs off and logs in with his own laptop
patrickas maybe we should have a bot that auto gives commit bit to anyone who joins the channel :-) 14:43
moritz_ not so easy, requires an email address :-) 14:44
patrickas so many requirements! 14:45
PerlJam Hi! Would you like a commit bit? Send an email to mumble@perl6.org and you'll get one! 14:46
How about that? :)
14:46 xabbu42 joined
cono how to recover pwd for pugs svn? ^^ 14:47
14:48 xabbu42 joined 14:49 xabbu42 joined
moritz_ cono: /msg me your email address, and I can send a re-invitation 14:51
14:52 masak joined
masak \\o/ 14:52
moritz_ though I usually find them in my ~/.subversion/ directory somewhere :-)
o/ masak
masak it's nice to be back.
hi from an almost unbearably pretty landscape on the west coast of Sweden. 14:53
cono masak: oh hai
masak I'm sitting in the shade of my parents house, finally back on my own laptop.
cono: hi! pack/unpack! :) 14:54
cono moritz_: gnome keyring swollow my password :(
moritz_ you shouldn't be sitting your laptop, y'know
cono masak: yeah. I can't follow the format line :(
masak moritz_: I've been hiking around all over the island for the last four days. I deserve a break :P
cono masak: any s/// produce PMC error
masak commences a long and arduous backlog journey
cono m:g/// does not work
14:54 ruoso joined
masak cono: lots to fix. I know. :/ 14:54
cono: workarounds are the answer right now. 14:55
cono Maybe someone help to choose way to follow format string?
moritz_ cono: you have mail. You might have to remove a port number from the URL, though
masak cono: I'll gladly help; please explain what it is you expect, and how you're getting stuck. 14:57
14:58 pyrimidine joined
masak notices the revert commit f7fdd5120b844c 14:58
moritz_: I'm sorry too :/
cono I tried while $format ~~ s/ ^^ (<[cC]>) // { ...
also while $format { if ($format ~~ s/// ...
masak moritz_: seems first thing we should find out is whether the commit is actually to blame. 14:59
14:59 pwd joined
masak moritz_: did the spectests show this? I think I ran them, but maybe not all the way through... 14:59
cono after that I tried to do wihle $format ~~ m:g/.../
moritz_ masak: I got some random failures in some of the module loading test
masak cono: you can do that with .substr
moritz_ cono: s:g/// should work with newest rakudo
masak so, spectests, IOW.
moritz_ cono: if not, please submit a bug report 15:00
masak moritz_: I'll run the spectests, apply the commit, and re-run the spectests.
cono moritz_: ok. Recompiling. Thanks
masak moritz_: I also have three new commits that build on the reverted one... :)
moritz_ masak: and pls segfaulted - that was my litmus test
15:00 patspam joined
masak moritz_: ok, will test that too. 15:00
cono masak: If it will not working, I will try to do it by substr :)
masak cono: that's the spirit! :) 15:01
moritz_ m:g// is known not to work, but I plan to tackle it this week (though maybe not in time for R*)
masak: sorry for reverting your commit, but working modules were more important to me 15:02
masak moritz_: I understand fully.
bbkr rakudo: my @t = 1; @t ==> @t ==> @t; @t.say # is this correct behavior or a bug (one "1" expected)?
p6eval rakudo 9808d7: OUTPUT«1111␤»
moritz_ (it also broke SVG::Plot, and in turn Math::Model - which I need for my YAPC talk :-)
masak moritz_: sorry for not testing it properly -- I guess I was a Desperate Perl Programmer there for a while... :P
moritz_ np :-) 15:03
I guess it's not really the fault of your code, but rather that it exposes a bug somewhere else 15:04
masak moritz_: let's see, has pmichaud expressed whether he'll build R* off Atlanta, or off HEAD? 15:05
PerlJam probably depends on how much stuff is broken whether it's even an option to build R* off of HEAD :)
15:06 Lorn joined
moritz_ masak: I don't know if there's been a decision yet, but I'd be surprised if he broke the module installer and half of the modules 15:06
masak: so I guess there'll be a point release, on which R* will be based
masak \\o/
bbkr std: 1,
p6eval std 31846: OUTPUT«ok 00:01 116m␤»
masak then I'll keep working on the enums.
bbkr rakudo: 1,
p6eval rakudo 9808d7: OUTPUT«===SORRY!===␤Confused at line 22, near "1,"␤»
masak bbkr: I *think* that one's filed. 15:07
moritz_ I know that 1,, is filed
erm, 1,,2
bbkr it is, i'm checking RT queue on Atlanta build
masak I discovered that my enum commits weren't enough for the book. needed .pick on enumerations as well. and then I added a bunch of other things too.
y'all'll like'em :)
moritz_ masak: you can likely move .pick from Hash to EnumMap or some such 15:08
masak moritz_: well, an enumeration object isn't an EnumMap, it has one. 15:09
moritz_ "huh"
masak bbkr: good work.
moritz_: it sounds odd, but it's *really* nice.
TimToady++
moritz_ masak: an enum is... a type object?
masak sort of.
yes, that's the best description.
it's an "instance" of a singleton class. 15:10
and it's undefined.
I wouldn't be surprised if it does Abstraction.
but I'm not sure of that.
hm, I see this meme sometimes: blogs.perl.org/users/jesse_thompson...rl-12.html 15:14
not sure what I think about it.
PerlJam I tend to think "ick" 15:15
moritz_ agrees with chromatic here
masak aye.
PerlJam Perl 10.07 <-- ubuntu style :) 15:16
15:17 kokajxo joined
PerlJam I guess it would have to be 510.07 and 610.07 or something if both Perls were to adopt that 15:17
mscha rakudo: for 1,1.5...5 { .say } 15:18
p6eval rakudo 9808d7: OUTPUT«1␤1.5␤2␤2.5␤3␤3.5␤4␤4.5␤5␤»
mscha rakudo: for 1,1.5...^5 { .say }
p6eval rakudo 9808d7: OUTPUT«1␤2␤3␤4␤»
mscha Hmm?
masak o.O
oh.
[Coke] if we're stuck with "Perl 6" at this point, I think "<compiler> Perl 6 <version>" is fine, and if they want to say "Perl 5 <12>" with a space, that would also be fine.
masak ...^ NYI
mscha Ah, sorry.
cono rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $1 } 15:19
p6eval rakudo 9808d7:
..OUTPUT«Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤…
15:20 breinbaas joined
moritz_ huh. 15:20
15:20 ltyr joined
moritz_ [Coke]: I guess it will be "Rakudo 2012.07 Perl 6.1.1" or so 15:20
PerlJam [Coke]:
[Coke]: "stuck with" makes it sound like a bad thing. Do you think that's so? 15:21
cono moritz_: no PMC error \\o/
jnthn rakudo: my Str $format = "ccc"; while defined($format ~~ s/^^ (c) //) { say $1 }
p6eval rakudo 9808d7:
..OUTPUT«Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤Any()␤…
masak submits rakudobug
cono bug again? :( 15:22
ok, thank substr :)
than*
masak oh wait
cono: $0
cono oops :)
masak still,
it shouldn't loop that many times.
cono yup (
yeah, only 3 times 15:23
moritz_ rakudo: my Str $format = "ccc"; while defined($format ~~ s/^^ (c) //) { say $format }
p6eval rakudo 9808d7:
..OUTPUT«cc␤c␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤␤�
15:23 justatheory joined
PerlJam I think mscha uncovered a bug. 15:23
cono \\0 I guess
PerlJam rakudo: say (^5).WHAT.say
rakudo: say @(^5).WHAT.say
p6eval rakudo 9808d7: OUTPUT«Range()␤1␤»
rakudo 9808d7: OUTPUT«List()␤1␤»
moritz_ rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $format; last } 15:24
p6eval rakudo 9808d7: OUTPUT«cc␤»
PerlJam rakudo: say 1,1.5 ... @(^5)
p6eval rakudo 9808d7: OUTPUT«1234␤»
moritz_ rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $format; last unless $format }
p6eval rakudo 9808d7: OUTPUT«cc␤c␤␤»
cono solution :)
moritz_ rakudo: my Str $format = "ccc"; while say $format ~~ s/^^ (c) // { say $format; last unless $format }
p6eval rakudo 9808d7: OUTPUT«1␤cc␤1␤c␤1␤␤»
cono moritz_: where is the matched part?
moritz_ cono: gone with the wind? 15:25
moritz_ -> out
cono rakudo: my Str $format = "ccc"; while $format ~~ s/^^ (c) // { say $/.Str; last unless $format } 15:26
p6eval rakudo 9808d7: OUTPUT«Any()<0x5bc7490>␤Any()<0x5bc7490>␤Any()<0x5bc7490>␤»
[Coke] PerlJam: I think that Perl 6 vs. Perl 5 is confusing, yes, and we could probably pick a better name if we tried really hard.... but there's no point now, because it's too late. 15:27
so, I wouldn't put "stuck with" on our marketing slides, but yes. =-)
[Coke] wonders why gabor's feed suddenly slammed planet perl six. 15:28
[Coke] guesses retroactive tagging.
masak blog feeds are hard. 15:29
[Coke] *head bop*
... which looks really wierd as I have no hair.
masak :) 15:30
15:31 _macdaddy joined
ltyr just wondering, anyone heard of the io language? 15:33
masak has 15:34
rgrau__ too
PerlJam too
masak _why used to mention it, during the time he inhabited this plane of existence.
ltyr any good? 15:35
just came across it today
it's relatively small 15:36
small footprint
masak haven't used it any.
ltyr i should give it a try
masak it looks cute, what with ifs and whiles not being built-ins.
ltyr yeah looks cute lol that's the word 15:37
rgrau__ pure OOP prototype based, and with somewhat smalltalk-ish syntax. I liked it, but didn't use for anything useful. install libs was a PITA IIRC
masak I can imagine that I would consider it a bad tool for some things after using it for a while. but I don't know what things beforehand. 15:38
it's fun to see what different languages use juxtaposition for. it's usually something fairly important. io uses it for the method-invocation dot. 15:39
Haskell uses it for the argument/parameter comma.
PerlJam awk uses it for ... string concatenation :) 15:40
15:41 ltyr joined
[Coke] szabgab++ #screencasts 15:41
jnthn
.oO( Perl 6 uses it for ... two terms in a row errors ;-) )
15:43
huf nested functin calls? 15:44
or that's not two terms in a row or that's not allowed anymore?
jnthn huf: Yeah, it's used for that two. They're not considered terms by the parser though, but list ops. Thus why it works. :-) 15:45
huf aha!
jnthn *too
masak jnthn: and many other very useful errors, which are basically 2TIAR errors with DWIM error logic.
jnthn masak: Aye, it's quite rare to see a naked 2TIAR error from STD. 15:46
masak std: "quite" "rare"
p6eval std 31846: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/tC8ouElK5b line 1:␤------> [32m"quite" [33m⏏[31m"rare"[0m␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 115m␤»
jnthn :P
PerlJam heh
masak :)
15:47 macroron joined
masak std: time time 15:48
p6eval std 31846: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/EbbsnK9hvQ line 1:␤------> [32mtime [33m⏏[31mtime[0m␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Parse failed␤FAILED 00:01 115m␤»
jnthn std: time for beer 15:49
p6eval std 31846: OUTPUT«[31m===[0mSORRY![31m===[0m␤Undeclared routine:␤ 'beer' used at line 1␤Check failed␤FAILED 00:01 115m␤»
jnthn Aww
jnthn notes that undeclared routines are actually a compile time error now. 15:50
Wonder how many false positives we'll get on that when first putting it into Rakudo.
jnthn suspects a few.
masak std: warn -- time for now 15:51
p6eval std 31846: OUTPUT«ok 00:01 115m␤»
jnthn rakudo: warn -- time for now
p6eval rakudo 9808d7: OUTPUT«Could not find sub &now␤ in main program body at line 22:/tmp/D59x0kaRtl␤» 15:52
jnthn now NYI?
Or STD out of sync with current DateTime spec?
masak I think now still exists. 15:56
15:56 Ross^ joined
masak but there was something blocking its implementation in Rakudo, IIRC. 15:56
[Coke] (my$i=11;$i++**2..*Z-$i+3,$i,7,$i+8,$i+3)>>.chr.say 16:00
rakudo: (my$i=11;$i++**2..*Z-$i+3,$i,7,$i+8,$i+3)>>.chr.say
p6eval rakudo 9808d7: OUTPUT«jnthn␤»
masak [Coke]++
16:01 Tene_ joined
jnthn Well, it has two letters in common with JAPH. :P 16:01
masak std: my$i=11 16:02
p6eval std 31846: OUTPUT«ok 00:01 117m␤»
jnthn eww
masak nah, 't's kosher. the sigil is a wb :)
so is the '='
jnthn Though not surprising. 16:03
ae
*aye
[Coke] æ 16:04
16:04 __sri joined
bbkr rakudo: class A {}; say (A.new, A.new).sort # is this correct output? 16:12
p6eval rakudo 9808d7: OUTPUT«A()<0x82b09f0>A()<0x82b1170>␤»
16:13 eternaleye joined
masak bbkr: what would you expect it to sort on? 16:13
PerlJam bbkr: it looks correct to me 0x82b09f0 comes before 0x82b1170 :) 16:14
bbkr masak: IMO this is correct - sort used "~A.new" output, but I want to be sure before taking rt.perl.org/rt3/Ticket/Display.html?id=71258 for tests 16:15
masak bbkr: looking.
bbkr: the ticket has two parts. the above shows that the first part is fixed. 16:16
16:16 justatheory joined
bbkr masak: second part works also 16:17
rakudo:
class A {}; multi sub cmp(A $a, A $b) { 1 }; say (A.new,
A.new).sort
p6eval rakudo 9808d7: ( no output )
bbkr rakudo: class A {}; multi sub cmp(A $a, A $b) { 1 }; say (A.new, A.new).sort
p6eval rakudo 9808d7: OUTPUT«A()<0x69f1460>A()<0x6a1d7a0>␤»
masak rakudo: class A { has $.x }; multi sub cmp(A $a, A $b) { $a.x <=> $b.x }; say (A.new(:x(2)), A.new(:x(3)), A.new(:x(1))).sort 16:19
p6eval rakudo 9808d7: OUTPUT«A()<0x73823e0>A()<0x7384300>A()<0x73861e0>␤»
masak er :)
rakudo: class A { has $.x; method Str { $.x } }; multi sub cmp(A $a, A $b) { $a.x <=> $b.x }; say (A.new(:x(2)), A.new(:x(3)), A.new(:x(1))).sort
p6eval rakudo 9808d7: OUTPUT«123␤»
masak \\o/
bbkr: yes. it should be taken for tests. 16:20
pugssvn r31847 | Kodi++ | [t/spec] Fixed some Instant and Duration tests and fudged some for Rakudo.
bbkr BTW: how to get class instance memory address that can be assigned to variable? 16:21
jnthn .WHERE
bbkr rakudo: class A{}; A.new.WHERE.say
p6eval rakudo 9808d7: OUTPUT«130402704␤»
bbkr jnthn: thanks! 16:22
pmurias ruoso: ping 16:24
ruoso: where should v6::mildew keep the executable? 16:26
16:27 mberends joined
masak mberends! \\o/ 16:29
mberends ahoy, masak? long time no chat for me. 16:30
masak yeah, same here.
mberends hopes Rakudo * is not delayed as a result 16:31
masak greetings from sunny Lyr, Orust, Sweden.
jnthn masak: Oh, that's why the sun ain't here today. You have it. :P 16:32
16:32 cdarroch joined
masak we do indeed. but it's heading west fast. 16:32
jnthn o/ mberends :-)
mberends yo jnthn! 16:33
we must remember #phasers tonight
Su-Shee you are not planning a delay, are you?
PerlJam no one is planning a delay that I know of. 16:34
Su-Shee has written her ass off to get two articles out in time to spread the word of the release.
mberends no, happily everyone is keen to stick to the planned date
Su-Shee PerlJam: _that_ is a dangerous quote - we call it "noone is planning to build a wall" here in berlin ;) 16:35
masak mberends: thanks for the reminder about #phasers.
16:35 tylercurtis joined
PerlJam Su-Shee: I was about to ++ you for writing your ass off, but now I'm not so sure :) 16:35
Su-Shee++ (sorry about your ass ;) 16:36
pmurias masak: re yc post i think that the post is wrong in that lots of people like grammars without first doing needless formalisation
Su-Shee PerlJam: *hehe* well I'll get the stuff finished in time but if it takes a week longer, it doesn't really matter in terms of content.
unless you suddenly abandon sigils or something.
masak pmurias: I think so too.
jnthn Ooh, which post? 16:37
dalek kudo: ac8a2ae | (Solomon Foster)++ | src/core/ (4 files):
Add Numeric.isNaN, Real.isNaN, Num.isNaN, and Complex.isNaN, and use them to
pmurias masak: we did a bit of first to the formalisation the code that do approach at the compiler construction code at uni 16:39
masak: and it seems to be a very bad way
masak: as the ugliness of the formalism gets translated to ugly code 16:40
masak jnthn: news.ycombinator.com/item?id=1543982
moritz_'s answer seems to cover many of these points.
moritz_++
[particle] colomon++ for isNaN... can i get .sign, too?
masak [particle]: there should be one. 16:41
[particle] rakudo: -1.sign.say
p6eval rakudo 9808d7: OUTPUT«1␤»
[particle] rakudo: 1.sign.say
masak [particle]: precedence.
p6eval rakudo 9808d7: OUTPUT«1␤»
[particle] ah 16:42
masak rakudo: say (-1).sign
p6eval rakudo 9808d7: OUTPUT«-1␤»
[particle] rakudo: say -1.sign
PerlJam that gets people every time.
p6eval rakudo 9808d7: OUTPUT«-1␤»
[particle] of course. joy!
PerlJam It may be one of the first Perl 6 FAQs
colomon rakudo: say -1.sign
p6eval rakudo 9808d7: OUTPUT«-1␤»
masak [particle]: that works, but not for the reason you might think.
colomon right
it's -(1.sign)
masak nod
pmurias masak: and i don't that hand writing parsers should be tought at uni 16:43
colomon I can't decide if that is right or horribly, horribly wrong.
masak pmurias: why not?
[particle] rakudo: say -1.0.sign #curious
p6eval rakudo 9808d7: OUTPUT«-1␤»
masak [particle]: what are you trying to prove? :)
colomon the crazy thing about -1.sign.say is that it is 1(1.sign.say)
[particle] just checking about floats and dots
16:43 ashleydev joined
masak [particle]: well, regardless of precedence, -1.0.sign would give -1 16:44
PerlJam pmurias: sure it should be taught. You start off with "this way is painful" and you move towards "here are some tools that make it less painful" and hopefully end with "here are some tools that make it fun"
pmurias masak: it's the sort of things that people come up by themself
jnthn pmurias: I think people understanding the underlying concepts is useful. Teaching them there are tools that make it easier to utilize said concepts also matters too though. :-)
16:45 Intensity joined
PerlJam pmurias: I think you're a victim of a form of confirmation-bias. 16:45
[particle] rakudo: say sign -1
p6eval rakudo 9808d7: OUTPUT«-1␤»
jnthn I disagree with the post though. If you're designing some language to parse, it's likely going to be iterative, in which case having a grammar in an easily modifiable form is helpful.
PerlJam pmurias: they'll come up with a hand-tooled parser by themselves *maybe*. Not all CS people have the same experiences. 16:46
[particle] the precedence rules there will lead to the 's/./ / && .reverse' refactor
masak why am I getting only failures when running the spectests?
seems 'use Test' prompts the error 'Could not find sub &Nil'
anyone else getting this?
PerlJam masak: you're getting an older Test.pir from somewhere 16:47
masak I just rebuilt everything.
jnthn masak: It may be an installed one.
(That bit me.)
masak maybe I need to hose my ~/.perl6/lib too.
PerlJam masak: or at least search it for Test.*
masak hm, no Test.pir in there. 16:48
going for the installed one.
pmurias PerlJam: i don't like the here's the painful way and here's the better way approach 16:49
masak yah, works better now.
ooc, why should installed dirs trump . ?
pmurias PerlJam: it seems like first telling someone to dig a hole with their bare hands and then give them a shovel
bbkr rakudo: class Boo { method new() { } }; say Boo.new.WHAT; # why Parcel? (testing rt.perl.org/rt3/Ticket/Display.html?id=72836) 16:50
p6eval rakudo 9808d7: OUTPUT«Parcel()␤»
masak pmurias: isn't that how things generally are tought?
bbkr: because Nil is a Parcel.
jnthn masak: Securiy reasons apparently.
masak jnthn: ok. I'm sure you've thought about this. I'd just like to hear the security reason spelled out. 16:51
that is, if I have clearance. :)
jnthn masak: Denied!
masak damn!
bbkr masak: oh, so if that's the expected output then this ticket is fixed, right?
tylercurtis masak: is . in your PATH?
bbkr rakudo: class Boo { method foo() { } }; say Boo.foo.WHAT 16:52
p6eval rakudo ac8a2a: OUTPUT«Parcel()␤»
masak tylercurtis: no. but as a programmer I have bigger control/responsibility over things like that.
pmurias masak: i had my Compiler Construction course tought that way
it wasn't very good 16:53
masak tylercurtis: in particular, I expect a ./Foo.pm to override and installed Foo.pm
jnthn masak: Yes, that's what you want for *development*, I agree. However, for production, I'm told that's a bad idea.
tylercurtis pmurias: it seems more like "here's how to write quicksort, but you should usually just use the built-in sorting function if your language provides one".
jnthn masak: Somebody who actually groks sysadmin can probably explain it. :-)
masak I'm willing to be convinced. 16:54
jnthn masak: I think it's something like, the version in the same directory of the script is more liable to being overwritten in some attack, whereas the globally installed one probably needs root privs to mess with.
masak: And having somebody replace your DBI with a trojan'd version that mails off whatever passwords are passed to it is probably a not nice thing. 16:55
16:55 kjeldahl joined
jnthn (Granted you'd have to have a vuln for that to be done, but security in depth and all that lot.) 16:55
masak jnthn: gotcha. 16:56
pmurias masak: the way i would prefer things to be taught is here's how use a grammar generator and they learn how to write one
bbkr rakudo: Rat.^add_method('x', method () {}).x 16:57
p6eval rakudo ac8a2a: OUTPUT«Null PMC access in find_method('x')␤ in main program body at line 22:/tmp/6uXdX3v8xP␤»
jnthn pmurias: To write a grammar, or to write a grammar generator? :-)
pmurias grammar generator
jnthn bbkr: That ain't going to work out even if it handed back Nil. :-)
pmurias writing a grammar generator would be fun
handwriting a shift-reduce table wouldn't 16:58
bbkr jnthn: why? if so, should rt.perl.org/rt3/Ticket/Display.html?id=72916 be rejected? 16:59
tylercurtis masak: As well as the security issues, what if you run a script that happens to be written in Perl 6 in lib/Foo/ and the script has a "use Bar;" and you just happen to have a Foo::Bar module in the project you're working on. You probably don't want to override Bar with Foo::Bar.
masak tylercurtis: good point.
jnthn bbkr: add_method doesn't return anything really, afaik 17:00
Tene masak: the traditional example is with $PATH for binaries. If you have write access to your home directory, and you can trick the sysadmin to cd to your home dir and run 'ls', you could have a binary there that installs a backdoor as the sysadmin's privilege level, removes itself, and then invokes the 'real' ls.
pmichaud back again
jnthn bbkr: No, Null PMC Access is always wrong
bbkr: So don't reject the ticket for that
o/ pmurias
er
o/ pmichaud
masak pmichaud: \\o
bbkr jnthn: ok, leaving unchanged.
colomon \\o 17:01
jnthn #phasers in ~ 2 hours?
masak pmichaud: I'll have an S26 proposal ready for you Real Soon Now.
pmichaud masak: \\o/
RT #72916 .add_method really needs to return something. 17:02
pmurias masak: what were you tought in the "first do it the hard way then the good one way"
colomon geez, almost forgot about #phasers
17:02 ruoso joined
tylercurtis masak: On the other hand, explicitly overriding the search path is useful in some cases(although even better in many cases would be being able to say "override the search path for these modules to this place". 17:02
pmurias ruoso: ping
masak pmurias: not so much "the hard way" as "the unsugared way".
bbkr rakudo: 1/2.''()
p6eval rakudo ac8a2a: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤ in main program body at line 22:/tmp/q4JqLeCoUY␤»
jnthn pmurias: Nil 17:03
gah!!!
jnthn gives up tab completion
pmichaud jnthn: yes, I agree.
jnthn pmichaud: Nil I guess
pmichaud: I'm not going to worry about it though
pmichaud: When ClassHOW is re-written in NQP we get that for free.
Tene any plans to get the R* release mentioned on perl.org etc? 17:04
tylercurtis masak: And if you really want to be able to replace the installed Foo.pm with ./Foo.pm, there's always PERL6LIB="."
bbkr rakudo: [[]].''().perl.say 17:05
p6eval rakudo ac8a2a: OUTPUT«too few positional arguments: 1 passed, 2 (or more) expected␤ in main program body at line 22:/tmp/IAjyiX0K2V␤»
pmichaud Tene: good thinking, I'll see about contacting the relevant folks.
PerlJam presumably since chromatic is re-launching perl.com, it would be good to mention the R* release there too 17:06
ingy greetings
PerlJam ingy: greets
ingy hi PerlJam
masak tylercurtis: aye. I'll probably do PERL6LIB='lib/' and have things in lib/ anyway. 17:07
bbkr rakudo: say ClassHOW.methods(ClassHOW) # RT #73142 17:08
p6eval rakudo ac8a2a: OUTPUT«Null PMC access in inspect_str()␤ in main program body at line 22:/tmp/9x4OxadasK␤»
ingy how do you define how your class objects stringify/cast?
mberends masak: in summary, what are you proposing to do to S26? Remove the impossible bits?
PerlJam ingy: $obj.Str()
ingy PerlJam: sub Str{} ?
pmichaud ingy: you mean the type objects? someday it will be: method Str($self:U) { ... }
at present we don't have a way to do it.
ingy k
masak mberends: I promised pmichaud/szabgab to write up a grant proposal for implementing parts of S26 in Rakudo, possibly also updating S26 a bit. 17:09
17:09 justatheory joined
masak mberends: would be nice to hear if you have any opinions to share from implementing your Pod parser. 17:09
jnthn pmichaud: Also means that we probably don't want our type objects to be a different type to the things they produce as instances. 17:11
ingy masak: I grant you permission to implement S26 :P
masak :)
jnthn pmichaud: Which is a view I've been converging on anyway.
pmichaud jnthn: I don't think that's a requirement, but I'm fine with going that way if it seems righter
the main purpose of the :U is simply to make sure it doesn't respond that way for .Str on a non-type object 17:12
jnthn pmichaud: It mostly hangs on if we can get ACCEPTS to reliably work on type objects.
pmichaud aye.
jnthn pmichaud: Something to try and go over at YAPC. :-) 17:13
mberends masak: It Pod::Parser would be a good post R* hackathon project for Pisa. It's definitely worth getting at least a subset operational, because currently there is no incentive for programmers to include Pod in their Perl 6 code.
jnthn pmichaud: 'cus it'll be easier in meatspace and maybe with a whiteboard. :-)
masak mberends: I'd like a simple way to get HTML JavaDoc-like output out of a Perl 6 module.
jnthn pmichaud: I'm going to have another crack at the role outers bug later on today too.
PerlJam jnthn++ 17:14
jnthn Just ran out of energy last night after some hours on it.
tylercurtis Does Rakudo support the method name ($self: ) {...} form of method declaration yet?
jnthn should do
You having problems using it?
masak tylercurtis: it's been in for a long time, I think.
tylercurtis oops. Nevermind. I see my mistake. 17:15
jnthn Phew. :-)
pmichaud jnthn: okay.
jnthn OK, my hands need a little rest from the keyboard, and I need to do my Russian homework. bbiab :-)
ruoso pmurias, pong 17:16
ruoso checking if the messages were lost or not
mberends masak: it's bitrotted, but the old Pod::Parser also had an HTML emitter, so recovery is likely to succeed. And with a little bit of support from within Rakudo, it will probably perform more efficiently, which was a problem back in the day.
17:16 kokajxo joined
masak mberends: I remember. 17:17
ruoso pmurias, can it store the file alongside with the source? (as the .pmc)
maybe .pmc.so for the compiled code and .pmc for the code calling the .so
masak mberends: but serializing to HTML would not be enough. it'd also need context detection and styles.
pugssvn r31848 | colomon++ | [t/spec] Make the NaN tests more thorough. 17:20
PerlJam I started reworking the regexes chapter of the book. I've changed the first example and I wanted some feedback. It's at gist.github.com/492542 17:24
masak jnthn: it strikes me that the easiest way to solve the Makefile problems on Windows is to not create a Makefile on Windows. 17:25
pmurias ruoso: we could store the compiled code in the .pmc but wouldn't that impact code sharing?
[Coke] which makefile problems on windows?
pmurias ruoso: how much interop do we need for use v6-mildew to support? 17:26
[Coke] has dug through parrot's makefile in the past to windows-friendify things.
pmichaud PerlJam: works for me
I agree... "which makefile problems on windows?" 17:27
my plan thus far this morning has been to keep using makefiles to build things in R*
pmurias stuff like sub foo {print $_[0]};use v6-mildew;sub bar {foo("hi\\n") };no v6-mildew;
ruoso: one thing i'm unsure of is how is the v6 dist assembled 17:28
ruoso: what i currently have working is a modification on the one on CPAN
ruoso: but i think v6,v6::alpha and v6::mildew should be released separatly as v6::alpha bitrotted a bit and it's installation needs to be forced 17:29
17:31 markjreed joined
markjreed rakudo: say [+](2..7),8,9 17:31
p6eval rakudo ac8a2a: OUTPUT«44␤»
markjreed so functional notation no longer works on list operators. intentional change, or bug? 17:32
pmichaud markjreed: I'm guessing bug.
markjreed: depends on what the spec currently says.
17:34 thepler joined
markjreed per S03, it should still work as long as there's no whitespace between the operator and the first arg. 17:34
pmichaud then, bug.
markjreed I'll file a bug.
Thanks... 17:35
PerlJam rakudo: say [+]() 17:37
p6eval rakudo ac8a2a: OUTPUT«0␤»
PerlJam rakudo: say [*]()
p6eval rakudo ac8a2a: OUTPUT«1␤»
PerlJam markjreed: where does it say this in S03?
17:37 xabbu42 joined
pmichaud rakudo: say [*](),2,3 17:39
p6eval rakudo ac8a2a: OUTPUT«6␤»
pmichaud I'd expect that to be "123" and not "6"
masak why? 17:40
pmichaud because [*] is a normal list operator
Tene PerlJam: why not: my token word { ... } ?
pmurias ruoso: re messages were lost? i didn't get any thing on /msg
masak pmichaud: does the lack of whitespace matter?
pmichaud masak: compare "say(),2,3" and "say (),2,3" 17:41
(say is also a listop)
markjreed "If there is no whitespace, subsequent parsing depends on the syntactic category of the next item. Parentheses (with or without a dot) turn the list operator into a function call instead"
17:41 kokajxo joined
PerlJam markjreed: thanks. 17:42
markjreed Seems to work for named functions, but not for metaops.
pmichaud right, it's undoubtedly a parsing issue for metaops.
masak afk
pmichaud we should see how STD.pm6 handles the parsing and follow that. 17:43
PerlJam Tene: Well, I was trying to avoid <word=&word> but I guess (<&word>) is easy enough to explain
17:43 markjreed left
pmichaud PerlJam (and others): has anyone taken a look at docs/review-notes.txt ? 17:44
PerlJam pmichaud: briefly.
pmichaud explaining &word to non-Perl programmers might be tricky
<$word> doesn't suffer from that problem.
17:44 markjreed joined
markjreed submitted [perl #76758] 17:45
pmichaud anyone have any strong opinions about how to give release numbers to the R* series? 17:46
or what our typical package name would be?
jnthn pmichaud: The problem is that the makefiles pls generates don't work on nmake
pmichaud jnthn: oh, then perhaps we need to make pls smarter
jnthn: although in that case I can see the advantage of avoiding make altogether. 17:47
PerlJam pmichaud: Rakudo-Star-2010.07 (I don't know if that's a strong opinion, but that's what I think about it right now)
jnthn pmichaud: Worse, I also discovered that Zavolaj's Makefile doesn't work either.
pmichaud PerlJam: .lc, perhaps?
PerlJam pmichaud: sure, that works
jnthn pmichaud: Which won't be fixed just by fixing please. 17:48
uh
pls
:-)
tylercurtis pmichaud: (Rakudo *), (Rakudo *+1), (Rakudo *+2) ... *; # Not a strong opinion, and somewhat of a joke, but it's a thought. :)
Tene * ** *** ****
PerlJam ***1 ***2 ***3 ***4 ***5 :)
Tene or just go through the ops: *, +, =
pmichaud Tene: what happens when we get to &[R*] then ? ;-) 17:49
PerlJam heh
pmichaud (i.e., the 'R*' op)
Tene Or continue to name it after class literals, *, Int, Str
Rakudo ClassHOW
jnthn By Rakudo *********************** it'll be hard to read which release we're talking about. :-)
pmichaud yes, I'm also curious if we want code names for the releases.
huf jnthn: surely uou can do '*'x$version_nr 17:50
PerlJam As soon as people make the connection between * and Whatever, we'll get jokes like "Perl 6 ... whatever"
pmichaud PerlJam: that will still be better than "Perl 6 ... DNF"
[particle] yes, but at runtime that joke will throw an exception
PerlJam pmichaud: I'm perfectly happy with rakudo-star-2010.07 and no "code name" (where did the multiple moniker meme come from anyway?) 17:51
mberends I think very few people remember what the code name means. Oslo, when was that again? 17:52
[particle] there's little reason for a code name if a release happens on a defined schedule
tylercurtis pmichaud: when we get to &[R*], it's Rakudo R*, which behaves identically to Rakudo *.
[particle] if feature completion determines the release date, then a release code name makes more sense 17:53
PerlJam [particle]: we should tell the ubuntu folks that.
17:53 Ross^ joined
ruoso pmurias, I think it would be cool if v6::alpha could be splitted from v6 17:54
pmichaud in the ubuntu case, it's far easier to search for "lucid" than "10.04", though.
[particle] yes, agreed
PerlJam (I really have no idea what the ubuntu code names are, I always have to look them up. But I do remember 9.04, 9.10, 10.04, etc.)
jnthn pmichaud: I'd go without code names for R* for now.
imho
[particle] in the future, if we need code names for releases, we can lazily evaluate them for the past releases
PerlJam [particle]++
pmichaud when I'm looking for a bug report, "screencast ubuntu lucid" is much better for searching than "screencast ubuntu 10.04" 17:55
Su-Shee make butterfly species the code names.
[particle] butterflies are for perl 6, we need codenames for rakudo *
star names.
pmurias ruoso: currently v6.pm is a 17 line file which redispatches import 17:56
[particle] rakudo * "james woods"
PerlJam pmichaud: really? I just tried it and the results, though different in detail, look comparable.
[particle] rakudo * "marilyn monroe"
kokajxo caml latin names
camel*
Su-Shee Can I get rakudo * "johnny depp"? :)
17:56 plainhao joined
pmichaud PerlJam: my example was perhaps not the best. But having the extra handle does often make a difference. 17:57
[particle] perl is moving away from the camel, as that's an o'reilly trademark
ruoso pmurias, I think fglock wouldn't mind if v6::alpha was shipped as a different module
pmichaud also, the camel is more associated with perl 4+5
colomon star names in alphabetical order works for me.
pmichaud oooooooh
star names
I likey.
PerlJam colomon: so ... "rakudo * wolf-359" ?
pmichaud "Antares" "Betelgeuse" "Castor"
PerlJam rakudo * "sirius" 17:58
[particle] pmichaud: i thought we had talked about that before, that's why i started riffing on it with hollywood stars off the bat
pmichaud [particle]: maybe I missed it or wasn't present
[particle] i think we start with Arcturus
huf use old hollywood stars for a touch of class
pmurias ruoso: creating tarballs and showing them to fglock for approval/releasing is a resonable plan?
colomon PerlJam: what pmichaud said.
ruoso pmurias, yes...
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ }; G.parse('abc', :actions(A))
p6eval rakudo ac8a2a: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤» 17:59
[particle] it's a summer star (northern hemisphere) and you get to it with the phrase "arc to arcturus" by following an arc of stars in the big and little dippers
tylercurtis What's the origin of Rakudo's name?
[Coke] (code name)-- -- --
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; G.parse('abc', :actions(A))
p6eval rakudo ac8a2a: OUTPUT«abc␤»
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; G.parse('abc', :actions(A.new))
p6eval rakudo ac8a2a: OUTPUT«abc␤»
PerlJam tylercurtis: It's kudos to the sun god Ra
ingy \\o/
[particle] there should be a module or utility to convert release dates and code names
so people can ask rakudo what code name 2010.07 is and vice versa 18:00
pmurias ruoso: do we need mildew code with v6-mildew to see the surrounding p5 lexicals?
[Coke] (wolf 359) there is a Wolf Road here in Albany, NY, kind of a commercial hub. There is ALMOST enough room to put something at 359 Wolf. I want to put in a geek bar or something.
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; $a = A.new; G.parse('abc', :actions($a)) 18:01
p6eval rakudo ac8a2a: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/YC5zmZEqZL:22)␤»
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { say ~$/ } }; my $a = A.new; G.parse('abc', :actions($a))
p6eval rakudo ac8a2a: OUTPUT«abc␤»
pmurias ruoso: is the goal with v6-mildew to allow writing a hybrid program or just a convenient way to run a script? 18:02
PerlJam tylercurtis: really, it's japanese. A contraction of rakuda-do -- way of the camel (or something like that)
tylercurtis: See rakudo.org/node/18
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { has $v is rw; method r($/) { $.v = ~$/ } }; my $a = A.new; G.parse('abc', :actions($a)); say $a.v 18:03
p6eval rakudo ac8a2a: OUTPUT«Method 'v' not found for invocant of class 'A'␤ in 'A::r' at line 22:/tmp/qzcqyDEObl␤ in 'G::r' at line 22:/tmp/qzcqyDEObl␤ in 'G::TOP' at line 22:/tmp/qzcqyDEObl␤ in 'Grammar::parse' at line 5532:CORE.setting␤ in main program body at line 22:/tmp/qzcqyDEObl␤»
pmichaud tylercurtis: en.wikipedia.org/wiki/Rakudo_Perl#Name
ingy rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { has $.v is rw; method r($/) { $.v = ~$/ } }; my $a = A.new; G.parse('abc', :actions($a)); say $a.v
p6eval rakudo ac8a2a: OUTPUT«abc␤»
ingy ok, that's nice...
18:03 isBEKaml joined
ingy I can keep parse state in my actions object 18:03
pmichaud even better, keep it in your match objects 18:04
18:04 timbunce joined
ingy pmichaud: I haven't bought into that... 18:04
pmichaud rakudo: grammar G { rule TOP {^ <r> $}; rule r { 'abc' } }; class A { method r($/) { make ~$/ } }; G.parse('abc', :actions(A)).ast.say;
p6eval rakudo ac8a2a: OUTPUT«Any()␤»
pmichaud oops 18:05
oh, yeah.
tylercurtis pmichaud++ PerlJam++, thanks. I actually looked at the wikipedia page and failed to notice that paragraph.
pmichaud since it did TOP
ingy pmichaud: I'm trying to leave as much p6 out of p6r as possible :)
pmichaud ah, okay.
pmurias sorear: how can i update stage0 after renaming some modules? 18:06
pmichaud #phasers in.. 52? 18:08
ruoso pmurias, wow... if we could make it see surrounding p5 lexicals it would be JUST AWESOME
jnthn pmichaud: *nod*
pmichaud okay. time for lunch, then #phasers
ruoso pmurias, it certainly wasn't the initial plan, but if it's possible, it certainly is worth it...
tylercurtis masak: are you around? 18:10
masak tylercurtis: I think so.
tylercurtis Does ufo attempt to detect dependency cycles?
masak no.
sorear pmurias: make reboot is the safe way 18:11
masak tylercurtis: it's not safe for it to do so, because given the way it finds dependencies, the risk of false positives is high.
tylercurtis masak: alright. Thanks. Reading ufo's source is evidently not the solution to my optimization ordering needs for my GSoC, then, although it'll probably help with the sorting part. :) 18:15
masak tylercurtis: detecting cycles using the algorithm from ufo is not only feasible, but simple. 18:16
but it doesn't currently do it.
pmurias sorear: make: *** No rule to make target `stage0/STD/Actions.pm', needed by `stage0/.stamp'. Stop. 18:17
ruoso: so what do we have left in the plan, v6-mildew and Forest::Gtk2? 18:18
ruoso: it might make sense to make the v6-mildew code see the surrounding lexicals 18:19
ruoso I think in the first version, we make the simpler... 18:20
pmurias, and if there's time left we add support for seeing the surrounding lexicals 18:21
pmurias after Forest::Gtk2? or before that? 18:22
tylercurtis masak: by keeping track of the path from the initial vertex to the current and checking for the current node being in it before now? Or is there a more space-efficient way?
masak tylercurtis: hold on. recalling specifics. 18:24
ruoso pmurias, I think it can be after Forest::Gtk2
pmurias releasing Forest::Gtk2 is mostly a matter of thinking how the API should look like
masak tylercurtis: right. you have to keep a stack and then check for membership in that stack. just checking for visitedness, is not enough, as can be seen from a diamond A->B->D, A->C->D pattern. 18:25
tylercurtis masak: Thanks. I'll use that approach. If it turns out there's a better algorithm, I'm blaming it on you, okay? ;) 18:27
masak tylercurtis: it's a deal :) 18:28
tylercurtis: you abort on the first cycle you find, right?
tylercurtis masak: Right. 18:30
masak then it should be enough, and optimal.
StackOverflow seems to like Tarjan's strongly conncted components algorithm. stackoverflow.com/questions/261573/...cted-graph 18:31
but it seems to be overkill for this particular use case IMO.
oh wait. that algorithm actually seems pretty close to what we've been discussing. :) 18:32
tylercurtis It does. :) 18:34
pmurias ruoso: sent a patch to fglock to make v6.pm pluggable 18:35
ruoso cool 18:42
mberends masak: The most practical S26 change that I want to suggest is to also accept a subset of Perl 5 Pod, provided it is enclosed by =pod and =cut (make them aliases for =begin pod and =end pod). 18:50
18:50 lue joined
lue wello there #perl6 o/ 18:50
mberends helluo! 18:51
pmurias sorear: any idea how to get around that makefile error? 18:52
masak mberends: I'll have to think about that. I think I see whence you're coming, but it also serves to make S26 (and implementations) more bloated, not less.
masak wonders whether www.reddit.com/user/Dominate_Me_Perl_6 is a net PR win or not :)
huello!
pmurias masak: cycles in a graf just check for grey colored nodes
frettled mberends o/ 18:54
mberends \\o frettled
frettled masak: that's definitively a net PR win
lue
.oO(Woah! Only 4 ops!)
18:55
18:55 masak` joined
frettled and 138 noops! 18:55
pmurias masak: it demonstrates that your PR efforts won over the reddit crowd ;)
frettled lue: ironically, the noops are the doers ;)
lue last time I was here there were ~14. And we had <100 people here. 18:56
patrickas lue I think there is less need for ops now ...
18:57 literal joined
lue before The Boot, we had 200+ people and 16 ops. 18:57
moritz_ lue: since we have now firm control over the channel via chanserv, we don't have to display our arms
lue .oO[ I guess I can finally lop off those stupid limbs then :) ] 18:58
[particle] do we have enough folks with rights? 18:59
moritz_ [particle]: yes
lue alright, just wondering what happened.
[particle] excellent.
mberends reminder: #phasers
moritz_ oooh
forgot that
frettled mberends: wozzatforthen?
mberends frettled: here, take this /join command and do something with it ;) 19:00
frettled mberends: ooh 19:01
lue or if your client is cool, click here -> #phasers
frettled my client is so cool that it won't take clicks from nobody
19:02 azert0x joined
patrickas my client pretends to be cool (changed cursor over the name) but did nothing when I clicked! Such a poser! 19:03
isBEKaml right click and join? :)
jnthn pmichaud: #phasers time, if you're about. 19:04
isBEKaml damn, I spoiled the joke! :D
patrickas right click and join is for regular clients! all the cool kids just click nowadays :-) 19:05
lue
.oO(ooh, I'm on the lost moon of Poosh. This'll be a fun #phasers for me)
19:05 nathanchrisman joined 19:06 cono joined
isBEKaml whoa, I can click too! :) 19:06
19:11 justatheory joined, alfieANDfred joined 19:14 timbunce joined
lue rakudo: my postfix:<!>($a) { [*] 1..$a }; say 5! # 120 19:15
p6eval rakudo ac8a2a: OUTPUT«===SORRY!===␤Malformed my at line 22, near "postfix:<!"␤»
masak lue: 'sub' 19:16
lue rakudo: sub postfix:<!>($a) { [*] 1..$a }; say 5! # 120
p6eval rakudo ac8a2a: OUTPUT«120␤»
masak rakudo: my sub postfix:<!>($a) { [*] 1..$a }; say 5! # 120
p6eval rakudo ac8a2a: OUTPUT«120␤»
19:16 sjohnson joined
sjohnson i got kicked out *sad face* 19:16
power struggle 19:17
masak hugme: hug sjohnson
hugme hugs sjohnson
sjohnson heheh
lue I love Perl6 every time :) [who knows how much code it would take in other languages]
pmurias sjohnson: were did you get kicked out from?
frettled sjohnson: the good guys won
sjohnson audrey t.
frettled sjohnson: nopes, just a nickstealer 19:18
patrickas sjohnson someone pretending to be audery t :-(
sjohnson thought she was makin a pugs comeback
woe are us
frettled sjohnson: Audrey's nick is au|irc / au|irc_
And she's been making a Perl 6 comeback :)
masak au++ \\o/ 19:19
sjohnson #perl6... the source of inexhaustible good news
new slogan
patrickas There can't be enough ++es for au++ !
sjohnson heh. i have a white-belt in perl6 knowledge 19:22
lue .u ✩
phenny U+2729 STRESS OUTLINED WHITE STAR (✩)
19:24 whee joined
jnthn lol...stress out :-) 19:24
lue .u 1F4A9
phenny lue: Sorry, no results for '1F4A9'.
isBEKaml .u U+1F4A9 19:25
phenny isBEKaml: Sorry, no results
isBEKaml blah!
lue I forgot. phenny hates codepoints >FFFF
jnthn Also that one is new in Unicode 6.0.
lue 6?!? # does *Perl*6 support it? 19:26
frettled Amazingly, that symbol displayed nicely on my Mac, which is running the previous minor version of MacOS X. :) 19:27
lue must...update....fonts.. 19:28
patrickas lue: for some reason I don't mind my font not being able to display U+1F4A9 :-) 19:29
19:29 arestrrtor joined
lue Who knows? It could be a secret symbol for entry into the elite sectors of TPF. :) 19:30
frettled lue: it is.
lue :D 19:31
19:41 jaldhar joined 19:42 timbunce joined
timbunce rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; } }; C.alt(); 19:44
p6eval rakudo ac8a2a: ( no output )
masak timbunce: 'say'
timbunce I get "Null PMC access in find_method('new')" so I'm happy (or sad) to see nothing, if you see what I mean :) 19:45
guess I should clean, pull, and rebuild my rakudo and see if that helps. I trust trunk is in good shape at the moment. 19:46
moritz_ s/trunk/master/ but yes
lue p6eval right now avoids printing errors (IIRC). 19:47
timbunce lue: oh, odd. why?
moritz_ lue: no
lue so that problem has been fixed?
moritz_ rakudo: rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; say $url } }; C.alt();
p6eval rakudo ac8a2a: OUTPUT«===SORRY!===␤Confused at line 22, near "rakudo: cl"␤»
moritz_ lue: for two weeks, atleast 19:48
rakudo: class C { method alt () { my $url='dbd'; $url ~~ s/^db//; say $url } }; C.alt();
p6eval rakudo ac8a2a: OUTPUT«d␤»
lue hrm. I didn't notice :) /me stupid
timbunce Is "auto::gettext - Does your configuration include gettext...dyld: lazy symbol binding failed: Symbol not found: _libintl_bindtextdomain" from configure normal? 19:49
(for parrot) 19:50
pmurias sorear: should the makefile protect me against breaking stages?
moritz_ timbunce: not normal on my system
jnthn mberends: ping 19:53
mberends jnthn: pong 19:54
jnthn mberends: Got a moment to advise me on something Makefile-y?
mberends yes
jnthn LIBSYSTEM = $(shell $(PERL6_EXE) -e 'print @*INC[2]')
LIBUSER = $(shell $(PERL6_EXE) -e 'print @*INC[1]')
These are the lines that nmake trips up over
If I comment them out, then it builds fine
But of course then can't install. 19:55
For pls makefiles, I guess we can just interpolate those directly in
(since pls generates the Makefile)
I'm not quite sure what to do with this one.
mberends what about switching to pls?
lue hrm, it's not exactly clear how to add different date/time systems (at least in S32). Is there any information how to go about this? 19:56
19:56 ethel joined
moritz_ lue: just define your own types 19:56
lue ah, ok. Thought it (DateTime) was going to be extensible or something. 19:57
[Coke] rakudo: say '[Coke]--'
jnthn mberends: Well, if you're not too attached to the Zavolaj makefile or there's nothing special in it that the one pls generates wouldn't do...?
p6eval rakudo ac8a2a: OUTPUT«[Coke]--␤»
mberends jnthn: I'll test pls with Zavolaj on Linux now
moritz_ [Coke]++ # release
jnthn mberends: OK, thanks. 19:58
[Coke] moritz_: no, that's what I was trying to fix. =-)
mberends jnthn: or do we mean ufo?
jnthn mberends: This potentially gives me one less thing to have to fix on Windows.
mberends: pls includes something ufo-like
mberends: Though it's copy pasta rather than a call out to ufo.
[Coke] jnthn: if you still need windows help tomorrow, leave me a note. I can resurrect my wintop. 19:59
mberends jnthn: well ufo is smaller, and gives Zavolaj fewer dependencies
[Coke] (it's strawberry perl, but I can test with nmake instead, which should get most of the same issues.)
jnthn [Coke]: Thanks! :-) 20:00
[Coke] here's hoping you don't need me. =-)
jnthn mberends: fewer dependencies as in...? 20:03
20:03 alester joined
timbunce jnthn & mberends: the 'print @*INC[1]' tripped me up for a while because I had other dirs in PERL6LIB. Would be best to be able to ask perl6 directly what the right dirs are, rather than assume @*INC[1] and @*INC[2]. (Hopefully pls doesn't have that problem) 20:04
mberends jnthn: I wrongly thunk pls depended on an external ufo 20:05
timbunce: I agree, we just have to ask perl6 another way 20:06
20:07 justatheory joined 20:08 dual joined
alester Who is releasing Rakudo *? 20:11
20:11 jferrero joined
moritz_ alester: I hope pmichaud does :-) 20:11
alester Does he/she have an announcement to go with it?
pmichaud me 20:12
I'm writing the announcement tonight.
alester AnythingI can help with?
moritz_ pmichaud: nopaste.snit.ch/22351 -- the part that populates %h works, but an :i modifier is ignored - am I dooing something obvious wrong? 20:13
pmichaud it's possible the regex engine doesn't look at %REGEX_MODIFIERS yet for :i 20:14
20:15 HarryS joined
pmichaud alester: I'll post an advance copy soon -- reviews and patches will be very welcome 20:15
20:16 ashleydev joined
moritz_ pmichaud: it doesn't respect :s either 20:17
$ ./perl6 -e '$_ = "a b cd"; s:g:s/a b/X/; .say'
a b cd
20:17 50UAAF4RK joined
[Coke] pmichaud: can I close 49171? seems like ROADMAP is a better indicator these days. 20:17
pmichaud [Coke]: +1
20:18 dimid joined 20:19 Bucciarati joined 20:26 jferrero joined, dual joined, alester joined, ethel joined, jaldhar joined, whee joined, cono joined, nathanchrisman joined, literal joined, lue joined, Ross^ joined, thepler joined, kjeldahl joined, tylercurtis joined, _macdaddy joined, breinbaas joined, patspam joined, ab5tract joined, PZt joined, Util joined, Guest8689 joined, bbkr joined, mscha joined, tuxuday joined, pmurias joined, phenny joined, slavik joined, meppl joined, colomon joined, buu joined, au|irc_ joined, dalek joined, Tene joined, frooh_ joined, mmpf joined, felliott joined, Patterner joined, hudnix joined, PacoLinux joined, molecules joined, jnthn joined, Snowclone joined, sawyer_ joined, sboyette joined, dolmen_ joined, Maddingue joined, hercynium joined, [particle] joined, niko joined, rgrau joined, [Coke] joined, constant joined, wolverian joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, TimToady joined, hsb joined, kst joined, Eevee joined, Sanitoeter joined, felliott__ joined, sbp joined, tomaw joined, Khisanth joined, araujo joined, avar joined, moritz_ joined, yahooooo joined 20:27 kjeldahl_ joined 20:28 pmichaud_ joined, jferrero joined, dual joined, alester joined, ethel joined, jaldhar joined, whee joined, cono joined, nathanchrisman joined, literal joined, lue joined, Ross^ joined, thepler joined, tylercurtis joined, _macdaddy joined, breinbaas joined, patspam joined, ab5tract joined, PZt joined, Util joined, Guest8689 joined, bbkr joined, mscha joined, tuxuday joined, pmurias joined, phenny joined, slavik joined, meppl joined, colomon joined, buu joined, au|irc_ joined, dalek joined, Tene joined, frooh_ joined, mmpf joined, felliott joined, Patterner joined, hudnix joined, PacoLinux joined, molecules joined, jnthn joined, Snowclone joined, sawyer_ joined, sboyette joined, dolmen_ joined, Maddingue joined, hercynium joined, [particle] joined, niko joined, rgrau joined, [Coke] joined, constant joined, wolverian joined, meteorjay joined, Gothmog_ joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, TimToady joined, hsb joined, kst joined, Eevee joined, Sanitoeter joined, felliott__ joined, sbp joined, tomaw joined, Khisanth joined, araujo joined, avar joined, moritz_ joined, yahooooo joined 20:31 pmichaud_ joined, jferrero joined, dual joined, ethel joined, jaldhar joined, whee joined, cono joined, nathanchrisman joined, literal joined, lue joined, Ross^ joined, thepler joined, tylercurtis joined, _macdaddy joined, breinbaas joined, patspam joined, ab5tract joined, PZt joined, Util joined, Guest8689 joined, bbkr joined, mscha joined, tuxuday joined, pmurias joined, phenny joined, slavik joined, colomon joined, buu joined, au|irc_ joined, dalek joined, Tene joined, frooh_ joined, mmpf joined, felliott joined, Patterner joined, hudnix joined, PacoLinux joined, molecules joined, jnthn joined, Snowclone joined, sawyer_ joined, sboyette joined, dolmen_ joined, Maddingue joined, hercynium joined, [particle] joined, niko joined, rgrau joined, [Coke] joined, constant joined, wolverian joined, meteorjay joined, p6eval joined, chitragupt joined, abrasive joined, pugssvn joined, dju joined, hugme joined, hsb joined, Eevee joined, felliott__ joined, Khisanth joined, araujo joined, avar joined, moritz_ joined, yahooooo joined 20:32 HarryS joined 20:33 phenny joined, shade_ joined 20:34 perlygatekeeper joined
timbunce pls? Anyone got a link for pls, especially how to create a distro? (It's not mentioned on perl6.org/whatever/ where proto is listed) 20:35
moritz_ timbunce: currently it's a branch in the proto repo. And as long as it's in a branch, I'm reluctant to make a link to it 20:37
timbunce moritz_: fair enough. I want to make a distro for the DBDI stuff. Would you recommend I use pls? 20:38
moritz_: it's not urgent
20:39 niko joined 20:40 Kodi joined
moritz_ timbunce: pls and proto are pretty easy... if you have no dependencies, and just normal .pm or .pm6 files (no extra build actions required), you don't need to do anythiing to be compliant with them 20:40
dalek ok: 8b98b2e | duff++ | (23 files):
Merge branch 'master' of github.com:perl6/book
timbunce moritz_: I depend on zavolaj 20:41
20:41 dalek joined
moritz_ timbunce: echo zavolaj > deps.proto; git add depds.proto 20:42
timbunce moritz_: ok, thanks. Reading the docs now :)
moritz_ timbunce: how is dbdi doing on rakudo master? 20:44
timbunce 'tis grand thanks! 20:46
dalek p-rx: da0c21f | moritz++ | src/Regex/P6Regex/Actions.pm:
Quotes should respect :i
20:48
p-rx: 120f566 | moritz++ | t/nqp/50-regex.t:
add tests for :i and quoted strings
PerlJam I wonder if it might be useful to ship dbdi with R* even though it's not usable for anything.
dalek p-rx: a11bb45 | moritz++ | src/stage0/ (3 files):
update bootstrap files with :i + quotes fixes
masak food & 20:54
moritz_ PerlJam: -1. R* is about being useful
rt.perl.org/rt3/Ticket/Display.html?id=76758
is that valid?
20:55 nimiezko joined, timbunce joined, drbean joined
jnthn moritz_: No, I don't think so. 20:55
Meta-operators aren't function invocations. 20:56
pmichaud_ moritz_: note that we won't have a new nqp-rx before R*
jnthn Well, they are but not /that/ way.
moritz_ pmichaud_: I know
pmichaud_ okay, just checking.
moritz_ I just don't want to forget fixing stuff :-)
there'll be a life after R*, I hope :-)
pmichaud_ jnthn: S03 is pretty clear that [+] is just a listop.
20:57 ashleydev_ joined
pmichaud_ and parses like a listop 20:57
jnthn pmichaud_: I'm pretty sure Rakudo parses it the same way as STD.
pmichaud we should check that then. 20:58
jnthn pmichaud: Though it's possible that we missed something.
pmichaud I know that I'd expect say [+](),2,3 to output "123" and not "6" 20:59
moritz_ getting a parse tree out of STD seems non-trivial
jnthn Anyway, not urgent for now, but I guess let's leave the ticket open to review.
pmichaud er, "023"
20:59 ashleydev_ joined
jnthn pmichaud: OK, that surprises me a bit, I'd figured it was just a list prefix operator 20:59
pmichaud it is a list prefix operator
and like all list prefix operators, immediate parens treat it like a function call
jnthn Ah, OK
pmichaud thus say(1),2,3 outputs "1" and not "123"
jnthn Then Rakudo musta missed something STD has. 21:00
pmichaud (since 'say' is a listop.)
jnthn Or STD is missing something.
pmichaud yes, it's entirely possible STD is missing it as well.
jnthn oh, I think that may be what the last time of prefix_circumfix_meta_operator:reduce rule is about. 21:01
*line
OK, then I agree, it's a bug
21:02 nimiezko joined 21:04 whiteknight joined
colomon pmichaud: does this look like a reasonably good way of testing iterator speed? gist.github.com/492860 21:07
pmichaud colomon: just time it using for or map 21:08
since that's the common case
moritz_ colomon: why do you ++ in the loop? that just adds noise
pmichaud I would time it with
for 1..10000 { 1; }
again, benchmark the common case 21:09
or even
for 1..10000 { my $a = $_ + 1; }
(to make sure it actually does something with the value)
colomon rakudo: say [+] 1..10000 21:10
p6eval rakudo ac8a2a: ( no output )
21:10 grew joined
Tene rakudo: say [+] 1..100 21:11
p6eval rakudo ac8a2a: OUTPUT«5050␤»
colomon Tene: it's just too slow.
Tene colomon: right
colomon pmichaud: is there an easy way to generate a list incorporating an iterator? I'm hoping to test iterator speed without recompiling rakudo a bunch. 21:14
pmichaud colomon: sure (more)
Range.list is just 21:15
multi method list() { $.iterator.list }
i.e., if you create an Iterator, then $iterator.list gives you a List using that iterator. 21:16
colomon great. pmichaud++
heh. just occurs to me the 1..* case can be really really fast... 21:19
pmichaud doesn't see it yet. 21:20
colomon don't have to check for end conditions ever
pmichaud oh, right.
yes
colomon more than half the code goes away. 21:21
21:21 lichtkind joined
[Coke] would anyone be upset if I opened all the RT tickets we have before R*? 21:21
pmichaud [Coke]: okay by me, I think.
[Coke] (so that we can easily identify the new ones because they'll be in the new bucket?)
pmichaud I think I can get a similar result with a date-based search, though?
[Coke] all the *new* tickets, that is. 21:22
pmichaud anyway, I wouldn't be upset.
[Coke] pmichaud: it would be kind of a PITA, but yes, you could do that.
21:22 justatheory joined
[Coke] bets orelse is low hanging fruit. 21:23
lichtkind why isnt going web.pm into R* ?
pmichaud I bet it's not :-)
Tene lichtkind: doesn't run on R*, only on alpha 21:24
lichtkind: if it was updated, that would be great.
lichtkind Tene: thanks, inded
[Coke] rakudo: my @a = <one two>; @a[-1] = 'zero'; @a.perl 21:26
p6eval rakudo ac8a2a: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in main program body at line 22:/tmp/Udd9hXZOxN␤»
Tene rakudo: my @a = <one two>; @a[*-1] = 'zero'; @a.perl
p6eval rakudo ac8a2a: ( no output ) 21:27
Tene rakudo: my @a = <one two>; @a[*-1] = 'zero'; say @a.perl
p6eval rakudo ac8a2a: OUTPUT«["one", "zero"]␤»
21:27 mikehh joined
[Coke] Yes, I know. I'm checking an RT. :P 21:27
PerlJam The error message is LTA if nothing else 21:28
pmichaud PerlJam: what would you have expected?
Tene [Coke]: I expected so.
pmichaud rakudo: my @a; say @a[-1];
[Coke] std: my @a = <one two>; @a[-1] = 'zero'; @a.perl
p6eval rakudo ac8a2a: ( no output )
std 31848: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of [-1] subscript to access final element; in Perl 6 please use [*-1] at /tmp/_S14_hLpVq line 1:␤------> [32mmy @a = <one two>; @a[-1][33m⏏[31m = 'zero'; @a.perl[0m␤Parse failed␤FAILED 00:01 118m␤»
[Coke] that one. 21:29
PerlJam pmichaud: that!
:)
pmichaud ah yes, that's a compile-time error that we don't currently catch.
but there's also
std: my $x = -1; my @a = <one two>; @a[$x] = 'zero';
p6eval std 31848: OUTPUT«ok 00:01 118m␤»
[Coke] rakudo: IO.WHAT.say 21:30
p6eval rakudo ac8a2a: ( no output )
pmichaud ooc, I wonder if it's worth creating a #perl6-eval channel where p6eval lives (in addition to #perl6) where people can try out eval strings 21:31
21:31 niko left
PerlJam so we have a place to shunt the noise? 21:31
pmichaud yes, but it can still be public for people who want to watch
(otherwise it can be done with /query #p6eval) 21:32
[Coke] colomon: can you review #68140 - your bug report is confusing.
pmichaud probably not worth the effort
[Coke] phenny: ask colomon can you review #68140 - your bug report is confusing. 21:33
phenny [Coke]: I'll pass that on when colomon is around.
colomon [Coke]: looking at it atm
phenny colomon: 21:33Z <[Coke]> ask colomon can you review #68140 - your bug report is confusing.
pmichaud jnthn: ping 21:34
colomon ./perl6 fdsfsgdsfds.pl
===SORRY!===
Unable to open filehandle from path 'fdsfsgdsfds.pl'
jnthn pmichaud: pong
colomon Basically, if you attempt to execute a script that isn't there, that's the message you get.
pmichaud jnthn: nm, I think I answered my own question. It was about using 'cd' in Makefiles (appears to work) 21:35
colomon it's a fine message if you know the script isn't there, but it can be confusing if you think it is.
(what happened to me was the first line of the script I was writing started with an "open" command, but I was trying to run the wrong filename.)
jnthn colomon: You'd want more "File 'fjkfjfd.pl' not found" or some such?
ingy I only ask this here because you guys are my favorite perl people
pmichaud pmichaud@plum:~/star/dist$ perl xyz
Can't open perl script "xyz": No such file or directory
[Coke] colomon: if you can add what you want to see on the ticket, that'd be awesome. =-)
colomon Perhaps "Script 'fjkfjfd.pl' not found" 21:36
?
pmichaud see above example from 'perl'
do that. :-)
[Coke] the p5 message is fine, I think.
colomon ah, yes.
pmichaud I'll build it into HLL::Compiler after the release.
since HLL::Compiler is the place where the exception would need to be handled.
[Coke] we have any cygwin users?
pmichaud (assign me the ticket, please)
ingy nm... I got a rep o protect 21:37
dalek ok: b0708ef | duff++ | (2 files):
incorporate fixes from Pm; answer Pm's questions
[Coke] pmichaud: assigned. 21:38
... OOOH. time to resurrect the perl6 CLI interface via irc.
s/perl6/RT/
which rt 21:39
ww
21:39 kokajxo joined
ingy hmm ok here goes. How do I set a file level package dynamically in p5? 21:39
colomon pmichaud: just been messing around with int range iters. the sort of obvious Int-based optimizations don't seem to do squat for the timing.
[Coke] (though permissions issues would suck.)
colomon pmichaud: please don't look into this at the moment, you've got better things to be doing. 21:40
I think basically all the slow is coming from the iterator structure itself.
pmichaud colomon: a lot of the slow is, yes.
that's the downside to immutable iterators 21:41
we end up having to make a lot of them
but batching can improve things a lot
if RangeIter (or SeriesIter, for that matter) can generate up to 100 elements at a time, we reduce the number of iterators by a factor of 100 21:42
colomon I can probably optimize the Int operations a tad (go straight to pir if needed) but don't expect that to gain us more than maybe 5%.
pugssvn r31849 | Kodi++ | [t/spec] Instant and Duration tweaks.
colomon pmichaud: is there an example somewhere of how that might work?
pmichaud colomon: all it means is that instead of an iterator returning ($value, $nextIter) 21:43
it would return
($value0, $value1, $value2, ..., $nextIter)
colomon well, that's easy enough to test for the N=2 case.
pmichaud and if it exhausts the iteration, then it doesn't need to supply a $nextIter
colomon but I should probably cook noms first.
pmichaud basically, .reify returns a parcel containing iterated values (if any), and an iterator to use to get more (if any) 21:44
colomon is there any way to construct a Parcel with N elements? (picturing a when statement with 100 cases to handle the end of the 100 elements at a time case, and that seems very wrong.) 21:48
pmichaud for this test, it would be okay for .reify to return a List with the n elements 21:49
well, hmm, not really.
hrmmmmm
oh, yes.
&infix:<,>(|@elems, $nextIter) 21:50
(we can probably improve that a bit at some point)
jnthn Yeah, | is not exactly optimized at the moment (wasn't really expecting it to be relied on in a critical path :-))
pmichaud to my thinking, this is really one of those places where optimizing in PIR instead of P6 makes some sense. 21:51
but I seem to be swimming against the current there.
jnthn pmichaud: Is a Parcel still really an RPA underneath? 21:55
pmichaud subclass of an RPA
but yes.
pir::push would work on it.
jnthn pmichaud: If so, isn't just my $parcel = pir::new('Parcel'); pir::push($parcel, $value); ...
Right.
I don't have a problem with doing things like that.
pmichaud that works as long as you're willing to accept that the Parcel isn't a p6opaque 21:56
jnthn Because I expect those we can generalize over VMs later
It's Q:PIR that gets tricky
pmichaud and you also run into problems that $parcel ends up being a Seq
jnthn Oh
And we can't := it because...that does fancy stuff.
Oh, maybe it'd work.
pmichaud but in the final analysis, the point is that at some point low-level manipulations have to be, well, low-level. 21:57
jnthn rakudo: my $x := pir::new('Parcel'); say $x.WHAT
p6eval rakudo ac8a2a: OUTPUT«===SORRY!===␤The opcode 'new_p' (new<1>) was not found. Check the type and number of the arguments␤»
jnthn rakudo: my $x := pir::new__Ps('Parcel'); say $x.WHAT
p6eval rakudo ac8a2a: OUTPUT«Parcel()␤»
PerlJam tweets like these make me happy: bit.ly/bFFn6y bit.ly/9uuyNI
jnthn PerlJam: :-) 21:58
pmichaud PerlJam: me too. I hope they don't turn around and say "whoa! that was a waste." :-)
jnthn pmichaud: (OT) When will you be arriving to Pisa? 22:01
Monday?
pmichaud scheduled landing is 18h30 iirc 22:02
jnthn OK.
I expect to make it to the hotel around 15h00 or so
22:03 Guest23195 left, am0c joined
colomon pmichaud: actually, I think optimizing specialized core low-level iterators in PIR makes perfect sense. 22:03
afk # back to cooking
jnthn YESSS!
jnthn gets a beer!!
pmichaud jnthn: I'm guessing my hotel will be around 20h00. And I'll undoubtedly want nom. 22:04
am0c o/ o hai
jnthn am0c: oh hai!
pmichaud grrrrrrrr
jnthn pmichaud: You're flying into Pisa? The hotel is like, really really really close to the airport. So if you land on time you may be earlier than that. :-) 22:05
pmichaud jnthn: yes, but I have to get through immigration
jnthn pmichaud: In other news...I just made a break-through on the role otuers bug.
pmichaud: ah, true
am0c jnthn: o/ heheh
pmichaud jnthn: I'm not EU-citizen-quick-line
jnthn pmichaud: Oh, where is your connection?
pmichaud LHR, iirc
jnthn Ah, OK
Then yes, you'll do passport control in Pisa. 22:06
pmichaud what's the best way from airport to hotel?
jnthn (If you'd said Frankfurt or some such, then you'd have cleared it there and entered the check-free Schengen zone.)
pmichaud: Well, given it's a few hundred meters, maybe even on foot. ;-) 22:07
pmichaud jnthn: yeah, that's what I was thinking also. :)
jnthn pmichaud: Only thing is if it's a few hundred meters as the crow flies and an annoying trek in terms of where you can walk.
colomon jnthn: \\o/ 22:08
pmichaud google maps says 1.7 km walk
jnthn pmichaud: But even so, a taxi that short way to save you the hassle shouldn't cost much.
22:08 wamba joined
pmichaud agreed 22:09
I can't believe .gitignore is part of the parrot tarball MANIFEST. Evil.
lichtkind sorear: can blizkost do 5.12? 22:12
22:12 hanekomu_9 joined
[Coke] pmichaud: please open a bug report on that. =-) 22:13
22:22 kokajxo joined
pmichaud R* should come with 'proto' or 'pls'? 22:33
current star repo shows that it comes with 'proto'
jnthn pmichaud: Note that pls is a branch in the proto repo 22:34
pmichaud: Lsat I looked the script checked that out.
pmichaud ah
yes, pls_rstar_hacks
jnthn *nod*
22:34 kid51 joined
pmichaud it doesn't have a README or anything, though. 22:35
so what do I need to do to install it?
or is that dependent on 'ufo'?
jnthn No, it doesn't depend on ufo 22:37
I think it can just be run "as is"
pmichaud ah, it's called 'proof_of_concept'
that's kinda weird.
jnthn Yeah, I asked what it needed before it could be renamed a while back...forget the exact answer.
(Asked here, let's see if I can find it in the logs.) 22:38
aww, the logs search is LTA it seems 22:39
pmichaud it doesn't search for words smaller than 4 letters
Tene I prefer using grep to search my logs. :) 22:40
jnthn pmichaud: aww
22:41 japhb joined
jnthn tries searching for everything he's said to masak :-) 22:41
pmichaud: Can't find it. But essentially it was, iirc, that masak++ wanted to make some Perl 5 wrapper script around it to detect if there was of Perl 6 available (I maybe remember wrong) and some better usage notice and things like that. 22:44
pmichaud: But afaik the actually installing stuff bit is meant to work fine already...if you're not on a platform where the Makefile it writes doesn't work. 22:45
japhb I've got a Perl Mongers meeting tonight, and a question has come up that a friend and I would like to discuss, but unfortunately we don't have enough time to write tests of our own to answer it: Is there any sense of the comparative performance of a Perl 5 application that uses Moose pretty much to the max, and the equivalent Perl 6 code in Rakudo? This is not meant to start a battle, and I'm specifically talking about an app that is NOT 22:46
I/O bound, nor compute bound by tight kernels. I'm talking purely about the cost of the introspection, argument validation, type coersion, and so forth.
Sorry for the wordiness.
jnthn rakudo: role R { method m { say 42 } }; class C does R { }; C.new.m
p6eval rakudo ac8a2a: OUTPUT«Could not find sub &say␤ in 'm' at line 22:/tmp/L5ZMIB5w2P␤ in main program body at line 22:/tmp/L5ZMIB5w2P␤»
jnthn > role R { method m { say 42 } }; class C does R { }; C.new.m
42
<huge beer slurp> 22:47
jnthn timidly runs the spectests
japhb: Not aware of one.
japhb: The meta-model is currently not exactly performant. That's one of the reasons it's the Next Big Thing I plan to work on.
japhb Basically we'd like to make the argument that it's worth it for people thinking about making the Moose move to try going all the way to Perl 6. I think most would be willing to deal with a moderate loss of performance, but orders of magnitude might be a hard sell ....
jnthn, ah, thank you.
jnthn japhb: One interesting data point I did see once was that Perl 5 + a bunch of Moose modules had equivalent startup time or similar at least startup time to Rakudo. 22:48
japhb That is a good data point indeed.
jnthn japhb: Not sure how well it holds today.
japhb: Moose is no doubt getting better all the time in that sense. 22:49
japhb One hopes. :-)
Has Rakudo been doing the same? Is startup time improving, or at least not getting greatly worse?
jnthn japhb: Anyway, in the medium term I'm quite comfortable that we're going to be able to do attribute accesses and method dispatch (or at least in terms of locating the method to call, if not actually invoking it) competitive with Moose, and in the maybe not too much longer term better if there's enough type info around. 22:50
japhb: The meta-model re-design I'm doing is very deliberately aimed at supporting a gradually typed langauge, as Perl 6 is, rather than a purely dynamically typed one. I hope we can win something notable there. 22:51
japhb That's great to hear. (on both counts).
jjore_ though fwiw, Moose is pretty abysmal right now in performance. I hadn't used Moose for CLI stuff til it happened as part of work. It's shocking how slow startup is. 22:52
japhb I notice your comment about the cost of invoke ... is it significantly slower to do a method call in Rakudo/Parrot than in Moose/Perl 5?
Tene japhb: on my system, perl6 -e 1 take 0.9s, and perl -Moose -e 1 takes 0.2s
so, about 5x 22:53
jnthn We seem to have slipped badly on startup time of late. Like, a factor of 3 over what we were a while back.
I wish I knew why.
japhb Hmmm.
jnthn git bisets on that would be most welcome.
Tene japhb: you'll also want to test it on large programs, to see the speed of rakudo's parser. 22:54
japhb True.
sorear phenny: tell pmurias any time you rename files you *need* to change the makefile. On a case by case basis, so I can't help you.
phenny sorear: I'll pass that on when pmurias is around.
22:54 drbean joined
Tene perl -e 1 is 0.003s on my laptop 22:54
japhb Has anyone already written a Perl 6 port of a sizable Moose-using app or module?
Tene: nice! 22:55
Tene so, rakudo to p5moose is 5x, p5moose to p5 is 100x
japhb Anything that runs faster than a single frame update of your monitor is Fast Enough.
Well, for command-line use at least. ;-)
sorear good * #perl6
jnthn fwiw, our parsing speed is not unrelated to our method dispatch speed. The nice thing about grammars is the dispatches are on the invocant, and we have plenty of type information about that.
jjore_ fwiw, the program I used at diotalevi.isa-geek.net/~josh/100720...akudo2.txt really spends pretty much "all" its time in the rakudo regexp engine and while I ahven't traced it down, some inputs were phenomenally slower to execute against. 22:56
sorear phenny: msg lichtkind blizkost has been tested on 5.10.1 and 5.12.0. It is known to not work on 5.8.9.
jnthn Is t\\spec\\S02-builtin_data_types\\declare.t failing for anyone other than me in current Rakudo master, ooc?
japhb jnthn, Ah, so your improved meta-model should end up making that dispatch (and thus parsing) significantly faster?
jnthn sorear: s/msg/tell/, and morning :-)
sorear phenny: tell lichtkind blizkost has been tested on 5.10.1 and 5.12.0. It is known to not work on 5.8.9. 22:57
phenny sorear: I'll pass that on when lichtkind is around.
sorear Actually it's 4PM. My sleep schedule has recently gone from "insane" to "indescribable" :(
22:58 rgrau_ joined
jnthn japhb: I'd not like to claim "significant" until I have numbers to back it up. :-) What I can say is that it should often be an array index into a v-table to look most methods up on a grammar cursor, then invoking what comes back, compared to today where we go looking in hashes. 22:58
japhb Still a decent improvement, one hopes. 22:59
jnthn I'd hope so.
When I'm designing this stuff I'm tending to do it at the level of, "so how many pointer derefs/CPU level ops/C-level function calls will this take" 23:00
For the very core of the model, anyways.
And for the most optimal cases. 23:01
But grammars are well positioned to be able to be optimal.
japhb jjore_, That is an interesting result, if a bit painful.
jnthn And hit the fast path a lot of the time.
japhb Good!
sorear I almost asked there "Why are you talking to yourself" 23:02
jjore_ you can find a conversation about it, apparently on 2010-07-20 based on the URL.
japhb jjore_, thanks, looking
jnthn sorear: I know that feeling. I got up around 4PM on Saturday. Decided I needed to normalize things a bit, so just didn't sleep on Saturday night. Kinda worked. :-) 23:03
sorear jnthn: According to TimToady, all inter-rule backtracking in Perl 6 is done by having grammar methods return lazy lists of Cursors 23:04
How do you feel about thi
s
jnthn sorear: I'm kinda the wrong person to ask - that's more one for pmichaud. It sounds sane at first blush. 23:05
kid51 The instructions on this page rakudo.org/how-to-get-rakudo tell me how to get rakudo -- but they don't tell me how to get Rakudo* on Thursday July 29
jnthn sorear: At the end of the day though, Cursors are objects, lazy lists are objects, and they all have methods. So anything that speeds up method dispatch is very likley going to help the situation. :-) 23:06
sorear: I'm not sure how Pm implemented the inter-rule backtracking stuff recently. 23:07
japhb Thanks everyone for the answers! 23:09
23:10 Kodi joined
pmichaud pmichaud.com/sandbox/rakudo-star-beta1.tar.gz # a *VERY* preliminary tarball. No docs, no book, modules don't install yet 23:10
jnthn pmichaud: What should it do so far? Build a Parrot and a Rakudo? 23:11
pmichaud basically
jnthn pmichaud: And then die?
OK
I can at least check it does that
pmichaud perl Configure.pl --gen-parrot
jnthn pmichaud: my $hack is epic; # for the roles fix
pmichaud make
make rakudo-install
jnthn pmichaud: But it works and we can dig down to the real problem.
Later on.
pmichaud dinner calls -- bbiab 23:12
jnthn I'm spectesting now, and down to S06 it's looking decent.
kk
sorear (What should come next in niecza?) 23:13
pmichaud jnthn: can I review the patch?
pugssvn r31850 | Kodi++ | [t/spec] More high-precision Instant tests. 23:14
jnthn pmichaud: gist.github.com/493036 23:15
mberends sorear: I'm interested in applying my former Sprixel spectest fudging harness to niecza, to begin probing what p6 compatibility it is missing. 23:16
jnthn pmichaud: Basically, the issue is not taht the sub's ->outer_ctx is broken, but that lexical lookup follows ctx->outer_ctx
pmichaud: And that is pointing to something that doesn't end up pointing down to the setting.
pmichaud: I'm sure now we know that's what it is, we can get down to the real underlying issue, but my feeling is that this will be a fix somewhere in Parrot or set_outer_ctx or so. 23:17
sorear mberends: niecza has a spectest fudging harness now. I haven't bothered to fudge any spectests yet, mostly because they'd be completely full of such stuff 23:18
Kodi phenny: tell masak gist.github.com/493037 A patch to implement Instants and Durations; please review at your convenience. 23:19
phenny Kodi: I'll pass that on when masak is around.
sorear mberends: my current short-term agenda is a rewrite of Test.pm6 to have a ::Builder and more of the nicities of p5 Test::More, like line numbers
mberends sorear: did you once write that spectests did not really interest you? 23:20
sorear I may have 23:21
23:24 Kodi left
mberends sorear: so another direction is towards trying to support some applications, instead of mainly passing tests. niecza may need some additions to its runtime library for that. 23:25
23:26 PerlJam joined, Util joined, dukeleto joined, dalek joined, pugssvn joined 23:30 pmichaud joined
jnthn pmichaud: fail 23:34
'make' is not recognized as an internal or external command,
operable program or batch file.
pmichaud: That is when I run make
pmichaud: er, nmake
After the perl Configure.pl --gen-parrot
pmichaud: May be that "make" is hard-coded somewhere?
pmichaud yeah, it probably is.
fixing.
jnthn OK 23:35
pmichaud: Do I have +1 to apply the role outer workaround?
pmichaud: I know it's horrible, but the bug it works around is more horrible.
pmichaud looking 23:36
if this patch fixes the problem, I'm even more convinced that the underlying issue is that the mainline's outer is being clobbered or not set up properly somehow. 23:38
jferrero www.rakudo.org/rss.xml don't work very well...
pmichaud jferrero: yes, it's been noted for well over a year but not fixed. :-(
jnthn pmichaud: Well, "fixes". But yes.
pmichaud: Anyway, it takes the preassure off to hunt that bug, and I suspect it'll be a Parrot fix anyway. 23:39
pmichaud I don't understand the part where @!recapture gets set.
oh, yes I do.
you're keeping an array of contexts
jnthn Right
And then twiddling their outer_ctx pointer
pmichaud and at the beginning of the mainline, you go back and reset the outers on all of those contexts
jnthn Right 23:40
The thing is that lexical lookup doesn't actually care about the sub's outer context
pmichaud and this happens only for roles
jnthn It follows the context's ->outer_ctx pointers
Right
pmichaud right, I know the sub outer context doesn't matter. It's only useful when a sub is invoked. After that, it has no meaning.
jnthn I think the issue is this
We clone the methods so that they capture the role parameters 23:41
They then point to the context (the one I'm capturing to fixup)
sorear (note to self: implement protopad-powered roles before the rakudo true fix lands)
jnthn But that one doesn't point down to the setting.
pmichaud jnthn: right. and I think that's because the code that initializes the roles is occuring before main gets its set_outer 23:42
which ought to be happening, like, immediately.
but something seems to be setting main's set_outer back
....I wonder if the real answer is that the block for the mainline needs to be :lexical(0)
jnthn I wonder if it's to do with auto-clone.
Oh, maybe not 23:43
Hm
pmichaud I wonder if the outer block is capture_lex on the mainline when we don't want it to be.
*that* would make a bit of sense.
jnthn pmichaud: ooc, where is the set_outer that's meant to be making the link? 23:44
pmichaud UNIT_START
actually, several places
but UNIT_START calls &YOU_ARE_HERE
let me double-check
ah, it's !YOU_ARE_HERE 23:45
jnthn pmichaud: The call to !UNIT_START appears to be in a :load sub that's the last thing in the PIR, and thus after all the :load :init blocks that set up roles/classes etc
pmichaud !YOU_ARE_HERE gets the mainline block and sets the outer_ctx of the mainline to the outer_ctx of the setting
jnthn: yes, but I also did one where it happened *first thing* in the PIR
jnthn pmichaud: And that didn't fix it either?
pmichaud no. 23:46
and that surprised me.
jnthn Yeah, I remember now.
Yeah, even more so in light of this workaround.
colomon pmichaud: will have full report later, but initial tests suggest 3-4 at a time is ideal for an iterator. (In terms of absolute time off the execution, going from 3 to 4 was better than going from 4 to 7.)
pmichaud jnthn: Actions.pm:67 23:47
I'm pretty sure that .loadinit occurs before any role or class .loadinits 23:48
jnthn pmichaud: oh, I missed that
Yes, you're right.
pmichaud but then when I check the mainline at runtime, it has the wrong outer again 23:49
which means something set it back (perhapsthe "outer" block) or the original didn't take. 23:50
anyway, +1 on the patch
we may need to keep the fixup code in place for a while, and I don't see it causing a major problem for us. I don't like the messiness, but I agree that this is far less troublesome than the bug it fixes.
and nicely done. 23:51
jnthn Aye.
Thanks. It's taken some hours to get it down to this. :-)
pmichaud pmichaud.com/sandbox/rakudo-star-beta2.tar.gz
(should fix the "make" problem)
jnthn Fetching.
Tene pmichaud: I haven't been following... is that tarball suitable for asking others to test yet? 23:52
jnthn Tene: Maybe a little early yet. 23:54
Tene 'k
pmichaud Tene: it doesn't have good instructions or readme yet 23:55
I expect to have a better on in ~2h
*one
I don't quite have proto and ufo figured out yet
can I change "proof_of_concept" to be "pls", ooc?
afk, walk 23:56
dalek kudo: 7f5c22f | jonathan++ | src/ (3 files):
A workaround for the role outer scopes bug. It's not perfect, and it's certainly
23:57
23:58 Psyche^ joined
jnthn pmichaud: afaiu, you don't need to figure out ufo - the similar makefile generation that pls does is embedded in proof_of_concept already. 23:58
It doesn't depend on ufo as such, afaik. 23:59