»ö« 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! | feather will shut down permanently on 2015-03-31
Set by jnthn on 28 February 2015.
00:06 vendethiel left 00:08 RabidGravy left 00:16 laouji joined 00:17 laouji left
dalek ast: 3d5362b | raydiak++ | S32-exceptions/misc.t:
Test position and expectations of X::Undeclared
00:21
ast: ff09baa | raydiak++ | S (2 files):
Merge branch 'master' of github.com:perl6/roast
raydiak oops 00:29
dalek ast: 72b225f | raydiak++ | S32-exceptions/misc.t:
Correct test count
00:30
kudo-star-daily: 454cd90 | coke++ | log/ (2 files):
today (automated commit)
00:37
kudo-star-daily: c9f0eab | coke++ | log/ (2 files):
today (automated commit)
kudo-star-daily: a74a399 | coke++ | log/ (2 files):
today (automated commit)
rl6-roast-data: 8450a53 | coke++ | / (9 files):
today (automated commit)
rl6-roast-data: 0e2217d | coke++ | / (9 files):
today (automated commit)
01:08 aborazmeh joined, aborazmeh left, aborazmeh joined 01:11 yqt left 01:26 grondilu left 01:34 adu joined
skids ruoso: One thing I noticed while working with the slang code from EBNF, was that mixing two modules that use it in the same source gives a "duplicate definition of symbol HLL" 01:43
01:51 laouji joined 02:12 noganex joined 02:15 noganex_ left 02:16 laouji left, laouji joined 02:19 berekuk_ left 02:21 laouji left 02:22 laouji joined 02:25 rmgk_ joined, rmgk is now known as Guest91231, rmgk_ is now known as rmgk
dalek kudo/nom: 221b981 | TimToady++ | src/ (4 files):
clean up warnings on undefined things
02:27
02:29 Guest91231 left 02:40 thou joined 02:44 dustinm` left 02:47 dustinm` joined
TimToady m: say ~Nil 02:49
camelia rakudo-moar 221b98: OUTPUT«Use of Nil in string context␤␤»
02:50 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 02:51 berekuk_ joined, berekuk_ left 02:52 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 02:53 berekuk_ joined, berekuk_ left 02:54 berekuk_ joined, berekuk_ left
TimToady m: say (if 0 { 42 }) 02:54
camelia rakudo-moar 221b98: OUTPUT«Empty␤»
02:54 berekuk_ joined, berekuk_ left 02:55 berekuk_ joined, berekuk_ left, berekuk_ joined 02:56 berekuk_ left, berekuk_ joined, berekuk_ left 02:57 berekuk_ joined, berekuk_ left 02:58 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 02:59 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:00 berekuk_ joined, berekuk_ left 03:01 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:02 berekuk_ joined, berekuk_ left 03:03 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:04 berekuk_ joined, berekuk_ left 03:05 berekuk_ joined, berekuk_ left, ribasushi_ left, berekuk_ joined, berekuk_ left 03:06 berekuk_ joined, berekuk_ left 03:07 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:08 berekuk_ joined, berekuk_ left, ribasushi joined 03:09 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:10 berekuk_ joined, berekuk_ left 03:11 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:12 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:13 berekuk_ joined, berekuk_ left 03:14 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:15 berekuk_ joined, berekuk_ left 03:16 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:17 berekuk_ joined, berekuk_ left 03:18 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:19 berekuk_ joined, berekuk_ left 03:20 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:21 berekuk_ joined, berekuk_ left 03:22 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:23 berekuk_ joined, berekuk_ left, berekuk_ joined 03:24 berekuk_ left, berekuk_ joined, berekuk_ left 03:25 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:26 berekuk_ joined, berekuk_ left 03:27 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:28 berekuk_ joined, berekuk_ left 03:29 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:30 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:31 berekuk_ joined, berekuk_ left 03:32 berekuk_ joined, berekuk_ left, berekuk_ joined, berekuk_ left 03:33 berekuk_ joined 03:38 quester joined
raydiak such "joinspam" is so "lots" also "much" and ":P" many wow 03:41
dalek kudo/nom: a6582d7 | TimToady++ | src/core/Bool.pm:
actually implement xor as list assoc, durr
03:44
ast: 52cd1b6 | TimToady++ | S03-metaops/reduce.t:
unfudge [\xor] test
03:45 FROGGS_ joined 03:48 FROGGS left
raydiak m: say ( () andthen 0 ) # ? 03:50
camelia rakudo-moar 221b98: OUTPUT«Code.new␤»
raydiak m: say( () andthen 0 ) # ?!
camelia rakudo-moar 221b98: OUTPUT«5===SORRY!5=== Error while compiling /tmp/opWm9rUqHL␤Unable to parse expression in argument list; couldn't find final ')' ␤at /tmp/opWm9rUqHL:1␤------> 3say( ()7⏏5 andthen 0 ) # ?!␤ expecting any of:␤ infix␤ infix sto…»
03:51 vendethiel joined 04:01 adu left
raydiak m: say ( () andthen 0 )() # still don't get it 04:03
camelia rakudo-moar 221b98: OUTPUT«0␤»
quester m: say (() or say "second")
camelia rakudo-moar 221b98: OUTPUT«second␤True␤»
quester m: say (() orelse say "second")
camelia rakudo-moar 221b98: OUTPUT«␤»
quester m: say (() and say "second")
camelia rakudo-moar 221b98: OUTPUT«␤»
quester m: say (() andthen say "second")
camelia rakudo-moar 221b98: OUTPUT«Code.new␤»
quester m: say (() andthen say "second")() 04:04
camelia rakudo-moar 221b98: OUTPUT«second␤True␤»
quester m: say (() orelse say "second")()
camelia rakudo-moar 221b98: OUTPUT«Cannot find method 'postcircumfix:<( )>'␤ in block <unit> at /tmp/pfipa3c_FP:1␤␤»
tony-o m: say {() orelse say "second"}()
camelia rakudo-moar 221b98: OUTPUT«␤»
quester raydiak and tony-o: I'm not at all sure, but it looks vaguely bug-ish to me; I can't fathom offhand why it would want a parameter list for "andthen", but not for "and", "or", or "orelse". Strange.... 04:08
awwaiid Has anyone submitted a talk to Strange Loop? I am thinking of doing so. 04:12
dalek ast: 883f8f6 | TimToady++ | S17-scheduler/in.t:
Nil doesn't turn into () anymore
04:13
04:16 Sysaxed` left, vendethiel left 04:18 lolisa joined 04:53 lolisa left 04:54 lolisa joined 05:08 berekuk_ left 05:38 kaare__ joined 05:46 dustinm` left 05:48 dustinm` joined 05:58 BenGoldberg left 06:08 quester left 06:15 adu joined, adu left 06:19 vendethiel joined 06:24 lizmat joined 06:27 aborazmeh left 06:32 thou left
lizmat good *, #perl6! 06:36
06:37 domidumont joined
lizmat m: my @a=^10; my $i = (2,3,4); say @a[$i].perl; say @a[(2,3,4)].perl # this feels incongruent 06:37
camelia rakudo-moar a6582d: OUTPUT«3␤(2, 3, 4)␤»
06:40 sisar joined 06:41 domidumont left 06:42 vendethiel left 06:43 domidumont joined 06:48 FROGGS[mobile] joined
raydiak m: my @a=^10; my \i = (2,3,4); say @a[i].perl; say @a[(2,3,4)].perl 06:49
camelia rakudo-moar a6582d: OUTPUT«(2, 3, 4)␤(2, 3, 4)␤»
FROGGS[mobile] m: my $i = (1,2,3); say $i
camelia rakudo-moar a6582d: OUTPUT«1 2 3␤»
FROGGS[mobile] ahh, itemness
raydiak aye
FROGGS[mobile] @i would probably also work 06:50
raydiak or @$i or maybe |$i or $i<> 06:51
m: my @a=^10; my $i = (2,3,4); say @a[$i<>].perl; say @a[|$i].perl; 06:53
camelia rakudo-moar a6582d: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RADLind0_c␤Arg-flattening | is only valid in an argument list␤at /tmp/RADLind0_c:1␤------> 3i = (2,3,4); say @a[$i<>].perl; say @a[|7⏏5$i].perl;␤»
raydiak m: my @a=^10; my $i = (2,3,4); say @a[$i<>].perl;
camelia rakudo-moar a6582d: OUTPUT«(2, 3, 4)␤»
sisar Hello. After I'm done using a user defined operator, how do I de-define it ? 06:54
FROGGS[mobile] sisar: let it go out of scope 06:55
06:55 lizmat left, lizmat_ joined
raydiak yes better to define/import it only in the scope where you want it 06:56
FROGGS[mobile] or you can perhaps delegate to CORE::infix<foo> but well, that's not quite clean 06:57
06:58 skids left
sisar ok. i'm not sure I undertand what do you mean by 'delegate to CORE::infix<foo>'. What is that ? 06:58
is 'CORE' a special namespace ? 06:59
FROGGS[mobile] yes
useful if you want to implement an existing op by using the existing one 07:00
like I implemented a right associative infix:<-> that way
raydiak m: say CORE::.keys
camelia rakudo-moar a6582d: OUTPUT«SIGSEGV WhateverCode bit &FILETEST-X &callframe Pair SIGHUP &flat utf8 &TRANSPOSE &MAKE-DIR-LIST &infix:<∖> CurrentThreadScheduler PromiseStatus StringyEnumeration Distribution &splice &postcircumfix:<{ }> &callsame &GATHER Backtrace &sinh &infix:<lt> &f…»
sisar "SIGSEGV" :-o 07:01
FROGGS[mobile] hehe
raydiak m: say SIGSEGV.perl
camelia rakudo-moar a6582d: OUTPUT«Signal::SIGSEGV␤»
FROGGS[mobile] m: say SIGSEGV
camelia rakudo-moar a6582d: OUTPUT«SIGSEGV␤»
sisar what is this 'CORE::' thing ? 07:02
FROGGS[mobile] the place where the built ins are defined 07:03
raydiak the way I heard it explained before is it's basically all the names you can see which are not defined in your own code but techincally exist one scope level outwards
sisar ah. ok. 07:04
raydiak m: say CORE::<&say>.perl
camelia rakudo-moar a6582d: OUTPUT«sub say (Any |) { #`(Sub|45356136) ... }␤»
07:05 lizmat_ left
sisar just like perl6 allows defining new operators, does it allow me to delete built in operatos ? :p Can I somehow access this 'CORE' place and discard operatos ? :p 07:05
raydiak m: CORE::<&say> :delete; say "hm" 07:06
camelia rakudo-moar a6582d: OUTPUT«Can not remove values from a PseudoStash␤ in block <unit> at /tmp/jSbUhxD31x:1␤␤»
sisar *operators
raydiak no but you could mask them out with another one
sisar hmm. but masking correctly might mean that i need to think very carefully about masking all the aspects of how that operator works. Can't i just delete the op, and start from a 'clean slate' ? 07:08
raydiak if you are able to, I'd bet that anything which makes us fast like optimizer, JIT, etc, won't like it at all 07:09
sisar .oO ("Can not remove values from a PseudoStash" is an LTA reply by the language, methinks)
.oO ( or maybe it thinks, if you are mature enough to know CORE, then you are mature enough to know what a "PseudoStash" is.) 07:12
raydiak of course another approach would be to do whatever it is you're trying to accomplish as a slang instead
if you're poking at them without knowing what they are, giving you the name to look up in the docs is probably helpful 07:14
(pseudostashes that is)
sisar aye. 07:17
jnthn morning, #perl6
07:18 FROGGS_ is now known as FROGGS
FROGGS morning 07:18
raydiak g'morning o/ 07:21
07:22 _mg_ joined
FROGGS m: say @*INC[0].WHAT # lizmat: did you get any further (idea wise) on how module installation can be made work again? 07:22
camelia rakudo-moar a6582d: OUTPUT«(Str)␤»
07:23 _mg_ left 07:25 RabidGravy joined
FROGGS m: say %*CUSTOM_LIB<site>.WHAT 07:33
camelia rakudo-moar a6582d: OUTPUT«(Str)␤»
FROGGS lizmat: the problems we have now exist because we mix up locating modules and installing modules 07:36
07:38 sisar left
FROGGS lizmat: would be nice to have a session where we sort that out, an since the GPW is over and I am back home I'll have time 07:39
07:42 cbk1090 left
raydiak good night, morning people; pleasant daydreams \o 07:54
07:56 lizmat joined
lizmat FROGGS: hope to find some time with tadzik either later today or tomorrow 08:01
pmichaud starts at OSDC.no: Innovating in the shadows of success 08:02
[Tux] The new "Use of Nil in string context" caused my OLD reference script to warn 8 times and slow down from 42 secs to a whopping 145 secs! 08:04
the correct functioning actual script shows no slowdown
lizmat warnings are expensive
[Tux] but this specific warning does not show where exactly it stems from 08:09
Use of Nil in string context in block at test.pl:160 08:10
that block is 50 lines ling
08:13 dustinm` left
lizmat :-( 08:13
08:16 ][Sno][ left, dustinm` joined
tadzik g'morning 08:17
lizmat tadzik o/
tadzik wow, skids++ does awesome work with Grammar::BNF :) 08:20
[Tux] found it: my Str $s = func(...); if $str eq Nil { ... } 08:21
changing eq to ~~ removes the issue
08:22 [Sno] joined
lizmat how can that ever be true ? 08:34
08:34 darutoko joined
lizmat m: my Str $a = Nil; say $a ~~ Nil 08:34
camelia rakudo-moar a6582d: OUTPUT«False␤»
lizmat m: my Str $a = Nil; say $a.WHAT 08:35
camelia rakudo-moar a6582d: OUTPUT«(Str)␤»
lizmat m: my Nil $a = Nil; say $a ~~ Nil
camelia rakudo-moar a6582d: OUTPUT«True␤»
lizmat m: my Nil $a = "foo" # however, pretty useless 08:38
camelia rakudo-moar a6582d: OUTPUT«Type check failed in assignment to '$a'; expected 'Any' but got 'Str'␤ in block <unit> at /tmp/RLUxKWBU4v:1␤␤»
08:42 diana_olhovik joined
[Tux] sorry, in the real code $s was untyped 08:52
lizmat m: my $a = Nil; say $a.WHAT 08:53
camelia rakudo-moar a6582d: OUTPUT«(Any)␤»
lizmat m: my $a = Nil; say $a ~~ Nil
camelia rakudo-moar a6582d: OUTPUT«False␤»
[Tux] interesting, that old code *was* typed (and bad) 08:54
08:54 diana_olhovik left
FROGGS lizmat: ohh cool 08:54
08:55 Foxcool left
[Tux] m: my Str @x; my Str $x = @x[4] // Nil; $x.perl.say 08:55
camelia rakudo-moar a6582d: OUTPUT«Str␤»
[Tux] indeed, what lizmat found. looks like a bug to me
08:55 lizmat left
FROGGS m: my Mu $a = Nil; say $a ~~ Nil 08:56
camelia rakudo-moar a6582d: OUTPUT«False␤»
08:56 Foxcool joined
FROGGS [Tux]: assigning Nil to something restores it default value 08:56
its*
[Tux] no
FROGGS no? 08:57
[Tux] m: my @x = ^9; @x = Nil; @x.perl.say
camelia rakudo-moar a6582d: OUTPUT«[Any]<>␤»
[Tux] m: my @x; @x.perl.say
camelia rakudo-moar a6582d: OUTPUT«[]<>␤»
[Tux] bug?
FROGGS I'm not sure 08:58
perhaps yes
[Tux] that is what I found yesterday
FROGGS Nil does not disappear anymore in lists, and that causes trouble now
[Tux] and as Nil is not dropped from list context anymore, I found that behaviior consistent
FROGGS I expect that the Nil/Empty transition is not over yet and will take weeks 09:00
[Tux] if the statement is as you claimed "assigning Nil to something restores it default value", '@x = Nil' should equal '@x = ()'
[Tux] will follow evolution as close as possible :)
09:02 diana_olhovik_ joined
FROGGS I'm just trying to say: "don't be surprised if your code does not work with HEAD at this point of the journey" 09:02
[Tux] is not surprised but constantly willing to give feedback on my findings :) 09:03
FROGGS that's very helpful indeed
09:06 lizmat joined, lizmat left, lizmat joined, vendethiel joined
FROGGS is glad that the GLR is not something he has to do directly 09:07
lizmat m: my @a = ^10; @a = Empty; say @a # Empty is (), so please use () 09:08
camelia rakudo-moar a6582d: OUTPUT«␤»
lizmat m: my $a = 42; $a = Empty; say $a 09:09
camelia rakudo-moar a6582d: OUTPUT«Empty␤»
lizmat mmm.... 09:10
m: my $a = 42; $a = Empty; say $a.WHAT
camelia rakudo-moar a6582d: OUTPUT«Empty␤»
FROGGS lizmat: Nil assignment might need to be changed to Empty assignment? 09:12
lizmat no,
just discussed this with pmichaud and jnthn: don't get attached to Empty just yet :-)
FROGGS or we want perhaps to both do something similar here
yes yes
lizmat pmichaud just said he sees Empty as temporary scaffolding during the GLR 09:13
FROGGS I'd like to read a blog post about Empty and Nil at some point
ahh
[Tux] waits with using Empty until one of you tells me to use it :)
pmichaud good morning, #perl6 09:15
FROGGS hi pmichaud
09:15 rurban joined
pmichaud I'm still trying to get my head around exactly what Nil means these days. :) 09:16
But I'll have it straight in a day or two.
The other news in GLR is that I think immutable iterators need to go away
FROGGS is proud that this works now: 'fooäàAÁâåbar' ~~ m:m:i/<-[A]>+/ gives 'foo'
jnthn ooh :) 09:17
FROGGS++
moritz FROGGS: is that in nom?
FROGGS moritz: not yet
jnthn gives FROGGS full marks
FROGGS :D
moritz gives FROGGS full diacritics
pmichaud at least they'll go away in the sense of being a linked list of iterated chains that they are now
FROGGS hehe
jnthn I hope not to be a dire critic of his patch... :P
pmichaud This is a grave topic. 09:18
09:19 diana_olhovik_ left
FROGGS moritz: I wont commit before having implemented ranges in character classes 09:20
moritz and it solves an acute pain, no?
FROGGS: but it's in a branch, I hope?
FROGGS now that I am not in a train I probably have enough brain to think about that one
moritz FROGGS: I don't want it to get lost if your hard drive dies 09:21
FROGGS moritz: it is in a gist at least
for nqp and rakudo
and in a branch for MoarVM
it needs a stage0 update so I don't want to push many of these to a branch 09:22
moritz had a branch that changed one of his websites from prototype to jquery; it died with his laptop
FROGGS hmmm, I think I can commit everything but stage0 to a branch... 09:24
09:25 FROGGS[mobile] left 09:26 FROGGS[mobile] joined
dalek kudo/nom: 1b4a809 | lizmat++ | src/core/ (3 files):
Remove discontinuity for n == 1
09:27
09:32 vendethiel left
[Tux] joins moritz in giving ḞŖǑĢḠȘ full diacritics 09:40
pmichaud having just seen the code comments for Empty... it might not be scaffolding. But it's likely to be rare-ish 09:43
I'll still hold out hope that we can remove it somehow, though.
dalek ast: e79fa63 | lizmat++ | S (3 files):
Fix .pick(1)/.roll(1) discontinuity breakage
09:44
lizmat m: "ḞŖǑĢḠȘ".chars.say 09:45
camelia rakudo-moar a6582d: OUTPUT«6␤»
jnthn m: "ḞŖǑĢḠȘ".codes.say 09:49
camelia rakudo-moar 1b4a80: OUTPUT«6␤»
jnthn That one's not even hard :P
09:50 telex left
masak good noon, #perl6 09:51
09:52 telex joined 09:57 ufobat joined 09:59 rindolf joined
ufobat hey there, i am looking for some advice. i am completly new to perl6 and i was trying to install it on my rasbpi. unfortunately installing the modules is not working cause the test on URI fails. 10:01
pastebin.com/VkiL1FJj
10:03 silug left
ufobat root@pi:~/.panda-work/1431250183_1/t# perl6 -e 'my @a = Nil; say @a.elems; say @a;' 10:04
1
(Any)
moritz ufobat: try installing Rakudo Star 10:05
ufobat: it comes with a compiler version and modules that fit together
[Tux] ufobat, that is work in progress. use @a = (); instead for now
moritz ufobat: TimToady changed the behavior of Nil yesterday in Rakudo, and the modules haven't caught up yet 10:06
ufobat that was from panda install Task::Star, i followed the guide on rakudo.org/how-to-get-rakudo 10:07
allright, thank you
[Tux] moritz, I was able to install everything (of course except for Text::CSV :P) using this mornings git checkout with rakudobrew
ah, Task::Star is more than I install, so what moritz said 10:08
ufobat huh! i did it this morning as well. moar and Task::Star
dalek kudo/nom: e82920a | lizmat++ | src/core/CompUnit.pm:
Don't need to force to precomp over older files
10:16 silug joined
FROGGS m: say EnumMap.new.perl.EVAL 10:24
camelia rakudo-moar 1b4a80: OUTPUT«EnumMap.new()␤»
dalek ast: 65911b6 | FROGGS++ | S05-match/perl.t:
unfudge again passing test RT #125138
10:28
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125138
10:31 chenryn joined
dalek p/ignoremark: edc965f | FROGGS++ | src/ (5 files):
implement ignoremark for moarvm backend

Ranges in character classes are still todo and require some thought. Also, this patch does not include the required stage0 bump, which we need because we use a new op called nqp::ordbaseat(str, offset).
10:36
kudo/ignoremark: 5ff3553 | FROGGS++ | src/ (2 files):
implement ignoremark, though needs tbd for interpolations
10:37
10:50 diana_olhovik_ joined 10:57 lizmat left 10:59 lizmat joined 11:00 vendethiel joined 11:03 domidumont left 11:11 laouji left
FROGGS hmmm, I wonder if our regex code would benefit from lcord and ucord ops 11:20
lizmat pmichaud might know :-) 11:21
FROGGS there are quite some cases where we create throw away strings, just to get their ord 11:22
might be something for spesh instead
like lc+ord => lcord; and substr($s, $n, 1)+uc+ordbaseat => ucordbaseat or so 11:24
this avoids creating a GCable for one
11:45 jack_rabbit left 11:47 rindolf left 11:48 yqt joined 11:51 ufobat left 11:52 _mg_ joined 11:55 lizmat left
masak I wrote gist.github.com/masak/7a1d84435d2bca36b717 as a first stab at implementing blog.plover.com/prog/haskell/monad-search.html in Perl 6. 12:08
it kind of breaks MJD's stated conditions of hiding the machinery in a nice way. I'm aware of that. 12:09
but, more pressingly, this solution takes 28 *minutes* to run! o.O
12:10 lizmat joined
masak m: my $iteration-count = 9 * 9 * 8 * 7 * 5 * 5 * 4 * 3; say $iteration-count 12:11
camelia rakudo-moar e82920: OUTPUT«1360800␤»
masak m: sub postfix:<minutes>($m) { 60 * $m }; sub postfix:<seconds)($s) { $s }; my $duration-seconds = 28\ minutes + 19.335\ seconds; my $iteration-count = 9 * 9 * 8 * 7 * 5 * 5 * 4 * 3; say $duration-seconds / $iteration-count 12:13
camelia rakudo-moar e82920: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fNL1IWlhHp␤Unable to parse expression in quote words; couldn't find final '>'␤ ␤at /tmp/fNL1IWlhHp:1␤------> 3say $duration-seconds / $iteration-count7⏏5<EOL>␤ expecting any of:␤ …»
masak m: sub postfix:<minutes>($m) { 60 * $m }; sub postfix:<seconds>($s) { $s }; my $duration-seconds = 28\ minutes + 19.335\ seconds; my $iteration-count = 9 * 9 * 8 * 7 * 5 * 5 * 4 * 3; say $duration-seconds / $iteration-count 12:14
camelia rakudo-moar e82920: OUTPUT«0.001248776␤»
masak m: sub postfix:<minutes>($m) { 60 * $m }; sub postfix:<seconds>($s) { $s }; my $duration-seconds = 28\ minutes + 19.335\ seconds; my $iteration-count = 9 * 9 * 8 * 7 * 5 * 5 * 4 * 3; say $iteration-count / $duration-seconds
camelia rakudo-moar e82920: OUTPUT«800.783836␤»
masak so it checks 800 solution candidates a second. 12:15
(a) what's making this program so slow?
(b) any suggestions how to make it faster?
tadzik what does the fox s.. profiler say? :)
masak I have no experience running the profiler. I was hoping someone else does and can help me. 12:16
tadzik I will
masak I've heard that profiling something that takes 28 minutes is not a good start, so maybe a first step would be to produce a shorter run.
tadzik I will take the ring to mordor
masak ++tadzik :)
tadzik although I'd rather do that when I'm on AC power :) 12:17
masak .oO( that's what Tesla said )
vendethiel m: say :10[1, 2, 3]; 12:19
camelia rakudo-moar e82920: OUTPUT«123␤»
vendethiel m: say :10[1, 2, 3].perl;
camelia rakudo-moar e82920: OUTPUT«123␤»
tadzik masak: anyway, running the profiler is just perl6 --profile <code>
masak wow :)
tadzik that gives you an html file
masak vendethiel: nice, huh? that's the one thing I like better in the Perl 6 code than in the Haskell code.
tadzik and if that crashes your browser because it's too big, I wrote a Qt frontend for it too
masak ossum. 12:20
I will try this.
vendethiel masak: what's ∖?
masak vendethiel: set difference.
vendethiel aah :-)
masak as in math
12:20 Isp-sec joined
masak .u ∖ 12:21
yoleaux U+2216 SET MINUS [Sm] (∖)
masak .oO( that's the least horizontal minus sign I've ever seen )
vendethiel I admit to like :[]
masak quite likely have TimToady++ to thank for that one.
vendethiel m: my $a = 5; my $b = 6; say +($a ~ $b).perl 12:28
camelia rakudo-moar e82920: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '⏏"56"' (indicated by ⏏)␤ in block <unit> at /tmp/3aoEbQjVMP:1␤␤»
pmichaud how do I get readline history in my REPL? ;-)
12:28 yqt left
vendethiel m: my $a = 5; my $b = 6; say ($a ~ $b).Num.perl 12:28
camelia rakudo-moar e82920: OUTPUT«56e0␤»
vendethiel Oo
12:29 chenryn left
vendethiel m: say "56".Num.perl 12:31
camelia rakudo-moar e82920: OUTPUT«56e0␤»
dalek pan style="color: #395be5">perl6-examples: 601400a | paultcochrane++ | t/categories/cookbook/01strings.t:
Update test info after example file rename
masak vendethiel: you haz precedence troubles. 12:32
m: my $a = 5; my $b = 6; say +($a ~ $b)
camelia rakudo-moar e82920: OUTPUT«56␤»
masak m: my $a = 5; my $b = 6; say (+($a ~ $b)).perl
camelia rakudo-moar e82920: OUTPUT«56␤»
vendethiel yeah, I know 'bout that one, but why 56e0?
masak because Num means "floating point number" in Perl 6. 12:33
you might be thinking of Real, or Numeric
12:33 yqt joined
vendethiel alright 12:34
m: say :10[(^10).pick xx 10] # :( ().pick
camelia rakudo-moar e82920: OUTPUT«8392453305␤»
masak prefix ops are in an unfortunate valley of contradictory user requirements. 12:36
we want prefix:<^> to bind very tightly, at least much of the time.
vendethiel it's *almost* a sigil, in some way. 12:37
masak but we want prefix:<!> and prefix:<~> and prefix:<+> to bind very loosely.
I think we're already at the "optimum", it's just that it's an unsatisfactory one.
vendethiel how tightly does xx even bind? 12:38
m: sub mypick(@a) {@a.pick}; say mypick ^10 xx 10;
camelia rakudo-moar e82920: OUTPUT«7␤»
vendethiel guessed so :-)
masak new version, that doesn't run for 28 minutes: gist.github.com/masak/7a1d84435d2b...version-p6 12:42
12:43 diana_olhovik_ left
masak here, it runs just short of 10 seconds. I figure that's appropriate for profiling. 12:43
...based on NOTHING :)
12:44 coffee` left
masak dives into trying to understand the profiler output for the first time 12:45
12:45 _mg_ left 12:46 diana_olhovik_ joined
vendethiel m: constant DEBUG = False; macro debug($code) { if DEBUG { $code } }; debug say 'hey'; 12:46
camelia ( no output )
12:46 pippo joined
vendethiel m: constant DEBUG = False; macro debug($code) { if DEBUG { $code } }; debug my $a = 5; 12:46
camelia ( no output )
vendethiel m: constant DEBUG = False; macro debug($code) { if DEBUG { $code } }; debug my $a = 5; $a++;
camelia ( no output )
pippo m: my @a = 1..10; @a \ 0; 12:47
camelia rakudo-moar e82920: OUTPUT«5===SORRY!5=== Error while compiling /tmp/hmacFDPwG9␤Two terms in a row␤at /tmp/hmacFDPwG9:1␤------> 3my @a = 1..10; @a7⏏5 \ 0;␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modi…»
12:47 coffee` joined
vendethiel pippo: it's some unicode \ :) 12:47
itz domm.plix.at/perl/2015_05_things_i_...w2015.html
vendethiel m: say ^10 (\) 0;
camelia rakudo-moar e82920: OUTPUT«5===SORRY!5=== Error while compiling /tmp/RmJF7Af6rx␤Two terms in a row␤at /tmp/RmJF7Af6rx:1␤------> 3say ^107⏏5 (\) 0;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ stat…»
masak
pippo vendethiel: Ah. Thanks!
masak I believe the Texas version is (-) 12:48
vendethiel m: say ^10 (-) 0;
camelia rakudo-moar e82920: OUTPUT«set(5, 7, 9, 4, 8, 3, 1, 6, 2)␤»
masak hm, some interesting bug is happening in the calculations in the JavaScript here. all my inclusive time percentages are reported back as "Infinity%" or "NaN%". guessing something might be wrong with the inputs, perhaps. 12:49
tadzik masak: I wonder what it shows in github.com/tadzik/p6profiler-qt then :) 12:50
segfaults? :P
masak hehe 12:51
anyway, the "Routines" tab tells me little to nothing.
there's no obvious culprit that I can see.
the call graph is "aah my eyes" and "aah my laptop fan" :/ 12:52
12:54 coffee` left
masak there were 33340 deoptimizations done on Enum's BUILD *method* (not submethod, for some reason) 12:55
which is ridiculous, since my code doesn't even use enums.
pmichaud how do I get readline history in my REPL? Several people at jnthn++'s tutorial are wanting to know 12:56
masak there are 7 occurrences of 'method BUILD' in the core. I think they are all mistakes.
will try to spectest a patch that changes them.
12:57 rurban left
arnsholt pmichaud: There's a module you need to install. Linenoise 12:57
DrForr pmichaud: github.com/drforr/perl6-readline # might help there, it's at a point where the non-callback stuff binds and is tested.
Oh, has someone already done that? /me looks. 12:58
masak Baggy, CompUnitRepo::Local::Installation, Enum, Match, PairMap, Sett, and StrDistance.
the first six appear to have been authored by lizmat++. the last one by psch++.
DrForr Nice, maybe I can steal ideas for the rest of the examples from that. 12:59
hoelzro++
13:01 laouji joined, coffee` joined
pmichaud okay, since I'm not doing modules at the moment that means I can't do history. 13:02
for the record... discussion here seems to lead to the notion that perhaps linenoise should be integrated with NQP 13:03
(so that it's available for other languages eventually built on top of nqp)
lizmat masak: what's wrong with my BUILDs ?
because they're not submethods ? 13:04
itz there is also the "rlwrap" hack to get readline
pmichaud interesting datapoint: "rlwrap ./perl6-m" adds.... what itz++ just wrote
(perhaps that belongs as a FAQ somewhere) 13:05
13:06 airdisa joined
dalek kudo/nom: 28d259f | usev6++ | src/core/Str.pm:
Avoid calling 'get_next_substitution_result' when at end of string

This fixes failing tests in S05-transliteration/with-closure.
13:09
kudo/nom: aa721f4 | FROGGS++ | src/core/Str.pm:
Merge pull request #423 from usev6/rt124656

Avoid calling 'get_next_substitution_result' when at end of string
13:09 diana_olhovik_ left 13:11 ssqq joined
masak spectest failure in t/spec/S17-lowlevel/lock.rakudo.moar 13:13
ssqq How to change the prompt of perl6 REPL. `>` to other like 'repl>' 13:14
masak Failed test: 7
Non-zero exit status: 1
test runs fine with either `make` or `perl6`, but failed under `TEST_JOBS=4 make spectest` 13:15
pmichaud ssqq: I don't think we have a way to change the repl prompt at the moment. 13:17
I could be wrong about that.
dalek ast: 9a2b99d | usev6++ | S05-transliteration/with-closure.t:
Unfudge passing tests, add another test for .trans with closure
13:19
lizmat I've seen reports of people moving linenoise.so into place manually, but I personally don't use the repl and I have no idea where the right place is 13:20
masak is there any advantage of `submethod BUILD(...) { self }` rather than just `submethod BUILD(...) {}` ?
I'm not aware of one. 13:21
itz there is no -shared target for linenoise.so you have to compile manually and move into either the current working directory or a LD_LIBRARY_PATH location
lizmat I guess it's part of a non-standard .new ?
masak could very well be. this was in Enum.pm, and when I changed `method` to `submethod`, I got an error in the vicinity of Pair.pm, a subclass. 13:22
pmichaud in looking at the linenoise details, I think I'd much prefer having linenoise linked in at the nqp level. There's already nqp::readline() defined, and HLL::Compiler.readline as well. 13:23
masak blib/Perl6/BOOTSTRAP.moarvm originates the error. it expected a BUILD in Pair -- didn't find one. guess until now it's been inherited.
13:23 coffee` left
masak yep, the `method BUILD` in Enum is non-standard, alright. it takes two positionals. didn't notice that until now. 13:24
lizmat masak: yeah, just discussed with jnthn
we're cheating there 13:25
masak starting to realize that.
guess because Pairs are needed to have positionals in the first place.
13:25 ssqq_ joined
masak er, to have named params 13:25
lizmat the custom .new is also the reason why BUILD is returning self
masak ok. 13:26
leaving Enum.pm alone, then.
13:26 ssqq left 13:27 lolisa left
masak what about Setty.pm ? it also returns `self`, but it has :%!elems, a named parameter 13:27
the other five cases seem to be mistakenly `method` instead of `submethod`, but Setty I'm not sure of
itz pmichaud: I've a vague memory of seeing a similar discussion about linenoise on IRC before
lizmat masak: that one is probably cargo culted 13:28
pmichaud itz: I can go back and check on it.
masak ok
spectesting. 13:29
13:30 coffee` joined
pmichaud rosetta code note: The Perl 6 answer for "Prime decomposition" doesn't make use of the .is-prime builtin. rosettacode.org/wiki/Prime_decomposition#Perl_6 13:32
masak probably predates it.
13:40 Sysaxed` joined 13:41 rindolf joined 13:45 ssqq_ left 13:46 [TuxCM] joined
hoelzro DrForr: I didn't know you'd written a readline module! we should modify the REPL to check for that for line editing support as well as linenoise 13:48
DrForr It's only on github so far, but it is a more or less complete perl6 binding to libreadline5. 13:49
hoelzro DrForr++ 13:50
pmichaud: linenoise used to be integrated at the VM level, but I removed it so that the REPL could be enhanced at a higher level
DrForr I put it on hold while a bug in paerametrized signatures got worked out, but I should take some time to finish up the docs and add it to modules.perl6.org. 13:51
hoelzro I was thinking that Linenoise would be included in Star releases, but maybe it should be included with Rakudo itself
masak DrForr: release early, release often :)
hoelzro DrForr: cool, ping me when it's ready, and we can work on adding support in the REPL!
DrForr Will do. 13:52
pmichaud hoelzro: I'm thinking Rakudo (and module) is too high level. 13:54
dalek kudo/nom: 95d7e8b | lizmat++ | src/core/Enum.pm:
Privatize Enum

Half of the occurrences in the source were $!key and $!value, and the other half were $.key and $.value. Since subclassing Enum was not possible because of this already, it felt like a good idea to make them all private for performance.
pmichaud hoelzro: I'd like to see if a basic version can go in as part of NQP, as part of HLL::Compiler (more). 13:55
masak lizmat++
hoelzro what would be the appropriate place for a blurb recommending the use of rlwrap, or the installation or Linenoise?
masak oh, meanwhile, my patch spectested fine.
lizmat masak++
masak just a spurious failure in t/spec/S05-transliteration/with-closure.rakudo.moar I think.
pmichaud Then a module (e.g., in Star) could be used to enhance it further if desired.
masak re-runs that test just to be sure
nope. not spurious. 13:56
13:56 espadrine_ joined
masak hm, I did change Match.pm... 13:56
oh; that one is "special" too.
masak changes it back and re-spectests 13:57
13:57 Sysaxed` left, Sysaxed` joined
hoelzro pmichaud: I'm not opposed to having line editing support in NQP, but I don't know what that would look like 13:58
I found it a little odd that invoking a readline library was a core operation in MoarVM, personally
pmichaud hoelzro: line editing support existed in NQP on Parrot 14:00
it's not that odd, I don't think.
I need to look a little more at the LineNoise module to see how it's implemented and what it's doing
jnthn++ had a few other remarks about it also, so we should probably check with him 14:01
(I'm in a workshop at the moment) 14:02
hoelzro ok
14:04 agentzh_ joined 14:12 raiph joined
dalek kudo/nom: 27fc134 | lizmat++ | src/core/Pair.pm:
Some minor Pair cleanup
14:16
masak hm, no, that didn't fix it. 14:20
oh, PairMap appears to be "special" as well.
masak didn't even know we had PairMap
oh, it's relatively new. March this year. 14:24
but the spec for it is from 2009. 14:26
14:28 agentzh left, agentzh joined, agentzh left, agentzh joined 14:29 agentzh left, agentzh joined 14:30 yqt left
masak wow. with every spectest run, I'm only making stuff worse. :) 14:31
14:32 skids joined
lizmat masak: yeah, I thought I'd implement some of it at one point 14:35
masak ok, at least one of those tests is flappy. (t/spec/S04-phasers/in-loop.rakudo.moar) 14:40
now re-running without TEST_JOBS 14:41
t/spec/S17-lowlevel/lock.rakudo.moar is a known flappy one, I guess.
dalek ast: bdf42e1 | usev6++ | S06-operator-overloading/sub.t:
Traits should come after params, use unique RT number
14:43
lizmat masak: haven't seen that one fail recently, but it is one that failed regularly in the past 14:52
masak now spectesting without TEST_JOBS and without my patch, as a baseline. 14:53
dalek : d57faec | usev6++ | misc/rt.perl.org/cleanup_nyc_hackathon_tickets.txt:
Keep track of merged and resolved tickets
14:55 Alina-malina left
[TuxCM] why is in «my $e; { foo(); CATCH { default { $e = $_; }}; ~$e.say» calling $_.sink inside the default block? 14:58
in «my $e; { foo(); CATCH { default { $e = $_; 1; }}; ~$e.say» (adding 1;) it does not 14:59
masak that's weird.
the reverse situation I'd have been able to explain...
[TuxCM] I'll try to golf that ... 15:00
pmichaud the CATCH block is running in sink context, I'd guess. 15:01
i.e., the .sink is being called not inside the default block, but rather when the result is passed upwards to one of the outer blocks 15:02
15:03 agentzh_ left
masak t/spec/S05-transliteration/with-closure.rakudo.moar seems ti genuinely fail here. 15:04
[TuxCM] gist.github.com/Tux/fceeab1d62fc77c00382
pmichaud the outer block is in sink context (due to the ~$e.say following it). Since that block contains a CATCH, it acts like a "try block", and executes its contents in sink context. The value of $e is being returned in the first case, so it gets sunk. In the second case it's the "1" that is being returned from the CATCH, and it gets sunk also (but is more quiet about it) 15:05
bartolin masak: I unfudged some tests today: github.com/perl6/roast/commit/9a2b99d2
[TuxCM] is still confused 15:06
bartolin masak: are those failing? they should not with rakudo commit 28d259f
[TuxCM] «my $e; { foo(); CATCH { default { $_; }}; ~$e.say» is void context and should call sink 15:07
15:07 FROGGS[mobile] left, FROGGS[mobile] joined
[TuxCM] or should I write $e = { ... CATCH { default { $_ }}; ? 15:08
15:10 molaf_ joined 15:12 kurahaupo1 left 15:13 molaf left 15:14 isBEKaml joined 15:16 _mg_ joined
masak bartolin: have to go, will investigate later. 15:18
15:20 diana_olhovik_ joined
pmichaud [TuxCM]: I'm not sure that the assignment is what you want there. 15:21
[TuxCM] I think I don't: it assigns the block
(without calling it) 15:22
15:22 cognominal joined, Alina-malina joined 15:23 tadzik left 15:24 lizmat left, tadzik joined 15:25 _mg_ left, laouji left, kurahaupo1 joined, lizmat joined 15:27 diana_olhovik_ left 15:30 lizmat left
timotimo raydiak: (backlogged) the JIT doesn't care if an operator comes from core or not; the static optimizer will only do some optimizations on some operators if they are the ones from core, because it relies on their specific semantics (like infix:<|> actually creating a Junction object of the "any" type) 15:31
15:31 agentzh_ joined
bartolin looks like there is a file S04/statements/lift.t in roast. lift was unspecced for quite a while -- would it make sense to remove that file from roast? 15:40
15:40 xfix joined
bartolin (the file is not included in rakudo's t/spectest.data) 15:41
FROGGS bartolin: I have 90 more files... so you can leave that to me 15:44
bartolin 90? wow, ++FROGGS 15:45
isBEKaml bartolin: you were the one behind the frenetic ticket drilldown on RT? I received a *lot* of emails over that! :-) 15:50
15:52 agentzh_ left
bartolin isBEKaml: yepp, I'm trying to clean up some of the recently tickets. (more than 400 fudged tests without a corresponding ticket got added to RT by dnmfarrell++, cmp. github.com/perl6/roast/commit/80933b15) 15:54
tony-o m: $*IN.watch.tap(-> $data { $d.say; }); sleep 1; 15:55
camelia rakudo-moar 27fc13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/2MyUa1UlB9␤Variable '$d' is not declared␤at /tmp/2MyUa1UlB9:1␤------> 3$*IN.watch.tap(-> $data { 7⏏5$d.say; }); sleep 1;␤»
tony-o m: $*IN.watch.tap(-> $data { $data.say; }); sleep 1;
camelia rakudo-moar 27fc13: OUTPUT«Unhandled exception in code scheduled on thread 3␤no such file or directory␤␤»
15:55 agentzh_ joined 15:57 pippo left
tony-o should i be able to tap that? 15:57
isBEKaml bartolin: 232 files in 1 commit? damn... 15:59
bartolin++
15:59 raiph left 16:00 araujo left 16:02 thou joined, [TuxCM] left 16:04 silug left 16:11 agentzh_ left 16:12 araujo joined, isBEKaml left 16:17 silug joined
timotimo tony-o: STDIN isn't bound to a file, is it? 16:22
how is it supposed to watch that for file changes: :)
tony-o i thought i could tap it because it's a supply 16:23
timotimo well, some supplies execute code when you tap them 16:28
those are called "on-demand", if i'm not confusing terms here
tony-o ah , gotcha
timotimo i believe that's what's happening here 16:31
maybe the .watch method should return a failure or throw an exception if it's invoked on a handle we don't have an associated file for
that would make your code up there fail in the main thread 16:32
rather than just showing the exception on stderr (or stdout?) and going on
depending on your code and mindset, either would be preferable :P 16:34
tony-o and a catchable error is at least decent :-) 16:35
timotimo aye
tony-o it took my a little while to figure out where that was coming from
16:37 zakharyas joined 16:39 _mg_ joined 16:40 yqt joined 16:41 _mg_ left 16:50 raiph joined 16:52 espadrine_ left
raydiak timotimo: wrt JIT I guess I was thinking about the effects of mixing a bunch of calls to various ops being dynamically redefined in the same scope, as opposed to having the different ops imported at compile time into a separate lexical scope like usual 17:00
of course my understanding of what's going on in there is almost so crude you could say it doesn't exist :) 17:02
timotimo in what instance were you expecting $*IN.watch to work? :) 17:03
raydiak: everything lexical is known at compile time already 17:04
that's what's so good about lexicalness :)
17:05 domidumont joined
raydiak timotimo: in for ^1e9 { say $_ + $_; ... }, are you trying to tell me that the JIT won' 17:05
t
notice if ... changes what infix:<+> means? 17:06
timotimo huh? of course it will
17:06 FROGGS[mobile] left
raydiak well that's the kind of nonsense I was trying to discourage :) 17:06
17:06 zakharyas left
timotimo you can't lexically redefine + after it's already been used in the same scope 17:06
17:06 coffee` left
timotimo it'd get the new meaning "immediately" 17:06
dalek ecs: 64ea7b7 | (Nick Logan)++ | S32-setting-library/IO.pod:
Update IO.pod

method .spurt accepts named argument $bin
17:07
raydiak wasn't sure if it could be done or not at all, but had been trying to explain why you really probably don't want *that* anyway
timotimo hah 17:08
m: 1 + 1; sub infix:<+>($a, $b) { say "whoa!" } 17:09
camelia rakudo-moar 27fc13: OUTPUT«whoa!␤»
17:10 coffee` joined
raydiak don't recally the conversation in detail, he probably didn't have "in a for loop" in mind, so maybe what he wanted could have been done statically... 17:12
timotimo oh, you were still refering to "undefining something"? 17:17
raydiak yep just re-read it, that's what I was answering 17:18
sounded to me like he really wanted a slang or so instead 17:19
timotimo that's not possible, is it?
raydiak m: CORE::<&say> :delete 17:20
camelia rakudo-moar 27fc13: OUTPUT«Unhandled exception: Can not remove values from a PseudoStash␤ at src/gen/m-CORE.setting:14646 (/home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:throw:121)␤ from src/gen/m-CORE.setting:16521 (/home/camelia/rakudo-inst-2/share/per…»
timotimo m: &say := sub lol(|c) { note "haha" } 17:22
camelia rakudo-moar 27fc13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/WLPV8WVgHH␤Cannot use bind operator with this left-hand side␤at /tmp/WLPV8WVgHH:1␤------> 3&say := sub lol(|c) { note "haha" }7⏏5<EOL>␤ expecting any of:␤ postfix␤»
FROGGS m: my &say := sub lol(|c) { note "haha" }
camelia ( no output )
raydiak yeah FROGGS was the first to suggest you could probably at least define it to point to something useless or nonexistant, but I didn't figure out if/how that would work and what it would look like, and didn't much care for the messiness anyway so moved on 17:23
oh I remember the last problem I was running in to, was just some special checks in rakudo for CORE names in certain cases, like... 17:24
m: my &say = { say "foo!\n" }; say() 17:25
camelia rakudo-moar 27fc13: OUTPUT«Memory allocation failed; could not allocate 159616 bytes␤»
raydiak m: my &say = { print "foo!\n" }; say()
camelia rakudo-moar 27fc13: OUTPUT«foo!␤»
raydiak there we go
but then, if you...
m: my &say = { print "foo!\n" }; say
camelia rakudo-moar 27fc13: OUTPUT«5===SORRY!5===␤Argument to "say" seems to be malformed␤at /tmp/cizDx4J0Hn:1␤------> 3my &say = { print "foo!\n" }; say7⏏5<EOL>␤Other potential difficulties:␤ Unsupported use of bare "say"; in Perl 6 please use .say if you meant $_, o…»
raydiak but by then I was pretty tired and my attention was just kinda floating around uselessly, so I wasn't even keeping track of the original problem I was trying to solve any more :) 17:26
timotimo right, we don't expect you to reimplement "say" to something that you don't need to supply an argument to
raydiak which, for operators, may or may not have been another issue he'd run in to 17:27
depending on what he was hoping to make them do 17:28
17:29 coffee` left 17:31 coffee` joined
raydiak all I really knew for sure was that he was destined to experience much pain and agony (and associate it with perl 6) if he kept trying to pound nails with a wrench, so I tried to suggest using a hammer, or bolts instead of nails :) 17:32
dalek kudo/nom: a040b1a | TimToady++ | src/core/control.pm:
warn should add file and line unless /\n$/

  (This code assumes the warning should always put the file and line from the
user's program, not from the setting.)
17:36
skids m: do { my sub abs { -42 }; say (abs) } 17:38
camelia rakudo-moar 27fc13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iI_dY5t6Gb␤Unsupported use of bare "abs"; in Perl 6 please use .abs if you meant $_, or use an explicit invocant or argument␤at /tmp/iI_dY5t6Gb:1␤------> 3do { my sub abs { -42 }; say (abs7⏏5) }␤»
tony-o does perl6 $*IN.slurp-rest wait for stdin to be closed?
TimToady should just wait for an eof indication 17:39
tony-o is there a way to use it as a stream? 17:41
17:41 zakharyas joined
TimToady it 17:41
tony-o or repoien it
TimToady it?
tony-o $*IN
TimToady depends on whether it's bound to a file or not, surely 17:42
tony-o it's not as timotimo schooled me earlier
skids
.oO(heheh. "bare abs". just noticed that.)
17:43
tony-o gist.github.com/tony-o/06c5e6b9bf7dddb8733e 17:44
FROGGS m: my &say = { CORE::say "foo!\n" }; say()
camelia rakudo-moar 27fc13: OUTPUT«5===SORRY!5=== Error while compiling /tmp/9pmvvnmySm␤Two terms in a row␤at /tmp/9pmvvnmySm:1␤------> 3my &say = { CORE::say7⏏5 "foo!\n" }; say()␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ …»
FROGGS m: my &say = { CORE::say("foo!\n") }; say()
camelia rakudo-moar 27fc13: OUTPUT«Cannot find method 'Any'␤ in block <unit> at /tmp/4gM4jfQFcL:1␤␤»
FROGGS m: my &say = { &CORE::say("foo!\n") }; say() 17:45
camelia rakudo-moar 27fc13: OUTPUT«foo!␤␤»
tony-o am i looking at the wrong way of getting a stream of data from $*IN if i don't want to close $*IN prior to reading the data?
FROGGS raydiak: nothing checks for 'say', it is just that your code called itself... again and again
17:46 zakharyas left
raydiak FROGGS: yeah that one was a mistake, I meant the "unsupported use of bare ..." 17:46
FROGGS ahh yes, that's a check in the grammar 17:47
skids That check seems aimed at heading off bareword errors for perl5ers. And in the way for other folks. 17:50
Hrm, or no, why is that check even there, really? 17:51
raydiak he was on to an idea though...if you could get a "no-CORE setting", or something closeish to it, it'd be a fun way for people to try their toy languages without even needing their own grammar, just relying on the *fix op declarations 17:52
skids: yes pretty sure it's for P5ers
p5: say "does this work?"
5: say "does this work?"
camelia: help
camelia raydiak: Usage: <(niecza|debug-cat|prof-m|pugs|rakudo-jvm|nqp-parrot|std|nqp-jvm|p5-to-p6|nqp-js|star-m|star-j|rakudo-moar|nqp-moarvm|Prn|nqp-mvm|perl6|nrP|nqp-j|j|r|p56|sj|sm|nqp-p|nqp-q|rnP|p6|nqp-m|m|rakudo|nr|r-m|n|nqp|rj|rm|rPn|r-j|r-jvm|star|nom|rn|P|Pnr|nPr)(?^::\s) $perl6_program>
raydiak guess we have no 5 in the evalbot 17:53
vendethiel p5-to-p6: for (<>) print;
camelia p5-to-p6 : OUTPUT«Syntax Error near 0 at perlito5.pl line 13769.␤»
17:54 raiph left
geekosaur needs braces, but that's a terrible way to report a syntax error 17:54
raydiak but yeah many p5 core functions would just work on $_ if you didn't pass them something
vendethiel npr: 1
p5-to-p6: for (<>) { print; }
camelia p5-to-p6 : OUTPUT«for <glob> {␤ .print␤}␤»
raydiak greatly prefers P6's implicit invocant to P5's sometimes-implicit parameter 17:59
skids raydiak: yeah the check only seems to happen on things that are defined subs in P5. So at least that limits it to a very slowly growing finite list. 18:01
raydiak oh yeah, I don't regard it as a problem we have necessarily, except for the person who says they want a "clean slate" CORE to work with 18:04
vendethiel raydiak: troo :-) 18:07
m: sub prefix:<^^>(@a is copy){ @a }; for ^^lines { s/a/e/; .say; } 18:08
camelia rakudo-moar a040b1: OUTPUT«5===SORRY!5=== Error while compiling /tmp/16vzcqnnbC␤Expected a term, but found either infix ^^ or redundant prefix ^␤ (to suppress this message, please use a space like ^ ^)␤at /tmp/16vzcqnnbC:1␤------> 3ub prefix:<^^>(@a is copy){ @a }; for…»
vendethiel :(? 18:09
skids Though I guess a policy of "if P5 decides to backport this sub from P6, do not allow bare use" might be appropriate.
raydiak it'd be cleaner I'd think to just have a "multi sub say () { die ... }" in core, but it has a runtime penalty 18:12
I mean vs checking it in the grammar
ugexe is there a way to add something like a common phaser to methods, like adding roles to a class?
18:14 Sysaxed` left
bartolin m: say (2,10).min():{ $^a leg $^b } # is this supposed to work? 18:16
camelia rakudo-moar a040b1: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
bartolin m: say (2,10).min :{ $^a leg $^b } # is this supposed to work?
camelia rakudo-moar a040b1: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value'␤»
bartolin m: say (2,10).min:{ $^a leg $^b }
camelia rakudo-moar a040b1: OUTPUT«10␤»
raydiak no idea 18:19
FROGGS bartolin: no and no
skids I would doubt the first one should work at least. Errors LTA.
FROGGS though, it should fail in the grammar, not the actions
skids std: say (2,10).min():{ $^a leg $^b } 18:20
camelia std 28329a7: OUTPUT«ok 00:00 142m␤»
FROGGS O.o
18:20 yqt left
FROGGS std: say (2,10).min( $^a leg $^b ):{ $^a leg $^b } 18:20
camelia std 28329a7: OUTPUT«5===SORRY!5===␤Placeholder variable $^a may not be used outside of a block at /tmp/MpdQyaQ5VX line 1:␤------> 3say (2,10).min( 7⏏5$^a leg $^b ):{ $^a leg $^b }␤Placeholder variable $^b may not be used outside of a block at /tmp/MpdQyaQ5VX line 1:…»
FROGGS std: say (2,10).min( * leg * ):{ $^a leg $^b }
camelia std 28329a7: OUTPUT«ok 00:00 142m␤»
FROGGS that's insane
std: say (2,10).min( * leg * ): { $^a leg $^b } 18:21
camelia std 28329a7: OUTPUT«ok 00:00 142m␤»
bartolin std: say (2,10).min :{ $^a leg $^b }
camelia std 28329a7: OUTPUT«ok 00:00 142m␤»
bartolin hmm
skids Maybe one of those "reserved use of the colon" intentionally unfinished areas. 18:22
bartolin ok, thanks for looking! 18:23
FROGGS I just think that std does not check that it already got an arglist
18:27 airdisa left 18:39 kurahaupo1 left
vendethiel could we realistically see TCO in perl6 (at some point in the Future(TM))? 18:40
TimToady no, that : is quite intentional
vendethiel (tail call optimization)
TimToady it's intended to be a by Ruby-esque in allowing a block after a parenthesize arg list $foo.bar(@args): { block } 18:41
s/by//
er, s/by/bit/
it also fixes the sitation where the first arg isn't really part of the list 18:42
map(*+2), @a X @b
er, s/,/:/
std: map(*+2): <a b c> X <d e f> 18:43
camelia std 28329a7: OUTPUT«ok 00:00 137m␤»
masak TimToady: I find I'm far more on in a situation where I want to do `listop expr() { ... }` 18:44
(I have a macros musing post about that, I think)
TimToady well, that's Ruby TTIARism 18:45
masak yes.
TimToady mislikes it
masak thing is, special forms in the language like `if` and `while` already do it.
FROGGS everything is a TTIAR 18:46
masak sometimes I feel like making something that looks special-form-y like that.
&
TimToady I seem to recall that every DWIM comes with its corresponding WAT
m: warn "phooey" 18:51
camelia rakudo-moar a040b1: OUTPUT«phooey at /tmp/tWPdup3r8T line 1␤»
TimToady m: Nil.Str
camelia rakudo-moar a040b1: OUTPUT«Use of Nil in string context at /tmp/69bTFJqvGW line 1␤»
18:54 aborazmeh joined, aborazmeh left, aborazmeh joined 18:59 araujo left 19:01 yqt joined 19:11 spider-mario joined 19:14 zakharyas joined, rindolf left 19:16 aborazmeh left, agentzh_ joined 19:17 domidumont left 19:20 agentzh_ left 19:32 larion joined 19:33 dwarring joined
masak hm, I was sure #125129 was in RT already, but I can't seem to find it when I search... 19:34
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125129
dalek p/ignoremark: 33039fc | FROGGS++ | src/ (2 files):
implement ignoremark for charranges
19:35
ast: 8e5a074 | FROGGS++ | S05-modifier/ignoremark.t:
add test for ignoremark + range in character class
19:36
masak some great work seems to be happening in RT right now. I sincerely approve.
bartolin++
FROGGS we need more tests for regex modifiers, also for testing LTM (there are most likely no test for that at all) 19:40
m: say (1,2,3).map({$^a + $^b}) # should placeholder params be optional by default? 19:44
camelia rakudo-moar a040b1: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/xWOAymnHYW:1␤␤»
FROGGS hmpf
S05-match/perl.t got broken again... 19:45
dalek ast: 3ec1592 | usev6++ | S05-interpolation/regex-in-variable.t:
Use existing ticket number
ast: 933dc19 | usev6++ | S05-modifier/ignorecase.t:
Use existing ticket number
ast: 1afc250 | usev6++ | S32-list/map.t:
Narrow fudging and replace reference to closed ticket
bartolin FROGGS: I just added that ticket (about placeholder variables) so I could narrow down the fudgeing. 19:46
FROGGS bartolin: yeah, I am asking here because I saw the mail from RT 19:47
bartolin *g*
. o O (one of those mails ...)
FROGGS :o)
dalek kudo/nom: 8eaab87 | FROGGS++ | t/spectest.data:
add all test files from roast to spectest.data

The goal is to get roast clean this year, so we either fix and include them or remove questionable files entirely.
19:53
19:54 telex left
vendethiel FROGGS++ 19:55
bartolin FROGGS++ 19:56
19:56 telex joined
masak here's to a clean roast! 🍸 19:57
FROGGS if somebody wants to look at S05-match/perl.t, it was working yesterday... one of the Empty/Nil changes might cause the breakage here
m: say uniname '🍸'
camelia rakudo-moar a040b1: OUTPUT«COCKTAIL GLASS␤»
FROGGS :o)
20:01 xfix left
dwarring hi perl6 20:02
FROGGS hi dwarring
dwarring hi FROGGS 20:03
m: my %h = classify { "foo" }, ();
camelia rakudo-moar a040b1: OUTPUT«Cannot look up attributes in a type object␤ in block <unit> at /tmp/_2S0X0mZLg:1␤␤»
dwarring m: my %h = classify { "foo" }, ("xx");
camelia ( no output )
dwarring that's started happening over the last few days 20:04
I'll put in an RT
FROGGS dwarring++
dwarring just seems to be the particular case of classify + empty list with hash assigment 20:05
dalek kudo/nom: 64a0184 | (Carl Masak)++ | src/core/ (4 files):
change some `method BUILD` to `submethod BUILD`

As an infrastructural method, `BUILD` should in general be a submethod to prevent it from being inherited.
There were 3 occurrences that I left alone: in Enum, Match, and PairMap. These, as I learned, are circular-chainsaw "cheats", and it appears they can't be submethods because of this.
20:29
masak I'm reasonably confident I didn't introduce any new spectest failures.
20:29 Sysaxed` joined
dalek ast: 50a6760 | usev6++ | S32-list/ (3 files):
Change fudged tests from 'skipped' to 'todo'
20:31
20:33 molaf_ left 20:35 darutoko left 20:37 zakharyas left 20:41 skids left 20:43 skids joined
dalek p: 4de33c4 | FROGGS++ | src/ (5 files):
implement ignoremark for moarvm backend

Ranges in character classes are still todo and require some thought. Also, this patch does not include the required stage0 bump, which we need because we use a new op called nqp::ordbaseat(str, offset).
20:44
p: b289f69 | FROGGS++ | src/ (2 files):
implement ignoremark for charranges
p: d267664 | FROGGS++ | / (35 files):
bump stage0, implementing ordbaseat for moar, and NYI for jvm/parrot
20:44 colomon left 20:55 [Sno] left 20:56 [Sno] joined
dalek kudo/nom: d356462 | FROGGS++ | / (3 files):
implement ignoremark, though needs tbd for interpolations
20:56
ast: 27cb51d | usev6++ | S32-list/sort.t:
Fix and unfudge tests, use existing ticket number

RT #68112 was rejected back in 2012, so I adjusted the tests to 'throws_like'
20:57
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...l?id=68112
kudo/nom: 48bb9a1 | FROGGS++ | t/spectest.data:
run now passing test files
20:58
20:58 colomon joined
dalek kudo/nom: ace270c | FROGGS++ | t/spectest.data:
ups, run NFG tests on moar only
21:02
21:04 Alina-malina left 21:06 laouji joined 21:09 coffee` left
dalek ast: 3d806ed | FROGGS++ | S05-interpolation/regex-in-variable.t:
readd missing quote in fudge message
21:11
FROGGS m: say 'abxab' ~~ /(ab)x"$0"/ 21:12
camelia rakudo-moar 64a018: OUTPUT«flatten requires a concrete string, but got null␤ in regex at /home/camelia/rakudo-inst-2/share/perl6/runtime/CORE.setting.moarvm:1␤ in block <unit> at /tmp/TosM9i6cht:1␤␤»
FROGGS that seems to be new
21:13 coffee` joined
FROGGS m: say 'abxab' ~~ /(ab)x"ab"/ 21:16
camelia rakudo-moar 64a018: OUTPUT«「abxab」␤ 0 => 「ab」␤»
21:18 Alina-malina joined 21:19 laouji left
bartolin FROGGS: with aa721f4 I don't get that error (but there is a warning "Use of Nil in string context") 21:19
dalek : 33eeecc | usev6++ | misc/rt.perl.org/cleanup_nyc_hackathon_tickets.txt:
Keep track of merged and resolved tickets
21:20
FROGGS bartolin: ahh, then I know what is wrong 21:21
21:33 spider-mario left 21:34 spider-mario joined, silug left
timotimo FROGGS: you didn't want to add the lcordat/ucordat ops before doing the actual stage0 bump? 21:38
FROGGS timotimo: it is too late anyway now :o) 21:39
timotimo yes ;_;
FROGGS and I still don't know if we need these things as ops, or if speshing the three or four single ops to something like lcordat makes sense 21:40
timotimo oh 21:41
perhaps
21:41 eli-se joined
eli-se .botsnack 21:41
yoleaux :D
synbot6 om nom nom
21:48 silug joined
dalek ast: b0e8aa2 | (David Warring [email@hidden.address] | S02-names-vars/perl.t:
RT #125110 .perl method on composing chars. fudged for moar
21:50
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125110
eli-se thanks for the link synbot6 21:52
21:53 eli-se left
dalek kudo/nom: f72bc96 | FROGGS++ | src/core/control.pm:
unbust warning for Nil in strings in regexes
21:57
kudo/nom: 3044df6 | (Radek Slupik)++ | CREDITS:
Add rightfold to credits
22:04
kudo/nom: d52f84d | rightfold++ | CREDITS:
Add rightfold's IRC username to CREDITS
kudo/nom: f226f73 | FROGGS++ | CREDITS:
Merge pull request #414 from rightfold/nom

Add rightfold to credits
22:07 thou left
dalek ast: e30caf9 | FROGGS++ | S32-basics/warn.t:
unfudge now passing warn() test
22:08
22:13 larion left 22:17 jepeway left 22:18 jepeway joined 22:20 kaare__ left
masak 'night, #perl6 22:21
FROGGS gnight #perl6
22:21 FROGGS left, cognominal left 22:24 thou joined 22:25 bjz left
dalek ast: a0269f9 | (David Warring [email@hidden.address] | S32-list/classify.t:
added test for RT #125148 - classify on an empty list
22:27
synbot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=125148
22:44 Timbus_ left 22:46 lizmat joined 22:47 Timbus joined 22:48 cognominal joined 22:50 kurahaupo joined 23:03 danaj left 23:08 larion joined, RabidGravy left 23:11 raiph joined
lizmat wanted to check something before going to bed 23:12
alas, rakudo has become 2.2 times as slow all of a sudden 23:13
23:13 rivarun left
lizmat and this includes building the setting (parse time from 32 to 74 seconds) 23:13
bare startup from 0.16 to .355 23:14
23:14 rivarun joined, BenGoldberg joined
lizmat feels to me the NQP changes / stage0 update are to blame ;_( 23:14
lizmat goes to sleep
good night, #perl6! 23:15
TimToady night
23:15 danaj joined
TimToady doesn't seem any slower here on parse time 23:21
23:35 gfldex left 23:38 Isp-sec left 23:45 agentzh_ joined 23:47 dwarring left 23:52 agentzh_ left 23:59 dayangkun joined