Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2016-02-17

Perl 6 | Reference Documentation | Rakudo

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:01 timotimo perlpilot: would you be interested in bringing your changes to synopsebot in line with masak's latest commit that makes it use a big grammar?
00:03 synopsebot6 joined #perl6
00:09 adu joined #perl6
00:12 sjohnsen joined #perl6
00:15 kurahaupo joined #perl6
00:17 synopsebot6 joined #perl6
00:18 kent\n joined #perl6
00:22 patrickz -> off to bed
00:24 kent\n joined #perl6
00:25 timotimo i wonder what makes synopsebot die ... perhaps the number of processes it's allowed to spawn is still too low?
00:25 timotimo Could not spawn thread: errorcode -11
00:25 timotimo don't really know where to look for that errorcode :\
00:26 geekosaur EAGAIN?
00:27 timotimo that'd be the worst.
00:30 atweiden joined #perl6
00:36 synopsebot6 joined #perl6
00:39 cpage_ joined #perl6
00:52 dalek rakudo-star-daily: e3bda91 | coke++ | log/ (9 files):
00:52 dalek rakudo-star-daily: today (automated commit)
00:52 dalek rakudo-star-daily: review: https://github.com/coke/rakudo​-star-daily/commit/e3bda91bb2
00:54 synopsebot6 joined #perl6
00:55 dustinm` joined #perl6
00:58 isBEKaml joined #perl6
00:59 Actualeyes joined #perl6
00:59 Actualeyes left #perl6
00:59 timotimo http://collect.p6c.org/  -  rejoice, www.p6c.org is now being collect'd
01:13 synopsebot6 joined #perl6
01:19 wwwbukolaycom joined #perl6
01:20 llfourn presentation I did for sydney.pm last night for anyone interested: https://github.com/LLFourn/p6-and-chil​l/blob/master/part-01/p6-chill-01.org
01:21 llfourn it was fun and worked well. p5 people were quite engaged.
01:22 Hotkeys if I have a field "$.port" and want "is required" and a type constraint
01:22 Hotkeys do I put the constraint before or after 'is required'
01:22 llfourn Hotkeys: what kind of contraint?
01:23 Hotkeys a 'where'
01:23 Hotkeys where 0 <= * <= 65535
01:23 llfourn Hotkeys: for a subset?
01:23 llfourn no...for a parameter?
01:23 Hotkeys it's just a constraint not in a subset
01:23 Hotkeys eg
01:23 Hotkeys has $.port where 0 <= * <= 65535 (is required)
01:23 Hotkeys not sure if the is required should go after the where or before it
01:24 llfourn hmm i've never done that b4
01:24 llfourn m: class A { has $.a where True is required };
01:24 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5===␤Two terms in a row␤at /tmp/_c2zZu7RX7:1␤------> 3class A { has $.a where True7⏏5 is required };␤    expecting any of:␤        constraint␤        infix␤        infix stopper␤        postfix␤        statement end␤…»
01:24 llfourn m: class A { has $.a is required where True  };
01:24 camelia rakudo-moar 5d7f65: OUTPUT«Potential difficulties:␤    Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤    at /tmp/5txN0FMLkJ:1␤    ------> 3class A { has $.a is required where 7⏏5True  };␤»
01:24 llfourn m: class A { has $.a where True  };
01:24 camelia rakudo-moar 5d7f65: OUTPUT«Potential difficulties:␤    Smartmatch against True always matches; if you mean to test the topic for truthiness, use :so or *.so or ?* instead␤    at /tmp/c_WgeTYGWj:1␤    ------> 3class A { has $.a where 7⏏5True  };␤»
01:24 llfourn m: class A { has $.a where "i'm an idiot"  };
01:24 camelia rakudo-moar 5d7f65: ( no output )
01:24 Hotkeys lol
01:25 llfourn m: class A { has $.a is required where "I'm an idiot"  };
01:25 camelia rakudo-moar 5d7f65: ( no output )
01:25 Hotkeys neat
01:25 llfourn m: class A { has $.a where "I'm an idiot" is required  };
01:25 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ZpnzcBzFYQ␤Two terms in a row␤at /tmp/ZpnzcBzFYQ:1␤------> 3class A { has $.a where "I'm an idiot"7⏏5 is required  };␤    expecting any of:␤        constraint␤        infix␤        infix sto…»
01:25 Hotkeys I guess I probably could have just tested it myself
01:25 llfourn well now I get to learn something too :)
01:32 raiph joined #perl6
01:32 synopsebot6 joined #perl6
01:34 brydoyle_ joined #perl6
01:35 brydoyle1 joined #perl6
01:35 brydoyle1 left #perl6
01:35 timotimo llfourn: "perl 6 and chill" is a bit cringe to me :S
01:36 brydoyle joined #perl6
01:36 llfourn timotimo: heh. Oh well. I like it.
01:37 kurahaupo joined #perl6
01:41 timotimo i wonder what makes the average idle percentage only 67%
01:41 timotimo on www
01:42 timotimo but 16.8% is "wait" and 5.4% is system
01:42 timotimo and it's very frequent
01:42 llfourn what's this in reference to?
01:42 timotimo so, some cron job is either running on www for a surprisingly long time each time
01:42 timotimo http://collect.p6c.org/
01:43 * llfourn looks
01:43 timotimo there's also outgoing packets in the same pattern
01:45 llfourn it does look a bit odd
01:46 timotimo crontab -e is only visitors which runs at 00:18 in the morning
01:46 timotimo at least i think that's how to read that?
01:46 timotimo let me look again
01:46 timotimo m is 18 and h is 0, the rest is *; so that's "once a day", right?
01:47 * llfourn doesn't remember how to read crontab
01:47 llfourn looks like every 5m?
01:47 timotimo seems so
01:47 llfourn it seesm to last for a while so top?
01:49 timotimo could be updatelist.pl for the ecosystem?
01:50 llfourn timotimo: well if that's running on that machine sounds like a good theory
01:50 llfourn might not be using cron
01:50 synopsebot6 joined #perl6
01:50 timotimo hm, no, looks like froggs rsync task
01:50 timotimo for cpandatesters
01:52 timotimo .tell froggs if you look at the cpu plugin from the www host on http://collect.p6c.org i *think* the spikes that happen every 5 minutes are from rsync for cpandatesters; can we perhaps make that a bit smarter?
01:52 yoleaux timotimo: I'll pass your message to froggs.
01:52 timotimo i think i ought to go sleepysleep soon
02:00 colomon joined #perl6
02:03 abaugher joined #perl6
02:05 colomon joined #perl6
02:09 synopsebot6 joined #perl6
02:21 molaf__ joined #perl6
02:28 synopsebot6 joined #perl6
02:36 AlexDaniel joined #perl6
02:38 Herby__ joined #perl6
02:38 Herby__ Evening, everyone!
02:39 Ben_Goldberg joined #perl6
02:41 vendethiel joined #perl6
02:46 Herby__ \o
02:46 AlexDaniel :)
02:47 ilbot3 joined #perl6
02:47 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
03:04 noganex joined #perl6
03:05 synopsebot6 joined #perl6
03:14 colomon joined #perl6
03:16 adu joined #perl6
03:18 shicheng joined #perl6
03:24 synopsebot6 joined #perl6
03:27 jack_rabbit joined #perl6
03:28 addison joined #perl6
03:31 remmie joined #perl6
03:42 synopsebot6 joined #perl6
03:44 MadcapJake what do i do with this "Absolute tolerance must be a positive number greater than zero" error when i use «is-approx»
04:01 synopsebot6 joined #perl6
04:04 skids MadcapJake: Hrm.  That seems to happen when you don't leave any text for the test.
04:05 colomon joined #perl6
04:05 orbus m: use Test; is-approx(2.71828, e)
04:05 camelia rakudo-moar 5d7f65: OUTPUT«Absolute tolerance must be a positive number greater than zero␤  in sub is-approx at /home/camelia/rakudo-m-inst-2/share/perl6/sou​rces/C712FE6969F786C9380D643DF17E85D06868219E line 251␤  in block <unit> at /tmp/TB9A0zOVN8 line 1␤␤»
04:05 orbus m: use Test; is-approx(2.71828, e, "blah")
04:05 camelia rakudo-moar 5d7f65: OUTPUT«ok 1 - blah␤»
04:05 orbus well that's interesting
04:05 MadcapJake oh you need the message? weird
04:06 skids m: use Test; &is-approx.candidates».signature.say
04:06 camelia rakudo-moar 5d7f65: OUTPUT«((Numeric $got, Numeric $expected, $desc = { ... }) (Numeric $got, Numeric $expected, Numeric $tol, $desc = { ... }) (Numeric $got, Numeric $expected, Numeric :$rel_tol = { ... }, Numeric :$abs_tol = { ... }, :$desc = { ... }))␤»
04:07 orbus maybe it's defaulting rel_tol to a numeric
04:07 orbus like 0
04:07 orbus or actually I guess $tol
04:07 MadcapJake is there a way to change how approximate it is? otherwise I can't use it
04:08 orbus well based on that signature it looks like you can...
04:08 skids :abs_tol ?
04:08 skids or :rel_tol
04:08 MadcapJake ohh weird, that's not mentioned in language/testing
04:08 orbus or just tol
04:08 orbus not sure what the differences are
04:09 skids well, rel_toll would normalize somehow.
04:10 skids probably $tol and :$abs_tol are just convenience synonyms.
04:10 MadcapJake sweet! that works swimmingly!
04:10 orbus m: use Test; is-approx(.35678,.34,.01)
04:10 camelia rakudo-moar 5d7f65: OUTPUT«not ok 1 - ␤␤# Failed test at /tmp/HPYFHenqpR line 1␤# expected: 0.34␤# got:      0.35678␤»
04:10 * skids wonders why the dispatch does that without the $desc
04:11 orbus m: use Test; is-approx(.35678,.34,.1)
04:11 camelia rakudo-moar 5d7f65: OUTPUT«ok 1 - ␤»
04:11 orbus yeah, it's interesting
04:12 skids O I guess 3 parms + no opt does beat 2 parms + opt
04:12 Juerd joined #perl6
04:17 orbus what does the = { ... } mean in those signatures?
04:17 orbus optional?
04:18 gfldex m: my &c = { ... }; say &c.WHAT;
04:18 camelia rakudo-moar 5d7f65: OUTPUT«(Block)␤»
04:18 gfldex m: my &c = { ... }; say c();
04:18 camelia rakudo-moar 5d7f65: OUTPUT«Stub code executed␤  in block <unit> at /tmp/wJkYgk9ht7 line 1␤␤»
04:18 kent\n joined #perl6
04:18 skids optional with a default.
04:19 skids m: sub a ($a, $b = 4) { }; &a.signature.say
04:19 camelia rakudo-moar 5d7f65: OUTPUT«($a, $b = { ... })␤»
04:19 gfldex m: my &c = { ... }; say c(); CATCH { default { .WHAT.say } }
04:19 camelia rakudo-moar 5d7f65: OUTPUT«(StubCode)␤»
04:20 synopsebot6 joined #perl6
04:20 eternaleye joined #perl6
04:21 gfldex m: my sub a ($a, $b = 4) { }; &a.signature.params[1].say; CATCH { default { .WHAT.say } }
04:21 camelia rakudo-moar 5d7f65: OUTPUT«$b = { ... }␤»
04:21 gfldex m: my sub a ($a, $b = 4) { }; &a.signature.params[1].WHAT.say; CATCH { default { .WHAT.say } }
04:21 camelia rakudo-moar 5d7f65: OUTPUT«(Parameter)␤»
04:21 orbus m: multi blah(Numeric $a, Numeric $b, $d) {say $d}; multi blah(Numeric $a, Numeric $b, $c, :$d=5) {say $c; say $d}; blah(1,2,3)
04:21 camelia rakudo-moar 5d7f65: OUTPUT«3␤5␤»
04:22 skids m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default.WHAT.say;
04:22 camelia rakudo-moar 5d7f65: OUTPUT«(Block)␤»
04:22 skids m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default().say;
04:22 camelia rakudo-moar 5d7f65: OUTPUT«-> ;; $_? is raw { #`(Block|76760864) ... }␤»
04:22 skids m: my sub a ($a, $b = 4) { }; &a.signature.params[1].default()().say;
04:22 camelia rakudo-moar 5d7f65: OUTPUT«4␤»
04:23 gfldex looks like overgeneralisation to me
04:24 gfldex likely a source for rakudoslow
04:24 skids You mean you'd prefer simple constants to appear naked?
04:24 gfldex i would prefer good introspection in that case, what would require a friendly 4 to be displayed
04:24 skids Yes actually, MMD uses the string of the signature currently, and that probably is slow.
04:26 Ben_Goldberg m: sub a ($a, $b = 4) { }; &a.signature.params[1].default.().perl.say
04:26 camelia rakudo-moar 5d7f65: OUTPUT«4␤»
04:27 Actualeyes joined #perl6
04:32 orbus m: multi blah(Numeric $a, Numeric $b, $d=7) {say $d}; multi blah(Numeric $a, Numeric $b, Numeric $c, $d=5) {say $c; say $d}; blah(1,2)
04:32 camelia rakudo-moar 5d7f65: OUTPUT«7␤»
04:32 Hotkeys does the documentation mention enums at all?
04:32 orbus yeah, I don't get why is-approx is acting that way
04:32 Hotkeys I've seen them in action but a quick search for enum gives no results
04:33 addison joined #perl6
04:34 orbus http://design.perl6.org/S12.html#Enumerations
04:34 gfldex Hotkeys: they do "mention" enums, see first example of http://doc.perl6.org/type/IO::Notification
04:34 Hotkeys I suppose
04:34 Hotkeys I feel like they should have a page of their own
04:35 skids When the docs fail, consult the design docs: http://design.perl6.org/S12.html#Enumerations
04:35 gfldex they should become documented in http://doc.perl6.org/language/typesystem
04:35 gfldex enum is a type declarator
04:35 Hotkeys skids: thanks
04:37 gfldex there where late changes to enums. S?? may be incomplete or missleading. Read roast if you want to be sure.
04:37 skids At some point a week should be picked to "whirlpool" stuff back into the design docs.
04:38 Hotkeys heh
04:38 Hotkeys I like the reference here http://i.imgur.com/q2PD51z.png
04:38 synopsebot6 joined #perl6
04:40 secwang joined #perl6
04:41 Zero_Dogg joined #perl6
04:56 jack_rabbit joined #perl6
04:57 synopsebot6 joined #perl6
04:57 sno joined #perl6
05:08 sortiz .
05:16 synopsebot6 joined #perl6
05:23 lnrdo joined #perl6
05:24 roguelazer joined #perl6
05:24 ruoso joined #perl6
05:28 cpage_ joined #perl6
05:34 synopsebot6 joined #perl6
05:41 Cabanossi joined #perl6
05:53 synopsebot6 joined #perl6
05:58 davido joined #perl6
06:03 lnrdo joined #perl6
06:04 roguelazer joined #perl6
06:06 ruoso joined #perl6
06:12 synopsebot6 joined #perl6
06:24 addison joined #perl6
06:29 sno joined #perl6
06:30 synopsebot6 joined #perl6
06:49 synopsebot6 joined #perl6
06:51 cpage_ joined #perl6
06:54 japhb joined #perl6
06:59 garyaj joined #perl6
07:00 CIAvash joined #perl6
07:04 freeze joined #perl6
07:06 autarch joined #perl6
07:08 synopsebot6 joined #perl6
07:19 autarch joined #perl6
07:23 FROGGS joined #perl6
07:26 synopsebot6 joined #perl6
07:27 vendethiel joined #perl6
07:28 FROGGS .tell timotimo how so?
07:28 yoleaux 01:52Z <timotimo> FROGGS: if you look at the cpu plugin from the www host on http://collect.p6c.org i *think* the spikes that happen every 5 minutes are from rsync for cpandatesters; can we perhaps make that a bit smarter?
07:28 yoleaux FROGGS: I'll pass your message to timotimo.
07:37 _mg_ joined #perl6
07:37 kent\n joined #perl6
07:38 [Tux] test            22.463
07:38 [Tux] test-t          12.043
07:38 [Tux] csv-parser      51.560
07:38 firstdayonthejob joined #perl6
07:45 [Tux] say I want to count all characters "a" and "b" in a string and get a hash with the counts of each. What is the most perl6'ish way to do that?
07:45 synopsebot6 joined #perl6
07:46 nine classify comes to mind. Also a Hash that just counts how often a key was added exists: http://doc.perl6.org/type/Bag
07:47 FROGGS m: say 'say I want to count all characters "a" and "b"'.comb.Bag<a b>
07:47 camelia rakudo-moar 5d7f65: OUTPUT«(7 1)␤»
07:48 nine There's power in coercers
07:48 [Tux] FROGGS++
07:51 [Tux] Than this is a timy bit counterinituative:
07:51 [Tux] m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag(@x)
07:51 camelia rakudo-moar 5d7f65: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in block <unit> at /tmp/Ne1pqxS3Rk line 1␤␤»
07:52 MadcapJake how would you modify a class' method? Will a role's methods override? Is there another way?
07:52 nine m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag($@x)
07:52 camelia rakudo-moar 5d7f65: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤  in block <unit> at /tmp/qoPDhppQkI line 1␤␤»
07:52 nine huh?
07:52 [Tux] indeed, I was guessing the one-arg rule would apply
07:52 nine oh...of course, Bag doesn't have arguments
07:52 nine it _returns_ a Bag which is associative
07:53 [Tux] ahhhhhh
07:53 nine m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x}
07:53 camelia rakudo-moar 5d7f65: OUTPUT«(5 1)␤»
07:53 * nine is now quietly waiting for the coffee to kick in
07:53 [Tux] sooooooooo nice :)
07:54 MadcapJake does «add_method» overwrite methods with the same name?
07:54 darutoko joined #perl6
07:54 Ven joined #perl6
07:54 FROGGS MadcapJake: no, you'll get an error
07:54 MadcapJake is there a way to add a method of a class outside of the class' body?
07:54 FROGGS MadcapJake: I think you can .^mixin a role containing said method
07:55 MadcapJake and it will overwrite a method inside the class?
07:55 FROGGS yes, that's our slangs currently work
07:55 FROGGS how our*
07:55 FROGGS I mean, it kinda is a hack, but it works
07:55 moritz m: say (42 but role { method sqrt() { 12 } }).sqrt
07:55 camelia rakudo-moar 5d7f65: OUTPUT«12␤»
07:56 bioexpress joined #perl6
07:56 MadcapJake is there any way to replace it in-place?
07:58 Ven_ joined #perl6
07:59 ely-se joined #perl6
07:59 vendethiel joined #perl6
08:00 [Tux] sorry for being slow, but this way I only get the counts. The "ideal" result in my case would be a Bag that *only* holds the characters in @x
08:04 synopsebot6 joined #perl6
08:05 bioexpress Hello! With Perl 5 I can write `use Module::Name "function";` even if "function" is exported automatically.
08:05 bioexpress This way I can see in my code immediately where the function comes from.
08:05 bioexpress Why has this possibility been removed in Perl 6?
08:05 Ven_ it hasn't
08:05 Ven_ m: use Test <is>; is 1, 3;
08:05 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/3VBGRdh9Vt␤Error while importing from 'Test':␤no EXPORT sub, but you provided positional argument in the 'use' statement␤at /tmp/3VBGRdh9Vt:1␤------> 3use Test <is>7⏏5; is 1, 3;␤»
08:05 hippie m: my @x = <a b>; my %y; %y{@x} = 'this that and the other, balloons and bananas'.comb.Bag{@x}; say %y # Tux?
08:05 camelia rakudo-moar 5d7f65: OUTPUT«a => 7, b => 2␤»
08:05 sno joined #perl6
08:05 Ven_ mej
08:06 FROGGS m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x}:kv
08:06 camelia rakudo-moar 5d7f65: OUTPUT«(a 5 b 1)␤»
08:06 [Tux] :kv of course
08:06 FROGGS m: my@x=<a b>;say "How many characters does this bag have?".comb.Bag{@x}:kv.hash
08:06 camelia rakudo-moar 5d7f65: OUTPUT«a => 5, b => 1␤»
08:06 [Tux] did too much perl5 lately
08:06 FROGGS :o)
08:09 DrPete joined #perl6
08:09 kd` joined #perl6
08:10 rindolf joined #perl6
08:12 ilbot3 joined #perl6
08:12 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
08:13 Ven_ that'd be an adverb on say
08:14 sjoshi joined #perl6
08:16 moritz joined #perl6
08:17 abraxxa joined #perl6
08:18 moritz PSA: due to the glibc security bug, I'll have to reboot hack and its companions Very Soon[tm]
08:18 moritz (unless somebody knows a way to ensure the old glibc isn't kept in memory anymore)
08:19 wamba joined #perl6
08:21 jast kill all processes, Problem Solved (tm)
08:22 synopsebot6 joined #perl6
08:23 Laurent_R joined #perl6
08:25 addison_ joined #perl6
08:26 [Tux] 73 lines of perl5 compress to 18 lines of perl6
08:26 [Tux] not completely fair, as perl6 does not need to deal with BOM's, but still
08:30 cosimo moritz: REBOOT ALL THE THINGS
08:30 zakharyas joined #perl6
08:30 moritz jast: heh, you here. I'm having #git feelings right now :-)
08:31 addison joined #perl6
08:34 xinming_ joined #perl6
08:41 synopsebot6 joined #perl6
08:41 vendethiel joined #perl6
08:42 DrForr There are editors out there that set us up the BOM on UTF-8 files though.
08:43 moritz but doesn't Perl 6 handle those automatically?
08:44 FROGGS it does
08:45 moritz so it's completely fair to include that difference
08:45 moritz allright, I'll reboot the hypervisor and all the VMs (hack, www) now
08:46 moritz 08:45:55 up 435 days, 20:03,  2 users,  load average: 1.45, 0.94, 0.84
08:46 moritz I do feel a bit sorry about ending that update
08:46 moritz *uptime
08:47 [Tux] m: 'class C { method foo (Str $s, Array @a = < a b >; Bool $flag = False) { 1; }}; say C.new.foo("a")
08:47 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/xv4FzbpvE3␤Unable to parse expression in single quotes; couldn't find final "'" ␤at /tmp/xv4FzbpvE3:1␤------> 3lag = False) { 1; }}; say C.new.foo("a")7⏏5<EOL>␤    expecting any of:␤        sing…»
08:47 [Tux] m: class C { method foo (Str $s, Array @a = < a b >; Bool $flag = False) { 1; }}; say C.new.foo("a")
08:47 camelia rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got List␤  in method foo at /tmp/iMjGE4JxLL line 1␤  in block <unit> at /tmp/iMjGE4JxLL line 1␤␤»
08:48 [Tux] s/;/,
08:50 [Tux] m: class C { method foo (Array @a = < a b >) { 1; }}; say C.new.foo()
08:50 camelia rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got List␤  in method foo at /tmp/30XnIDTKfU line 1␤  in block <unit> at /tmp/30XnIDTKfU line 1␤␤»
08:50 [Tux] m: class C { method foo (Array @a = [< a b >]) { 1; }}; say C.new.foo()
08:50 camelia rakudo-moar 5d7f65: OUTPUT«Type check failed in binding @a; expected Positional[Array] but got Array␤  in method foo at /tmp/us1ZPtbb1s line 1␤  in block <unit> at /tmp/us1ZPtbb1s line 1␤␤»
08:51 moritz eeks, the hypervisor isn't coming up again
08:51 [Tux] m: class C { method foo (Array $a = [< a b >]) { 1; }}; say C.new.foo()
08:51 camelia rakudo-moar 5d7f65: OUTPUT«1␤»
08:51 moritz I'll have to trod over to the data center later on :/
08:58 jast moritz: "#git feelings" sounds kind of ominous
08:59 jast and it does seem to have killed your hypervisor. sorry. :(
08:59 Actualeyes left #perl6
09:04 MadcapJake i think the p6c server is down
09:05 MadcapJake ahh i see, nevermind me :P
09:23 dalek joined #perl6
09:25 [Tux] m: class C { method foo (Str $s, Str $fold = "lc") { say $s; say $fold }};C.new.foo("x");C.new.foo("x",fold => "x")
09:25 camelia rakudo-moar 5d7f65: OUTPUT«x␤lc␤x␤lc␤»
09:26 [Tux] so, why is $fold "lc" and not "x" on the second invocation?
09:27 [Tux] ah, : missing
09:27 FROGGS [Tux]: declare it as a named
09:27 FROGGS aye
09:27 azawawi joined #perl6
09:27 azawawi hi
09:27 azawawi is http://doc.perl6.org working or not?
09:27 azawawi i cant seem to access it
09:28 DrForr Hypervisor problem apparently.
09:28 ocbtec joined #perl6
09:28 azawawi i see
09:28 azawawi DrForr: hi :)
09:28 [Sno] joined #perl6
09:30 * DrForr waves.
09:34 azawawi https://raw.githubusercontent.com/DanBr​ooker/file-icons/master/file-icons.png  # Please let me know your feedback for a suitable perl6 icon
09:34 moritz hack is back up
09:35 moritz ... and www too
09:35 moritz I don't know what happend to the hypervisor; the first thing I did when I arrived was setting the reset button
09:35 moritz and by the time I had a console wired up, it was running nicely
09:36 azawawi cool
09:36 azawawi moritz++
09:36 moritz on my workstation at home I have a bug that a 'reboot' does the same as 'halt' (that is, halting the OS without powering down the hardware -- whatever that's supposed to be good for)
09:36 sjoshi joined #perl6
09:36 moritz maybe it's the same on that server
09:36 moritz I guess I never rebooted it before :-)
09:37 FROGGS azawawi: camelia is problematic for that icon size?
09:38 ocbtec joined #perl6
09:38 stmuk rebooting -- the MSCE fix ;)
09:38 azawawi FROGGS: yup
09:38 azawawi FROGGS: too much detail
09:39 addison joined #perl6
09:39 azawawi FROGGS: http://pasteboard.co/1uqPo9c8.png
09:40 jast why do none of these stupid sites work without javascript
09:40 [Tux] All tests successful.
09:40 [Tux] Files=28, Tests=22307, 29 wallclock secs ( 2.92 usr  0.18 sys + 82.35 cusr  1.66 csys = 87.11 CPU)
09:40 [Tux] Result: PASS
09:41 [Tux] Text::CSV_XS.header now ported to p6' Text::CSV
09:41 sergot joined #perl6
09:41 FROGGS azawawi: a butterfly (rotated like the original) might still work... we don't need the P and 6 in the wings...
09:42 azawawi FROGGS: will try an outline then
09:42 MilkmanDan joined #perl6
09:43 azawawi now the next question what icon color represents camelia? :)
09:43 DrForr Bikeshed brown.
09:44 jast anything bright and friendly will do, I guess
09:45 azawawi thanks for the feedback
09:45 * azawawi starts working on it
09:52 hoelzro joined #perl6
09:52 flussence joined #perl6
09:52 d^_^b joined #perl6
09:52 d^_^b joined #perl6
09:52 rjbs joined #perl6
09:52 sjn joined #perl6
09:52 domm_ joined #perl6
09:52 Cheery joined #perl6
09:52 Hotkeys joined #perl6
09:52 gabiruh joined #perl6
09:52 dylanwh joined #perl6
09:52 timotimo joined #perl6
09:52 BinGOs joined #perl6
09:52 bitmap joined #perl6
09:52 SHODAN joined #perl6
09:52 nebuchadnezzar joined #perl6
09:52 zhmylove joined #perl6
09:52 Amnez777 joined #perl6
09:52 gfldex joined #perl6
09:52 jcallen joined #perl6
09:52 sunnavy joined #perl6
09:52 huf joined #perl6
09:52 Bucciarati joined #perl6
09:52 saaki joined #perl6
09:53 [ptc] joined #perl6
09:53 bartolin joined #perl6
09:53 Grrrr joined #perl6
09:53 ugexe joined #perl6
09:53 Peter_R joined #perl6
09:53 decent joined #perl6
09:53 krakan joined #perl6
09:53 inokenty joined #perl6
09:53 rafl joined #perl6
09:53 geekosaur joined #perl6
09:53 jast joined #perl6
09:53 edenc joined #perl6
09:53 kshannon joined #perl6
09:53 sQuEE joined #perl6
09:53 luis joined #perl6
09:53 damnlie joined #perl6
09:53 avalenn joined #perl6
09:55 orbus joined #perl6
09:55 Exodist joined #perl6
09:55 Ulti joined #perl6
10:00 PotatoGim joined #perl6
10:00 espadrine joined #perl6
10:02 ggherdov_ joined #perl6
10:03 SmokeMachine____ joined #perl6
10:03 peteretep joined #perl6
10:04 ilbot3 joined #perl6
10:04 Topic for #perl6 is now »ö« Welcome to Perl 6! | https://perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:,  or /msg camelia p6: ... | irclog: http://irc.perl6.org or http://colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
10:04 avalenn joined #perl6
10:05 _mg_ joined #perl6
10:05 rafl joined #perl6
10:05 robinsmidsrod joined #perl6
10:05 [ptc] joined #perl6
10:05 Peter_R joined #perl6
10:05 dustinm` joined #perl6
10:06 Lucas_One_ joined #perl6
10:08 tinita joined #perl6
10:08 pecastro joined #perl6
10:08 Psyche^ joined #perl6
10:08 luiz_lha joined #perl6
10:08 Celelibi joined #perl6
10:08 wamba joined #perl6
10:08 Timbus joined #perl6
10:08 yurivish joined #perl6
10:08 sjoshi joined #perl6
10:08 DrPete joined #perl6
10:08 colomon joined #perl6
10:08 ocbtec joined #perl6
10:09 molaf__ joined #perl6
10:09 hahainternet joined #perl6
10:09 xinming joined #perl6
10:10 RabidGravy joined #perl6
10:11 frew joined #perl6
10:11 _mg_ joined #perl6
10:13 corbyhaas_ joined #perl6
10:13 jnap joined #perl6
10:13 RabidGravy MARNING
10:14 sortiz \o RabidGravy
10:24 dakkar_ joined #perl6
10:25 azawawi joined #perl6
10:26 azawawi http://modules.perl6.org/ # 503 error
10:27 moritz gaaaah, we *still* have no service file for starting that mojo app :(
10:29 kurahaupo joined #perl6
10:31 RabidGravy is anyone looking at the e.g. https://github.com/perl6/gtk-simple/issues/23 ?  (summary something changed in require and broke panda)
10:31 espadrine joined #perl6
10:32 bioexpress joined #perl6
10:33 kurahaupo_ joined #perl6
10:34 kurahaupo` joined #perl6
10:34 azawawi any chance we could add line number information to the module-not-found message "Could not find Foo::Bar in: <back-trace>"?
10:34 viralbus joined #perl6
10:35 azawawi RabidGravy: our travis CI testing methodology is flawed btw
10:35 azawawi RabidGravy: and hi... how are you doing? :)
10:35 RabidGravy I'm fabulous!
10:36 azawawi RabidGravy: we test `prove -ve t` but not `panda install .`
10:36 azawawi RabidGravy: hence META.info can be wrong, deps can wrong, bad resources, ...etc
10:38 RabidGravy I've got at least one module that *does* do that
10:40 azawawi which one?
10:40 azawawi moritz: any chance we could add line number information to the module-not-found message "Could not find Foo::Bar in: <back-trace>"?
10:40 polyfloyd joined #perl6
10:40 azawawi moritz: right now when an error occurs in atom editor / perl 6 tools plugin, it is always on line #1... since there is no line number
10:41 araujo joined #perl6
10:41 araujo joined #perl6
10:42 viralbus Hi there!  I'm new to Perl6 (but I've used Perl since Perl 4 days).  I have a question regarding Unicode strings and regexes:  If I have a string defined like this: my $x = "a\c[COMBINING ACUTE ACCENT]" and I want to replace the acute accent with another one, the following doesn't work: $x ~~ s/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/;
10:42 El_Che do I understand correctly that panda will create .precomp files? I am putting a perl6 app in docker on a disposable container (will be reactreated each time it runs)
10:43 araujo joined #perl6
10:44 viralbus I presume that's because the character and the accent have been combined into one, but how to I run a regex on the .NFD form?  $x.NFD ~~ s/........  doesn't seem to work, either.
10:45 azawawi El_Che: my understanding is that the rakudo perl6 process creates those folders
10:45 dakkar joined #perl6
10:45 RabidGravy yeah, it gets created in the repo that the module was found when the module is loaded
10:49 Skarsnik joined #perl6
10:49 bhm joined #perl6
10:49 pecastro joined #perl6
10:49 rudi_s joined #perl6
10:49 johan joined #perl6
10:49 a3r0 joined #perl6
10:49 ELBeavers joined #perl6
10:49 Amnez777 joined #perl6
10:49 Jonis joined #perl6
10:49 sergot joined #perl6
10:49 dsp- joined #perl6
10:49 yurivish joined #perl6
10:49 ggoebel16 joined #perl6
10:49 mprelude_ joined #perl6
10:50 yeltzooo joined #perl6
10:50 konobi joined #perl6
10:50 nemo joined #perl6
10:50 arnsholt joined #perl6
10:50 M-eternaleye joined #perl6
10:50 mspo joined #perl6
10:50 flussence joined #perl6
10:50 hobbs joined #perl6
10:50 hobbs joined #perl6
10:50 boegel joined #perl6
10:50 Cabanossi joined #perl6
10:51 jargan joined #perl6
10:51 daxim joined #perl6
10:51 mtj_ joined #perl6
10:51 timrs2991 joined #perl6
10:51 riatre joined #perl6
10:51 masak joined #perl6
10:52 andrewalker joined #perl6
10:52 gypsydave5 joined #perl6
10:52 cpage joined #perl6
10:52 dalek joined #perl6
10:52 squain joined #perl6
10:52 krunen joined #perl6
10:52 mst joined #perl6
10:52 huf joined #perl6
10:52 mre joined #perl6
10:52 sjoshi joined #perl6
10:54 cosimo joined #perl6
10:54 araujo joined #perl6
10:55 yoleaux joined #perl6
10:56 pnu joined #perl6
10:56 apiw joined #perl6
10:56 gfldex joined #perl6
10:57 mephinet joined #perl6
10:57 solarbunny joined #perl6
11:01 SmokeMachine____ joined #perl6
11:02 sjohnsen joined #perl6
11:02 kid51 joined #perl6
11:04 lnrdo joined #perl6
11:04 ELBeavers joined #perl6
11:04 viralbus I can't help thinking that the proper way to do this ought to be something like $x ~~ s:nfd/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/ but when I tried that, I got "Adverb nfd not allowed on substitution.". :-(
11:04 smash joined #perl6
11:04 BinGOs joined #perl6
11:04 avenj joined #perl6
11:04 avenj joined #perl6
11:04 gabiruh joined #perl6
11:04 Jonis joined #perl6
11:04 timotimo joined #perl6
11:04 lucs joined #perl6
11:04 a3r0 joined #perl6
11:04 zhmylove joined #perl6
11:04 ocbtec joined #perl6
11:04 mst joined #perl6
11:04 rdleon joined #perl6
11:04 jcallen joined #perl6
11:04 luis joined #perl6
11:04 yurivish joined #perl6
11:04 FROGGS joined #perl6
11:04 d^_^b joined #perl6
11:04 d^_^b joined #perl6
11:04 dindinx joined #perl6
11:04 stmuk joined #perl6
11:04 gensym joined #perl6
11:04 diakopter joined #perl6
11:04 sjn joined #perl6
11:04 ugexe joined #perl6
11:05 Upasaka joined #perl6
11:05 frew joined #perl6
11:05 wamba joined #perl6
11:05 dindinx joined #perl6
11:05 Amendil joined #perl6
11:05 kent\n joined #perl6
11:05 hacst joined #perl6
11:05 cpage_ joined #perl6
11:05 TeamBlast joined #perl6
11:05 mohae joined #perl6
11:05 Psyche^ joined #perl6
11:05 riatre joined #perl6
11:05 jevin joined #perl6
11:06 mrsolo joined #perl6
11:06 Juerd joined #perl6
11:06 lizmat joined #perl6
11:06 jferrero joined #perl6
11:06 jferrero joined #perl6
11:06 remmie joined #perl6
11:06 dg joined #perl6
11:07 baest joined #perl6
11:09 Exodist joined #perl6
11:09 cfloare joined #perl6
11:09 mathw joined #perl6
11:09 mephinet joined #perl6
11:10 mls joined #perl6
11:13 mithaldu_ joined #perl6
11:13 skarn joined #perl6
11:13 olinkl joined #perl6
11:14 vendethiel joined #perl6
11:15 Skarsnik hm, you can't new a parameter type? my Pointer[mxml_node_t] $child = Pointer[mxml_node_t].new($i); fail with Type check failed in assignment to $child; expected NativeCall::Types::Pointer[​MiniXML::Raw::mxml_node_t] but got NativeCall::Types::Pointer
11:15 Skarsnik I tried with .= new it does not work etheir
11:15 mindos joined #perl6
11:16 arnsholt It's an issue with how the parameterized types are created in NativeCall
11:16 arnsholt I've worked on fixing it, but haven't had time to complete it
11:17 jnthn arnsholt: Using 6pe?
11:17 clkao joined #perl6
11:17 jnthn (6model parametric extensions)
11:17 Skarsnik damn
11:18 ocbtec joined #perl6
11:18 jnap joined #perl6
11:19 PotatoGim joined #perl6
11:21 caasih joined #perl6
11:25 viralbus joined #perl6
11:26 araujo joined #perl6
11:26 araujo joined #perl6
11:27 RabidGravy I just can't replicate the way that panda is failing with the redefinition of 'Build'
11:29 araujo joined #perl6
11:29 sortiz Skarsnik, I working on fixing DBIish, now passing tests. \o/
11:30 sortiz *I'm
11:30 telex joined #perl6
11:33 viralbus So to rephrase my question: To replace a Unicode modifier in a string, what's the best alternative to $x ~~ s:nfd/\c[COMBINING ACUTE ACCENT]/\c[COMBINING DOT ABOVE]/ ?  Also, is the :nfd adverb going to be implemented at some point (I saw it mentioned on a couple of web pages, but I'm not sure they were authoritative)?
11:36 jnthn viralbus: We plan to support regexes at levels other than graphemes eventually
11:36 jnthn (In some future Perl 6 version)
11:38 jnthn Someone else may have a better idea, but the first thing that comes to mind is to do something with .NFD.list.map(...) and the map will map the combining chars as needed
11:39 jnthn m: samemark
11:39 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/y9B4GXNLRe␤Calling samemark() will never work with any of these multi signatures:␤    ($s, $pat)␤at /tmp/y9B4GXNLRe:1␤------> 3<BOL>7⏏5samemark␤»
11:39 jnthn aha
11:39 jnthn I think samemark is also useful for this kind of thing
11:39 addison_ joined #perl6
11:39 moritz iirc samemark replaces the base character, not the mark
11:40 Roamer` joined #perl6
11:40 advwp joined #perl6
11:40 japhb joined #perl6
11:40 hahainternet joined #perl6
11:40 jnthn Ah
11:40 TreyHarris joined #perl6
11:40 khagan joined #perl6
11:40 El_Che joined #perl6
11:40 ely-se joined #perl6
11:40 RabidGravy joined #perl6
11:40 krunen joined #perl6
11:40 Khisanth joined #perl6
11:40 |Tux| joined #perl6
11:40 sjn joined #perl6
11:40 jnthn m: say 'zoö'.samemark('ŏô')
11:40 decent joined #perl6
11:40 camelia rakudo-moar 5d7f65: OUTPUT«z̆ôô␤»
11:40 moritz m: my $x = 'ähhm'; say samemark($x, 'oohm')
11:40 camelia rakudo-moar 5d7f65: OUTPUT«ahhm␤»
11:40 autogen joined #perl6
11:40 jferrero joined #perl6
11:40 moritz m: my $x = 'ähhm'; say samemark('oohm', $x)
11:40 camelia rakudo-moar 5d7f65: OUTPUT«öohm␤»
11:40 pederindi joined #perl6
11:40 ranguard joined #perl6
11:41 cpage joined #perl6
11:41 kid51 joined #perl6
11:41 lizmat joined #perl6
11:41 TimToady joined #perl6
11:41 ilogger2 joined #perl6
11:41 viralbus jnthn: Thanks, that's useful!
11:41 bioexpress joined #perl6
11:42 cognominal joined #perl6
11:44 lokien joined #perl6
11:45 skaji joined #perl6
11:45 lokien hey guys, can you help me with some text parsing?
11:45 Ulti joined #perl6
11:45 DrForr Good question. What's the text? In a pastebin, if you please.
11:45 gypsydave5 joined #perl6
11:46 lokien http://pastebin.com/kS96ZtVC
11:46 lokien I need only packages names, without commas and things in parentheses
11:48 moritz lokien: seems straight forward to me. What have you tried so far?
11:48 jnthn m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/
11:48 camelia rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio kde-telepathy-minimal liboxygenstyle5-5)␤»
11:48 jnthn hah, got it in one :P
11:48 lokien nothing, I'm a noob :^(
11:49 jnthn .oO( why isn't the rest of my code going like that today... )
11:49 moritz m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+).map({ .split(':')[0]})
11:49 camelia rakudo-moar 5d7f65: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_Ez76R42C6␤Unable to parse regex; couldn't find final '/'␤at /tmp/_Ez76R42C6:1␤------> 3ns:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+7⏏5).map({ .split(':')[0]})␤    expecting any of:␤        argument…»
11:49 moritz m: say 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+/).map({ .split(':')[0]})
11:49 camelia rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio automatic) kde-telepathy-minimal automatic) liboxygenstyle5-5 automatic) k3b-data automatic) kimageformat-plugins)␤»
11:49 moritz m: say flat 'qml-module-org-kde-kio:amd64 (5.15.0-0ubuntu1, automatic), kde-telepathy-minimal:amd64 (15.04.20ubuntu1, automatic), liboxygenstyle5-5:amd64 (5.4.2-0ubuntu1, automatic), k3b-data:amd64 (2.0.3-0ubuntu3, automatic), kimageformat-plugins:amd64 (5.15.0-0ubuntu1)'.split(/\,\s+/).map({ .split(':')[0]})
11:49 camelia rakudo-moar 5d7f65: OUTPUT«(qml-module-org-kde-kio automatic) kde-telepathy-minimal automatic) liboxygenstyle5-5 automatic) k3b-data automatic) kimageformat-plugins)␤»
11:50 moritz ah no, doesn't work that easily
11:50 jnthn :)
11:50 jnthn Yeah, that's why I reached for .comb...felt easier to say what I did want
11:50 f3ew joined #perl6
11:50 Ulti joined #perl6
11:50 shmibs joined #perl6
11:50 DrForr lokien: Maybe http://theperlfisher.blogspot.com/2016/02/f​rom-regular-expressions-to-grammars-pt.html would help?
11:50 Amnez777 joined #perl6
11:50 xxpor joined #perl6
11:50 araujo joined #perl6
11:50 araujo joined #perl6
11:50 anshin joined #perl6
11:50 moritz joined #perl6
11:50 maddingue joined #perl6
11:50 orbus joined #perl6
11:50 pochi joined #perl6
11:50 SHODAN joined #perl6
11:50 espadrine joined #perl6
11:50 jnthn And by nomming the opening paren you make sure you don't get false positives from stuff inside of them
11:50 rjbs joined #perl6
11:50 [particle] joined #perl6
11:50 adrusi joined #perl6
11:50 salva joined #perl6
11:51 xnrand joined #perl6
11:51 go|dfish joined #perl6
11:51 woodruffw joined #perl6
11:51 lucs joined #perl6
11:51 leedo joined #perl6
11:51 Sgeo_ joined #perl6
11:51 lokien DrForr: thank you :)
11:51 cpage joined #perl6
11:51 woodruffw joined #perl6
11:52 kaare_ joined #perl6
11:52 DrForr (I do feel a touch awkward about pimping my own tutorials, but if not me, who?
11:52 Amnez777 joined #perl6
11:52 DrForr s/$/)/
11:52 araujo joined #perl6
11:53 vike joined #perl6
11:54 lokien if it's good, why not :D DrForr
11:54 masak joined #perl6
11:54 charsbar__ joined #perl6
11:54 Laurent_R joined #perl6
11:55 ab5tract joined #perl6
11:55 advwp joined #perl6
11:56 moritz it's totally fine
11:56 moritz as long as you don't start off-topic spamming :-)
11:56 ponbiki joined #perl6
11:56 lokien jnthn: why doesn't perl print the entire thing? :^(
11:56 lokien it's (blah blah blah ...)
11:56 lokien why not (blah blah blah blah blah) :^(
11:58 gcole joined #perl6
11:58 brabo joined #perl6
11:58 viralbus m: my $x = "a\c[COMBINING ACUTE ACCENT]"; say $x.NFD.list.map({$_ == ord("\c[COMBINING ACUTE ACCENT]")?? ord("\c[COMBINING DOT ABOVE]")!! $_}).chrs;
11:58 camelia rakudo-moar 5d7f65: OUTPUT«ȧ␤»
11:58 jnthn lokien: Because you did say, not print? :)
11:58 lokien jnthn: oh, right! silly me :D
11:58 jnthn lokien: But more idiomatic is to probably .join(', ') or however you want them joined
11:59 lokien jnthn: I want them joined by spaces
11:59 jnthn OK, then .join(' ')
11:59 Skarsnik lokien, use .perl and not gist?
11:59 domm_ joined #perl6
11:59 silug joined #perl6
11:59 DrForr joined #perl6
11:59 lokien good ol netsplit
11:59 ruoso joined #perl6
11:59 ashleydev joined #perl6
11:59 garu joined #perl6
11:59 Cheery joined #perl6
11:59 Possum joined #perl6
11:59 cfedde joined #perl6
11:59 bakedb joined #perl6
11:59 kst joined #perl6
11:59 Skarsnik these netsplit today
11:59 perlpilot joined #perl6
11:59 viralbus So that works -- thanks!  However, $x ~~ s:nfd/.../.../ would have been much prettier. :-/
11:59 jercos joined #perl6
11:59 felher joined #perl6
11:59 mprelude_ joined #perl6
11:59 BooK joined #perl6
11:59 cognominal joined #perl6
11:59 lokien jnthn: why would I do that? they're printed with spaces already
11:59 au joined #perl6
12:00 Roamer` joined #perl6
12:00 jnthn lokien: Explicitness? :)
12:00 telex joined #perl6
12:00 shadowpaste joined #perl6
12:00 sno joined #perl6
12:00 dalek DBIish/sortiz-fix_require: 983e4b1 | (Salvador Ortiz)++ | .gitignore:
12:00 dalek DBIish/sortiz-fix_require: Update .gitignore
12:00 dalek DBIish/sortiz-fix_require: review: https://github.com/perl6/DBIish/commit/983e4b1da5
12:00 dalek DBIish/sortiz-fix_require: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files):
12:00 dalek DBIish/sortiz-fix_require: Fix dinamic drivers loading
12:00 dalek DBIish/sortiz-fix_require:
12:00 dalek DBIish/sortiz-fix_require: Somewho require wasn't working and the instantation of the class failed.
12:00 dalek DBIish/sortiz-fix_require: With an explicit search in the package works.
12:00 dalek DBIish/sortiz-fix_require: Also add a cache of loaded drivers.
12:00 dalek DBIish/sortiz-fix_require: review: https://github.com/perl6/DBIish/commit/abf4dded2f
12:00 dalek DBIish/sortiz-fix_require: 4047025 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files):
12:00 dalek DBIish/sortiz-fix_require: Optimize modules loading
12:00 dalek DBIish/sortiz-fix_require: review: https://github.com/perl6/DBIish/commit/4047025907
12:00 dalek DBIish/sortiz-fix_require: 3ea08b5 | (Salvador Ortiz)++ | lib/DBDish/Pg/Native.pm6:
12:00 dalek DBIish/sortiz-fix_require: Move ENV var resolution to runtime
12:00 dalek DBIish/sortiz-fix_require: review: https://github.com/perl6/DBIish/commit/3ea08b5fdc
12:00 esh joined #perl6
12:00 kid51 joined #perl6
12:00 pRiVi joined #perl6
12:00 lokien jnthn: oh, oh! it's broken! :D
12:00 pyrimidine joined #perl6
12:00 Amnez777 joined #perl6
12:00 jnthn lokien: But yeah, for just spaces you can save some chars
12:00 johan joined #perl6
12:00 k-man joined #perl6
12:01 sftp joined #perl6
12:01 lokien m: say 'kdepim-runtime:amd64 (15.08.2-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/
12:01 camelia rakudo-moar 5d7f65: OUTPUT«(kdepim-runtime)␤»
12:02 petercommand joined #perl6
12:02 lestrrat joined #perl6
12:02 lokien whaaa
12:02 Fleurety joined #perl6
12:02 jeek joined #perl6
12:02 bowtie joined #perl6
12:02 richi235 joined #perl6
12:02 lokien m: say 'libkf5kdelibs4support-data:amd64 (5.15.0-0ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/
12:02 camelia rakudo-moar 5d7f65: OUTPUT«(libkf5kdelibs4support-data)␤»
12:03 lokien m: say 'libxfreerdp-client1.1:amd64 (1.1.0~git20140921.1.440916e+dfsg1-5ubuntu1, automatic)'.comb: /<[\w-]>+ )> ':'\w+ ' ('/
12:03 camelia rakudo-moar 5d7f65: OUTPUT«(1)␤»
12:03 lokien this one!
12:03 FROGGS lokien: you can also privmsg camelia if you wanna try many things
12:03 lokien jnthn: broken!! :D
12:03 nchambers joined #perl6
12:03 lokien FROGGS: sorry, I was sure it'll work every time. but it didn't. I won't do that again
12:04 profan joined #perl6
12:04 pmqs joined #perl6
12:04 raydiak_ joined #perl6
12:04 agentzh joined #perl6
12:04 MilkmanDan joined #perl6
12:04 cibs joined #perl6
12:04 jcallen joined #perl6
12:04 FROGGS lokien: np
12:04 perigrin joined #perl6
12:04 xinming joined #perl6
12:04 cibs joined #perl6
12:05 FROGGS lokien: if you have questions, you can run an example here and ask for help
12:05 FROGGS lokien: but if you want to try many things, privmsg with camelia is better
12:05 lokien FROGGS: I just wanted to show jnthn his script is broken in some cases :(
12:06 moritz you need to relax the \w+ a plus
12:06 rudi_s joined #perl6
12:06 moritz you can write ':'\S+\s', automatic'  for example
12:06 vendethiel joined #perl6
12:06 Skarsnik well it a quick solution, obviously it need more work to handle every case x)
12:07 Skarsnik but dpkg does not give you a better output?
12:07 lokien so I'll try to fix it. hope my pc won't catch fire
12:07 lokien Skarsnik: it's a file from my apt history, I want to purge kde
12:08 Skarsnik there was not a meta package for that?
12:08 jnthn lokien: Glancing quickly, that name has a . in it, so you'd need to add . to that first char class
12:09 SmokeMachine____ joined #perl6
12:09 Lucas_One_ joined #perl6
12:09 zostay joined #perl6
12:09 lokien Skarsnik: sadly, no. one has to find and uninstall 10000 packages manually
12:09 lokien jnthn: thanks
12:09 veke joined #perl6
12:10 Skarsnik I need to use === to compare a Pointer to Pointer (NULL) ?
12:13 FROGGS or +ptr == +ptr
12:13 rindolf joined #perl6
12:13 arnsholt jnthn: Yeah, I think I have a half-done NativeCall with 6pe branch somewhere
12:13 agentzh joined #perl6
12:13 agentzh joined #perl6
12:14 ely-se joined #perl6
12:14 araujo joined #perl6
12:15 araujo joined #perl6
12:15 araujo joined #perl6
12:15 sortiz In branch DBIish/sortiz-fix_require the fix for the issue reported yesterday, I appreciate some review before merge.
12:16 Skarsnik did you fix only the require stuff?
12:16 Skarsnik for me it's a rakudo bug probably x)
12:17 araujo joined #perl6
12:17 sufrostico joined #perl6
12:19 sortiz Can be a rakudo bug, but now it works. All tests passed and allows me to work in the array stuff.
12:20 Skarsnik nice you patched the env stuff ^^
12:20 sortiz I fix also the problem with the env vars captured at compile time, I move it's resolution to runtime.
12:20 Skarsnik I don't like this solution because it use NC internals xD
12:21 sortiz Yep, and implement a cache of loaded drivers to avoid a double require. :)
12:22 sortiz I know that you don't be so happy with it, but need to fix it any way, later can discuss a better way.
12:23 arnsholt Hmm, wait. Looks like that stuff is merged actually
12:24 Skarsnik I am not fan of the changes in the need/use/important, but avoiding the double require is nice
12:24 Skarsnik *import
12:25 jast joined #perl6
12:25 jdv79 joined #perl6
12:25 kshannon joined #perl6
12:25 frederico joined #perl6
12:25 lnx joined #perl6
12:25 Rotwang joined #perl6
12:25 cxreg joined #perl6
12:25 RabidGravy :-\
12:25 Zero_Dogg joined #perl6
12:25 Zero_Dogg joined #perl6
12:25 drforr1 joined #perl6
12:25 Amnez777 joined #perl6
12:25 luiz_lha joined #perl6
12:25 frew joined #perl6
12:25 aigan_ joined #perl6
12:25 flussence joined #perl6
12:25 klapperl joined #perl6
12:25 apathor joined #perl6
12:25 Humbedooh joined #perl6
12:25 retupmoca joined #perl6
12:25 squain joined #perl6
12:25 risou joined #perl6
12:25 hobbs joined #perl6
12:25 riatre joined #perl6
12:25 hobbs joined #perl6
12:25 pdcawley joined #perl6
12:25 RabidGravy what is going on with this network today
12:25 ocbtec joined #perl6
12:25 arnsholt joined #perl6
12:25 dalek joined #perl6
12:25 jameslenz joined #perl6
12:25 mspo joined #perl6
12:25 sQuEE joined #perl6
12:25 edenc joined #perl6
12:25 _mg_ joined #perl6
12:25 Psyche^ joined #perl6
12:25 hippie joined #perl6
12:25 Humbedooh joined #perl6
12:25 Grauwolf joined #perl6
12:26 stux|RC-only joined #perl6
12:26 DrPete joined #perl6
12:26 camelia joined #perl6
12:26 Vitrifur joined #perl6
12:26 Skarsnik hm repeat is supposed to always be executed once? (and the conditio evalued after?)
12:26 arnsholt Skarsnik: I was wrong about the Pointer stuff. That's supposed to work (and mostly does, I think), but the "Pointer.new($address)" constructor is bugged, it seems
12:27 Amnez777 joined #perl6
12:27 notbenh joined #perl6
12:27 Skarsnik it does not return a parametred object?
12:27 simcop2387 joined #perl6
12:27 MadcapJake joined #perl6
12:27 arnsholt Looking at the code, I think not
12:27 arnsholt In the address constructors, try replacing ::?CLASS with self.WHAT
12:28 dalek DBIish: 983e4b1 | (Salvador Ortiz)++ | .gitignore:
12:28 dalek DBIish: Update .gitignore
12:28 dalek DBIish: review: https://github.com/perl6/DBIish/commit/983e4b1da5
12:28 dalek DBIish: abf4dde | (Salvador Ortiz)++ | lib/DB (2 files):
12:28 dalek DBIish: Fix dinamic drivers loading
12:28 dalek DBIish:
12:28 dalek DBIish: Somewho require wasn't working and the instantation of the class failed.
12:28 dalek DBIish: With an explicit search in the package works.
12:28 dalek DBIish: Also add a cache of loaded drivers.
12:28 dalek DBIish: review: https://github.com/perl6/DBIish/commit/abf4dded2f
12:28 dalek DBIish: 4047025 | (Salvador Ortiz)++ | lib/DBDish/Pg (3 files):
12:28 dalek DBIish: Optimize modules loading
12:28 dalek DBIish: review: https://github.com/perl6/DBIish/commit/4047025907
12:28 dalek DBIish: 3ea08b5 | (Salvador Ortiz)++ | lib/DBDish/Pg/Native.pm6:
12:28 dalek DBIish: Move ENV var resolution to runtime
12:28 dalek DBIish: review: https://github.com/perl6/DBIish/commit/3ea08b5fdc
12:28 dalek DBIish: 5f79574 | RabidGravy++ | / (6 files):
12:28 dalek DBIish: Merge pull request #51 from perl6/sortiz-fix_require
12:28 dalek DBIish:
12:28 dalek DBIish: Fix for #50
12:28 dalek DBIish: review: https://github.com/perl6/DBIish/commit/5f79574745
12:29 Skarsnik You should do the other driver for the env fix if you are willing ^^
12:30 cosarara joined #perl6
12:30 sortiz arnsholt, yesterday I was asking about that ::?CLASS, without answers ;)
12:31 mephinet joined #perl6
12:32 integral joined #perl6
12:32 integral joined #perl6
12:32 arnsholt I wasn't here for that =)
12:32 mkz joined #perl6
12:32 hoelzro_ joined #perl6
12:32 [TuxCM] joined #perl6
12:32 ilmari_ joined #perl6
12:32 polyflod joined #perl6
12:32 KotH joined #perl6
12:32 zakharyas1 joined #perl6
12:32 dylanwh_ joined #perl6
12:32 ingy joined #perl6
12:32 zhmylove joined #perl6
12:32 nine joined #perl6
12:32 roguelazer joined #perl6
12:32 mre joined #perl6
12:32 siriu5b joined #perl6
12:32 siriu5b joined #perl6
12:32 sergot joined #perl6
12:32 gfldex joined #perl6
12:32 ambs joined #perl6
12:32 sortiz Ups!
12:32 jnthn joined #perl6
12:33 damnlie joined #perl6
12:33 dindinx joined #perl6
12:33 atta joined #perl6
12:33 sjoshi joined #perl6
12:33 TeamBlast joined #perl6
12:33 darutoko joined #perl6
12:33 dustinm` joined #perl6
12:33 boegel joined #perl6
12:33 RabidGravy joined #perl6
12:33 zacts joined #perl6
12:33 Skarsnik I have a weird bug with a repeat { } while loop
12:33 geekosaur joined #perl6
12:34 b2gills joined #perl6
12:34 tadzik joined #perl6
12:34 masak Skarsnik: bring it.
12:34 Skarsnik Don't know how to golf it
12:34 masak (pref'r'bly golf'd)
12:34 dg joined #perl6
12:34 masak :)
12:34 masak don't know *yet* how to golf it
12:34 cbk joined #perl6
12:35 _mg_ joined #perl6
12:36 Skarsnik https://gist.github.com/Ska​rsnik/cdcfcb15e766913970c8
12:36 Skarsnik if you look at it the =has child= string should always be followed by a 'BUILD-TREE-CHILD'
12:36 rvchangue joined #perl6
12:36 sortiz I'll fix the others drivers on the env var issue.
12:37 nightfrog joined #perl6
12:37 emdashcomma joined #perl6
12:37 Skarsnik but it get skipped
12:37 rodarmor joined #perl6
12:38 Skarsnik The code miss me children of the xml document because of that x)
12:39 El_Che joined #perl6
12:39 khagan joined #perl6
12:39 peteretep joined #perl6
12:40 BuildTheRobots joined #perl6
12:40 bpmedley joined #perl6
12:40 Skarsnik Great it's a variant of the { loop() {} } bug that was giving failure after x-mas
12:41 Skarsnik I added a 0; after the loop and it work
12:42 chansen_ joined #perl6
12:44 parisba joined #perl6
12:45 sivoais joined #perl6
12:45 lucasb joined #perl6
12:45 sortiz mysql driver lacks a version number, that cause that the development libraries must be installed for it to work, the issue #47, I will use v18, the one on my system. Comments?
12:46 Skarsnik Nop
12:46 Skarsnik v16-v22 work
12:46 Skarsnik I think I have 22 here
12:47 WizJin joined #perl6
12:47 lucasb will there be a release this weekend or it will get postponed?
12:47 Skarsnik 14-18, not 22 ><
12:48 dalek rakudo/nom: 8ab2b85 | lizmat++ | src/core/Str.pm:
12:48 dalek rakudo/nom: Cosmetic fix for better highlighting
12:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/8ab2b85187
12:48 Skarsnik I mean mysqlclient does not have a api version fixed. 18 is probably fine but I am pretty sure DBIish work with 16
12:49 ggherdov_ joined #perl6
12:50 vendethiel joined #perl6
12:50 lucasb can someone merge this PR? https://github.com/rakudo/rakudo/pull/710
12:50 sortiz Ok, but we need to think in a way that allows end users to use it without need to install development libraries.
12:51 Spot__ joined #perl6
12:51 kipd joined #perl6
12:51 lizmat lucasb: looking at it now
12:51 mithaldu_ joined #perl6
12:52 lucasb lizmat: thank you :)
12:52 clkao joined #perl6
12:52 sortiz And not need to set the env var unless the have special requirements.
12:52 dalek rakudo/nom: 7a8d085 | lizmat++ | src/core/Str.pm:
12:52 dalek rakudo/nom: Move LSM class closer to client
12:52 dalek rakudo/nom:
12:52 dalek rakudo/nom: To allow for easier refactoring
12:52 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/7a8d0851b5
12:53 Ven joined #perl6
12:55 Skarsnik segfault in display is annoying x)
12:56 RabidGravy Okay, in the circumstance that panda gets a module's Build.pm the "Build" gets in the LEXICAL::GLOBALish:: but not in GLOBAL::  and ::("Build") is not finding the symbol, does that mean that ::() needs fixing or is there another way of doing this?
12:58 Skarsnik could be tied to the require ::() stuff?
12:58 RabidGravy but more importantly GLOBAL::<Build>:delete isn't deleting anything hence the redefinition error
12:58 RabidGravy almost certainly
12:59 lizmat RabidGravy: have you tried GLOBAL::.DELETE-KEy('Build') ?
12:59 lizmat *KEY
13:00 Skarsnik well :delete should work?
13:00 RabidGravy yeah, I'm curious as to why there would be a difference
13:00 lizmat :delete is syntactic sugar allowing for deleting slices and such
13:00 lizmat I would just want to check whether the sugar is getting in the way somehow
13:01 Skarsnik is there a way to remove the Use of uninitialized value of type blabla in String context?
13:01 lizmat Skarsnik: afaik, that warning was put there for a reason
13:02 Skarsnik well it's annoying when debugging
13:02 Skarsnik I mean, just replace with '' if it's undef x)
13:02 dalek rakudo/nom: 5dfdc11 | (Salvador Ortiz)++ | src/core/Exception.pm:
13:02 dalek rakudo/nom: Exception.fail should reliably die if outside of a routine
13:02 dalek rakudo/nom:
13:02 dalek rakudo/nom: A straight port of https://github.com/rakudo/rakudo/commit/​3128db83ae62e9fee2c108f18bda9eff9d239cd8
13:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/5dfdc114bb
13:02 dalek rakudo/nom: f5a712f | lizmat++ | src/core/Exception.pm:
13:02 dalek rakudo/nom: Merge branch 'patch-1' of https://github.com/salortiz/rakudo into salortiz-patch-1
13:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f5a712f1a8
13:02 dalek rakudo/nom: bcab502 | lizmat++ | src/core/Exception.pm:
13:02 dalek rakudo/nom: Merge branch 'salortiz-patch-1' into nom
13:02 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bcab502d45
13:05 Skarsnik hm look like I have a missized union
13:07 lizmat Skarsnik: without the warning, you might not have found out ?
13:07 Skarsnik na it segfault
13:07 lizmat :-(
13:09 RabidGravy lizmat, It's not the deleting that is the problem, it's that the symbol isn't in the GLOBAL:: to be deleted at all :-\
13:11 RabidGravy I can actually reproduce now by running Panda::Build.build twice
13:15 RabidGravy but yeah, the ::() isn't finding the symbol even though I can see it, so It needs to be fixed
13:18 Actualeyes joined #perl6
13:18 vendethiel joined #perl6
13:21 sortiz RabidGravy, In DBIish I had to be very specific to make ::($foo).new() work.
13:22 stmuk "Don't know how to 'no warnings' just yet
13:22 stmuk any work around? I am finding the nativecall version nagging annoying
13:23 RabidGravy CONTROL { when X::Warni { $_.resume } };  or something like that
13:24 jnthn CX::Warning I think
13:27 Skarsnik it's not a warning x)
13:27 Skarsnik it's a note
13:28 jnthn :/
13:28 uruwi joined #perl6
13:29 stmuk I just used X::Warn to make warnings fatal by mistake so I'm getting there :)
13:29 stmuk CX::Warn even
13:31 Skarsnik Could be raise to a warning maybe?
13:31 apiw joined #perl6
13:31 jnthn Sounds like
13:31 jnthn Modules really shouldn't note
13:32 jnthn (Unless they're expected to do output to stderr as part of their useful function)
13:32 sortiz stmuk, About versions, are you talking about the detail with mysql in DBIish?
13:33 stmuk its not DBIish .. it's SDL2::Raw .. but I get the version warnings with most nativecall modules
13:35 jnthn Is the warning worth it?
13:35 Skarsnik well they forget to give a version
13:35 flussence I've never seen anyone say a *positive* thing about it...
13:35 uruwi_ joined #perl6
13:35 jnthn Skarsnik: Yes, but should NativeCall be so strongly forcing that on people?
13:36 jnthn I'm not convinced it should.
13:36 moritz Skarsnik: or maybe it's just code from before the versioning thing
13:36 RabidGravy so yeah it does seem that the ::() isn't looking in the right place for a lexical symbol
13:36 Skarsnik os X/BSD/Linux doc about shared lib say it should always give an ABI/API version
13:36 flussence and it's a bit hypocritical to demand more out of nativecall users than *the language itself* bothers to give for its compiled libs
13:37 RabidGravy right, but a lot of things either ignore that or they got built some way that it doesn't get one
13:37 sortiz The problem is that without a version number, NC can only found the library via then symlink of the development version.
13:38 sortiz s/then/the
13:38 RabidGravy if it is indeed a symlink
13:38 RabidGravy some things just install a .so
13:38 sortiz Normally that's the case
13:38 Skarsnik lot of distrib chose to provide the .so as a symlink in the devel package, because that what it should be
13:38 Skarsnik .so is a devel thing
13:38 Skarsnik still according to doc about shared lib
13:38 RabidGravy it's not
13:39 RabidGravy I have 50+ .so files in /usr/lib64 that aren't symlinks
13:39 jnthn Skarsnik: Is that doc stating how things actually *are*, or an ideal for how they should be?
13:39 RabidGravy there's nothing anywhere that enforces it
13:40 sortiz Sure, for libs without versionised APIs.
13:40 Skarsnik You can complain it miss something to explicitly tell NC to not bother with version, but in most case the version exist and should be used
13:40 addison joined #perl6
13:40 Skarsnik I don't think I have raw .so in my debian stable
13:40 molaf joined #perl6
13:40 sortiz But that way the caller can't be protected of API changes.
13:41 esh joined #perl6
13:41 Skarsnik execpt stuff that are plugin and loaded with dlopen
13:41 stmuk neither quietly{} nor CONTROL { when CX::Warn { .resume } } seem to play well with NativeCall since they make further warnings fatal
13:42 sortiz And even dlopen prefer a fully versionised request.
13:42 stmuk maybe I can play tricks with STDERR
13:42 flussence that's a good point: even C code compiled with -Wall -pedantic doesn't get this picky about dlopen filenames.
13:43 Skarsnik jnthn, https://www.freebsd.org/doc/en/books/d​evelopers-handbook/policies-shlib.html http://www.openbsd.org/faq​/ports/specialtopics.html I don't remember where I found for general Unix system
13:43 flussence we have a *worse* user experience than C right now.
13:43 Actualeyes joined #perl6
13:44 sortiz In C, at link time the version is fixed, and we want to jump out that safety net.
13:44 Skarsnik This warning is aimed toward developpers, without it most poeple will write is native('foo') and you will need to install foo-devel on debian/fedora (and probably other)
13:45 stmuk see also http://doc.perl6.org/language/fa​q#Nativecall_can%27t_find_libfoo.so_and_I_only_have_libfoo.so.1.2%21
13:46 Skarsnik This entry is old ^^
13:46 RabidGravy ls -l /usr/lib64/*.so | grep -v ^l | wc
13:46 RabidGravy 89
13:46 Skarsnik are they real lib or think loaded by another stuff?
13:48 RabidGravy I'm not sure what that means in this context, they're .so files without versions (or infact most have versions in the basename it seems)
13:48 Skarsnik I only have 19 on my debian stable (for /usr/lib)
13:48 dalek rakudo/nom: 82d8e69 | lizmat++ | src/core/Str.pm:
13:48 dalek rakudo/nom: Make LSM.new take the substitutions
13:48 dalek rakudo/nom:
13:48 dalek rakudo/nom: So we can basically inline the creation of the object and returning
13:48 dalek rakudo/nom: its result.  Also use long option names internally for clarity.
13:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/82d8e6900d
13:48 geekosaur *sigh* we're going to end up saying "yes fine use the unversioned .so so you have no clue what ABI you have to speak", right?
13:48 flussence $ find /usr/lib -type f -name '*.so' | wc -l
13:48 flussence 718
13:48 Skarsnik is find recursive?
13:48 Skarsnik there is a shitton on plugin with KDE stuff
13:48 RabidGravy need to exclude the symlinks
13:48 moritz just like we're saying "you can write this code without writing unit tests, performance tests, integration tests and acceptance tests for it"
13:49 geekosaur fine, use unversioned .so-s. runtime crashes because of incompatible ABI versions are part of The Experience
13:49 geekosaur find is recursive, yes
13:49 arnsholt geekosaur: Unconditionally writing to stderr when the wrapper library doesn't supply a version is kinda shit too though
13:49 Skarsnik Lib without versionning should be traited as specific case IMO
13:49 flussence among other things, that list includes libreadline.so
13:49 RabidGravy or "sorry you can't have a Tk binding because it doesn't install versioned libraries"
13:50 geekosaur flussence, tha tells me you have developer libraries installed
13:50 geekosaur C programs do not use the developer libraries.
13:50 geekosaur ldd will show you .so.N not .so
13:50 stmuk or don't deploy nativecode in production without developer libraries
13:50 geekosaur there's a REASON for that
13:50 sortiz I prefer to force the end user to a certain version that need to debug some unnoticed API change.
13:51 DarthGandalf joined #perl6
13:51 flussence oh right, they link to a symlink in /lib, not /usr/lib.
13:51 Skarsnik That why in my register-native-lib stuff I have a explictly :no-version parameter for case without version
13:51 jnthn This isn't really a discussion of "is it better to use versioned libraries when available", it's "should we carp in the way we do now when that isn't specified". I think we at the very least should make it a warn, not a note.
13:51 FROGGS I'd vote for 'is native("foo", Nil)' or some such to state that one wants to use unversioned libs
13:51 RabidGravy yes
13:52 flussence oh, that isn't even a binary file it's an ld script.
13:52 FROGGS though we still have the problem that windows has no concept of versions it seems, right?
13:52 Skarsnik and?
13:52 Skarsnik It's not an issue
13:52 jnthn FROGGS: Yeah, you're generally best just shipping the versions you need together with your application.
13:52 Skarsnik you can always put the version. on win32 it does not change the DLL name
13:53 sortiz I prefer is native("foo", *)   :)
13:53 jnthn Yeah, I'd avoid Nil for it
13:53 Skarsnik and it does not warn if you put a path to is native
13:53 FROGGS k
13:53 jnthn * is better
13:53 Skarsnik can we write is native('foo', :no-version) ?
13:53 stmuk m: warn "foo"
13:53 camelia rakudo-moar bcab50: OUTPUT«foo  in block <unit> at /tmp/9EfPvXF5kH line 1␤»
13:53 FROGGS so, let's turn that note off by passing *?
13:53 stmuk m: quietly { warn "foo" }
13:53 camelia rakudo-moar bcab50: ( no output )
13:53 stmuk m: quietly { note "foo" }
13:53 camelia rakudo-moar bcab50: OUTPUT«foo␤»
13:53 LGD joined #perl6
13:54 Skarsnik I did not put warn because it point to the code in NC and not the user
13:54 RabidGravy I've just checked a small sample, the tcl, tk, xerces, smime are all unversioned and the public API
13:54 wamba joined #perl6
13:54 Skarsnik and it's probably confusing
13:54 lizmat afk for a few hours&
13:54 FROGGS RabidGravy: but you also have versioned libs for these, no?
13:54 pmurias joined #perl6
13:54 RabidGravy no
13:54 Skarsnik opengl has unversionned extension
13:54 Skarsnik I think
13:55 Skarsnik but it's a weird case
13:55 RabidGravy /usr/lib64/libtk8.6.so
13:55 matt_ joined #perl6
13:55 vendethiel joined #perl6
13:55 FROGGS that's still versioned, isnt it
13:55 pmurias install Readline and having the version warning appear when using the REPL needs to be fixed
13:55 sortiz That the case that the packager don't understand the issue an put the version in the name!
13:56 skids joined #perl6
13:56 cdg joined #perl6
13:56 RabidGravy yeah, but you'd actually say native('tk8.6'), get a rude warning and not bother
13:56 cdg joined #perl6
13:57 dalek doc: 486d2bf | (Steve Mynott)++ | doc/Language/5to6-nutshell.pod:
13:57 dalek doc: mention quietly block
13:57 dalek doc: review: https://github.com/perl6/doc/commit/486d2bf32e
13:57 sortiz you can avoid the warning with native('tk8.6.so')
13:57 Skarsnik RPL does not a provided version with RESSOURCE?
13:57 Skarsnik hm, interesting for TK
13:57 Skarsnik root@testperl6:~/piko/perl6-MiniXML# apt-file show libtk8.5
13:57 Skarsnik libtk8.5: /usr/lib/i386-linux-gnu/libtk8.5.so
13:57 Skarsnik libtk8.5: /usr/lib/i386-linux-gnu/libtk8.5.so.0
13:58 Skarsnik it's indead not a symlink on the dev package
13:58 Skarsnik but debian provide a 0
13:59 RabidGravy Plato must be splitting his sides
13:59 RabidGravy anyway this isn't fixing Panda
14:00 MilkmanDan joined #perl6
14:01 sortiz Sure, and that's more important.
14:01 Ven joined #perl6
14:01 burnersk joined #perl6
14:02 eiro joined #perl6
14:03 sortiz RabidGravy, the problem with Panda is the ::($foo) case for Build, no?
14:03 RabidGravy yeah
14:03 Guest26382 joined #perl6
14:03 RabidGravy well it is now
14:05 RabidGravy the actual problem as reported was that it was crapping out with "redefinition of 'Build'" because it was doing GLOBAL::<Build>:delete and it wasn't in GLOBAL::
14:05 RabidGravy but in LEXICAL::GLOBALish
14:05 RabidGravy having remedied that it appears that the ::('Build') isn't finding it
14:06 RabidGravy because it's in LEXICAL::GLOBALish not GLOBAL
14:06 RabidGravy or something, got me totally confused
14:07 mrsolo joined #perl6
14:08 jnthn Hm, did require changes of late break global merging perhaps?
14:08 sortiz I suppose that is caused by the recent llforrn change, see https://github.com/rakudo/rakudo/commit/f​565f80a4bebc0abf9c6467d097859a1db074d11#d​iff-cdcd7468e5ed1820ac714b6d322a492aR587
14:09 [Coke] joined #perl6
14:09 RabidGravy possibly, but I couldn't see anything there that would do it
14:10 jnthn CALLER::LEXICAL::GLOBALish::​.merge-symbols($GLOBALish);
14:10 jnthn That looks dubious
14:10 jnthn GLOBAL::.merge-symbols($GLOBALish); would feel righter
14:10 sortiz Yes, that is what i was talking about.
14:11 jnthn Because you're at runtime
14:11 jnthn GLOBALish is only something you'd want to target at compile time, and it becomes GLOBAL by runtime
14:11 jnthn But it's the top level application's one that becomes GLOBAL
14:11 jnthn So it's possible that this works in simple test cases, but not as soon as you're a module down in the dependency chain and do a require
14:12 * [Coke] wonders if we can -schedule- reboots of hack rather than have them come up same day.
14:12 RabidGravy yeah, I think that's probably right
14:13 moritz [Coke]: if we can get a professional admin team, yes
14:13 moritz [Coke]: if the responsibility remains with me: no
14:14 stmuk I'd say certain remote security issues = instant reboot
14:14 RabidGravy I'm not sure if the expectation is that a require in some lexical scope only has lexical effect rather than global
14:15 RabidGravy in which case then the ::() should be fixed
14:15 jnap joined #perl6
14:16 RabidGravy or just GLOBAL::.merge-symbols
14:16 RabidGravy the effect previously was indeed global
14:16 jnthn You can't have lexical effects in terms of new symbols
14:16 jnthn Because the set of symbols in a lexpad is immutable by runtime
14:17 jnthn And yeah, things that are global should be subject to global merging
14:17 jnthn Jsut as in use
14:19 RabidGravy I'm getting confused here, so why is there even a LEXICAL::GLOBALish at all then?
14:19 jnthn I'm not sure there should be in this code
14:19 jnthn GLOBALish means "what does this module contribute towards GLOBAL"
14:19 sortiz In llfourn commit there are an XXX comment, but I don't understand the details.
14:19 avenj joined #perl6
14:20 jnthn But when you require you want to influence The Real Thing
14:21 RabidGravy right, so it should be GLOBAL::.merge-symbols and the problem goes away for panda at least
14:21 * [Coke] wonders if people use something other than hack to irc from.
14:21 * [Coke] also ponders just switching away from an always-on irc.
14:21 moritz [Coke]: fwiw I can set up a separate virtual machine for IRC
14:21 moritz [Coke]: in fact, I've done so in past, but nobody used it
14:22 [Coke] moritz: I don't imagine it will avoid reboots any more than any of the other instances.
14:22 moritz [Coke]: well, it was the first reboot of the hypervisor today; hack is being rebooted *much* more often than other machines
14:24 Roamer` hm, am I missing something?  Is there a way to compile a regex from a string at runtime?  Seems I can't call a Regex constructor, and I can't figure out the syntax for interpolating a variable in /../ as in Perl 5 without \Q..\E
14:24 moritz Roamer`: <$string>
14:26 Roamer` moritz, hmm, okay, yes... almost... that seems to need me to keep the variables in scope when evaluating the RE, doesn't it?
14:27 Roamer` I mean, say $re.perl gives me something that has the variable names in there...
14:27 [Coke] irc--
14:28 Roamer` ah, well, not exactly... the regex seems to work even after I leave the block with the variables
14:28 Roamer` moritz, okay, thanks, I was a bit fooled by the fact that the regex refers to the variables by name, I'll try that
14:28 stmuk [Coke]: you look like the sort of person who would like 'slack' ;)
14:29 [Coke] stmuk: more of an xmpp guy.
14:29 [Coke] slack is closed source, you have to use their client, yes?
14:29 moritz Roamer`: the fun of closuring :-)
14:30 sortiz Skarsnik, should I left mysqlclient unversionized?
14:32 PotatoGim_ joined #perl6
14:33 uruwi joined #perl6
14:34 Roamer` moritz, hm, still doesn't quite cut it for me.  OK, here's what I'm trying to do: parse a string into components, then turn each component into a different RE fragment, then concatenate the fragments into one big RE
14:35 Roamer` moritz, but if I do something like for @strings -> $s { if $re.defined { $re = /<$re> <$s> } else { $re = /<$s>/ } }, then the first attempt to match against this seems to go into an infinite loop
14:36 Roamer` and dd $re gives me Regex $re = /<$re> <$s>/  ... which kind of maybe sort of explains the infinite loop :)
14:36 pmurias joined #perl6
14:37 sortiz Well, I'll commit with a reasonable v18, and a runtime var for override.
14:37 dalek DBIish: ceb56b4 | (Salvador Ortiz)++ | lib/DBDish/ (2 files):
14:37 dalek DBIish: Move env's vars resolution to runtime
14:37 dalek DBIish: review: https://github.com/perl6/DBIish/commit/ceb56b4eec
14:37 dalek DBIish: c4d3ff6 | (Salvador Ortiz)++ | README.pod:
14:37 dalek DBIish: Update copyright
14:37 dalek DBIish: review: https://github.com/perl6/DBIish/commit/c4d3ff6862
14:38 Roamer` moritz, nevermind, I'm dumb.  I just figured out that I can concatenate the fragments into one big string and say $re = /<$string>/ and... well, it works.
14:38 Roamer` thanks :)
14:39 tony-o joined #perl6
14:39 jnthn m: my @strings = <a+ b* c>; say 'aaabbcd' ~~ /:my @bits = @strings; [<?{@bits}> <$(@bits.shift)>]+/
14:39 camelia rakudo-moar 82d8e6: OUTPUT«「aaabbc」␤»
14:40 jnthn That's how you could do it if you really "had to", fwiw ;)
14:44 kent\n joined #perl6
14:45 RabidGravy jnthn, regarding this merge-symbols malarkey do you want a PR or can it "just be fixed" ?
14:46 stmuk perlpilot: https://github.com/perlpilot/benchmark/pull/7
14:46 RabidGravy there are issues against panda and about half the ecosystem as a result of it
14:47 jnthn RabidGravy: If somebody can test such a fix helps, I think I'm fine with it going in
14:49 RabidGravy let me see if I can do that
14:49 ChoHag joined #perl6
14:49 RabidGravy first add failing test to panda
14:51 sortiz RabidGravy, in the meantime, can be workarounded with the :delete in where you known Build is merged?
14:52 RabidGravy oh yeah, got that part sussed
14:52 RabidGravy and if it really came to it I can find the symbol in the same place
14:53 sortiz yep
14:54 Ven joined #perl6
14:54 Roamer` jnthn, whoah, it'll take me some time to parse what you wrote there :)  ... I just found out about :my in S05, now reading the rest of it carefully
14:55 Roamer` (that is, I found out about it after I saw it in your example)
14:58 Ven I've found out you can read S05 a lot of time and still have most of it fly over your head :P
14:59 n0tjack joined #perl6
15:00 kurahaupo joined #perl6
15:00 shicheng joined #perl6
15:01 perlpilot Still the same old Perl ... there's always something new to learn and you may have to read and re-read and re-read the docs in order to learn some things
15:04 RabidGravy anyway I'm quite relaxed about how long it takes rakudo to build now, I built Ardour from scratch for the first time in ages last night and it took three hours
15:08 tadzik yay, I'm going to gpw \o/
15:09 RabidGravy harr!
15:11 stmuk me 2
15:14 sortiz Found something! A "my class Foo" results in ::('Foo') fails after required, but an "our class Foo" succeeds!
15:14 apiw joined #perl6
15:15 FROGGS that is to be expected
15:16 sortiz Ok, so Panda Build, and in general classes to be loaded by require, should be our, never my.
15:16 RabidGravy jnthn, I can confirm that changing that CALLER::LEXICAL::GLOBALish to GLOBAL does indeed fix the problem that panda is experiencing
15:17 ugexe why not just launch Build.pm in a separate process, which is proven to work?
15:17 RabidGravy sortiz, but the default is "our" isn't it?
15:17 FROGGS RabidGravy: it is
15:17 sortiz Yes.
15:18 sortiz But authors can use my.
15:18 RabidGravy ugexe, it's not just panda that is afflicted by this
15:20 RabidGravy it's "if something requires something in a lexical scope then the global symbols aren't available" which  may break e.g. require Foo;  ::('Foo').new for instance
15:21 dalek joined #perl6
15:21 pnu joined #perl6
15:23 sortiz But that depends on what Foo is, require is about module files, and ::('Foo') is about symbols.
15:23 ugexe isn't that how its supposed to be though? i.e. lexical stuff stays in lexical scope?
15:23 addison_ joined #perl6
15:24 FROGGS sortiz: Foo is always a symbol
15:24 ely-se joined #perl6
15:24 FROGGS require Foo will load a compilation unit that is meant to contain such symbol
15:24 ugexe although i think i ran into a similar problem now that im thinking about it. by putting it in the applications root namespace it worked as expected, but in a sub-namespace it would no longer work
15:25 FROGGS but it can contain other symbols as well, and also perhaps lack the Foo symbol
15:25 RabidGravy right, but as we discussed, in the case of a class it is also "our" scoped so it should become available
15:25 sortiz FROGGS, I was talking about require "foo/Bar.pm", nothing assured you that a Bar symbol results.
15:26 FROGGS sortiz: still, the Foo in require Foo is about a symbol Foo
15:26 RabidGravy as ::() appears to be clever enough to traverse the GLOBAL:: to find e.g. ::('Foo::Bar::Baz')
15:27 FROGGS sortiz: then we go off on load a file (cu), that is listed as "providing symbol Foo"... look at the META6.json file
15:27 FROGGS there is the symbol => file mapping table
15:28 RabidGravy but it traverses the GLOBAL:: and the way that require was doing it means that it was never ending up in GLOBAL so couldn't be found under some circumstances
15:28 virtualsue joined #perl6
15:29 nine Isn't the panda problem that loading a second Build.pm by the same process fails, because the symbol is still there? The GLOBAL::<Build>:delete; hack fails.
15:29 sortiz FROGGS, that's clear, but for dynamic requires nothing can be assured, that is my point.
15:29 FROGGS nine: it failed because probably somebody declared the Build class as 'my', that's my guess here at least
15:30 FROGGS sortiz: then we agree
15:30 FROGGS sortiz: also for use statements
15:30 RabidGravy yeah, because it isn't in GLOBAL::, but deleting from LEXICAL::GLOBALish works, however then the ::('Build') doesn't work because it isn't in the GLOBAL after the require
15:32 sortiz And if the class was "my" that results in the "Actually thrown at: in any  at gen/moar/m-Metamodel.nqp line 3041" case, btw
15:32 RabidGravy FROGGS, nah, it fails for everything ATM
15:33 uruwi joined #perl6
15:33 RabidGravy I've made a test that can replicate without a my and fixing the require to do GLOBAL::.merge-symbols makes it pass
15:34 FROGGS ahh, I see
15:34 FROGGS RabidGravy++
15:34 RabidGravy just running spectest
15:36 sortiz But that way any require, not only those done in "main" will be _to_ GLOBAL::, is that expected?
15:37 jnthn sortiz: Things that are in GLOBALish *always* want merging into GLOBAL. Same with use, it doesn't matter where the use statement is. That only matters for lexical things.
15:38 sortiz jnthn, Ok, all clear to me now.
15:40 Skarsnik hm, how work Cunion in memory?
15:41 sortiz Skarsnik, like a union in C, no?
15:41 Skarsnik I mean in C
15:41 Ven well, it's just memory. the size itself is the size of the biggest union
15:42 RabidGravy it allocates enough memory for the largest itm
15:42 nine llfourn: you want to read this ^^^
15:42 jnthn And there's no discrimination. \o/
15:42 jnthn Or, /o\ :)
15:42 Skarsnik I try to figure why display a C union segfault sometime x)
15:43 sortiz So only one member can be used at a time.
15:43 apiw joined #perl6
15:43 jnthn Well, if you have something where it could hold a pointer or an int, and you try to access the pointer "view" when it's holding an int, that'll segfault pretty nicely :)
15:44 dakkar joined #perl6
15:44 sortiz I.e you need to know which is valid.
15:44 mst joined #perl6
15:45 jnthn Right
15:46 jnthn https://github.com/MoarVM/MoarVM/​blob/master/src/core/interp.h#L14 # the MoarVM register union, as a concrete example :)
15:46 perlpilot left #perl6
15:46 perlpilot joined #perl6
15:47 Skarsnik maybe gist on repr CUnion should say "nop" instead of sometime working and sometime not  ^^
15:47 skids Or just show pointer values as pointers, don;t try to derefernce them.
15:48 Skarsnik It's annoying trying to display a struct that hold a cunion
15:48 arnsholt Yeah, you can't reasonably expect gisting a CUnion to give terribly useful information
15:48 isBEKaml joined #perl6
15:48 skids It can, just it will also display some useless information, too.
15:49 skids Unless you have knowlege of how to pick a union member based on other fields.
15:49 Skarsnik but the (bad) side effect is randomly making display a cstruct working or not
15:50 arnsholt Exactly
15:50 RabidGravy make your own gist method in the CStruct
15:50 sortiz btw I suppose that the CUnion REPR should delay the unmarshaling to the access time.
15:51 arnsholt RabidGravy: Having .gist on CUnion be broken *unless* you implement something to unbreak it isn't a terribly cool thing to do, though
15:52 sortiz lunch time&
15:52 RabidGravy true
15:52 Skarsnik it's tricky because it's a 'normal' class with a special REPR
15:53 xnrand joined #perl6
15:57 Skarsnik I am confused. I use $stuff !=== Pointer to check if it's not NULL. It does not always work
15:58 FROGGS Skarsnik: why dont you just check for +$stuff ?
15:58 jnthn Or $stuff.defined
15:58 arnsholt Because that's different from everything else in NativeCall?
15:59 skids I would expect a "union { u8 a; u16 b; *int p }" where the u16 is set to 0xff11 to be displayed something like "{ union { a = 0x11 # or␤b = 0xff11 # or␤CPointer(0x11ff0000) } }" (supposing the endianness was that way) by default.
15:59 skids erm 0xff110000
15:59 arnsholt jnthn: And .defined wouldn't work I think
15:59 Skarsnik Oh I need the full type
15:59 arnsholt You can create a definite instance of Pointer that converts to NULL, via Pointer.new(0)
15:59 Skarsnik Pointer[mxml_node_t] x)
16:00 * skids wonders how gdb displays unions.
16:01 jnthn arnsholt: urgh
16:01 Skarsnik I am not sure how NC fill Pointer attributes when they are NULL
16:01 arnsholt Probably something like that
16:01 Skarsnik Look it does not set the attriute at all
16:02 MadcapJake Still UNKNOWN for all Perl FOSDEM videos... http://video.fosdem.org/2016/h2214/STATUS.TXT
16:02 arnsholt jnthn: I know! I think it's mostly a question of tweaking the relevant constructors to just return the type object if the supplied address is zero, but I never got around to fixing that last time I hacked on NC (theses consume an alarming number of tuits...)
16:03 Skarsnik guh this xml lib is driving me crazy
16:06 Skarsnik it lost children x)
16:08 RabidGravy jnthn, it seems that the spectest passes with that s/CALLER::LEXICAL::GLOBALish/GLOBAL/
16:10 jnthn RabidGravy: OK; any chance of adding a spectest to cover this bustage also?
16:11 mr_ron joined #perl6
16:13 RabidGravy yeah, that's doable
16:16 PotatoGim_ joined #perl6
16:17 mr_ron m: for $*IN.lines { .say }
16:17 camelia rakudo-moar 82d8e6: OUTPUT«Céad slán ag sléibhte maorga Chontae Dhún na nGall␤Agus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤Nuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤I mo dhiaidh bhí gleanntáin ghlas’ G…»
16:18 mr_ron m: for $*IN.lines -> $_ is copy { s/(\w+)/{$0 ~ $0}/; .say }
16:18 camelia rakudo-moar 82d8e6: OUTPUT«CéadCéad slán ag sléibhte maorga Chontae Dhún na nGall␤AgusAgus dhá chéad slán ag an Eireagal ard ina stua os cionn caor is coll;␤NuairNuair a ghluais mise thart le Loch Dhún Lúich’ go ciúin sa ghleann ina luí␤II mo dhiaidh bhí gleannt…»
16:18 MilkmanDan joined #perl6
16:19 ilmari m: for $*IN.lines -> $_ is copy { s/(\w+)/{$0 ~ $0}/g; .say }
16:19 camelia rakudo-moar 82d8e6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Bi5iBFF9qR␤Unsupported use of /g; in Perl 6 please use :g␤at /tmp/Bi5iBFF9qR:1␤------> 3ines -> $_ is copy { s/(\w+)/{$0 ~ $0}/g7⏏5; .say }␤»
16:19 ilmari m: for $*IN.lines -> $_ is copy { s:g/(\w+)/{$0 ~ $0}/; .say }
16:19 camelia rakudo-moar 82d8e6: OUTPUT«CéadCéad slánslán agag sléibhtesléibhte maorgamaorga ChontaeChontae DhúnDhún nana nGallnGall␤AgusAgus dhádhá chéadchéad slánslán agag anan EireagalEireagal ardard inaina stuastua osos cionncionn caorcaor isis collcoll;␤NuairNuair aa ghlua…»
16:19 mr_ron m: for $*IN.lines <-> $_ { s/(\w+)/{$0 ~ $0}/; .say }
16:19 camelia rakudo-moar 82d8e6: OUTPUT«Parameter '$_' expected a writable container, but got Str value␤  in block <unit> at /tmp/CvavapU4Gs line 1␤␤»
16:20 hoelzro joined #perl6
16:20 jnap joined #perl6
16:20 mr_ron I sort of understand why the last case fails but its a common case and think it should be documented someplace ...
16:21 jnthn Perhaps worth documenting with .lines
16:22 jnthn (And yes, the behavior is correct.)
16:22 mr_ron thanks - jnthn++
16:23 musiKk joined #perl6
16:23 _nadim joined #perl6
16:24 _nadim Hi every one!
16:24 skids o/
16:27 mr_ron left #perl6
16:28 rntz joined #perl6
16:30 rntz does anyone know a good and thorough guide to the semantics of junctions/autothreading? I'm wondering why, for example, (1|2) + (3&4) becomes (4|5)&(5|6) and not (4&5)|(5&6).
16:30 stmuk . o O ( behaviour )
16:34 jnthn rntz: Language spec on this covers it, at least: http://design.perl6.org/S09.html#Junctions
16:34 jnthn Around "If two or more arguments are junctive"
16:34 isBEKaml Hi, must `take` on a list always be used in the context of a `gather`?
16:35 isBEKaml http://doc.perl6.org/routine/take#class_Mu
16:35 jnthn isBEKaml: Strictly, in the dynamic scope of
16:35 rntz jnthn: thanks
16:35 jnthn isBEKaml: Though it's common to have all the takes in the static scope, for readability if nothing else :)
16:35 isBEKaml jnthn: thanks. Why can't we do something like(not valid): take 5, @array;?
16:36 uruwi joined #perl6
16:37 jnthn m: say gather { my @array = 1,2,3; take 5, @array };
16:37 camelia rakudo-moar 82d8e6: OUTPUT«((5 [1 2 3]))␤»
16:37 isBEKaml perl6: my @a = <a b c d e f>; take 5, @a;
16:37 camelia rakudo-jvm f99bdb: OUTPUT«take without gather␤  in block <unit> at /tmp/tmpfile:1␤␤»
16:37 camelia ..rakudo-moar 82d8e6: OUTPUT«take without gather␤  in block <unit> at /tmp/tmpfile line 1␤␤»
16:37 jnthn I don't really get what you'd want that to do
16:38 isBEKaml jnthn: \o/, now that's clear enough to me :-)
16:38 jnthn I mean, just `push @array, 5` if you want to stick the value in the array
16:38 jnthn :)
16:38 isBEKaml jnthn: no, I have > 5 elements in an array and I just want the first 5
16:38 hoelzro joined #perl6
16:38 jnthn Oh...
16:39 isBEKaml m: my @a = <a b c d e f>; say gather { take 5, @a };
16:39 camelia rakudo-moar 82d8e6: OUTPUT«((5 [a b c d e f]))␤»
16:39 jnthn m: my @a = <a b c d e f>; say @a.head(5)
16:39 camelia rakudo-moar 82d8e6: OUTPUT«(a b c d e)␤»
16:39 TimToady joined #perl6
16:39 Skarsnik hm, trying to give a Callback to NC Internal error: Unwound entire stack and missed handler
16:39 Skarsnik :(
16:39 ilmari m: my @a = <a b c d e f> say @a[0..5]
16:39 camelia rakudo-moar 82d8e6: OUTPUT«5===SORRY!5=== Error while compiling /tmp/kdxlkvvk4B␤Two terms in a row␤at /tmp/kdxlkvvk4B:1␤------> 3my @a = <a b c d e f>7⏏5 say @a[0..5]␤    expecting any of:␤        infix␤        infix stopper␤        postfix␤        statemen…»
16:39 ilmari m: my @a = <a b c d e f>; say @a[0..5]
16:39 camelia rakudo-moar 82d8e6: OUTPUT«(a b c d e f)␤»
16:39 khw joined #perl6
16:39 ilmari m: my @a = <a b c d e f>; say @a[^5]
16:39 camelia rakudo-moar 82d8e6: OUTPUT«(a b c d e)␤»
16:40 isBEKaml jnthn: Ah, I was thinking too haskell-y, scala-ish :-)
16:40 jnthn Skarsnik: Means your callback threw an exception (yes, we need to tweak the error reporting)
16:40 jnthn isBEKaml: Yeah, C# uses .Take(n) also for what we have with .head, so it's an easy one to fall in to :)
16:40 jnthn Though I didn't realize you were doing so for a while...
16:41 Skarsnik Probably not that. the function just do : return MXML_TEXT; (it's an enum value)
16:42 Skarsnik maybe it does not like fully typed Callback. I did not see an example on the test
16:46 MadcapJake I've got an example of using Test::Lab with AlexDaniel++'s variations on partitions (https://gist.github.com/Alex​Daniel/1e2d1c50963d37c5d43a) here: https://github.com/MadcapJake/Te​st-Lab/blob/master/eg/splits.pl6
16:47 isBEKaml jnthn++
16:48 Skarsnik hm, if I give it a native callback it fail differently
16:51 sortiz Skarsnik, Can I see your code?
16:52 Skarsnik https://gist.github.com/Ska​rsnik/abea9f36f99c548b147d
16:52 Skarsnik the binding is generated x)
16:53 _mg_ joined #perl6
16:53 Skarsnik this give me Cannot invoke object with invocation handler in this context
16:53 Skarsnik for the loadstring
16:55 jnthn Pretty sure we don't handle passing other native functions in as the callback yet
16:57 Skarsnik I try passing it the dumb_callback that does not work :(
16:57 sufrostico joined #perl6
16:57 sortiz Well, for start when the signature of the native (C) function needs, for example, xml_node_t*, you don't need Pointer[xml_node_t], all CStructs in another or in a call pass by reference i,e a pointer.
16:58 sortiz Pointer[xml_note_t] results in xml_node_t**
16:58 sortiz Now what you want (The API want)
16:59 sortiz s/Now/Not/
16:59 skids .oO(No problem cannot be created by adding an unecessary level of indirection :-)
17:00 sortiz In NC, even for native types, a simple "is rw" produce a pointer in a call.
17:00 Skarsnik Pointer work :)
17:02 Util joined #perl6
17:02 Skarsnik think that the code is generated. I have no way of knowing if a xml_node_t* will be just read or erased (so put rw or not)
17:03 timotimo i wonder if we can specialize the "too many positionals passed" error message to point out whether or not an invocant is included in the count
17:03 yoleaux 07:28Z <FROGGS> timotimo: how so?
17:04 sortiz The API give you clues, for returning an allocated pointer in an argument, the API needs **
17:05 vendethiel joined #perl6
17:06 MadcapJake Ruby was a strikingly easy language to translate into Perl 6
17:06 sortiz To pass an already allocated one, the API needs *. So the from the signature you know what you need.
17:08 sortiz And if you are writing a binding generator, you need to understand those details very well.
17:10 timotimo moritz: i'm ashamed to say, but i *think* i forgot to etckeeper the things in /etc on www.p6c.org after setting up collectd there :(
17:10 Skarsnik Well the main generator is called Dumb ^^
17:11 Skarsnik but anyways. why passing this callback does not work (the dumb one)
17:13 yurivish_ joined #perl6
17:13 zpmorgan joined #perl6
17:18 bartolin joined #perl6
17:18 Skarsnik I think I will switch to libxml2 x)
17:19 sortiz I was about to question that. I don't see in ecosystem libxml2 bindings!
17:20 Skarsnik I think FROGGS started it
17:20 uruwi joined #perl6
17:20 moritz timotimo: well, just add it now
17:21 sortiz Found two in github, but apparently abandoned.
17:21 flussence joined #perl6
17:24 addison_ joined #perl6
17:25 sortiz Yep, I found FROGGS's work.
17:27 Skarsnik Ok the lib I want to use is buggy
17:27 Skarsnik the last version x)
17:27 sjohnson joined #perl6
17:32 BuildTheRobots joined #perl6
17:33 yurivish joined #perl6
17:36 timotimo whew, finally caught up with backlog
17:36 Skarsnik sortiz, I think my issue about the struct and Pointer[struct] is that you have the same perl6 translation for 2 differents thing
17:37 Skarsnik without that
17:37 timotimo .tell froggs what do you mean "how so"? i looked at htop when your cron job is running and it showed quite high cpu usage. maybe we can make it only fire when something actually needs changing on cpandatesters, perhaps by pushing from hack instead of pulling from www ...
17:37 yoleaux timotimo: I'll pass your message to froggs.
17:38 sjn joined #perl6
17:38 arnsholt Skarsnik: Given "class MyStruct is repr('CStruct') { ... }" MyStruct and Pointer[MyStruct] are *not* the same
17:38 peteretep joined #perl6
17:38 riatre joined #perl6
17:38 polyfloyd joined #perl6
17:39 flussence joined #perl6
17:39 boegel joined #perl6
17:39 jnap joined #perl6
17:39 arnsholt Bare MyStruct is a my_struct_t* whereas Pointer[MyStruct] is a my_struct_t**
17:39 lnrdo joined #perl6
17:39 dalek joined #perl6
17:39 hacst joined #perl6
17:39 zpmorgan joined #perl6
17:39 [TuxCM] joined #perl6
17:40 dustinm` joined #perl6
17:40 pnu joined #perl6
17:40 xnrand joined #perl6
17:40 timotimo moritz: there's currently some changes queued up for etckeeper; changes to sshd_config (max auth tries) and testers.perl6.org.service (limit nprox)
17:40 hobbs joined #perl6
17:40 timotimo and also some additions to group and passwd are in there which i believe "etckeeper commit" would pick up automatically
17:40 simcop2387 joined #perl6
17:40 simcop2387 joined #perl6
17:41 sortiz Skarsnik, Indeed, the REPRs of all those, to the C side, give just a pointer (Unless you use HAS for inline them)
17:41 timotimo i'll be AFK for a bit, but after that, i might turn those into a bunch of commits
17:41 dfcarpenterak joined #perl6
17:41 ilmari joined #perl6
17:42 Skarsnik arnsholt, I mean having void foo(struct piko bar) and void foo(struct piko bar *) translating both  into sub foo(piko) is weird
17:42 olinkl joined #perl6
17:43 pierrot joined #perl6
17:43 SCHAAP137 joined #perl6
17:43 hoelzro joined #perl6
17:44 skids Maybe the first should be sub foo(piko) and the latter sub foo(piko is rw)
17:44 RabidGravy jnthn, shall I just push the new test for the GLOBAL:: thing to roast? it took a bit longer than I thought because I realised I need to test that it failed without the change
17:44 solarbunny joined #perl6
17:45 Skarsnik and you can always do a pr in https://github.com/Skarsnik/gptrixie x)
17:45 arnsholt Skarsnik: NativeCall isn't able to handle non-pointer structs as arguments to functions yet
17:45 caasih joined #perl6
17:46 sortiz Skarsnik, But very few API pass structures by value, most of them are by reference, so by a pointer, i.e. piko*
17:46 mrsolo joined #perl6
17:46 skarn joined #perl6
17:46 timotimo how do structs get passed as arguments to functions at all? without "by reference"?
17:46 skids On the stack.
17:46 skids (or registers, unpacked)
17:47 ugexe joined #perl6
17:47 sortiz skids, seems to me that only natives support the 'is rw' trick.
17:47 timotimo ah
17:47 geekosaur haskell's ffi still doesn't handle either passing or returning struct-s (as opposed to struct pointers)
17:48 geekosaur ...and I've seen maybe *one* request for that functionality in 10 years
17:48 alpha123 like no APIs do that ever
17:49 skids Well, perl's "is rw" is more like thing** really and "is ro" is more like thing* since the ro only applies to the container.
17:50 shicheng joined #perl6
17:50 skids There are some "const" incantations of course.
17:53 skids .oO(maybe a NC-only "is const" thing for introspective purposes, but IIRC there are not many bits left in the parameter trait mask)
17:53 sortiz btw, for MoarVM memory managed things, there are some problems when the memory ownership  should be transferred to C land.
17:53 arnsholt geekosaur: Yeah, that perhaps the missing NativeCall feature I'm the least worried about
17:54 sortiz I agree arnsholt.
17:56 arnsholt Tracking of ownership of memory is a much more pressing concern, as well as a way of handling strings that can't be marshalled and freed immediately before and after a call that isn't explicitly-manage() and doesn't piss you off when you have to use it
17:58 autarch joined #perl6
17:59 sortiz That's an issue.
17:59 RabidGravy gah, warnocked
17:59 WizJin joined #perl6
17:59 arnsholt sortiz: I have ideas for the former problem, but no tuits sadly
18:00 RabidGravy shall I just push this test to roast (it will fail before the associated PR to rakudo) or PR it?
18:00 arnsholt My only concrete point of action for the latter is that explicitly-manage needs to be nuked from orbit, but sadly don't really have any good replacements yet
18:00 sortiz arnsholt, I have tuits, but yet a lack of MoarVM fu.
18:00 arnsholt Except maybe a utility function that takes a Str and does all the legwork of copying it into a CArray
18:01 arnsholt Which might be what we need, TBH
18:01 FROGGS joined #perl6
18:01 sortiz arnsholt, see my https://github.com/salortiz/NativeHelpers-Blob module.
18:01 arnsholt sortiz: It's not too hard, TBH. Assuming you're comfortable with C, of course. But if you're dealing with NativeCall, you pretty much have to be (or you're gonna have a bad time)
18:02 dalek roast/require-globals: 91f9a91 | RabidGravy++ | S11-modules/ (3 files):
18:02 dalek roast/require-globals: This tests for the problem fixed in
18:02 dalek roast/require-globals:
18:02 dalek roast/require-globals: https://github.com/rakudo/rakudo/pull/714
18:02 dalek roast/require-globals:
18:02 dalek roast/require-globals: That is, if a module is required in an inner scope then the
18:02 dalek roast/require-globals: global symbols aren't available by indirect lookup.
18:02 dalek roast/require-globals: review: https://github.com/perl6/roast/commit/91f9a9171d
18:02 arnsholt Yeah, something along those lines, most likely
18:03 sortiz I'm comfortable with C, but need to study first the source to understand the details, the style, etc. And it is a large code base!
18:05 dalek rakudo/nom: 93e4cd6 | RabidGravy++ | src/core/operators.pm:
18:05 dalek rakudo/nom: Fix the behaviour of require WRT to global symbols
18:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/93e4cd697d
18:05 dalek rakudo/nom: 6159b5e | jnthn++ | src/core/operators.pm:
18:05 dalek rakudo/nom: Merge pull request #714 from jonathanstowe/nom
18:05 dalek rakudo/nom:
18:05 dalek rakudo/nom: Fix the behaviour of require WRT to global symbols
18:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6159b5e22c
18:06 jnthn RabidGravy: If you didn't already push the roast test, go ahead :)
18:06 jnthn oh, I see you did
18:06 arnsholt sortiz: Yeah, it's a big chunk of code. But you don't have to grok all of it at once. The relevant bits are src/6model/reprs/{CArray,CStruct}.{c,h} and friends
18:06 jnthn But didn't merge it
18:06 arnsholt And the C API is really good, thanks to jnthn++'s excellent design work
18:06 dalek roast: 91f9a91 | RabidGravy++ | S11-modules/ (3 files):
18:06 dalek roast: This tests for the problem fixed in
18:06 dalek roast:
18:06 dalek roast: https://github.com/rakudo/rakudo/pull/714
18:06 dalek roast:
18:06 dalek roast: That is, if a module is required in an inner scope then the
18:06 dalek roast: global symbols aren't available by indirect lookup.
18:06 dalek roast: review: https://github.com/perl6/roast/commit/91f9a9171d
18:07 RabidGravy in master now :)
18:07 jnthn RabidGravy++
18:09 sortiz arnsholt, my module above is a prof of concept about my plan to integrate Blobs to CStruct, CArray, etc.
18:11 Psyche^_ joined #perl6
18:12 sortiz *proof
18:15 beginner joined #perl6
18:19 dalek roast: b36e721 | RabidGravy++ | S11-modules/require.t:
18:19 dalek roast: It helps if I get the plan right
18:19 dalek roast: review: https://github.com/perl6/roast/commit/b36e721a23
18:20 _mg_ joined #perl6
18:23 Skarsnik arnsholt, the thing I would with NC is a c-string type that act as a string but unencoded x)
18:24 Skarsnik and example is mysql that return a char * that can be raw data (but ending with 0) or text that you know the encoding via other function
18:25 addison_ joined #perl6
18:26 sortiz Skarsnik, Then a CArray[uint8] can do the work, no?
18:27 Skarsnik I think it does not work
18:27 Skarsnik I think you don't get the size
18:27 Skarsnik well not every time
18:28 Skarsnik or because you can't have a CArray as a return type?
18:28 timotimo CArray is for when you know the size "separately"
18:28 Skarsnik but etheir way it's just a c string
18:29 ELBeavers joined #perl6
18:29 sortiz Obviously the size of unmanaged ones must be determined by other means.
18:30 Skarsnik I mean it's a case or having a real c string (data ending with 0) type will more interesting
18:31 sortiz You can search the \0, or get from another member of the struct.
18:31 arnsholt My philosophy is that NativeCall types should map as closely as possible to C semantics, with little to no magic on top
18:31 Skarsnik I think you can't have sub foo return CArray
18:32 sortiz I agree arnsholt.
18:32 arnsholt C is sufficiently weird, and the consequences of slipups sufficiently severe, that potentially leaky abstractions with correspondingly surprising side-effects are gonna be a terrible idea
18:32 timotimo at least coercing Pointer to CArray is easy/possible/doable
18:32 Skarsnik Na it's fine for most case to have char * as Str
18:32 sortiz Done timotimo.
18:32 timotimo and i could imagine a helper function that turns Pointer into Buf or Str based on "null terminated"
18:32 spider-mario joined #perl6
18:33 timotimo sortiz: sorry, done what?
18:33 arnsholt NativeCall is C in Perl 6 clothing, basically
18:33 sortiz timotimo, see my https://github.com/salortiz/NativeHelpers-Blob
18:34 timotimo ah, neat.
18:34 timotimo um, how is "sub Pointer" not a terrible idea? :)
18:35 sortiz Is a cast to Pointer.
18:35 timotimo hm
18:35 timotimo well, i guess namespacing makes that unproblematic
18:36 kid51 joined #perl6
18:36 beginner joined #perl6
18:37 addison_ joined #perl6
18:37 Juerd char* as Str is a weird abstraction.
18:38 sortiz And all can be wrapped in a class, if decided. It's a proof of concept ;)
18:38 Juerd But I guess there are no real solutions here
18:38 Skarsnik ?
18:38 timotimo right, you cannot have a Str from C data without a copy
18:38 Skarsnik it's fine for lot of case since there is an is encoded trait
18:38 Skarsnik oh that
18:38 Skarsnik yeah, it's kind of bad x)
18:38 timotimo unavoidable is what it is
18:39 timotimo though of course we could build a CString class that gives you an API to work with C strings like p6 strings while keeping the underlying buffer around
18:39 timotimo but as soon as resizing happens, you're absolutely screwed.
18:39 * skids still votes for calling zero terminated strings "Ztr"
18:39 timotimo not bad
18:39 Skarsnik xD
18:40 Juerd timotimo: I was hoping that at some point, we could have CStr, which is basically subset CStr of Str where !/\0/, mostly for security reasons (hostnames, paths, and other stuff that eventually ends up in system calls should be limited to CStr, not Str), so could you pick another name? ;)
18:40 Juerd skids: Way too cute. I like it :)
18:40 timotimo m: say "foo\0"
18:40 camelia rakudo-moar 6159b5: OUTPUT«foo␀␤»
18:40 timotimo hm.
18:40 timotimo BBIAB
18:43 Amnez777 joined #perl6
18:44 * RabidGravy re-tests all of his modules again
18:45 Amnez777 joined #perl6
18:49 musiKk joined #perl6
18:51 addison_ joined #perl6
18:53 breinbaas joined #perl6
18:58 raiph joined #perl6
18:58 firstdayonthejob joined #perl6
19:01 rntz how is ($a, $b) different from [$a, $b]?
19:01 nine rntz: List vs. Array
19:01 rntz aha, ok
19:04 rntz http://sprunge.us/DfQc?perl junctions have some funny behavior sometimes
19:07 kid511 joined #perl6
19:08 timotimo m: say all() < none(any())
19:08 camelia rakudo-moar 6159b5: OUTPUT«all()␤»
19:08 timotimo m: say none(any()) < all()
19:08 camelia rakudo-moar 6159b5: OUTPUT«none(all())␤»
19:10 timotimo FROGGS: any comment about the rsync thing? maybe we could have the thing that receives reports write a "version" file that we compare against before rsyncing?
19:12 FROGGS timotimo: would be better to rsync smaller portions maybe... in case we could partition the files
19:12 yoleaux 17:37Z <timotimo> FROGGS: what do you mean "how so"? i looked at htop when your cron job is running and it showed quite high cpu usage. maybe we can make it only fire when something actually needs changing on cpandatesters, perhaps by pushing from hack instead of pulling from www ...
19:12 rntz timotimo: hm, no, it's not that what's on the lhs vs. rhs of the < is different
19:13 _dolmen_ joined #perl6
19:13 rntz it's [$x,$y] versus swap($y,$x), which both produce [$x,$y]
19:13 rntz but when swap($y,$x) gets autothreaded, it behaves differently than [$x,$y]
19:13 FROGGS timotimo: or we push into a queue.... hmmm
19:13 timotimo oh
19:13 timotimo autothreading
19:13 timotimo FROGGS: partitioning sounds like a thing worth trying
19:14 rntz m: say (all() < none(any())).so
19:14 camelia rakudo-moar 6159b5: OUTPUT«True␤»
19:14 rntz m: say (none(any()) < all()).so
19:14 camelia rakudo-moar 6159b5: OUTPUT«False␤»
19:14 rntz ok, at least *that* behaves as expected
19:15 timotimo there's a reason we advocate "don't give people junctions if they're not expecting them"
19:15 timotimo like, don't let junctions leak out of your API
19:15 rntz ah, ok.
19:15 rntz I am a total newcomer and do not know anything about these guidelines
19:15 timotimo ah
19:15 rntz I was just looking at junctions and thought they looked interesting
19:15 tonye joined #perl6
19:15 timotimo i think we ought to point that out a bit more visibly
19:15 rntz and then I realized they're probably a law-disobeying applicative instance
19:16 rntz (in haskell-speak)
19:16 timotimo i didn't do enough haskell to understand that
19:16 ugexe nickl@li685-90:~/perl6$ perl6 -e 'require IO::Socket::SSL; say 42; say (require IO::Socket::SSL);'
19:16 ugexe 42
19:16 ugexe No such symbol 'IO::Socket::SSL'
19:17 rntz roughly, it means [$x,$y] and swap($y,$x) don't always behave the same :P
19:17 ELBeavers joined #perl6
19:17 timotimo i expect [ ] doesn't autothread
19:17 rntz it doesn't matter whther you make it autothread, it still has the behavior
19:17 timotimo you can control whether or not something autothreads by accepting "Mu" instead of "Any"
19:17 rntz my original version had "sub pair($x, $y) { [$x,$y] }"
19:18 rntz or rather, it doesn't matter whather you use [] or a subroutine
19:18 timotimo m: sub pair($x, $y) { say "beep boop"; [$x, $y] }; pair(none(all), all())
19:18 camelia rakudo-moar 6159b5: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YYClhDhOvB␤Function "all" may not be called without arguments (please use () or whitespace to denote arguments, or &all to refer to the function as a noun)␤at /tmp/YYClhDhOvB:1␤------> 3y "beep boop"; [$…»
19:18 rntz autothreading is definitely what makes it have that behavior :)
19:18 timotimo m: sub pair($x, $y) { say "beep boop"; [$x, $y] }; pair(none(all()), all())
19:18 camelia rakudo-moar 6159b5: ( no output )
19:18 timotimo m: sub pair(Mu $x, Mu $y) { say "beep boop"; [$x, $y] }; pair(none(all()), all())
19:18 camelia rakudo-moar 6159b5: OUTPUT«beep boop␤»
19:18 captain-adequate joined #perl6
19:19 timotimo ^- it's not about whether or not you use [ ] inside, it's about the call to pair()
19:19 rntz hm? I'm not sure we're talking about the same thing anymore
19:19 timotimo maybe not
19:19 rntz definitely using Mu can let you control this behavior
19:20 timotimo but you ca nsee that in the one case, pair isn't even called at all
19:20 rntz hm, that's interesting. why is that?
19:21 timotimo because if you have no values at all in your junctions, what would the function be called on?
19:21 rntz ah, I see.
19:22 lizmat hmmm.... in nqp, what's the easiest way to push a list to another list ?
19:23 timotimo splice, i'd say
19:23 itaipu joined #perl6
19:23 lizmat hmmm...  :-)
19:23 rntz here's the version with a `pair' function, which still has the funny behavior: http://sprunge.us/WXLT
19:24 rntz I think it's even funnier now that I know pair/swap are never being called!
19:24 timotimo well, they aren't called, but you still get a return value
19:24 rntz yup
19:24 timotimo you should inspect that return value so you can understand what's going on
19:25 rntz the value is being determined by the order in which autothreading iterates over things
19:25 rntz which is determined by the argument order
19:25 timotimo yeah
19:25 timotimo it does all() first adn then any(), or the other way around
19:25 timotimo i think that way
19:25 rntz http://design.perl6.org/S09.html#Junctions says all()/none() then any()/one()
19:25 timotimo right
19:25 rntz (and left-to-right within those)
19:25 timotimo which makes sense to me
19:26 timotimo also, i was the one who actually implemented that distinction
19:26 rntz oh, neat
19:26 timotimo it was rather easy :)
19:27 M-eternaleye joined #perl6
19:28 timotimo so, uh, what exactly are we discussing right now?
19:28 RabidGravy stuff
19:28 rntz I dunno, I don't think anything in particular?
19:28 rntz junctions have weird behavior, but I understand why now
19:29 uruwi joined #perl6
19:29 RabidGravy anyway all my modules pass (again)
19:29 timotimo good good
19:31 ELBeavers joined #perl6
19:31 AlexDaniel joined #perl6
19:31 avenj joined #perl6
19:35 FROGGS hmmmm, how do I re-export stuff?
19:35 timotimo you use Foo::Bar :EXPORT?
19:36 timotimo something like that?
19:36 FROGGS in Foo.pm? and then the user of Foo will see what Foo::Bar exports?
19:36 RabidGravy I was actually looking at the tests for that earlier
19:36 timotimo i don't really know, i've never had to do that :|
19:36 timotimo worst case, you could always build an EXPORT sub
19:37 RabidGravy use OuterModule :ALL;
19:37 RabidGravy apparently
19:38 FROGGS hmm, but that will only import stuff into Foo
19:38 FROGGS that wont export anything from Foo
19:39 shicheng joined #perl6
19:40 kjs_ joined #perl6
19:40 RabidGravy Foo has "use Foo::Bar :ALL"
19:40 FROGGS yes
19:40 FROGGS does not work here
19:40 RabidGravy user code has "use Foo :ALL"
19:41 ELBeavers joined #perl6
19:41 sortiz The :EXPORT tag work well with NativeCall.
19:41 FROGGS to import certain things yet, but not to re-export
19:41 FROGGS yes*
19:42 timotimo moritz: do we want to enable the "apache" plugin for collectd on www? https://collectd.org/wiki/index.php/Apache
19:42 RabidGravy or, alternatively for the total over-kill
19:43 RabidGravy then in Foo mainline "sub EXPORT { %(Foo::Bar::EXPORT::DEFAULT::) }"
19:43 FROGGS I guess I lack a unit module declaration
19:43 RabidGravy or some variant thereof
19:44 timotimo i think the only thing important is that the sub EXPORT is in the unit scope
19:44 timotimo if you have a unit module, you are allowed to put it into the module. otherwise it has to be outside the module
19:45 FROGGS I have a class with a block, and the subs I want to (re-)export are outside of it
19:46 virtualsue joined #perl6
19:47 timotimo moritz: something must have gone wrong on www; etckeeper got uninstalled somehow
19:47 RabidGravy I've got something that does "sub EXPORT { return %( '&trait_mod:<is>' => &trait_mod:<is>) }" which is an alternative for named things
19:47 timotimo moritz: shall i just re-install it?
19:48 moritz timotimo: +1 to apache collectd plogin
19:49 moritz timotimo: re etckeeper, I think www just has a regular git repo in /etc/
19:49 timotimo it doesn't; i tried to git commit something and there was a git hook that couldn't run because it tried to run etckeeper
19:50 timotimo if we want to run www without etckeeper, i can deactivate anything etckeeper related in the hooks to turn the git repo into a true regular git repo
19:50 timotimo on the other hand, the apt log shows someone installed and then purged etckeeper. so it's probably meant to be a regular git repository in there
19:54 llfourn RabidGravy++ thanks for fixing my mistake.
19:54 llfourn and writing nice tests :)
19:55 llfourn nine: thanks for poking me about the discussion
19:56 llfourn FROGGS: there is meant to be use Foo :EXPORT; to re-export but it's NYI.
19:56 llfourn FROGGS: take a look at https://github.com/LLFourn/​p6-CompUnit-Util#re-export
19:56 RabidGravy llfourn, it took me a while to locate the actual thing from what was manifesting
19:57 llfourn RabidGravy: I'm sorry about that :(. I'm justing looking into it now.
19:58 RabidGravy nah, not really your fault, you just unearthed it :)
19:58 llfourn RabidGravy: it looks like panda is using a require-at-a-distance feature that I unkowningly got rid of
19:58 pederindi joined #perl6
19:59 llfourn I thought that each compunit was meant to have its own view of GLOBAL:: which is what I thought UNIT::GLOBALish was
19:59 RabidGravy it should all be fixed now anyway, but see ugexe's comment on https://github.com/rakudo/rakudo​/pull/714#issuecomment-185370730
20:00 lizmat seems t/spec/S11-modules/require.t is failing for me with "Undeclared routine: ok"
20:00 RabidGravy which is somewhat of a mystery, I can only guess it is now skipping the symbol lookup
20:00 RabidGravy er
20:00 llfourn oh that is my mistake I know what's wrong there
20:00 llfourn I think
20:01 dalek roast: ef4425d | RabidGravy++ | S11-modules/require.t:
20:01 dalek roast: missed import of ok
20:01 dalek roast: review: https://github.com/perl6/roast/commit/ef4425d047
20:01 RabidGravy yep, fixed now :)
20:01 lizmat RabidGravy++
20:01 RabidGravy (I tested what I was testing in another file for convenience ;)
20:03 FROGGS thanks guys
20:08 sortiz RabidGravy, BTW, your fix allows me to simplify DBIish removing the introduced workaround. I'm testing it.
20:08 timotimo i has a cat on my lap <3
20:09 timotimo system administration will be delayed by a couple minutes or maybe an hour
20:09 * lizmat wonders who said that
20:09 rindolf joined #perl6
20:10 timotimo a line or two of chat is acceptable, but system administration stuff will not be accepted by the cat :)
20:10 Skarsnik huhu
20:10 Skarsnik cat is the root of root
20:12 llfourn confirmed the require IO::Socket::SSL thing
20:13 jvcakg joined #perl6
20:14 virtualsue joined #perl6
20:15 llfourn require IO::Socket::SSL; say ::("IO::Socket::SSL") works so the solution is to probably just use GLOBAL:: to figure out what to return from require
20:15 RabidGravy almost certainly
20:15 llfourn though that's what INDIRECT_NAME_LOOKUP should be doing
20:15 timotimo http://t.h8.lv/andshare/IMG​_20160217_211308~2.jpg.jpg
20:16 llfourn awww. I can see your screen in the neko's eyes.
20:16 timotimo it's the phone screen, i'd expect
20:23 llfourn I'll make a PR to revert back to the old way it used to find the return value from require while I figure this out
20:24 llfourn returning GLOBAL::{$pkg} confirmed not working
20:25 RabidGravy as far as I can tell that behaviour isn't tested
20:25 timotimo moritz: etckeeper's pre-commit hook makes sure to store metadata properly when it comes to owners and other things; maybe we do actually want etckeeper?
20:28 RabidGravy llfourn, is it actually hitting REQUIRE_IMPORT the second time? If the module is already loaded and no exports it doesn't need to
20:28 llfourn RabidGravy: it's meant to yeah
20:28 llfourn I mean I haven't changed that I don't think
20:34 yqt joined #perl6
20:35 dfcarpenterak joined #perl6
20:35 sortiz Then I'll wait for this matter settled before another round with DBDish
20:36 ely-se joined #perl6
20:41 MadcapJake AlexDaniel, I used your splits gist as an example for Test::Lab https://github.com/MadcapJake/Te​st-Lab/blob/master/eg/splits.pl6
20:42 AlexDaniel MadcapJake: great
20:42 Zero_Dogg joined #perl6
20:42 Zero_Dogg joined #perl6
20:42 llfourn ok I got something passing tests and say (require IO::Socket::SSL) works
20:42 MadcapJake c turned out to be the fastest
20:43 RabidGravy llfourn, the actual case is something weird about IO::Socket::SSL
20:43 RabidGravy it doesn't do it with other modules
20:44 RabidGravy require IO::Socket::SSL; say 42; say (try require IO::Socket::SSL);
20:44 RabidGravy 42
20:44 RabidGravy Nil
20:44 llfourn RabidGravy: it might be unit IO::Socket::SSL + the fact it has :: in the name
20:44 llfourn but that's a wild guess
20:44 RabidGravy perl6 -e 'require HTTP::UserAgent; say 42; say (try require HTTP::UserAgent);'
20:44 RabidGravy 42
20:44 RabidGravy (UserAgent)
20:44 MadcapJake i could probably take the assignment logic out and place the entire lab inside a sub that returns the list contents.
20:45 Ven joined #perl6
20:45 RabidGravy well more than one ::
20:45 llfourn RabidGravy: but actually I think you're right
20:45 AlexDaniel MadcapJake: interesting!
20:45 llfourn it's nothing to do with thtat
20:46 dfcarpenterak joined #perl6
20:47 RabidGravy nope another module with two :: in the name works fine
20:47 musiKk joined #perl6
20:47 sortiz hm..
20:47 RabidGravy so IO::Socket::SSL is doing something odd
20:48 sortiz RabidGravy, Which other module?
20:49 AlexDaniel MadcapJake: I'm surprised to see a significant difference between b and d. By the way, how many times does it run each of them?
20:50 sortiz Asking 'cus in the IO::Socket:SSL case IO::Socket isn't a stub
20:50 RabidGravy Audio::Taglib::Simple and Test::Util::ServerPort I've tried
20:50 MadcapJake I only did one run, but it's trivial to wrap and then aggregate the results. i'll give it a go now
20:50 llfourn https://github.com/rakudo/rakudo/pull/715 # fix is here
20:51 MadcapJake (the module is designed to be used in production, btw, so it's intended to gather true load performance and data anomalies)
20:52 lizmat llfourn: you're sure that's spectest clean ?
20:52 llfourn lizmat: it's require.t clean
20:53 lizmat llfourn: ok, I'll try to spectest in a mo then
20:53 llfourn lizmat: ok me too :)
20:53 ugexe m: class Bar { has Str:D $.id = self.id; method id { "1" }; }; class Foo is Bar { has Str:D $.id is required; }; Foo.new.say
20:53 camelia rakudo-moar 6159b5: OUTPUT«Type check failed in assignment to $!id; expected Str:D but got Str:D␤  in block <unit> at /tmp/S157w_QnqF line 1␤␤»
20:54 RabidGravy llfourn, that returns Nil always?
20:55 llfourn RabidGravy: you're refering to REQUIRE_IMPORT?
20:55 llfourn RabidGravy: it used to not to that's why we got those annoying sink errors
20:56 RabidGravy oh I see, it returns the lookup from require
20:56 sortiz llfourn, with $longname defined $target_package can be $target_package := $longname.name_past, no?
20:56 llfourn well that's how I just had it
20:56 llfourn sortiz: yep good catch
20:56 llfourn it's a temp fix so $longname is going away again hopefully
20:57 llfourn I just put it back so I could restore previous behaviour
20:58 sortiz Understood.
20:58 RabidGravy confused again
20:59 llfourn RabidGravy: I *wanted* REQUIRE_IMPORT to return the value for require and that's what my previous patch did. But I couldn't get IO::Socket::SSL to return from it so I restored the original Actions.nqp lookup thing and made it return Nil.
21:00 RabidGravy right, that's what I thought
21:01 llfourn once these spectests pass I'll try and figure out why the declaration unit class IO::Socket::SSL doesn't show up in the the IO::Socket::SSL's GLOBALish.
21:01 _mg_ joined #perl6
21:02 RabidGravy all good
21:02 sufrostico joined #perl6
21:03 llfourn lizmat: it's spectest clean
21:03 cdg joined #perl6
21:03 dalek rakudo/nom: 6e47e54 | LLFourn++ | src/ (2 files):
21:03 dalek rakudo/nom: Temp fix for say (require IO::Socket::SSL)
21:03 dalek rakudo/nom:
21:03 dalek rakudo/nom: restoring how require's return value used to be calculated before
21:03 dalek rakudo/nom: f565f80a4 while investigating.
21:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/6e47e545e1
21:04 dalek rakudo/nom: bb9ca8c | lizmat++ | src/ (2 files):
21:04 dalek rakudo/nom: Merge pull request #715 from LLFourn/nom
21:04 dalek rakudo/nom:
21:04 dalek rakudo/nom: Temp fix for say (require IO::Socket::SSL)
21:04 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/bb9ca8c6bd
21:04 geraud joined #perl6
21:08 * RabidGravy re-tests the modules with that
21:09 RabidGravy I'm doing a fair bit of on-demand loading of modules in a couple of thongs
21:09 RabidGravy er things
21:09 MadcapJake AlexDaniel, here's a 100 sample result https://github.com/MadcapJake/Te​st-Lab/blob/master/eg/splits.pl6 (i think the sort is a bit off for some reason...)
21:11 llfourn ./perl6-m -Ilib -e 'use CompUnit::Util :load; say load("IO::Socket::SSL").handle​.globalish-package.WHO.keys;'
21:11 llfourn (NQPMatch NQPCursorRole OpenSSL NativeCall HLL QRegex QAST NQPCursor NQPRegexMethod Find NQPRegex)
21:12 llfourn so yeah it never gets into GLOBALish
21:12 llfourn something to do with native call?
21:13 Skarsnik well ssl use NC probablty
21:13 RabidGravy more likely that IO::Socket is already in the setting
21:13 llfourn RabidGravy: that's it!!!
21:13 llfourn now the question...is that a bug?
21:14 llfourn I think it is. Everything the module intends to merge should be in globalish right?
21:14 RabidGravy I'd say that would be the expectation
21:14 llfourn but how does use IO::Socket::SSL even work if it's not in GLOBALish -- use uses GLOBALish.
21:15 llfourn perl6 -e 'use IO::Socket::SSL; say IO::Socket::SSL' works so that's odd
21:17 RabidGravy is it because it looks up the antecedent IO::Socket and it adds it to that rather than a local stash?
21:17 sortiz I think that.
21:17 dalek rakudo/nom: ec96785 | lizmat++ | src/core/Buf.pm:
21:17 dalek rakudo/nom: Streamline Buf.push|append
21:17 dalek rakudo/nom:
21:17 dalek rakudo/nom: - fix error message for lazy lists (mentioned 'push' instead of 'append')
21:17 dalek rakudo/nom: - make .push|append(4,5) about 1.5x faster
21:17 dalek rakudo/nom: - make .push|append(@a) about 7x faster
21:17 dalek rakudo/nom: - make .append(4) about 90x faster
21:17 dalek rakudo/nom:
21:17 dalek rakudo/nom: This should also make pack quite a bit faster
21:17 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ec9678538a
21:18 RabidGravy lizmat++, that should help something I was playing with
21:18 llfourn RabidGravy: but wouldn't IO::Socket::SSL add itself to IO::Socket:: at its own compile time so how did it stick around...
21:19 llfourn if it's precomped that shouldn't work I would have thought but it seems to
21:20 lizmat m: dd Buf.new.append(2)
21:20 camelia rakudo-moar bb9ca8: OUTPUT«Buf.new(2)␤»
21:21 lizmat hmmm... maybe i broke that
21:22 firstdayonthejob joined #perl6
21:23 Skarsnik if you broke something blame spect test for allowing you to break it!
21:24 jnthn m: my @a; dd @a.append(2)
21:24 camelia rakudo-moar bb9ca8: OUTPUT«Array @a = [2]␤»
21:24 jnthn append/push return the thing pushed onto
21:25 lizmat spectested clean though  :-(
21:25 lizmat fixing now
21:25 jnthn Yeah
21:25 jnthn And let's add tests
21:25 lizmat m: dd Buf.new.push(1)
21:25 camelia rakudo-moar bb9ca8: OUTPUT«1␤»
21:25 jnthn We should really look a bit further into coverage analysis...
21:26 lizmat jnthn: that's also wrong, eh ?
21:26 jnthn Yeah
21:26 jnthn Probably should check native arrays too
21:26 lizmat ok, that will slow down stuff a bit  :-(
21:26 lizmat yeah, next on my list
21:26 jnthn Don't worry
21:27 jnthn I'd hope these will be good inlining candidates
21:27 lizmat yeah, they're small
21:27 jnthn And then it'll fall to dead code elimination
21:27 jnthn Which needs moving *after* inlining
21:27 jnthn Somebody should do some work on spesh... :-)
21:29 sortiz .oO( I don't even known what "spesh" is )
21:31 llfourn sortiz: My understanding is that it's a thing that inlines stuff at runtime in MVM. jnthn++'s creation.
21:31 RabidGravy It's the magic thing the optimisation fairies do
21:31 llfourn though my understanding is often not reality as today has shown :D
21:31 sortiz Lol
21:32 jnthn It's from the word "specialization", but I didn't want to write that all the time, and if I called it "spec" it'd be confusing. :)
21:33 jnthn Largely because the big picture of MoarVM's optimization approach is that it looks for the static behaviors in your dynamic code, and generates specialized code that ploughs through those static things with a load less checking.
21:33 sortiz For inlineing(sp?) something we need to know if the methods called are pure and the args constants, I suppose, no?
21:34 atweiden joined #perl6
21:34 espadrine joined #perl6
21:34 TEttinger joined #perl6
21:34 jnthn sortiz: No, we can do quite a lot better than that.
21:34 jnthn sortiz: Though for some of the "better than that" cases we can only do them because we can uninline too.
21:35 jnthn (That is, if we learn that one of the things the inlining was based on just changed underneath us, we can rewrite the call stack to look like it would have done if we didn't inline, and continue on safely)
21:36 jnthn That's one case of the more general deoptimization principle.
21:36 dalek rakudo/nom: 0054aa7 | lizmat++ | src/core/Buf.pm:
21:36 dalek rakudo/nom: Make sure we return self for Buf.push|append
21:36 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/0054aa7a1b
21:37 jnthn Which means we can enter into specialized code, and cope with discovering half way through that its assumptions got invalidated and drop back to the slow path again.
21:37 sno joined #perl6
21:37 kjs_ joined #perl6
21:37 llfourn jnthn: interesting. What's a common de-optimization scenario?
21:37 sortiz Ok, I need to study that area in detail, some literature that you recommends?
21:38 jnthn llfourn: Mixins (does/but) always result in it at the moment, because they can cause objects to change type "at a distance"
21:40 llfourn cool thanks.
21:41 jnthn llfourn: Another example would be that we have code doing divisions on Rats and we see the result is nearly always Rat. We might then generate code that assumes Rat, and speculatively inlines stuff based on that. But if there's a big value and we fall back to Num, then we'd trigger deopt there too.
21:41 jnthn Though those two differ. In MoarVM we call the first global deopt 'cus it affects potentially all optimized callframes on the stack, whereas the latter is local deopt, because we know it only affects the current callframe.
21:42 llfourn hmm that is very clever. once it de-opts, does it try to optimize again from there?
21:42 llfourn or just backs away for the rest of execution
21:44 lizmat jnthn: I'm surprised by the difference in behaviour between native arrays and non-native arrays:
21:44 lizmat m: my @a; @a.append([1,2,3],[4,5,6]); dd @a
21:44 camelia rakudo-moar ec9678: OUTPUT«Array @a = [[1, 2, 3], [4, 5, 6]]␤»
21:44 lizmat m: my int @a; @a.append([1,2,3],[4,5,6]); dd @a
21:44 camelia rakudo-moar ec9678: OUTPUT«array[int].new(1, 2, 3, 4, 5, 6)␤»
21:45 lizmat jnthn: aka, the native case is flattening
21:46 jnthn sortiz: Quite a few papers out there, of note those on JIT compilation by Craig Chambers et al are quite interesting.
21:47 AlexDaniel lizmat: O_O
21:47 skids Well, it would be kind of hard for a native array to store the non-flattened result :-)
21:47 jnthn lizmat: I suspect "didn't get tweaked in the GLR"...
21:48 lizmat ok, lemme see if I get spectest fails if I remove the flattening
21:48 jnthn sortiz: The spesh codebase in Moar isn't too terribly inaccessible
21:48 sortiz jnthn, Tnks, annotated.
21:48 jnthn sortiz: graph.h is the place to start reading
21:48 AlexDaniel skids: it does not mean that it should silently flatten it
21:49 skids Oh I know.
21:49 jnthn llfourn: For the rest of the callframe it tends to back away
21:50 jnthn llfourn: It'll try the specialized code again on future calls though
21:50 * lizmat plugs the P6W again, just in case: https://p6weekly.wordpress.com/20​16/02/15/2016-7-more-versioning/
21:50 llfourn jnthn: ah nice. I will consult sauce for future investigations. Thanks.
21:51 sortiz The native case is using VMArray.
21:52 lizmat seems github is down
21:52 * llfourn sees github working
21:53 * sortiz too
21:53 pmurias LLVM now has a JVM backend: https://github.com/graalvm/sulong ;)
21:53 lizmat https://status.github.com has some interesting graphs
21:54 _dolmen_ joined #perl6
21:56 geekosaur again?
21:59 dfcarpenterak joined #perl6
22:00 lizmat "We're working to mitigate a DDoS attack affecting github.com performance."
22:01 pmurias_ joined #perl6
22:01 cognominal joined #perl6
22:04 hoelzro too many people using the new issue templates =P
22:05 lizmat m: my int @a = ^Inf   # LTA error message
22:05 camelia rakudo-moar ec9678: OUTPUT«This type cannot unbox to a native integer␤  in block <unit> at /tmp/OuG0Nuu8m3 line 1␤␤»
22:05 hoelzro is it because it's too large for a native int?
22:06 lizmat well, array.STORE has special handling for Ranges, but does not check on the bounds being ints
22:06 sortiz m: my int @n; say @n.REPR; my @a; say @a.REPR
22:06 camelia rakudo-moar ec9678: OUTPUT«VMArray␤P6opaque␤»
22:07 sortiz lizmat, VMArrays slots are flat.
22:07 lizmat yes, I know  :)
22:07 lizmat it's about the error message
22:07 sno joined #perl6
22:08 RabidGravy all modules pass (again again)
22:08 lizmat RabidGravy++  # checking!
22:08 lizmat will look at native array issues tomorrow
22:08 sortiz No, I thinking about how to remove the flattening...
22:10 prammer joined #perl6
22:12 firstdayonthejob joined #perl6
22:13 sortiz .oO ( A p6opaque of VMArrays? Upgraded as soon as it has inner array... )
22:16 shicheng joined #perl6
22:23 sortiz m: my @a = Array[array[int]].new(array[int].new(1, 2, 3), array[int].new(1, 2, 3)); say @a; dd @a # Seems flat but isn't
22:23 camelia rakudo-moar 0054aa: OUTPUT«[1 2 3 1 2 3]␤Array @a = [array[int].new(1, 2, 3), array[int].new(1, 2, 3)]␤»
22:24 * sortiz needs some coffe
22:25 raiph joined #perl6
22:28 Ven joined #perl6
22:29 corbyhaas_ left #perl6
22:29 lizmat jnthn: what is our standpoint on adding another Exception class to 6.c ?
22:33 Hotkeys in regex does « and » function the same as << and >>?
22:33 Hotkeys as word boundaries
22:33 lizmat jnthn: I'm thinking of adding a X::CannotCoerceToNativeInt exception class, to change "This type cannot unbox to a native integer" to a more meaningful error
22:35 * llfourn guesses that that's fine with tests for X::CannotCoerceToNativeInt going into 6.c.1 spec
22:35 hoelzro lizmat++ # better errors
22:35 atweiden m: sub mkpositional(Positional $container is rw, :$value) returns Any { $container = $value; $container; }; my Positional $a; my @b = mkpositional($a, :value('zero', 'one', 'two')); @b.perl;
22:35 camelia rakudo-moar 0054aa: ( no output )
22:35 atweiden m: sub mkpositional(Positional $container is rw, :$value) returns Any { $container = $value; $container; }; my Positional $a; my @b = mkpositional($a, :value('zero', 'one', 'two')); say @b.perl;
22:35 camelia rakudo-moar 0054aa: OUTPUT«[("zero", "one", "two"),]␤»
22:35 atweiden anyone know why @b isn't qw<zero one two>?
22:36 llfourn atweiden: it looks like it is?
22:36 lizmat atweiden: named parameters are always containerised ?
22:36 llfourn oh you mean just a list
22:37 llfourn atweiden: return |$container
22:37 moritz m: sub f(:\a) { }
22:37 camelia rakudo-moar 0054aa: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Zfjowh3kRQ␤Missing block␤at /tmp/Zfjowh3kRQ:1␤------> 3sub f(:7⏏5\a) { }␤»
22:37 llfourn or make it @container
22:43 dalek rakudo/nom: e3b1dd3 | lizmat++ | src/core/Buf.pm:
22:43 dalek rakudo/nom: Oops, forgot to remove one --> Nil
22:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e3b1dd391e
22:44 * lizmat is too tired
22:44 lizmat good night, #perl6!
22:44 sortiz 'night lizmat
22:44 llfourn o/
22:53 atweiden llfourn: thanks for the |$container tip
22:55 jnthn lizmat: How is that "adding it to 6.c"?
22:55 jnthn Does changing it regress a spectest that passed in 6.c?
22:55 jnthn Ah, too late, you went for rest :)
22:56 llfourn atweiden: Nw. Yes, if you return a list in a $ variable and assign the result to an array you will get an array with one element containing that value (the list).
22:56 jnthn Maybe the question is "is it OK to put the exception type into CORE.setting, not CORE.6.d.setting"...
22:57 jnthn I think pragmatically "yes" because it needs to be visible by methods, and those evolve in-place.
22:57 jnthn General exception policy is that untyped is allowed to go to typed (I tried to prepare for that by removing tests against X::AdHoc from roast)
22:58 jnthn Maybe we should call CORE.setting "the base setting" or "the unversioned setting" or so, because every time I hear it referred to as 6.c it confuses me. ;-)
22:58 Hotkeys can I capture the number of times a general quantifier is done in a regex?
22:58 Hotkeys like  / a ** 2..* /
22:59 llfourn atweiden: putting a | in front turns the value into a Slip, which will faltten the $ variable out so the expression will return many values (the contents of the list)
22:59 Hotkeys is there an easy way rather
22:59 jnthn Hotkeys: Do you have a strong reason not to capture and then just numify the list of captures?
22:59 Hotkeys oh
22:59 Hotkeys I suppose I could
22:59 jnthn m: 'aaaa' ~~ / (a) ** 2..* /; say +$0
22:59 camelia rakudo-moar e3b1dd: OUTPUT«4␤»
22:59 * Hotkeys slap forehead
23:00 jnthn Well, it's kinda a reasonable question if you were in a tight performance/memory situation and didn't want to capture, but... :-)
23:00 jnthn (As in, it's reasonable to be looking for soemthing *other* than the capture approach in that case...)
23:01 Hotkeys is there another good option in that case?
23:02 jnthn Sorta
23:04 jnthn m: 'aaaa' ~~ / :my $i = 0; [ a { $i++ } ] ** 2..* { make $i } /; say $/.made # one variant on the theme
23:04 camelia rakudo-moar e3b1dd: OUTPUT«4␤»
23:05 Hotkeys neat
23:05 Hotkeys I never think about mixing code in regexes
23:05 jnthn Yeah, it's powerful *but* make sure you consider backtracking.
23:08 wamba joined #perl6
23:14 jnthn REST time; PUT /bed :-)
23:14 sortiz 'night jnthn
23:14 llfourn 'night
23:15 skids joined #perl6
23:28 Juerd joined #perl6
23:33 sufrostico joined #perl6
23:36 llfourn RabidGravy, sortiz you're both right. Interestingly when you load IO::Socket::SSL (even before globalish has been merged) you get SSL under CORE::IO::Socket::SSL.
23:40 sortiz llfourn, Good to know. In fact that is more efficient IMO
23:40 jack_rabbit joined #perl6
23:41 llfourn sortiz: though it means you can't introspect the compunit for what it is merging into globalish.
23:41 llfourn it just "happens" when you compunit is loaded.
23:42 RabidGravy I'm sure it's not going to be the only thing that hooks under an existing package like that
23:43 sortiz llfourn, But can be tested, if the parent are not a stub, just search for in it.
23:44 llfourn RabidGravy, sortiz elaborate on both those statementsif you can :)
23:45 RabidGravy well, I made IO::Path::Mode which the same happens to, the is an IO::Path::More too, and I can foresee IO::Socket::* stuff
23:47 llfourn RabidGravy: oh right yep my CompUnit::Util does the same thing now that you mention it.
23:47 * skids has X::Protocol
23:49 llfourn I'm wondering if I can dream up a patch that lets us have our cake and eat it too. Have the stuff you load go into the Core::Whatver::Thing package but also be in globalish for introspection purposes.
23:51 RabidGravy presumably there is a point in the process where it checks to see if there is an antecedent stash to use and if so just sticks it there otherwise icreate the packages
23:53 RabidGravy so if what we think is happening then it probably happens for any Foo::Bar where a Foo exists
23:54 RabidGravy not just for core
23:55 llfourn yep exactly I have found that bit (I think). It does a normal $*W.find_symbol() and attaches it.
23:56 llfourn it calls $*W.install_package where I think is where that happens.
23:56 llfourn food &
23:56 RabidGravy sleep
23:56 RabidGravy toodles
23:56 llfourn night
23:57 sortiz night llfourn
23:57 llfourn I'm in australia it's 11am for me :D
23:57 llfourn was saying night to rabid.
23:57 llfourn but good night sortiz if you are going to bed :)
23:59 sortiz No yet, but thanks, I'm in méxico

| Channels | #perl6 index | Today | | Search | Google Search | Plain-Text | summary

Perl 6 | Reference Documentation | Rakudo