»ö« | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moderator on 24 July 2010.
00:04 snarkyboojum joined 00:05 sunnavy_ joined, kst joined
Eddward rakudo: %x = a=>1, b=>2 00:05
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Symbol '%x' not predeclared in <anonymous> (/tmp/z4vxbrCTGX:22)␤»
Tene sorear: yes?
Eddward rakudo: my %x = a=>1, b=>2
colomon Eddward: here's an improvment:
p6eval rakudo f7fdd5: ( no output )
Eddward rakudo my %y = c=> 3, d=> 4 00:06
snarkyboojum cool - first kick out of #perl6 :P
colomon maybe...
sorear Tene: you're the only one right now who has one
Tene sorear: who has what?
colomon gist.github.com/489111 # same gist, now with a $seen junction instead of a @seen array
sorear +o
Eddward rakudo: say %x, %y
Tene sorear: is there some context here? 00:07
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Symbol '%x' not predeclared in <anonymous> (/tmp/ZWWmhaZHFD:22)␤»
colomon Eddward: p6eval doesn't have memory from one invocation of it to the next
Tene Are you asking for a +o? Is someone else?
Is there a problem that needs to be addressed?
Eddward Should %x ,= %y add %y entries to %x's?
sorear I'm asking for +os for: [Coke], au|irc, colomon, jnthn, mberends, moritz_, pmichaud, sorear 00:08
colomon Eddward: huh, I've not seen that one before.
Eddward colomon, Cool use of junction.
sorear The problem is that you're the only one with one now
Eddward It looked like I could do %x = %x, %y
colomon rakudo: my %x = "red" => 2; my %y = "green" => 411; say :%x.perl; %x ,= %y; say :%x.perl
Tene++ 00:09
p6eval rakudo f7fdd5: OUTPUT«"x" => {"red" => 2}␤"x" => {"green" => 411}␤»
Eddward I was wondering if %x ,= %y would work or if that was too evil.
The junction would be better for want I'm trying anyhow.
colomon Eddward: I like the idea of %x ,= %y, but that test there suggests it doesn't work. 00:10
sorear 19:09 -ChanServ(ChanServ@services.)- 5 pmichaud +voOtsriRfAF [modified 4 hours, 15 minutes, 44 seconds ago]
+25 karma to whoever made this happen.
Tene sorear: most of those used to be on the channel access list, and could have opped themselves, but looks like the access list has been cut down to just pmichaud and audreyt. 00:11
snarkyboojum was there an audreyt imposter kicking people from the channel?
Tene ... and hasn't actually fixed the issue that allowed the problem in the first place, afaict
Eddward It didn't work for me. It just assigned %y to %x.
Tene I'm gonna check. 00:13
00:13 audreyt joined
Tene Ah, good. 00:13
I guess I misunderstand.
sorear "audreyt" means you need to be identified to nickserv under that name 00:23
"audreyt!*@*" means you need to be IRCing under that name
anyways, before today *nobody* had the power to change the access list 00:24
pmichaud has +f now, which means he can
lue hooray \\o/ 00:25
Tene I must have misremembered what I saw in the access list right after the incident.
Eddward Is any(any(1, 2, 3, 4), any(5, 6, 7, 8)) the same as any(1, 2, 3, 4, 5, 6, 7, 8)?
colomon rakudo: say any(any(1, 2, 3, 4), any(5, 6, 7, 8)).perl
p6eval rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))␤» 00:26
colomon rakudo: say (any(1, 2, 3, 4) | any(5, 6, 7, 8)).perl
p6eval rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))␤»
colomon rakudo: say (any(1, 2, 3, 4) | 5).perl 00:27
p6eval rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), 5)␤»
Eddward rakudo: my $x = 1|2|3|4; my $y=5|6|7|8; my $z = $x; $z |= $y; $z.say
p6eval rakudo f7fdd5: OUTPUT«any(any(1, 2, 3, 4), any(5, 6, 7, 8))␤» 00:28
00:28 jferrero joined
colomon rakudo: say 3 ~~ any(any(1, 2, 3, 4), any(5, 6, 7, 8)) 00:31
p6eval rakudo f7fdd5: OUTPUT«1␤»
00:31 mscha joined
Eddward I wonder if any(any(), any()) performs as well as a single any(). 00:33
I was going to build a big junction piecewise. 00:34
A hash might be better.
colomon, I was able to speed up mine by adding a global $happy and $unhappy junction. I check $seen|$unhappy and 1|$happy. 00:39
I then add $seen to either $happy or $unhappy.
00:40 s1n joined
Eddward I went from 10ish seconds to 4ish. 00:40
colomon Eddward: yeah, I thought something like that might be nice. 00:41
but what you've got now is very elegant.
lue loliblog: rdstar.wordpress.com/2010/07/25/onl...-op-abuse/ 00:47
00:48 kjeldahl_ joined
snarkyboojum has anyone managed to track down TimToady's state of the onion oscon speech online - slides or vid? (apologies for asking the same question again) :) 00:49
or it is top secret? :) 00:52
sorear Eddward: What comparison operator are you using with the junction? 00:54
snarkyboojum mutters into his beard
Eddward sorear, given $n { when $junction { ... } } 00:55
~~ I would assume.
lue .oO[ snarky: if I knew, I would tell you :) ]
sorear Eddward: what kind of thing is $n? 00:56
Eddward snarkyboojum, I didn't even know there had been another SotO. I'm watching for the answer too.
number. Int.
sorear junctions are designed to work for any comparison op 00:57
so they can't be optimized any further than just "linear search"
lue Hrm. I would ask to get my blog added to the aggregator, but not until my posting habits stablize :)
sorear you may have much better success with a hash
Eddward ok. I was thinking a tree of any(any,any()) probably isn't as good as a single any(). 00:58
Maybe a possible optimization to unnest them?
lue afk --drwho="SeasonFinale!" 00:59
sorear the nesting isn't what's hurting you
snarkyboojum Eddward: I'm starting to think there wasn't either ;) but there was
sorear comparing an int against a single junction with 10k ints requires 10k comparisons 01:00
snarkyboojum Eddward: or perhaps there wasn't, and I'm acting the fool :)
sorear you ought to put your ints in %happy, not $happy
Eddward sorear, It's a lot faster to use hashes instead of junctions. 01:01
I need to look up a better way to append one has onto another. %x = $x, %y
snarkyboojum, I haven't been paying attention. There have probably been several since the last one I watched. 01:02
snarkyboojum Eddward: yeah - scant details online about the last few, so I'm starting to think they're not published any longer after the event *shrug* 01:03
Eddward: sirhc.us/journal/2010/07/22/oscon-2...the-onion/ is the most info I've found so far ;)
01:24 aubreyja joined 01:28 mtk joined 01:52 diakopter joined 01:57 kjeldahl joined, diakopter___ joined
diakopter___ test1 01:57
diakopter k
01:57 diakopter___ left
sorear whatcha testing? 02:01
diakopter whether unregistered users could speak 02:03
what did that do 02:10
nm 02:11
lue why o hai o/ 02:12
02:17 hsb joined 02:21 dalek joined 02:40 cibs joined 02:42 cibs left
sorear Are Parcels Cool? 02:48
03:00 kjeldahl_ joined, PerlJam left 03:04 dalek joined 03:05 kjeldahl joined 03:24 masonkramer left
sorear I would like to campaign for $*FOO with no $*FOO in scope being an error. 03:27
Right now, it returns a Failure, which happens to be a perfectly acceptable False in boolean contexts. 03:28
Allowing $*FOO to see all the way up to the initial frame makes it very easy to create non-recursive programs by accident
suppose your parser occasionally uses $*IN_DECL without localizing it 03:29
you won't notice until you try to add module loads
and then one day load a module inside a decl
diakopter 's brains swim before my eyes 03:31
sorear wha? 03:35
03:40 alester joined
alester ping particle 03:41
perl6: say 'where is particle?' 03:42
p6eval pugs, rakudo f7fdd5: OUTPUT«where is particle?␤»
sorear Is it legal to pass an infinite number of arguments to a function? 03:44
[Coke] sorear: ... it would certainly be impractical 03:55
why does it take a day for messages from RT to hit the mailing list? 03:56
sorear greylisting
tylercurtis Is *@ eager? 03:57
[Coke] seems silly, if everything's on the perl.org domain.
sorear [Coke]: other side
03:58 snarkyboojum joined
sorear or something 03:58
you'd best ask the RT admins for more details
03:58 ashleydev joined
dalek ecza: 872f958 | sorear++ | (4 files):
Remove !HOW fossil
04:02
ecza: 989e088 | sorear++ | CORE.setting:
Add &unfold for easily defining lazy lists without delimited continuations
ecza: 8e38cd1 | sorear++ | Niecza/Actions.pm:
Implement ?? !!
ecza: a6f61b0 | sorear++ | CORE.setting:
Implement Cool.grep, Cool.map, Cool.for
ecza: e9aee8f | sorear++ | (4 files):
Require explicit marking of calls which need CPS conversion
ecza: 444e9d0 | sorear++ | (2 files):
Simplify handling of parenthesized context-sensitive operators
ecza: 0530951 | sorear++ | (2 files):
Implement non-statement-level bare blocks
04:04 PerlJam joined 04:05 PerlJam joined 04:12 cotto joined 04:13 [particle] joined
[particle] now why was i kicked? 04:14
sorear some jerk did a channel takeover and kicked everybody 04:16
on the plus side, pmichaud has metaops now 04:17
so it'll actually be possible for us to get +o ACLs
04:19 benji-man joined, isBEKaml joined
benji-man i'm getting this err with the Rakudo Atlanta when used w/ $*INITTIME: 04:20
sorear rakudo: 2.note
rakudo: 2.warn
p6eval rakudo f7fdd5: OUTPUT«Method 'note' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/vXegajYLJf␤»
rakudo f7fdd5: OUTPUT«Method 'warn' not found for invocant of class 'Int'␤ in main program body at line 22:/tmp/XjKg41OMqi␤»
benji-man Method 'Bridge' not found for invocant of class 'Failure'
in 'infix:<->' at line 3407:CORE.setting
in 'Msg::write' at line 134:Msg.pm
in main program body at line 6:./Msg.p6
is inittime broken right now? 04:21
sorear I don't think I've seen $*INITTIME defined
benji-man i had to look it up.. it's in S28: perlcabal.org/syn/S28.html 04:22
snarkyboojum A Temporal::Instant object?
benji-man i'm trying to port something from perl5 that used $^T, process-startup-time
not sure if it's my misuse of the object.. i'm attempting to do $foo = time() - $*INITTIME; 04:24
sorear most of S[23]. is extremely conjectural 04:25
snarkyboojum benji-man: I don't think $*INITTIME is implemented anywhere in Rakudo (though I don't really understand what it'd be used for) 04:26
tylercurtis rakudo: $*INITTIME.WHAY.say
p6eval rakudo f7fdd5: OUTPUT«Method 'WHAY' not found for invocant of class 'Failure'␤ in main program body at line 22:/tmp/af11Eb2BlY␤»
tylercurtis rakudo: $*INITTIME.WHAT.say
sorear rakudo: say 1.elems
rakudo: say "foo".elems
p6eval rakudo f7fdd5: OUTPUT«Failure()␤»
rakudo f7fdd5: OUTPUT«1␤»
tylercurtis rakudo: $*LFSLDFAGKSKNGA.WHAT.say;
p6eval rakudo f7fdd5: OUTPUT«Failure()␤»
snarkyboojum 'Contextual $*INITTIME not found' here 04:27
tylercurtis benji-man: looks as though $*INITTIME isn't implemented in Rakudo, so it's producing a Failure, which causes infix:<-> to die because it can't turn it into a number. 04:28
sorear is List.Str supposed to flatten? 04:30
rakudo: say (1,(2,3)).Str # like so 04:32
p6eval rakudo f7fdd5: OUTPUT«1 2 3␤»
sorear erm.
I have my answer
tylercurtis sorear: are you sure? Don't lists stringify as their elements stringified separated by ' '? And thus wouldn't a list of lists stringify as the same as that list flattened regardless of whether the stringification actually flattened the list? 04:35
sorear tylercurtis: "I have my answer" 04:38
I was about to implemement list String in a non-associative way
04:57 cbk joined 05:05 envi^home joined 05:19 szabgab joined 05:21 tylercurtis joined 05:23 kjeldahl_ joined 05:46 Raynes joined 05:47 Lasse_ joined
szabgab rakudo: "dear evalbot, were you also kicked by audreyt?".say 05:58
p6eval rakudo f7fdd5: OUTPUT«dear evalbot, were you also kicked by audreyt?␤»
06:02 CSJewell joined
CSJewell Just curious if anybody has tried building Rakudo on 64-bit Strawberry Perl? 06:03
dalek ecza: 93f8f17 | sorear++ | CORE.setting:
Implement Cool.{say,chars,substr,at-pos,elems,iterator}
06:06
ecza: e9c9a9f | sorear++ | (2 files):
Implement pointy blocks
ecza: 37a27ee | sorear++ | (3 files):
Implement for loops
ecza: 0bdcb00 | sorear++ | CORE.setting:
Implement List.join, Cool.join, List.Str, fix several stupid bugs
06:27 mafs joined 06:37 TimToady joined, stepnem left
sorear TimToady! 06:38
Type objects dilemma again. If X is a role which cannot be punned, what is X and what operations does it support?
TimToady well, I have to get up in 4ish hours to catch a plane to barcelona...
sorear Presumably X.HOW is valid, so X has to be a symbol
Yeesh. What for, YAPC? 06:39
TimToady eventually
you should probably work that sort of thing out with jnthn++ 06:41
I think jnthn++ primarily sees roles as multisubs, typewise 06:42
but it's possible that bare X itself cannot be usefully used for most things 06:43
szabgab rakudo: 2 ~~ regex { <[0..9] - [3]> } 06:51
rakudo: 3 ~~ regex { <[0..9] - [3]> }
p6eval rakudo f7fdd5: ( no output ) 06:52
szabgab rakudo: say 2 ~~ regex { <[0..9] - [3]> }
p6eval rakudo f7fdd5: OUTPUT«2␤»
szabgab rakudo: say 3 ~~ regex { <[0..9] - [3]> }
p6eval rakudo f7fdd5: OUTPUT«␤»
szabgab rakudo: say 3 ~~ regex { <\\d - [3]> }
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Malformed regex at line 22, near "{ <\\\\d - [3"␤»
szabgab rakudo: say 3 ~~ regex { <[\\d] - [3]> }
p6eval rakudo f7fdd5: OUTPUT«␤»
szabgab rakudo: say 2 ~~ regex { <[\\d] - [3]> }
p6eval rakudo f7fdd5: OUTPUT«␤»
TimToady rakudo: say 2 ~~ regex { <+digit - [3]> } 06:53
p6eval rakudo f7fdd5: OUTPUT«2␤»
TimToady though [\\d] ought to have worked too
szabgab the \\d stuff won't work in character classes?
ah
so that's a bug only
ty 06:54
sorear std: / :r * / #I wonder what this means 06:57
p6eval std 31820: OUTPUT«ok 00:01 116m␤»
06:58 sawyer_ joined 07:02 drbean joined 07:03 kjeldahl joined 07:07 cosimo joined 07:17 meppl joined
cosimo any idea why rakudo can't find modules in .perl6/lib ? 07:18
nopaste.snit.ch/22289
and good $morning, all
Tene cosimo: check your PERL6LIB env var
sorear good morning cosimo 07:19
rakudo: "foo\\nbar".comb(/^./).say 07:21
p6eval rakudo f7fdd5: OUTPUT«f␤»
sorear rakudo: "foo\\nbar".comb(/^^./).say
p6eval rakudo f7fdd5: OUTPUT«fb␤»
sorear hmm 07:22
rakudo: ("a","b").say
p6eval rakudo f7fdd5: OUTPUT«ab␤»
sorear niecza: ("a","b").say
p6eval niecza 64fc764: OUTPUT«␤Unhandled Exception: System.Exception: Unable to resolve method say in class Parcel␤ at Niecza.Kernel.Die (Niecza.Frame caller, System.String msg) [0x00000] in <filename unknown>:0 ␤ at Niecza.DynObject.Fail (Niecza.Frame caller, System.String msg) [0x00000] in <filename
..unknown…
sorear which is... oh bother
niecza: ("a","b").flat.say
p6eval niecza 64fc764: OUTPUT«␤Unhandled Exception: System.Exception: Unable to resolve method say in class List␤ at Niecza.Kernel.Die (Niecza.Frame caller, System.String msg) [0x00000] in <filename unknown>:0 ␤ at Niecza.DynObject.Fail (Niecza.Frame caller, System.String msg) [0x00000] in <filename 07:23
..unknown>:…
cosimo Tene: doesn't the paste show that @*INC contains my '/home/cosimo/.perl6/lib' already?
it used to work...
szabgab cosimo: have you ran make install? 07:24
or probably I just misunderstand the whole thing
cosimo szabgab: yes, App/Pls.pir is there, as `ls' shows
sorear rakudo: ("a","b").flat.say 07:25
p6eval rakudo f7fdd5: OUTPUT«ab␤»
cosimo szabgab: i mean, in ~cosimo/.perl6/lib/App/Pls.pir
sorear stefan@stefans:~/niecza$ ./niecza_eval -e '("a","b").flat.say'
a b
which is right
snarkyboojum cosimo: are you just use'ing it in 'proof-of-concept'? 07:26
sorear ? 07:27
TimToady rakudo is right
neither .flat nor .say are in the business of inserting spaces 07:28
cosimo snarkyboojum: i think so 07:29
snarkyboojum cosimo: will see if can reproduce
cosimo just cleaned, pulled and built both rakudo and parrot
07:30 wamba joined
cosimo snarkyboojum: maybe it's because of the .pir extension 07:32
snarkyboojum cosimo: yeah, that's what I'm testing atm
cosimo snarkyboojum: i'm sure it worked a few rakudos ago... 07:33
snarkyboojum cosimo: I have a feeling that it'll use the pir in ~/.perl6/lib if there is a .pm there, but not sure if there is just a .pir (just a gut feeling)
cosimo: i.e. if there is a .pm and a .pir 07:34
TimToady zzz &
snarkyboojum cosimo: kinda seems that way on a superficial reading of Perl6::Module::Loader 07:35
sorear <.SUPER::ws> ? Is that even legal? 07:36
snarkyboojum cosimo: Perl6::Module::Locator only seems to look for .pm and .pm6, so if that fails, it never checks for .pir in Perl6::Module::Loader
mberends cosimo, snarkyboojum: yes, that's the intent by design. The .pm or .pm6 file is officially the module you need to have installed, and the .pir file is just a performance enhancement. 07:38
snarkyboojum mberends: ok - so you can't just dump a compiled .pir file in your lib dirs 07:39
mberends snarkyboojum: you can't.
snarkyboojum mberends: you have to have a pm or pm6 there to use it - ok
mberends: thanks for clearing that up :)
mberends well you can, but they won't work as modules ;)
snarkyboojum mberends: I see :) 07:40
07:40 kjeldahl_ joined
snarkyboojum mberends++ :) 07:40
mberends this points to a need for documentation, but where would people go looking?
sorear Is it the intention that any implementation can claim bits of extension space in ~/.perl6/lib? 07:41
i.e. I can claim App/Pls.dll
mberends sorear: only Rakudo uses ~/.perl6 so far, it's an implementation specific policy. S11 is deliberately unclear about implementation. You're certainly welcome to claim other file extensions right now. That might become a friction point in future though. 07:43
snarkyboojum mberends: if it's implementation specific then I guess it belongs in rakudo doco somewhere? 07:44
cosimo mberends: i have been using 'ufo' to build and install modules. Am i wrong?
mberends cosimo++: you're right to do so :) 07:45
snarkyboojum does rakudo have implementation specific doco on those types of implementation points yet? 07:47
cosimo mberends: it looks like I needed to update ufo as well 07:48
07:48 cognominal joined
mberends snarkyboojum: there is rakudo/docs/S11-Modules-proposal.pod which is only partly implemented. Some of us meeting in Pisa may well re-visit that design and take it further. 07:50
snarkyboojum cosimo: yeah, ufo generated makefiles install both a .pm and a .pir into ~/.perl6/lib for me - so looks consistent 07:51
mberends: groovy
mberends sorear: to avoid file collisions, would this set make sense to you: ~/.perl6/lib/App/Pls.pm6, ~/.perl6/rakudo/lib/App/Pls.pir, ~/.perl6/niecza/lib/App/Pls.dll ? It would involve only a small Rakudo update. 07:54
cosimo masak: snarkyboojum: I needed to patch ufo to correctly deal with .pm6 installation 07:56
github.com/cosimo/ufo/commit/c3a30c...9ad534956f 07:57
snarkyboojum cosimo: cool - just found that bug too - I thought someone had patched ufo for pm6 extensions
mberends cosimo++
07:58 chitragupt left
cosimo so that means that rakudo now will load only .pm files and ignore .pir files? 08:00
08:00 chitragupt joined
cosimo I just run the test suite for LWP::Simple and its noticeably slower 08:01
mberends cosimo: Rakodo should find the .pm or .pm6 file, and then load the .pir file if it exists, otherwise load the .pm or .pm6 file 08:02
08:02 cogno joined
sorear mberends: shrug, niecza isn't nearly that mature yet and probably never will be 08:02
mberends: do what's convenient for rakudo (and doesn't completely ruin extensibility) 08:03
szabgab rakudo: say 'monday' ~~ m/ mon | monday /
p6eval rakudo f7fdd5: OUTPUT«mon␤»
szabgab I thought it would match monday
sorear it *should* 08:04
mberends sorear: ok thanks
sorear however, longest term matching is not implemented in any existing implementation of Perl 6
snarkyboojum cosimo: FYI - your patch fixes the .pm6 problem for me :)
szabgab ok, so I better not try that in live show... 08:05
mberends hugme: add mberends to ufo
ENOHUGME :-( # due to the Great Kick 08:06
snarkyboojum I can't commit to ufo either - I'm sure masak will apply it
mberends yep 08:07
sorear 22:00 -!- hugme [~moritz@feather2.perl6.nl] has quit [Ping timeout: 240 seconds]
this was well after the kick
dalek ecza: 90bb87e | sorear++ | Niecza/Actions.pm:
Implement parsing for metachar:* except qw, var
08:08
ecza: efc2334 | sorear++ | (2 files):
Fix --ast mode
ecza: 78b17bb | sorear++ | (2 files):
Implement :!s-like modifiers and fix null subregexes
08:08 Mowah joined
cosimo snarkyboojum: cool 08:09
sorear: OMG, perl6 on .net runtime? awesome 08:11
snarkyboojum .OMG :)
cosimo wonders how long to perl6-on-jvm :) 08:12
08:12 hugme joined
sorear hey 08:12
who did that
and would they please tell me how 08:13
I spent the last ten minutes logged in to feather2 as root fighting screen's command interface
moritz_
screen -Urd 08:14
moritz_ finds a better solution
sorear screen refuses to operate as root
08:14 hugme joined
sorear as su moritz, it fails (can't open terminal) 08:14
08:14 hugme joined
snarkyboojum hugme needs some hugs 08:15
moritz_ sorear: I've now put it in a while true; do perl hugme.pl; sleep 1; done loop
sorear: so the next time, you can just kill the perl process, and it will reconnect
sorear oh, awesome. 08:16
mberends sorear: pulled your last commit, passes all 99 tests on Ubuntu/x86 :) 08:17
hugme: add mberends to ufo 08:18
hugme hugs mberends. Welcome to ufo!
sorear mberends: it had better, that's almost the development platform 08:19
mberends cosimo: merged your fix and pushed 08:23
moritz_ mberends++
cosimo++
08:24 Leonidas joined 08:46 zulon joined 08:47 TiMBuS joined, cono joined
moritz_ rakudo: say &infix:<+>.assuming(3).(5) 09:02
p6eval rakudo f7fdd5: OUTPUT«8␤»
moritz_ rakudo: say &infix:<x>.assuming(2).('foo') 09:03
p6eval rakudo f7fdd5: OUTPUT«␤»
moritz_ rakudo: my $x = *; say $x + 2 09:06
p6eval rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever␤ in 'Any::Numeric' at line 1348:CORE.setting␤ in 'infix:<+>' at line 6394:CORE.setting␤ in main program body at line 22:/tmp/bkbNmtXHwg␤»
moritz_ rakudo: say ~(1, 2, 3).map: 'foobar'.substr(*) 09:12
p6eval rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever␤ in 'Any::Numeric' at line 1348:CORE.setting␤ in 'infix:<>>' at line 6394:CORE.setting␤ in 'Cool::substr' at line 2189:CORE.setting␤ in main program body at line 22:/tmp/2gnyKxnwLh␤»
09:13 trek1s joined 09:14 zulon joined 09:15 oha joined
szabgab rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <qqrq> / 09:16
p6eval rakudo f7fdd5: OUTPUT«Method 'qqrq' not found for invocant of class 'Cursor'␤ in <anon> at line 22:/tmp/mAzoo_po6f␤ in 'Cool::match' at line 2377:CORE.setting␤ in 'Regex::ACCEPTS' at line 5470:CORE.setting␤ in main program body at line 22:/tmp/mAzoo_po6f␤»
szabgab no named regexes now?
09:17 dju_ joined
szabgab or am I doing sg wrong? 09:17
moritz_ rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> /
Tene rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> /
p6eval rakudo f7fdd5: OUTPUT«4␤»
szabgab rakudo: my regex qqrq { \\d }; say '42' ~~ m/ <&qqrq> /
p6eval rakudo f7fdd5: OUTPUT«4␤»
szabgab hmm 09:18
will that & stay there ?
moritz_ sorear: if you want it to capture, you need the ugly <qqrq=&qqrq> syntax for now
szabgab or just for now?
moritz_ erm, meant szabgab
Tene szabgab: just for now
moritz_ I think it's meant to go again, in the long run
szabgab oh ppl, and I wanted to show it working ..
moritz_ szabgab: then write a grammar :/ 09:19
moritz_ not happy with it either
szabgab what do you mean by write a grammar?
in grammars this works?
moritz_ yes
szabgab oh
moritz_ because it does method lookup, not lexical lookup
09:20 xabbu42 joined
szabgab I am reaching the grammars a bit later 09:20
moritz_ rakudo: grammar A { token TOP { \\d+ } }; say A.parse('42')
p6eval rakudo f7fdd5: OUTPUT«42␤»
szabgab let me continue now with the caveat
09:24 Axius_ joined
oha rakudo: my $r = regex { \\w\\w }; say "123" ~~ /$r/; 09:24
p6eval rakudo f7fdd5: OUTPUT«12␤»
moritz_ github.com/moritz/perlgeek.de/blob/...rrying.pod # feedback appreciated before I blog it 09:25
and after that too :-)
Axius_ hi, I'm new to perl 6.How can I try perl 6 wihout installing it on my mashine?
moritz_ rakudo: say "like this, Axius_" 09:26
p6eval rakudo f7fdd5: OUTPUT«like this, Axius_␤»
moritz_ you can also /msg p6eval rakudo: your code here
Axius_: we're also working on a web interface, but it's not running yet
Axius_ rakudo:say 23 * 5 09:27
moritz_ it might need the space after the colon 09:28
Axius_ rakudo: say 23 * 5
p6eval rakudo f7fdd5: OUTPUT«115␤»
Axius_ thanks
moritz_ you're welcome
have fun with Perl 6! :-) 09:29
09:31 pugssvn joined
moritz_ resurrects pugssvn 09:31
jnthn moritz_: currying article looks good - maybe mention the * + * like forms where it creates a closure that takes two args?
moritz_ jnthn: it's in the text body, C<* * 5 + *>
jnthn: do you think it belongs in the synopsis too? 09:32
jnthn moritz_: oh, I missed it 09:33
moritz_: :-)
I was looking for a full-on code example with it in
moritz_ rakudo: (* * 5 + *).(10, 2) 09:34
p6eval rakudo f7fdd5: ( no output )
moritz_ rakudo: say (* * 5 + *).(10, 2)
p6eval rakudo f7fdd5: OUTPUT«52␤»
mberends moritz_: very nice article. In the Description, s/extracts/extract/
jnthn Time to go meet a friend in another city. bb sometime
moritz_ jnthn, mberends: thanks 09:35
jnthn: have fun :-)
oha "* * 5+*" i read it as "* * -> 5+*". how come "* * -> *+5+*"? 09:37
moritz_ confused 09:38
you just substitute each term * with a parameter 09:39
oha yep
moritz_ so * * 5 + * becomes $a * 5 + $b 09:40
oha ohhhhhh
not al the stars are params, one is a infix ok
ty moritz_ 09:41
maybe "* / 5+ *" would generate less confusion? 09:42
moritz_ oha: I've pushed a version with more verbose explanation
oha spaces become important that way
cauz
** could be power 09:43
moritz_ right
huf spaces are always important ;)
moritz_ rakudo: (* ** *).(3)
p6eval rakudo f7fdd5: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤ in <anon> at line 2:/tmp/QBFXOZy1R6␤ in main program body at line 22:/tmp/QBFXOZy1R6␤»
huf pick() isnt the same as p ick()
moritz_ rakudo: say (* ** *).(3, 2)
p6eval rakudo f7fdd5: OUTPUT«9␤»
oha i wonder ***-1 09:44
moritz_ oha: back in the day the spec was slightly different, and * * * would mean -> $a { $a * $a }. Then perlgeek.de/blog-en/perl-6/starry-obfu.html worked :-)
rakudo: ***-1 09:45
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤HyperWhatever (**) not yet implemented at line 22, near "*-1"␤»
oha will be $a ** -1 or $a * $b - 1
moritz_ ***-1 is ** * -1 # there's also a term **, which is a mullti-dimensional Whatever
09:46 jedai joined, abrasive joined
oha huf, i just tough about perl5 print issues 09:47
huf hm?
moritz_ print (1+2) * 3; # confuses the heck out of beginners in Perl 5 09:49
did you mean this one?
oha i do not remember exactly the case but i remember that print( and print ( will be parsed differently in some cases 09:51
moritz_ in p5 they are always parsed the same 09:52
in p6 never
oha i'm still searching...
moritz_ $ perl -E 'say (1+2)*3'
3
$ perl6 -e 'say (1+2)*3' 09:53
9
$ perl6 -e 'say(1+2)*3'
3
cognominal std: say $_ for 1..2 if 1
p6eval std 31821: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/bz651RH3ep line 1:␤------> [32msay $_ for 1..2 [33m⏏[31mif 1[0m␤Parse failed␤FAILED 00:01 117m␤»
moritz_ rakudo: say $_ for 1..2 if 1
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Missing block at line 22, near ""␤»
cognominal I thought stacking a conditional modifier whith a loop modifier was allowed. 09:54
Larry has flipfloped many times on that one.
moritz_ rakudo: say $_ if $_ % 2 for 1..5 09:55
p6eval rakudo f7fdd5: OUTPUT«1␤3␤5␤»
cognominal too bad I don't need them in that order. 09:56
I can do an or anyway 09:57
huf which s describes Whatever?
cognominal ...to avoid a block
moritz_ S02 iirc
oh right, I forgot the SEE ALSO section 09:58
huf thanks
Axius_ Where can I find a tutorial about perl6? 09:59
moritz_ Axius_: do you know perl 5? 10:01
cognominal Axius: github.com/perl6/book/downloads
moritz_ see also: perl6.org/documentation/ 10:02
Axius_ ok, thank. 10:03
sorear out 10:07
szabgab moritz_: why do you use := and not simple = assignment in the currying example? 10:58
moritz_ szabgab: because I happened to know that it works that way 11:02
rakudo: my &f = sub () { say "moep" }; f() 11:03
p6eval rakudo f7fdd5: OUTPUT«moep␤»
moritz_ could have used assignment instead, no difference, it seems
szabgab moritz_: thanks, I am still trying to figure out when is := useful :") 11:08
rakudo: $sos = * * * + + + * * *; say $sos(2, 11, 4, 5) 11:13
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Symbol '$sos' not predeclared in <anonymous> (/tmp/cy4fEZ_CIi:22)␤»
szabgab rakudo: my $sos = * * * + + + * * *; say $sos(2, 11, 4, 5)
p6eval rakudo f7fdd5: OUTPUT«42␤»
11:14 kjeldahl joined
moritz_ szabgab++ 11:15
szabgab I wonder what kind of art will come out of this
moritz_ perlgeek.de/blog-en/perl-6/starry-obfu.html
but it only works with the old spec
rakudo: my $sos = * * * - - - * * *; say $sos(13, 4, 2, 5) 11:16
p6eval rakudo f7fdd5: OUTPUT«42␤»
szabgab that obfu thing is scary 11:18
moritz_ I know :-) 11:19
szabgab I wonder if I should use that as my opening slide at the Python meeting presenting perl 6
moritz_ I don't know if they appreciate that kind of humor 11:20
11:21 chitragupt joined
szabgab I think they are serious people 11:22
I need to find a serious joke fr hem
or series
anyway, nice article 11:23
TiMBuS is the use of := encouraged for saving memory usage? or is it more just intended for referencing things (like nested data) 11:26
if so, I could see := being used in place of = for a lot of things szabgab 11:28
moritz_ I don't think so 11:29
:= can lead to strange action-at-a-distance if used without care
TiMBuS that's very true. use ::= instead? 11:31
szabgab it is basically what is called aliasing in perl 5 , right?
oha i see that for @a -> $x { ... } $x is readonly, but for @a { ... } $_ is rw 11:32
isn't risky to default to rw?
or maybe counter-intuitive?
moritz_ it's what people are used to from p5 11:33
moritz_ wouldn't mind defaulting to ro
oha i remember more cases in p5 where this was a bug instead of a wanted feature :) 11:34
moritz_ the famous my @a = map { s/a/b/ }, @thing 11:35
"why is @thing broken? and @a is just 1s and 0s?" 11:36
oha the map should not do aliasing, or am i wrong?
moritz_ map and for are the same thing 11:37
oha i mean, @thing shouldn't be changed there
moritz_ it should
oha rakudo: my @a=1..4; map { $_*2 }, @a; say @a.perl;
p6eval rakudo f7fdd5: OUTPUT«[1, 2, 3, 4]␤»
oha ehm 11:38
moritz_ rakudo: my @a=1..4; map {$_= $_*2 }, @a; say @a.perl;
oha rakudo: my @a=1..4; map { $_*=2 }, @a; say @a.perl;
p6eval rakudo f7fdd5: OUTPUT«[1, 2, 3, 4]␤»
oha rakudo: my @a=1..4; for @a { $_*=2 }; say @a.perl;
moritz_ ah, it's lazy
p6eval rakudo f7fdd5: OUTPUT«[2, 4, 6, 8]␤»
moritz_ rakudo: my @a=1..4; eager map {$_= $_*2 }, @a; say @a.perl;
p6eval rakudo f7fdd5: OUTPUT«[2, 4, 6, 8]␤»
oha moritz_++ 11:39
a reason more that should default to ro then :)
moritz_ it's not me who needs to be convinced 11:40
oha mh 11:41
rakudo: my @a=1..4; map { $_*=2; }, @a; say @a[1];
p6eval rakudo f7fdd5: OUTPUT«2␤»
oha rakudo: my @a=1..4; eager map { $_*=2; }, @a; say @a[1];
p6eval rakudo f7fdd5: OUTPUT«4␤»
oha the lazy is on the result, and not on the aliased? 11:42
rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[1]; say @a[1]; 11:43
p6eval rakudo f7fdd5: OUTPUT«2␤4␤4␤»
sorear Two terms in a row (previous line missing its semicolon?) at CORE.setting line 441: 11:45
I love STD
11:48 squeeky joined
TiMBuS oha, that last one is a pretty good argument for a readonly $_ right there 11:50
oha TiMBuS, mh. or the lazy is applied to the invocant too 11:51
so @a[1]; will computer *=2;
TiMBuS i dont want to think about how that would be implemented D: 11:52
11:53 funneydude joined
oha eheheh :) 11:53
11:53 xinming joined
TiMBuS on the other hand its kind of cool to see laziness in action like that 11:54
rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[1]; say @a[2];
p6eval rakudo f7fdd5: OUTPUT«2␤4␤3␤»
TiMBuS :o magic
oha rakudo: my @a=1..4; my @x := map { $_*=2; }, @a; say @a[1]; say @x[2]; say @a[1]; 11:55
p6eval rakudo f7fdd5: OUTPUT«2␤6␤4␤»
oha it evaluat "up to"?
TiMBuS yep
oha but probably "depends on the implementation" 11:56
so you can't assert what happen to @a[x] when any other element is accessed
11:57 p6eval joined
TiMBuS true 11:58
I think it'd be extremely hard to implement any other kind of laziness though
11:59 Gothmog_ joined
oha it seems to me that the "lazy code" is attached to the container and not the value, isn't it? 11:59
11:59 nigell joined
TiMBuS yes 11:59
oha but lazyness change the value to aliases too, so 12:00
12:00 rindolf joined
dalek ecza: e569c75 | sorear++ | (3 files):
Implement has declarations
12:00
ecza: 0357b1d | sorear++ | (4 files):
Implement add-attribute metacall so has declarations can work
oha aliasing w/ lazyness is scary
dalek ecza: 607036c | sorear++ | Op.pm:
Unbreak has $.a
ecza: 67aa90a | sorear++ | (3 files):
Implement Mu.new, which sets up attributes automatically
ecza: 3063691 | sorear++ | CORE.setting:
Use attributes in setting
ecza: f3424dd | sorear++ | test.pl:
Add a few tests for pseudo-packages and objects with attributes
12:02 snarkyboojum left 12:08 isBEKaml joined
isBEKaml hi, #perl6! 12:09
moritz_ \\o 12:10
isBEKaml moritz_: perlgeek.de/blog-en/perl-5-to-6/07-...writeback. I think the path rule is somewhat wrong. Shouldn't the hypen be escaped?
moritz_: "-" -> "\\-" 12:11
moritz_ checks
isBEKaml moritz_: the period too. 12:12
moritz_ std: /<[ a - b ]>/
p6eval std 31821: OUTPUT«[31m===[0mSORRY![31m===[0m␤Unsupported use of - as character range; in Perl 6 please use .. at /tmp/Te7OAodwDp line 1:␤------> [32m/<[ a - b[33m⏏[31m ]>/[0m␤Parse failed␤FAILED 00:01 116m␤»
moritz_ isBEKaml: I don't think the period has special meaning in a char class
std: /<[ a \\- b ]>/
p6eval std 31821: OUTPUT«ok 00:01 116m␤»
moritz_ isBEKaml: i've fixed the source now, will update the generated files later 12:13
thanks
12:13 Guest23195 joined
isBEKaml moritz_: I thought the period is just about any character. if we want the period to be shown, we should be escaping it? 12:13
12:14 mscha joined
moritz_ isBEKaml: in a character class it makes no sense vor a period to be everythinig 12:15
s/vor/for/ 12:16
because then the whole character class would be the same as a period in normal regexes, ie match any character
oha maybe <[.]-[x]> have?
isBEKaml moritz_: Ah, I see. Thanks. 12:17
moritz_ .oO (one eye cross out? ) 12:18
oha: that's the same as <-[x]>
isBEKaml moritz_: what does this mean then? <byte> [\\. <byte> ] ** 3 12:21
moritz_ byte, than a dot, than a byte, repeat 3 times
isBEKaml: in character classes the rules for escaping are different
isBEKaml moritz_: yes, I understood that. escaping the . ?
moritz_ yes 12:22
isBEKaml goes looking at S05 12:23
moritz_: one more thing in your TOP rule. the <hostname> token is such defined that it never looks at the alternation <ip> token. Have you checked that? Try typing in some ip num and say $match<ip>. I just get a blank here. 12:28
moritz_: I think the \\w would match everything. So nothing goes into <ip> 12:29
12:29 aigoo joined
isBEKaml s/everything/\\1 alnum/ 12:29
moritz_ right
this grammar was written before rakudo supported them properly, so it's not tested at all :( 12:30
aigoo hi, I'm new to perl6 and I need some help.
moritz_ hi aigoo 12:31
what kind of help do you need? 12:32
aigoo How try perl6 without installing it? 12:33
How can I try perl6 without installing it?
moritz_ funny, we've had that question today already
aigoo: see irclog.perlgeek.de/perl6/2010-07-25#i_2606150 12:34
aigoo moritz_: 12:35
12:36 JimmyZ joined
aigoo almost the some question 12:37
moritz_ or do you mean, without running 'make install'?
you can run rakudo without 'make install', but only from the build directory
but really nothiing stops you from 'make install' - you don't need root privs, and it's only intalling locally 12:38
aigoo What do you mean by "build directory"? 12:39
szabgab rakudo: say time 12:40
p6eval rakudo f7fdd5: OUTPUT«1280060416␤»
szabgab rakudo: say time + 0
p6eval rakudo f7fdd5: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'time' at line 5578:CORE.setting␤ in main program body at line 22:/tmp/A3iESm2YtP␤»
szabgab rakudo: say 0 + time
p6eval rakudo f7fdd5: OUTPUT«1280060451␤»
aigoo rakudo: say 12 ** 2
p6eval rakudo f7fdd5: OUTPUT«144␤» 12:41
szabgab rakudo(time + 0)
moritz_ aigoo: the rakudo dir, in which you can find the README, for example
szabgab rakudo: say(time + 0)
p6eval rakudo f7fdd5: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤ in 'time' at line 5578:CORE.setting␤ in main program body at line 22:/tmp/pgH6Fark78␤»
moritz_ rakudo: say time() + 0
szabgab rakudo: say(time() + 0)
p6eval rakudo f7fdd5: OUTPUT«1280060493␤»
rakudo f7fdd5: OUTPUT«1280060497␤»
aigoo rakudo: say (23 **3) + 23 - 3 12:42
p6eval rakudo f7fdd5: OUTPUT«12187␤»
aigoo rakudo: print 364 ** 2 12:43
p6eval rakudo f7fdd5: OUTPUT«132496»
isBEKaml moritz_: :( 12:44
moritz_: doesn't swapping <hostname> and <ip> tokens in TOP help?
isBEKaml checks.
moritz_ isBEKaml: it should 12:45
at least in rakudo
isBEKaml moritz_: Seems to work! :)
moritz_: [<hostname> | <ip> ] -> [ <ip> | <hostname> ] 12:46
cognominal rakudo: %( { :a } ) 12:48
p6eval rakudo f7fdd5: OUTPUT«Method 'hash' not found for invocant of class ''␤ in main program body at line 22:/tmp/yaWywQx8Wt␤»
cognominal std : %( { :a } ) 12:49
std: %( { :a } ).perl
p6eval std 31821: OUTPUT«ok 00:01 115m␤»
aigoo How can one use the std in perl6?
moritz_ std is a syntax checker 12:50
currently you can't use it from within rakudo, for example
szabgab rakudo: my $x = "1" x 20000; my $t0 = time; say $x ~~ m/:s \\d+ \\+ /; my $t1 = time; say $x ~~ m/:s:ratchet \\d+ \\+ /; my $t2 = time; say $t1-$t0, " ", $t2-$t1; 12:51
my $x = "1" x 20000; my $t0 = time; say $x ~~ m/:s \\d+ \\+ /; my $t1 = time; say $x ~~ m/:s:ratchet \\d+ \\+ /; my $t2 = time; say $t1-$t0, " ", $t2-$t1;
p6eval rakudo f7fdd5: OUTPUT«␤␤2 2␤»
szabgab hmm, I tried to check how :ratchet improves speed 12:52
oha szabgab, in this case the engine should optimize alot 12:53
aigoo say = print in per? 12:54
say = print in perl6?
12:55 masonkramer joined
moritz_ say = print + newline 12:55
cono aigoo: say "text" = print "text\\n"
szabgab I get about 50% speed improvement only 12:56
cono moritz_: btw, print+(2+1)*3, + - context change operator? Or just prefix + ?
dalek ok: d9997e5 | moritz++ | src/regexes.pod:
[rx] uglify the regex chapter, but make the code run at least. Probably also

  <foo>
12:57
ok: 54850cf | moritz++ | src/grammars.pod:
[grammars] explain <foo> calling syntax
ok: 93ee5f2 | (Nikolai Prokoschenko)++ | (14 files):
merge layout-basic branch
ok: f6de689 | (Nikolai Prokoschenko)++ | Makefile:
note to self: test before push. Fixed the makefile
moritz_ cono: in perl 5, prefix + is a no-op 12:58
just for parsing disambiguation
cono thanks 12:59
colomon am I correct in thinking we don't have "lift" yet? 13:00
moritz_ colomon: correct 13:01
colomon that's really ugly for Vector. :( 13:02
moritz_ I know
13:03 sundar joined
isBEKaml aigoo: just one thing. Please donot login to IRC networks as root user. login as any user but root. Security issue. :) 13:04
TimToady at seatac 13:07
sorear Did alpha have lift?
TimToady freewifi++
szabgab how can I use the result of a computation as par of a regex ? 13:08
rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= { $0+$1 } }
moritz_ sorear: no
p6eval rakudo f7fdd5: OUTPUT«2 + 3 = ␤»
moritz_ rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ $0 + $1 }> }
p6eval rakudo f7fdd5: OUTPUT«2 + 3 = ␤»
sorear szabgab: \\= "{ $0 + $1 }" should work
szabgab rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ $0+$1 }> }
p6eval rakudo f7fdd5: OUTPUT«2 + 3 = ␤» 13:09
moritz_ rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= <?{ say $0 + $1; $0 + $1 }> }
p6eval rakudo f7fdd5: OUTPUT«5␤2 + 3 = ␤»
moritz_ sorear: don't think so. { } just executes, but does not use the return value
sorear {} runs stuff in void context
moritz_: "{}" is an interpolating string
moritz_ hm
sorear rakudo: say "{ 2 + 3 }"
moritz_ rakudo: say '2 + 3 = 5' ~~ rule { (\\d+) \\+ (\\d+) \\= "{ say $0 + $1; $0 + $1 }" }
p6eval rakudo f7fdd5: OUTPUT«5␤»
rakudo f7fdd5: OUTPUT«␤»
moritz_ sorear: you're right - but I don't know if that's implmented in Rakudo 13:10
13:11 azert0x joined
colomon moritz_: arrrgh. Given Vector +, += doesn't work, [+] doesn't work, >>+<< doesn't work.... :( 13:12
szabgab so when is the ratchet useful besides speed issues? 13:13
moritz_ szabgab: for avoiding reparses, for example 13:14
szabgab that's speed, right?
moritz_ szabgab: if you parse a programming language, and you match a number with \\d+, and the next rules fails, you don't want it to backtrack
szabgab unless I am looking for a snippet in the code 13:16
but this can be true in any case where I do "input validation" 13:17
thyat is when I use ^ anchor
so for this purpose any well defined syntax / file format is a "programming language" 13:18
13:18 meteorjay joined
TimToady boarding & 13:31
oha rakudo: my $x = "11"~(1..10).map({$_*$_*$_}).join('0'); say ($x ~~ rx/ ( (\\d) (\\d*?) (\\d) <?{ $0 eq $2 }> )* /).caps.map({.values}).join(',');
p6eval rakudo f7fdd5: OUTPUT«11,10802706401,2502,160343051,2072␤»
oha rakudo: my $x = "11"~(1..10).map({$_*$_*$_}).join('0'); say ($x ~~ rx/:ratchet ( (\\d) (\\d*?) (\\d) <?{ $0 eq $2 }> )* /).caps.map({.values}).join(','); 13:32
p6eval rakudo f7fdd5: OUTPUT«11␤»
13:36 masonkramer joined 13:43 tylercurtis joined 13:44 zulon joined
sorear jnthn: ping 13:50
13:55 Daenyth joined
Daenyth Hi all 13:55
sorear Hello
Daenyth I'm building the july rakudo and it's been left for several minutes on /usr/bin/parrot src/gen/perl6.pbc --target=pir \\ src/gen/core.pm > src/gen/core.pir
Is that normal?
sorear Yes
Daenyth ok
4 more days :)
sorear It's a lot faster now than it used to be
March rakudo needed 8 hours for that step 13:56
Daenyth 0.0
sorear now it usually finishes in 5-10 minutes
Daenyth wth?
that's insane!
sorear is on a very underspec computer
Yes. Yes, it is. 13:57
Daenyth you know, I probably could work something out with some of the other people I know and get you shell access on the arch build box
sorear The parser is... slow.
13:57 Raynes joined 13:59 tadzik joined
tadzik hello #perl6 13:59
14:00 macroron joined
sorear Hello tadzik 14:00
14:06 masonkramer_ joined
rindolf Hi tadzik 14:07
frettled o/ 14:08
tadzik seen this mysterious commit on GH -- github.com/rakudo/star/commit/b3012ed -- so we're not shipping 2010.07 with Star?
Daenyth huh? 14:09
.07 is broken?
hm just compiled 14:10
is it supposed to be this slow?
master!Daenyth/builds/aur/rakudo> time perl6 -e 'say "hi"' 14:11
hi
real 0m2.725s
:/
tadzik yep 14:12
moritz_ Daenyth: about 1s here
Daenyth that's pretty pathetic :/
sorear Agreed
But R* is not focusing on speed
tadzik YMMV, but generally it's not too fast right now. The effort is put into completeness, not into optimizations
Daenyth well... I guess I'll wait on doing euler
sorear You can't wait 2.7 seconds?
moritz_ yeah, R* is not meant for project euler 14:13
Daenyth for one 'say'
tadzik oh come on
moritz_ no bigints, and too slow
Daenyth well, taking the example from the other day you gave me re problem 1
sorear Daenyth: the say took .01s, the rest was taken loading rakudo
Daenyth sorear: moment
tadzik it's like running Hello world in Java and complaining that it's slow. It's not fast, I agree, but here the most time is the init time, and compilation
Daenyth moritz_: master!Daenyth/builds/aur/rakudo> time perl6 -e 'say [+](1..999).grep: * %% (3|5)' 14:14
tadzik Daenyth: try perl6 --stagestats to see what takes the most amount of time
Daenyth 233168
real 0m33.436s
tadzik: will do
sorear stefan@stefans:~/niecza$ time ./niecza_eval -e 'say "hi"'
real 0m8.812s
Daenyth master!euler> time ./python/euler1.py 14:15
real 0m0.051s
oha on my notebook it takes about the same time of javac T.java; java T for just a print 14:16
Daenyth let me try with the --stagestats
tadzik Daenyth: no sense in comparing to python
Daenyth Yeah, I mean.. I get that's the 1.0 release 14:17
14:17 slavik joined
tadzik no it's not :) 14:17
Daenyth I'm just disappointed because all the hype has been saying that this is the "production ready" release
moritz_ it's not an 1.0 release
Daenyth well, r* is
moritz_ no.
tadzik …this is not
moritz_ NO!
tadzik who said that?
sorear R* is 0.01
not 1.0
Daenyth oh
tadzik exactly
moritz_ it's a preview release, to get more people interested
it's not "stable" or "production"
we hope it's useful 14:18
tadzik Daenyth: come on, where did you find this info? Serious question, no offence
sorear also, Perl5 runs euler1 in 0.013 seconds
Daenyth use.perl.org/~pmichaud/journal/39411?from=rss
So, here's what the Rakudo Perl project is going to do:
We will make an "official", intermediate, useful and usable release of Perl 6 (an appropriate subset) by Spring 2010.
eh
I guess it's just semantics
tadzik looks that you misunderstood it a bit
Daenyth guess so 14:19
We've also had discussions about what to call the intermediate release. We've considered tagging it as "Rakudo 1.0"
outdated info I guess
tadzik it is useful and stable, but not complete and not production ready
moritz_ it also seems the pcworld authors have misunderstood larry a bit :-)
Daenyth yeah 14:20
sorear Daenyth: taking 2.7s to start does not make something "not useful"
Daenyth I've definitely seen a few places around the net calling it 1.0
sorear: I didn't say it was useless
moritz_ well, we try hard not to spread that myth, but the myth spreads itself
sorear 09:18 < Daenyth> We will make an "official", intermediate, useful and usable release of Perl 6 (an appropriate subset) by Spring 2010.
Which adjective do you disagree with 14:21
Daenyth I'm not
It's just easy to misunderstand
tadzik right
don't blame him, it's not that easy to filter all these bullshit on the internets
Daenyth A lot of the hype is that this is going to be the first production ready release 14:22
even if you're not claiming it
tadzik I hope you alredy know it's wrong :)
sorear It's not any different from previous releases
moritz_ sorear: it is 14:23
sorear Except that this is the one we *want* people to use in production
moritz_ sorear: it's a distribution, not only a compiler
tadzik it's rather a psychological difference
sorear moritz_: I meant other than that
moritz_ it comes with modules, a module installer
ah well; the same holds true for all projects that do regular releases
none of them improves from "imature" to "stable" in one month 14:24
it's always a question of declaration
Daenyth tadzik: I know now, it's just disappointing
tadzik Daenyth: probably, if you were filled with hope. But the facts are it's not the Final, Production Ready Perl Six
Daenyth indeed 14:25
tadzik But wait, there's hope!
You can alredy write Perl 6 disregarding all the difficulties, and hopefully with your support Rakudo 1.0 will come earlier 14:26
and _that_'s what R* is for
Daenyth true 14:27
oha a part the speed, rakudo is very usable 14:29
pefect to start understanding perl6
Daenyth yes, true
but I was hoping to learn it by doing project euler with it
tadzik you can
…but that will require patience :)
Daenyth and that seems like an exercize in masochism now
oha at least, it was for me. i was (and currently am) very impressed how good it is
tadzik also you will be able to see how important is the algorithm itself
14:30 JimmyZ_ joined
oha Daenyth, it can be used for, in my opinion. 14:30
Daenyth tadzik: well euler is mostly designed along the lines of "correct algorithm should be under a minute to run", and any other approach runs in unworkable time
14:31 dual joined
tadzik yep, that's what I remember about it 14:31
Daenyth anyway, seems the bulk of the time is Stage 'past': 7.60555267333984e-05 sec
moritz_ if 76ms is the bulk of time, you're lucky :-)
Daenyth oh wait no 14:32
didn't notice the e at first
moritz_ erm, microsecends
runtime isn't shown as a stage
Daenyth moritz_: yeah just realized that
all the stages complete very quickly
then runtime takes forever
colomon moritz_: do we have a way to say "give me the end of this array starting at $n" that actually works at the moment? 14:33
tylercurtis rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5..*].perl.say; 14:34
p6eval rakudo f7fdd5: ( no output )
tylercurtis rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5..$a.elems].perl.say;
p6eval rakudo f7fdd5: OUTPUT«(6, 7, 8, 9, 10, Any)␤»
tylercurtis rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5 .. $a.elems - 1].perl.say; 14:35
p6eval rakudo f7fdd5: OUTPUT«(6, 7, 8, 9, 10)␤»
tadzik rakudo: my $a = [1,2,3,4,5,6,7,8,9,10]; $a[5, 6 ... *].perl.say;#curious
p6eval rakudo f7fdd5: ( no output ) 14:36
oha rakudo: my @a = 1..10; say @a[*]; # should print the last elements, isn't it?
tadzik ah no, it's infinite
p6eval rakudo f7fdd5: OUTPUT«Can't take numeric value for object of type Whatever␤ in 'Any::Numeric' at line 1348:CORE.setting␤ in 'infix:<<>' at line 6394:CORE.setting␤ in 'Any::postcircumfix:<[ ]>' at line 1655:CORE.setting␤ in main program body at line 1␤»
moritz_ oha: should return all array elements 14:37
colomon moritz_: so, how mad do you think pmichaud would get if I added postcircumfix:<[ ]>(Range $range) to Any-list.pm? It's not the right long term solution, but it would be easy to get the most common case working quickly. 14:48
moritz_ colomon: no idea 14:49
rakudo: 'abc' ~~ /./; my %h = a => 1, b => 2; say %h{$/} 14:51
p6eval rakudo f7fdd5: OUTPUT«maximum recursion depth exceeded␤ in 'Block::count' at line 5420:CORE.setting␤ in 'Block::count' at line 5424:CORE.setting␤ in 'Any::postcircumfix:<{ }>' at line 1␤ in <anon> at line 1␤ in 'Any::postcircumfix:<{ }>' at line 1␤ in <anon> at line 1␤ in
..'Any::postcircumfix:<{ }…
14:52 Juerd joined
Juerd Er, wow. Some kickfest :) 14:52
moritz_ rakudo: 'ab' ~~ /./; say $/ ~~ Positional
p6eval rakudo f7fdd5: OUTPUT«1␤»
moritz_ rakudo: 'ab' ~~ /(.)(.)/; my @a := $/; .say for @a 14:53
p6eval rakudo f7fdd5: OUTPUT«ab␤»
moritz_ rakudo: 'ab' ~~ /(.)(.)/; my @a := $/.flat; .say for @a
p6eval rakudo f7fdd5: OUTPUT«a␤b␤»
moritz_ spectests a fix for the infinite recursion 14:54
hm, not so easy 14:59
the problem is that $/ ~~ Positional 15:07
so the Positional variant postcircumfix:<{ }> is called
which iterates over the argument, and recurses into self
but since it's just one item, which is again Positional, it loops infinitely 15:08
15:22 amkrankruleuen joined 15:27 szbalint joined 15:34 amkrankr1leuen joined
moritz_ my "fix" results in a "Null PMC in copy" in rx.t 15:35
15:38 m6locks joined 15:39 Axius joined
Axius hello 15:39
moritz_ hi
sorear Hello. 15:40
15:40 mac_|afk joined
mac_|afk hi 15:40
moritz_ is glad to see that we're approaching 100 nicks again 15:41
mac_|afk is angry, cuz some1 has stolen his nickname :(
pugssvn r31822 | moritz++ | [t/spec] fix syntax error in fudge directive, moritz--
moritz_ mac_|afk: next time it's available, register it 15:42
mac_|afk Yup, I know... I should, but I haven't though some1 can take "mac_", "mac" was registered, but "mac_". Yes, I'm popular, but I've not minded it's so much 15:43
15:49 timbunce joined 15:56 markshaw joined
pmichaud good morning, #perl6 15:57
moritz_ good morning pmichaud 15:58
15:58 MarkS joined
sorear good morning pmichaud 15:58
moritz_ I've got 'star' far enough to download rakudo and modules, and then build rakudo into a custom prefix and run a sanity check 16:00
dalek ok: 550965b | moritz++ | src/subs-n-sigs.pod:
[subs] remove forbidden mandatory parameter after an optional one
moritz_ I'm also injecting the modules into proto's cache dir
but somehow the build step always fails
pmichaud okay, my plan is to work on the star build system today 16:01
moritz_ great
pmichaud is it currently downloading rakudo? I've been thinking that we should include a copy of rakudo in the tarball, rather than rely on downloading
moritz_ pmichaud: the idea is to have a script that downloads all the stuff that goes into the release tar ball 16:02
pmichaud: and then a second script is copied there (dist/ directory)
which the user then calls to build the stuff
pmichaud okay, that works for me
moritz_ so you run
pmichaud that sounds even better :-)
moritz_ $ perl build/download-stuff.pl
this creates dist/, which will eventually be tar'ed 16:03
when you cd dist/, you can run perl buildall.pl
the download-stuff.pl is also responsible for checking out the correct branch or tag from rakudo and proto/pls 16:04
16:06 mantovani joined, tadzik joined 16:15 MarkS left 16:16 wolverian joined
wolverian oh boy. 16:16
moritz_ wolverian: hm? 16:17
sorear it's ok 16:18
pmichaud has metaops now
wolverian it's good to be back. :)
sorear we're better off than before
pmichaud moritz_, sorear: do you have registered nicks? 16:19
moritz_ pmichaud: yes, account moritz_
sorear yes, account sorear
pmichaud you're both now registered with chanserv for #perl6 16:20
sorear (wow, I watn 16:21
pmichaud anyone else we should register?
sorear (wow, I wasn't expecting *meta*ops)
pmichaud I don't want to be the only person with metaops, because sometimes I'm not around.
sorear TimToady maybe
pmichaud is his nick registered?
sorear doesn't look like it
timbunce how can I contribute to the perl6 book? (I have some suggestions after trying to use it for learning perl6)
pmichaud timbunce: what kind of contributions are you looking to offer? ;-) 16:22
small patches, entire chapters, major rewrites, ... ?
sorear the 'TimToady' account exists and was last used under the username ~larry
so it looks like he does have the account, just doesn't habitually identify
timbunce small patches and some suggested TODOs
I've an annotated PDF I could send to someone 16:23
pmichaud git pull requests and patch submissions are very welcome
or that works
if you get it to us, someone will incorporate it :)
moritz_ hugme: add timbunce to book
hugme hugs timbunce. Welcome to book!
pmichaud email to me should work fine -- I plan to be doing book edits over the next few days
moritz_ feel free to push diretly
pmichaud ah, yes, and you now have a commitbit :)
moritz_ cc me please (moritz@faui2k3.org)
jnthn is back o/ 16:24
pmichaud jnthn: o/
jnthn o/ pmichaud
pmichaud: Safe journey back? 16:25
pmichaud yes
very nice journey, as it turns out
jnthn Good good. :-)
pmichaud weather was beautiful and I had a window seat
jnthn \\o/
I like flights like that.
pmichaud and the flight path meant that I got great views of Mt. Hood, Mt. Rainier, Great Salt Lake, and Canyonlands.
as in, we flew right over each of those. (I think the pilot did so deliberately)
jnthn Ooh, very nice! 16:27
moritz_ will visit a Clasic Open Air tonight
jnthn I remember one where I had clear weather, a window seat and we flew over Greenland. That was quite impressive. :-)
pmichaud I'm guessing the other side of the plane had equally good views (especially of Canyonlands), because I heard a lot of camera shutters :-) 16:29
jnthn :-) 16:30
pmichaud anyway, definitely the nicest (and shortest) PDX->DAL journey I've had.
(southwest airlines)++ 16:31
jnthn pmichaud: What're you planning to work on next in Rakudo land? 16:32
pmichaud I realized last night on the plane that I have several commits I forgot to make
er, forgot to push
so, right now I'm re-spectesting and preparing to push those. (I think they may be the for->map commits.)
then I'm going to work a bit on the book and the star repo 16:33
jnthn OK.
pmichaud my notebook has been acting crazy the last couple of days, too, so I'm thinking I'll reinstall (easy automated process, only takes about 30 mins)
any urgent things I should look at? 16:34
I'll probably see if I can figure out mainline lexical chains as well
moritz_ pmichaud: if you happen to have a fix for the %h{$/} infinite recursion, that would be nice
pmichaud: apart from that, we should really start to focus more on the distribution aspect
pmichaud right 16:35
distribution is my focus for the next couple of days, likely
what's the %h{$/} recursion? is there a ticket?
moritz_ rakudo: my %h = a => 1; 'a' ~~ /./; say %h{%/}
p6eval rakudo f7fdd5: OUTPUT«===SORRY!===␤Non-declarative sigil is missing its name at line 22, near "%/}"␤»
moritz_ rakudo: my %h = a => 1; 'a' ~~ /./; say %h{$/} 16:36
p6eval rakudo f7fdd5: OUTPUT«maximum recursion depth exceeded␤ in 'Block::count' at line 5420:CORE.setting␤ in 'Block::count' at line 5424:CORE.setting␤ in 'Any::postcircumfix:<{ }>' at line 1␤ in <anon> at line 1␤ in 'Any::postcircumfix:<{ }>' at line 1␤ in <anon> at line 1␤ in
..'Any::postcircumfix:<{ }…
pmichaud ...what should happen there?
moritz_ stringify, in the end
pmichaud why would it stringify?
moritz_ because our hash keys are strings 16:37
rt.perl.org/rt3/Ticket/Display.html?id=75868
pmichaud I thought Perl 6 hashes didn't have string keys
moritz_ they have, unless you declare them has %hash{Any}
jnthn pmichaud: They coerce to string by default.
moritz_ I know why it recurses 16:38
pmichaud is that in the synopses somewhere?
moritz_ $/ ~~ Positional
S09 likely
so it choses the @-sigiled postcircumfix
iterates over it
gets one item back
recurses into self
pmichaud perhaps add postcircumfix:<{ }>(Match $x) { self{~$x} } ? 16:39
moritz_ To declare a hash that can take any object as a key rather than just a string or integer, say something like:
my %hash{Any}; my %hash{*};
from S09
any, afk 16:40
s/any/anyway/
jnthn pmichaud: I'll take a crack at the role outer issue tomorrow and at least try and get a workaround in place. 16:48
pmichaud: I kinda failed to sleep last night so don't have the concentration to do it this evening. :-( 16:49
pmichaud jnthn: np
sorear jnthn: are you awake enough for me to pick your brain on a tiny role semantics issue? 16:52
jnthn sorear: how tiny? ;-) 16:53
sorear: Try me :-)
sorear role X { }; # What, exactly, is X? It's not necessarily a type object, especially if X can't be punned, but it has to be something that trait_mod:<does> can inspect 16:54
16:55 jferrero joined
jnthn sorear: It's a Role object, which encapsulates the multi-sub 16:56
sorear: An actual role is really called ConcreteRole
sorear So... there's a class Role { ... } somewhere, and X.^isa(Role)?
jnthn sorear: So your trait_mod:<does> has a candidate for Role and a candidate for ConcreteRole
And if it gets Role then it goes it needs to Role[] it to select the parameterless variant 16:57
Role stands for "any concrete role I've ever made" normally, e.g. in the context of smart-matching. 16:58
It's just when it's forced to commit that it then []'s itself to get a concrete role, and acts like a parameterless variant.
er, sorry
...and so to the user it just works for them to declare non-parametric roles and be able to name them parameterless, without precluding the ability to add other variants later. 16:59
Yes, Rakudo has a class Role
And a class ConcreteRole
sorear but the X "type object" is an ordinary instance of class Role, not a funky undefined type object thingie?
(except insofar as it overrides .new to pun)
jnthn Yeah, it's not quite a type object in the class-y sense. 17:00
It's an instance of Role but it always responds False to defined.
So it's type-object-y in that sense.
I ran into a situation where if it didn't claim to be undefined, it caused issues. I forget exactly where. 17:01
Punning isn't really overloading .new, it's more overloading .dispatch, or .find_method
er, .^dispatch that is 17:02
.^find_method is maybe .^can too
I'm still speculating a bit on exactly how that should fall out.
sorear Doesn't Role have methods?
Shouldn't I be able to call them?
jnthn There are some methods that don't pun, yes. 17:03
.perl and .postcircumfix:<[ ]> come to mind
Rakudo today is the closet approximation we have to correct, anyway. But I'm not convinced it's 100% spot on yet either, fwiw. 17:04
But we do handle punning as "any method not on this list of exceptions".
It may well be that we can do away with that completely though. (more) 17:05
If .perl returns something indistinguishable for the punned class as it would the role, and we say that actually it's not .postcircumfix:<[ ]> that Pint[Beer] calls but actually something on the meta-object, or some other macro-y thing, we maybe can say "all method calls pun" 17:06
I'd prefer that.
But it still leaves some awkwardness.
Like contextualizers. 17:07
But I really don't like lists of hardcoded exceptions, so if you find a workable approach that escapes that I'll probably be willing to copy it. :-)
.oO( did any of that make any sense... :-) )
17:08
I just didn't manage to beat it into submission in Rakudo yet.
Maybe I can in the forthcoming meta-model re-working.
timbunce I've forked the book on github, made some minor tweaks and TODOs and sent a pull request. 17:09
wolverian jnthn: is there a .hash-code method or so, then? (re: object keys) 17:11
jnthn wolverian: I guess that's .WHICH 17:12
17:13 eternaleye joined 17:14 s1n joined
dalek ok: 939ca34 | (Nikolai Prokoschenko)++ | lib/Makefile:
merge upstream patch for direct svg->pdf conversion, doesn't work though, still

48c8de7 | timbo++ | src/ (4 files): some minor fixes and assorted suggestions
17:14
pmichaud jnthn: ping 17:15
17:15 dalek joined
jnthn pmichaud: pong 17:15
pmichaud I think there's a problem with the topicalization in ~~
(looking) 17:16
jnthn pmichaud: I could believe that...I had a small fight with PAST::Compiler in the proccess...
pmichaud creating a new intermediate block loses the correct OUTER chain
in particular, for anything that needs to set $! or $/ 17:17
jnthn pmichaud: Seems it gets really upset if a PAST::Op node of type if and unless has a PAST::Stmt as the condition.
pmichaud: That is, it doesn't run the stuff and take the last thing returned as the condition.
Oh, ouch :-(
Yes, I can see that :-(
I didn't *want* the block at all.
szabgab can someone please let me know what is the \\ called in the [\\+] 0..6 code ? 17:18
besisdes "escape"
pmichaud szabgab: "triangle reduction"
szabgab: search S03 for "triangle"
szabgab and if I am not mistake in does the reductiopn right-wards
pmichaud szabgab: it might depend on the op associativity
jnthn szabgab: Through the list, yes.
oh, what pmichaud said... 17:19
szabgab: The implementation of it is in Perl 6 if you want to check :-)
szabgab :)
17:19 axigo joined
szabgab I was just reading the 'series' thread 17:19
and was trying to understand a bit more
axigo hi
jnthn szabgab: See reducewith in github.com/rakudo/rakudo/blob/maste...metaops.pm 17:20
axigo: hi
pmichaud jnthn: I'll see if I can figure out why PAST::Stmt isn't working in an 'if'. It really should work.
jnthn pmichaud: If you know of a way to not have it as a PAST::Block that doesn't hit code-gen problems, feel free to change it.
pmichaud the problem is that S05-mass/rx.t fails currently 17:21
jnthn pmichaud: Well yes, it should, but I figured it was not too much point hunting that down immediately.
pmichaud (because of this bug)
jnthn pmichaud: Given we can't actually fix PAST::Compiler bugs until post-R*
So I went for "workaround it and comment why" :-)
Evidently the workaround is fail though.
Huh, how'd I miss that one failing...
pmichaud well, it's failing in my local copy--don't know if that's related to other changes I've made 17:22
jnthn pmichaud: I coulda missed it. I get a load of exit code 1 thingies that pass in my failed tests list. :( 17:23
pmichaud yeah, that's _really_ annoying.
jnthn It really really is.
Anyway, sorry if I caused breakage. 17:24
pmichaud for some reason I've found that if I rm -rf t/spec and re-check it out, the exit code 1's sometimes go away
jnthn And it sounds feasible.
I'm just not immediately sure what the best solution is.
pmichaud well, PAST::Stmts really should work. I can't think of any reason it would not.
jnthn pmichaud: IIUC, I should be able to change the PAST::Block to a PAST::Stmts in the make_smartmatch sub and it'd work the same? 17:25
(as in, is that what you'd epxect)
pmichaud oh, there's another possibility :-)
(looking)
jnthn (and where the same means, same minus this bug :-)) 17:26
pmichaud you could also try PAST::Op.new( :pasttype<stmts>, ... )
jnthn ...oh?
pmichaud yes. :)
jnthn I didn't know that existed!
pmichaud yes
jnthn How does it differ from PAST::Stmts?
(Other than by node type :-))
pmichaud because sometimes we want to quickly convert a PAST::Op node to simply evaluate its children but do something else :)
s/something/nothing/
jnthn lemme try it 17:27
pmichaud jnthn: it's really no different, iirc
jnthn pmichaud: aye, but it may not have the same code-gen bug
pmichaud right... just in case the bug has something to do with the node type. 17:28
lue o hai o/
pmichaud anyway, I'm pushing my commits
jnthn (if you want to see it, change to PAST::Stmts, and then compare before and after the PIR output of "if 1 && 1 ~~ 1 { }")
pmichaud done
rindolf Hi all.
Hi jnthn , pmichaud
pmichaud I wonder if I can see it in nqp
rindolf So? A release in two days? 17:29
jnthn pulls them and rebuilds with those
pmichaud rindolf: four, I think.
(today is Sun, release is Thu.) 17:30
depending on what you mean by "release"
rindolf pmichaud: ah.
I mean the Star Release.
jnthn o/ rindolf
* is 29th. :)
lue must prepare promotional banner
rindolf jnthn: ah. 17:31
pmichaud rakudo: if 1 && (1; 1) { say 'yes'; }
p6eval rakudo f7fdd5: OUTPUT«yes␤»
pmichaud jnthn: that seems to work just fine.
17:31 justatheory joined
pmichaud (the "(1; 1)" produces a PAST::Stmts node) 17:32
dalek kudo: 1ccf35d | pmichaud++ | src/ (7 files):
Convert Nil to be a constant (finally!) instead of treating it like a
17:33
kudo: 83e0bdd | pmichaud++ | (6 files):
Merge branch 'master' of github.com:rakudo/rakudo
kudo: d1f2e59 | pmichaud++ | (6 files):
Merge branch 'master' of github.com:rakudo/rakudo
kudo: e991c43 | pmichaud++ | src/ (2 files):
Merge branch 'master' of github.com:rakudo/rakudo
pmichaud huh, that was weird. 17:34
jnthn merge-tastic
17:34 Axius joined
pmichaud anyway, I need to grab lunch. 17:34
jnthn > if 1 && 1 ~~ 1 { say 42 } 17:35
Null PMC access in get_bool()
grrr
Nope, PAST::Op with pasttype of stmts exhibted same problem. :-(
pmichaud just a sec, let me look.
sorear niecza: if 1 && 1 ~~ 1 { say 42 }
pmichaud the problem doesn't appear to be with PAST::Stmts
p6eval niecza 64fc764: OUTPUT«42␤»
sorear # I've copied enough design that intersection could help localize the bug 17:36
pmichaud sorear: the bug is appearing now because our smartmatch is temporizing $_ 17:37
sorear aha.
pmichaud at least, it's trying to.
sorear I'm ... not doing that just yet.
pmichaud jnthn: what does the PIR look like from your example above? 17:38
that would be a huge help
jnthn pmichaud: gist.github.com/489711 17:39
pmichaud: Notice how sm_result25 never gets used
17:39 pmurias joined
jnthn pmichaud: And it uses $P77 instead which was never initialized 17:40
AFAICT
pmichaud what is that .return?! 17:41
there can't be a .return there
oh, wait, yes there can
$P77 doesn't need to be initialized -- it's the result of the outer 'if' 17:42
...which, you're right, isn't set.
wait.
17:42 plobsing joined
pmichaud I'm guessing PAST::Stmts is having trouble with a PAST::Var(:scope<register>) as its last child, for some reason. 17:43
jnthn Oh. :S 17:44
pmichaud either that or the PAST::Stmts node being returned is ..... oh.
I think I see the problem.
looking
jnthn
.oO( this is where we discover I did some really silly mistake :-) )
pmichaud in method EXPR 17:45
we have
oh, nm, that's not it.
hmmm
I'm wondering if whatever is handling the results of the smartmatch is somehow using only the first three children. 17:46
i.e., if it's unpacking the PAST::Stmts node
jnthn Hmm
pmichaud just for fun, what if you create a PAST::Stmts node that contains a single child of another PAST::Stmts node? 17:47
(which then has all of the children)
jnthn pmichaud: heh heh...I'm compiling that at the moment ;-)
(Actually I did a PAST::Op with stmts as pasttype inside another one, but maybe same effect.) 17:48
pmichaud should be same effect
fwiw, if done using a PAST::Block, there's no need to save/restore the original $_ :-P 17:49
jnthn True, but PAST::Block is wrong for other reasons. 17:51
pmichaud agreed.
jnthn pmichaud: No, that doesn't help :-( 17:52
pmichaud okay
jnthn Let's see if it's the register var node
pmichaud it has to be something about the construction of the PAST::Stmts node that is causing the problem.
maybe try it as inline PIR, just for fun
oh, that might be a pain, never mind. 17:53
jnthn eww!
pmichaud (unique registers needed)
jnthn We already have too much inline PIR. :-)
pmichaud working inline pir > buggy non-inline past
:) 17:54
anyway, I need lunch. if you're unable to come up with anything, just leave me a note and I'll pick it up later.
jnthn kk
pmichaud I'm pretty sure it's something trivialish, just needs a bit of debugging
jnthn I seem to be doing better at conciousness than I'd anticipated. :-)
pmichaud: Promoting it to a lexical rather than a register var works 17:57
pmichaud: I'll spectest and go with that for now. But seems it is the register var.
pmichaud okay, I can buy that.
jnthn
.oO( Bugs for sale! Best prices! )
17:58
17:59 Ross joined
pmichaud ah, yes. 17:59
PAST::Var(:name<foo>, :scope<register>) doesn't actually generate any code
so there's never any statement generated that sets the result of the PAST::Stmts node to be <foo> 18:00
I bet something like that is the problem.
jferrero p6eval: say [+] (1..6).pick(4, :replace); 18:01
pmichaud anyway, at some point I'll likely want to factor out the temporization of $_ into its own helper sub
jferrero: try "rakudo: "
jferrero rakudo: say [+] (1..6).pick(4, :replace); 18:02
p6eval rakudo f7fdd5: OUTPUT«9␤»
jferrero Thanks, pmichaud :)
jnthn Could not find sub &Nil in 'Test::plan' at line 47:Test.pm
...huh?
jnthn thought he had re-configured
jferrero rakudo: say [~] (1..6).pick(4, :replace);
p6eval rakudo f7fdd5: OUTPUT«4522␤»
pmichaud jnthn: maybe need to make sure Test.pir rebuilds?
jnthn pmichaud: well, realcleaned...trying again 18:03
I thought Test.pir had
Deleted it for good measure.
pmichaud :-)
18:03 jedai joined
pmichaud okay, definitely lunchtime here. 18:04
bbiaw
jnthn see you in a bit :-)
18:07 alester joined
lue [ in case you missed it, iblogged: rdstar.wordpress.com/2010/07/25/onl...-op-abuse/ ] 18:09
pmurias hates gcc bugs 18:24
jferrero rakudo: say <Patrick Jonathan Larry Moritz Audrey>.classify( *.Str ) 18:35
p6eval rakudo f7fdd5: OUTPUT«Audrey AudreyLarry LarryJonathan JonathanMoritz MoritzPatrick Patrick␤»
jferrero rakudo: say <Larry Larry Moritz Audrey>.classify( *.Str ) 18:36
p6eval rakudo f7fdd5: OUTPUT«Moritz MoritzAudrey AudreyLarry Larry Larry␤» 18:37
dalek ecza: 40e8e9d | sorear++ | C (2 files):
Rework code generator to expose th.resultSlot to ANF, saves 7k lines from
18:38
ecza: 0ec7b78 | sorear++ | CodeGen.pm:
Disable _saveall handling
ecza: 7227acd | sorear++ | C (2 files):
The great codegen refactor

cutting an additional 10,000 lines off CORE.cs. CORE.cs is down to 1/3 the size it was at the beginning of this spree and compiles 5(!) times faster.
jferrero rakudo: say <Larry Larry Moritz Audrey>.classify( *.Str ).perl
p6eval rakudo f7fdd5: OUTPUT«("Moritz" => ["Moritz"], "Audrey" => ["Audrey"], "Larry" => ["Larry", "Larry"])␤»
18:40 tadzik joined
lue afk 18:54
19:00 benji-man joined, mac joined
mac re 19:01
tadzik o/ 19:03
mac ;)
19:05 pragma_ joined
pragma_ Well, #perl6 has shrunk considerably. 19:05
tadzik idlers are gone?
19:06 cono joined
tadzik and nothing of the value was lost, imho 19:06
pragma_ you have only one value?
tadzik what do you mean? 19:07
pragma_ The hunters shot deer. The hunters shot the deer.
tadzik I miss your point, I'm afraid. My thoughts are: nothing polite happened, yet the people who still feel a need to be here, will go back 19:08
pragma_ Hm, it happened 23 hours, 50 minutes ago. That's practically yesterday. 19:10
Yes, it is old news.
cosimo pragma_: what exactly? 19:21
pragma_ cosimo: someone gained privileged access to the channel and kicked everyone. 19:22
tadzik using nick 'audreyt' 19:23
cosimo oh, interesting. now I see why I wasn't there :) 19:24
i just stopped by to say that I'm proud to be a (even tiny) part of Perl 6 19:25
jnthn pmichaud: Fix worked; pushed. 19:26
cosimo I have that sense of "I was there when that happened"
i wish I could do more to help out
that's it. good $night 19:27
:)
19:27 sundar joined
tadzik cosimo: gnight :) 19:29
dalek kudo: b46a3b3 | jonathan++ | src/Perl6/Actions.pm:
Avoid using a PAST::Var register node as the result of a smart-match, since it

avoids issues that the block trick introduced.
19:30
19:31 rgrau` joined
tadzik so, any other PM groups celebrating R* this week? 19:41
19:48 ggoebel joined 19:57 plol joined
pmichaud back 20:08
cxreg sorear: any plans for either niecza or rakudo to target jvm?
rindolf tadzik: sounds like a release of GNU R.
tadzik: although I know it's Rakudo Star.
tadzik rindolf: why GNU?
rindolf tadzik: GNU R.
tadzik: their S clone. 20:09
tadzik will ask duckduckgo
rindolf tadzik: which should be pretty good.
20:09 Sexus joined
tadzik rindolf: the programming language? 20:10
rindolf tadzik: yes.
tadzik ee, I don't see how it could be more awesome than Perl6 anyway :)
so, any mongers celebrating somewhere/ 20:11
rindolf tadzik: well, GNU R is very different from Perl.
Either Perl 5 or Perl 6.
avar cxreg: There's an experimental .net thing 20:15
cxreg: But it's pretty tied to the Parrot VM right now, all the interesting stuff calls out to PIR libs 20:17
jnthn cxreg: Rakudo may have a JVM backend at some point. 20:20
20:20 hercynium joined
jnthn cxreg: One of my explicit goals in the Rakudo meta-model re-working I'm looking at is to have something that can be comfortably implemented on Parrot/JVM/CLR and more. 20:21
avar Is there a todo / something written down for what needs to be done to get to that point? 20:23
jnthn And while I've not made implementing it on anything besides Parrot a grant deliverable, it's almost certain I'll end up with an implementation on things other than Parrot, if only because I'd rather write the first implementation in C# or Java rather than C.
avar jnthn: sweet
jnthn (easier to refactor, more primitives to hand, don't have to worry about memory management, etc)
tadzik: YAPC::Europe will be soon after R* - I'll celebrate there. :-) 20:25
tadzik :) 20:26
20:26 patspam joined
tadzik hmm, some of the tests in spectests are e.g. fmt.rakudo. So are they official Perl 6 spectests, or rakudo-only? 20:26
jnthn tadzik: They're generated from the .t files 20:27
tadzik: But they have parts of them "fudged" out
tadzik ah, like TODO?
jnthn tadzik: The .t files have markers like "this implementation can't run this test, comment it out and emit a skip directive"
tadzik: And then at the start of make spectest, a .implementation version of the time (.rakudo in Rakudo's case) is generated based on the #?rakudo markers in the file. 20:28
tadzik: Yeah, but an implementation-specific todo.
tadzik I see
[Coke] tadzik: more like SKIP.
jnthn Well, there's todo and skip.
skip actually comments the code out though - becase it may well not even parse.
tadzik: svn.pugscode.org/pugs/t/spec/README has all the gory details. :-) 20:29
20:36 tadzik joined
pmichaud
.oO( does it also have the non-gory details? )
20:38
.oO( are all of the details gory? )
.oO( where are all of these bubbles coming from? )
tadzik ah, those are bubbles! 20:39
nice
20:42 trek1s joined 20:44 rindolf joined 20:48 whiteknight joined 20:50 integral joined, integral left 20:51 constant joined 20:56 wknight8111 joined 21:03 xabbu42 joined 21:06 alexm joined 21:08 molaf joined
pugssvn r31823 | Kodi++ | [t/spec] More tests for Instants and Durations. 21:16
lue hello o/ 21:17
frettled I see it's time to go to bed, I read «More tests for insomniacs»
lue: \\o/ 21:18
frettled goes back to idling. If frettled is not idle for the next eith or nine hours, frettled is sleep-ircing.
jnthn frettled: you passed them ;-)
colomon jnthn: Sitting here trying to figure out how to start the grant report, looking at an old report of yours where you mention that in the course of your work, Rakudo went from passing 4,000 tests to passing 10,000 tests. :) 21:20
jnthn colomon: :) 21:21
colomon Funny thing is, were I to use the same sort of comment, we pass many fewer tests now than when I started. ;) 21:22
jnthn ;)
Yes, but IIUC the tests we pass cover more :-)
colomon that is true. :) 21:23
lue .oO[ I pass hundreds of tests everyday on my way to a certain .t file I need to edit :) ] 21:24
colomon while I'm taking a quick pause: I think we should extract three of the modules from the Vector package to make independent Math::Vector, Math::Polynomial, and BinarySearch. 21:25
(other names might be better)
jnthn colomon: In general, I'd say start with a short introduction indicating the grant work has been successfully completed, then explain a little bit for each deliverable to make clear what was done, with some references to blog posts/tests, and then some kind of conclusion about how all of this means Rakudo is a step closer to covering the Perl 6 spec, and that the spec has been straightened out and is better tested now which is an all around win too.
colomon jnthn: I've already explained the deliverables, it's just the intro and outro which I still have to write. 21:26
jnthn oh, maybe references to some code too if you feel it's appropriate.
colomon: Ah, OK. :-)
colomon hmmm, I hadn't considered code references.
jnthn colomon: I don't think I've tended to use them extensively. 21:27
colomon back on the Vector stuff for a second -- I have all three of those areas fully passing their tests again. The remaining tricky bit seems to be the combination (using a vector-valued polynomial versus a NURBS curve) which is making me throw up my hands in frustration. 21:28
jnthn colomon: In terms of trying to work out the right factoring? 21:29
colomon: For "BinarySearch" maybe Algorithm::BinarySearch (to avoid top-level name) 21:30
colomon jnthn: the problem seems to be that you cannot currently use (say) Vector coefficients in your polynomial without doing "use Vector" in Polynomial.pm. But if you have to also do that in Nubs.pm, and then you use both Polynomial and Nubs, bad things happen. 21:31
I'll try to come up with a more coherent bug report at some point, but that may be a couple of weeks off yet. 21:32
jnthn *nod*
I can certainly believe there are bugs in that area.
But I can't think of any known issue that would give you that kind of trouble either.
colomon at any rate, it's silly to try to include that all as one single package anyway. Vector and Polynomial can be completely independent, and BinarySearch even more so.
jnthn Yes, sounds sensible. 21:33
colomon and of course, the easier we make it for people to use them / work on them, the more people are likely to do so. :) 21:35
jnthn Yes, somebody looking for a binary search impl wouldn't be likely to look in a single Vector package for it. :-)
colomon exactly.
jnthn: I keep on being tempted to stick an "areas for future development" section in my grant report. Smart or dumb? 21:36
jnthn Doesn't that belong in your next grant application? ;-) 21:37
colomon jnthn: maybe. :)
jnthn Things phrased as "this opens the door to being able to work on X, Y and Z that we were not in a positoin to before this work" is probably good. 21:38
colomon though done that way it would be kind of scattery: BigInts! FatRats! Numeric methods we should have had but left out of the spec!
jnthn *position
colomon oooo, clever way of thinking about it.
okay, that's everything but the conclusion done in first draft, and I should really go cook noms. 21:40
jnthn :-)
Enjoy noms.
21:44 ingy joined
ingy someone set up us the bomb! 21:45
pragma_ what you say! 21:46
21:47 pwd joined
dalek p-rx: 96bc191 | tene++ | src/NQP/Actions.pm:
Set :nsentry on our methods
21:47
lue
.oO(Ooh, there's a discussion on radices (radixes? radii?) on p6l! /me interested)
21:49 dolmen joined 21:56 Patterner joined 22:05 Ross joined 22:06 whee joined 22:12 masonkramer joined 22:17 alanT joined 22:18 alanT left
ingy morning 22:25
squeeky evening!
ingy so audreyt cleared the chan eh?
what else is happening
squeeky everyone appears to be having happy hour, somewhere. 22:26
ingy yeah!
ingy is waking up at 3:30pm
making coffee
squeeky "SIR! BEEN AWAKE SINCE THE CRACK OF NOON, SIR!"
ingy but a cocktail sounds like a fine idea 22:27
is rakudo* busted?
github.com/rakudo/star
that msg seems onerous
jnthn ingy: No, the release that went out on Thursday kinda was though :-( 22:29
But that's OK, Star can use from master. I'd expected that anyway. :-)
22:34 justatheory joined
lue what time will R* be released? 22:36
ingy jnthn: there was a release on thurs? 22:44
was the 29th a fake date
jnthn ingy: Just the Rakudo compiler monthly release
Not R*
ingy ah
lue
.oO(O darn, where is confetti? I only have a few days until R*!)
22:45
whee would it be safe to use rakudo star as an excuse to learn perl 6 or should I expect disappointment? :D 22:47
ingy whee: expect excitement! 22:48
22:48 alanT joined
lue whee: feel free to use anything as an excuse :) 22:48
ingy whee: blogs.perl.org/users/ingy_dot_net/2...ready.html 22:49
ingy goes off to write a yaml parser for the rakudo star release 22:50
:)
jnthn -> rest
22:51 lichtkind joined
lichtkind mberends: greets 22:51
whee ingy: awesome 22:52
ingy moritz_: ping 23:00
moritz_: what's this: token value:sym<true> { <sym> };
Tene ingy: what about it? 23:03
ingy: it's a protoregex 23:06
It's like multiple dispatch for regexes.
lue afk
23:08 alexm left
ingy Tene: can you break it down a little bit for me (or point me at the doc)? 23:09
Tene: I think I found something... 23:10
Tene ingy: I'm glad to break it down. 23:11
Should be documented in S05
ingy: look for :sym in github.com/rakudo/rakudo/blob/maste...Grammar.pm for examples 23:12
github.com/rakudo/rakudo/blob/maste...ar.pm#L476 23:13
is good
when another rule uses <statement_prefix>, it checks to see which of those rules it oculd match 23:14
<sym> inside of those those tokens matches the argument given to :sym in the definition
so statement_prefix:sym<BEGIN> { <sym> <blorst> }; matches 'BEGIN' and then a <blorst>
the advantage there is that you don't have to do like: 23:16
token foo { <foo_a> | <foo_b> | <foo_v> | <foo_d> <lol> | ... }
And then have an action method to check each of them and return the ast for whichever it matched
just define token foo:sym<a>, foo:sym<b>, etc. 23:17
and then just use <foo>
That was kind of scattered. Did that end up covering what you needed?
ingy Tene: thanks! 23:32
Tene: that kinda makes 'sym' a keyword, no? 23:36
rakudo: token sym { 'foo' } 23:37
p6eval rakudo b46a3b: OUTPUT«Useless declaration of has-scoped token in a module; add our or my to install it in the lexpad or namespace␤»
Tene ingy: Kinda.
ingy rakudo: grammar X { token sym { 'foo' } }
p6eval rakudo b46a3b: ( no output )
ingy std: grammar X { token sym { 'foo' } }
p6eval std 31823: OUTPUT«ok 00:01 116m␤»
ingy or is 'sym' just a convention for some:such? 23:39
Tene I'm not entirely sure how that works, grammatically. 23:40
ingy Tene: what's {}
as in: '#' {} \\N*
Tene ingy: where do you see that?
ingy token comment:sym<#> { '#' {} \\N* 23:41
Tene Ah.
ingy }that looks cool
Tene No idea, actually.
ingy hmm 23:42
Tene certainly not necessary or related to protoregexes.
ingy yeah, but I've moved on! 23:43
;)
23:50 Eddward joined
Tene ingy: {} in general just call a closure of Perl 6 code. 23:55
As far as I can tell, in Rakudo right now that really does just call an empty closure that returns Nil
I have no idea what that's good for.
But that's what it actually compiles to.
ingy Tene: awesome. thanks! 23:56
Tene pmichaud: what is {} used for in Rakudo's Grammar.pm? 23:57
23:57 Psyche^ joined