»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
AlexDaniel \o/ 01:11
AlexDaniel m: ([+] **)(4, 8, 15).say 01:15
camelia rakudo-moar dd911e: OUTPUT«Cannot resolve caller Numeric(HyperWhatever: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel :(
timotimo so we don't curry that? 01:21
m: (**.sum)(4, 8, 15).say
camelia rakudo-moar dd911e: OUTPUT«(4 8 15)␤»
mr_ron m: gist.github.com/ronaldxs/034612d24...2a278aa817 01:23
camelia rakudo-moar dd911e: OUTPUT«===SORRY!===␤Could not find IETF::RFC_Grammar::URI at line 2 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ …»
mr_ron how to run with r*? 01:24
geekosaur star: gist.github.com/ronaldxs/034612d24...2a278aa817
camelia star-m 2016.10: OUTPUT«ok 1 - Existing grammar happens by luck to work␤not ok 2 - Match with small and valid change fails apparently caused by LTM␤␤# Failed test 'Match with small and valid change fails apparently caused by LTM'␤# at <tmp> line 16␤# expected: 'IPv4address'…»
mr_ron thanks 01:24
m: gist.github.com/ronaldxs/35224401d...03a75edb8e
camelia rakudo-moar dd911e: OUTPUT«ok 1 - Match using variant of existing rules OK␤not ok 2 - Match with small and valid change fails apparently caused by LTM␤␤# Failed test 'Match with small and valid change fails apparently caused by LTM'␤# at <tmp> line 15␤# expected: 'IPv4ish'…»
mr_ron You could just use || to fix but would be also be too fragile with composition / inheritance 01:26
design.perl6.org/S05.html#Longest-token_matching - If a grammar's rules are defined in more than one file, the order is undefined, and an explicit assertion must be used to force failure if the wrong one is tried first. 01:27
maybe a hint there from s05 but I don't know how to use it. Any ideas? 01:28
AlexDaniel timotimo: you think it is a bug? 01:41
mr_ron So the idea is I want the host rule to try IPv4 before reg-name but in a way that makes grammar re-usable for XML etc. which seems to preclude '||' because of LTM ... 01:48
timotimo i have little understanding of HyperWhatever, to be honest 01:58
timotimo goes to bed 02:03
raschipi night. 02:11
jdv79 is there not a top level CATCH? 02:23
i find myself having to drop CATCH blocks around to find the exceptions
i have to be doing something wrong
also, i just had a X::TypeCheck::Binding being thrown without a backtrace so it was unclear what it meant 02:24
AlexDaniel jdv79: have you tried --ll-exception? 02:33
BenGoldberg m: use IO::String; 02:35
camelia rakudo-moar dd911e: OUTPUT«===SORRY!===␤Could not find IO::String at line 1 in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-1/share/perl6/site␤ /home/camelia/rakudo-m-inst-1/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-1/share/perl6␤ CompUnit::Re…» 02:35
jdv79 no. i just did $_.backtrace
but shiouldn't that be the default?
AlexDaniel no 02:36
if you're getting an error with no line number, then it's probably a bug
[Coke] moritz: I'd be willing to mentor (having failed at it once, I'd like to think I could do it better this time. :| ) 03:43
why do people keep trying to use IO::String here?:)
Geth cosystem: bradclawsie++ created pull request #292:
s/META.info/META6.json/
04:55
jdv79 returning |() in a map is the easiest way to reduce that iteration to nothing, right?
Geth cosystem: 11cdd3c246 | (brad clawsie)++ | META.list
s/META.info/META6.json/
04:57
cosystem: 702d69dd9f | astj++ | META.list
Merge pull request #292 from bradclawsie/master

s/META.info/META6.json/
jdv79 well, if my lap was cold now its melting 05:25
i think its XML burnin up cycles 05:26
AlexDaniel .tell lizmat can you please check this code and tell me whether the current behavior is correct (behavior changed in 2016.11)? my @foo[10]; my @baz := |@foo; @baz = ^20; say @baz 06:02
yoleaux AlexDaniel: I'll pass your message to lizmat.
AlexDaniel .tell lizmat (#00001997) 06:03
yoleaux AlexDaniel: I'll pass your message to lizmat.
AlexDaniel .tell brokenchicken it seems that your fix for RT#128783 did not remove the error message itself from rakudo. Is everything alright? gist.github.com/Whateverable/1c806...791b3ce481 06:15
yoleaux AlexDaniel: I'll pass your message to brokenchicken.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128783
AlexDaniel .tell brokenchicken (#00003518)
yoleaux AlexDaniel: I'll pass your message to brokenchicken.
AlexDaniel .tell lizmat also this: 「given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ }」, I'm not sure why the output is different (after github.com/rakudo/rakudo/commit/b7201a8f2 ) 06:22
yoleaux AlexDaniel: I'll pass your message to lizmat.
AlexDaniel .tell lizmat (#00003948)
yoleaux AlexDaniel: I'll pass your message to lizmat.
parvx why do some methods/functions are spelled with "-" others with "_" (Routines: docs.perl6.org/routine.html)? is one version going to be converted to other? 07:41
moritz parvx: we tend to write internal methods with _ and "proper" public methods with - 07:50
parvx: there's not always a 100% distinction between the two
parvx hmm. ok. 07:51
parvx does anybody know if somebody is working on Perl 6 port for FreeBSD (in or out of the "The Ports" system)? 07:56
moritz I'm not aware of such a work 07:57
parvx ok. I will ask around FreeBSD community. If there is already no existing work, I will try to install (at least for myself). 07:59
AlexDaniel .tell MasterDuke was this change intended? commit: 73797b759^,73797b759 say lines.elems; say lines[0]
yoleaux AlexDaniel: I'll pass your message to MasterDuke.
AlexDaniel .tell MasterDuke (#00005346) 07:59
yoleaux AlexDaniel: I'll pass your message to MasterDuke.
ufobat good morning ;) 08:07
ufobat i _allways_ write .elemes instead of .elems *sigh 08:15
ufobat i _allways_ write .elemes instead of .elems *sigh 08:16
AlexDaniel .tell lizmat also this: 「say Nil.chomp」 no longer says “Use of Nil in string context”. Let me know if it is ok? (#00007355) github.com/rakudo/rakudo/commit/89470a6a63e 08:22
yoleaux AlexDaniel: I'll pass your message to lizmat.
parvx ufobat: you could configure your editor to correct your misspelling (short of writing some wrapper around .elems) 08:24
ufobat that is actually a good idea! :D 08:25
AlexDaniel m: say <a b c>.elemes
camelia rakudo-moar dd911e: OUTPUT«No such method 'elemes' for invocant of type 'List'␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel m: say elemes <a b c>
camelia rakudo-moar dd911e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ elemes used at line 1. Did you mean 'elems'?␤␤»
AlexDaniel if you use the sub instead, it will say “did you mean ‘elems’” and now it is a compile-time error!
ufobat aye, but it is still a silly typo 08:26
AlexDaniel .tell brokenchicken I think it was you who was surprised to know that there is substr-rw. Well, guess what, there's subbuf-rw 08:28
yoleaux AlexDaniel: I'll pass your message to brokenchicken.
AlexDaniel .tell brokenchicken my $b = Buf.new(1,2,3); subbuf-rw($b,2,1) = Buf.new(42); dd $b
yoleaux AlexDaniel: I'll pass your message to brokenchicken.
AlexDaniel .tell TimToady so is this supposed to warn? 'hello' [&say] 'world' 08:48
yoleaux AlexDaniel: I'll pass your message to TimToady.
AlexDaniel .tell TimToady github.com/rakudo/rakudo/commit/acece7b2f7 (#00007997)
yoleaux AlexDaniel: I'll pass your message to TimToady.
parvx are there other places to read about rakudo & moarvm issues besides respective github repos & www.nntp.perl.org/group/perl.perl6.users/? 08:49
AlexDaniel parvx: you mean tickets? rt.perl.org/ 08:50
parvx yes. thanks.
AlexDaniel though I wonder why you need to read about rakudo issues :)
timotimo perl6.fail is a slightly nicer frontend to perl6 issues in RT 08:51
teatime heh
tadzik ahahahah
fantastic :)
AlexDaniel timotimo: it's nice that you're here! 08:53
timotimo: what do you think about this?
m: sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; say $_; }; };
timotimo uh oh
camelia rakudo-moar dd911e: OUTPUT«1␤2␤3␤===SORRY!===␤next without loop construct␤»
AlexDaniel mc: sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; say $_; }; };
committable6 AlexDaniel, ¦«2015.12»: 1␤2␤3
timotimo oh, a regression?
that should definitely work 08:54
AlexDaniel c: 5f1249e8^,5f1249e8 sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; say $_; }; };
committable6 AlexDaniel, ¦«5f1249e8^»: 1␤2␤3␤¦«5f1249e»: 1␤2␤3␤Access denied to keep/break this Promise; already vowed␤ in any at /tmp/whateverable/rakudo-moar/5f1249e843bbd7ead4860f65c2ccd19ec6376033/share/perl6/runtime/CORE.setting.moarvm line 1␤ «exit code = 1»
AlexDaniel hmmm
bisect: old=5f1249e8 sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; say $_; }; }; 08:55
bisectable6 AlexDaniel, Bisecting by output (old=5f1249e new=dd911ef) because on both starting points the exit code is 1
parvx AlexDaniel, if i decide to make a FreeBSD port, I will use the git repo. I will also be the de facto maintainer of the port. (In 2010, Parrot VM based Rakudo was removed.)
bisectable6 AlexDaniel, bisect log: gist.github.com/6ae9e9e13c7c875b40...ba280224aa
AlexDaniel, (2016-08-03) github.com/rakudo/rakudo/commit/5e...b2b9ba3a30
AlexDaniel ah, not gonna work by output…
timotimo why does it give the full path to the CORE.setting there?
AlexDaniel that's a lovely question, yes
c: 5e61516a^,5e61516a sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; say $_; }; };
committable6 AlexDaniel, gist.github.com/7484639f6adeb06a75...b2bf39b110
parvx I mean github repo
AlexDaniel yea it's not gonna bisect by that… 08:56
timotimo: anyway, I'll submit a ticket then
parvx thanks timotimo
timotimo yes 08:57
AlexDaniel parvx: I'm not quite sure what port you are talking about… if it doesn't work on FreeBSD, why not just add the support? 08:58
timotimo parvx means "FreeBSD Ports"
the package manager
AlexDaniel aaaaaaaaaahh
okay, sorry
my mistake
parvx no worries, AlexDaniel
timotimo it's FreeBSD's fault :P
AlexDaniel timotimo: perhaps you can take a look RT #130601 09:02
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130601
AlexDaniel I mean, I have no idea if this should work at all… so feel free to add a comment 09:03
timotimo here's how to bisect it:
AlexDaniel well the first commit is github.com/rakudo/rakudo/commit/5f...9ec6376033 09:04
timotimo bisect: sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ > 3; CATCH { default { exit 1 } } }; }; exit 0
bisectable6 timotimo, Bisecting by exit code (old=2015.12 new=dd911ef). Old exit code: 0
timotimo, bisect log: gist.github.com/36d349a9d6f5b0e3df...fa192915f7
timotimo, (2016-08-03) github.com/rakudo/rakudo/commit/5f...9ec6376033
AlexDaniel
timotimo oh, you already found that?
lol
AlexDaniel yea, but that's for “Access denied to keep/break this Promise; already vowed” 09:04
timotimo i didn't see you successfully bisected it 09:05
AlexDaniel I was also hoping to see when it was changed to “next without loop construct”
timotimo ah
that's very interesting, why doesn't the CATCH get the error before it tries to break the vow?
timotimo i'm also slightly surprised we don't have a test that'd catch that 09:10
lizmat . 09:41
yoleaux 06:02Z <AlexDaniel> lizmat: can you please check this code and tell me whether the current behavior is correct (behavior changed in 2016.11)? my @foo[10]; my @baz := |@foo; @baz = ^20; say @baz
06:03Z <AlexDaniel> lizmat: (#00001997)
06:22Z <AlexDaniel> lizmat: also this: 「given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ }」, I'm not sure why the output is different (after github.com/rakudo/rakudo/commit/b7201a8f2 )
06:22Z <AlexDaniel> lizmat: (#00003948)
08:22Z <AlexDaniel> lizmat: also this: 「say Nil.chomp」 no longer says “Use of Nil in string context”. Let me know if it is ok? (#00007355) github.com/rakudo/rakudo/commit/89470a6a63e
lizmat AlexDaniel: I think the behaviour of my @foo[10]; my @baz := |@foo; @baz = ^20; say @baz is correct 09:45
timotimo binding a slip to a @-sigiled var, interesting
lizmat Slipping an Array gives you the Array 09:47
timotimo ah, makes sense 09:48
lizmat to which @baz is bound, and thus, because it's shaped, disallows assignment after element 9
timotimo mhm
lizmat well, what happens there is that List.Slip is smart enough to transplant it's $!reified into the Slip 09:51
if the $!reified happens to be shaped, you get a shaped Slip 09:52
lizmat AlexDaniel: see github.com/rakudo/rakudo/commit/7c81becffb re Nil.chomp 10:05
lizmat AlexDaniel: what are those numbers ? 10:09
#00001997 #00003948
?
parvx at least for now, having exportABLE functions in a module too much work than in Perl 5 (and that is without supposedly otherwise needed "module" line). That is too far away for me to worry about anyway. :-| 10:18
jnthn sub foo() is export { } # where's the work? 10:19
timotimo invizibl work
parvx that is the default export, jnthn. i am talking about being able to selectively import 10:20
timotimo youm ean like "is export(:ONLYTHIS)"? 10:21
parvx ... on the lines of @EXPORT_OK in Perl 5
jnthn Yeah, it's done with tags rather than specific symbols in Perl 6
lizmat jnthn: Perl 5 also allows something like that, but Perl 6 disallows importing by name :-( 10:22
jnthn Apparently some people miss this. 10:22
lizmat for something like a POSIX module, you don't want to tag each sub with its own tag
mst you can't import the specific functions you want?
parvx i saw the code somewhere but currently cannot find in a hurry
mst that seems ... strange ... to me
jnthn No, you'd tag them in groups.
jnthn And import the relevant group 10:23
jnthn iirc, there is a specified mechanism for importing specific symbols (iirc, `:MY<&foo @bar>`) 10:23
timotimo what speaks against only pulling in the package, and then importing indivudal parts of the package with the import syntax?
mst oh, so you can ask for specific symbols that are exported? 10:24
jnthn mst: Specified, not implemented :)
mst jnthn: ah 10:24
jnthn Nobody got around to it, is all.
mst it's not *that* big a deal but it seems a bizarre thing to leave out
timotimo module stuff and importing stuff and merging symbols and such ... it's a hairy piece of the code, IMO 10:25
jnthn You're assuming "left out" was a concious decision rather than "nobody got around to it yet" :P
timotimo one day i'll make a little gif of a vacuum cleaner going over a heap of round tuits 10:26
mst jnthn: no, I'm not 10:29
jnthn: I mean that it seems like a bizarre thing to manage to not get to even though you got to the more clever stuff 10:30
FVO 'you' meaning 'everybody who looked at it'
parvx found the code listing to be able to import specific functions: docs.perl6.org/language/5to6-nutsh...m_a_module (near the bottom) 10:34
timotimo yeah, you need to put that EXPORT into the module you want to import 10:35
jnthn mst: I think that case is actually *harder* to implement than the cases of import we have now, fwiw. 10:40
I agree it looks like the simpler one though :)
(And no, it shouldn't be that hard.) 10:41
jnthn Somebody who wants it, feel free to hassle me about it if it looks like we're going to end up without it in 6.d. 10:42
mst jnthn: oh, interesting
jnthn: now *that* is something I was assuming mistakenly
parvx thanks all. see you some other time ...
mst (I'm happy being wrong, I just like to be clear about how I'm wrong ;)
timotimo release is happening today, woop woop 10:45
it feels like we haven't had a release in a year 10:46
jnthn Tomorrow, ain't it? :)
timotimo er, perhaps
jnthn I thought they were on weekends now :)
I'll probably cut the MoarVM release later today though 10:47
timotimo jnthn: you think you can figure out what's gotten wrong with "next" inside whenever 10:51
Geth oc: briandfoy++ created pull request #1149:
Part of the call with example was marked as output
10:54
jnthn timotimo: Just wasn't ever implemented yet, no?
timotimo it used to work
jnthn o.O
If so, then by accident. 10:55
timotimo 2015.12 had it working
hm, hold on.
could also be the result wasn't interpreted correctly
jnthn But yeah, I can make it work without much trouble 10:55
timotimo committable6: 2015.12 sub foo { supply { emit($_) for 1..10; }; }; react { whenever foo() { next if $_ %% 3; say $_; }; };
committable6 timotimo, ¦«2015.12»: 1␤2␤4␤5␤7␤8␤10
azawawi good-morning '#perl6'; 10:56
timotimo sup azawawi
jnthn: if you can make it work without much trouble, maybe i can make it work and you work on something harder ;) 10:57
azawawi having fun with GTK::Simpler :) 10:57
Geth oc: d35b28bcc7 | (brian d foy)++ | doc/Language/functions.pod6
Part of the call with example was marked as output

And, I made the output look like the that for the other examples in that section. Note that those examples have extra spaces after "\n" that aren't part of the actual output.
10:58
oc: bbb9decaed | lizmat++ | doc/Language/functions.pod6
Merge pull request #1149 from briandfoy/master

Part of the call with example was marked as output
azawawi Updated it yesterday to include all of the recent GTK::Simple additions
jnthn timotimo: I think you just install a handler for 'NEXT' in the existing nqp::handle that takes care of emit etc. and then do...nothing. :)
(And don't resume, of course.)
timotimo 'NEXT', 0 10:59
that'll do.
should i install a handler that'll explode when you call LAST and tell you to "please use done instead"? 11:00
AlexDaniel lizmat: the numbers are for me 11:01
lizmat ah, ok :-) 11:01
AlexDaniel lizmat: I have one thousand of snippets to decide on… so…
timotimo AlexDaniel: wanna write tests for next inside whenever blocks? 11:02
AlexDaniel not really
jnthn timotimo: no, actually LAST wants doing too
timotimo: last means that we just wish to unsubscribe from this one particular whenever
It's only equivalent to done if it's the last whenever
timotimo oh, OK 11:04
timotimo i'll see about that 11:04
jnthn Please remember to add tests too :)
timotimo could it be that deactivate-one is the right method to call for that? 11:06
jnthn umm...probably, but I suspect a .close on the tap would also be needed 11:07
AlexDaniel lizmat: ok, and what about 「given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ }」 ? 11:14
lizmat I'm not sure what the problem is there ? 11:16
timotimo m: given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ } 11:17
camelia rakudo-moar f97d5c: OUTPUT«ok␤ok␤「this」␤ok␤「is」␤ok␤「a」␤「test」␤»
lizmat AlexDaniel: do you mean the ignoring of :p ?
is it ?
or the fact that "ok" is called seemingly out of order ? 11:18
what was the old output?
timotimo not sure if we want to guarantee order of side-effects in the regex engine 11:19
lizmat indeed :-) 11:20
AlexDaniel mch: given ‘this is a test’ {.say for m:global:p/\w+{say 'ok'}/ }
committable6 AlexDaniel, ¦«2015.12»: ok␤「this」␤ok␤「is」␤ok␤「a」␤ok␤「test」␤¦«HEAD»: ok␤ok␤「this」␤ok␤「is」␤ok␤「a」␤「test」
AlexDaniel not really… 11:22
but what's the reason for this order anyway? 11:23
lizmat AlexDaniel: trying to figure that out now 11:24
AlexDaniel mch: given ‘this is a test’ {.say for m:global:p/{say ‘before’}\w+{say ‘after: ’, $/}/ } 11:25
committable6 AlexDaniel, gist.github.com/d3cdb19c2cd340e1c9...7c09f3d70f
AlexDaniel why is $/ empty 11:25
mch: given ‘this is a test’ {.say for m:global:p/\w+{say $/}/ } 11:26
committable6 AlexDaniel, ¦«2015.12»: 「this」␤「this」␤「is」␤「is」␤「a」␤「a」␤「test」␤「test」␤¦«HEAD»: 「this」␤「is」␤「this」␤「a」␤「is」␤「test」␤「a」␤「test」
AlexDaniel mch: given ‘this is a test’ { for m:global:p/\w+{say $/}/ { } }
committable6 AlexDaniel, ¦«2015.12,HEAD»: 「this」␤「is」␤「a」␤「test」
AlexDaniel mch: given ‘this is a test’ { for m:global:p/{}\w+{say $/}/ { } }
committable6 AlexDaniel, ¦«2015.12,HEAD»: 「」␤「」␤「」␤「」
AlexDaniel why?
lizmat AlexDaniel: I think the reason is here: github.com/rakudo/rakudo/blob/nom/...tr.pm#L486 11:34
the POST-ITERATOR class gets called with a Cursor (which already did the first match)
AlexDaniel not sure what it means, I have to run 11:35
see you!
lizmat the pull-one freezes the current state of the cursor, then moves it to the next position (if any)
and *then* returns the value
alexk m: my int $i = 0; loop { if $i++ == 10_000_000 { last }}; say now - INIT now; 11:48
camelia rakudo-moar f97d5c: OUTPUT«2.0606382␤»
timotimo m: for ^10_000_000 { }; say now - INIT now
camelia rakudo-moar f97d5c: OUTPUT«1.7111689␤»
timotimo m: for ^10_000_000 -> int $_ { }; say now - INIT now
camelia rakudo-moar f97d5c: OUTPUT«1.26552854␤»
alexk m: my int $i = 0; loop { if $i++ == 10_000_000 { last } else {} }; say now - INIT now;
camelia rakudo-moar f97d5c: OUTPUT«0.1727145␤»
timotimo holy wow, wat? 11:49
that's .. a lot faster
lizmat the last one doesn't need to box / unbox HLLize de-HLLize all the time I think 11:50
timotimo could be, but holy wow, that's still a bunch of time wasted with that
alexk m: my int $i = 0; loop { if $i++ == 10_000_000 { last } else { Empty } }; say now - INIT now; 11:51
camelia rakudo-moar f97d5c: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant value Empty in sink context (line 1)␤2.120407471␤»
timotimo ah, that's close in performance
maybe it keeps calling .sink on Empty all the time 11:52
alexk timotimo: if you look at the ast output something like that ^^^^ is generated
timotimo right
m: my int $i = 0; my $nosink; loop { $nosink = do if $i++ == 10_000_000 { last } else { Empty } }; say now - INIT now 11:53
camelia rakudo-moar f97d5c: OUTPUT«4.8358335␤»
timotimo whoops :)
jnthn `for` is implmented in terms of `map` so far, which means that you really are taking a closure and having it invoked every time 11:54
The loop variant doesn't need to do that.
azawawi I remember there was a link for comparing different rakudo monthly builds test suite performance. Anyone? :) 11:55
timotimo on moarvm.com or .org
i think it's moarvm.org/measurement/ 11:56
alexk m: my int $i = 0; loop { if $i == 10_000_000 { last } else { }; $i++; }; say now - INIT now;
camelia rakudo-moar f97d5c: OUTPUT«5.4999069␤»
alexk m: my int $i = 0; loop { if $i == 10_000_000 { last } else { }; $i = $i+1; }; say now - INIT now; 11:57
camelia rakudo-moar f97d5c: OUTPUT«0.18021869␤»
alexk ^^^ this is another problem ... 11:58
smls bisectable6: say 1, 2 X+ "ab".ords 11:59
bisectable6 smls, Bisecting by exit code (old=2015.12 new=f97d5c2). Old exit code: 1
bisectable6 smls, bisect log: gist.github.com/64c152ed26ff96cba2...61414c763f 12:00
smls, (2017-01-16) github.com/rakudo/rakudo/commit/a2...09c8f2ef31
smls Looks like that performance optimization was overzealous... 12:01
timotimo m: say 1, 2 X+ "ab".ords 12:02
camelia rakudo-moar f97d5c: OUTPUT«(98 99 99 100)␤»
lizmat m: dd 1, 2 X+ "ab".ords 12:03
camelia rakudo-moar f97d5c: OUTPUT«(98, 99, 99, 100).Seq␤»
smls timotimo: oh, so you're saying it fixed it rather than broke it?
timotimo well, it's not b0rked at the moment it looks like?
lizmat looks ok to me as well ?
smls It is on 2016.12-315-gdaf7e5185
smls "Cannot invoke this object (REPR: Uninstantiable; Callable)" 12:03
will update my Rakudo and try again 12:04
timotimo AlexDaniel++ for good bug huntin' 12:11
smls timotimo, lizmat: It still breaks for me after doing `git pull && bash config.status && make install`. 12:19
Does bisectable6 use a newer Rakudo/Moar that that gives me?
timotimo i think it just uses the requested version from build/*REVISION
brokenchicken . 12:49
yoleaux 06:15Z <AlexDaniel> brokenchicken: it seems that your fix for RT#128783 did not remove the error message itself from rakudo. Is everything alright? gist.github.com/Whateverable/1c806...791b3ce481
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128783
yoleaux 06:15Z <AlexDaniel> brokenchicken: (#00003518)
08:28Z <AlexDaniel> brokenchicken: I think it was you who was surprised to know that there is substr-rw. Well, guess what, there's subbuf-rw
08:28Z <AlexDaniel> brokenchicken: my $b = Buf.new(1,2,3); subbuf-rw($b,2,1) = Buf.new(42); dd $b
lizmat smls: have you done a configure.pl lately ?
brokenchicken doesn't remember being surprised 12:50
smls lizmat: `bash config.status` does that
brokenchicken what's #00003518?
raschipi brokenchicken: AlexDaniel said it's his own thing. 12:51
brokenchicken mkay
lizmat smls: can you post a --ll-exception stack trace ?
brokenchicken m: use Test; is :(Str) ~~ :("foo"), False, 'type object and a literal string'; 12:52
camelia rakudo-moar f97d5c: OUTPUT«ok 1 - type object and a literal string␤»
lizmat m: given ‘this is a test’ {.say for m:global:p/\w+{say $/}/ }
camelia rakudo-moar f97d5c: OUTPUT«「this」␤「is」␤「this」␤「a」␤「is」␤「test」␤「a」␤「test」␤»
lizmat m: given ‘this is a test’ {.say for m:global:p/\w+{say "matchjed $/"}/ }
camelia rakudo-moar f97d5c: OUTPUT«matchjed this␤matchjed is␤「this」␤matchjed a␤「is」␤matchjed test␤「a」␤「test」␤»
brokenchicken m: :($:) 12:53
camelia ( no output )
brokenchicken m: class C { method m(Int $a) { } }; say C.^lookup('m') ~~ :(C: Int)
camelia rakudo-moar f97d5c: OUTPUT«False␤»
lizmat .tell AlexDaniel re "given ‘this is a test’"... the fix is going to take some performance, and the code I have now breaks some stuff, so I'm reluctant to try fix this close to the release, if ever :-) 12:54
yoleaux lizmat: I'll pass your message to AlexDaniel.
brokenchicken m: sub (:) {}
camelia rakudo-moar f97d5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3sub (:7⏏5) {}␤»
lizmat .tell AlexDaniel the fix being that the iterators need to remember whether it is the first pull-one or not, which means an extra flag to be kept :-(
brokenchicken m: sub ($y: $x) {}
yoleaux lizmat: I'll pass your message to AlexDaniel.
camelia rakudo-moar f97d5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Can only use the : invocant marker in the signature for a method␤at <tmp>:1␤------> 3sub ($y: $x7⏏5) {}␤ expecting any of:␤ constraint␤»
brokenchicken .tell AlexDaniel #00003518 yeah, 'cause the error is still used when the invocant marker is present in subroutine sigs 12:55
yoleaux brokenchicken: I'll pass your message to AlexDaniel.
smls lizmat: pastebin.com/raw/GnWgAeZ4 13:03
lizmat: Ohhh wait, I think my git checkout is tracking a 6 day old fork of the rakudo repo 13:06
timotimo aha! that must be it, then
araraloren My rakudo also throw that exception . :( 13:08
brokenchicken how'd you build it?? 13:09
araraloren Build with source code from git
brokenchicken sounds like you forgot to perl Configure... and it's using too-old nqp/MoarVM set 13:10
araraloren `/usr/bin/perl Configure.pl "--prefix=/home/sakuya/perl6" "--backends=moar" "--gen-moar" "--gen-nqp" "--make-install" $*`
this is my config.status 13:11
I reinstall rakudo everytime new version released
Do I need a clean install ? 13:12
brokenchicken What's this config.status people keep mentioning?
oh
Never seen it before
araraloren: what's the code that issues that error and what version you're running that on? 13:13
Oh.
I'm supposed to be working right now. 13:14
araraloren Exception same as pastebin.com/raw/GnWgAeZ4
brokenchicken But still, provide those and someone will help
araraloren: running the same code?
araraloren This is Rakudo version 2016.12 built on MoarVM version 2016.12
implementing Perl 6.c
araraloren Yeah same code 13:14
brokenchicken c: 2016.12 say 1, 2 X+ "ab".ords
committable6 brokenchicken, ¦«2016.12»: Cannot invoke this object (REPR: Uninstantiable; Callable)␤ in block <unit> at /tmp/TqMpWzgvAY line 1␤ «exit code = 1»
raschipi araraloren: Devs susally do that when using rakudobrew. Create a new env for every update and trow the old ones away.
usually* 13:15
brokenchicken araraloren: seems it was a bug in 2016.12 and it's now fixed on HEAD. So wait until compiler release tomorrow and it'll be gone
araraloren raschipi, hmm, gotcha
raschipi How do I ask the bot for a release status? 13:16
araraloren brokenchicken, hmm, thanks
brokenchicken NeuralAnomaly: status
NeuralAnomaly brokenchicken, [✘] Next release is today. Since last release, there are 93 new still-open tickets (4 unreviewed and 0 blockers) and 21 unreviewed commits. See perl6.fail/release/stats for details
brokenchicken it's tomorrow, the bot's just off a bit with time
timotimo weren't we going to make it say "in the next 24 hours" instead of "today"? :)
brokenchicken Yeah :)
timotimo NeuralAnomaly: source 13:17
NeuralAnomaly timotimo, See: github.com/zoffixznet/na
timotimo i've got to AFK for a bit now, though
brokenchicken I think that bug is in perl6.fail and the bot's just using its API
github.com/zoffixznet/r6
raschipi araraloren: Because anyone will eventually forget what was changed in that environment, devs are used to start clean every time.
timotimo ah, could very well be
araraloren raschipi, hmm 13:20
raschipi sysadmins should do the same thing.
smls bisectable6: say 1, 2 Xand "ab".ords 13:24
bisectable6 smls, Bisecting by output (old=2015.12 new=f97d5c2) because on both starting points the exit code is 1
smls, bisect log: gist.github.com/cc91fad85319896199...8050332b7a
smls, (2016-05-12) github.com/rakudo/rakudo/commit/33...d4efe221de
timotimo ver 33ef5a95459b95bf7256391a053550d4efe221de
ver github.com/rakudo/rakudo/commit/33...d4efe221de
brokenchicken bisectable6: old=2016.12 new=HEAD say 1, 2 Xand "ab".ords
bisectable6 brokenchicken, On both starting points (old=2016.12 new=f97d5c2) the exit code is 1 and the output is identical as well
brokenchicken, Output on both points: Cannot invoke this object (REPR: Uninstantiable; Callable)␤ in block <unit> at /tmp/jCkrXCJa9n line 1␤
brokenchicken Geth: ver github.com/rakudo/rakudo/commit/33...d4efe221de
Geth brokenchicken, version bump brought in these changes: github.com/perl6/nqp/compare/ # Load the specified byte buffer as if it was the contents of a... # precompiled file
timotimo thanks brokenchicken
timotimo um, huh? 13:25
brokenchicken huh
Ah
It assumes there's just one change: the version file
Geth: source
Geth brokenchicken, Source at github.com/perl6/geth To add repo, add an 'application/json' webhook on GitHub pointing it to geth.perl6.party/?chan=#perl6 and choose 'Send me everything' for events to send | use `ver URL to commit` to fetch version bump changes
brokenchicken file a bug :)
timotimo ah!
brokenchicken bisectable6: old=2016.12 new=HEAD say $*PERL.compiler.version 13:26
bisectable6 brokenchicken, Bisecting by output (old=2016.12 new=f97d5c2) because on both starting points the exit code is 0
brokenchicken, bisect log: gist.github.com/42d6babb698a5d829e...a50ce6a1e7
brokenchicken, (2016-12-17) github.com/rakudo/rakudo/commit/82...f102bbc95e
brokenchicken m: 42 13:26
camelia rakudo-moar f97d5c: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤»
timotimo filed
brokenchicken committable6: f97d5c say 1, 2 Xand "ab".ords
committable6 brokenchicken, ¦«f97d5c»: Cannot invoke this object (REPR: Uninstantiable; Callable)␤ in block <unit> at /tmp/yziUnaoV96 line 1␤ «exit code = 1» 13:27
brokenchicken m: say 1, 2 Xand "ab".ords
camelia rakudo-moar f97d5c: OUTPUT«Cannot invoke this object (REPR: Uninstantiable; Callable)␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken oh
araraloren: turns out it ain't fixed on HEAD :)
araraloren brokenchicken, i saw that .. 13:28
:)
araraloren Hmm, isn't fix ? 13:28
:P It should be in no hurry ~~ 13:29
smls lizmat: The error is fixed on current Rakudo for most operators, but not all. I opened an RT #130602 for it. 13:35
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130602
lizmat smls: that's because thunky operators such as and still use the old code 13:36
lizmat ah, you mentioned that 13:36
ok
and I'm not grokking the handling of thunkies well enough to make it use newer code 13:37
(or if it is at all possible, which I think it is atm without refactoring the current "new" handling significantly)
afk for a few hours& 13:38
masak TimToady: haha, `sub thunkity_thunk` :D 14:05
mst larry the elephant packed his thunk? 14:07
arnsholt mst: Completely random thought: Have you heard of the lovely Smalltalk method become:? =) 14:12
(Since you have, if not a love, at least an appreciation of horrible things and computing)
DrForr What's this about horrible things? :) 14:13
arnsholt It's a method that replaces the invocant object with the argument to the method 14:14
mst arnsholt: that's roughly equivalent to bless($existing_object, $new_class) ? 14:15
arnsholt Super convenient! \o/
mst oh. it replaces the slots as well?
arnsholt The object it's called on ceases to exist
All references to it now point to the argument
What could possibly go wrong?!
mst you've never done %$obj = %new; bless($obj, $new_class) ?
very useful for e.g. having a self-inflating proxy object 14:16
arnsholt Yeah, that's what become: is used for as well
mst I would prefer it had a long more obviously evil name 14:16
arnsholt (At work they're inflated by handling the unimplemented method error)
mst oh, yeah, doing that to $_[0] in AUTOLOAD is ace. 14:17
arnsholt Quite
mst arnsholt: I would prefer unsafeDirtyDirectlyReplaceSelf: as a method name 14:22
but otherwise, yes, a wonderful piece of crazy :D 14:23
brokenchicken m: class Foo { method become (\SELF: \what) { SELF = what } }; my $foo = Foo.new; $foo.become: 42; dd $foo 14:24
camelia rakudo-moar f97d5c: OUTPUT«Int $foo = 42␤»
arnsholt Yeah, that sounds like a more reasonable name! 14:25
arnsholt has fallen a bit into love with Smalltalk
mst arnsholt: I do things like that for unsafe methods and then people moan at me that they know what they're doing and it's too much typing
arnsholt A fun little programming language
mst to which my response is "and two years from now when you've left the company, the person to next touch this code will have a better time" 14:26
arnsholt Serves them right, if you ask me =)
Considerations of maintainability? What do you think this is, engineering or something? =p
timotimo i bet become: works very well with multi-threading 14:26
arnsholt timotimo: I'm sure there are no problems at all implementing it thread-safely! 14:27
timotimo surely
arnsholt (I'm less in love with our Smalltalk implementation at work, sadly. It was last updated in 1999)
mst ow
the company you bought it from no longer exists? 14:28
arnsholt From what I can gather there's a company that owns it, sort of, but apparently the rights to the code are in something of a limbo
(And they have a different Smalltalk implementation that they'd prefer to work on as well, I think) 14:29
mst yay 14:30
arnsholt But since the project I'm on was put into production in May 1996, that future wrinkle was probably not trivial to divine
[Coke] wonders if his production coldfusion is "worse" than production smalltalk. 14:31
arnsholt Hard to say =) 14:32
Parts of the code are terrible
Parts of the code are pretty nice
A few weeks ago I fiddle with code a colleague wrote 19 years ago. That was kinda fun
mst and of course smalltalk code is even harder to move between implementations than e.g. CL 14:33
arnsholt Yeah
The problem in our case (I think) is that the GUI builder code that drives our app is of course some proprietary thing 14:34
I've been told there's a migration kit for moving from this implementation to VisualAge Smalltalk, but apparently the legal situation of that is a bit muddy too
mst yay 14:35
arnsholt Yeah >.<
Although the best might be to move it to Pharo or something like that
Geth oc: ronaldxs++ created pull request #1150:
group optional slash(/) and data so data does not parse without slash
15:24
brokenchicken mr_ron: you got commit bit, right? 15:28
yup 15:29
mr_ron Not sure what you mean but can merge ... 15:29
Don't mind review though
brokenchicken looks good to me 15:30
mr_ron thanks
brokenchicken "Not sure what you mean" ... Just wanted to ensure you can commit directly, instead of going through the PR route (and from what I see you can) 15:31
mr_ron Sometimes prefer PR for review. In this case will wait for travis-ci then merge. 15:32
brokenchicken m: say "\c[woman gesturing ok: medium skin tone]" 15:33
camelia rakudo-moar f97d5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name woman gesturing ok: medium skin tone␤at <tmp>:1␤------> 3"\c[woman gesturing ok: medium skin tone7⏏5]"␤»
brokenchicken m: say "\c[woman gesturing ok]"
camelia rakudo-moar f97d5c: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized character name woman gesturing ok␤at <tmp>:1␤------> 3say "\c[woman gesturing ok7⏏5]"␤»
brokenchicken orly
m: say "\c[woman gesturing OK: medium skin tone]" 15:34
camelia rakudo-moar f97d5c: OUTPUT«🙆🏽‍♀️␤»
timotimo the fact that i see a "female" symbol there means my terminal can't cope with that, right? not that rakudo has a problem? 15:37
brokenchicken right
timotimo that's good
brokenchicken m: say "\c[woman gesturing OK: medium skin tone]".uninames.join: ' | ' 15:38
camelia rakudo-moar f97d5c: OUTPUT«FACE WITH OK GESTURE | EMOJI MODIFIER FITZPATRICK TYPE-4 | ZERO WIDTH JOINER | FEMALE SIGN | VARIATION SELECTOR-16␤»
timotimo variation selector 16? 15:38
what does that control here?
brokenchicken skintone I think
timotimo no, that'? the fitzpatrick type-4
brokenchicken m: say "\c[woman gesturing OK]".uninames.join: ' | '
camelia rakudo-moar f97d5c: OUTPUT«FACE WITH OK GESTURE | ZERO WIDTH JOINER | FEMALE SIGN | VARIATION SELECTOR-16␤»
ilmari no, that specifies emoji display
brokenchicken Ah, the gender
Ah
OK :)
timotimo no, the gender is the female sign being ZWJ'd
brokenchicken ah right 15:39
timotimo oh, like other displays might be black/white image, or sillouette? or something like that?
ilmari m: say "\c[rainbow flag]".uninames.join: ' | '
camelia rakudo-moar f97d5c: OUTPUT«WAVING WHITE FLAG | VARIATION SELECTOR-16 | ZERO WIDTH JOINER | RAINBOW␤»
ilmari female sign doesn't have emoji display by default
just like waving white flag doesn't either 15:40
timotimo oh? so it only turns the female-sign into emoji?
ilmari variation selector-16 means "emoji variant"
timotimo what would implementations even display that without the variation selector 16?
raschipi Color of the skin 15:42
timotimo no, color of the skin is the fitzpatrick type modifier
brokenchicken it'd just display white flag and rainbow as separate chars then? 15:46
ilmari variation selector-16 is for turning pre-emoji characters into emojis
brokenchicken m: say "\c[WAVING WHITE FLAG]\c[ZERO WIDTH JOINER]\c[RAINBOW]"
camelia rakudo-moar f97d5c: OUTPUT«🏳‍🌈␤»
brokenchicken m: say "\c[WAVING WHITE FLAG]\c[VARIATION SELECTOR-16]\c[ZERO WIDTH JOINER]\c[RAINBOW]"
camelia rakudo-moar f97d5c: OUTPUT«🏳️‍🌈␤»
brokenchicken m: say "\c[rainbow flag]" 15:47
camelia rakudo-moar f97d5c: OUTPUT«🏳️‍🌈␤»
raschipi "standardized variation sequences, # see Section 23.4, Variation Selectors, # in The Unicode Standard, Version 9.0."
brokenchicken guesses that does NOT look all the same on some impl
ilmari huh, riot.im on my android phone isn't showing the lines with the missing variation selector at all 15:48
raschipi unicode.org/Public/UCD/latest/ucd/S...riants.txt says only variant sequences registeredc in that file are valid
ilmari not in chrome either. is it the irc bridge that's eating them? 15:49
raschipi The is an "emoji style" variant selector, but it's not valid here
timotimo interesting
ilmari I was wrong, they both show up (as rainbow flag emojis), it was just coalescing things by camelia, so the order got confusing 15:51
raschipi VS15 sometimes means "text style" and VS16 sometimes means "emoji style", but it's only valid in the sequences in that file. 15:54
The meaning of the variant selectors are only defined when combinationed with specific codepoints. Here it doesn't mean anything and it's an invalid sequence. 15:56
timotimo OK 15:57
brokenchicken here is where? 15:59
raschipi above 16:00
brokenchicken huh... so rakudo outputs invalid stuff?
timotimo no
wait
what? :)
ilmari no. the rainbow flag emoji includes it 16:01
ilmari[m] u: 🏳️‍🌈
unicodable6 ilmari[m], U+1F3F3 WAVING WHITE FLAG [So] (🏳)
ilmari[m], U+FE0F VARIATION SELECTOR-16 [Mn] (◌️)
ilmari[m], gist.github.com/a32001f104894f4748...682acc0fde
raschipi -> 1F3F3 FE0F; emoji style; # WAVING WHITE FLAG
brokenchicken doesn't follow the "Here it [...] invalid sequence"
ilmari that's from android 7.1 ^^
raschipi m: say "\c[woman gesturing OK: medium skin tone]".uninames.join: ' | ' #Here. 16:02
camelia rakudo-moar f97d5c: OUTPUT«FACE WITH OK GESTURE | EMOJI MODIFIER FITZPATRICK TYPE-4 | ZERO WIDTH JOINER | FEMALE SIGN | VARIATION SELECTOR-16␤»
brokenchicken so that's invalid?
raschipi u: ♀️ 16:03
unicodable6 raschipi, U+2640 FEMALE SIGN [So] (♀)
raschipi, U+FE0F VARIATION SELECTOR-16 [Mn] (◌️)
ilmari u: ♀
unicodable6 ilmari, U+2640 FEMALE SIGN [So] (♀)
ilmari those show differently on my phone
the one with vs16 is bold and yellow, the one without is thin and black 16:04
a bit like the new and old POTUSes
AIUI, all characters in an emoji sequence need to be emojis, so characters that aren't by default need VS16 16:05
🏳 vs. 🏳️‍
raschipi reads the standard... 16:06
ilmari huh, my phone shows both those as emoji 16:06
brokenchicken sees trump jokes in both channels in my split-screen 16:06
... this is gonna be painful four years -_- 16:07
raschipi 8
brokenchicken pfft
Yeah right
bazzaar \o perl6 16:08
brokenchicken \o
bazzaar m: my %h = orange => "round", banana => "curved", plum => "oval", starfruit => "spikey"; say %h<>:k.join(","); say %h<>:v.join(",");
camelia rakudo-moar f97d5c: OUTPUT«plum,starfruit,banana,orange␤oval,spikey,curved,round␤»
brokenchicken Well, as a symbolic gesture, I'm eating a Kinder Surprise egg right now. 16:09
raschipi Yep, in my reading at least, the standard is clear. VS16 shouldn't be there. 16:09
ilmari raschipi: both rakudo and android disagree 16:10
bazzaar The order of both keys and values seems repeatable (using the adverb access), not sure if I should rely on :k and :v always being in synch 16:11
raschipi ilmari: The standard should be ammended then.
brokenchicken bazzaar: like how
bazzaar thought that hash access was random? 16:12
ilmari raschipi: unicode.org/emoji/charts/emoji-zwj-...ences.html 16:14
#601, rainbow flag, U+1F3F3 U+FE0F U+200D U+1F308
raschipi: is the version you're reading updated for emoji v4.0?
raschipi ilmari: Thanks for that. 16:16
ilmari unicode.org/reports/tr51/index.html
specifically unicode.org/reports/tr51/index.html...tion_Notes
perlpilot bazzaar: hash access is random. I don't think your implied question about :k and :v makes sense as it's the slice that gives you the order. So ... as long as the zen slice gives you hash in the same order each time, then application of :k and :v should give you "in synch" information. 16:19
raschipi Yep. The standardized variants text should be ammended to say there's a third authorized use for variant selectors. 16:20
perlpilot bazzaar: And, of course, changing the hash will probably cause the zen slice to change the order as compared with before the change. 16:21
donaldh m: NaN eqv NaN 16:22
camelia rakudo-moar f97d5c: OUTPUT«WARNINGS for <tmp>:␤Useless use of "eqv" in expression "NaN eqv NaN" in sink context (line 1)␤»
brokenchicken m: say NaN eqv NaN 16:23
camelia rakudo-moar f97d5c: OUTPUT«True␤»
bazzaar perlpilot: thanks for the thorough explanation, I will investigate zen slice
donaldh oh yeah
perlpilot bazzaar: %h<> is the zen slice (in case that wasn't clear)
donaldh m: my $a = NaN; my $b = NaN; say $a eqv $b
camelia rakudo-moar f97d5c: OUTPUT«False␤»
brokenchicken hm 16:24
bazzaar aahh, that is helpful :-)
perlpilot same as %h{}
docs.perl6.org/language/subscripts...Zen_slices 16:25
timotimo (but <> on a $ variable is decont)
well, really what you get if you zenslice a scalar is deconting 16:26
decontation?
brokenchicken donaldh: containered check follows a different path that has `==` in it. Will take a look after work.
perlpilot timotimo: "decontainerization"
timotimo: But I like "deconting" since it's so much shorter :)
timotimo decontainification
brokenchicken m: say ($ = -0e0) eqv ($ = 0e0) 16:27
camelia rakudo-moar f97d5c: OUTPUT«True␤»
brokenchicken m: say -0e0 === 0e0
camelia rakudo-moar f97d5c: OUTPUT«False␤»
brokenchicken m: say -0e0 eqv 0e0
camelia rakudo-moar f97d5c: OUTPUT«True␤»
brokenchicken that prolly should give False, eh?
perlpilot timotimo: d16n (*that* won't be confusing ;)
timotimo :) 16:28
roll a d16n?
donaldh m: say NaN == NaN
camelia rakudo-moar f97d5c: OUTPUT«False␤»
timotimo sixteenn? ;)
raschipi donaldh: stackoverflow.com/a/1573715/7442610 16:30
donaldh How does one test for NaN then? 16:33
brokenchicken donaldh: NaN === NaN
donaldh: or NaN eqv NaN
m: say NaN === 0/0 16:34
camelia rakudo-moar f97d5c: OUTPUT«False␤»
raschipi m: say NaN.WHAT
camelia rakudo-moar f97d5c: OUTPUT«(Num)␤»
brokenchicken :o
timotimo you can also NaN eq NaN :P
brokenchicken Ah right
At that point it still a Rat 16:35
timotimo but stringifying floats is annoying :P
brokenchicken m: say NaN === (0/0).Num
camelia rakudo-moar f97d5c: OUTPUT«True␤»
brokenchicken \o/
donaldh brokenchicken: so the containerised eqv check falling through to == looks like a bug then?
raschipi m: say NaN == NaN; say NaN != NaN; 16:36
camelia rakudo-moar f97d5c: OUTPUT«False␤True␤»
raschipi m: say NaN === NaN; say NaN != NaN;
camelia rakudo-moar f97d5c: OUTPUT«True␤True␤»
brokenchicken donaldh: yup. I'm already spectesting a fix for it
donaldh brokenchicken++ 16:37
raschipi Is there any other value that tests this way?
brokenchicken raschipi: nope. IIRC even the .isNaN method impl is just a { self != self } 16:38
donaldh docs.perl6.org/type/Num#NaN might benefit from more detail of NaN traps :-)
brokenchicken donaldh: well volunteered! github.com/perl6/doc/blob/master/d...m.pod6#L13 16:39
donaldh indeed :-) 16:40
raschipi m: say ?NaN
camelia rakudo-moar f97d5c: OUTPUT«True␤»
raschipi m: say "quack" if (0/0).Num 16:41
camelia rakudo-moar f97d5c: OUTPUT«quack␤»
nicq20 Hello \o 16:51
raschipi hi o/
pmurias jnthn: p6capturelex checks if we are the current ctx is the right outer for the block we are setting if not it does nothing. 16:54
jnthn: when does the do nothing case happen?
Geth oc: b3cca33cda | (Ronald Schmidt)++ | doc/Language/grammar_tutorial.pod6
group optional slash(/) and data so data does not parse without slash (/)
16:55
oc: a50900ff75 | (Ronald Schmidt)++ | doc/Language/grammar_tutorial.pod6
Merge pull request #1150 from ronaldxs/grammar_tutorial-grouping

group optional slash(/) and data so data does not parse without slash
jnthn pmurias: When we scerwed up during code-gen 16:57
(To find a bunch of places to fix in Actions.nqp, just stick a throw in the else)
pmurias: Once we nail all of those cases, we can remove the check and it'll error out instead 16:58
brokenchicken m: say (Date.new(:2016year).DateTime.Instant - Date.new(:2015year).DateTime.Instant) eqv Duration.new(31536001) 17:06
camelia rakudo-moar f97d5c: OUTPUT«True␤»
brokenchicken hm, that now fails
m: say 0 eqv 0e0
camelia rakudo-moar f97d5c: OUTPUT«False␤»
brokenchicken donaldh: delaying fix for next ~6 hours. There's some fallout with Duration. Gonna look further after work :) 17:07
donaldh brokenchicken: thx
brokenchicken m: say ($ = 0) eqv ($ = 0e0)
camelia rakudo-moar f97d5c: OUTPUT«False␤»
AlexDaniel BOOM! 17:18
yoleaux 12:54Z <lizmat> AlexDaniel: re "given ‘this is a test’"... the fix is going to take some performance, and the code I have now breaks some stuff, so I'm reluctant to try fix this close to the release, if ever :-)
12:54Z <lizmat> AlexDaniel: the fix being that the iterators need to remember whether it is the first pull-one or not, which means an extra flag to be kept :-(
12:55Z <brokenchicken> AlexDaniel: #00003518 yeah, 'cause the error is still used when the invocant marker is present in subroutine sigs
AlexDaniel okay
thanks everyone, you really make my life easier
brokenchicken \o/ 17:22
pmurias jnthn: so we screw up while generating QAST? 17:23
brokenchicken agentzh: BTW, yesterday we showed Numeric|String as a substitute for !ref, but I see now Duration type is also Numeric, which isn't really the "basic" type like the rest of them in that group. 18:00
raschipi It kinda is. 18:01
brokenchicken m: my $a = NaN; my $b = NaN; say $a eqv $b 18:13
camelia rakudo-moar 3f80e1: OUTPUT«True␤»
brokenchicken m: my $a = -0e0; my $b = 0e0; say $a eqv $b
camelia rakudo-moar 3f80e1: OUTPUT«False␤»
brokenchicken There. Fixed forever \o/
hankache hello #perl6 18:58
timotimo hi
hankache hiya timo 19:01
brokenchicken \o
jnthn pmurias: Yes, in a handful of cases where something needs to be thunked but we don't know until "too late", essentially. 19:14
RabidGravy boom! 19:37
brokenchicken baam!
geekosaur biim! 19:38
perlpilot beem! 19:40
jeek buum!
perigrin bwm! 19:41
moritz blerg!
brokenchicken m: .say for <a o u i e>.combinations(2).map: "b" ~ *.join ~ "m"
camelia rakudo-moar 3f80e1: OUTPUT«baom␤baum␤baim␤baem␤boum␤boim␤boem␤buim␤buem␤biem␤»
brokenchicken m: .say for <a o u i e a o u i e a>.combinations(2).unique.map: "b" ~ *.join ~ "m" 19:42
camelia rakudo-moar 3f80e1: OUTPUT«baom␤baum␤baim␤baem␤baam␤baom␤baum␤baim␤baem␤baam␤boum␤boim␤boem␤boam␤boom␤boum␤boim␤boem␤boam␤buim␤buem␤buam␤buom␤buum␤buim␤buem␤buam␤biem␤biam␤biom␤bium␤biim␤biem␤biam␤beam␤beom␤beum…»
perigrin bøüm 19:44
perigrin glance at brokenchicken
perigrin there are more codepoints beneath heaven and earth than are dreamt of in your one-liner horatio 19:44
brokenchicken :D 19:46
araraloren :L 19:47
gfldex m: say "b" «~« <a o u i e>.combinations(2) »~» "m" 19:48
camelia rakudo-moar 3f80e1: OUTPUT«((bam bom) (bam bum) (bam bim) (bam bem) (bom bum) (bom bim) (bom bem) (bum bim) (bum bem) (bim bem))␤»
brokenchicken m: S:ignoremark:samemark/ou/ae/.say given "bøüm"
camelia rakudo-moar 3f80e1: OUTPUT«bøüm␤»
brokenchicken :(
perlpilot peregrin++ wins IMHO
brokenchicken Why did my thing didn't work? 19:49
m: S/:ignoremark :samemark ou/ae/.say given "bøüm"
camelia rakudo-moar 3f80e1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unrecognized regex modifier :samemark␤at <tmp>:1␤------> 3S/:ignoremark :7⏏5samemark ou/ae/.say given "bøüm"␤»
brokenchicken orly
m: S:samemark/:ignoremark ou/ae/.say given "bøüm" 19:50
camelia rakudo-moar 3f80e1: OUTPUT«bøüm␤»
moritz m: say S:samemakr/ou/ae/ given "bøüm";
camelia rakudo-moar 3f80e1: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Adverb samemakr not allowed on substitution␤at <tmp>:1␤------> 3say S:samemakr/ou/ae/7⏏5 given "bøüm";␤»
moritz m: say S:samemark/ou/ae/ given "bøüm";
camelia rakudo-moar 3f80e1: OUTPUT«bøüm␤»
moritz :samemark implies :ignoremark
brokenchicken weird that it does 19:51
Also, why it doesn't work tho?
perlpilot whyfor is :samemark not recognized on the inside too?
moritz perlpilot: because it applies to a substitution, not a regex 19:52
brokenchicken ignore mark => (ignore marks as far as match is concerned); samemark => (keep marks the same for replacement).... How come one implies the other?
perlpilot Hrm. Then how do you apply :samemark for a portion of a substitution?
moritz m: say "ø" ~~ rx:ignoremark/o/
camelia rakudo-moar 3f80e1: OUTPUT«Nil␤»
moritz m: say "ü" ~~ rx:ignoremark/u/ 19:53
camelia rakudo-moar 3f80e1: OUTPUT«「ü」␤»
brokenchicken I guess it ain't a mark
moritz m: say "ø".uniname
camelia rakudo-moar 3f80e1: OUTPUT«LATIN SMALL LETTER O WITH STROKE␤»
moritz
.oO( it's a stroke, not a mark )
mr_ron m: gist.github.com/ronaldxs/8cb7de26f...4f5aa87b54
camelia rakudo-moar 3f80e1: OUTPUT«ok 1 - Match first textual rule OK␤not ok 2 - Match second textual rule fail␤␤# Failed test 'Match second textual rule fail'␤# at <tmp> line 17␤# expected: 'n'␤# got: 'na_2'␤»
brokenchicken m: S:g/ü/o/.say with "uü" 19:54
camelia rakudo-moar 3f80e1: OUTPUT«uo␤»
brokenchicken m: S:g:samemark/ü/o/.say with "uü"
camelia rakudo-moar 3f80e1: OUTPUT«oö␤»
brokenchicken that's LTA IMO, but I guess there are reasons for it being that way :/
mr_ron Is the sentence from S05 at the top of the gist "applicable" and part of ltm?
brokenchicken .o( prolly cause you can replicate the mark in the sub manually... ) 19:55
jnthn mr_ron: Hm, that's interesting. I'm aware of that rule, and I'm pretty sure it's applicable when it comes to protoregexes. 20:02
mr_ron: I figure it probably should be in alternations too. I suspect something is a bit off with the second of those two...
mr_ron I didn't notice testing for the rule in github.com/perl6/roast/blob/master...ernative.t 20:04
mr_ron I wasn't checking protoregexes though 20:04
jnthn mr_ron: Yeah. I mean, it's clear the tie-breaker about MRO can't possibly apply to alternations. 20:05
But the textual order one can.
brokenchicken What's textual order? Where they appear in source? 20:06
jnthn brokenchicken: Yes
brokenchicken Ah
jnthn It's the final tie-breaker
Apart from we don't seem to apply that correctly in the case of | if I'm reading mr_ron's gist right
Unless something else odd is going on 20:07
It's...a bit odd that the change of kind of charclass influences it
jnthn Probably worth an RT. 20:07
mr_ron brokenchicken: I was wondering too. It would appear to mean the first declared rule and not the first in the alternation but not perfectly clear ...
jnthn afk for a bit 20:08
mr_ron jnthn - thanks will look at RT and roast issues 20:09
brokenchicken is mt1957 here? 20:11
dwarring "camelia" say 'hi'
brokenchicken m: say "hi"
camelia rakudo-moar 3f80e1: OUTPUT«hi␤»
dwarring trying to open private eval window
brokenchicken dwarring: /query camelia 20:12
/msg camelia m: say "hi"
dwarring brokenchicken: thanks 20:13
dwarring bisect: sub clip-to ($min, $v is rw, $max) { $v = ($min max $v) min $max }; sub blah ( Array() :$rgbd ) { clip-to 0, $_, 255 for @$rgbd; }; blah(rgbd => <.086, .165, .282> ); 20:20
bisectable6 dwarring, Bisecting by exit code (old=2015.12 new=3f80e13). Old exit code: 0
dwarring, bisect log: gist.github.com/877f61a45080d12fa6...560a55542f
dwarring, (2016-12-30) github.com/rakudo/rakudo/commit/a5...aa2743df24
brokenchicken dwarring: Color module? 20:21
That's should be fixed on HEAD
dwarring yeah, there's a second regression in t/01-new-key-value.t
brokenchicken oh damn
brokenchicken is now looking at 4 things at once :o
time to de-parralelize :) 20:22
dwarring I think it's a different problem
brokenchicken m: sub clip-to ($min, $v is rw, $max) { $v = ($min max $v) min $max }; sub blah ( Array() :$rgbd ) { clip-to 0, $_, 255 for @$rgbd; }; blah(rgbd => <.086, .165, .282> );
camelia rakudo-moar 3f80e1: OUTPUT«P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value␤ in sub clip-to at <tmp> line 1␤ in sub blah at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: say .4 cmp <.5> 20:23
camelia rakudo-moar 3f80e1: OUTPUT«Less␤»
brokenchicken m: say .4 max <.5>
camelia rakudo-moar 3f80e1: OUTPUT«.5␤»
brokenchicken m: say .4 min <.5>
camelia rakudo-moar 3f80e1: OUTPUT«0.4␤»
brokenchicken m: dd <.5>
camelia rakudo-moar 3f80e1: OUTPUT«RatStr.new(0.5, ".5")␤»
brokenchicken shrugs
gonna look at this in ~1hr
dwarring I'll raise an RT 20:25
brokenchicken Thanks
nicq20 Why can I not inherit from Bool? 20:26
brokenchicken nicq20: cause it's an enum and not a class
nicq20 brokenchicken: Oh, ok. That makes sense then. 20:27
dwarring brokenchicken: rt.perl.org/Ticket/Display.html?id=130606 20:29
brokenchicken thanks 20:30
gfldex is there a reasonable way to render html to svg? 20:40
timotimo what happens when you open a .html file in inkscape? :P 20:42
gfldex updating inkscape right now
brokenchicken html -> wkhtmltopdf -> PDF and pdf2svg? 20:43
(or use chrome's Print -> save to PDF to get PDF manually)
gfldex timotimo: it wont let me but it can open pdf 20:44
timotimo makes sense 20:45
brokenchicken hm... Test.pm6 isn't very thread-safe, though I'm unsure if it's a problem really... 20:50
brokenchicken use Test; for ^100 .hyper: :batch { ok 1 } # <-- this generated two tests numbered 93 and missed test 92 20:50
like... the internal test counter isn't threadsaef
moritz it's just an Int 21:03
incrementing it is what's not thread safe
brokenchicken grrrr... Friday. End of business day. I've just typed my last email and about to hit SEND... and the damn video card on this lappy crashes and I have to restart it :| 21:08
The god that doesn't exist really hates me. 21:09
moritz: well, yeah
int even
brokenchicken m: say .5 cmp <.5> 21:25
camelia rakudo-moar 3f80e1: OUTPUT«Same␤»
brokenchicken m: say 5 cmp <.5>
camelia rakudo-moar 3f80e1: OUTPUT«P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: say 5 cmp .5 21:26
camelia rakudo-moar 3f80e1: OUTPUT«More␤»
brokenchicken Ahhhh 21:26
brokenchicken I get where I messed up 21:26
m: use nqp; nqp::getattr(<.5>, <.5>.WHAT, '$!denominator') 21:28
camelia rakudo-moar 3f80e1: OUTPUT«P6opaque: no such attribute '$!denominator' in type RatStr when trying to get a value␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken hm, this one's provided by Rational role, but how can I found out into which type it got mixed into? :/
brokenchicken As in, what do I replace <.5>.WHAT with to always have it be the type Rational got mixed into? 21:31
gfldex lolibloggedalittleabouttravis: gfldex.wordpress.com/2017/01/20/once-a-week/ 21:34
brokenchicken wishes that didn't say "Rakudo is still changing quickly" 21:37
gfldex how many commits does rakudo see each week? 21:38
brokenchicken gfldex: but to the uninitiated that reads "Perl 6 is still unstable! Look at me! I found a regression!"
gfldex the uninitiated don't read my blog 21:39
gfldex in fact hardly anyone reads my blog 21:39
perlpilot gfldex: if you mention your blog here while I'm somewhat paying attention, I read your blog :) 22:04
moritz gfldex++ # blog 22:09
perigrin perlpilot: you're hardly the unintiated though 22:11
timotimo good good
moritz tweeted it 22:12
160 potential readers 22:13
cale2 What was the link to that perl6 playground that someone made? 22:19
It was like an online interpreter
jdv79 glot.io?
timotimo one is glot, there's another one that i forgot
cale2 No, it had lessons on it too
similar to the tour of golang almost 22:20
MasterDuke exercism.com? something like that?
yoleaux 07:59Z <AlexDaniel> MasterDuke: was this change intended? commit: 73797b759^,73797b759 say lines.elems; say lines[0]
07:59Z <AlexDaniel> MasterDuke: (#00005346)
cale2 tryperl6.org/ 22:21
MasterDuke exercism.io/languages/perl6/launch is what i was thinking of 22:23
cale2 syedreza.org/node/p/70 22:24
I guess he didn't open source the website though
would be cool if the community could help build the interactive tutorials 22:25
b2gills tryperl6.org still has an old version of Rakudo 22:45
timotimo how old we talking? 22:48
cale2 I'd send him an email on his website, but his email form requires you to find a number pattern haha 22:50
I'm horrible at math
b2gills timotimo: It was built in June 22:59
timotimo last year or the year before that? :)
b2gills 「say $*PERL.compiler.build-date」 returns with 2016-06-12T10:17:34Z 23:06
brokenchicken it'll also let any spammer send crap. better lock down the network 23:12