Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2015-09-28

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:06 kid51 joined #perl6
00:18 laouji joined #perl6
00:35 zacts joined #perl6
00:40 laouji joined #perl6
00:43 laouji joined #perl6
00:51 araujo_ joined #perl6
00:52 makapa joined #perl6
00:54 araujo_ joined #perl6
01:03 helloworldlang joined #perl6
01:07 mr_ron joined #perl6
01:11 colomon joined #perl6
01:17 aborazmeh joined #perl6
01:17 aborazmeh joined #perl6
01:19 Akagi201 joined #perl6
01:22 makapa joined #perl6
01:26 colomon TimToady: Happy Birthday!
01:33 clkao_ joined #perl6
01:34 Ulti_ joined #perl6
01:34 smash_ joined #perl6
01:34 Woodi_ joined #perl6
01:34 zostay_ joined #perl6
01:34 [Coke]_ joined #perl6
01:35 TimToady_ joined #perl6
01:35 maettu1 joined #perl6
01:35 skids1 joined #perl6
01:36 jordman_ joined #perl6
01:36 mathw joined #perl6
01:36 avalenn_ joined #perl6
01:36 KotH_ joined #perl6
01:37 telex joined #perl6
01:37 adhoc joined #perl6
01:38 SmokeMachine_ joined #perl6
01:38 mephinet- joined #perl6
01:41 xdbr joined #perl6
01:41 gensym joined #perl6
01:45 xxx joined #perl6
01:45 dg joined #perl6
01:45 tokuhiro_ joined #perl6
01:45 kaare__ joined #perl6
01:47 mprelude joined #perl6
01:48 mtj_ joined #perl6
01:54 TimToady joined #perl6
02:09 kid51_ joined #perl6
02:09 * timotimo already caught a glimpse of a partially darkened and partially reddened moon
02:15 rurban joined #perl6
02:16 * Zoffix can't due to clouds so they are watching Slooh telescope online:
02:16 Zoffix https://www.youtube.com/watch?v=wgv0Z8Q2OIQ
02:34 timotimo Live Streaming is not available in your country due to rights issues.
02:38 noganex_ joined #perl6
02:45 dalek perl6-roast-data: d5cc33c | coke++ | / (9 files):
02:45 dalek perl6-roast-data: today (automated commit)
02:45 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/d5cc33c931
02:45 dalek rakudo-star-daily: e1a9dfe | coke++ | log/ (9 files):
02:45 dalek rakudo-star-daily: today (automated commit)
02:45 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/e1a9dfef53
02:58 colomon joined #perl6
03:00 [Coke]_ RT: 1,028; testneeded: 9; GLR: 4; WEIRD: 12; LTA: 81; xmas: 98
03:03 aborazmeh joined #perl6
03:03 aborazmeh joined #perl6
03:07 zacts joined #perl6
03:26 thou joined #perl6
04:00 BenGoldberg joined #perl6
04:39 vendethiel joined #perl6
05:04 quester joined #perl6
05:04 aborazmeh joined #perl6
05:04 aborazmeh joined #perl6
05:18 ssflying joined #perl6
05:21 makapa joined #perl6
05:23 wak joined #perl6
05:25 spider-mario joined #perl6
05:42 zakharyas joined #perl6
05:58 _28_ria joined #perl6
06:11 diana_olhovik_ joined #perl6
06:16 espadrine joined #perl6
06:16 FROGGS joined #perl6
06:21 Ven joined #perl6
06:24 [Sno] joined #perl6
06:46 abraxxa joined #perl6
06:47 araujo joined #perl6
06:47 domidumont joined #perl6
06:48 domidumont joined #perl6
06:58 domidumont joined #perl6
07:03 [Tux] test             50000    35.708    35.606
07:03 [Tux] test-t           50000    36.133    36.030
07:05 [Tux] http://tux.nl/Talks/CSV6/test-t.jpg
07:07 jdv79 what's the "good enough" again?
07:12 z8 joined #perl6
07:17 [Tux] jdv79, that was a question directed to me?
07:22 FROGGS I'd guess so
07:23 FROGGS my gut feeling is that 25s would be "quite awesome" for rakudo, but in the end we want to get down to at least 10s to be competitive at all
07:24 * [Tux] agrees
07:24 [Tux] jdv79, note that the perl5/XS time for the same code is 0.016 seconds
07:30 FROGGS jdv79: if you feel the urge, you could profile it to get a feeling for the slow parts...
07:31 laouji joined #perl6
07:33 rindolf joined #perl6
07:42 zakharyas joined #perl6
07:48 bjz joined #perl6
07:53 araujo_ joined #perl6
07:59 CIAvash joined #perl6
08:12 espadrine joined #perl6
08:17 darutoko joined #perl6
08:24 dakkar joined #perl6
08:29 araujo joined #perl6
08:41 TimToady joined #perl6
09:01 laouji joined #perl6
09:05 xfix joined #perl6
09:05 xfix joined #perl6
09:05 masak [Tux]++ # relentless benchmarking
09:06 RabidGravy joined #perl6
09:07 Ven joined #perl6
09:10 cognominal joined #perl6
09:10 moritz any objections to rejecting https://rt.perl.org/Ticket/Display.html?id=126208 ?
09:14 CIAvash joined #perl6
09:16 jnthn moritz: Seems it does indeed close the channel too early (before waiting on the promises)
09:16 jnthn an await @promises before the .close for ... should help, I think
09:21 moritz ok, ticket rejected.
09:26 emilbarton joined #perl6
09:29 emilbarton hello, I've worked hard to isolate the error I met yesterday. And I come with an 8 lines script that will allow to easily understand my problem with regex match (either : Cannot assign to a readonly var, or Cannot modify an immutable cursor). I've dropped a gist : https://gist.github.com/emilbarton/7d6671529b0fd6d90423 . Thank you very much for your explanations.
09:29 * jnthn sees if he can work out how the weird .new regressions happened
09:29 jnthn m: Slang.new # this one
09:29 camelia rakudo-moar 1ed1ea: ( no output )
09:29 jnthn Oh, what, it works now?
09:29 jnthn m: say StrDistance
09:29 camelia rakudo-moar 1ed1ea: OUTPUT«->  { #`(Block|73197096) ... }␤»
09:29 Ven joined #perl6
09:29 jnthn Ah, that doesn't though
09:30 moritz emilbarton: ah, it seems to be !~~ that's the problem
09:30 moritz m: say 'abc' !~~ /(a)/
09:30 camelia rakudo-moar 1ed1ea: OUTPUT«False␤»
09:30 emilbarton moritz no!
09:30 ShimmerFairy jnthn: I noticed that nqp::tc() titlecases everything in the string, while Str.tc does just the first character. Come to think of it, nqp's behavior is more consistent, but surprising where I was expecting the current P6 behavior :)
09:31 emilbarton I get the same with ~~ but I wanted KO
09:31 ShimmerFairy I keep forgetting nqp: kills camelia    e_e
09:32 camelia joined #perl6
09:35 rurban joined #perl6
09:37 |Tux| did anyone look at the panda list fail?
09:37 |Tux| panda list --installed --verbose
09:37 jnthn ShimmerFairy: I thought it was tclc?
09:37 jnthn (in Perl 6)
09:38 ShimmerFairy m: say "foobar".tc
09:38 camelia rakudo-moar 1ed1ea: OUTPUT«Foobar␤»
09:38 ShimmerFairy jnthn: no, but admittedly it makes far more sense to be consistent with .uc and .lc
09:38 jnthn m: say "Foobar".tclc
09:38 camelia rakudo-moar 1ed1ea: OUTPUT«Foobar␤»
09:38 jnthn huh, both exist
09:38 ShimmerFairy m: say "fooBar".tc; say "fooBar".tclc
09:38 camelia rakudo-moar 1ed1ea: OUTPUT«FooBar␤Foobar␤»
09:38 ShimmerFairy jnthn: the difference is that .tc doesn't lowercase the rest.
09:39 [Sno] joined #perl6
09:39 ShimmerFairy admittedly, I think .tc titlecasing every character would be more sensible.
09:39 zakharyas joined #perl6
09:39 dalek ecosystem/cookie-baker: 798d3ef | (Tokuhiro Matsuno)++ | META.list:
09:39 dalek ecosystem/cookie-baker: Added Cookie::Baker
09:39 dalek ecosystem/cookie-baker: review: https://github.com/perl6/ecosystem/commit/798d3efceb
09:40 telex joined #perl6
09:41 larion joined #perl6
09:48 Ven joined #perl6
09:50 jnthn It's really taking some work to even track down what introduced the weird symbol mis-compile regression
09:51 makapa joined #perl6
09:56 FROGGS jnthn: the Pandabug?
09:56 nebuchadnezzar joined #perl6
09:57 rindolf joined #perl6
09:59 jnthn FROGGS: No idea
09:59 jnthn m: say StrDistance
09:59 camelia rakudo-moar 1ed1ea: OUTPUT«->  { #`(Block|71853608) ... }␤»
09:59 jnthn star: say StrDistance
09:59 camelia star-m 2015.03: OUTPUT«(StrDistance)␤»
09:59 FROGGS ohh
09:59 jnthn That one is an example of it
09:59 FROGGS what the
09:59 jnthn Yes, it's utterly weird
10:00 nebuchad` joined #perl6
10:00 z8 joined #perl6
10:00 jnthn It seems that occasionally a WVal ends up pointing to the totally wrong thing o.O
10:01 jsimonet joined #perl6
10:02 jdv79 sounds like fun
10:03 jdv79 or at least not boring
10:03 lizmat good *, #perl6!
10:03 grondilu joined #perl6
10:03 jdv79 lizmat: mornin
10:03 mrf joined #perl6
10:03 grondilu joined #perl6
10:03 lizmat jdv79 o/
10:03 jdv79 oh, aft now
10:04 lizmat jnthn: as another datapoint: when I we speeding up .min and .max last night
10:04 lizmat at one point the setting could not build the RESTRICTED setting anymore
10:05 lizmat ah, nvm, figured out it was my fault after all
10:06 lizmat m: my $a; sub b(\c) { c := 42 }; b $a   # this was the problem
10:06 camelia rakudo-moar 1ed1ea: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AB7s51bdpY␤Cannot use bind operator with this left-hand side␤at /tmp/AB7s51bdpY:1␤------> 3my $a; sub b(\c) { c := 42 7⏏5}; b $a   # this was the problem␤»
10:06 jnthn Yeah, you can't bind do that :)
10:06 jnthn *to
10:06 lizmat well, actually trying to throw that error :-)
10:06 jnthn It's REALLY weird. I've got my Moar and NQP builds back basically to the last release.
10:07 jnthn And I still get it
10:07 lizmat .oO( but you don't get it as well )
10:07 jnthn aha
10:08 jnthn bff29c4 bad, but 4653d98 good
10:13 jnthn e87794e good
10:14 woolfy joined #perl6
10:14 jnthn And the patches between that and bff29c4 are just to the harness
10:14 woolfy left #perl6
10:15 ShimmerFairy jnthn: keep in mind that bff29c4 is a merge commit; did you check the other branch?
10:16 thou joined #perl6
10:17 jnthn ShimmerFairy: The last good commit I posted was the last significant change in nom before the merge, so yeah, the branch is implicated
10:17 jnthn Currently building everything at HEAD but with the two patches from the branch reverted
10:17 ShimmerFairy jnthn: ok, just wanted to make sure you didn't accidentally miss it being a merge commit :)
10:18 jnthn Thanks for checking :)
10:18 ShimmerFairy (My guess is the change to the indent, not so much <.vws> -> \v )
10:20 jnthn Uh, with those reverted I still get oddness :S
10:20 jnthn grrr
10:28 ][Sno][ joined #perl6
10:28 kolikov joined #perl6
10:28 kolikov joined #perl6
10:31 bjz_ joined #perl6
10:31 rurban joined #perl6
10:31 apotheon joined #perl6
10:31 jnthn What's really interesting is that StrDistance and Slang both come really near the end of CORE.setting
10:33 kolikov For : emilbarton ... seen on public logs at 9:10h ... maybe too late: interpolate varibles in regexes ... this way: $<varible>
10:33 Woodi joined #perl6
10:39 lizmat jnthn: have you tried moving StrDistance up?  if not, I could do that
10:39 lizmat just as another datapoint
10:39 FROGGS joined #perl6
10:40 jnthn lizmat: I've been looking at the SC indexes, and it looks like a 16-bit truncation issue...somewhere
10:40 lizmat that would be: yuck ?
10:41 jnthn Very
10:41 jnthn There's not that many places it could be though
10:42 FROGGS hmmm, I could imagine that something similar happened to panda too...
10:44 Khisanth joined #perl6
10:44 lizmat jnthn: as a confirmation: if I move StrDistance up a few lines in moar_core_sources, the restricted setting doesn't build with: Cannot look up attributes in a type object
10:51 brrt joined #perl6
10:55 dalek ecosystem: 798d3ef | (Tokuhiro Matsuno)++ | META.list:
10:55 dalek ecosystem: Added Cookie::Baker
10:55 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/798d3efceb
10:55 dalek ecosystem: 142a500 | RabidGravy++ | META.list:
10:55 dalek ecosystem: Merge pull request #60 from perl6/cookie-baker
10:55 dalek ecosystem:
10:55 dalek ecosystem: Added Cookie::Baker
10:55 dalek ecosystem: review: https://github.com/perl6/ecosystem/commit/142a500598
10:57 jnthn lizmat: Seems I've found it and have a fix
10:57 lizmat cool!
10:58 brrt \o/
10:58 * jnthn spectests
11:01 jnthn Some new win32-specific fails on POD-y/heredoc-y things wrt line endings, it seems
11:01 jnthn (Unrelated to my fix)
11:15 jnthn urgh, spectest is a real mess on Windows, thanks (I think) to heredoc changes leading to extra newlines all over on Windows
11:16 dalek nqp: c3a92ed | jnthn++ | tools/build/MOAR_REVISION:
11:16 dalek nqp: Bump MOAR_REVISION for assembler overflow bugfix.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/c3a92ed5f2
11:16 dalek nqp: 1deb686 | jnthn++ | src/HLL/World.nqp:
11:16 dalek nqp: A couple of native type annotations.
11:16 dalek nqp:
11:16 dalek nqp: Should avoid some boxing.
11:16 dalek nqp: review: https://github.com/perl6/nqp/commit/1deb6862dd
11:18 dalek rakudo/nom: dd6c855 | jnthn++ | tools/build/NQP_REVISION:
11:18 dalek rakudo/nom: Bump NQP_REVISION for MoarVM assembler fix.
11:18 dalek rakudo/nom:
11:18 dalek rakudo/nom: Resolves weird mis-compiles of things near the end of CORE.setting.
11:18 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/dd6c855aa1
11:19 leont joined #perl6
11:20 travis-ci joined #perl6
11:20 travis-ci NQP build passed. jnthn 'A couple of native type annotations.
11:20 travis-ci https://travis-ci.org/perl6/nqp/builds/82534948 https://github.com/perl6/nqp/compare/3f2ad11b4d64...1deb6862ddf6
11:20 travis-ci left #perl6
11:26 dalek roast: 347a9f9 | lizmat++ | S02-types/WHICH.t:
11:26 dalek roast: Test for 2 more classes' existence
11:26 dalek roast: review: https://github.com/perl6/roast/commit/347a9f9b27
11:27 * grondilu notices that ctags now supports Perl6 http://www.perlmonks.org/?node_id=1137752
11:27 * grondilu wonders if that helps browsing the core
11:30 lizmat wow, a clean spectest!   haven't seen that in a while!
11:30 lizmat Files=1042, Tests=47028, 211 wallclock secs (12.32 usr  3.61 sys + 1395.44 cusr 128.19 csys = 1539.56 CPU)
11:30 moritz \o/ :/
11:30 * moritz is glad the spectest is clean, and sad that it isn't the norm
11:30 lizmat so it would seem to me this bug was causing all sorts of other issues as well
11:31 jnthn There's still at least one known icky concurrency bug lingering that can cause flaps.
11:31 jnthn Thankfully there's a lot less of them than there used to be :)
11:32 lizmat indeed !
11:33 * lizmat goes back to writing Perl 6 Weekly
11:33 nine 16 bit overflow? I thought those times are long gone :)
11:33 lizmat let me know if you have anything you think *should* be in there!
11:34 FROGGS err, the ctags repo and website state that the project is about maintaining ctags.... but wth is ctags?
11:34 timotimo a collection of name-to-location links, more or less
11:35 nine "Ctags is a tool that makes it easy to navigate large source code projects. It provides some of the features that you may be used to using in Eclipse or other IDEs, such as the ability to jump from the current source file to definitions of functions and structures in other files."
11:35 nine http://courses.cs.washington.edu/courses/cse451/10au/tutorials/tutorial_ctags.html
11:35 jnthn nine: You can easily recreate them by copy-pasto'ing a cast, apparenlty... :)
11:35 FROGGS aha
11:35 timotimo it lets you "jump to definition" as well as have a list/tree of symbols for the current file
11:35 brrt joined #perl6
11:35 nine Woah! It seems like this also fixes the panda problem!
11:36 nine I reverted the workaround in panda and perl6 bootstrap.pl still works
11:36 brrt what
11:36 brrt that's impossible
11:36 timotimo huh? must be flappy!
11:36 brrt impossibru
11:36 timotimo inconceivable!
11:36 nine indeed :(
11:36 jnthn Yeah, there's a separate bug there, surely.
11:36 nine It _is_ flappy
11:36 jnthn Given how far we're hunted it down
11:37 nine Or rather it worked the first time and fails since
11:38 kid51 joined #perl6
11:44 zakharyas joined #perl6
11:45 jkva joined #perl6
12:02 Peter_R joined #perl6
12:04 thou joined #perl6
12:20 woolfy joined #perl6
12:20 woolfy left #perl6
12:21 pmurias joined #perl6
12:23 TEttinger joined #perl6
12:27 carlin joined #perl6
12:28 szymon joined #perl6
12:29 leont YAML keeps surprising me, so many edge-cases while implementing it…
12:29 [Coke] hoelzro: if RT #126202 is the correct behavior, what's the ticket for?
12:33 moritz leont: iirc the YAML spec is longer than the XML spec :-)
12:33 leont Tell me about it! :-/
12:33 pmurias_ joined #perl6
12:33 leont How can I express "not in between" in a rule?
12:34 moritz there's no good way
12:35 leont I guess I should first define an AND, and then add the NOT, but I'm not sure that's going to work :-s
12:35 moritz especially if you want to scope the "not in between" somehow
12:35 leont Not between "\n| and "..."
12:36 leont ... is a valid plain scalar, except on the main scope where it terminates the document -_-
12:36 moritz <!after\n> <token> <!before $>
12:37 moritz or since it's valid syntax, but different semantics, you could parse it normally, and make the distinction in the actions
12:48 * lizmat updated https://gist.github.com/lizmat/28d6d9b8f3a968e6c92e   # Perl 6 Weekly in progress
12:49 lizmat comments welcome!
12:50 moritz lizmat++ # my comment
12:53 [Coke] lizmat++ nice.
12:58 leont Think I solved my problem by special-casing the higher-level rule. Crude, but effective.
13:04 rindolf joined #perl6
13:08 rurban joined #perl6
13:15 ggoebel joined #perl6
13:24 szymon left #perl6
13:26 mullagainn joined #perl6
13:29 tony-o m: say (('x' x 4) ~ '-') x 3)
13:29 camelia rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gmyAnupxwU␤Unexpected closing bracket␤at /tmp/gmyAnupxwU:1␤------> 3say (('x' x 4) ~ '-') x 37⏏5)␤»
13:29 tony-o m: say ((('x' x 4) ~ '-') x 3)
13:29 camelia rakudo-moar dd6c85: OUTPUT«xxxx-xxxx-xxxx-␤»
13:32 brrt joined #perl6
13:37 khw joined #perl6
13:39 aborazmeh joined #perl6
13:39 aborazmeh joined #perl6
13:43 Ven joined #perl6
13:52 thou joined #perl6
13:54 carlin is there a way do "hash key exists and value equals..." as one statement? eg. a shorter `if %hash<foo> && %hash<foo> eq "baz" ...`
13:57 timotimo maybe %hash<foo>:exists:value
13:57 timotimo m: my %foo = a => 10; say %foo<a>:exists:value
13:57 camelia rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'value' and unsupported combination of adverbs (exists) passed to slice on %foo␤  in block <unit> at /tmp/4vLwugAyZx:1␤␤Actually thrown at:␤  in block <unit> at /tmp/4vLwugAyZx:1␤␤»
13:57 timotimo m: my %foo = a => 10; say %foo<a>:exists
13:57 camelia rakudo-moar dd6c85: OUTPUT«True␤»
13:57 timotimo m: my %foo = a => 10; say %foo<a>:value:exists
13:57 camelia rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'value' and unsupported combination of adverbs (exists) passed to slice on %foo␤  in block <unit> at /tmp/Om3FGVbMVj:1␤␤Actually thrown at:␤  in block <unit> at /tmp/Om3FGVbMVj:1␤␤»
13:57 timotimo m: my %foo = a => 10; say %foo<a>:kv:exists
13:57 camelia rakudo-moar dd6c85: OUTPUT«(a True)␤»
13:57 timotimo m: my %foo = a => 10; say %foo<a>:pair:exists
13:57 camelia rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'pair' and unsupported combination of adverbs (exists) passed to slice on %foo␤  in block <unit> at /tmp/hUUbAaAbjn:1␤␤Actually thrown at:␤  in block <unit> at /tmp/hUUbAaAbjn:1␤␤»
13:58 timotimo m: my %foo = a => 10; say %foo<a>:pairs:exists
13:58 camelia rakudo-moar dd6c85: OUTPUT«Unexpected adverb 'pairs' and unsupported combination of adverbs (exists) passed to slice on %foo␤  in block <unit> at /tmp/PRCzRGZl10:1␤␤Actually thrown at:␤  in block <unit> at /tmp/PRCzRGZl10:1␤␤»
13:58 timotimo m: my %foo = a => 10; say %foo<a>:p:exists
13:58 camelia rakudo-moar dd6c85: OUTPUT«a => True␤»
13:58 timotimo not quite .. at all
14:03 tony-o m: my %a; say (%a.somekey // '') eq 'hello' ?? %a.somekey !! 'nope';
14:03 camelia rakudo-moar dd6c85: OUTPUT«Method 'somekey' not found for invocant of class 'Hash'␤  in block <unit> at /tmp/QFjS6AeuqD:1␤␤»
14:04 tony-o m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a.somekey !! 'nope';
14:04 camelia rakudo-moar dd6c85: OUTPUT«nope␤»
14:04 tony-o too much javascript
14:04 tony-o m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
14:04 camelia rakudo-moar dd6c85: OUTPUT«nope␤»
14:04 tony-o m: my %a = somekey => 'sup carlin'; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
14:04 camelia rakudo-moar dd6c85: OUTPUT«nope␤»
14:05 lizmat m: my %h = a => 42; dd %h<a>:v, %h<b> %h<b>:v
14:05 camelia rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/f1RSBpOnAU␤Undeclared routine:␤    h used at line 1␤␤»
14:05 lizmat m: my %h = a => 42; dd %h<a>:v, %h<b>, %h<b>:v
14:05 tony-o m: my %a = { somekey => 'sup carlin' }; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
14:05 camelia rakudo-moar dd6c85: OUTPUT«42␤Any %h = Any␤()␤»
14:05 camelia rakudo-moar dd6c85: OUTPUT«Potential difficulties:␤    Useless use of hash composer on right side of hash assignment; did you mean := instead?␤    at /tmp/ArRDUb5zhb:1␤    ------> 3my %a = { somekey => 'sup carlin' }7⏏5; say (%a<somekey> // '') eq 'hello' ?? ␤nope␤»
14:05 tony-o meh, something like that
14:05 lizmat tony-o: I think :v is what you want, as it filters
14:05 leont How do I prevent flattening in «@a.push: (1,2,3)»?
14:06 lizmat $(1,2,3)
14:06 leont Ah!
14:06 tony-o m: my @a; @a.push($(1,2,3)); @a.perl.say;
14:06 camelia rakudo-moar dd6c85: OUTPUT«[(1, 2, 3),]␤»
14:06 leont Yes that works much better :-)
14:06 lizmat m: my %h = a => 42; dd %h<a b>, %h<a b>:v
14:06 camelia rakudo-moar dd6c85: OUTPUT«(42, Any)␤(42,)␤»
14:07 lizmat tony-o: ^^^
14:07 tony-o i was mostly just answering carlin 's inquiry about checking for a key existing and checking the value in one statement
14:08 tony-o i always use the ($var // Nil) or something similar
14:08 carlin ah that looks like what I want
14:08 carlin m: my %h = a => "test"; if %h<a>:v eq "test" { say "it works"; }
14:08 camelia rakudo-moar dd6c85: OUTPUT«it works␤»
14:08 carlin m: my %h = a => "test"; if %h<b>:v eq "test" { say "it works"; }
14:08 camelia rakudo-moar dd6c85: ( no output )
14:09 lizmat m: my %h = a => "test"; if %h<b> eq "test" { say "it works"; }
14:09 camelia rakudo-moar dd6c85: OUTPUT«Use of uninitialized value %h of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/S25S5s3GSZ:1␤»
14:09 lizmat m: say Nil eq "test"
14:09 camelia rakudo-moar dd6c85: OUTPUT«Use of Nil in string context  in block <unit> at /tmp/NfH3jif1RV:1␤False␤»
14:09 lizmat m: say () eq "test"
14:09 camelia rakudo-moar dd6c85: OUTPUT«False␤»
14:10 lizmat m: say () eq ""
14:10 camelia rakudo-moar dd6c85: OUTPUT«True␤»
14:10 lizmat carlin: not sure that *currently* does what you think it does
14:11 carlin does "currently" imply that it is supposed to do what I think it does? :-)
14:11 skids joined #perl6
14:11 timotimo did you see the error message there wasn't so awesome?
14:12 timotimo "uninitialized value %h" should really have hinted at the subscript existing
14:12 lizmat m: my %h = a => "test"; say "it works" if $_ eq "test" with %h<a>
14:12 camelia rakudo-moar dd6c85: OUTPUT«5===SORRY!5=== Error while compiling /tmp/MFCyoJmqZf␤Two terms in a row␤at /tmp/MFCyoJmqZf:1␤------> 3> "test"; say "it works" if $_ eq "test"7⏏5 with %h<a>␤    expecting any of:␤        infix␤        infix stopper␤»
14:12 moritz s/with/given/ ?
14:12 * [Coke] wonders if "with" is the right hammer here.
14:12 lizmat moritz: want to prevent warning on undef value
14:13 timotimo just use === instead of eq? :P
14:13 moritz lizmat: but postfix with doesn't set $_, no?
14:13 thou joined #perl6
14:13 lizmat m: .say with 42
14:13 camelia rakudo-moar dd6c85: OUTPUT«42␤»
14:13 * [Coke] might be a few sends behind.
14:13 lizmat m: sub a($a) { .return with $a; die }; a 42; a Int
14:14 camelia rakudo-moar dd6c85: OUTPUT«Died␤  in sub a at /tmp/CYyo8Cbwmo:1␤  in block <unit> at /tmp/CYyo8Cbwmo:1␤␤»
14:14 lizmat m: sub a($a) { .return with $a; die }; a 42;
14:14 camelia rakudo-moar dd6c85: OUTPUT«Died␤  in sub a at /tmp/qinKlQEVVG:1␤  in block <unit> at /tmp/qinKlQEVVG:1␤␤»
14:14 lizmat huh?
14:14 lizmat m: sub a($a) { .return with $a}; say a 42;
14:14 camelia rakudo-moar dd6c85: OUTPUT«42␤»
14:15 lizmat m: sub a($a) { .return with $a}; say a Int
14:15 camelia rakudo-moar dd6c85: OUTPUT«()␤»
14:15 lizmat m: sub a($a) { .return with $a; die }; say a Int
14:15 camelia rakudo-moar dd6c85: OUTPUT«Died␤  in sub a at /tmp/R6FskgC1U1:1␤  in block <unit> at /tmp/R6FskgC1U1:1␤␤»
14:15 lizmat moritz: it does set $_  :-)
14:15 [Coke] m: sub a($) { 3.return }; say a 42;
14:15 camelia rakudo-moar dd6c85: OUTPUT«3␤»
14:16 lizmat one of the things I added recently:  we have a .take, why not a .return ?
14:16 tony-o m: my %h = a => 123; say %h<b>:v eq '';
14:16 camelia rakudo-moar dd6c85: OUTPUT«True␤»
14:16 tony-o m: my %h = a => 123; say %h<b> eqv '';
14:16 camelia rakudo-moar dd6c85: OUTPUT«False␤»
14:16 tony-o that might be more what you want carlin
14:16 lizmat I would argue that %h<b>:v should return Nil
14:16 lizmat rather than an empty list
14:16 masak lizmat: ...why do we have a .take ? :P
14:17 lizmat I have no idea, that was before my time
14:17 masak if it's just a sub, not a keyword, people who wanted .take could already do .&take
14:17 masak but .take is probably older even than that realization...
14:17 lizmat it *is* being used in the core
14:17 masak ok
14:18 jnthn masak: @foo.deepmap(*.take) is cute
14:18 jnthn Though only 1 char cuter than *.&take :)
14:18 masak for some reason, I find it more palatable to stuff the core setting with useful routines than to stuff Mu/Any with useful methods...
14:18 masak I guess because they inherit into *everything*
14:19 masak and we kinda complicate life a little bit for people who felt .take was a nice method name for their API...
14:19 * [Coke] has a clean stresstest on OS X. nice.
14:21 [Coke] tadzik: care to apply https://rt.perl.org/Ticket/Display.html?id=126211 ?
14:24 tadzik [Coke]: sure. Not sure where that module lives now... :)
14:24 [Coke] hoelzro: I get that RT #126202 isn't doing what you want, but it's following the "spec", yes? So is the request that the spec change?
14:24 [Coke] tadzik: it's a patch against rakudo, I think.
14:24 tadzik [Coke]: indeed
14:26 dalek rakudo/nom: cd8ce4e | (Shoichi Kaji)++ | lib/Pod/To/Text.pm:
14:26 dalek rakudo/nom: Use Terminal::ANSIColor instead of Term::ANSIColor
14:26 dalek rakudo/nom:
14:26 dalek rakudo/nom: Because Term::ANSIColor is deprecated
14:26 dalek rakudo/nom: See https://github.com/tadzik/perl6-Term-ANSIColor/commit/be708da23d
14:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/cd8ce4e639
14:27 tony-o dang.
14:27 [Coke] When documenting IterationEnd on doc.perl6.org, is it ok to give it a page as a Type (even though it's nto really a type?)
14:27 lizmat do I understand correctly that we have a core module depending on an ecosystem module ?
14:27 moritz lizmat: if it's not available, it simply doesn't color the output
14:28 lizmat ah, ok  :-)
14:28 [Coke] ah, it's already got a constant entry somewhere.
14:32 FROGGS joined #perl6
14:36 jasanj ls
14:36 geekosaur . ..
14:37 jasanj :)
14:37 timotimo you're feeling rather empty today, geekosaur
14:38 * geekosaur not sure what subdirectories of an irc channel would be...
14:38 DrForr Spaced out even :)
14:44 tony-o geekosaur: it would work like mux
14:47 Ven joined #perl6
14:50 [Coke] moritz: I'm unable to get a working --profile for even a sparse=100 run of htmlify. You have any luck?
14:51 pmurias_ moritz: would it be possible to get node.js installed on hack according to: https://github.com/nodejs/node-v0.x-archive/wiki/Installing-Node.js-via-package-manager#debian-and-ubuntu-based-linux-distributions
14:52 moritz [Coke]: I've been able to get one (though I wasn't able to display the results in the browser), but it doesn't make any sense at all
14:52 pmurias_ moritz: [Coke] was having weird problems with native node modules building that point at some debian node.js crazyiness
14:52 moritz pmurias_: uhm, I don't like the curl | bash - as root much :/
14:53 dalek doc: 5fc7cbd | coke++ | lib/Type/Iterator.pod:
14:53 dalek doc: RT #126159, notes on IterationEnd
14:53 dalek doc: review: https://github.com/perl6/doc/commit/5fc7cbdc18
14:53 jkva joined #perl6
14:54 moritz whatever.
14:54 moritz .tell pmurias I've installed a more up-to-date nodejs on hack. Have fun!
14:54 yoleaux moritz: I'll pass your message to pmurias.
14:55 * [Coke] tests it out.
14:55 Woodi hi today :)
14:55 pmurias joined #perl6
14:55 dalek perl6-roast-data: cb7b291 | coke++ | / (9 files):
14:55 dalek perl6-roast-data: today (automated commit)
14:55 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/cb7b29139d
14:56 [Coke] hello from tomorrow.
14:57 leont Is there a way to force named arguments into the slurpy array parameter?
14:57 moritz leont: uhm, not that I'm aware of; what's the use case?
14:58 leont I'd like to not lose their order
14:58 moritz nope
14:58 tadzik well, you can have a slurpy hash
14:58 tadzik oh, wait
14:58 Woodi I have small performance benchmark, very unscientific. additionally thing run without jit. so my results: spring 2014: 46;  spring 2015 36;  2015.07 32;  2015.09 30  where 1 is time of do-same-thing perl5 script...
14:58 tadzik *not*
14:59 [Coke] moritz, pmurias: much better, thanks.
14:59 moritz Woodi: nice
14:59 [Coke] pmurias: t/nqp/78-shell.t fails tests 4-5
14:59 Woodi but when I put   exit 0;  as first  line in program it is 19x perl5...
14:59 Woodi so parsing takes ages...
15:00 vike joined #perl6
15:00 Woodi also  looks .parsefile is faster then .parse
15:01 emilbarton joined #perl6
15:01 [Coke] moritz: if you can't open it in the browser, how do you know it doesn't make sense?
15:02 moritz [Coke]: I've written a small perl5 script that analyses the generated json
15:04 pmurias [Coke]: I'm updating my node.js and I'll see if I can reproduce that
15:04 yoleaux 14:54Z <moritz> pmurias: I've installed a more up-to-date nodejs on hack. Have fun!
15:05 moritz [Coke]: and it reports that much of the exclusive time is spent in a routine that does nearly nothing, just calls other routines that do a lot of work
15:05 [Coke] Woodi: how does it compare with -e "" ?
15:05 [Coke] moritz: any args passed between these subs?
15:05 moritz [Coke]: sure
15:06 dalek doc: 5c4ca1a | (Steve Mynott)++ | bin/p6doc-index:
15:06 dalek doc: GLR fix for https://github.com/perl6/doc/issues/137
15:06 dalek doc: `p6doc-index build` does not work
15:06 dalek doc: review: https://github.com/perl6/doc/commit/5c4ca1a06d
15:06 [Coke] are they big? maybe something is doing a lot of processing of the args?
15:06 [Coke] (just as part of the calling conventions)
15:07 [Coke] (or in a loop, maybe the OSR/Deopt is associated with that sub for some reason?)
15:07 hoelzro [Coke]: I'm not requesting a spec change; I'm just wondering if we should be issuing a warning or something
15:07 hoelzro o/ #perl6
15:08 [Coke] what would be the condition to generate the warning?
15:08 kolikov left #perl6
15:09 brrt hey, question
15:09 timotimo hey, answer
15:09 timotimo hey, listen!
15:09 brrt can perl6 do evil things like inspect the lexicals of a caller?
15:10 moritz brrt: only if they are marked as "is context", iirc
15:10 brrt do you have an example?
15:10 brrt hmmmm
15:10 _itz_ did that moarvm serialisation work (for panda ISTR) ever get merged?
15:10 hoelzro [Coke]: two declarands on the same line
15:11 TimToady 'is dynamic'
15:11 yoleaux 27 Sep 2015 19:44Z <japhb> TimToady: Happy Birthday!
15:12 [Coke] moritz: can I borrow your perl5 script for looking at the data?
15:13 diakopter joined #perl6
15:13 moritz [Coke]: you'll have to ask me again when I'm home; it's not in da cloud :/
15:13 brrt m: sub foo is dynamic { my $x = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo();
15:13 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fLHewGeaUo␤Can't use unknown trait 'is dynamic' in a sub declaration.␤at /tmp/fLHewGeaUo:1␤    expecting any of:␤        rw raw hidden-from-backtrace hidden-from-USAGE␤        cached pure default DEPR…»
15:14 moritz [Coke]: so, in about an hour
15:14 [Coke] moritz: danke.
15:14 leont Is there a cleaner solution than hand-writing the accessor to making «has @.foo» being publically writable?
15:14 ilmari sub foo { my $x is dynamic = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo();
15:15 ilmari m: sub foo { my $x is dynamic = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo();
15:15 camelia rakudo-moar cd8ce4: OUTPUT«1␤»
15:15 ilmari brrt: it's the variable that needs 'is dynamic', not the sub
15:15 leont Erm, that's not clear English, I want it *not* to be writable
15:15 brrt aha
15:15 Woodi [Coke]: -e "" is exactly 6 :)
15:16 brrt ilmari++
15:17 baest joined #perl6
15:17 lizmat FWIW, I think it's better to use the more visual * twigil
15:17 timotimo leont: arrays have the problem of being mutable :\
15:17 lizmat m: sub foo { my $*x = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo();   # brrt
15:17 camelia rakudo-moar cd8ce4: OUTPUT«(Any)␤»
15:17 * leont has a thing for immutable…
15:17 lizmat m: sub foo { my $*x = 1; bar(); }; sub bar { say CALLER::<$*x>; }; foo();   # brrt
15:17 camelia rakudo-moar cd8ce4: OUTPUT«1␤»
15:18 timotimo of course you do :)
15:18 brrt aye, i agree lizmat
15:18 ilmari m: class Foo { has @.foo is ro }; say Foo.new(foo => (1..3))
15:18 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gyjIygme_9␤Can't use unknown trait 'is ro' in an attribute declaration.␤at /tmp/gyjIygme_9:1␤    expecting any of:␤        rw␤        readonly␤        box_target␤        leading_docs␤        tra…»
15:20 lizmat m: sub foo { my $*x = 1; bar(); }; sub bar { say $*x }; foo();   # even simpler  :-)  brrt
15:20 camelia rakudo-moar cd8ce4: OUTPUT«1␤»
15:21 brrt the question is whether normal not-so-marked lexicals can be accessed via CALLER and so escape the life of the frame
15:21 brrt i suppose they can't, which is good
15:21 masak yeah. phew.
15:22 lizmat well, probably with some callframe() magic and introspection and nqp, you could probably get at them
15:22 [Coke] RT #126130 - Real.new.say goes to Real.Str -> Real.Bridge -> Real.Num -> Real.Bridge -> Real.Num ... ; is the best thing to do here to add a new() to the Role that just throws an exception? (or is there a reason to allow Real.new in the first place?)
15:22 brrt hmmm
15:23 masak I think if someone uses nqp, we're not at fault for optimizing things away without considering the nqp code.
15:23 brrt however, using nqp::* ops in perl6 is imho very much at your own risk
15:23 masak "nqp at your own risk", kind of.
15:23 masak right.
15:25 pmurias node.js-- # packages breaking on the newest node.js
15:25 diakopter well, at least they got the io.js fork remergered
15:26 masak pmurias: breaking how?
15:26 pmurias failing to build :(
15:26 n0tjack joined #perl6
15:26 masak :(
15:27 n0tjack If ^10 is a shortcut for 0..9, is there a shortcut for 1..10?
15:27 n0tjack p6: 1 [+] ^10;
15:27 camelia rakudo-moar cd8ce4: OUTPUT«WARNINGS:␤Useless use of "[+]" in expression "1 [+] ^" in sink context (line 1)␤»
15:27 brrt ^10 >> *+1 maybe
15:27 brrt m: say ^10.>> *+1
15:27 n0tjack oh, interesting
15:27 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_51BcjafuS␤Missing postfix␤at /tmp/_51BcjafuS:1␤------> 3say ^10.>>7⏏5 *+1␤    expecting any of:␤        postfix␤»
15:27 n0tjack I always forget about >>
15:27 brrt nah, that doesn't work
15:28 n0tjack p6: 1 <<+>> ^10
15:28 camelia rakudo-moar cd8ce4: ( no output )
15:28 n0tjack p6: say(1 <<+>> ^10)
15:28 camelia rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
15:28 n0tjack I also get [+] and <<+>> mixed up
15:29 n0tjack I suppose the answer is just 1..10
15:29 n0tjack thanks
15:29 diakopter pmurias: you knew about the io.js fork and big controversy and community split?
15:31 |Tux| So, should "panda --installed --verbose list" do the same as "panda list --installed --verbose" ?
15:32 |Tux| the first works, the second barfs
15:32 n0tjack p6: sub prefix:<➕> { (1..*)[^n] } say (➕^10);
15:32 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Strange text after block (missing semicolon or comma?)␤at /tmp/tmpfile:1␤------> 3sub prefix:<➕> { (1..*)[^n] }7⏏5 say (➕^10);␤    expecting any of:␤        infix␤        infix sto…»
15:32 diakopter it was a reaction to Joyent (and StrongLoop, and others) trying to take over the community & project & such
15:33 n0tjack p6: sub prefix:<➕> { (1..*)[^n] }; say (➕^10);
15:33 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Undeclared routine:␤    n used at line 1␤␤»
15:33 n0tjack p6: sub prefix:<➕> { (1..*)[$^n] }; say (➕^10);
15:33 camelia rakudo-moar cd8ce4: OUTPUT«11␤»
15:34 n0tjack why isn't the ➕ operator there getting ^10 (0..9) as an array and using it as a slice?
15:34 n0tjack p6: sub prefix:<➕> { (1..*)[@n] }; say (➕^10);
15:34 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/tmpfile␤Variable '@n' is not declared␤at /tmp/tmpfile:1␤------> 3sub prefix:<➕> { (1..*)[7⏏5@n] }; say (➕^10);␤»
15:36 ilmari m: sub prefix:<➕>(@n) { (1..*)[@n] }; say (➕^10);
15:36 camelia rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
15:37 n0tjack thanks!
15:37 n0tjack I wasn't sure how to name arguments in operator definitions
15:37 ilmari m: sub prefix:<➕> { (1..*)[@^n] }; say (➕^10);
15:37 camelia rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
15:38 ilmari the ^ twigil creates implicit parameters
15:38 n0tjack yes, that's what I wanted.
15:39 n0tjack because (1..*) is anonymous, will perl6 reconstruct it on every call?
15:39 n0tjack or does the lazy-list memoization still apply?
15:40 TimToady the 1..* is not expensive to generate, but unrolling the range can be
15:41 TimToady we oughta be able to add and multiply intervals directly though...
15:42 n0tjack how does the compiler know if it needs to calculate all the indices up to the requested interval vs. when it can get away with calculating htem directly?
15:43 pmurias diakopter: I wasn't aware of the controversy
15:44 pmurias diakopter: the fork seemed to resolve itself while I was away from nqp-js and as such I didn't look deep into it
15:45 pmurias diakopter: what's really annoying me right now is nqp-js deps having unmerged pull request to make them build on current node.js
15:45 jasanj` joined #perl6
15:46 leont Where can I find more information about that "New slurpy parameter" syntax?
15:47 leont I can guess what it does, but details
15:48 pmurias diakopter: have you followed the community fork?
15:48 TimToady leont: http://design.perl6.org/S06.html#One-argument_slurpy_binding
15:50 leont Thanks, yeah that is by now what I expect
15:50 nine m: sub foo() { my $x = 1; bar; }; sub bar() { say CALLER::LEXICAL::<$x>; }; foo;
15:50 camelia rakudo-moar cd8ce4: OUTPUT«1␤»
15:50 nine brrt ^^^
15:50 nine I knew there was a way without nqp
15:51 pmurias isn't it spec violating?
15:56 TimToady .tell ShimmerFairy no, tc is by definition only for initial caps; use tcuc if you want to uppercase everything
15:56 yoleaux TimToady: I'll pass your message to ShimmerFairy.
15:59 pmurias hmm it seems that nqp-js builds on travis are randomly failing due to something that looks like a random moarvm memory error I had sometimes experienced in the past :(
16:01 bioexpress joined #perl6
16:03 araujo joined #perl6
16:03 bioexpress Hello, why was the module Term::ANSIColor renamed in Terminal::ANSIColor?
16:04 Ven joined #perl6
16:05 TimToady because someone thought it might collide with the idea of "term" in parsing, but it's an unfounded fear
16:05 araujo joined #perl6
16:06 bioexpress thx
16:08 * Ven waves
16:09 TimToady is it just me, or did the parse phase get about 10 seconds slower overnight?
16:10 tadzik well, I still think that Terminal is a better name for terminal stuff than Term
16:10 TimToady it's as likely to collide with an airport terminal
16:11 TimToady all the world is not CS
16:11 PerlJam Terminal::Degree   :)
16:11 n0tjack Terminal::Velocity
16:11 TimToady Terminal::Patient
16:12 TimToady you can play this game on both sides :)
16:12 mr_ron joined #perl6
16:12 TimToady and Term has history
16:12 mr_ron m: class C { method gist { 42 } }; my $c = C.new; my $i = 5; say $i; say $c.perl; say $c
16:12 yoleaux 27 Sep 2015 05:57Z <moritz> mr_ron: that's what the R* releases are for: they are snapshots where the version of rakudo and the modules match
16:12 camelia rakudo-moar cd8ce4: OUTPUT«5␤C.new␤This type cannot unbox to a native string␤  in block <unit> at /tmp/1LGLJiZs1S:1␤␤»
16:12 pmurias the module is called Term::ANSIColor in both perl5 and ruby
16:13 TimToady the name is already claimed, basically
16:13 PerlJam Shells will still call it TERM too.
16:13 TimToady and we don't really need this to become a FAQ
16:13 tadzik I wasn't aware that "it has always been that way and we've been fine" is an argument in the perl 6 world
16:14 TimToady sure it is
16:14 tadzik I'm okay with reverting the change given the apparent outrage that it caused :)
16:14 tadzik but I still think it was for the better
16:14 PerlJam tadzik: I'm not outraged, just highly surprised.
16:15 TimToady .oO(use Terminal::ANSIColor:api<Term>)
16:15 pmurias (reverting the name)++
16:16 TimToady .oO(use Term::ANSIColor:api<Terminal>)[C[C[C[C[C[C[C[C[C[C[C[C  :)
16:16 TimToady yow
16:16 TimToady .oO(use Term::ANSIColor:api<Terminal>)  :)
16:17 tadzik I was sure that ?C?C?C?C?C?C?C?C is part of the joke :P
16:17 PerlJam me too! :)
16:17 TimToady I reverted it
16:17 tadzik . o O ( now you should too )
16:17 Ven is there a way to get such parameters?
16:18 TimToady eh?
16:20 tokuhiro_ joined #perl6
16:21 Ven the ":api<...>" part of "use" :P
16:21 pmurias would bumping the minimal node.js version from the 0.10 to 0.12 cause trouble for anyone? (so I can get rid of an annoying broken dependency)
16:22 rurban joined #perl6
16:23 TimToady speaking of 16-bit limitations...
16:23 TimToady m: say 1, |(2 xx 65536)
16:23 camelia rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/FivESPhr4o:1␤␤»
16:23 TimToady m: say 1, |(2 xx 65535)
16:23 camelia rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array.␤  in block <unit> at /tmp/5Mo4af5Avw:1␤␤»
16:24 TimToady m: say 1, |(2 xx 65534)
16:24 camelia rakudo-moar cd8ce4: OUTPUT«(signal SEGV)»
16:24 jnthn TimToady: Well, on the JVM you hit that at 256...
16:24 jnthn TimToady: Additionally, on both, the performance of doing huge arg flattens is pretty horrible.
16:24 TimToady pity we can't defer to slip somehow instead
16:25 TimToady shouldn't SEGV though
16:25 jnthn I've pondered that a bit but it's...fraught
16:25 jnthn Yeah, agee. File that one...
16:25 TimToady and various internals depend on |
16:25 jnthn Arg passing is one of those things you really want to keep pretty low level...
16:25 TimToady but it breaks our metas
16:26 jnthn Why?
16:26 jnthn I never got why they were written in that way, especially after the single arg rule.
16:28 TimToady sub (+values) { op.(|values) }  # from METAOP_REDUCE_LIST
16:28 TimToady it's already single-arg
16:29 TimToady not using | there only works if all possible ops are single arg
16:30 jnthn If the purpose is just to delegate, can it not be sub (|c) { op.(|c) } ?
16:31 TimToady doesn't help the triangle form
16:31 TimToady but maybe we can write that off as rather specialized
16:32 araujo joined #perl6
16:32 araujo joined #perl6
16:33 patrickz joined #perl6
16:34 Ven TimToady: why is the | necessary in (|values)? In case it's not a single-arg-rule'd operator?
16:34 TimToady that's the idea
16:35 TimToady maybe we can optimize it away somehow
16:36 lizmat https://p6weekly.wordpress.com/2015/09/28/2015-34-40-birthday/   # it is live!  :-)
16:36 TimToady and the | -> | trick doesn't really help when we have do more than delegate, as in op.(|values.map({nqp::decont($_)}))
16:37 emilbarton joined #perl6
16:38 TimToady can we somehow notice when we pass a single arg | and promote it directly to a capture?
16:41 jnthn lizmat: I think superstitious parens around (^100)
16:42 spider-mario joined #perl6
16:42 diana_olhovik_ joined #perl6
16:43 jnthn TimToady: That may be more manageable, though Capture objects only really exist "on demand" (since we don't really want to allocate a GC-able object per call in Moar, and on the JVM we want to use its own idea of arguments so we can take advantage of stuff like invokedynamic)
16:44 jnthn TimToady: So the actual guts of arg passing don't actual involve a Capture
16:44 lizmat m: ^10.grep( * %% 2 ).say   # jnthn: I think not
16:44 camelia rakudo-moar cd8ce4: OUTPUT«Potential difficulties:␤    Precedence of ^ is looser than method call; please parenthesize␤    at /tmp/ZqvzusWWsW:1␤    ------> 3^107⏏5.grep( * %% 2 ).say   # jnthn: I think n␤WARNINGS:␤Useless use of "^" in expression "^10.grep( * %% 2 ).…»
16:44 jnthn lizmat: No no, only for the infix form.
16:44 jnthn lizmat: Which you used
16:44 lizmat aahhh
16:44 jnthn m: ^10 .grep( * %% 2 ).say
16:44 camelia rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)␤»
16:44 lizmat m: ^10 . grep( * %% 2 ).say   # jnthn: I think not
16:44 camelia rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)␤»
16:44 lizmat whee
16:44 jnthn ;)
16:45 lizmat fixed...
16:45 jnthn lizmat++ for the weekly btw
16:45 jnthn I've a partly done thing to post, will finish it up this evening
16:45 lizmat that will be for next week's  :-)
16:45 lizmat cycling&
16:46 jnthn Indeed :)
16:48 brrt joined #perl6
16:48 tony-o i just submitted a pr that has some temp fixes for CURLI since it looks like we're going to be spending an inordinate amount of time talking about it
16:50 jnthn tony-o: Why the warn, ooc?
16:50 mr_ron left #perl6
16:51 jnthn tony-o: Something looks a bit off whitespace wise too
16:51 spidermario joined #perl6
16:52 tony-o because that seemed to be a large point of contention in our discussion and since i was in there i figured i'd compromise.  i don't think it should do anything if no precomp is available.  others think it should die
16:52 tony-o jnthn: my bad, i'm always on 2 spaces per tab.  will correct it
16:52 jnthn OK, I need to read a bunch of discussions :)
16:53 jnthn Also, will @candi not now always be empty?
16:53 TimToady .oO(taking children from candi...)
16:53 jnthn :P
16:53 tony-o haha
16:54 tony-o it will always be empty if it gets to the last line, which means there is no candidates
16:54 jnthn Right, but the push to it is gone too?
16:54 tony-o it returns directly, like CURLF
16:54 jnthn I guess I'm just asking, why "+@candi ?? @candi[0] !! ();" intead of just () ?
16:55 tony-o jnthn: i pushed that in there with my spacing fix
16:56 jnthn Will this cause warnings for folks using Panda?
16:56 jnthn Since it doesn't pre-comp?
16:56 jnthn Or does it not use CURLI at all any more?
16:56 tony-o panda doesn't use CURLI at all so it shouldn't
16:57 tony-o i get this error when i try to use panda so i can't test: /Users/tonyo/.rakudobrew/bin/panda: fork: Resource temporarily unavailable
17:04 jnthn o.O
17:04 jnthn gotta go; bbl
17:04 jnthn But if somebody can test Panda with tony-o's patch, then I'm happy for it to go in
17:06 larion joined #perl6
17:10 dha joined #perl6
17:10 dha Have published a blog post. FEAR ME.
17:11 * TimToady has the appropriate amount of fu^Wfear
17:11 nine jnthn: I added a EnumHOW based class called Boolean to BOOTSTRAP.nqp. In Boolean.pm I can ^add_method, but when I try to ^add_multi_method, I get a "Cannot auto-generate a proto method in the setting" error. But when I try to ^add_multi_method the proto manually I get a Redeclaration error during compilation.
17:11 nine jnthn: Any pointers for where should I go from here?
17:12 dha TimToady++
17:16 darutoko- joined #perl6
17:18 dha .tell lizmat Have blogged, if you're still summarizing. http://dhaperl6.blogspot.com/2015/09/im-back.html
17:18 yoleaux dha: I'll pass your message to lizmat.
17:21 tokuhiro_ joined #perl6
17:26 diana_olhovik joined #perl6
17:32 rindolf joined #perl6
17:37 btyler dha: don't want to do the blogspot login dance, but for me the quality of perl 5's documentation was the omnipresent "SYNOPSIS" section
17:37 btyler was/is, excuse me
17:38 dha no worries. I'll take comments here. ;-)
17:38 dha Thanks.
17:38 pierrot joined #perl6
17:39 dha That would be in module docs, rather than the perl docs per se, yes?
17:39 btyler for me, a decent synopsis makes up for a lot of other failings; heck, I might not even discover the other documentation failings :)
17:39 btyler I suppose, although perldoc -f split has essentially a synopsis in the first 3 lines
17:41 dha Ah. That kind of synopsis. Noted.
17:41 btyler you're totally correct, I was thinking module, but both are deeply appreciated
17:41 btyler although I think it's fair to say that module docs for modules that ship in the main distribution are almost as important as core language doc
17:42 dha Indeed. but different from the point of view of doc writing.
17:43 dha And, yes, although not labelled "SYNOPSIS" the format examples for functions are important.
17:43 btyler for sure. ok, that's all the input I had, sorry for conflating module doc with core language doc
17:43 btyler I just have a deep love for SYNOPSIS culture
17:43 dha No worries. It's valuable and appreciated.
17:43 dha synopses are good. :-)
17:43 btyler it really helps me get stuff done
17:44 * Juerd found S07 easy to read, except for Iterable section
17:45 * Juerd doesn't know what "mark out" means, technically
17:45 Juerd The second paragraph can be read as "mark out when .flat is used", or as "flatten when .flat is used"
17:46 Juerd I'm not sure if "in conjunction with" means "together with", or somehow refers to junctions.
17:46 dha Hm. looking at C<split> in the p6 docs, I'm wondering if maybe we need "synopses" more like the p5 ones, rather than ones that seem to reflect the p6 implementation rather than use.
17:47 Juerd The last sentence ends in "returns identity". I don't know what returning identity is, but which identity is returned?
17:47 Juerd dha: What's a Perl 5 synopsis?
17:48 dha As discussed above. If I understand btyler correctly, stuff like "split /PATTERN/,EXPR,LIMIT"
17:48 btyler I was just shoe-horning the term into a pattern seen in the p5 core docs
17:48 Juerd Oh, synopsis as in =head1 SYNOPSIS, not synopsis as in design document. I get it.
17:49 dha as opposed to what's in split for p6, e.g. "multi sub    split(  Str:D $delimiter, Str:D $input, $limit = Inf, :$all) returns Positional"
17:49 domidumont joined #perl6
17:49 Juerd I quite like having the signature in the documentation
17:49 dha Of course, because there are several C<split>s, this gets complicated.
17:49 btyler I'd also note an anti-pattern in the python core docs: I used python for two years in university and pretty much had no idea what the docs meant by "kwargs" everywhere
17:49 PerlJam dha: since types have a more prominent role in P6 and multis exist, I think having the full signature is quite useful
17:49 btyler of course, once you know it, it is very clear
17:49 dha Juerd -  I should have said "along with" rather than "rather than"
17:49 Juerd btyler: Have you found out whether kwargs are edible?
17:50 btyler nom nom nom
17:50 PerlJam dha: that's not to say there shouldn't *also* be here's-how-to-use-the-thing synopses
17:50 dha PerlJam -  right.
17:51 btyler *had no idea what 'kwargs' meant, despite referring to the online docs constantly while working through my assignments
17:51 dha With some exceptions, I'm thinking that more information is generally better.
17:51 PerlJam yep
17:51 AlexDani` joined #perl6
17:51 Juerd PerlJam: When examples are included, I love when there's a basic one and a more advanced one. A lot of documentation uses examples to show off capabilities, rather than the simplicity of the most common usage.
17:51 btyler which generalizes to "be really careful of the amount of language-specific vocabulary you ask people to pick up while reading doc"
17:51 Juerd (Referring to documentation in general, not Perl docs specifically)
17:52 PerlJam Juerd: indeed.  I find it annoying when examples try to show-off everything at once.
17:52 Juerd btyler: Wiki-style links can be useful. They allow you to use jargon for conciseness without the downside of having many people miss out.
17:53 AlexDaniel How can I search for all bug reports that were opened by me? Both open and closed, I want to review a couple of them…
17:53 Juerd PerlJam: I like it when they do, but not as the *only* example :)
17:53 dha Juerd -  I agree. I'm thinking, in general terms, (full signature synopsis)/(usage synopsis)/(description with appropriate examples interleaved)
17:53 PerlJam dha++ sounds awesome
17:53 Juerd dha: That would work. Personally I'm not a big fan of interleaving because it gets messy, but I wouldn't object to it.
17:54 btyler Juerd: yes, certainly, although man page formatting precludes taking too much advantage of links
17:54 dha Well, when I say interleaving, I mean "here's what this does (...) like this: (example)
17:54 Juerd I think that probably most people like the interleaved style.
17:54 dha which might be what you don't like, but I think it's generally useful.
17:55 Juerd btyler: I think that primarily advanced users who have previously studied the language and learned the jargon will use manpages, whereas most beginners will very probably (only) use HTML resources instead.
17:56 btyler yeah, perhaps. I used them a lot when I was learning perl, if only because it was faster than navigating my browser to the appropriate web version, but I guess I don't know how common that learning scenario is
17:58 PerlJam I know that when I must use PHP, php.net is a necessary resource  ;)
17:58 dha Juerd -  I wouldn't assume that. Particularly for p5 programmers who are probably pretty used to using "perldoc perlblah" or "perldoc -f function"
17:59 Juerd I've been called a fossil for using those.
18:01 dha I would not call you that for that. :-)
18:03 dha Of course I would call people who called you that young whippersnappers and tell them to get off my lawn, so maybe I'm a bit out of touch. ;-)
18:03 * pink_mist prefers reading the perl5 perldocs online most of the time; the browser has a more featureful interface for navigating around the docs than my terminal has
18:04 dha Young whippersnapper. Get off my lawn!
18:04 Juerd :)
18:04 sufrostico joined #perl6
18:04 pink_mist plus I can keep track of which window is docs easier if it doesn't look the same as one where I'm coding :P
18:05 z8 joined #perl6
18:05 dha Hm. I'm also wondering how something like p5-s "perldoc -f" would work in p6, when there are multiple versions of a function in different classes.
18:06 dha pink_mist -  You kids today... tsk.
18:06 dha (I can keep this up all day, you know... :-)
18:06 pink_mist (or at least you could have if you were younger :P)
18:07 dha Ouch!
18:08 Juerd pink_mist: I like your nickname. Does it refer to anything specific?
18:09 Juerd Oh, after looking it up and finding the definition in the "urban dictionary" I don't really like it anymore.
18:09 dha btyler -  would it make people's lives easier if I moved to something other than blogger?
18:09 Juerd http://www.urbandictionary.com/define.php?term=pink+mist
18:09 pink_mist Juerd: it's not from ud :/
18:09 dha looking things up in Urban Dictionary is usually a mistake. :-)
18:09 pink_mist Juerd: though I guess it's not far from it ...
18:09 Juerd dha: I didn't specifically look it up there. Duckduckgo found it for me.
18:09 dha btyler -  or mirrored on something other than blogger?
18:09 pink_mist Juerd: heh, not really ... I got it by being uppity towards an operator in some other channel, long long ago, on a network far far away ... and he got annoyed at me and killed me so hard a pink mist was all that was left
18:10 Juerd Heh
18:10 dha Juerd -  even so. :-)
18:11 PerlJam pink_mist: here I've been thinking that you have some affinity for bombs/bomb squads
18:11 pink_mist 0_o lol
18:11 Juerd I thought maybe it had to do with "My Little Pony" or something like that :)
18:12 pink_mist no no, that's just my hostname (uhm, if I'm uncloaked that is) :P
18:12 PerlJam Juerd: that's a far happier version of things :)
18:13 btyler dha: I'm just being a grouch about blog comment systems, don't sweat it
18:13 dha btyler -  will do. :-)
18:13 DrForr Damnit, we're woking on it, it just got delayed due to a failed gravity check.
18:14 DrForr *working
18:14 Juerd Gravity failed?
18:15 DrForr No, I spontaneously decided to make sure gravity still worked by moving a limb wrong.
18:16 dha ow.
18:17 dha But thanks for checking.
18:17 DrForr Hence being hospitalized in Granada for ~2 weeks.
18:17 DrForr You're quite welcome, gotta keep an eye on that bastard.
18:17 dha Oh. I though you did something bad newly. Still sorry to hear about Granada, but glad you have not reinsured.
18:17 dha dammit autocorrect. reinJURED.
18:18 DrForr Oh, that. No, still the original injuries.
18:18 dha Yeah, now that Isaac Newton's dead, we all need to pitch in.
18:18 vendethiel joined #perl6
18:18 dha back to original comment, what delay are you referring to?
18:19 DrForr On revamping blogs.perl.org - I saw teh comment on blogger, thought that might be what you're referring to.
18:21 dha oh, no. btyler just had a comment on my last post at dhaperl6.blogspot.com and preferred not to sign in to comment on it.
18:21 dha no mention of blogs.perl.org. UNTIL NOW.
18:22 dha :-)
18:22 dha Although maybe I should mirror there.
18:25 dha Speaking of full signatures... I'm seeing things like "Str:D" and "Str:D:" What are all those Ds and colons doing?
18:25 pink_mist I think it's something to do with 'defined'
18:25 pink_mist but I'm unsure
18:26 dha ok. Now we're both unsure. ;_)
18:26 FROGGS Str:D $foo - specifies a parameter that accepts a Str instance
18:26 FROGGS Str:D: $self - specifies that the method can only be called on a Str instance
18:27 dha and the D means... ?
18:27 FROGGS defined
18:27 pink_mist so what precisely is the difference between 'Str $foo' and 'Str:D $foo'?
18:27 pink_mist ... =)
18:27 mohij joined #perl6
18:27 FROGGS Str $foo also accepts an undefined Str, the type object itself
18:28 dha Aha. Ok, now I'm convinced we really need usage synopses (or whatever we would call them) as well as full sig synopses.
18:28 pink_mist what is the ':D' construct in that called? why ':' and why 'D'? well ok, I guess I understand the D
18:29 dha because anyone coming to p6 for the first time is going to look at that, shake their head, and go away.
18:29 FROGGS pink_mist: a :foo is called a colonpair
18:29 FROGGS pink_mist: we often use these to attach information to things
18:31 pink_mist humm, so the :D colonpair is a predefined one I take it? can one create ones own colonpairs? what colonpairs already exist?
18:31 TimToady it's obviously a smiley
18:31 Juerd :D is probably the ugliest commonly used thing in Perl 6
18:31 pink_mist hehe
18:32 TimToady so it only accepts happy values
18:32 Juerd TimToady: I can't parse it as a smiley because it has no whitespace in front of it :)
18:32 dha Juerd -  I've been around perl long enough that I do not believe that. :-)
18:32 dalek rakudo/nom: 815eb48 | TimToady++ | src/core/ (5 files):
18:32 dalek rakudo/nom: remove various GLR transitional XXX comments
18:32 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/815eb48146
18:33 Juerd dha: What other Perl 6 is ugly like it, then? :)
18:33 dha Oh, I have no idea. I just don't think that's anywhere near ugly enough to be a winner. :-)
18:33 * moritz finds character clsses in reexes too verbose
18:33 Juerd Most of the language is so beautiful. Unlike Perl 5, with its $foo->$#*  :)
18:33 moritz <[a..z]> vs. [a-z]
18:34 Juerd moritz: That was my #1 ugly thing until :D came along, because :D is used much more often
18:34 * PerlJam has never used :D except in setting code.
18:34 Juerd I wonder if :D is the ASCII equivalent of ☺
18:35 Juerd (And if ☺ is equally valid.)
18:35 Juerd I could so have a sub foo (Str☺ $bar) { ... }
18:35 FROGGS no :o)
18:35 moritz sometimes I wonder if the :D could be implicit for all methods that access an attribute
18:35 Juerd I can even think of why it had to be :D instead of :)
18:36 Juerd moritz: method:D ;)
18:36 * FROGGS .oO( metho:D )
18:36 Juerd Haha
18:37 Juerd What's metho☺, though? :)
18:37 pink_mist what about metho☻ :P
18:38 Juerd pink_mist: Potato, potato :)
18:39 AlexDaniel Hm. How can I search for all bug reports that were opened by me? Both open and closed, I want to review a couple of them…
18:39 dha Is :D used in the actual language typically? Or just in implementation/definition?
18:39 mr_ron joined #perl6
18:39 mr_ron m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123');
18:40 camelia rakudo-moar cd8ce4: OUTPUT«123␤»
18:40 mr_ron m: if False { no-such-method() }
18:40 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iRWEUglGvg␤Undeclared routine:␤    no-such-method used at line 1␤␤»
18:40 Juerd dha: Scrolling through my Perl 5 code, I think I would use :D a lot in Perl 6.
18:40 Juerd I have quite a lot of "defined" checks, including "// die".
18:40 dha Oh? How so?
18:41 Juerd And then there's a lot of code that probably should have those checks, but doesn't have them.
18:41 AlexDaniel yes, because :D is not there
18:41 pnu joined #perl6
18:41 AlexDaniel Juerd: I agree
18:41 dha Ah. you'd do that rather than doing something like "is defined"? Of course, I'm not actually using my brain at the moment, so that may be complete garbage.
18:41 mr_ron is the no-such-rule problem a bug?
18:42 Juerd dha: I like how  :D is very short. I just don't like the way it looks. I have no suggestion for changing it.
18:42 dha *nod*
18:42 moritz no*d*
18:42 Juerd No:D
18:43 AlexDaniel Juerd: yes, I don't like the way it looks too
18:43 Juerd Let's have a sigil, say €, for scalars that only hold defined values ;)
18:43 patrickz joined #perl6
18:43 AlexDaniel $/var…
18:43 dha So, with respect to my suggestion earlier of doing docs in the form (full signature synopsis)/(usage synopsis)/(description and examples), here's an example of my off-the-top-of-my-head thoughts.
18:43 dha https://gist.github.com/dha/ea03e5c840f7131248de
18:43 dha Is that crazy or maybe something we can work with?
18:44 AlexDaniel or would that be /$var…
18:44 Juerd AlexDaniel: / is for regexes
18:44 AlexDaniel Juerd: hm wait, // does not work in perl6?
18:44 Juerd AlexDaniel: That's //, not /
18:44 AlexDaniel m: say undef // 25;
18:44 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/FuLGFKYhxU␤Unsupported use of undef as a value; in Perl 6 please use something more specific:␤ an undefined type object such as Any or Int,␤   :!defined as a matcher,␤        Any:U as a type constraint,␤    Nil a…»
18:44 Juerd AlexDaniel: I meant to say $/, not /.
18:45 Juerd As in, $/ is for regexes.
18:45 AlexDaniel Juerd: yeah okay, I know that it is the worst suggestion ever
18:45 moritz m: say Any // 25
18:45 camelia rakudo-moar cd8ce4: OUTPUT«25␤»
18:45 PerlJam AlexDaniel: undef doesn't work in P6 :)
18:45 AlexDaniel PerlJam: yeah, that's interesting
18:45 Juerd AlexDaniel: Nah, the worst suggestion ever was probably .=  ;)
18:45 AlexDaniel so if I want to make something undefined, I just = Any; ?
18:46 Juerd But I love how . behaves more like .= now! :)
18:46 Juerd (Syntactically)
18:46 dha Juerd -  Not ∆ for defined? :-)
18:46 PerlJam AlexDaniel: or you can make it typed to whatever (possibly more appropriate) value you want.
18:46 AlexDaniel Juerd: wait, .= ?
18:46 Juerd AlexDaniel: @array.=sort
18:46 Juerd AlexDaniel: $name.=ucfirst
18:46 AlexDaniel ah no, it's great
18:46 AlexDaniel does it work? :)
18:46 Juerd It's great but the syntax is (or was) very weird.
18:47 Juerd It's less weird now that . can be infix.
18:47 AlexDaniel m: my $name = 'hello'; $name .= ucfirst; say $name;
18:47 camelia rakudo-moar cd8ce4: OUTPUT«Method 'ucfirst' not found for invocant of class 'Str'␤  in block <unit> at /tmp/MzJZSDmzJU:1␤␤»
18:47 AlexDaniel m: my $name = 'hello'; $name .= uc; say $name;
18:47 camelia rakudo-moar cd8ce4: OUTPUT«HELLO␤»
18:47 Juerd m: @foo = <a z c d y>; @foo.=sort; say @foo.perl
18:47 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SAmWfbNPGJ␤Variable '@foo' is not declared␤at /tmp/SAmWfbNPGJ:1␤------> 3<BOL>7⏏5@foo = <a z c d y>; @foo.=sort; say @foo␤»
18:47 Juerd m: my @foo = <a z c d y>; @foo.=sort; say @foo.perl
18:47 camelia rakudo-moar cd8ce4: OUTPUT«["a", "c", "d", "y", "z"]␤»
18:47 AlexDaniel Juerd: I'd say that it is pretty consistent
18:48 AlexDaniel I like how any operator can be used like that
18:48 Juerd It used to be inconsistent until very recently
18:48 Juerd m: say([] . perl)
18:48 camelia rakudo-moar cd8ce4: OUTPUT«[]␤»
18:48 Juerd ^^ recently added syntax
18:48 Juerd You couldn't have whitespace around . before
18:48 AlexDaniel amazing!
18:49 AlexDaniel m: say 'test' . uc
18:49 camelia rakudo-moar cd8ce4: OUTPUT«TEST␤»
18:49 AlexDaniel m: say 'test' . 'woah'
18:49 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ajkeB_78Ru␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/ajkeB_78Ru:1␤------> 3say 'test' . '7⏏5woah'␤»
18:49 pink_mist . o O ( 42.3 --> 42.=3? 0_o )
18:49 Juerd pink_mist: That's a different "."
18:50 pink_mist :P
18:50 AlexDaniel m: $_ = 'foo'; say 'test' . .uc
18:50 camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/ma4zOiyY7N␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/ma4zOiyY7N:1␤------> 3$_ = 'foo'; say 'test' . .7⏏5uc␤»
18:50 AlexDaniel okay
18:50 ilmari m: say 'test'␤ .uc␤ .lc
18:50 Juerd Does Perl 6 have #line?
18:50 camelia rakudo-moar cd8ce4: OUTPUT«test␤»
18:50 Juerd I find the /tmp/$garbage ugly
18:51 Juerd m: say 'test'
18:51 camelia rakudo-moar cd8ce4: OUTPUT«test␤»
18:51 AlexDaniel m: say 'test'␤.␤uc
18:51 camelia rakudo-moar cd8ce4: OUTPUT«TEST␤»
18:51 moritz Juerd: you're welcome to write a camelia patch that creates poetic temp file names :-)
18:52 Juerd moritz: It'd be better to have a non-filename there
18:53 patrickz joined #perl6
18:54 [Coke] AlexDaniel: you ever get your ticket query?
18:54 jnthn .tell nine: A proto should be added with add_method since it's not a multi, but a proto :)
18:54 yoleaux jnthn: What kind of a name is "nine:"?!
18:54 PerlJam heh
18:54 AlexDaniel [Coke]: nope
18:54 PerlJam yoleaux: you really should be smarter about this sort of thing
18:54 dha I think I like this definition/usage/description and example template for the docs.
18:55 dha Now I just have to get everyone to buy in...
18:55 ilmari yoleaux: the one between eight and ten, obviously
18:55 [Coke] AlexDaniel: I go to rt.perl.org -> tickets -> simple search -> requestor email = .... -> add these terms and search.
18:55 jnthn yoleaux: What kind of idiot are you?
18:55 jnthn .tell nine A proto should be added with add_method since it's not a multi, but a proto :)
18:55 yoleaux jnthn: I'll pass your message to nine.
18:55 [Coke] You have a chance to remove the default search criteria, which for me basically "perl6 queue, only open tickets"
18:56 jnthn mr_ron: Your no-such-method() example doesn't call a method, it calls a sub.
18:56 ggoebel joined #perl6
18:56 ilmari m: #line 42 foo␤die
18:56 camelia rakudo-moar 815eb4: OUTPUT«Died␤  in block <unit> at /tmp/JM9OJhoD0n:2␤␤»
18:56 jnthn mr_ron: Sub calls are lexical and so can be compile-time checked. Method calls are late bound, as OO should be. And a call to a subrule is just a method call in disguise.
18:56 jnthn m: if 0 { 42.no-such-method }
18:56 camelia rakudo-moar 815eb4: ( no output )
18:57 jnthn m: no-such-sub()
18:57 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/pMxUnLi3Eb␤Undeclared routine:␤    no-such-sub used at line 1␤␤»
18:57 mr_ron m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123');
18:57 camelia rakudo-moar 815eb4: OUTPUT«123␤»
18:57 mr_ron m: if False { no-such-sub() }
18:57 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4X6QzU7Gik␤Undeclared routine:␤    no-such-sub used at line 1␤␤»
18:57 [Coke] AlexDaniel: does that help?
18:58 AlexDaniel [Coke]: oh, rocket science! Yeah hold on I'll try
18:58 mr_ron jnthn: I'm confused - I don't understand why the method part matters.  The bug would be the part about the rule.  Thanks for looking on.
18:58 jnthn mr_ron: A rule *is* a method
18:58 jnthn mr_ron: And a grammar is just a class with a different default base class
18:58 [Coke] in my experience, everyone who logs into RT sees it completely differently, so those options may not be there for you. :)
18:59 [Coke] m: say Grammar.^mro
18:59 camelia rakudo-moar 815eb4: OUTPUT«((Grammar) (Cursor) (Any) (Mu))␤»
18:59 ilmari grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo');
18:59 ilmari m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo');
18:59 camelia rakudo-moar 815eb4: OUTPUT«Method 'no-such-rule' not found for invocant of class 'G'␤  in regex TOP at /tmp/ThJ69mee4i:1␤  in block <unit> at /tmp/ThJ69mee4i:1␤␤»
19:00 mr_ron m: if '123' ~~ / \d+ | <nosuchtoken> / { say 'ok'}
19:00 camelia rakudo-moar 815eb4: OUTPUT«ok␤»
19:00 mr_ron is nosuchtoken a method?
19:00 jnthn A method call, but yes
19:00 ilmari m: 'foo' ~~ / \d+ | <nosuchtoken> /
19:00 camelia rakudo-moar 815eb4: OUTPUT«Method 'nosuchtoken' not found for invocant of class 'Cursor'␤  in block <unit> at /tmp/u_0XigXbCP:1␤␤»
19:01 jnthn I was about to do that. :)
19:01 AlexDaniel [Coke]: I can't get it to work…
19:01 ilmari qr//.^mro
19:01 ilmari m: qr//.^mro
19:01 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/jh2DBlidoh␤Unsupported use of qr for regex quoting; in Perl 6 please use rx//␤at /tmp/jh2DBlidoh:1␤------> 3qr7⏏5//.^mro␤»
19:01 dalek roast: 106b31a | usev6++ | S14-roles/ (4 files):
19:01 dalek roast: Replace some eval-dies-ok in S14-* with throws-like
19:01 dalek roast: review: https://github.com/perl6/roast/commit/106b31a689
19:01 ilmari m: rx//.^mro
19:01 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iku1uR9SK3␤Null regex not allowed␤at /tmp/iku1uR9SK3:1␤------> 3rx/7⏏5/.^mro␤»
19:01 ilmari m: rx/./.^mro
19:01 camelia rakudo-moar 815eb4: ( no output )
19:01 FROGGS m: say rx/./.^mro
19:01 ilmari m: say rx/./.^mro
19:01 camelia rakudo-moar 815eb4: OUTPUT«((Regex) (Method) (Routine) (Block) (Code) (Any) (Mu))␤»
19:01 camelia rakudo-moar 815eb4: OUTPUT«((Regex) (Method) (Routine) (Block) (Code) (Any) (Mu))␤»
19:01 mr_ron if it tries to call it the problem is found but it kind of seems to defeat "strict" in a way
19:01 ilmari FROGGS: damnit
19:01 AlexDaniel oooh wait
19:01 FROGGS ;o)
19:01 AlexDaniel I think I got it
19:02 [Coke] \o/
19:02 FROGGS mr_ron: method calls are not resolved at compile time... sub calls are
19:02 AlexDaniel [Coke]: well not really, it seems like it does not list closed ones
19:03 FROGGS m: '123' ~~ / \d+ | <&nosuchtoken> /
19:03 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/DXCIIZ9RCU␤Undeclared routine:␤    &nosuchtoken used at line 1␤␤»
19:03 AlexDaniel now I have to figure out what I have to type there to get all…
19:03 FROGGS mr_ron: the SORRY tells you it is a compile time error
19:03 AlexDaniel oh, just “any”
19:04 yqt joined #perl6
19:04 AlexDaniel [Coke]: so the solution is: 1. go here https://rt.perl.org/Public/Search/Simple.html 2. type your email address and “any”, like: alex.jakimenko@gmail.com any
19:04 AlexDaniel and that's it
19:04 AlexDaniel pretty simple
19:07 AlexDaniel Hm I wish I could bookmark it but I think that it will throw a CSRF error
19:08 AlexDaniel … it does it all the time…
19:09 ecocode joined #perl6
19:12 diana_olhovik joined #perl6
19:12 mr_ron thanks to everyone for the clarification that rules are like methods ...
19:14 apejens joined #perl6
19:14 Gardner joined #perl6
19:14 grondilu joined #perl6
19:14 pink_mist joined #perl6
19:15 dalek specs: 806ebcb | (Prog Rammer)++ | S07-lists.pod:
19:15 dalek specs: Add another example that seemed to be missing
19:15 dalek specs: review: https://github.com/perl6/specs/commit/806ebcb047
19:15 dalek specs: cc54811 | jnthn++ | S07-lists.pod:
19:15 dalek specs: Merge pull request #100 from prammer/one-arg-clarify
19:15 dalek specs:
19:15 dalek specs: Add another example that seemed to be missing
19:15 dalek specs: review: https://github.com/perl6/specs/commit/cc54811210
19:17 AlexDaniel m: say [.] ('test', &uc);
19:17 camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YL0bdyLvyp␤Unsupported use of . to concatenate strings; in Perl 6 please use ~␤at /tmp/YL0bdyLvyp:1␤------> 3say [.]7⏏5 ('test', &uc);␤»
19:18 nine jnthn: thanks! Progress :)
19:18 yoleaux 18:55Z <jnthn> nine: A proto should be added with add_method since it's not a multi, but a proto :)
19:18 mr_ron From http://design.perl6.org/S05.html#Regex_Routines%2C_Named_and_Anonymous reads: The analogy between sub and regex extends much further. Just as you can have anonymous subs and named subs... ...so too you can have anonymous regexes and named regexes (and tokens, and rules):  These keyword-declared regexes are officially of type Method, which is derived from Routine.
19:18 nine I now have an EnumHOW based Boolean class in BOOTSTRAP that ~~ Int
19:19 mr_ron You have to read the fine print.
19:20 diana_olhovik___ joined #perl6
19:22 telex joined #perl6
19:23 tokuhiro_ joined #perl6
19:25 dalek rakudo/nom: b1f75d0 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
19:25 dalek rakudo/nom: fixes for CURLI until Final Solution™ is inflicted upon us
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b1f75d02f5
19:25 dalek rakudo/nom: b805f49 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
19:25 dalek rakudo/nom: fix spaces
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b805f49bf8
19:25 dalek rakudo/nom: ae9afc5 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
19:25 dalek rakudo/nom: no candidates doesnt need a check
19:25 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/ae9afc5562
19:25 dalek rakudo/nom: 9e8b7b4 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
19:25 dalek rakudo/nom: Merge pull request #541 from tony-o/nom
19:25 dalek rakudo/nom:
19:25 dalek rakudo/nom: fixes for CURLI until Final Solution™ is inflicted upon us
19:26 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/9e8b7b4ef5
19:27 dalek roast: 202bbe6 | usev6++ | S (3 files):
19:27 dalek roast: Replace more eval-dies-ok with throws-like (S15/S29)
19:27 dalek roast: review: https://github.com/perl6/roast/commit/202bbe6359
19:30 btyler dha: any thoughts on "Usage" first in the doc template you linked?
19:30 apotheon_ joined #perl6
19:32 tony-o lizmat++ ty for merge
19:32 timotimo o/
19:34 rindolf joined #perl6
19:35 lizmat tony-o: yw
19:35 yoleaux 17:18Z <dha> lizmat: Have blogged, if you're still summarizing. http://dhaperl6.blogspot.com/2015/09/im-back.html
19:35 jnthn time for rest...couple of flights tomorrow :S &
19:35 nine jnthn: thank you so much for fixing this 16 bit overflow just in time to safe me from hours of frustrating debugging.
19:35 jnthn nine: Welcome ;)
19:36 lizmat jnthn: safe travels!
19:36 jnthn lizmat: Thanks :)
19:37 * jnthn is going for a few days teaching, so will be a bit less available than normal this week
19:37 jnthn No more teaching until Nov after this though :)
19:37 jnthn anyways, 'night o/
19:38 nine Good night!
19:39 dha joined #perl6
19:41 lizmat .tell dha I feel it would get better attention next week, instead of being in the barrage of blog posts of this week
19:41 yoleaux lizmat: I'll pass your message to dha.
19:41 dha lizmat -  so noted.
19:41 yoleaux 19:41Z <lizmat> dha: I feel it would get better attention next week, instead of being in the barrage of blog posts of this week
19:42 dha But I warn you, I MAY BLOG AGAIN. :-)
19:42 lizmat that is fine, I think we can handle that  :-)
19:43 tokuhiro_ joined #perl6
19:44 vendethiel I was told someone got an APL module for Perl6. is that true?
19:44 vendethiel it can't quite be just "embedded", as + and / are reused :P
19:46 dha I made the mistake of having an idea. :-)
19:50 masak http://irclog.perlgeek.de/perl6/2015-09-27#i_11280665 # what it's like to be a (good) language designer
19:54 apotheon joined #perl6
19:55 rurban joined #perl6
19:58 [Coke] vendethiel: (APL) not that I'm aware of. There was an APL implementation on parrot years ago, but it's surely bitrotted.
19:59 vendethiel [Coke]: thank you! :)
20:01 [Coke] vendethiel: exporting to github...
20:05 [Coke] https://github.com/coke/paraplegic/
20:08 _dolmen_ joined #perl6
20:10 vendethiel [Coke]: thank you :-)
20:12 vendethiel [Coke]: were grammars not implemented then?
20:12 vendethiel the code is pretty short, for the rest
20:12 vendethiel oh, my bad, it just has this .pg extension -- that confused me
20:21 [Coke] vendethiel: this is ancient ancient code.
20:23 _thou joined #perl6
20:23 bakedb joined #perl6
20:24 ecocode left #perl6
20:28 AlexDaniel masak: no!! Here is what it's like to be a good language designer http://www.artima.com/weblogs/viewpost.jsp?thread=98196
20:28 AlexDaniel sorry, couldn't resist
20:28 masak :P
20:28 masak kudos for springing Python on me, and not PHP
20:29 jkva joined #perl6
20:30 * masak .oO( T_PAAMAYIM_NEKUDOTAYIM )
20:30 AlexDaniel I thought that everyone already agreed that PHP is the best language out there, so the next is…
20:30 dalek rakudo/nom: 3b1aa2e | lizmat++ | src/core/IO/Handle.pm:
20:30 dalek rakudo/nom: Introduce IO::Handle.supply
20:30 dalek rakudo/nom:
20:30 dalek rakudo/nom: Change an open IO::Handle into an on-demand Supply, so you can now
20:30 dalek rakudo/nom: also say: "words".IO.open.supply.lines.tap: { .say } .  TIMTOWTDI
20:30 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3b1aa2e267
20:30 vendethiel lizmat++
20:31 masak supply.lines! :P
20:31 lizmat first time I could use the new supply { } syntax  :-)
20:31 lizmat masak: Supply.lines already existed for quite some time
20:31 masak I'm so out of touch :)
20:31 * masak .oO( <masak> masak: keep up! )
20:34 pink_mist lizmat++ yay, been hoping that would get done :D
20:37 lizmat hmmm... it should probably be called Supply, as it acts as a coercer
20:37 larion joined #perl6
20:43 dalek rakudo/nom: e1cedd3 | lizmat++ | src/core/IO/Handle.pm:
20:43 dalek rakudo/nom: Rename to Supply so it can be used as a coercer
20:43 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e1cedd388e
20:46 jkva joined #perl6
20:48 AlexDaniel m: say Any < 0
20:48 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/05RXqR5Kr3:1␤False␤»
20:48 AlexDaniel m: say Any > 0
20:48 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/jsQ_57CDSP:1␤False␤»
20:48 AlexDaniel m: say Any == 0
20:48 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context  in block <unit> at /tmp/aEqrf9qsBo:1␤True␤»
20:49 AlexDaniel hm
20:50 AlexDaniel m: say Any eq 'a';
20:50 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/HjqLdRZ6ep:1␤False␤»
20:50 AlexDaniel I don't understand this error message. Is it just me?
20:50 timotimo wow, "words".IO.open.supply.lines.tap: { .say }; that's so concise! :) :)
20:50 timotimo AlexDaniel: what's the problem in this case?
20:51 AlexDaniel timotimo: How should I interpret this: Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at ./test2.pl:4
20:51 lizmat timotimo: it's only part of my secret plan to implement support for any type of line ending in Supply.lines :-)
20:51 timotimo m: say Any.^name; say Any.perl; say Any.gist; Any.say
20:51 camelia rakudo-moar 9e8b7b: OUTPUT«Any␤Any␤(Any)␤(Any)␤»
20:52 timotimo it's unfortunate that it says "Any" in that case
20:52 lizmat AlexDaniel: it feels like the second line is caused by the use of Any in the warning
20:52 timotimo because that's also what the value is in this case
20:52 ilmari m: Int > 0
20:52 camelia rakudo-moar 9e8b7b: OUTPUT«WARNINGS:␤Useless use of ">" in expression "Int > 0" in sink context (line 1)␤Invocant requires an instance of type Int, but a type object was passed.  Did you forget a .new?␤  in block <unit> at /tmp/z63KHNPY3f:1␤␤»
20:53 lizmat AlexDaniel: or maybe not  :-(
20:53 ilmari a bare type name is an undef value of that type
20:53 AlexDaniel "can stringify undefined things" – what does this even mean. "if needed" for who? Perhaps I'm an imbecile, but I don't understand a word in this message…
20:54 pink_mist AlexDaniel: if the thing it's called on is undefined, it needs to be stringified, and it can be!
20:55 AlexDaniel pink_mist: ooooh
20:56 AlexDaniel pink_mist: OK, now I know how to read it!
20:57 * AlexDaniel scratches his head
20:57 nine m: enum Foo (1, 2, 3);
20:57 camelia rakudo-moar 9e8b7b: ( no output )
20:58 AlexDaniel well, you know what… I'll submit a bug report since I find it less than awesome. Probably just a little bit of rephrasing will do the trick
20:58 nine m: enum Foo (1, 2, 3); my Foo $foo = 2; say $foo;
20:58 camelia rakudo-moar 9e8b7b: OUTPUT«Type check failed in assignment to $foo; expected Foo but got Int␤  in block <unit> at /tmp/neJOu1Y4dD:1␤␤»
20:58 nine m: enum Foo (1, 2, 3); my Foo $foo = Foo::2; say $foo;
20:58 camelia rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/UZGSc8gVMw␤Two terms in a row␤at /tmp/UZGSc8gVMw:1␤------> 3enum Foo (1, 2, 3); my Foo $foo = Foo::7⏏2; say $foo;␤    expecting any of:␤        infix␤        infix stopper␤        postfix…»
20:59 mst AlexDaniel: tweaking error messages for clarity is an aggravating but essential contribution
20:59 AlexDaniel but the problem I was going to talk about is a little bit different
20:59 AlexDaniel look, Any == 0 – True, Ane eq '' – True
20:59 AlexDaniel everything else is false
21:00 AlexDaniel it feels like it is a leftover after the time when '0' was False
21:00 AlexDaniel is it true?
21:01 pink_mist m: say 0 == False
21:01 camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
21:01 nine m: enum Boolean <Falser Truer>; say Falser;
21:01 camelia rakudo-moar 9e8b7b: OUTPUT«Falser␤»
21:01 nine m: enum Boolean <Falser Truer>; say Falser.WHAT;
21:01 camelia rakudo-moar 9e8b7b: OUTPUT«(Boolean)␤»
21:01 nine m: enum Boolean <Falser Truer>; say Falser.HOW;
21:01 camelia rakudo-moar 9e8b7b: OUTPUT«Perl6::Metamodel::EnumHOW.new␤»
21:01 nine m: enum Boolean <Falser Truer>; say Falser.^attributes>>.name;
21:01 camelia rakudo-moar 9e8b7b: OUTPUT«($!key $!value $!value)␤»
21:01 nine Two $!value attributes?
21:02 lizmat nine: that's possible, if they are of different types
21:03 dalek specs: 7934ea4 | PerlJam++ | S11-modules.pod:
21:03 dalek specs: minor typo fix
21:03 dalek specs: review: https://github.com/perl6/specs/commit/7934ea47cf
21:03 nine m: use nqp; enum Boolean <Falser Truer>; say nqp::getattr(Truer, '$!value');
21:03 camelia rakudo-moar 9e8b7b: OUTPUT«===SORRY!===␤Unknown QAST node type NQPMu␤»
21:03 lizmat PerlJam: braking the speed of sound :-)
21:03 AlexDaniel so, in otherwords, should Any == 0 be True?
21:04 pink_mist I thought it was
21:04 lizmat well, in P5 tradition, yes
21:04 lizmat with a warning :-)
21:04 masak m: class C { has $1value }; class D is C { has $!value }; say D.^attributes>>.name
21:04 camelia rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/P73NGuRCWL␤Cannot declare a numeric variable␤at /tmp/P73NGuRCWL:1␤------> 3class C { has $17⏏5value }; class D is C { has $!value }; s␤»
21:04 cognominal joined #perl6
21:04 lizmat m: say Str == 0
21:04 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Str in numeric context  in block <unit> at /tmp/KNDdOQeZwX:1␤True␤»
21:04 masak m: class C { has $!value }; class D is C { has $!value }; say D.^attributes>>.name
21:04 camelia rakudo-moar 9e8b7b: OUTPUT«($!value $!value)␤»
21:04 lizmat m: say Int eq ''
21:04 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Int in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/DRo_I3cGcP:1␤True␤»
21:05 AlexDaniel lizmat: why? When '' and 0 both were falsey, it probably made sense. But currently it looks a bit unexpected
21:05 lizmat ah, *very* good point!
21:06 AlexDaniel that's what I was trying to say
21:06 lizmat m: say ?""
21:06 camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
21:06 lizmat m: say ?0
21:06 camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
21:06 AlexDaniel hmmmmmmm?
21:06 lizmat but their still False ?
21:06 lizmat I think you're mistaken with:
21:06 lizmat m: say ?"0"
21:06 camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
21:07 lizmat *that* used to be false
21:07 AlexDaniel ahhhhhh
21:07 pink_mist m: Any eq "0"
21:07 camelia rakudo-moar 9e8b7b: OUTPUT«WARNINGS:␤Useless use of "eq" in expression "Any eq \"0\"" in sink context (line 1)␤Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/pdYj…»
21:07 pink_mist m: say Any eq "0"
21:07 camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed.  in block <unit> at /tmp/fp89IfYjfm:1␤False␤»
21:07 AlexDaniel lizmat: right! I did!
21:07 AlexDaniel thanks!
21:07 timotimo hm, if i had asked jnthn how exactly those things were supposed to be done, i would have been interested in hooking up the grammar and syntax for shaped arrays
21:07 timotimo i wonder if that's difficult?
21:08 masak timotimo: Try It And See?
21:08 PerlJam masak: How do you get the fully qualified names for those attributes?
21:10 timotimo mhm
21:10 ilmari m: class Foo { has $!vaue } Foo.^attributes[0].^attributes
21:10 camelia rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/YGPiNcQzJ9␤Strange text after block (missing semicolon or comma?)␤at /tmp/YGPiNcQzJ9:1␤------> 3class Foo { has $!vaue }7⏏5 Foo.^attributes[0].^attributes␤    expecting any of:␤        infix␤ …»
21:10 ilmari m: class Foo { has $!vaue }; Foo.^attributes[0].^attributes
21:10 camelia rakudo-moar 9e8b7b: ( no output )
21:11 ilmari m: class Foo { has $!vaue }; say Foo.^attributes[0].^attributes
21:11 camelia rakudo-moar 9e8b7b: OUTPUT«Method 'gist' not found for invocant of class 'BOOTSTRAPATTR'␤  in block <unit> at /tmp/f37hXgz0xG:1␤␤»
21:11 PerlJam oh, nevermind, the package is stored as part of the attribute
21:11 ilmari m: class Foo { has $!vaue }; say Foo.^attributes[0].^attributes>>.name
21:11 camelia rakudo-moar 9e8b7b: OUTPUT«($!name $!rw $!ro $!required $!has_accessor $!type $!container_descriptor $!auto_viv_container $!build_closure $!package $!inlined $!box_target $!positional_delegate $!associative_delegate $!why)␤»
21:12 masak m: class C { has $!value }; class D is C { has $!value }; for D.^mro -> $class { for $class.^attributes(:local) -> $attr { say "$class.^name() $attr" } }
21:12 camelia rakudo-moar 9e8b7b: OUTPUT«D $!value␤C $!value␤»
21:12 masak PerlJam: ^
21:12 ][Sno][ joined #perl6
21:14 nine m: enum Boolean <Falser Truer>; say Falser.^attributes>>.package;
21:14 camelia rakudo-moar 9e8b7b: OUTPUT«((Boolean) (Boolean) (Int))␤»
21:14 PerlJam still awkward though
21:14 lizmat m: dd (1,2) xx 5   # with the 1 arg rule, I would expect (1,2,1,2,1,2,1,2,1,2) here
21:14 camelia rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2)).Seq␤»
21:14 PerlJam nine: Are you working on making True ~~ Int  and Bool ~~ Int ?
21:14 nine PerlJam: yes
21:14 masak nine++
21:15 lizmat nine: would you agree with ^^^
21:15 mst awwaiid: did you get anywhere?
21:15 PerlJam nine: I look forward to seeing how you make it so.   I thought it would be some lowish hanging fruit but when I looked at it the other night, it didn't turn out well.
21:15 nine PerlJam: yes, it's full of challenges :)
21:16 masak it's not LHF, it's fraught
21:16 mst "it's only hanging low until the relevant parts of your anatomy retract in fear"
21:16 nine lizmat: if you see xx as infix:<xx>(\list, \repeat) then it's not a single arg anymore. When in doubt I kept the input structure in place, since it's very easy to explicitly flatten the result and impossible to do the opposite
21:17 btyler mst: RE newline method calls? https://github.com/rakudo/rakudo/commit/cb25b2f475f31335d77d018474482aceec2c74de
21:17 lizmat nine: by that argument push( @a, @b ) would also not be single arg
21:18 masak except if you consider @a the invocant of .push, and thus special
21:18 masak no such argument can be made for infix:<xx>
21:18 mst btyler: so what means I can do $foo.bar()    .baz() now?
21:19 btyler mst: yep
21:19 mst *that
21:19 masak m: say dd (1, 2).&infix:<xx>(5)
21:19 camelia rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2))␤Nil␤»
21:19 masak :)
21:19 mst btyler: excellent
21:19 masak wow, I have never called an operator as a method before. I'm gonna use this from now on.
21:19 dalek rakudo-star-daily: 996608a | coke++ | log/ (9 files):
21:19 dalek rakudo-star-daily: today (automated commit)
21:19 dalek rakudo-star-daily: review: https://github.com/coke/rakudo-star-daily/commit/996608a86a
21:21 btyler m: https://gist.github.com/kanatohodets/af74ad87da34a4bc8ff8
21:21 camelia rakudo-moar 9e8b7b: OUTPUT«bar called 1 times␤bar called 2 times␤bar called 3 times␤bar called 4 times␤»
21:21 btyler mst ^
21:21 pmurias joined #perl6
21:21 btyler (just to make sure we're talking about the same thing)
21:21 pmurias AlexDaniel: there is a lot of value in consistency
21:22 mst btyler: yes, that's exactly what I wanted :D
21:22 AlexDaniel pmurias: I agree, but what made you say so?
21:22 pmurias AlexDaniel: you posting a link to Guido arguing that functional programing style things should be removed from python
21:22 AlexDaniel pmurias: I mean, which one of my messages are you commenting on? :)
21:23 AlexDaniel ah
21:24 dalek rakudo/nom: f142d7d | ugexe++ | src/core/CompUnitRepo/Local/Installation.pm:
21:24 dalek rakudo/nom: Allow CURLI loading of .pm extension modules
21:24 dalek rakudo/nom:
21:24 dalek rakudo/nom: CURLI currently writes the manifest such that it may use 'pm' *or* 'pm6' as the key
21:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/f142d7d840
21:24 dalek rakudo/nom: a41b719 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
21:24 dalek rakudo/nom: Merge pull request #542 from ugexe/patch-1
21:24 dalek rakudo/nom:
21:24 dalek rakudo/nom: Allow CURLI loading of .pm extension modules
21:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/a41b719a29
21:25 AlexDaniel pmurias: well, as far as I can see it's not that much about consistency rather than just “I don't like functional programming”. And that's OK, but everyone is different…
21:26 PerlJam AlexDaniel: oddly, you are not the first to make that observation about Guido
21:26 pmurias removing functional programming style things from python makes things more consistent
21:27 pmurias and the python language makes them ugyly
21:27 pmurias * ugly
21:27 dalek roast: 1753a2b | usev6++ | S04-statements/ (2 files):
21:27 dalek roast: Replace more eval-dies-ok with throws-like (S04)
21:27 dalek roast: review: https://github.com/perl6/roast/commit/1753a2b6f9
21:30 AlexDaniel pmurias: correct, but at the same time it doesn't really mean that such consistency (which is basically about removing features) will make the language better. Which is why the left the things intact, I guess.
21:30 AlexDaniel or maybe it was just because a lot of people were crying about it too much, I don't know
21:30 pmurias AlexDaniel: IMHO there are two different ways of designing things
21:30 [Coke] m: say so any Any or all on &
21:30 camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
21:31 AlexDaniel [Coke]: what?!
21:31 * [Coke] whistles innocently.
21:31 masak m: say so not Cool or .WHAT
21:31 camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
21:31 pmurias AlexDaniel: piling good things on top of each other or carefully choose a small elegant mix of things
21:32 pmurias AlexDaniel: both of those ways work
21:32 pmurias AlexDaniel: at least for programming languages and board games ;)
21:33 AlexDaniel pmurias: I don't see which way includes timtowtdi
21:33 masak pmurias: reminds me of http://zoo.cs.yale.edu/classes/cs422/2014/bib/hoare81emperor.pdf
21:33 pmurias timtowdi is just piling good things without much concern for consistency
21:33 PerlJam Coke: we haven't had any obfuscation contests yet and you're already trying to win!
21:33 AlexDaniel PerlJam: oh! Wait a minute…
21:34 AlexDaniel “<PerlJam> AlexDaniel: You clearly win the Perl6 obfuscation contest ;)”
21:35 PerlJam Well, it's you an Coke in the lead then  :)
21:35 PerlJam s/an/and/
21:35 AlexDaniel for those who don't remember, the code was
21:35 AlexDaniel m: say [::]/\/\/\/\/\/\[:/
21:35 camelia rakudo-moar 9e8b7b: OUTPUT«12␤»
21:35 pink_mist oh god
21:36 lizmat m: say so not Cool without Exception
21:36 camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
21:36 AlexDaniel sometimes the output is different but I don't remember why
21:36 pmurias AlexDaniel: Perl 6 is just an attempt to refine the pilling of goods features philosophy of Perl 5 by perfecting every thing on the pile and making them all consistent
21:37 AlexDaniel pmurias: but there are so many new features!
21:41 AlexDaniel what is “on”?
21:41 AlexDaniel m: on
21:41 camelia rakudo-moar 9e8b7b: OUTPUT«5===SORRY!5=== Error while compiling /tmp/_R2pMKtpxJ␤Calling on() will never work with declared signature (&setup)␤at /tmp/_R2pMKtpxJ:1␤------> 3<BOL>7⏏5on␤»
21:41 lizmat .tell FROGGS added tie-breaking logic to https://gist.github.com/lizmat/f3807956c354c14902a3/revisions
21:41 yoleaux lizmat: I'll pass your message to FROGGS.
21:41 masak m: use Test; sub we($) {}; is so not Cool, so say we(all())
21:41 camelia rakudo-moar 9e8b7b: OUTPUT«all()␤ok 1 - ␤»
21:41 masak m: use Test; sub we($) {}; is so not Cool, so say we all()
21:41 camelia rakudo-moar 9e8b7b: OUTPUT«all()␤ok 1 - ␤»
21:41 pmurias AlexDaniel: a bigger pile of good stuff is better
21:41 lizmat .tell FROGGS is that something you can agree to?
21:41 yoleaux lizmat: I'll pass your message to FROGGS.
21:42 pink_mist pmurias: and then you get PHP :P
21:42 yqt joined #perl6
21:42 pmurias pink_mist: PHP is just piling crap
21:42 ilmari pink_mist: no, that's if you forget the "good" part
21:44 lizmat AlexDaniel: it appears "on" is not documented on doc.perl6.org
21:44 masak 'night, #perl6
21:44 AlexDaniel lizmat: well, that's why I asked
21:44 tokuhiro_ joined #perl6
21:45 hoelzro o/ masak
21:45 PerlJam There is no "on"
21:46 lizmat https://github.com/perl6/specs/blob/master/S17-concurrency.pod   # some text about on near the end
21:46 lizmat PerlJam: oh, but there is
21:46 lizmat just not documented
21:46 lizmat afaics
21:48 dalek rakudo/nom: 59b5a4b | TimToady++ | src/core/Range.pm:
21:48 dalek rakudo/nom: allow shifting and scaling of Range values
21:48 dalek rakudo/nom:
21:48 dalek rakudo/nom: Since it's actually kind of difficult to do correctly otherwise and
21:48 dalek rakudo/nom: maintain endpoint exclusions, we now allow basic arithmetic operations
21:48 dalek rakudo/nom: on a Range to clone the Range and modify the endpoints in order to shift
21:48 dalek rakudo/nom: an interval arithmetically or expand/contract it geometrically.
21:48 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/59b5a4b021
21:49 dalek roast: 139c10c | TimToady++ | S02-types/range.t:
21:49 dalek roast: test new arithmetic ops on intervals
21:49 dalek roast: review: https://github.com/perl6/roast/commit/139c10c1bd
21:52 dalek doc: 1f5443d | (Ronald Schmidt)++ | lib/Language/traps.pod:
21:52 dalek doc: change typo mofify to modify
21:52 dalek doc: review: https://github.com/perl6/doc/commit/1f5443dbdf
21:52 ilmari m: say (0.5..5.0).list
21:52 camelia rakudo-moar 9e8b7b: OUTPUT«(0.5 1.5 2.5 3.5 4.5)␤»
21:54 TimToady this doesn't prevent people from asking for nonsense, of course :)
21:55 * ilmari was thinking scaling a range would scale the interval too
21:55 TimToady nope, that way lies madness
21:55 dalek doc: 5068ab3 | lizmat++ | WANTED:
21:56 dalek doc: Add "on" to the WANTED list
21:56 dalek doc: review: https://github.com/perl6/doc/commit/5068ab345c
21:56 lizmat $ 6 'dd ^10 + 5'
21:56 lizmat 5..^15
21:56 lizmat cool  :-)
21:57 ilmari m: say (1..10) «/» 2
21:57 camelia rakudo-moar 9e8b7b: OUTPUT«(0.5 1 1.5 2 2.5 3 3.5 4 4.5 5)␤»
21:57 ilmari how long does it take from a commit to land until camelia runs it?
21:58 TimToady depends on where in the hour it is, but I expect this one in about half an hour
21:58 TimToady maybe 15 minutes
21:58 TimToady er, 25, I mean
21:58 pierrot joined #perl6
21:59 TimToady starts recompile at 7 after the hour, and usually takes til about 20 after or so
21:59 TimToady (last I knew)
22:00 timotimo huh, so if it's a range it won't turn into a number any more when used with arithmetic operations?
22:01 lizmat timotimo: wrt to the .min / .max optimisation: are there a large number of numbers involved?
22:02 lizmat timotimo: maybe an approach that wouldn't reify all the values in one go would be better ?
22:02 TimToady timotimo: it still numifies the same
22:02 timotimo 9 values in my case
22:02 timotimo TimToady: yeah, but not with infix + and - apparently
22:02 TimToady the situation never arose in the test suite, as a data point
22:03 timotimo OK
22:04 lizmat_ joined #perl6
22:04 lizmat_ m: dd +^10
22:04 camelia rakudo-moar 9e8b7b: OUTPUT«-11␤»
22:04 timotimo haha
22:04 timotimo that's a different operator :)
22:05 lizmat_ yeah  :-)
22:05 dalek rakudo/nom: e503dfc | lizmat++ | src/core/Range.pm:
22:05 dalek rakudo/nom: Use the features of .clone
22:05 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/e503dfcbdb
22:05 kid51 joined #perl6
22:05 TimToady one of those things you might write in a repl but almost never in real code
22:06 timotimo a big performance penalty in my code arises from the way i grab neighbouring fields in my 2d array
22:07 timotimo i just index into values located "outside" the array and catch that with // Inf
22:07 timotimo because .min will make the Inf "disappear"
22:07 lizmat timotimo: do you use a slice?
22:07 timotimo i do not
22:07 lizmat AT-POS instead of [] ?
22:07 timotimo no
22:07 lizmat you could try that
22:07 timotimo i write it like that because it looks a bit less bleh :)
22:07 timotimo the problem really is that it throws the exception and i resolve it with //
22:07 timotimo at least it causes deoptimizations
22:11 lizmat timotimo: in the past (long, long ago, when writing a dungeon game) I resolved this by actually having out of bounds elements with a value
22:11 lizmat that would indicate border in a dispatch table
22:11 timotimo yes, that's a very common way to do this kind of thing
22:11 timotimo add 2 to each dimension and index with 1
22:11 timotimo er, i mean: starting with 1
22:11 lizmat yup, something like that
22:12 timotimo the worst thing for this program is that it leaks something that is tracked by the garbage collector and ends up with a gen2 root put in place for it
22:12 timotimo the garbage collection time rises steadily
22:12 timotimo i've had it reach 100ms after perhaps a minute of execution
22:13 timotimo hm. i'm actually quite curious to see how the performance changes when i remove all SDL2 stuff from that
22:13 lizmat gnight, #perl6!
22:14 TimToady o/
22:15 timotimo gnite lizmat
22:16 timotimo can i just say
22:16 timotimo i'm *so* glad the whole reify crap is gone
22:19 TimToady no, you can't just say that
22:19 timotimo #perl6 is a free country
22:19 timotimo you can't tell me what i can or can't tell you!
22:19 TimToady you can't *just* say that, obviously
22:20 timotimo pff, are you making fun of my ability to say more than just one thing?
22:20 TimToady ayup
22:20 timotimo nobody says what i say has to be right, or not funny
22:21 TimToady we don't have anyone named nobody around here
22:21 gfldex ohai!
22:21 timotimo nobody's named that
22:21 gfldex 00:21 [freenode] -!- Nick nobody is already in use
22:21 gfldex o.0
22:21 pink_mist what about anybody?
22:21 pink_mist somebody?
22:22 pink_mist everybody!
22:27 skids joined #perl6
22:31 TimToady m: say (1..10) * 10
22:31 camelia rakudo-moar 9e8b7b: OUTPUT«100␤»
22:31 TimToady slow recompile...
22:37 AlexDaniel m: say (3..15) * 2
22:37 camelia rakudo-moar 9e8b7b: OUTPUT«26␤»
22:41 z8 joined #perl6
22:43 pink_mist joined #perl6
22:43 TimToady camelia not recompiling for some reason
22:46 dalek roast: be4fc4f | TimToady++ | S03-operators/precedence.t:
22:46 dalek roast: tests to make sure . has proper precedence
22:46 dalek roast: review: https://github.com/perl6/roast/commit/be4fc4f082
22:47 flussence happy (belated) birthday, TimToady! (I've just caught up on 2 days of backlog, finally understand what the "one-arg rule" is now...)
22:47 dalek rakudo/nom: 140f3c9 | TimToady++ | src/Perl6/Grammar.nqp:
22:47 dalek rakudo/nom: don't really need the fake precedence level
22:47 dalek rakudo/nom:
22:47 dalek rakudo/nom: since left-to-right associativity makes . happen after prefix anyway,
22:47 dalek rakudo/nom: and now we have the tests to prove it.
22:47 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/140f3c90ed
22:49 leont joined #perl6
22:52 gfldex m: my @a = (1..2,4..5).flat.map({$_, ''}); @a.perl.say; my %s = @a; %s.perl.say;
22:52 camelia rakudo-moar 9e8b7b: OUTPUT«[(1, ""), (2, ""), (4, ""), (5, "")]␤{"1 " => $(2, ""), "4 " => $(5, "")}␤»
22:53 gfldex m: my @a = (1..2,4..5).flat.map({slip $_, ''}); @a.perl.say; my %s = @a; %s.perl.say;
22:53 camelia rakudo-moar 9e8b7b: OUTPUT«[1, "", 2, "", 4, "", 5, ""]␤{"1" => "", "2" => "", "4" => "", "5" => ""}␤»
23:00 ShimmerFairy TimToady: ah, so nqp does the wrong thing, then? (Also, there's no tcuc, but I don't think a cadr/cdar/etc. style collection of casing methods would be a bad thing)
23:00 yoleaux 15:56Z <TimToady> ShimmerFairy: no, tc is by definition only for initial caps; use tcuc if you want to uppercase everything
23:02 ShimmerFairy Also, was that "faking precedence" issue related to rakudo having a fake 'unary' associativity?
23:17 mr_ron m: my @a = (1..2,4..5).flat.flatmap({$_, ''}); @a.perl.say; my %s = @a; %s.perl.say;
23:17 camelia rakudo-moar 9e8b7b: OUTPUT«[1, "", 2, "", 4, "", 5, ""]␤{"1" => "", "2" => "", "4" => "", "5" => ""}␤»
23:19 timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;0] = Inf; say @field;
23:19 camelia rakudo-moar 9e8b7b: OUTPUT«[[Inf 0 0 1 0 0 1] [(Any) 1 1 1 1 0 0] [(Any) 1 0 1 1 1 1] [(Any) 0 0 1 0 1 1] [(Any) 0 1 0 0 1 0] [(Any) 0 0 1 0 1 1] [(Any) 1 1 1 0 1 0]]␤»
23:19 timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;0] = Inf xx *; say @field;
23:19 camelia rakudo-moar 9e8b7b: OUTPUT«[[Inf 0 0 1 0 1 0] [Inf 1 1 0 0 0 0] [Inf 0 0 1 0 0 1] [Inf 0 0 1 0 1 0] [Inf 1 1 0 1 1 1] [Inf 0 1 1 0 1 1] [Inf 1 0 1 0 0 0]]␤»
23:19 timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;*-1] = Inf xx *; say @field;
23:19 camelia rakudo-moar 9e8b7b: OUTPUT«[[0 0 0 1 1 0 Inf] [1 1 0 0 1 1 Inf] [1 0 1 0 1 1 Inf] [0 0 0 1 0 0 Inf] [0 0 0 1 1 1 Inf] [0 0 0 0 0 0 Inf] [1 0 1 1 0 0 Inf]]␤»
23:19 timotimo huh? why do i get "cannot modify an immutable num" locally ...
23:19 timotimo oh
23:20 timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[0] = Inf xx (5 + 2); @field[*;*-1] = Inf xx *; say @field;
23:20 camelia rakudo-moar 9e8b7b: OUTPUT«Cannot modify an immutable Num␤  in block <unit> at /tmp/mDtfFM705a:1␤␤»
23:20 timotimo i don't understand why this happens; is my code wrong?
23:20 timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[0] = Inf xx (5 + 2); say @field;
23:20 camelia rakudo-moar 9e8b7b: OUTPUT«[(Inf Inf Inf Inf Inf Inf Inf) [0 1 1 1 0 0 1] [0 1 1 1 0 1 1] [1 1 1 1 1 1 1] [1 0 0 1 0 0 1] [1 1 0 1 1 1 0] [0 1 1 0 0 0 1]]␤»
23:20 timotimo ah, i see
23:24 AlexDaniel say (3..15) * 2
23:24 AlexDaniel m: say (3..15) * 2
23:24 camelia rakudo-moar 9e8b7b: OUTPUT«26␤»
23:34 timotimo i'm a tiny bit surprised the script still seems to cause lots of deopt in postcircumfix:<[ ]>
23:36 bjz joined #perl6
23:37 pierrot joined #perl6
23:44 pierrot joined #perl6
23:46 tokuhiro_ joined #perl6
23:52 pierrot_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo