00:01 hercynium joined 00:05 justatheory left 00:16 netfish joined 00:32 avar left, avar joined
dalek kudo: ee1fd13 | pmichaud++ | src/classes/Multi.pir:
Allow .WHAT and other p6object methods on Parrot MultiSub objects (RT #66928).
00:35
00:38 mizioumt1 left
dalek kudo: 7fdd7c8 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION so we get some Parrot fixes (RT #66060).
00:41
00:42 frew_ left, frew_ joined 00:43 lambdabot left 00:46 lambdabot joined 00:50 Whiteknight left 00:54 cdarroch left 00:55 cls_bsd left, cls_bsd joined 00:56 orafu joined 01:17 nihiliad joined, orafu left 01:18 orafu joined 01:28 molaf_x left 01:38 orafu left 01:42 KyleHa joined 01:44 orafu joined 01:45 molaf_x joined
pugs_svn r27345 | kyle++ | [t/spec] Test for RT #66928 01:45
01:59 orafu left 02:00 japhb left 02:01 charsbar_ left, charsbar joined 02:05 orafu joined 02:10 snarkyboojum left 02:14 jhorwitz left 02:16 dukeleto joined 02:19 alester joined 02:21 orafu left, orafu joined 02:22 szabgab left 02:32 japhb joined 02:33 amoc joined 02:36 last left 02:37 szabgab joined 02:40 athomason left 02:42 orafu left 02:44 szabgab left 02:45 szabgab joined
dalek kudo: 6c6299f | pmichaud++ | src/builtins/globals.pir:
Fix %*VM<config> (RT #66818).
02:45
kudo: 5351a33 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get fix for RT #66840 (ternary error shouldn't exit)
02:46 Limbic_Region left 02:48 orafu joined
pugs_svn r27346 | kyle++ | [t/spec] unfudge the RT #66840 test since it passes in Rakudo 5351a33 02:55
02:56 KyleHa left, leon joined 03:01 skids left, leon left 03:02 dukeleto_ joined
pugs_svn r27347 | pmichaud++ | [t/spec]: Unfudge test for unicode method names (now fixed in Parrot). 03:02
03:03 leon_mu joined, orafu left 03:04 orafu joined, orafu left 03:09 orafu joined, synth left 03:23 orafu left, orafu joined 03:24 dukeleto left 03:25 orafu left 03:28 orafu joined 03:32 orafu left, molaf_x left 03:37 dukeleto_ left, orafu joined 03:46 orafu left 03:52 orafu joined 04:07 orafu left 04:08 orafu joined 04:23 FurnaceBoy left 04:28 orafu left 04:29 orafu joined 04:32 justatheory joined 04:50 orafu left 04:55 orafu joined 05:01 japhb left 05:11 orafu left, orafu joined 05:13 ihrd joined 05:17 frew_ left 05:18 agentzh left 05:22 finanalyst joined 05:23 dukeleto joined 05:32 orafu left 05:33 orafu joined 05:36 agentzh joined 05:37 netfish left 05:45 alester left 05:49 nihiliad left 05:53 orafu left 05:54 orafu joined 06:05 zamolxes left 06:06 azawawi joined
azawawi good morning 06:06
06:06 M_o_C joined
pugs_svn r27348 | kyle++ | [t/spec] fix the plan I broke in what.t 06:08
Matt-W morning azawawi
eternaleye Hi azawawi, Matt-W 06:09
moritz_ good morning
Matt-W wants to know how to move an operator into the setting
eternaleye oh hai, moritz_
Matt-W: Just define it in the setting, remove it from the PIR, and spectest! 06:10
Matt-W eternaleye: it causes a null pmc access :(
moritz_ ... in find_method?
eternaleye Well, that's _never_ right
moritz_ which operator?
Matt-W moritz_: yes. I was trying to do infix:<leg>
eternaleye I was just thinking, we're going to need to be careful defining operators in terms of other operators, because we might get an infinite recursion going. 06:11
moritz_ Matt-W: you also have to remove it from build/gen_junction_pir.pl
Matt-W ah
Matt-W tries that 06:14
06:14 synth joined
Matt-W ah that's better :) 06:14
06:15 mvuets joined, orafu left
Matt-W just have to wait for spectest now 06:15
eternaleye rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { return $cur unless $cur % any( @prev ) == 0 }; };
p6eval rakudo 5351a3: OUTPUT«5␤»
eternaleye rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { last unless $cur % any( @prev ) == 0 }; $cur }; 06:16
p6eval rakudo 5351a3: ( no output )
eternaleye rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { take $cur unless $cur % any( @prev ) == 0 }; };
p6eval rakudo 5351a3: OUTPUT«Died␤in sub infix:... (/tmp/mAFnftJ9B8:2)␤called from Main (/tmp/mAFnftJ9B8:2)␤»
eternaleye In any case, the first one appears wrong - it looks like it's returning from infix:<...> 06:17
Do we need to do a wrapping sub around $generator, so that it DWIMs
?
When I define the generator as a sub, and then use &nextprime in infix:<...>, it works 06:18
rakudo: sub nextprime( *@prev ) { state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { return $cur unless $cur % any( @prev ) == 0 }; }; my @seed = 2, 3; .say for @seed ... &nexprime; 06:19
06:19 leon_mu left
moritz_ return() is specced to exit a routine, not a block 06:19
p6eval rakudo 5351a3: OUTPUT«No applicable candidates found to dispatch to for 'infix:...'␤in Main (/tmp/lsLy8NUC4i:2)␤»
eternaleye Hmm
moritz_ you'd need leave() to leave the block, but I don't think it's implemented yet
rakudo: say { leave 3 } 06:20
p6eval rakudo 5351a3: OUTPUT«_block49␤»
moritz_ rakudo: say { leave 3 }.()
p6eval rakudo 5351a3: OUTPUT«Could not find non-existent sub leave␤»
eternaleye Ah
06:20 rfordinal left, orafu joined 06:21 rfordinal joined
eternaleye rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; my $cur = @prev[*-1]; while ++$cur { break unless $cur % any( @prev ) == 0 }; $c > 100 ?? () !! $cur }; 06:21
p6eval rakudo 5351a3: OUTPUT«Died␤in sub infix:... (/tmp/LEbFssDoqU:2)␤called from Main (/tmp/LEbFssDoqU:2)␤»
eternaleye rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; my $cur = @prev[*-1]; while ++$cur { last unless $cur % any( @prev ) == 0 }; $c > 100 ?? () !! $cur };
p6eval rakudo 5351a3: ( no output ) 06:22
eternaleye Hm
Loop control is apparently NYI
moritz_ what do you mean by loop control? 06:23
last should work 06:24
eternaleye rakudo: sub nextprime( *@prev ) {{ state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { return $cur unless $cur % any( @prev ) == 0 }; }; my @seed = 2, 3; .say for @seed ... &nextprime;
p6eval rakudo 5351a3: OUTPUT«Unable to parse block; couldn't find final '}' at line 2, near ""␤in Main (src/gen_setting.pm:3279)␤»
eternaleye rakudo: sub nextprime( *@prev ) { state $c = 0; return () if $c > 100; my $cur = @prev[*-1]; while ++$cur { return $cur unless $cur % any( @prev ) == 0 }; }; my @seed = 2, 3; .say for @seed ... &nextprime;
p6eval rakudo 5351a3: ( no output )
eternaleye moritz_: last doesn't seem to work, since it loops forever on that one. If I put a say in there, it just repeats
It should give a 5, a 7, etc
rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; my $cur = @prev[*-1]; while ++$cur { last unless $cur % any( @prev ) == 0; say "hi" }; $c > 100 ?? () !! $cur }; 06:25
p6eval rakudo 5351a3:
..OUTPUT«hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi􏿽xE2
moritz_ still too tired to actually *look* at the code
eternaleye or maybe...
rakudo: my @seed = 2, 3; .say for @seed ... -> *@prev { state $c = 0; my $cur = @prev[*-1]; while ++$cur { last unless $cur % any( @prev ) == 0; say "hi" }; $c > 5 ?? () !! $cur };
p6eval rakudo 5351a3:
..OUTPUT«hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi␤hi􏿽xE2
eternaleye Nope, that is what's happening 06:26
Also, does that look like a NL symbol to everyone else? Since it looks like lower-a, circumflex acce,t, space, Euro sign here
moritz_ it looks broken here too 06:27
rakudo: say 'ö'
p6eval rakudo 5351a3: OUTPUT«ö␤»
eternaleye _weird_
moritz_ hm, that looks fine
eternaleye Bug? 06:28
Running in local rakudo
moritz_ it loooks OK on the IRC logs, though
Matt-W woohoo
my operator passed its part of the spectest
what's the preferred way to submit a patch?
moritz_ eternaleye: ah, I know why... the last NL character got trunkated, so our IRC client's autodetection thought "that's not valid UTF-8" and went beserk. 06:29
Matt-W: [email@hidden.address]
Matt-W moritz_: yes but how to make the patch
eternaleye Ah
Matt-W moritz_: unfamiliar with git for this
eternaleye Matt-W: git format-patch --stdout 'HEAD^' 06:30
and nopaste/rakudobug/email/etc it
Or remove the --stdout and it'll make a file
I like the --stdout, so I can pipe it to wgetpaste 06:31
moritz_ Matt-W: first commit it (git commit -a)
Matt-W: then git-format-patch HEAD^
Matt-W: and attach the generated file
Matt-W sends 06:34
and just in time to go to work too
I'll be back later
Matt-W -> commuting &
06:36 orafu left 06:37 orafu joined, orafu left 06:39 rfordinal left 06:42 orafu joined 06:44 DemoFreak joined 06:54 azawawi left 06:57 orafu left, orafu joined 06:59 rfordinal joined 07:02 spinclad joined 07:05 japhb joined 07:18 orafu left 07:19 meppl joined 07:20 orafu joined 07:23 ejs joined 07:26 mkindahl joined
moritz_ rakudo: say 'a' cmp 'b' 07:27
p6eval rakudo 5351a3: OUTPUT«-1␤» 07:28
moritz_ rakudo: say 'b' cmp 'b'
p6eval rakudo 5351a3: OUTPUT«0␤»
moritz_ rakudo: say 'c' cmp 'b'
p6eval rakudo 5351a3: OUTPUT«1␤»
07:33 ejs1 joined 07:35 iblechbot joined 07:40 orafu left, ejs left 07:41 orafu joined
moritz_ I just found out that mathematica has something similar to our [\...] meta operatr (called FoldList) 07:42
Matt-W back 07:44
moritz_: o rly? 07:46
list folds are generally very useful things
07:48 mepplock joined 08:01 eMaX joined, orafu left 08:02 orafu joined, meppl left 08:19 rfordinal left 08:20 rfordinal joined 08:22 orafu left 08:23 orafu joined 08:24 last joined 08:25 sri_kraih joined
moritz_ I first searched for reduce in the mathematica docs, but that does something entirely different :-) 08:27
08:37 PacoLinux left 08:39 rfordinal left
jnthn morning 08:41
pmichaud++ # blogging 08:43
moritz_ indeed.
08:43 orafu left 08:44 orafu joined, orafu left 08:45 solarion left, Chillance joined, solarion joined
Matt-W moritz_: what we call reduce feels a lot like what they call a fold in Haskell 08:45
08:47 last left 08:49 rfordinal joined 08:50 pmurias joined 08:57 m-i-l-a-n left 08:59 m-i-l-a-n joined 09:00 orafu joined 09:04 m-i-l-a-n left 09:05 orafu left 09:06 orafu joined
moritz_ I know 09:07
09:08 m-i-l-a-n joined 09:09 Chillance left 09:12 ihrd left
moritz_ Matt-W: I just replied to your patch. There's nothing wrong with this particular move, I'm just wandering of the overall design of that operator is sound 09:13
09:14 m-i-l-a-n left, mikehh joined 09:15 m-i-l-a-n joined 09:21 m-i-l-a-n left 09:22 m-i-l-a-n joined 09:26 orafu left 09:28 m-i-l-a-n left 09:29 m-i-l-a-n joined 09:35 m-i-l-a-n left, orafu joined 09:36 m-i-l-a-n joined 09:40 orafu left 09:42 rfordinal left 09:50 synth left 10:15 cognominal left 10:18 payload joined 10:27 Muixirt joined 10:35 cognominal joined 10:44 masak joined
masak IO.eof is gone? 10:53
I do wish people would discuss these things a bit before attacking the spec... :/ 10:54
jnthn masak: I'm not sure it's gone as such, perhaps just gone missing. ;-)
masak to me, IO::Endable is perilously close to abstraction astronautism.
just give me the IO.end and be done with it. 10:55
no need for a whole interface for it.
jnthn (e.g. it was meant to be defined in IO::Endable, but somehow forgot)
masak mutters into his beard
jnthn Yeah, it feels a bit...overkill.
10:56 payload left
masak also, I think ruoso++ had an argument about why that kind of role (including IO::Readable) doesn't work in practice. 10:56
10:58 mjk joined 11:00 jlaire joined
pugs_svn r27349 | kyle++ | [t/spec] Fix a .WHAT test after review from jnthn++ 11:03
11:05 mjk left, tarball joined 11:06 mikehh left 11:12 tarball left
masak rakudo: my @a := (1,2,3,4); say @a.WHAT 11:14
p6eval rakudo 5351a3: OUTPUT«List()␤»
masak so far, so good. @a is bound to a List. I agree.
rakudo: my @a := (1,2,3,4); @a.push(4); say @a.perl; say @a.WHAT
p6eval rakudo 5351a3: OUTPUT«[1, 2, 3, 4, 4]␤List()␤»
masak but this puzzles me.
aren't Lists immutable?
moritz_ that's a rakudobug (known) 11:15
masak oh.
jnthn I think that's one of the things pm's rw work is meant to solve.
masak ah.
11:23 mikehh joined 11:25 pmurias left 11:27 last joined 11:28 stepnem left 11:32 rfordinal joined 11:37 stepnem joined, stepnem left 11:38 eMaX left 11:45 stepnem joined
dalek ok: b1e7f47 | (Hinrik Örn Sigurðsson)++ | (6 files):
Support xhtml output
12:10
ok: 86f0183 | (Hinrik Örn Sigurðsson)++ | lib/App/Grok/Pod (2 files):
Forgot to bump these version numbers earlier
literal @tell azawawi preliminary support for xhtml output: nix.is/grok-0.07_01.tar.gz
lambdabot Consider it noted.
masak nice! literal++ 12:11
literal rakudo: say $?GRAMMAR 12:12
lambdabot literal: You have 1 new message. '/msg lambdabot @messages' to read it.
p6eval rakudo 5351a3: OUTPUT«Symbol '$?GRAMMAR' not predeclared in <anonymous> (/tmp/f6Iuf7KPUx:2)␤in Main (src/gen_setting.pm:3279)␤»
12:12 MrKrueger joined 12:27 mepplock left
masak rakudo: say '_' ~~ <alpha> 12:29
p6eval rakudo 5351a3: OUTPUT«0␤»
12:40 ruoso joined
Matt-W moritz_: Well argue that with the spec - I checked, and it just says it's defined in terms of ~$a cmp ~$b 12:41
moritz_: You may in fact be right about which way round things should be. 12:42
ruoso Bom dia, #perl6 12:43
Matt-W (trust me to pick an operator that causes a debate...)
pmichaud good morning, #perl6
Matt-W hi ruoso, pmichaud
jnthn hi, pmichaud 12:44
pmichaud: Nice fixing and blogging!
pmichaud jnthn: thanks, you too :-) 12:45
12:45 pmurias joined
pmurias hi 12:45
Matt-W between the two of you things are looking a mite shinier today :)
12:47 stepnem left, mizioumt joined
literal rakudo: say '_' ~~ /<alpha>/ 12:50
p6eval rakudo 5351a3: OUTPUT«_␤»
masak oh, right.
silly me.
12:50 skids joined 12:51 synth joined
pmurias ruoso: do we have a long term smop plan/ROADMAP? 12:52
jnthn Implement Perl 6. :-) 12:53
ruoso heh... jnthn++
but seriously... that's the plan... I mean
once we have multi and module loading working
pugs_svn r27350 | pmurias++ | [re-smop] correct indentation
r27351 | pmurias++ | [re-mildew] fix if bug
ruoso we can start working on Perl 6 features
pmurias and when's the bootstrap point? 12:54
ruoso well, there's the type system bootstrap
that should happen soon after we have module loading
but then there's a long way before we implement a grammar engine in SMOP
12:55 Chillance joined
ruoso and then this grammar engine will have to be able to run STD 12:55
12:55 Molaf left
ruoso and we must be able to parse STD using that grammar engine 12:56
and, finally, have this grammar engine being used to compile STD to SMOP
and that's the real bootstrap
pmurias a partial bootstrap would be to have mildew in Perl 6 and using the STD compiled down to perl5 12:57
masak rakudo: / <[\x10000..\xEFFFF]> /; say "alive"
p6eval rakudo 5351a3: ( no output )
masak pmichaud: is this a known issue?
pmurias perl6: say [].true
masak pmurias: locally, I had a bus error.
p6eval elf 27351, rakudo 5351a3: OUTPUT«1␤»
..pugs: OUTPUT«␤»
masak pmurias: oops, mistab. 12:58
pmichaud masak: not known issue
masak submits rakudobug
pmichaud I'm guessing parrotbug :-)
masak PGE-bug, possibly.
ruoso pmurias, even before that, just having all the Perl 6 type system written in Perl 6 is a very important milestone
12:58 cls_bsd left
masak pmichaud: note that it hangs during execution, not during compilation. 12:58
pmichaud rakudo: / <[\x100..\xEFF]> /; say "alive" 12:59
p6eval rakudo 5351a3: OUTPUT«alive␤»
pmichaud PGE gets that one right.
masak and the hex numbers have to be high enough for it to trigger.
pmichaud right
I suspect that Parrot strings are having difficulty with it.
pmurias ruoso: type system meaning ClassHOW,RoleHOW etc?
ruoso pmurias, and all the built-in types 13:00
pmichaud rakudo: say 0xeffff;
p6eval rakudo 5351a3: OUTPUT«983039␤»
pmichaud oh, the problem could also be that Parrot doesn't like creating a 920+K string. 13:01
rakudo: say 0xeffff-0x10000;
p6eval rakudo 5351a3: OUTPUT«917503␤»
pmurias 14:59 <@pmichaud> I suspect that Parrot strings are having difficulty with it. 13:04
14:59 < pmurias> ruoso: type system meaning ClassHOW,RoleHOW etc?
15:00 < ruoso> pmurias, and all the built-in types
15:00 <@pmichaud> rakudo: say 0xeffff;
ruoso pmurias, I guess you have an issue with yuor touchpad 13:05
masak rakudo: say "foo" ~~ /<[f] #[comment] + [o]>/ 13:08
p6eval rakudo 5351a3: OUTPUT«perl6regex parse error: Error parsing enumerated character class at offset 30, found '['␤in Main (src/gen_setting.pm:3279)␤»
masak pmichaud: I posit that this should work.
pmichaud pge doesn't understand embedded comments. 13:09
masak it does outside of <>.
pmichaud right
masak rakudo: say "foo" ~~ / fo #[ comment here! ] o /
p6eval rakudo 5351a3: OUTPUT«foo␤»
pmichaud huh.
well, it's very likely that the part that parses <[ ... ]> doesn't understand them then. 13:10
std: /<[f] #[comment] + [o]>/
p6eval std 27351: OUTPUT«ok 00:03 36m␤»
masak submits rakudobug 13:11
13:12 iblechbot left 13:13 mizioumt1 joined 13:18 KyleHa joined 13:19 stepnem joined
masak rakudo: module M; grammar G {}; say "foo" ~~ /<M::G>/ 13:20
p6eval rakudo 5351a3: OUTPUT«Null PMC access in set_attr_str()␤in regex M::_block62 (/tmp/9t1CmrXEZb:2)␤called from Main (/tmp/9t1CmrXEZb:2)␤»
masak I know that's not the way to match against a grammar, but -- look, a Null PMC access!
masak submits a rakuodbug
13:22 mj41 left, mj41 joined
PerlJam why is that not a way to match against a grammar? 13:22
13:24 pmurias left
masak PerlJam: because what goes into the <> is regexes and the like. not types. 13:24
PerlJam: it's deceptively easy to try and do something like that, though.
PerlJam oh. Indeed. I apparently did a mental substitution of s/grammar/rule/ s/module/grammar/ 13:25
masak that's part of why it's easy, I guess. 13:26
Matt-W Must remember that grammars are just funny classes
it's almost like 'grammar G' is sugar for 'class G is Grammar' 13:27
13:27 clintongormley joined
masak I haven't found that rule of thumb to help me yet. :) 13:27
13:27 frew_ joined, mizioumt left
masak at least not more than "a grammar is just a funny module". 13:27
Matt-W masak: I don't usually think about it, I've just got the 'use the .parse method' thing in my head
masak aye. 13:28
moritz_ but that doesn't work if you want to handle control to another grammar
from within a grammar
masak g'ah, the error reporting sucks! 13:29
moritz_ like rule link { '<a' 'href=' <URI::Gramamr::Call> ... }
masak does anyone want to help me diagnose a problem?
masak tickles himself with the "don't ask to ask" feather 13:30
hold on, I'll just push the latest commits
there. if someone would clone grampa, run 'make test' and tell me whence the 'Null PMC access in find_method()' comes... 13:32
13:34 mikehh left 13:36 Sark23 left, stepnem left
masak ah, found it. nvm. 13:37
moritz_ so what was it? 13:38
masak rakudo: module A; grammar G {}; say ?G.parse("foo")
p6eval rakudo 5351a3: OUTPUT«Null PMC access in find_method()␤in Main (/tmp/jx8uygHmjM:2)␤»
masak rakudo: module A; grammar G {}; say ?A::G.parse("foo")
p6eval rakudo 5351a3: OUTPUT«The grammar has no TOP rule to invoke.␤in Main (/tmp/hezoJQJVrc:2)␤»
13:38 stepnem joined
masak I don't know, but I have a feeling that one's reported. 13:40
still very hard to track down. I realised that was it when I had completely disables the whole grammar and the problem still remained. 13:41
pmichaud it's the general "we don't know how to handle nested namespaces" issue.
masak aye.
pugs_svn r27352 | kyle++ | [t/spec] Mark where RT #60992 is tested. 13:42
Matt-W Hmm 13:44
Sounds like that one needs a fix
pmichaud: thanks for commenting on my patch
pmichaud Matt-W: you're welcome -- thanks for the patch.
Matt-W I just poked around until I found an operator that looked nice and simple 13:45
pmichaud You picked a good one. :-)
There are some others lying about.
Matt-W Yeah I only had time for the one
13:45 PacoLinux joined
pmichaud From a performance perspective, it might be worthwhile to also write a infix:<leg>(Str $a, Str $b) { ... } variant. 13:46
Matt-W Mmm good point
would save two calls to prefix:<~>(Str)
pmichaud but we can/should probably wait until we have a way to measure the performance :-)
Matt-W (in the str case)
yes :)
or perhaps until there aren't various other crippling performance issues :) 13:47
13:48 krakan left, PacoLinux left
masak I keep forgetting that the '?' quantifier creates Arrays in the Match tree... 13:52
jnthn masak: Took me a while to remember that one too. :-)
pmichaud yes, I've had that trouble also. Especially since in an earlier draft of the spec the ? quantifier *didn't* create arrays. :-)
masak oh, so it was added? 13:54
would be interesting to hear the rationale for that.
it doesn't feel immediately obvious that it should.
pmichaud "all quantifiers produce arrays"
masak ok, so consistency.
pmichaud right.
also so that ? remains the same as ** 0..1
masak oh, that's a nice reason. 13:55
pmichaud previously ? was the exception to the rule... and I think the desire was to eliminate exceptions.
Matt-W it makes a nice consistency
? not matching just gives you an empty array
which suits me
although I thought the whole capture thing was broken last night... turned out I'd made a stupid one-character mistake 13:56
13:56 frew left
Matt-W no matter how cool Perl 6 is, it's not going to protect us from those 13:56
masak no, but clueful error messages go a long way. 13:57
13:59 cls_bsd joined
Matt-W well my mistake was syntactically valid... 13:59
I was just ending up with an undefined value
which should not have been undefined
I thought it wasn't capturing properly 14:00
but of course it was
noooo
$colleague over there *points* is eating an ice cream!
14:01 frew joined 14:03 frew_ left
masak Matt-W: ice cream is overrated. it's just frozen sugar. 14:04
jnthn Frozen flavorings too!
14:10 mkindahl left
Matt-W and frozen cream! 14:15
14:16 dalek left 14:17 dalek joined 14:18 payload joined, rfordinal left, rfordinal joined 14:21 Lorn left 14:29 PacoLinux joined
masak Rakudo still returns 0 when it finds a syntax error. :/ 14:29
that way, running 'make test' proceeds to the tests even when the build fails. 14:31
14:33 mkindahl joined
masak ooh, I found another one! 14:33
rakudo: regex foo { foo }; "foofoofoo" ~~ /<foo>+/; bar($<foo>); sub bar(@foos) {}
p6eval rakudo 5351a3: OUTPUT«Parameter type check failed; expected Positional, but got List for @foos in call to bar␤in sub bar (/tmp/FtrwyZv3La:2)␤called from Main (/tmp/FtrwyZv3La:2)␤»
masak jnthn: how does that happen?
masak submits rakudobug 14:34
jnthn Probably to do with the way Match objects are made perhaps 14:37
14:37 rfordinal left
pmichaud I'm guessing that ResizablePMCArray doesn't ~~ Positional 14:37
jnthn rakudo: regex foo { foo }; "foofoofoo" ~~ /<foo>+/; say $<foo>.PARROT
p6eval rakudo 5351a3: OUTPUT«ResizablePMCArray␤»
jnthn Right.
pmichaud That's likely to be an issue.
moritz_ rakudo: my @a = 3, 4; say @a.PARROT 14:38
masak it is an issue.
p6eval rakudo 5351a3: OUTPUT«Perl6Array␤»
jnthn Not sure quite what we can do about it off hand.
moritz_ can't you just invoke some magic that type-maps RPA to Perl6Array?
pmichaud moritz_: not easily.
masak more workaroundly, what's the easiest way to convert the former to the latter?
buubot masak: Sorry, no more output
pmichaud but in the larger sense, we need for non-Rakudo arrays to still be treated as Positional
masak buubot: shush! 14:39
buubot Couldn't match input.
moritz_ is about to kick buubot
pmichaud i.e., if we're ever to get language interop to work.
jnthn Probably need to as a fall-back check if it provides array from a Parrot POV too.
pmichaud I'd be fine with adjusting Positional.ACCEPTS to check "does array"
jnthn Me too, if that was actually easy to do. 14:40
pmichaud it's not?
masak ah. .list worked.
jnthn Not until we have a decent way to provide a non-punning ACCEPTS on a role or something. 14:41
I (and afaict the spec) are a bit hazy on that area. 14:42
pmichaud how does Positional.ACCEPTS work now?
jnthn It's just Perl6Role::ACCEPTS 14:43
Positional is an instance of Perl6Role
pmichaud and we can't override ACCEPTS ?
jnthn Not without mixing another ACCEPTS into Positional, but not sure what else that would do as a side-effect. 14:44
pmichaud okay. 14:45
jnthn Though this is all tied into "how we do define non-punned methods on a role separate from punned ones?"
pmichaud I don't understand "non-punned" versus "punned" in this context.
jnthn And I've not seen an answer to that yet.
role Foo { }; Foo.new # puns
Foo.ACCEPTS($thingy) # can't pun 14:46
At the moment, the dispatcher just has a "magic list"
But that's almost certainly not the Right Answer.
I just don't know what the right answer is.
pmichaud Oh. Do the :U, :D, etc modifiers have anything to do with that?
or is that totally separate?
jnthn Possibly.
Matt-W hmm, a magic list sounds bad 14:47
jnthn We could maybe make them mean that in the role invocant case.
14:47 kidd_ joined
jnthn Would need to think some more on how sane that is. 14:47
Matt-W In my head, it's all simple 14:48
Until I remember that PGE is a Parrot thing, and is going to speak Parrot types that don't know about things like ACCEPTS
14:49 m-i-l-a-n left
pmichaud well, I may be able to get PGE to do some sort of type mapping, but specifying that mapping is a bit of a pain atm. 14:49
masak interoperability theory is so much easier than interoperability practice.
Matt-W interoperability is easy the moment you try something more complicated than making something interoperate with itself
*until the
14:50 m-i-l-a-n joined 14:51 payload left
Matt-W Does this also have impact on things like getting objects back from, say, a Ruby module? 14:52
Or is that a different problem
pmichaud same problem.
Matt-W well that's something at least
only have to solve it once...
14:53 finanalyst left
Matt-W seems easy to say oh let's have some sort of mapping so that we know that RubyList and ResizablePMCArray do Positional, but I guess that could get big and fragile 14:53
pmichaud jnthn: why is it the method that does the punning? 14:54
jnthn pmichaud: I don't get the question.
pmichaud: ah
pmichaud I would think it's vivification that forces punning.
jnthn pmichaud: It's the dispatcher that realizes you're calling a method on a role and decides "ah, we need to pun"
vivification? 14:55
pmichaud well, Foo.new # vivifies, thus puns