»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, std:, or /msg camelia p6: ... | irclog: irc.perl6.org | UTF-8 is our friend!
Set by masak on 12 May 2015.
00:06 kid51 joined 00:10 Ben_Goldberg is now known as BenGoldberg 00:16 mr_ron left 00:18 laouji joined 00:22 yqt left 00:31 zacts left 00:35 zacts joined 00:39 laouji left 00:40 laouji joined 00:43 laouji left, laouji joined 00:51 araujo_ joined 00:52 araujo left 00:53 makapa joined, araujo_ left 00:54 araujo_ joined 00:57 makapa left 01:03 helloworldlang joined 01:05 colomon left 01:07 mr_ron joined 01:11 colomon joined 01:17 aborazmeh joined, aborazmeh left, aborazmeh joined 01:19 Akagi201 joined 01:22 makapa joined
colomon TimToady: Happy Birthday! 01:26
01:29 mr_ron left 01:33 royalkiran007 left, clkao_ joined 01:34 Ulti_ joined, Woodi_ joined, smash_ joined, zostay_ joined, [Coke]_ joined 01:35 TimToady_ joined, maettu1 joined, skids1 joined, mathw left 01:36 jordman_ joined, mathw joined, avalenn_ joined, KotH_ joined, telex left 01:37 telex joined, adhoc joined 01:38 SmokeMachine_ joined, mephinet- joined, clkao left, Woodi left, mprelude left, smash left, Ulti left, zostay left, gensym left, [Coke] left, xxx left, KotH left, maettu left, skids left, TimToady left, SmokeMachine left, mtj_ left, mephinet left 01:39 clkao_ is now known as clkao 01:41 xdbr joined, gensym joined 01:42 xxx joined 01:43 dg joined 01:44 tokuhiro_ joined, kaare__ joined 01:47 kaare__ is now known as kaare_, mprelude joined 01:48 mtj_ joined 01:53 TimToady_ left 01:54 TimToady joined 02:09 kid51_ joined
timotimo already caught a glimpse of a partially darkened and partially reddened moon 02:09
02:12 kid51 left, kid51_ is now known as kid51 02:15 rurban joined
Zoffix can't due to clouds so they are watching Slooh telescope online: 02:16
www.youtube.com/watch?v=wgv0Z8Q2OIQ
02:17 kid51 left 02:26 BenGoldberg left 02:29 Akagi201 left 02:31 makapa left
timotimo Live Streaming is not available in your country due to rights issues. 02:34
02:37 colomon left 02:38 noganex_ joined 02:40 noganex left
dalek rl6-roast-data: d5cc33c | coke++ | / (9 files):
today (automated commit)
02:45
kudo-star-daily: e1a9dfe | coke++ | log/ (9 files):
today (automated commit)
02:55 aborazmeh left 02:58 colomon joined
[Coke]_ RT: 1,028; testneeded: 9; GLR: 4; WEIRD: 12; LTA: 81; xmas: 98 03:00
03:02 thou left, [Coke]_ is now known as [Coke] 03:03 aborazmeh joined, aborazmeh left, aborazmeh joined 03:04 zacts left 03:07 zacts joined 03:27 thou joined 03:50 khw left 04:00 BenGoldberg joined 04:05 BenGoldberg left 04:20 rurban left 04:26 Peter_R left 04:35 aborazmeh left 04:38 MadcapJake left 04:39 vendethiel joined 04:48 [Sno] left 05:04 quester joined, aborazmeh joined, aborazmeh left, aborazmeh joined 05:05 vendethiel left 05:18 ssflying joined 05:21 makapa joined 05:23 wak joined 05:24 spider-mario left 05:25 spider-mario joined 05:26 skids1 left 05:29 wak left 05:42 zakharyas joined 05:58 aborazmeh left, _28_ria joined 06:11 diana_olhovik_ joined 06:16 espadrine joined, FROGGS joined 06:18 makapa left 06:20 KotH_ is now known as KotH 06:21 Ven joined 06:24 [Sno] joined 06:42 mn080202 left 06:45 baest left 06:46 abraxxa joined, araujo_ left 06:47 araujo joined, domidumont joined, domidumont left 06:48 domidumont joined 06:49 domidumont left 06:52 espadrine left 06:55 spider-mario left 06:56 Ven left 06:58 domidumont joined
[Tux] test 50000 35.708 35.606 07:03
test-t 50000 36.133 36.030
tux.nl/Talks/CSV6/test-t.jpg 07:05
jdv79 what's the "good enough" again? 07:07
07:09 quester left 07:12 z8 joined
[Tux] jdv79, that was a question directed to me? 07:17
FROGGS I'd guess so 07:22
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:23
[Tux] agrees 07:24
jdv79, note that the perl5/XS time for the same code is 0.016 seconds
FROGGS jdv79: if you feel the urge, you could profile it to get a feeling for the slow parts... 07:30
07:30 laouji left 07:31 laouji joined 07:33 rindolf joined 07:39 zakharyas left 07:42 zakharyas joined 07:48 bjz joined 07:53 araujo_ joined 07:56 araujo left 07:59 CIAvash joined 08:12 espadrine joined 08:17 darutoko joined 08:24 dakkar joined 08:28 araujo_ left 08:29 z8 left, araujo joined 08:40 TimToady left 08:41 TimToady joined 08:48 thou left 08:54 rindolf left 08:58 laouji left 09:01 laouji joined 09:05 xfix joined, xfix left, xfix joined
masak [Tux]++ # relentless benchmarking 09:05
09:06 RabidGravy joined 09:07 Ven joined 09:10 cognominal joined
moritz any objections to rejecting rt.perl.org/Ticket/Display.html?id=126208 ? 09:10
09:13 CIAvash left 09:14 CIAvash joined
jnthn moritz: Seems it does indeed close the channel too early (before waiting on the promises) 09:16
an await @promises before the .close for ... should help, I think
09:20 Ven left
moritz ok, ticket rejected. 09:22
09:26 emilbarton joined
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 : 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
m: Slang.new # this one
camelia ( no output )
jnthn Oh, what, it works now?
m: say StrDistance
camelia rakudo-moar 1ed1ea: OUTPUT«-> { #`(Block|73197096) ... }␤»
09:29 Ven joined
jnthn Ah, that doesn't though 09:29
moritz emilbarton: ah, it seems to be !~~ that's the problem 09:30
m: say 'abc' !~~ /(a)/
camelia rakudo-moar 1ed1ea: OUTPUT«False␤»
emilbarton moritz no!
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 camelia left
ShimmerFairy I keep forgetting nqp: kills camelia e_e 09:31
09:32 camelia joined 09:33 ChanServ sets mode: +v camelia 09:36 rurban joined, zakharyas left
|Tux| did anyone look at the panda list fail? 09:37
panda list --installed --verbose
jnthn ShimmerFairy: I thought it was tclc?
(in Perl 6)
09:38 telex left
ShimmerFairy m: say "foobar".tc 09:38
camelia rakudo-moar 1ed1ea: OUTPUT«Foobar␤»
ShimmerFairy jnthn: no, but admittedly it makes far more sense to be consistent with .uc and .lc
jnthn m: say "Foobar".tclc
camelia rakudo-moar 1ed1ea: OUTPUT«Foobar␤»
jnthn huh, both exist
ShimmerFairy m: say "fooBar".tc; say "fooBar".tclc
camelia rakudo-moar 1ed1ea: OUTPUT«FooBar␤Foobar␤»
09:38 [Sno] left
ShimmerFairy jnthn: the difference is that .tc doesn't lowercase the rest. 09:38
09:39 [Sno] joined
ShimmerFairy admittedly, I think .tc titlecasing every character would be more sensible. 09:39
09:39 zakharyas joined
dalek osystem/cookie-baker: 798d3ef | (Tokuhiro Matsuno)++ | META.list:
Added Cookie::Baker
09:39
09:40 telex joined 09:41 larion joined 09:47 Ven left 09:48 Ven joined
jnthn It's really taking some work to even track down what introduced the weird symbol mis-compile regression 09:50
09:51 makapa joined
FROGGS jnthn: the Pandabug? 09:56
09:56 makapa left, Ven left, nebuchadnezzar left, nebuchadnezzar joined 09:57 rindolf joined
jnthn FROGGS: No idea 09:59
m: say StrDistance
camelia rakudo-moar 1ed1ea: OUTPUT«-> { #`(Block|71853608) ... }␤»
jnthn star: say StrDistance
camelia star-m 2015.03: OUTPUT«(StrDistance)␤»
FROGGS ohh
jnthn That one is an example of it
FROGGS what the
jnthn Yes, it's utterly weird
10:00 nebuchad` joined, z8 joined
jnthn It seems that occasionally a WVal ends up pointing to the totally wrong thing o.O 10:00
10:00 jsimonet left 10:01 jsimonet joined, nebuchadnezzar left 10:02 grondilu left
jdv79 sounds like fun 10:02
10:02 mrf left
jdv79 or at least not boring 10:03
lizmat good *, #perl6!
10:03 grondilu joined
jdv79 lizmat: mornin 10:03
10:03 mrf joined, grondilu left, grondilu joined
lizmat jdv79 o/ 10:03
jdv79 oh, aft now
lizmat jnthn: as another datapoint: when I we speeding up .min and .max last night 10:04
at one point the setting could not build the RESTRICTED setting anymore
ah, nvm, figured out it was my fault after all 10:05
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␤»
jnthn Yeah, you can't bind do that :)
*to
lizmat well, actually trying to throw that error :-)
jnthn It's REALLY weird. I've got my Moar and NQP builds back basically to the last release.
And I still get it 10:07
lizmat
.oO( but you don't get it as well )
jnthn aha
bff29c4 bad, but 4653d98 good 10:08
10:10 helloworldlang left
jnthn e87794e good 10:13
10:14 woolfy joined
jnthn And the patches between that and bff29c4 are just to the harness 10:14
10:14 woolfy left
ShimmerFairy jnthn: keep in mind that bff29c4 is a merge commit; did you check the other branch? 10:15
10:16 thou joined
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
Currently building everything at HEAD but with the two patches from the branch reverted
ShimmerFairy jnthn: ok, just wanted to make sure you didn't accidentally miss it being a merge commit :)
jnthn Thanks for checking :) 10:18
ShimmerFairy (My guess is the change to the indent, not so much <.vws> -> \v )
10:20 thou left
jnthn Uh, with those reverted I still get oddness :S 10:20
grrr 10:21
10:25 zakharyas left 10:28 ][Sno][ joined, kolikov joined, kolikov left, kolikov joined 10:30 rurban left 10:31 bjz_ joined, [Sno] left, rurban joined, apotheon left, apotheon joined
jnthn What's really interesting is that StrDistance and Slang both come really near the end of CORE.setting 10:31
10:31 bjz left 10:32 Khisanth left 10:33 Woodi_ left
kolikov For : emilbarton ... seen on public logs at 9:10h ... maybe too late: interpolate varibles in regexes ... this way: $<varible> 10:33
10:33 Woodi joined 10:34 FROGGS left
lizmat jnthn: have you tried moving StrDistance up? if not, I could do that 10:39
just as another datapoint
10:39 FROGGS joined
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
There's not that many places it could be though
FROGGS hmmm, I could imagine that something similar happened to panda too... 10:42
10:44 Khisanth joined
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:44
10:51 brrt joined
dalek osystem: 798d3ef | (Tokuhiro Matsuno)++ | META.list:
Added Cookie::Baker
10:55
osystem: 142a500 | RabidGravy++ | META.list:
Merge pull request #60 from perl6/cookie-baker

Added Cookie::Baker
jnthn lizmat: Seems I've found it and have a fix 10:57
lizmat cool!
brrt \o/ 10:58
jnthn spectests
10:59 z8 left
jnthn Some new win32-specific fails on POD-y/heredoc-y things wrt line endings, it seems 11:01
(Unrelated to my fix)
11:12 brrt left
jnthn urgh, spectest is a real mess on Windows, thanks (I think) to heredoc changes leading to extra newlines all over on Windows 11:15
dalek p: c3a92ed | jnthn++ | tools/build/MOAR_REVISION:
Bump MOAR_REVISION for assembler overflow bugfix.
11:16
p: 1deb686 | jnthn++ | src/HLL/World.nqp:
A couple of native type annotations.

Should avoid some boxing.
kudo/nom: dd6c855 | jnthn++ | tools/build/NQP_REVISION:
Bump NQP_REVISION for MoarVM assembler fix.

Resolves weird mis-compiles of things near the end of CORE.setting.
11:18
11:19 leont joined 11:20 travis-ci joined
travis-ci NQP build passed. jnthn 'A couple of native type annotations. 11:20
travis-ci.org/perl6/nqp/builds/82534948 github.com/perl6/nqp/compare/3f2ad...eb6862ddf6
11:20 travis-ci left
dalek ast: 347a9f9 | lizmat++ | S02-types/WHICH.t:
Test for 2 more classes' existence
11:26
grondilu notices that ctags now supports Perl6 www.perlmonks.org/?node_id=1137752 11:27
grondilu wonders if that helps browsing the core
lizmat wow, a clean spectest! haven't seen that in a while! 11:30
Files=1042, Tests=47028, 211 wallclock secs (12.32 usr 3.61 sys + 1395.44 cusr 128.19 csys = 1539.56 CPU)
moritz \o/ :/
moritz is glad the spectest is clean, and sad that it isn't the norm
lizmat so it would seem to me this bug was causing all sorts of other issues as well
jnthn There's still at least one known icky concurrency bug lingering that can cause flaps. 11:31
Thankfully there's a lot less of them than there used to be :)
lizmat indeed ! 11:32
lizmat goes back to writing Perl 6 Weekly 11:33
nine 16 bit overflow? I thought those times are long gone :)
lizmat let me know if you have anything you think *should* be in there!
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
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
courses.cs.washington.edu/courses/c...ctags.html
jnthn nine: You can easily recreate them by copy-pasto'ing a cast, apparenlty... :)
FROGGS aha
timotimo it lets you "jump to definition" as well as have a list/tree of symbols for the current file
11:35 brrt joined
nine Woah! It seems like this also fixes the panda problem! 11:35
I reverted the workaround in panda and perl6 bootstrap.pl still works 11:36
brrt what
that's impossible
timotimo huh? must be flappy!
brrt impossibru
timotimo inconceivable!
nine indeed :(
jnthn Yeah, there's a separate bug there, surely.
nine It _is_ flappy
jnthn Given how far we're hunted it down
nine Or rather it worked the first time and fails since 11:37
11:38 kid51 joined 11:44 zakharyas joined 11:45 jkva joined, nebuchad` is now known as nebuchadnezzar 11:46 kid51 left 12:02 Peter_R joined 12:04 thou joined 12:09 thou left 12:10 TEttinger left 12:20 laouji left, woolfy joined, woolfy left 12:21 pmurias joined 12:22 emilbarton left 12:23 TEttinger joined, brrt left 12:26 pmurias left 12:27 carlin joined 12:28 szymon joined
leont YAML keeps surprising me, so many edge-cases while implementing it􏿽x85 12:29
[Coke] hoelzro: if RT #126202 is the correct behavior, what's the ticket for?
12:31 rurban left
moritz leont: iirc the YAML spec is longer than the XML spec :-) 12:33
leont Tell me about it! :-/
12:33 pmurias_ joined
leont How can I express "not in between" in a rule? 12:33
moritz there's no good way 12:34
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
leont Not between "\n| and "..."
... is a valid plain scalar, except on the main scope where it terminates the document -_- 12:36
moritz <!after\n> <token> <!before $>
or since it's valid syntax, but different semantics, you could parse it normally, and make the distinction in the actions 12:37
12:41 rindolf left 12:48 abraxxa left
lizmat updated gist.github.com/lizmat/28d6d9b8f3a968e6c92e # Perl 6 Weekly in progress 12:48
comments welcome! 12:49
moritz lizmat++ # my comment 12:50
[Coke] lizmat++ nice. 12:53
12:53 ggoebel left
leont Think I solved my problem by special-casing the higher-level rule. Crude, but effective. 12:58
13:01 FROGGS left 13:04 rindolf joined 13:08 rurban joined 13:15 ggoebel joined 13:24 szymon left 13:26 mullagainn joined
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)␤»
tony-o m: say ((('x' x 4) ~ '-') x 3)
camelia rakudo-moar dd6c85: OUTPUT«xxxx-xxxx-xxxx-␤»
13:32 brrt joined 13:34 CIAvash left 13:37 khw joined 13:39 aborazmeh joined, aborazmeh left, aborazmeh joined 13:43 Ven joined 13:52 thou joined 13:53 aborazmeh left
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:54
13:56 thou left
timotimo maybe %hash<foo>:exists:value 13:57
m: my %foo = a => 10; say %foo<a>:exists:value
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␤␤»
timotimo m: my %foo = a => 10; say %foo<a>:exists
camelia rakudo-moar dd6c85: OUTPUT«True␤»
timotimo m: my %foo = a => 10; say %foo<a>:value:exists
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␤␤»
timotimo m: my %foo = a => 10; say %foo<a>:kv:exists
camelia rakudo-moar dd6c85: OUTPUT«(a True)␤»
timotimo m: my %foo = a => 10; say %foo<a>:pair:exists 13:58
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␤␤»
timotimo m: my %foo = a => 10; say %foo<a>:pairs:exists
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␤␤»
timotimo m: my %foo = a => 10; say %foo<a>:p:exists
camelia rakudo-moar dd6c85: OUTPUT«a => True␤»
timotimo not quite .. at all
14:01 Ven left
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␤␤»
tony-o m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a.somekey !! 'nope'; 14:04
camelia rakudo-moar dd6c85: OUTPUT«nope␤»
tony-o too much javascript
m: my %a; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
camelia rakudo-moar dd6c85: OUTPUT«nope␤»
tony-o m: my %a = somekey => 'sup carlin'; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
camelia rakudo-moar dd6c85: OUTPUT«nope␤»
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␤␤»
lizmat m: my %h = a => 42; dd %h<a>:v, %h<b>, %h<b>:v
camelia rakudo-moar dd6c85: OUTPUT«42␤Any %h = Any␤()␤»
tony-o m: my %a = { somekey => 'sup carlin' }; say (%a<somekey> // '') eq 'hello' ?? %a<somekey> !! 'nope';
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␤»
tony-o meh, something like that
lizmat tony-o: I think :v is what you want, as it filters
leont How do I prevent flattening in 􏿽xAB@a.push: (1,2,3)􏿽xBB? 14:06
lizmat $(1,2,3)
leont Ah!
tony-o m: my @a; @a.push($(1,2,3)); @a.perl.say;
camelia rakudo-moar dd6c85: OUTPUT«[(1, 2, 3),]␤»
leont Yes that works much better :-)
lizmat m: my %h = a => 42; dd %h<a b>, %h<a b>:v
camelia rakudo-moar dd6c85: OUTPUT«(42, Any)␤(42,)␤»
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
i always use the ($var // Nil) or something similar 14:08
carlin ah that looks like what I want
m: my %h = a => "test"; if %h<a>:v eq "test" { say "it works"; }
camelia rakudo-moar dd6c85: OUTPUT«it works␤»
carlin m: my %h = a => "test"; if %h<b>:v eq "test" { say "it works"; }
camelia ( no output )
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␤»
lizmat m: say Nil eq "test"
camelia rakudo-moar dd6c85: OUTPUT«Use of Nil in string context in block <unit> at /tmp/NfH3jif1RV:1␤False␤»
lizmat m: say () eq "test"
camelia rakudo-moar dd6c85: OUTPUT«False␤»
lizmat m: say () eq "" 14:10
camelia rakudo-moar dd6c85: OUTPUT«True␤»
lizmat carlin: not sure that *currently* does what you think it does
carlin does "currently" imply that it is supposed to do what I think it does? :-) 14:11
14:11 skids joined
timotimo did you see the error message there wasn't so awesome? 14:11
"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>
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␤»
moritz s/with/given/ ?
[Coke] wonders if "with" is the right hammer here.
lizmat moritz: want to prevent warning on undef value
timotimo just use === instead of eq? :P 14:13
moritz lizmat: but postfix with doesn't set $_, no?
14:13 thou joined
lizmat m: .say with 42 14:13
camelia rakudo-moar dd6c85: OUTPUT«42␤»
[Coke] might be a few sends behind.
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␤␤»
lizmat m: sub a($a) { .return with $a; die }; a 42;
camelia rakudo-moar dd6c85: OUTPUT«Died␤ in sub a at /tmp/qinKlQEVVG:1␤ in block <unit> at /tmp/qinKlQEVVG:1␤␤»
lizmat huh?
m: sub a($a) { .return with $a}; say a 42;
camelia rakudo-moar dd6c85: OUTPUT«42␤»
lizmat m: sub a($a) { .return with $a}; say a Int 14:15
camelia rakudo-moar dd6c85: OUTPUT«()␤»
lizmat m: sub a($a) { .return with $a; die }; say a Int
camelia rakudo-moar dd6c85: OUTPUT«Died␤ in sub a at /tmp/R6FskgC1U1:1␤ in block <unit> at /tmp/R6FskgC1U1:1␤␤»
lizmat moritz: it does set $_ :-)
[Coke] m: sub a($) { 3.return }; say a 42;
camelia rakudo-moar dd6c85: OUTPUT«3␤»
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 '';
camelia rakudo-moar dd6c85: OUTPUT«True␤»
tony-o m: my %h = a => 123; say %h<b> eqv '';
camelia rakudo-moar dd6c85: OUTPUT«False␤»
tony-o that might be more what you want carlin
lizmat I would argue that %h<b>:v should return Nil
rather than an empty list
masak lizmat: ...why do we have a .take ? :P 14:17
lizmat I have no idea, that was before my time
masak if it's just a sub, not a keyword, people who wanted .take could already do .&take
but .take is probably older even than that realization...
lizmat it *is* being used in the core
masak ok
jnthn masak: @foo.deepmap(*.take) is cute 14:18
Though only 1 char cuter than *.&take :)
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...
I guess because they inherit into *everything*
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.
tadzik: care to apply rt.perl.org/Ticket/Display.html?id=126211 ? 14:21
14:22 jkva left
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?
tadzik: it's a patch against rakudo, I think.
tadzik [Coke]: indeed
dalek kudo/nom: cd8ce4e | (Shoichi Kaji)++ | lib/Pod/To/Text.pm:
Use Terminal::ANSIColor instead of Term::ANSIColor

Because Term::ANSIColor is deprecated See github.com/tadzik/perl6-Term-ANSIC...be708da23d
14:26
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?)
lizmat do I understand correctly that we have a core module depending on an ecosystem module ?
moritz lizmat: if it's not available, it simply doesn't color the output
lizmat ah, ok :-) 14:28
[Coke] ah, it's already got a constant entry somewhere.
14:32 FROGGS joined
jasanj ls 14:36
geekosaur . ..
jasanj :) 14:37
timotimo you're feeling rather empty today, geekosaur
geekosaur not sure what subdirectories of an irc channel would be... 14:38
DrForr Spaced out even :)
tony-o geekosaur: it would work like mux 14:44
14:47 Ven joined 14:50 zakharyas left
[Coke] moritz: I'm unable to get a working --profile for even a sparse=100 run of htmlify. You have any luck? 14:50
pmurias_ moritz: would it be possible to get node.js installed on hack according to: github.com/nodejs/node-v0.x-archiv...tributions 14:51
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 pmurias_ left
moritz pmurias_: uhm, I don't like the curl | bash - as root much :/ 14:52
dalek c: 5fc7cbd | coke++ | lib/Type/Iterator.pod:
RT #126159, notes on IterationEnd
14:53
14:53 jkva joined
moritz whatever. 14:54
.tell pmurias I've installed a more up-to-date nodejs on hack. Have fun! 14:55
yoleaux moritz: I'll pass your message to pmurias.
[Coke] tests it out.
Woodi hi today :)
14:55 pmurias joined
dalek rl6-roast-data: cb7b291 | coke++ | / (9 files):
today (automated commit)
14:55
[Coke] hello from tomorrow. 14:56
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?
leont I'd like to not lose their order 14:58
moritz nope
tadzik well, you can have a slurpy hash
oh, wait
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...
tadzik *not*
[Coke] moritz, pmurias: much better, thanks. 14:59
moritz Woodi: nice
[Coke] pmurias: t/nqp/78-shell.t fails tests 4-5
Woodi but when I put exit 0; as first line in program it is 19x perl5...
so parsing takes ages...
15:00 vike joined
Woodi also looks .parsefile is faster then .parse 15:00
15:01 emilbarton joined
[Coke] moritz: if you can't open it in the browser, how do you know it doesn't make sense? 15:01
moritz [Coke]: I've written a small perl5 script that analyses the generated json 15:02
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:04 diakopter left
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 "" ?
moritz: any args passed between these subs?
moritz [Coke]: sure
dalek c: 5c4ca1a | (Steve Mynott)++ | bin/p6doc-index:
GLR fix for github.com/perl6/doc/issues/137
15:06
[Coke] are they big? maybe something is doing a lot of processing of the args?
(just as part of the calling conventions)
(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
o/ #perl6
[Coke] what would be the condition to generate the warning? 15:08
15:08 kolikov left
brrt hey, question 15:09
timotimo hey, answer
hey, listen!
brrt can perl6 do evil things like inspect the lexicals of a caller?
moritz brrt: only if they are marked as "is context", iirc 15:10
brrt do you have an example?
hmmmm
_itz_ did that moarvm serialisation work (for panda ISTR) ever get merged?
hoelzro [Coke]: two declarands on the same line
TimToady 'is dynamic' 15:11
yoleaux 27 Sep 2015 19:44Z <japhb> TimToady: Happy Birthday!
[Coke] moritz: can I borrow your perl5 script for looking at the data? 15:12
15:13 diakopter joined
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();
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…»
moritz [Coke]: so, in about an hour 15:14
[Coke] moritz: danke.
leont Is there a cleaner solution than hand-writing the accessor to making 􏿽xABhas @.foo􏿽xBB being publically writable?
ilmari sub foo { my $x is dynamic = 1; bar(); }; sub bar { say CALLER::<$x>; }; foo();
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 araujo left
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
brrt aha
Woodi [Coke]: -e "" is exactly 6 :)
brrt ilmari++ 15:16
15:17 baest joined
lizmat FWIW, I think it's better to use the more visual * twigil 15:17
15:17 Ven left
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
camelia rakudo-moar cd8ce4: OUTPUT«(Any)␤»
leont has a thing for immutable􏿽x85
lizmat m: sub foo { my $*x = 1; bar(); }; sub bar { say CALLER::<$*x>; }; foo(); # brrt
camelia rakudo-moar cd8ce4: OUTPUT«1␤»
timotimo of course you do :) 15:18
brrt aye, i agree lizmat
ilmari m: class Foo { has @.foo is ro }; say Foo.new(foo => (1..3))
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:19 tokuhiro_ left
lizmat m: sub foo { my $*x = 1; bar(); }; sub bar { say $*x }; foo(); # even simpler :-) brrt 15:20
camelia rakudo-moar cd8ce4: OUTPUT«1␤»
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
i suppose they can't, which is good
masak yeah. phew.
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?)
brrt hmmm
masak I think if someone uses nqp, we're not at fault for optimizing things away without considering the nqp code. 15:23
15:23 rurban left
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.
right.
pmurias node.js-- # packages breaking on the newest node.js 15:25
15:25 jkva left
diakopter well, at least they got the io.js fork remergered 15:25
masak pmurias: breaking how? 15:26
pmurias failing to build :(
15:26 n0tjack joined
masak :( 15:26
n0tjack If ^10 is a shortcut for 0..9, is there a shortcut for 1..10? 15:27
p6: 1 [+] ^10;
camelia rakudo-moar cd8ce4: OUTPUT«WARNINGS:␤Useless use of "[+]" in expression "1 [+] ^" in sink context (line 1)␤»
brrt ^10 >> *+1 maybe
m: say ^10.>> *+1
n0tjack oh, interesting
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␤»
n0tjack I always forget about >>
brrt nah, that doesn't work
n0tjack p6: 1 <<+>> ^10 15:28
camelia ( no output )
n0tjack p6: say(1 <<+>> ^10)
camelia rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
n0tjack I also get [+] and <<+>> mixed up
I suppose the answer is just 1..10 15:29
thanks
diakopter pmurias: you knew about the io.js fork and big controversy and community split?
15:30 larion left
|Tux| So, should "panda --installed --verbose list" do the same as "panda list --installed --verbose" ? 15:31
the first works, the second barfs 15:32
n0tjack p6: sub prefix:<➕> { (1..*)[^n] } say (➕^10);
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…»
diakopter it was a reaction to Joyent (and StrongLoop, and others) trying to take over the community & project & such
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␤␤»
n0tjack p6: sub prefix:<➕> { (1..*)[$^n] }; say (➕^10);
camelia rakudo-moar cd8ce4: OUTPUT«11␤»
n0tjack why isn't the ➕ operator there getting ^10 (0..9) as an array and using it as a slice? 15:34
15:34 rindolf left
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);␤»
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)␤»
n0tjack thanks! 15:37
I wasn't sure how to name arguments in operator definitions
ilmari m: sub prefix:<➕> { (1..*)[@^n] }; say (➕^10);
camelia rakudo-moar cd8ce4: OUTPUT«(1 2 3 4 5 6 7 8 9 10)␤»
ilmari the ^ twigil creates implicit parameters 15:38
n0tjack yes, that's what I wanted.
15:39 diana_olhovik_ left
n0tjack because (1..*) is anonymous, will perl6 reconstruct it on every call? 15:39
or does the lazy-list memoization still apply?
TimToady the 1..* is not expensive to generate, but unrolling the range can be 15:40
we oughta be able to add and multiply intervals directly though... 15:41
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:42
pmurias diakopter: I wasn't aware of the controversy 15:43
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:44
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
15:45 jasanj` joined
leont Where can I find more information about that "New slurpy parameter" syntax? 15:46
I can guess what it does, but details 15:47
15:47 brrt left
pmurias diakopter: have you followed the community fork? 15:48
15:48 domidumont left
TimToady leont: design.perl6.org/S06.html#One-argum...py_binding 15:48
15:49 jasanj left
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;
camelia rakudo-moar cd8ce4: OUTPUT«1␤»
nine brrt ^^^
I knew there was a way without nqp
pmurias isn't it spec violating? 15:51
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.
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 :( 15:59
16:01 bioexpress joined 16:03 araujo joined
bioexpress Hello, why was the module Term::ANSIColor renamed in Terminal::ANSIColor? 16:03
16:04 Ven joined, araujo left
TimToady because someone thought it might collide with the idea of "term" in parsing, but it's an unfounded fear 16:05
16:05 araujo joined
bioexpress thx 16:06
Ven waves 16:08
TimToady is it just me, or did the parse phase get about 10 seconds slower overnight? 16:09
tadzik well, I still think that Terminal is a better name for terminal stuff than Term 16:10
16:10 emilbarton left, araujo left
TimToady it's as likely to collide with an airport terminal 16:10
all the world is not CS 16:11
PerlJam Terminal::Degree :)
n0tjack Terminal::Velocity
TimToady Terminal::Patient
you can play this game on both sides :) 16:12
16:12 mr_ron joined
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
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
camelia rakudo-moar cd8ce4: OUTPUT«5␤C.new␤This type cannot unbox to a native string␤ in block <unit> at /tmp/1LGLJiZs1S:1␤␤»
pmurias the module is called Term::ANSIColor in both perl5 and ruby
TimToady the name is already claimed, basically 16:13
PerlJam Shells will still call it TERM too.
TimToady and we don't really need this to become a FAQ
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
TimToady sure it is 16:14
tadzik I'm okay with reverting the change given the apparent outrage that it caused :)
but I still think it was for the better
PerlJam tadzik: I'm not outraged, just highly surprised.
TimToady
.oO(use Terminal::ANSIColor:api<Term>)
16:15
pmurias (reverting the name)++
TimToady
.oO(use Term::ANSIColor:api<Terminal>)[C[C[C[C[C[C[C[C[C[C[C[C :)
16:16
yow
.oO(use Term::ANSIColor:api<Terminal>) :)
tadzik I was sure that ?C?C?C?C?C?C?C?C is part of the joke :P 16:17
PerlJam me too! :)
TimToady I reverted it
tadzik . o O ( now you should too )
Ven is there a way to get such parameters?
TimToady eh? 16:18
16:20 tokuhiro_ joined
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
TimToady speaking of 16-bit limitations... 16:23
m: say 1, |(2 xx 65536)
camelia rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array.␤ in block <unit> at /tmp/FivESPhr4o:1␤␤»
TimToady m: say 1, |(2 xx 65535)
camelia rakudo-moar cd8ce4: OUTPUT«Too many arguments in flattening array.␤ in block <unit> at /tmp/5Mo4af5Avw:1␤␤»
TimToady m: say 1, |(2 xx 65534) 16:24
camelia rakudo-moar cd8ce4: OUTPUT«(signal SEGV)»
jnthn TimToady: Well, on the JVM you hit that at 256...
TimToady: Additionally, on both, the performance of doing huge arg flattens is pretty horrible.
TimToady pity we can't defer to slip somehow instead
16:25 tokuhiro_ left
TimToady shouldn't SEGV though 16:25
jnthn I've pondered that a bit but it's...fraught
Yeah, agee. File that one...
TimToady and various internals depend on |
jnthn Arg passing is one of those things you really want to keep pretty low level...
TimToady but it breaks our metas
jnthn Why? 16:26
I never got why they were written in that way, especially after the single arg rule.
TimToady sub (+values) { op.(|values) } # from METAOP_REDUCE_LIST 16:28
it's already single-arg
16:29 bioexpress left
TimToady not using | there only works if all possible ops are single arg 16:29
jnthn If the purpose is just to delegate, can it not be sub (|c) { op.(|c) } ? 16:30
TimToady doesn't help the triangle form 16:31
but maybe we can write that off as rather specialized
16:32 araujo joined, araujo left, araujo joined 16:33 patrickz joined
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
maybe we can optimize it away somehow 16:35
lizmat p6weekly.wordpress.com/2015/09/28/...-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
TimToady can we somehow notice when we pass a single arg | and promote it directly to a capture? 16:38
jnthn lizmat: I think superstitious parens around (^100) 16:41
16:42 spider-mario joined, diana_olhovik_ joined
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:43
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
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 Ven left
jnthn lizmat: No no, only for the infix form. 16:44
lizmat: Which you used
lizmat aahhh
jnthn m: ^10 .grep( * %% 2 ).say
camelia rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)␤»
lizmat m: ^10 . grep( * %% 2 ).say # jnthn: I think not
camelia rakudo-moar cd8ce4: OUTPUT«(0 2 4 6 8)␤»
lizmat whee
jnthn ;)
lizmat fixed... 16:45
jnthn lizmat++ for the weekly btw
I've a partly done thing to post, will finish it up this evening
lizmat that will be for next week's :-)
cycling&
jnthn Indeed :) 16:46
16:48 leont left, brrt joined
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:48
jnthn tony-o: Why the warn, ooc? 16:50
16:50 mr_ron left
jnthn tony-o: Something looks a bit off whitespace wise too 16:51
16:51 pmurias left, spidermario joined 16:52 spider-mario left
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
jnthn: my bad, i'm always on 2 spaces per tab. will correct it
16:52 spidermario is now known as spider-mario
jnthn OK, I need to read a bunch of discussions :) 16:52
Also, will @candi not now always be empty? 16:53
TimToady
.oO(taking children from candi...)
jnthn :P
tony-o haha
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?
tony-o it returns directly, like CURLF
jnthn I guess I'm just asking, why "+@candi ?? @candi[0] !! ();" intead of just () ?
tony-o jnthn: i pushed that in there with my spacing fix 16:55
jnthn Will this cause warnings for folks using Panda? 16:56
Since it doesn't pre-comp?
Or does it not use CURLI at all any more?
tony-o panda doesn't use CURLI at all so it shouldn't
i get this error when i try to use panda so i can't test: /Users/tonyo/.rakudobrew/bin/panda: fork: Resource temporarily unavailable 16:57
16:57 brrt left 17:03 espadrine left
jnthn o.O 17:04
gotta go; bbl
But if somebody can test Panda with tony-o's patch, then I'm happy for it to go in
17:06 larion joined 17:10 dha joined
dha Have published a blog post. FEAR ME. 17:10
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.
jnthn: Any pointers for where should I go from here?
dha TimToady++ 17:12
17:16 darutoko- joined
dha .tell lizmat Have blogged, if you're still summarizing. dhaperl6.blogspot.com/2015/09/im-back.html 17:18
yoleaux dha: I'll pass your message to lizmat.
17:19 darutoko left 17:20 dakkar left 17:21 tokuhiro_ joined 17:23 diana_olhovik_ left 17:26 tokuhiro_ left, diana_olhovik joined 17:32 rindolf joined
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
was/is, excuse me
dha no worries. I'll take comments here. ;-) 17:38
Thanks.
17:38 pierrot left, pierrot joined
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 :)
I suppose, although perldoc -f split has essentially a synopsis in the first 3 lines
17:40 larion left, n0tjack left
dha Ah. That kind of synopsis. Noted. 17:41
btyler you're totally correct, I was thinking module, but both are deeply appreciated
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
dha Indeed. but different from the point of view of doc writing. 17:42
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
dha No worries. It's valuable and appreciated.
btyler I just have a deep love for SYNOPSIS culture
dha synopses are good. :-)
btyler it really helps me get stuff done
Juerd found S07 easy to read, except for Iterable section 17:44
Juerd doesn't know what "mark out" means, technically 17:45
The second paragraph can be read as "mark out when .flat is used", or as "flatten when .flat is used"
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.
Juerd The last sentence ends in "returns identity". I don't know what returning identity is, but which identity is returned? 17:47
dha: What's a Perl 5 synopsis?
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
Juerd Oh, synopsis as in =head1 SYNOPSIS, not synopsis as in design document. I get it.
17:49 rurban left
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
17:49 domidumont joined
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.
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
PerlJam dha: since types have a more prominent role in P6 and multis exist, I think having the full signature is quite useful
btyler of course, once you know it, it is very clear
dha Juerd - I should have said "along with" rather than "rather than"
Juerd btyler: Have you found out whether kwargs are edible?
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
dha PerlJam - right.
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.
PerlJam yep
17:51 AlexDani` joined
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
17:51 AlexDani` is now known as AlexDaniel
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)
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.
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 :)
dha Juerd - I agree. I'm thinking, in general terms, (full signature synopsis)/(usage synopsis)/(description with appropriate examples interleaved)
PerlJam dha++ sounds awesome
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.
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)
Juerd I think that probably most people like the interleaved style.
dha which might be what you don't like, but I think it's generally useful.
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:55
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:56
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"
Juerd I've been called a fossil for using those. 17:59
dha I would not call you that for that. :-) 18:01
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
dha Young whippersnapper. Get off my lawn! 18:04
Juerd :)
18:04 sufrostico joined
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:04
18:05 diana_olhovik left, z8 joined
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:05
pink_mist - You kids today... tsk. 18:06
(I can keep this up all day, you know... :-)
pink_mist (or at least you could have if you were younger :P)
18:07 sufrostico left
dha Ouch! 18:07
Juerd pink_mist: I like your nickname. Does it refer to anything specific? 18:08
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?
Juerd www.urbandictionary.com/define.php?...=pink+mist
pink_mist Juerd: it's not from ud :/
dha looking things up in Urban Dictionary is usually a mistake. :-)
pink_mist Juerd: though I guess it's not far from it ...
Juerd dha: I didn't specifically look it up there. Duckduckgo found it for me.
dha btyler - or mirrored on something other than blogger?
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
Juerd Heh 18:10
dha Juerd - even so. :-)
PerlJam pink_mist: here I've been thinking that you have some affinity for bombs/bomb squads 18:11
pink_mist 0_o lol
Juerd I thought maybe it had to do with "My Little Pony" or something like that :)
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 :)
btyler dha: I'm just being a grouch about blog comment systems, don't sweat it 18:13
dha btyler - will do. :-)
DrForr Damnit, we're woking on it, it just got delayed due to a failed gravity check.
*working 18:14
Juerd Gravity failed?
DrForr No, I spontaneously decided to make sure gravity still worked by moving a limb wrong. 18:15
dha ow. 18:16
But thanks for checking. 18:17
DrForr Hence being hospitalized in Granada for ~2 weeks.
You're quite welcome, gotta keep an eye on that bastard.
dha Oh. I though you did something bad newly. Still sorry to hear about Granada, but glad you have not reinsured.
dammit autocorrect. reinJURED.
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
dha back to original comment, what delay are you referring to? 18:18
DrForr On revamping blogs.perl.org - I saw teh comment on blogger, thought that might be what you're referring to. 18:19
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
no mention of blogs.perl.org. UNTIL NOW.
:-) 18:22
Although maybe I should mirror there.
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'
but I'm unsure
dha ok. Now we're both unsure. ;_) 18:26
FROGGS Str:D $foo - specifies a parameter that accepts a Str instance
Str:D: $self - specifies that the method can only be called on a Str instance
dha and the D means... ? 18:27
FROGGS defined
pink_mist so what precisely is the difference between 'Str $foo' and 'Str:D $foo'?
... =)
18:27 mohij joined
FROGGS Str $foo also accepts an undefined Str, the type object itself 18:27
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:28 patrickz left
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
pink_mist: we often use these to attach information to things
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
Juerd :D is probably the ugliest commonly used thing in Perl 6
pink_mist hehe
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 :)
dha Juerd - I've been around perl long enough that I do not believe that. :-)
18:32 ggoebel left
dalek kudo/nom: 815eb48 | TimToady++ | src/core/ (5 files):
remove various GLR transitional XXX comments
18:32
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. :-)
moritz finds character clsses in reexes too verbose
Juerd Most of the language is so beautiful. Unlike Perl 5, with its $foo->$#* :)
moritz <[a..z]> vs. [a-z]
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.
Juerd I wonder if :D is the ASCII equivalent of ☺
(And if ☺ is equally valid.) 18:35
I could so have a sub foo (Str☺ $bar) { ... }
FROGGS no :o)
moritz sometimes I wonder if the :D could be implicit for all methods that access an attribute
Juerd I can even think of why it had to be :D instead of :)
moritz: method:D ;) 18:36
FROGGS .oO( metho:D )
Juerd Haha
What's metho☺, though? :) 18:37
pink_mist what about metho☻ :P
Juerd pink_mist: Potato, potato :) 18:38
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 pnu left, mr_ron joined
mr_ron m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123'); 18:40
camelia rakudo-moar cd8ce4: OUTPUT«123␤»
mr_ron m: if False { no-such-method() }
camelia rakudo-moar cd8ce4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iRWEUglGvg␤Undeclared routine:␤ no-such-method used at line 1␤␤»
Juerd dha: Scrolling through my Perl 5 code, I think I would use :D a lot in Perl 6.
dha Oh? How so?
Juerd I have quite a lot of "defined" checks, including "// die".
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
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.
mr_ron is the no-such-rule problem a bug?
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*
moritz no*d*
Juerd No:D
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
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.
gist.github.com/dha/ea03e5c840f7131248de
Is that crazy or maybe something we can work with?
AlexDaniel or would that be /$var… 18:44
Juerd AlexDaniel: / is for regexes
AlexDaniel Juerd: hm wait, // does not work in perl6?
18:44 mohij left
Juerd AlexDaniel: That's //, not / 18:44
AlexDaniel m: say undef // 25;
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…»
Juerd AlexDaniel: I meant to say $/, not /.
As in, $/ is for regexes. 18:45
AlexDaniel Juerd: yeah okay, I know that it is the worst suggestion ever
moritz m: say Any // 25
camelia rakudo-moar cd8ce4: OUTPUT«25␤»
PerlJam AlexDaniel: undef doesn't work in P6 :)
AlexDaniel PerlJam: yeah, that's interesting
Juerd AlexDaniel: Nah, the worst suggestion ever was probably .= ;)
AlexDaniel so if I want to make something undefined, I just = Any; ?
Juerd But I love how . behaves more like .= now! :) 18:46
(Syntactically)
dha Juerd - Not ∆ for defined? :-)
PerlJam AlexDaniel: or you can make it typed to whatever (possibly more appropriate) value you want.
AlexDaniel Juerd: wait, .= ?
Juerd AlexDaniel: @array.=sort
AlexDaniel: $name.=ucfirst
AlexDaniel ah no, it's great
does it work? :)
Juerd It's great but the syntax is (or was) very weird.
It's less weird now that . can be infix. 18:47
AlexDaniel m: my $name = 'hello'; $name .= ucfirst; say $name;
camelia rakudo-moar cd8ce4: OUTPUT«Method 'ucfirst' not found for invocant of class 'Str'␤ in block <unit> at /tmp/MzJZSDmzJU:1␤␤»
AlexDaniel m: my $name = 'hello'; $name .= uc; say $name;
camelia rakudo-moar cd8ce4: OUTPUT«HELLO␤»
Juerd m: @foo = <a z c d y>; @foo.=sort; say @foo.perl
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␤»
Juerd m: my @foo = <a z c d y>; @foo.=sort; say @foo.perl
camelia rakudo-moar cd8ce4: OUTPUT«["a", "c", "d", "y", "z"]␤»
AlexDaniel Juerd: I'd say that it is pretty consistent
I like how any operator can be used like that 18:48
Juerd It used to be inconsistent until very recently
m: say([] . perl)
camelia rakudo-moar cd8ce4: OUTPUT«[]␤»
Juerd ^^ recently added syntax
You couldn't have whitespace around . before
AlexDaniel amazing!
m: say 'test' . uc 18:49
camelia rakudo-moar cd8ce4: OUTPUT«TEST␤»
AlexDaniel m: say 'test' . 'woah'
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'␤»
pink_mist . o O ( 42.3 --> 42.=3? 0_o )
Juerd pink_mist: That's a different "." 18:50
pink_mist :P
AlexDaniel m: $_ = 'foo'; say 'test' . .uc
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␤»
AlexDaniel okay
ilmari m: say 'test'␤ .uc␤ .lc
camelia rakudo-moar cd8ce4: OUTPUT«test␤»
Juerd Does Perl 6 have #line?
I find the /tmp/$garbage ugly
m: say 'test' 18:51
camelia rakudo-moar cd8ce4: OUTPUT«test␤»
AlexDaniel m: say 'test'␤.␤uc
camelia rakudo-moar cd8ce4: OUTPUT«TEST␤»
moritz Juerd: you're welcome to write a camelia patch that creates poetic temp file names :-)
Juerd moritz: It'd be better to have a non-filename there 18:52
18:52 patrickz left 18:53 patrickz joined
[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 :)
yoleaux jnthn: What kind of a name is "nine:"?!
PerlJam heh
AlexDaniel [Coke]: nope
PerlJam yoleaux: you really should be smarter about this sort of thing
dha I think I like this definition/usage/description and example template for the docs.
Now I just have to get everyone to buy in... 18:55
ilmari yoleaux: the one between eight and ten, obviously
[Coke] AlexDaniel: I go to rt.perl.org -> tickets -> simple search -> requestor email = .... -> add these terms and search.
18:55 rindolf left
jnthn yoleaux: What kind of idiot are you? 18:55
.tell nine A proto should be added with add_method since it's not a multi, but a proto :)
yoleaux jnthn: I'll pass your message to nine.
[Coke] You have a chance to remove the default search criteria, which for me basically "perl6 queue, only open tickets"
jnthn mr_ron: Your no-such-method() example doesn't call a method, it calls a sub. 18:56
18:56 ggoebel joined
ilmari m: #line 42 foo␤die 18:56
camelia rakudo-moar 815eb4: OUTPUT«Died␤ in block <unit> at /tmp/JM9OJhoD0n:2␤␤»
18:56 patrickz left
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
m: if 0 { 42.no-such-method }
camelia ( no output )
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␤␤»
mr_ron m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('123');
camelia rakudo-moar 815eb4: OUTPUT«123␤»
mr_ron m: if False { no-such-sub() }
camelia rakudo-moar 815eb4: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4X6QzU7Gik␤Undeclared routine:␤ no-such-sub used at line 1␤␤»
[Coke] AlexDaniel: does that help?
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.
jnthn mr_ron: A rule *is* a method
mr_ron: And a grammar is just a class with a different default base class
[Coke] in my experience, everyone who logs into RT sees it completely differently, so those options may not be there for you. :)
m: say Grammar.^mro 18:59
camelia rakudo-moar 815eb4: OUTPUT«((Grammar) (Cursor) (Any) (Mu))␤»
ilmari grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo');
m: grammar G { token TOP { ^ \d+ | <no-such-rule> $ } } ; say ~ G.parse('foo');
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␤␤»
mr_ron m: if '123' ~~ / \d+ | <nosuchtoken> / { say 'ok'} 19:00
camelia rakudo-moar 815eb4: OUTPUT«ok␤»
mr_ron is nosuchtoken a method?
jnthn A method call, but yes
ilmari m: 'foo' ~~ / \d+ | <nosuchtoken> /
camelia rakudo-moar 815eb4: OUTPUT«Method 'nosuchtoken' not found for invocant of class 'Cursor'␤ in block <unit> at /tmp/u_0XigXbCP:1␤␤»
jnthn I was about to do that. :) 19:01
AlexDaniel [Coke]: I can't get it to work…
ilmari qr//.^mro
m: qr//.^mro
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␤»
dalek ast: 106b31a | usev6++ | S14-roles/ (4 files):
Replace some eval-dies-ok in S14-* with throws-like
ilmari m: rx//.^mro
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␤»
ilmari m: rx/./.^mro
camelia ( no output )
FROGGS m: say rx/./.^mro
ilmari m: say rx/./.^mro
camelia rakudo-moar 815eb4: OUTPUT«((Regex) (Method) (Routine) (Block) (Code) (Any) (Mu))␤»
mr_ron if it tries to call it the problem is found but it kind of seems to defeat "strict" in a way
ilmari FROGGS: damnit
AlexDaniel oooh wait
FROGGS ;o)
AlexDaniel I think I got it
[Coke] \o/ 19:02
FROGGS mr_ron: method calls are not resolved at compile time... sub calls are
AlexDaniel [Coke]: well not really, it seems like it does not list closed ones
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␤␤»
AlexDaniel now I have to figure out what I have to type there to get all…
FROGGS mr_ron: the SORRY tells you it is a compile time error
AlexDaniel oh, just “any”
19:04 yqt joined
AlexDaniel [Coke]: so the solution is: 1. go here rt.perl.org/Public/Search/Simple.html 2. type your email address and “any”, like: [email@hidden.address] any 19:04
and that's it
pretty simple
Hm I wish I could bookmark it but I think that it will throw a CSRF error 19:07
… it does it all the time… 19:08
19:09 ecocode joined 19:12 diana_olhovik joined, smash_ is now known as smash
mr_ron thanks to everyone for the clarification that rules are like methods ... 19:12
19:12 grondilu left, Gardner left 19:13 apejens left, pink_mist left 19:14 apejens joined, Gardner joined, grondilu joined, pink_mist joined
dalek ecs: 806ebcb | (Prog Rammer)++ | S07-lists.pod:
Add another example that seemed to be missing
19:15
ecs: cc54811 | jnthn++ | S07-lists.pod:
Merge pull request #100 from prammer/one-arg-clarify

Add another example that seemed to be missing
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);␤»
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 :)
mr_ron From design.perl6.org/S05.html#Regex_Rou..._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.
nine I now have an EnumHOW based Boolean class in BOOTSTRAP that ~~ Int
mr_ron You have to read the fine print. 19:19
19:20 diana_olhovik___ joined, diana_olhovik left 19:21 telex left 19:22 telex joined 19:23 tokuhiro_ joined 19:24 domidumont left
dalek kudo/nom: b1f75d0 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
fixes for CURLI until Final Solution™ is inflicted upon us
19:25
kudo/nom: b805f49 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
fix spaces
kudo/nom: ae9afc5 | tony-o++ | src/core/CompUnitRepo/Local/Installation.pm:
no candidates doesnt need a check
kudo/nom: 9e8b7b4 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
Merge pull request #541 from tony-o/nom

fixes for CURLI until Final Solution™ is inflicted upon us
ast: 202bbe6 | usev6++ | S (3 files):
Replace more eval-dies-ok with throws-like (S15/S29)
19:27
19:27 tokuhiro_ left 19:29 yqt left
btyler dha: any thoughts on "Usage" first in the doc template you linked? 19:30
19:30 apotheon_ joined
tony-o lizmat++ ty for merge 19:32
19:32 apotheon left, bakedb left
timotimo o/ 19:32
19:34 rindolf joined
lizmat tony-o: yw 19:35
yoleaux 17:18Z <dha> lizmat: Have blogged, if you're still summarizing. dhaperl6.blogspot.com/2015/09/im-back.html
jnthn time for rest...couple of flights tomorrow :S &
nine jnthn: thank you so much for fixing this 16 bit overflow just in time to safe me from hours of frustrating debugging.
jnthn nine: Welcome ;)
lizmat jnthn: safe travels! 19:36
jnthn lizmat: Thanks :)
19:36 diana_olhovik___ left
jnthn is going for a few days teaching, so will be a bit less available than normal this week 19:37
No more teaching until Nov after this though :)
anyways, 'night o/
19:38 dha left
nine Good night! 19:38
19:39 dha joined
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 darutoko- left
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
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
vendethiel I was told someone got an APL module for Perl6. is that true? 19:44
it can't quite be just "embedded", as + and / are reused :P
19:45 ][Sno][ left
dha I made the mistake of having an idea. :-) 19:46
19:47 tokuhiro_ left 19:49 apotheon_ left
masak irclog.perlgeek.de/perl6/2015-09-27#i_11280665 # what it's like to be a (good) language designer 19:50
19:54 apotheon joined 19:55 rurban joined 19:57 rindolf left
[Coke] vendethiel: (APL) not that I'm aware of. There was an APL implementation on parrot years ago, but it's surely bitrotted. 19:58
vendethiel [Coke]: thank you! :) 19:59
[Coke] vendethiel: exporting to github... 20:01
github.com/coke/paraplegic/ 20:05
20:08 _dolmen_ joined
vendethiel [Coke]: thank you :-) 20:10
[Coke]: were grammars not implemented then? 20:12
the code is pretty short, for the rest
oh, my bad, it just has this .pg extension -- that confused me
20:13 cognominal left 20:14 emilbarton left 20:15 dha left
[Coke] vendethiel: this is ancient ancient code. 20:21
20:23 _thou joined, bakedb joined 20:24 ecocode left 20:25 thou left 20:26 kaare_ left
AlexDaniel masak: no!! Here is what it's like to be a good language designer www.artima.com/weblogs/viewpost.jsp?thread=98196 20:28
sorry, couldn't resist
masak :P
kudos for springing Python on me, and not PHP
20:29 jkva joined
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…
dalek kudo/nom: 3b1aa2e | lizmat++ | src/core/IO/Handle.pm:
Introduce IO::Handle.supply

Change an open IO::Handle into an on-demand Supply, so you can now also say: "words".IO.open.supply.lines.tap: { .say } . TIMTOWTDI
vendethiel lizmat++
masak supply.lines! :P 20:31
lizmat first time I could use the new supply { } syntax :-)
masak: Supply.lines already existed for quite some time
masak I'm so out of touch :)
masak .oO( <masak> masak: keep up! )
pink_mist lizmat++ yay, been hoping that would get done :D 20:34
lizmat hmmm... it should probably be called Supply, as it acts as a coercer 20:37
20:37 larion joined 20:38 jkva left, xfix left
dalek kudo/nom: e1cedd3 | lizmat++ | src/core/IO/Handle.pm:
Rename to Supply so it can be used as a coercer
20:43
20:46 jkva joined
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␤»
AlexDaniel m: say Any > 0
camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/jsQ_57CDSP:1␤False␤»
AlexDaniel m: say Any == 0
camelia rakudo-moar 9e8b7b: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at /tmp/aEqrf9qsBo:1␤True␤»
AlexDaniel hm 20:49
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␤»
AlexDaniel I don't understand this error message. Is it just me?
timotimo wow, "words".IO.open.supply.lines.tap: { .say }; that's so concise! :) :)
AlexDaniel: what's the problem in this case?
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 :-)
timotimo m: say Any.^name; say Any.perl; say Any.gist; Any.say
camelia rakudo-moar 9e8b7b: OUTPUT«Any␤Any␤(Any)␤(Any)␤»
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
timotimo because that's also what the value is in this case
ilmari m: Int > 0
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␤␤»
lizmat AlexDaniel: or maybe not :-( 20:53
ilmari a bare type name is an undef value of that type
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…
pink_mist AlexDaniel: if the thing it's called on is undefined, it needs to be stringified, and it can be! 20:54
AlexDaniel pink_mist: ooooh 20:55
pink_mist: OK, now I know how to read it! 20:56
AlexDaniel scratches his head 20:57
nine m: enum Foo (1, 2, 3);
camelia ( no output )
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;
camelia rakudo-moar 9e8b7b: OUTPUT«Type check failed in assignment to $foo; expected Foo but got Int␤ in block <unit> at /tmp/neJOu1Y4dD:1␤␤»
nine m: enum Foo (1, 2, 3); my Foo $foo = Foo::2; say $foo;
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⏏052; say $foo;␤ expecting any of:␤ infix␤ infix stopper␤ postfix…»
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
look, Any == 0 – True, Ane eq '' – True
everything else is false
it feels like it is a leftover after the time when '0' was False 21:00
is it true?
pink_mist m: say 0 == False 21:01
camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
nine m: enum Boolean <Falser Truer>; say Falser;
camelia rakudo-moar 9e8b7b: OUTPUT«Falser␤»
nine m: enum Boolean <Falser Truer>; say Falser.WHAT;
camelia rakudo-moar 9e8b7b: OUTPUT«(Boolean)␤»
nine m: enum Boolean <Falser Truer>; say Falser.HOW;
camelia rakudo-moar 9e8b7b: OUTPUT«Perl6::Metamodel::EnumHOW.new␤»
nine m: enum Boolean <Falser Truer>; say Falser.^attributes>>.name;
camelia rakudo-moar 9e8b7b: OUTPUT«($!key $!value $!value)␤»
nine Two $!value attributes?
lizmat nine: that's possible, if they are of different types 21:02
dalek ecs: 7934ea4 | PerlJam++ | S11-modules.pod:
minor typo fix
21:03
nine m: use nqp; enum Boolean <Falser Truer>; say nqp::getattr(Truer, '$!value');
camelia rakudo-moar 9e8b7b: OUTPUT«===SORRY!===␤Unknown QAST node type NQPMu␤»
lizmat PerlJam: braking the speed of sound :-)
AlexDaniel so, in otherwords, should Any == 0 be True?
pink_mist I thought it was 21:04
lizmat well, in P5 tradition, yes
with a warning :-)
masak m: class C { has $1value }; class D is C { has $!value }; say D.^attributes>>.name
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
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␤»
masak m: class C { has $!value }; class D is C { has $!value }; say D.^attributes>>.name
camelia rakudo-moar 9e8b7b: OUTPUT«($!value $!value)␤»
lizmat m: say Int eq ''
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 FROGGS left
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!
AlexDaniel that's what I was trying to say 21:06
21:06 jkva left
lizmat m: say ?"" 21:06
camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
lizmat m: say ?0
camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
AlexDaniel hmmmmmmm?
lizmat but their still False ?
I think you're mistaken with:
m: say ?"0"
camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
lizmat *that* used to be false 21:07
AlexDaniel ahhhhhh
pink_mist m: Any eq "0"
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…»
pink_mist m: say Any eq "0"
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␤»
AlexDaniel lizmat: right! I did!
thanks!
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
i wonder if that's difficult?
masak timotimo: Try It And See? 21:08
PerlJam masak: How do you get the fully qualified names for those attributes?
timotimo mhm 21:10
ilmari m: class Foo { has $!vaue } Foo.^attributes[0].^attributes
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␤ …»
ilmari m: class Foo { has $!vaue }; Foo.^attributes[0].^attributes
camelia ( no output )
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␤␤»
PerlJam oh, nevermind, the package is stored as part of the attribute
21:11 skids left
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)␤»
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␤»
masak PerlJam: ^
21:12 ][Sno][ joined
nine m: enum Boolean <Falser Truer>; say Falser.^attributes>>.package; 21:14
camelia rakudo-moar 9e8b7b: OUTPUT«((Boolean) (Boolean) (Int))␤»
PerlJam still awkward though
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
camelia rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2)).Seq␤»
PerlJam nine: Are you working on making True ~~ Int and Bool ~~ Int ?
nine PerlJam: yes
masak nine++
lizmat nine: would you agree with ^^^ 21:15
mst awwaiid: did you get anywhere?
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.
nine PerlJam: yes, it's full of challenges :)
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"
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
btyler mst: RE newline method calls? github.com/rakudo/rakudo/commit/cb...ceec2c74de 21:17
lizmat nine: by that argument push( @a, @b ) would also not be single arg
21:18 _dolmen_ left
masak except if you consider @a the invocant of .push, and thus special 21:18
no such argument can be made for infix:<xx>
mst btyler: so what means I can do $foo.bar() .baz() now?
btyler mst: yep 21:19
mst *that
masak m: say dd (1, 2).&infix:<xx>(5)
camelia rakudo-moar 9e8b7b: OUTPUT«((1, 2), (1, 2), (1, 2), (1, 2), (1, 2))␤Nil␤»
masak :)
mst btyler: excellent
masak wow, I have never called an operator as a method before. I'm gonna use this from now on.
dalek kudo-star-daily: 996608a | coke++ | log/ (9 files):
today (automated commit)
21:20 pierrot left
btyler m: gist.github.com/kanatohodets/af74a...34a4bc8ff8 21:21
camelia rakudo-moar 9e8b7b: OUTPUT«bar called 1 times␤bar called 2 times␤bar called 3 times␤bar called 4 times␤»
btyler mst ^
21:21 pmurias joined
btyler (just to make sure we're talking about the same thing) 21:21
pmurias AlexDaniel: there is a lot of value in consistency
mst btyler: yes, that's exactly what I wanted :D 21:22
AlexDaniel pmurias: I agree, but what made you say so?
21:22 vendethiel left
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? :)
ah 21:23
dalek kudo/nom: f142d7d | ugexe++ | src/core/CompUnitRepo/Local/Installation.pm:
Allow CURLI loading of .pm extension modules

CURLI currently writes the manifest such that it may use 'pm' *or* 'pm6' as the key
21:24
kudo/nom: a41b719 | lizmat++ | src/core/CompUnitRepo/Local/Installation.pm:
Merge pull request #542 from ugexe/patch-1

Allow CURLI loading of .pm extension modules
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:25
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
and the python language makes them ugyly 21:27
* ugly
dalek ast: 1753a2b | usev6++ | S04-statements/ (2 files):
Replace more eval-dies-ok with throws-like (S04)
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
or maybe it was just because a lot of people were crying about it too much, I don't know
pmurias AlexDaniel: IMHO there are two different ways of designing things
[Coke] m: say so any Any or all on &
camelia rakudo-moar 9e8b7b: OUTPUT«False␤»
AlexDaniel [Coke]: what?! 21:31
[Coke] whistles innocently.
masak m: say so not Cool or .WHAT
camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
pmurias AlexDaniel: piling good things on top of each other or carefully choose a small elegant mix of things
AlexDaniel: both of those ways work 21:32
AlexDaniel: at least for programming languages and board games ;)
AlexDaniel pmurias: I don't see which way includes timtowtdi 21:33
masak pmurias: reminds me of zoo.cs.yale.edu/classes/cs422/2014/...mperor.pdf
pmurias timtowdi is just piling good things without much concern for consistency
PerlJam Coke: we haven't had any obfuscation contests yet and you're already trying to win!
AlexDaniel PerlJam: oh! Wait a minute…
“<PerlJam> AlexDaniel: You clearly win the Perl6 obfuscation contest ;)” 21:34
PerlJam Well, it's you an Coke in the lead then :) 21:35
s/an/and/
AlexDaniel for those who don't remember, the code was
m: say [::]/\/\/\/\/\/\[:/
camelia rakudo-moar 9e8b7b: OUTPUT«12␤»
pink_mist oh god
lizmat m: say so not Cool without Exception 21:36
camelia rakudo-moar 9e8b7b: OUTPUT«True␤»
AlexDaniel sometimes the output is different but I don't remember why
21:36 adhoc left
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:36
AlexDaniel pmurias: but there are so many new features! 21:37
21:39 ][Sno][ is now known as [Sno]
AlexDaniel what is “on”? 21:41
m: on
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␤»
lizmat .tell FROGGS added tie-breaking logic to gist.github.com/lizmat/f3807956c35.../revisions
yoleaux lizmat: I'll pass your message to FROGGS.
masak m: use Test; sub we($) {}; is so not Cool, so say we(all())
camelia rakudo-moar 9e8b7b: OUTPUT«all()␤ok 1 - ␤»
masak m: use Test; sub we($) {}; is so not Cool, so say we all()
camelia rakudo-moar 9e8b7b: OUTPUT«all()␤ok 1 - ␤»
pmurias AlexDaniel: a bigger pile of good stuff is better
lizmat .tell FROGGS is that something you can agree to?
yoleaux lizmat: I'll pass your message to FROGGS.
pink_mist pmurias: and then you get PHP :P 21:42
21:42 yqt joined
pmurias pink_mist: PHP is just piling crap 21:42
ilmari pink_mist: no, that's if you forget the "good" part
lizmat AlexDaniel: it appears "on" is not documented on doc.perl6.org 21:44
masak 'night, #perl6
AlexDaniel lizmat: well, that's why I asked
21:44 tokuhiro_ joined
hoelzro o/ masak 21:45
PerlJam There is no "on"
lizmat github.com/perl6/specs/blob/master...rrency.pod # some text about on near the end 21:46
PerlJam: oh, but there is
just not documented
afaics
dalek kudo/nom: 59b5a4b | TimToady++ | src/core/Range.pm:
allow shifting and scaling of Range values

Since it's actually kind of difficult to do correctly otherwise and maintain endpoint exclusions, we now allow basic arithmetic operations on a Range to clone the Range and modify the endpoints in order to shift an interval arithmetically or expand/contract it geometrically.
21:48
21:49 tokuhiro_ left
dalek ast: 139c10c | TimToady++ | S02-types/range.t:
test new arithmetic ops on intervals
21:49
c: 1f5443d | (Ronald Schmidt)++ | lib/Language/traps.pod:
change typo mofify to modify
21:52
ilmari m: say (0.5..5.0).list
camelia rakudo-moar 9e8b7b: OUTPUT«(0.5 1.5 2.5 3.5 4.5)␤»
TimToady this doesn't prevent people from asking for nonsense, of course :) 21:54
ilmari was thinking scaling a range would scale the interval too 21:55
TimToady nope, that way lies madness
dalek c: 5068ab3 | lizmat++ | WANTED:
Add "on" to the WANTED list
21:56
lizmat $ 6 'dd ^10 + 5'
5..^15
cool :-)
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)␤»
ilmari how long does it take from a commit to land until camelia runs it?
TimToady depends on where in the hour it is, but I expect this one in about half an hour 21:58
maybe 15 minutes
er, 25, I mean
21:58 pierrot joined
TimToady starts recompile at 7 after the hour, and usually takes til about 20 after or so 21:59
(last I knew)
timotimo huh, so if it's a range it won't turn into a number any more when used with arithmetic operations? 22:00
lizmat timotimo: wrt to the .min / .max optimisation: are there a large number of numbers involved? 22:01
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
timotimo 9 values in my case
TimToady: yeah, but not with infix + and - apparently
TimToady the situation never arose in the test suite, as a data point
timotimo OK 22:03
22:03 spider-mario left 22:04 lizmat_ joined
lizmat_ m: dd +^10 22:04
camelia rakudo-moar 9e8b7b: OUTPUT«-11␤»
timotimo haha
that's a different operator :)
lizmat_ yeah :-) 22:05
dalek kudo/nom: e503dfc | lizmat++ | src/core/Range.pm:
Use the features of .clone
22:05 kid51 joined
TimToady one of those things you might write in a repl but almost never in real code 22:05
22:06 lizmat left
timotimo a big performance penalty in my code arises from the way i grab neighbouring fields in my 2d array 22:06
22:06 lizmat_ is now known as lizmat
timotimo i just index into values located "outside" the array and catch that with // Inf 22:07
because .min will make the Inf "disappear"
lizmat timotimo: do you use a slice?
timotimo i do not
lizmat AT-POS instead of [] ?
timotimo no
lizmat you could try that
timotimo i write it like that because it looks a bit less bleh :)
the problem really is that it throws the exception and i resolve it with //
at least it causes deoptimizations 22:08
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
that would indicate border in a dispatch table
timotimo yes, that's a very common way to do this kind of thing
add 2 to each dimension and index with 1
er, i mean: starting with 1
lizmat yup, something like that
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
the garbage collection time rises steadily
i've had it reach 100ms after perhaps a minute of execution
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!
TimToady o/ 22:14
timotimo gnite lizmat 22:15
can i just say 22:16
i'm *so* glad the whole reify crap is gone
22:17 cognominal left
TimToady no, you can't just say that 22:19
timotimo #perl6 is a free country
you can't tell me what i can or can't tell you!
TimToady you can't *just* say that, obviously
timotimo pff, are you making fun of my ability to say more than just one thing? 22:20
TimToady ayup
timotimo nobody says what i say has to be right, or not funny
TimToady we don't have anyone named nobody around here 22:21
gfldex ohai!
timotimo nobody's named that
gfldex 00:21 [freenode] -!- Nick nobody is already in use
o.0
pink_mist what about anybody?
somebody?
everybody! 22:22
22:26 pmurias left 22:27 skids joined
TimToady m: say (1..10) * 10 22:31
camelia rakudo-moar 9e8b7b: OUTPUT«100␤»
TimToady slow recompile...
22:34 RabidGravy left
AlexDaniel m: say (3..15) * 2 22:37
camelia rakudo-moar 9e8b7b: OUTPUT«26␤»
22:40 z8 left 22:41 z8 joined 22:43 pink_mist left, pink_mist joined
TimToady camelia not recompiling for some reason 22:44
dalek ast: be4fc4f | TimToady++ | S03-operators/precedence.t:
tests to make sure . has proper precedence
22:46
22:46 rurban left
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 kudo/nom: 140f3c9 | TimToady++ | src/Perl6/Grammar.nqp:
don't really need the fake precedence level

since left-to-right associativity makes . happen after prefix anyway, and now we have the tests to prove it.
22:49 leont joined
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, "")}␤»
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" => ""}␤»
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
ShimmerFairy Also, was that "faking precedence" issue related to rakudo having a fake 'unary' associativity? 23:02
23:04 pierrot left 23:05 Ulti_ is now known as Ulti 23:11 bjz_ left
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" => ""}␤»
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]]␤»
timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;0] = Inf xx *; say @field;
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]]␤»
timotimo m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[*;*-1] = Inf xx *; say @field;
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]]␤»
timotimo huh? why do i get "cannot modify an immutable num" locally ...
oh
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␤␤»
timotimo i don't understand why this happens; is my code wrong?
m: my @field = [(^2).roll(5 + 2)] xx (5 + 2); @field[0] = Inf xx (5 + 2); say @field;
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]]␤»
timotimo ah, i see
AlexDaniel say (3..15) * 2 23:24
m: say (3..15) * 2
camelia rakudo-moar 9e8b7b: OUTPUT«26␤»
timotimo i'm a tiny bit surprised the script still seems to cause lots of deopt in postcircumfix:<[ ]> 23:34
23:36 bjz joined 23:37 pierrot joined 23:43 pierrot left 23:44 pierrot joined 23:46 tokuhiro_ joined 23:48 bjz left 23:51 tokuhiro_ left 23:52 pierrot_ joined 23:53 pierrot left