»ö« 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.
japhb .tell [Coke] IIRC there were two reasons for PNG versions of the type graphs: 1) Browsers that did not support SVG inline, and 2) Browsers with NoScript or similar security technology enabled (which often disables SVG). 00:18
yoleaux japhb: I'll pass your message to [Coke].
AlexDaniel what's [big] about it 00:51
[Coke] samcv: looks like it's more than twice as slow here: gist.github.com/coke/1fb4a80aa8339...cc1a0a2981 02:23
yoleaux 00:18Z <japhb> [Coke]: IIRC there were two reasons for PNG versions of the type graphs: 1) Browsers that did not support SVG inline, and 2) Browsers with NoScript or similar security technology enabled (which often disables SVG).
[Coke] samcv: got a TON of duplicate messages during the final stages with the highlights version, not sure if that contributed. 02:24
samcv hmm
from travis's build it seems to be like 10% slower
but i'm working atm on being able to make it async
well the node side
and output json which contains the filename it read from and the html (newline delimited) 02:25
[Coke] samcv: note that parallel=2 SEGVS or worse with the current version. 02:28
(on master)
samcv yeah
[Coke] .tell japhb - yah, I'm suggesting that we have enough SVG support now we can drop that requirement. 02:30
yoleaux [Coke]: I'll pass your message to japhb.
[Coke] (I am also generally OK with the site not being 100% without javascript) 02:31
samcv you mean client side? 02:33
samcv also i'm going to try calling stdout write directly instead of console.log 02:37
dalek c/highlights: 6180396 | samcv++ | highlights/highlight-filename-from-stdin.coffee:
Make highlights async, use process.stdout.write not console.log

console.log can do formatting of javascript data structures Hopefully will be faster printing that way.
Not sure if making it async will make it faster, the same, or slowing though.
02:41
samcv well let's see what this does
really curious. 02:42
[Coke] I can try again. 02:44
samcv also what node version do you have? 02:45
[Coke] v6.3.0 02:48
I see 6.9.2 is current, checking macports.
samcv that's probably fine i guess. i don't know much about node
i have v7.2.1 atm 02:49
[Coke] er, I guess current means something and I meant LTS.
[Coke] upgrades to 7.2.1 02:56
samcv also i made it async so. it's maybe possible that now the wrong text will be in different places 02:58
but i think most likely not, since it waits for a response (perl6)
before sending the next request. so i'm 95% sure that won't happen
[Coke] died with Cannot receive a message on a closed channel 02:59
samcv at the end?
[Coke] your parallel isn't tied to --parallel?
samcv it doesn't do it parallel. i just made the node part asynchronous
idk coke maybe it sent a nonreal filename? though then i think it should print out an error 03:00
i'm building right now
samcv err or wait maybe i didn't make it async. hold on 03:02
dalek c/highlights: cbaca0a | samcv++ | / (2 files):
Actually make the coffeescript asynchronous

Also remove an unneeded repo from the Makefile.
  `highlights` is already in our node package file,
so it automatically downloads.
03:14
labster news.ycombinator.com/item?id=13216924 Upvotes would be nice for today's advent calendar entry. People need to learn about P5 interop. Also good job tadzik++ 03:37
samcv the post title is not very informative :\ 03:38
labster it has a link right next to it with "perl6advent" 03:43
samcv: Should I edit the title? 03:44
samcv yes 03:45
very much so
Bridging the gap between Perl 5 and Perl 6
japhb . 04:08
yoleaux 02:30Z <[Coke]> japhb: - yah, I'm suggesting that we have enough SVG support now we can drop that requirement.
japhb [Coke]: Understood, just passing on the history. OOC, why do you want to get rid of the PNGs? 04:09
teksteiner Hey everyone, new to Perl6, when I use `say` with a variable in the following string, like `say "time: $seconds"`, how do I put a character behind seconds without a space? I know that I could do `say "time: $seconds" ~ "s"`. 04:29
MasterDuke m: my $second = now; say "time: {$second}s" 04:32
camelia rakudo-moar a96292: OUTPUT«time: Instant:1482208366.513932s␤»
teksteiner Ah I see, didnt know it was possible to use {} inside strings either, thank you :) 04:33
MasterDuke np. fyi, {} inside a string allows you to perform arbitrary computation 04:36
and on that bombshell, i'm out of here 04:37
teksteiner Alright, have a nice day.
samcv welcome to perl 6 teksteiner :) 05:27
samcv hmm roast is the current status of the Perl 6 standard right? so we can change things that may be different in 6.c? 06:07
samcv _really_ wants to remove the ornate parenthesis ;)
TEttinger samcv: I agree, very confusing 06:14
samcv i mean it can stay in the 6.c branch of roast, but i just want to remove it. that's what i want for christmas ;)
samcv and then when Bidi_Mirroring_Glyph works properly in Moar, then can easily automate the testing of all things in unicode 06:16
m: say '('uniprop('bmg')
camelia rakudo-moar a96292: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say '('7⏏5uniprop('bmg')␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifie…»
samcv m: say '('.uniprop('bmg')
camelia rakudo-moar a96292: OUTPUT«0029␤»
samcv m: say '('.uniprop('bmg').WHAT
camelia rakudo-moar a96292: OUTPUT«(Str)␤»
holli good localtime good sirs and ladies. may i kindly draw your attention to this perlmonks post of mine which describes a Perl6/Inline::Perl5 problem. 06:18
www.perlmonks.org/?node_id=1178000
samcv reading 06:19
samcv why did you make class YTDL::App is Wx::App? 06:21
in perl 5 do you have to use base or you don't get the routine's imported? 06:22
holli the Perl5 code is right there. yes because it's supposed to ISA Wx::App 06:23
samcv i see the perl 5 code. but the question was just, if that sub is automatically exported or not
hold on i have Wx installed. let me see 06:24
holli i don't know
raiph holli: what happened when you tried 'sub'? 06:29
yoleaux 19 Dec 2016 22:08Z <nine> raiph: your suggestion to use "method" instead of "sub" sounds entirely sane. Wonder if it helped.
raiph er, tried 'method'
samcv that doesn't work. i tried a sub
for me at least
holli neither "method" nor "sub" do work 06:32
samcv i don't think you can inherit from perl 5 programs. you can use perl 5 objects and stuff though 06:34
and routines
inheriting from it seems like it wouldn't work...
nige1 .tell zoffix thanks for the tip to turn on JSON output for perl6 -> RAKUDO_EXCEPTION_HANDLER=JSON 06:35
yoleaux nige1: I'll pass your message to zoffix.
samcv but i could be wrong
nige1 .tell zoffix I've update the code to use JSON instead github.com/nige123/perl6fix/blob/m...r/perl6fix 06:36
yoleaux nige1: I'll pass your message to zoffix.
samcv oh holli 06:37
what you are looking for is not `is` but the `does` keyword
nige1 next time I'll show advent drafts to the channel first
samcv does inherits the way you want it to
class YTDL::App does Wx::App will inherit variables and all other stuff. does inherits mostly everything 06:38
but i get this error: Wx::App is not composable, so YTDL::App cannot compose it
idk somebody else here might know more about using Inline::Perl5 :\ 06:39
at least that's how objects inherit in perl 6, not sure about the magic that happens in inline
holli bummer 06:40
samcv well let me keep trying actually...
holli ponders writing a Perl6 to C wrapper for Wx 06:42
samcv have you ever used NativeCall before?
i've used it before, it's pretty good
holli nope. not a clue about c
samcv do you know C?
holli that's the adventure :)
samcv NativeCall is the perl 6 thingy that hooks up to NativeCall
err.
i mean hooks up to C libraries 06:43
holli i know. looks easy. emphasize on "looks"
samcv well i can help you a lot more with that than with inline perl 5 hah 06:44
i mean i'm not a pro, but i have used it some
raiph IP5 just uses NativeCall
samcv yeah
raiph you can create a P6 class that's a subclass of a P5 class
do we have a P6 bot that has IP5 and some P5 modules installed? 06:46
holli apparently not 06:52
holli i fucked up the link btw 06:54
www.perlmonks.org/?node_id=1177946 this is the OP
nige1 .tell zoffix also fixed the advent entry on fixing flow perl6advent.wordpress.com/2016/12/...xing-flow/ to use JSON instead
yoleaux nige1: I'll pass your message to zoffix.
raiph .tell nine irclog.perlgeek.de/perl6/2016-12-20#i_13770361 06:59
yoleaux raiph: I'll pass your message to nine.
raiph holli: I plan to take another look at what you're trying later this week 07:01
goodnight #perl6
holli gn 07:02
holli off to work 07:17
cya
nine samcv: you _can_ inherit from Perl 5 classes 07:31
yoleaux 06:59Z <raiph> nine: irclog.perlgeek.de/perl6/2016-12-20#i_13770361
samcv that's pretty neat nine 07:32
how is that feat accomplished?
nine When you "use Wx::App" a wrapper class called Wx::App is created in Perl 6 which forwards method calls to Perl 5. You can inherit from this wrapper. 07:33
samcv can using Wx::App work though, because it tries to call a perl 5 sub? 07:34
nine Like in: niner.name/talks/Perl%205%20and%20P...-parser.pl
samcv sweet! 07:35
nine I don't know Wx::App, but I assume it should work just like HTML::Parser.
nine .tell holli cases like "use Wx::App:from<Perl5>; my $app = Wx::SimpleApp.new;" are exactly why I worked on lexical module loading mentioned in rakudo.org/2016/12/17/lexical-module-loading/ Now that that's out of the way I can improve Inline::Perl5 07:38
yoleaux nine: I'll pass your message to holli.
samcv nine++ 07:39
when is this landing in nom? 07:41
nine It did yesterday
samcv pulls 07:42
masak .oO( "I need this on my master branch yesterday!" )
mornin', #perl6 07:43
samcv morning 07:43
teksteiner good morning 07:44
andrzeju_ hello PERL!:) 08:05
nine andrzeju_: good morning 08:09
nine .tell holli I now understand the bug in Inline::Perl5 which causes your Wx app to fail. The subclass doesn't exist in Perl 5 and the Perl 5 constructor is called with "Wx::App" as package so $this->can( 'OnInit' ) will return the OnInit of the base class. Fixable but a bit involved. 08:29
yoleaux nine: I'll pass your message to holli.
DrForr .tell mr_ron I'm back from vacation, ping me re: roman numerals. 08:45
yoleaux DrForr: I'll pass your message to mr_ron.
ufobat is this a bad idea: token FilterExpr { <PrimaryExpr> | <FilterExpr> <Predicate> } because of the recursion in this token? and is this a bad idea esp because of backtracking? (just by having this in my grammar, not even matching against it, increases the execution time of .parse() from 7 to 19sec) 08:52
DrForr ufobat - Probably, yes. What language is this for, if I may be so bold? 08:58
I.E. there may well be a better way to do this.
lizmat news.ycombinator.com/item?id=13216924 # labster's advent post on HN 08:59
labster Hi lizmat
lizmat also clickbaits p6weekly.wordpress.com/2016/12/19/...christmas/ 09:00
labster o/
labster Happy Advent
\o
ufobat DrForr, i am playing around with xpath 09:01
DrForr Oh, cool. I was just wondering because that expression just might allow more than you intended. 09:02
ufobat DrForr, i am trying to figure out why a) its so slow b) my grammar ony matches when i use Grammar::Debugger github.com/ufobat/p6-XML-XPath
i just wrote down the spec in a perl grammar, not much thinking about it first and just give it a try.. 09:03
DrForr The first thing I see is that everything's written as a token. That's a bit odd to me, because tokens are usually single blocks of text. If you're in an XPath construct it's possible, but I'm not sure. 09:05
tadzik oh, someone did find that My Little Pony module, now I have to think of a prize :o 09:06
DrForr Sparkle glue? 09:07
arnsholt ufobat: It's a bad idea because it'll recurse infinitely if PrimaryExpr doesn't match 09:08
ufobat i tought so, so if there is recursion it must like token A { <B> | <C> <A> } 09:09
DrForr, what is the way to decide when a token is not sufficient? 09:11
jast only in a recursive descent / LL parser
DrForr Well, the thing is that's really just a way to generate arbitrary sequences of <B>|<C>, I *think*.
arnsholt Anyways, you can just expand it into FilterExpr { <PrimaryExpr> <Predicate>* } 09:12
DrForr And yea, BNF and LALR(n) aren't the same as PEGs.
arnsholt ufobat: More or less. You need to consume at least one more character before recursing back into A
jast that's a different expression, actually
arnsholt So it'd fail if <C> can match the empty string
ufobat AH! 09:13
DrForr arnsholt: I thought that was the case to, but <primary><Predicate><Primary> is allowed because of the recursion, and I didn't think he wanted that. That's why I was curious about the language.
ufobat: I generally follow the rule that a token is meant to be a single term like 123 or -23.7 or "foo bar", and anything else is a rule connecting tokens. 09:14
arnsholt A primary after the predicate isn't licenced by that FilterExpr rule
jast wouldn't it be: FilterExpr { <PrimaryExpr>* <Predicate> }
arnsholt jast: That's what I thought initially too 09:15
DrForr Oh, I ws reading backwards. My bad.
arnsholt But if you sketch the parse tree top-down, you'll see it
ufobat jast, probably, yeah :)
jast oh, yeah
arnsholt FE => FE Pred => FE Pred Pred => ...
jast man, reading grammars is hard :)
arnsholt Yeah, it's really hard to develop good intuitions about them
jast I actually think ordered choice instead of | makes it easier to understand them 09:16
not "easy", though
ufobat DrForr, but rules are "tokens with whitespaces" right? if so why is a rule "probably" better?
i thought my probelm is to identify when backtracking is required and when it isnt 09:17
jast because of the PEG-like capability's of P6 grammars you can often avoid left recursion a lot more easily than with traditional grammar definitions 09:18
dang, I did just put that apostroph there, didn't I? bad day, apparently...
arnsholt Where PEG-like is quantification of subrule matches? 09:18
DrForr It makes your intentions clearer, to start.
jast in this case, yeah 09:19
arnsholt That's easily expressible in both top-down and bottom-up CFG parsing though
jast it is, but with traditional definitions you have to split up your productions further, with this you can avoid that
arnsholt There's a PEG component in HLL::Grammar in NQP, but that's not directly available to Perl 6 grammars
jast (when using top-down parsing, at least. LR-type parsers don't care about left recursion, of course.) 09:20
DrForr BNF and other grammars go through hell to represent <X><Y>* and <X>+<Y> because of {reduce,shift}-reduce conflicts; PEGs don't have that problem. 09:20
jast neither do the other bottom-up techniques I can think of 09:21
ufobat let me refere to one of my first questions again. the speed issue. Grammar::Debugger tells me that i am not using the mentioned token, still the .parse() is much! slower with that token in it. is that "okay" or a bug?
arnsholt The thing some bottom-up algorithms doesn't like is empty productions
jast without knowing anything about the internals, I'd say it's something that could probably be improved on :)
ufobat having all my "wrong" tokens in my grammar without Grammar::Debugger it doesn't parse at all, but with G::D it does
arnsholt But the details of that escape me. It's been ages since I learned about that stuff 09:22
DrForr I'd say it was Grammar::Debugger interfering with your grammar. It modifies the grammar internally to inject debugging code, but that can change the grammar itself as well.
jast I don't know about all of the details either
arnsholt And I haven't had occasion to use them since, these alagorithms being pretty useless for natural languague =)
jast do you do other kinds of NLP, then? 09:23
I mean there are algorithms that can deal with ambiguities in a grammar... not that that makes your statement any less true :} 09:24
ufobat are there other ways of debugging a grammar without modifing it.. maybe an action class with a good sub FALLBACK?
arnsholt jast: I didn't do much parsing (recently left academia and became a developer =), but yeah for grammar-driven parsing you'd use other algorithms 09:25
DrForr ufobat: FWIW I've seen several cases of G::D interfering with existing grammars just as you're describing. I didn't hae the knowledge at the time to try to debug the problem so I stopped using the module and relied on a better test suite.
arnsholt Most notably CKY
jast I haven't done a lot of exotic parsing myself, but for a while I had these crazy ideas about creating a language with syntax that is fully mutable at runtime... 09:26
so I read a lot of papers about... things.
jast ufobat: if all else fails, you could try and involve a few extra pairs of eyes 09:27
DrForr jast: I have a module that does that on a drive somewhere, though it never got around to being completed.
arnsholt jast: "syntax ... fully mutable at runtime" Perl 6 you mean? =D 09:28
jast for extra difficulty my ideas involved static typing
with optional type inference
and I don't really have the patience to actually sit down and implement that with all of the crazy implications, when there are "close enough" languages that already exist 09:29
DrForr ufobat: I understand the idea of just doing black-box testing, but I think you'd be happier with a larger test suite probing just the .parse method - you can add a dynamic variable to dump the test output without having to test the entire find* layer.
jast one example being Perl 6, yes
ufobat okay :-) thanks for all the help and ideas, i am trying to avoid the left recursion first 09:30
DrForr jast: Apple Dylan tried something like that a *long* time ago, albeit not to much success.
lizmat news.ycombinator.com/item?id=13216924 # correction: tadzik's advent post
ufobat DrForr, absolutly! 09:31
jast I gave up on the idea of "fully" mutable after a while, anyway, because if syntax can be freely mutated by any module you use, you can run into nasty conflicts very quickly 09:32
ufobat is there a Test::* module that provides timeouts for methods? because its not fun testing something that goes into a infinite recusion till everything blowes up 09:33
DrForr ufobat: Also, check out github.com/drforr/perl6-ANTLR4/blo...t/03-ast.t for some other ideas. I need to finish rewriting it due to the fact that the code predates the GLR, so please don't take the general case seriously.
ufobat ty!
DrForr ufobat: Oo, good idea. I'm not aware of one, though usually when I'm dealing with a spin-lock like that it's inside the actual parser and not a set of mutually-recursing terms. 09:34
DrForr ufobat: Also the grammar itself may be of interest, as it's parsing an XML-like grammar then *generating* a Perl6-like grammar :) 09:36
El_Che you lost me at xml 09:37
goodmorning
ufobat morning 09:38
well i need to go back to p5 for work before i cna play around more :-) i am *really* thankful for all the comments on that :) 09:39
DrForr ufobat: Really I don't find that 1;1 translation of grammars works all that well from BNF-PEG, which is one of the deeper reasons why I decided to focus on other parsing tools. 09:40
DrForr .tell ufobat PathExpr should probably be reordered as well or rewritten to { <FilterExpr> [ [ '//' | '/' ] <RelativeLocationPath> ]? | <LocationPath> } 09:49
yoleaux DrForr: I'll pass your message to ufobat.
drrho just to test my understanding of TIE/UNTIE in Perl6: 09:50
is it correct that this functionality is covered by subclassing Array, List, Hash, etc. ? 09:51
moritz or implementing the Positional / Associative roles, yes 09:52
DrForr .tell ufobat '<MultipyOperator> on term 32 is a tyop for 'MultiplyOperator'. 09:53
yoleaux DrForr: I'll pass your message to ufobat.
drrho moritz: thx, this is actually REALLY nifty. 09:55
moritz drrho: docs.perl6.org/language/subscripts#Custom_types 10:01
DrForr .tell ufobat { <Step> %% [ '//' | '/' ] } # may improve clarity as well. 10:02
yoleaux DrForr: I'll pass your message to ufobat.
ufobat DrForr, your changes makes the grammar work, within 120sec and 50% memory of my laptop :p 10:40
yoleaux 09:49Z <DrForr> ufobat: PathExpr should probably be reordered as well or rewritten to { <FilterExpr> [ [ '//' | '/' ] <RelativeLocationPath> ]? | <LocationPath> }
09:53Z <DrForr> ufobat: '<MultipyOperator> on term 32 is a tyop for 'MultiplyOperator'.
10:02Z <DrForr> ufobat: { <Step> %% [ '//' | '/' ] } # may improve clarity as well.
DrForr Yay! 10:44
ufobat down to 10sec 10:49
DrForr Wow.
mst MULTIPY # map Inline::Python->new, 1..10; 10:51
ufobat 0,8sec 10:54
jast that's a difference
ufobat DrForr, you were to fast on FB , i'm down to 0.3 11:04
this sounds like a perfect moment for lunch break 11:05
DrForr [Citation added]
timotimo mst: doesn't python have some global state that'd mess up your multipys? 11:14
mst timotimo: DrForr's the one with the MultipyOperator, presumable he's got an overload that fixes that :D 11:15
DrForr Aroo?
timotimo oh, i get it :)
samcv mmm eggnog. tastes like Perl 6 :) 11:17
mst DrForr: <+yoleaux> 09:53Z <DrForr> ufobat: '<MultipyOperator> on term 32 11:18
DrForr Oh. That was ufobat's grammar. Phew, thought I was shanghaid into working on yet another project :) 11:19
titsuki_ bisect: my $a = Pointer[int32].new(10); $a.deref.say; 11:28
bisectable6 titsuki_, On both starting points (old=2015.12 new=a962928) the exit code is 1 and the output is identical as well
titsuki_, Output on both points: 04===SORRY!04=== Error while compiling /tmp/dX05SIba0f␤Undeclared name:␤ Pointer used at line 1␤
jnthn Needs a `use NativeCall` 11:30
titsuki_ jnthn: thx! 11:31
jnthn m: use NativeCall; my $a = Pointer[int32].new(10); $a.deref.say;
camelia rakudo-moar a96292: OUTPUT«Internal error: unhandled target type␤ in sub nativecast at /home/camelia/rakudo-m-inst-1/share/perl6/sources/51E302443A2C8FF185ABC10CA1E5520EFEE885A1 (NativeCall::Types) line 5␤ in method deref at /home/camelia/rakudo-m-inst-1/share/perl6/sources/51…»
jnthn And that I've no idea about. :)
titsuki_ jnthn: I see thx. 11:32
titsuki_ bisect: use NativeCall; my $a = Pointer[int32].new(10); $a.deref.say; 11:33
bisectable6 titsuki_, Bisecting by output (old=2015.12 new=a962928) because on both starting points the exit code is 1
titsuki_, bisect log: gist.github.com/d12ef28d4f5cd03605...d11a788565 11:34
titsuki_, (2015-12-25) github.com/rakudo/rakudo/commit/07...dc61f84053
notviki To those not subbed to Freenode's notices: read info freenode.net/news/PSA-brief-update-infra 11:52
notviki DrForr: so I take it we shall be expecting you to optimize src/Perl6/Grammar.nqp next? :) 11:52
DrForr And have to rewrite Perl6::Parser? Fat chance :) 11:55
notviki hm... perl6.wtf update failed... 11:58
+ ./perl6 nqp/MoarVM/tools/parse_coverage_report.p6 --annotations=setting coverage/full-cover gen/moar/m-CORE.setting
Usage:
nqp/MoarVM/tools/parse_coverage_report.p6 [--annotations=<Str>] <file> <source> [<filename>]
m: setting.say 11:59
camelia rakudo-moar a96292: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ setting used at line 1␤␤»
notviki weird
oh
m-CORE.setting is probably CORE.setting now
lizmat notviki: yeah, someone normalized the naming scheme 12:03
notviki MasterDuke did :)
notviki restarts the script
mscha m: my $r = ^42; .say for $r.min, $r.max, $r.minmax; # I know this works as documented, but it's not very dwimmy. 12:50
camelia rakudo-moar 99e33f: OUTPUT«0␤42␤(0 41)␤»
mscha Wouldn't it be better if ($r.min, $r.max) would be the same as $r.minmax, and have something like $r.lower and $r.upper that do what $r.min and $r.max do now? 12:52
lizmat mscha: please rakudobug this, so it will not fall through the cracks 12:53
jnthn It may well be more useful that way it is. 13:02
jnthn m: (1, 5, 3).minmax 13:02
camelia ( no output )
jnthn m: say (1, 5, 3).minmax
camelia rakudo-moar ece2c6: OUTPUT«1..5␤»
jnthn Consistent with "what are the min and max within the list this expands to" 13:03
Though...
m: say ^42 .minmax.WHAT 13:04
camelia rakudo-moar ece2c6: OUTPUT«===SORRY!===␤Method call must either supply a name or have a child node that evaluates to the name␤»
jnthn m: say (^42).minmax.WHAT
camelia rakudo-moar ece2c6: OUTPUT«(List)␤»
jnthn m: say (1, 3, 5).minmax.WHAT
camelia rakudo-moar ece2c6: OUTPUT«(Range)␤»
jnthn That's odd.
mscha Yes, I like minmax the way it is; I just think that (^42).max == 42 is wrong. (Should be 41, and something like .upper should be 42.) 13:05
notviki s: ^42, 'max', \() 13:20
SourceBaby notviki, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/main.nqp')␤ at <unknown>:1 (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
notviki s: ^42, 'max', \() 13:21
SourceBaby notviki, Something's wrong: ␤ERR: Unhandled exception: Missing or wrong version of dependency 'src/Perl6/Grammar.nqp' (from 'gen/moar/main.nqp')␤ at <unknown>:1 (/home/zoffix/services/sourceable/building-perl6/perl6.moarvm:<dependencies+deserialize>)␤
notviki -_-
notviki stupid robot 13:21
It probabably just fails to check $!exclude-max thing 13:22
m: say (1..5).max
camelia rakudo-moar ece2c6: OUTPUT«5␤»
notviki m: say (1..^5).max
camelia rakudo-moar ece2c6: OUTPUT«5␤»
notviki m: say (1^..5).min
camelia rakudo-moar ece2c6: OUTPUT«1␤»
notviki s: ^42, 'max', \() 13:22
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/5d08....moarvm#L1
notviki 0.o
that's... weird 13:23
m: (^42).^lookup('max' 13:24
camelia rakudo-moar ece2c6: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3(^42).^lookup('max'7⏏5<EOL>␤»
notviki m: (^42).^lookup('max').file
camelia ( no output )
notviki m: (^42).^lookup('max').file.say
camelia rakudo-moar ece2c6: OUTPUT«/home/camelia/rakudo-m-inst-1/share/perl6/runtime/CORE.setting.moarvm␤»
notviki bisect: (^42).^lookup('max').file.say
bisectable6 notviki, Bisecting by output (old=2015.12 new=5d084a7) because on both starting points the exit code is 0
notviki, bisect log: gist.github.com/f576db123a34f3c07f...8a621ae1b5
notviki, (2016-03-02) github.com/rakudo/rakudo/commit/fd...7e379b5038
notviki oohhhhh 13:25
There's no bug.
mscha: .min/.max on ranges indicate their min/max points. The whether or not the end points are excluded is a separate (and surprisingly private) attribute 13:26
Ah, there are methods for them excludes-min
m: my $r = ^42; dd [ $r.max, $r.excludes-max ] 13:27
camelia rakudo-moar ece2c6: OUTPUT«[42, Bool::True]␤»
mscha I know, but it's very undwimmy that minmax gives different values than min and max.
notviki umm.... but you just said you liked minmax :P
[Coke] japhb: less code, less time building docs.
notviki s: ^42, 'minmax', \() 13:28
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/5d08...ge.pm#L638
notviki 0.o
m: sink ^42 .minmax
camelia ( no output )
mscha Yes, I think the dwimmy thing would be: (^42).minmax == (0,41), (^42).max == 41, (^42).upper == 42.
notviki huh 13:29
notviki mscha: but 41 isn't max 13:29
m: say 41.5 ~~ ^42
camelia rakudo-moar ece2c6: OUTPUT«True␤»
mscha notviki: it is according to minmax.
notviki mscha: well, it's broken, I see in the code it's supposed to return a Failure
mscha m: say (^42).is-int; 13:30
camelia rakudo-moar ece2c6: OUTPUT«True␤»
mscha “If the Range is an integer range (as indicated by is-int), then this method returns a list with the first and last value it will iterate over (taking into account excludes-min and excludes-max). If the range is not an integer range, the method will return a two element list containing the start and end point of the range unless either of excludes-min or excludes-max are True in which case a Failure is returned.” 13:31
notviki OK, so nothing's broken then 13:32
mscha It behaves as documented, so in that respect nothing is broken, no. 13:33
It's just not very dwimmy.
notviki Well, what's the point of having a third method that does the same thing as the other two?
lizmat notviki: a point could be self-documenting code 13:34
mscha notviki: there already is a third method. ;-) 13:35
m: say (^42).int-bounds;
camelia rakudo-moar 5d084a: OUTPUT«(0 41)␤»
notviki heh
4th method then :P 13:36
notviki m: (^42.2).int-bounds.say 13:36
camelia rakudo-moar 5d084a: OUTPUT«(0 42)␤»
notviki m: (^42.2).minmax.say 13:37
camelia rakudo-moar 5d084a: OUTPUT«Cannot return minmax on Range with excluded ends␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
notviki m: (^42.2).max.say
camelia rakudo-moar 5d084a: OUTPUT«42.2␤»
marchelzo what's the best way to learn perl6
fast
notviki jumps into TARDIS and burns .minmax with fire
marchelzo i want the fast track
mscha m: say (^42).is-int;
camelia rakudo-moar 5d084a: OUTPUT«True␤»
mscha m: say (^42.2).is-int;
camelia rakudo-moar 5d084a: OUTPUT«False␤»
notviki marchelzo: learnxinyminutes.com/docs/perl6/ 13:38
marchelzo why is (^42) an int?
mscha method int-bounds: “Returns a Failure if it is not an integer range.”
[Coke] m: say (^42).WHAT
camelia rakudo-moar 5d084a: OUTPUT«(Range)␤»
notviki marchelzo: it's not
[Coke] ^^
mscha is-int: “Returns True if both end points are Int values.”
notviki marchelzo: is-int is a method on a Range object
marchelzo that is a misleading nme 13:39
name
notviki marchelzo: what would you have called it?
marchelzo is-int-range
notviki >_<
marchelzo endpoints-are-ints
mr_ron m: my \x = 11; say ⅹ; say x; my $Gordian = 1; my $Gordian-I = 2; say $Gordian-I -2; say $Gordian-Ⅰ -2; # confusion between letter x and I and roman numerals for some fonts
yoleaux 15 Dec 2016 20:17Z <nine> mr_ron: Your gist matches what I have lying around here locally
08:45Z <DrForr> mr_ron: I'm back from vacation, ping me re: roman numerals.
camelia rakudo-moar 5d084a: OUTPUT«10␤11␤0␤-2␤»
lizmat remembers an attempt to create a intrange class
notviki no-thanks-we-like-short-names-I-mean-you're-already-calling-it-on-a-Range-object 13:39
marchelzo so what
there's so much polymorphism in perl6 that doesn't help you much 13:40
for all i know is-int is a method on Mu or Any
mr_ron see www.software-path.com/roman-unicode...ation.html for rendering in more fonts ...
mscha m: my $r = ^42; say $r.minmax; say $r.is-int; say 41.5 ~~ $r; # inconsistent
camelia rakudo-moar 5d084a: OUTPUT«(0 41)␤True␤True␤»
notviki marchelzo: it may help to know Perl 6 before arguing whether we have shitty method names...
mr_ron I think this is really a font issue but wanted some other eyes to take a look. 13:41
marchelzo notviki: why?
i have an even shorter name that would be better 13:42
in-Z
notviki marchelzo: because you'd know we don't have methods for checking whether something is an int so assuming .is-int is a method on a Mu or Any for checking whether something is an Int object (or is it the native int?)
mscha marchelzo: .ℤ 13:43
marchelzo ok, but still, it reads as though you're asking whether the Range is an int. 13:44
not its endpoints
mscha: yeah but that's hard to type
notviki And asking whether Range is an int is SA?D>KJ< LSAHR: BRVEAUOWAIKg:%n &;2S#:qwl 13:45
DrForr mr_ron: Yes, 1 and I can be hard to distinguish, and there are a bunch of different X-looking characters in Unicode. I'm not sure what you're asking or suggesting though.
marchelzo notviki: exactly. so why are you doing it?
having is-int on string that checked /\d+/ would make sense for example, because then the string would literally represent a valid integer. but a range is never an integer. unless maybe the endpoints are both the /same/ integer. 13:46
notviki marchelzo: so you could come here every December and argue about our method names, of course. 13:47
marchelzo ?
notviki I see in 2015 you were arguing about .roll on a Bag being a poor name.
marchelzo haha really?
i don't remember that 13:48
why doesn't perl6 allow ? in method names? allowing - seems like it would pose even more challenges for the parser 13:50
awwaiid '-' has some limited placement rules that help, but it is hard on the parser for sure
mr_ron DrForr: the example tries to show code that looks very similar but gives different numerical results. It seems that nobody is very concerned though. Don't quite understand the use case for Unicode Nl numerals when you have a module that does that. 13:51
I guess it looks neat ...
s/Nl numerals/Nl numbers/
moritz marchelzo: it does, as long as you quote them
jnthn Allowing - in names isn't particularly hard on the parser - at least, it ain't provided you're parsing with a Perl 6 grammar :) 13:52
notviki m: say now - 1
camelia rakudo-moar af1501: OUTPUT«Instant:1482241981.597594␤»
notviki m: say now-1
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ now used at line 1. Did you mean 'not', 'HOW'?␤␤»
notviki :}
moritz marchelzo: but the question could be extend to any number of characters, and the answer is that you get more corner cases the more characters you allow
marchelzo: and - seems to be pretty common as a word separator 13:53
marchelzo ? would save you from the is- prefix
notviki marchelzo: we have .? safe-call operator
jnthn Would also be formally ambiguous with .?foo
awwaiid marchelzo: a prefix '?' does bool coercerion. Yeah, in rubyland they love the '?' ending on method names to eliminate the is- prefixes
moritz and if you try to read the code, your voice goes up to formulate a question after reading the method name, even if the sentence isn't finished
mst awwaiid: I kinda like it from lisps 13:54
awwaiid marchelzo: many of these broad language questions can be summarized as: it was certainly considered and this is what we ended up with so far 13:55
marchelzo jnthn: it wouldn't be ambiguous with .?foo if you only allowed trailing question marks
lizmat marchelzo: github.com/FROGGS/p6-Slang-Piersing
jnthn marchelzo: True. But we aren't going to, at least, not unless you quote it. :)
Or you write a slang, like lizmat linked, to tweak the language to enable it. :) 13:56
marchelzo how do you quote an identifier?
awwaiid lizmat++ # good language tweak link
jnthn With quotes
."foo"()
marchelzo why is that a thing?
notviki doesn't see lizmat linking anything :/
notviki now does 13:57
jnthn m: class C { method ::('m?') { say 42 } }; C.'m?'()
camelia rakudo-moar af1501: OUTPUT«42␤»
jnthn marchelzo: Primarily used to interpolate into the string
awwaiid marchelzo: ."dynamic-$method"()
jnthn For calls with late-bound names
marchelzo i see
marchelzo but could you do simply .$some-string 13:58
m: class C { method ::('m?') { say 42 } }; my $s = 'm?'; C.$s() 13:59
camelia rakudo-moar af1501: OUTPUT«No such method 'CALL-ME' for invocant of type 'Str'␤ in block <unit> at <tmp> line 1␤␤»
awwaiid m: class C { method ::('m?') { say 42 } }; my $m = 'm?'; C.$m()
camelia rakudo-moar af1501: OUTPUT«No such method 'CALL-ME' for invocant of type 'Str'␤ in block <unit> at <tmp> line 1␤␤»
jnthn marchelzo: That mans something different.
.$code-object() 14:00
awwaiid m: class C { method ::('m?') { say 42 } }; my $m = 'm?'; $real-m = C.^methods.first; C.$real-m()
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$real-m' is not declared␤at <tmp>:1␤------> 3od ::('m?') { say 42 } }; my $m = 'm?'; 7⏏5$real-m = C.^methods.first; C.$real-m()␤»
awwaiid m: class C { method ::('m?') { say 42 } }; my $m = 'm?'; my $real-m = C.^methods.first; C.$real-m()
camelia rakudo-moar af1501: OUTPUT«42␤»
DrForr mr_ron: Looking closer I can see that there's some confusion, but having spent time tracking down the creative ways students abuse Unicode I can assure you those are minor :) H*ll, U+10916 PHOENICIAN NUMBER ONE looks like a slash. 14:03
m: say 1𐤖3 14:04
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus postfix␤at <tmp>:1␤------> 3say 17⏏5𐤖3␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ stat…»
DrForr Hurr, r-to-l lossage? 14:04
notviki It's a No char, it can't be combined with other digits 14:05
DrForr Yeah, just saw that in proprties.
notviki m: say keys <a b c> ∖ <b c> 14:06
camelia rakudo-moar af1501: OUTPUT«(a)␤»
notviki Now THAT looks like slash
mr_ron m: say 3 - Ⅰ; 14:07
camelia rakudo-moar af1501: OUTPUT«2␤»
mr_ron m: say 3Ⅰ;
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus postfix␤at <tmp>:1␤------> 3say 37⏏5Ⅰ;␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ state…»
mr_ron Nl works like No ... planning to document later today I hope 14:08
DrForr But see what notviki just pointed out re: combining.
mr_ron Nd can be combined. No and Nl can't. If there is more to it please explain ... 14:09
notviki m: (^0x110000).grep(*.uniprop eq "Nl")».chr.say 14:11
camelia rakudo-moar af1501: OUTPUT«(ᛮ ᛯ ᛰ Ⅰ Ⅱ Ⅲ Ⅳ Ⅴ Ⅵ Ⅶ Ⅷ Ⅸ Ⅹ Ⅺ Ⅻ Ⅼ Ⅽ Ⅾ Ⅿ ⅰ ⅱ ⅲ ⅳ ⅴ ⅵ ⅶ ⅷ ⅸ ⅹ ⅺ ⅻ ⅼ ⅽ ⅾ ⅿ ↀ ↁ ↂ ↅ ↆ ↇ ↈ 〇 〡 〢 〣 〤 〥 〦 〧 〨 〩 〸 〹 〺 ꛦ ꛧ ꛨ ꛩ ꛪ ꛫ ꛬ ꛭ ꛮ…»
DrForr Probably mentioned in UTR25 re: how numbers combine?
notviki 0.o
mr_ron www.fileformat.info/info/unicode/ca...l/list.htm
notviki m: say ↀ + ↁ + ↂ + ↅ + ↆ + ↇ + ↈ + 〇 + 〡+ 〢+ 〣+ 〤 +〥 +〦 +〧 +〨 +〩 14:12
camelia rakudo-moar af1501: OUTPUT«166101␤»
notviki that's just sick
u: ↈ
unicodable6 notviki, U+2188 ROMAN NUMERAL ONE HUNDRED THOUSAND [Nl] (ↈ)
notviki, U+0020 SPACE [Zs] ( )
notviki u: ↂ
unicodable6 notviki, U+2182 ROMAN NUMERAL TEN THOUSAND [Nl] (ↂ)
notviki didn't even know about these
u: 〢 14:13
unicodable6 notviki, U+3022 HANGZHOU NUMERAL TWO [Nl] (〢)
mr_ron github.com/perl6/roast/blob/da6fde.../numbers.t
dalek c: 6524f06 | (Zoffix Znet)++ | doc/Language/unicode_texas.pod6:
Document Nl digits can be used just like No ones
14:15
synopsebot6 Link: doc.perl6.org/language/unicode_texas
DrForr m: multi infix:<⁢>($x,$y) {{$x * $y };} say 2⁢3; 14:17
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3multi infix:<⁢>($x,$y) {{$x * $y };}7⏏5 say 2⁢3;␤ expecting any of:␤ infix␤ infix stopper␤ …»
DrForr Wow. Paste buffer screws *that* up royally.
notviki perl6.party/post/Anguish--Invisible...Data-Theft 14:18
m: sub prefix:<⁣> is tighter(&infix:<or>) { say $^a }; ⁣my $x = 42;
camelia rakudo-moar af1501: OUTPUT«42␤»
notviki m: sub infix:<⁣> { $^a + $^b }; say 2⁣2; 14:19
camelia rakudo-moar af1501: OUTPUT«4␤»
DrForr It looks like this though: multi infix:<>($x,$y){$x*$y); say 23; # returns 6.
notviki m: sub infix:<⁣> { $^a + $^b }; say 1⁣2⁣3⁣4⁣5⁣6⁣7⁣8⁣9⁣0; 14:20
DrForr (if you fill in the right character between <> and '2' and '3'.)
camelia rakudo-moar af1501: OUTPUT«45␤»
notviki m: sub infix:<⁣> { $^a * $^b }; say 1⁣2⁣3⁣4⁣5⁣6⁣7⁣8⁣9⁣ == [*] ^9+1; 14:21
camelia rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Preceding context expects a term, but found infix == instead␤at <tmp>:1␤------> 3{ $^a * $^b }; say 1⁣2⁣3⁣4⁣5⁣6⁣7⁣8⁣9⁣ ==7⏏5 [*] ^9+1;␤»
notviki m: sub infix:<⁣> { $^a * $^b }; say 1⁣2⁣3⁣4⁣5⁣6⁣7⁣8⁣9 == [*] ^9+1;
camelia rakudo-moar af1501: OUTPUT«True␤»
notviki \o/
marchelzo what is $^a
notviki marchelzo: docs.perl6.org/language/variables#...entry-%24^ 14:22
[Coke] any feedback on github.com/perl6/doc/pull/1059? do we need to push it to prod to get feedback? (I'd rather not do that.)
notviki [Coke]: well, that's the only sane way to play with it, isn't it? I'm not waiting an hour to build my own copy of docs 14:23
[Coke] I can build the docs in 5m here (assuming I've done it once before)
so, yikes.
I mean, if you're availble for testing right now, go ahead and pull the trigger? :)
notviki ehehe 14:24
[Coke] I can guarantee it sucks less than the last version, which says not much.
notviki [Coke]: does the browser freeze up when you type "me" into the search box?.
[Coke] notviki: let me double check.
[Coke] notviki: when building docs locally, turn off syntax highlighting and call htmlify directly (don't need to build bigpage for docs) 14:25
notviki Are you still double checking or.... ? 14:30
[Coke] notviki: "perl6 htmlify --no-highlight" here takes 5m18s 14:31
Just finished.
notviki [Coke]: if you built it before, you said?
I don't have anything built 14:32
[Coke] no; 'me' is super fast here.
notviki OK. Well....
[Coke] notviki: the first time it has to build the type graphs. (another reason I want to kill the hard work there.)
dalek c: b8bd868 | coke++ | / (3 files):
Switch to sift4 for fuzzy searching

Try to avoid some degenerate cases, don't use fuzzy search on small search terms, don't search too deep on fuzzy checks.
c: c8ec3c7 | coke++ | / (16 files):
Merge branch 'master' into coke/levenshtein
c: dd0aa1d | coke++ | xt/trailing-whitespace.t:
This file no longer exists
c: ed11e4a | (Zoffix Znet)++ | / (4 files):
Merge pull request #1059 from perl6/coke/levenshtein

Coke/levenshtein
marchelzo what is the difference between my $a = ... and my @a = ... 14:36
is it just a hint for the parser
to allow things like my @a = 1, 2, 3
[Coke] wonders the easiest way to discover when the latest doc build is done.
m: my $a = 1,2,3;
camelia rakudo-moar 899864: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 2 in sink context (lines 1, 1)␤Useless use of constant integer 3 in sink context (lines 1, 1)␤»
[Coke] m: my $a = (1,2,3);
camelia ( no output )
marchelzo right, is that all it does?
its only significance is in changing the way the expression to the right of the = is parsed? 14:37
notviki star: use LWP::Simple; LWP::Simple.get("doc.perl6.org").contains("ed11e4a") and say "It's done!" 14:38
camelia star-m 2016.10: OUTPUT«501 Protocol scheme 'https' is only supported if IO::Socket::SSL is installed <URL:doc.perl6.org/>␤␤ in method request_shell at /home/camelia/star-2016.10/share/perl6/site/sources/2A99795C71C31D3D9A9D39DCFC0379F0F4CDEDC5 (LWP::Simple) line 54␤ …»
notviki >:(
DrForr "it" being the change between $a and @a? I think you've got the wrong end of the stick here. @a and $a is the important bit here, the RHS can have the same text no matter what the LHS is.
[Coke] m: my @a = 1,2,3; # for parity 14:39
camelia ( no output )
marchelzo my @a = 1, 2, 3; is parsed differently than my $a = 1, 2, 3;
[Coke] I am surprised those act differently, actually. :)
marchelzo but is that the only difference
notviki m: my @a = 1; @a.^name.say; my $a = 1; $a.^name.say
camelia rakudo-moar 899864: OUTPUT«Array␤Int␤»
marchelzo yes
but after initialization, they are the same, right? 14:40
my @a = 1, 2, 3; is the same as my $a = [1, 2, 3];
DrForr marchelzo: @a and $a are different variables. They're not "the same" in any sense of the word. 14:41
marchelzo right but apart from the names
[Coke] DrForr: well, they're more the same than they are in p5. :)
marchelzo the fact that it was declared with @ doesn't change its behavior
right?
DrForr One assigns to an array, the other assigns to an array *reference*. 14:42
[Coke] DrForr: um.
marchelzo so in 'my $a = [1, 2, 3];', $a is not an array?
[Coke] m: my @a = 1, 2, 3; my $a = [1, 2, 3]; say @a.WHAT; say $a.WHAT;
camelia rakudo-moar 899864: OUTPUT«(Array)␤(Array)␤»
notviki marchelzo: no, not right.
dalek c: 608dd5c | MasterDuke17++ | doc/Language/performance.pod6:
Fix typo in SQL profile output demo
synopsebot6 Link: doc.perl6.org/language/performance
notviki m: my @a = 1, 2, 3; my $a = [1, 2, 3]; for @a { .say }; for $a { .say }
camelia rakudo-moar 899864: OUTPUT«1␤2␤3␤[1 2 3]␤»
marchelzo notviki: then what is an array reference? 14:43
mscha m: my @a = 1,2,3; my $a = [1,2,3]; say @a.perl; say $a.perl;
camelia rakudo-moar 899864: OUTPUT«[1, 2, 3]␤$[1, 2, 3]␤»
DrForr Sigh.
notviki marchelzo: I don't know. Perl 6 doesn't have references.
m: my @a = 1, 2, 3; my $a = [1, 2, 3]; sub foo (+@a) { dd @a }; foo @a 14:44
camelia rakudo-moar 899864: OUTPUT«[1, 2, 3]␤»
marchelzo so $a and @a differ only in name and how the RHS of their initialization will be interpreted?
notviki m: my @a = 1, 2, 3; my $a = [1, 2, 3]; sub foo (+@a) { dd @a }; foo $a
camelia rakudo-moar 899864: OUTPUT«[[1, 2, 3],]␤»
DrForr "only"... That seems to be pretty darn important to me. 14:45
marchelzo ok but that's wrong apparently
why does $a become [[1, 2, 3],] in that example
notviki Because the array is itemized 14:46
marchelzo itemized
mst m: my $a = [1, 2, 3]; sub foo (+@a) { dd @a }; foo $a
camelia rakudo-moar 899864: OUTPUT«[[1, 2, 3],]␤»
mst m: my $a = [1, 2, 3]; sub foo (+@a) { dd @a }; foo |$a
camelia rakudo-moar 899864: OUTPUT«[1, 2, 3]␤»
DrForr marchelzo: $a doesn't "become" in that example, it's just one of the arguments in the list.
marchelzo yes
DrForr $a is still [1,2,3] in the example, it doesn't turn into [[1,2,3],]. The [..,] is added because $a is one of the arguments in the list. 14:47
dalek c: 6fdea58 | coke++ | html/js/sift4-common.js:
add missing file
[Coke] ^^ that needs to percolate before search will work. :| 14:48
marchelzo what does the + mean in the parameter @a? 14:48
notviki [Coke]: I did magic... 14:50
[Coke]: now it tells me docs.perl6.org/js/levenshtein.js?v=1 is not found
oh nm
[Coke] yes, I removed that.
whew.
got half of it right. thanks for the magic.
notviki oh heh 14:51
Masterduke's commit undid my magic :)
notviki magiks again
Works fine for me (performance-wise) 14:52
[Coke] so, short stuff uses the same old mechanism. longer things use sift4, falling back to the old 'contains' logic. so now 'me' and 'starts_with' both work. 14:52
notviki marchelzo: docs.perl6.org/type/Signature#Sing...ule_Slurpy 14:53
And I think this is a more detailed explanation docs.perl6.org/language/functions#...onventions 14:54
pmurias marchelzo: re $foo."method_name" it's also useful for calling method on objects from other languages 15:04
marchelzo other languages? 15:05
pmurias for example Ruby or Perl 5 15:06
marchelzo: we have modules like Inline::Perl5 and Inline::Ruby 15:07
marchelzo i see
dalek c: f140dd4 | coke++ | doc/Language/5to6-perlfunc.pod6:
split up 'sem*' header.

resolves #1058
15:12
synopsebot6 Link: doc.perl6.org/language/5to6-perlfunc
tadzik ahhah 15:57
I had a custom-drawn My Little Pony for the advent post contest winner 15:58
notviki ... advent post contest?
tadzik perl6advent.wordpress.com/2016/12/...g-the-gap/ look for [1]
notviki I guess this is where I show that I don't have the stamina to read an advent post daily :) 15:59
tadzik I don't blame you :) 16:00
there's too many cool calendars to keep track sometimes
notviki tadzik: so who drew that, you? 16:01
tadzik nah, a friend who actually can draw :) 16:02
notviki hehe :) 16:03
perlpilot tadzik++ nice voice in that article.
notviki I actually wrote some Perl 6 code last night. First time since end of July :) 16:05
Alerter IRC bot for when a timed mission for a rare resource in a game I play shows up: github.com/zoffixznet/warframe-ale...r/alert.p6 16:06
tadzik perlpilot: hehe, thanks :) I first intended it as one little flavour line and then just couldn't contain myself :P 16:07
notviki
.oO( Santa Claus Magical factory has redshift... is it because it's moving away from us at very fast speed? )
16:21
Nice article, but IME that P5-P6 compat isn't all that nice and shiny. 16:25
For starters, I had to recompile my perl5 with fPIC; I dunno if stock perl5 dists have installed comes with that. 16:26
But also I had some hairpulling when working with Mojolicious's templates where you get Perl 6 objects in Perl 5 land, basically
and, I forget who it was (lead dev of Catalyst?), who had trouble getting his apps to work 16:27
John Napiorkowski. 16:28
jnap_
perlpilot -fPIC should be fairly common IMHO. 16:31
notviki good
timotimo what about -fPIE? :) 16:32
notviki All I know is I run "perlbrew install perl-stable -Duseshrplib" and stuff works. I've no idea what it enables where 16:33
I mean "perlbrew install perl-stable -Duseshrplib -Dusemultiplicity"
notviki looks at timestamp on perl6.wtf 16:35
Seems like the script still didn't make it :(
nine notviki IME distros usually compile with -fPIC. Actually they should compile everything that way, since it's a precondition for ASLR which should be turned on universally but sadly isn't. 16:36
tadzik my system perl has shrplib enabled, and usemultiplicity=define, whatever that means
notviki nine: cool 16:37
jnap_ notviki: I think nine has done a lot of work around Catalyst / Perl6 integration 16:43
I really don't consider myself dev lead on that, I just fix problems when I spot them, and hopefully without adding new ones :) 16:44
perlpilot jnap_: cat wrangler?
jnap_ I think the biggest issue is the intellectual different between subroutine attributes in Perl5 and Perl6 16:45
perlpilot has no idea who contributes to Catalyst anymore
jnap_ pretty much nobody, I can't seem to find stuff people besides myself are excited about, or make excitement. Help /suggestions welcomed 16:46
nine Well Catalyst usually just works. Last time it's caused me issues was years ago. 16:47
notviki perlpilot: did you enjoy the economy lesson on that grant proposal? :) 16:48
perlpilot more like annoyed by it, but whatever. I said what I wanted to say
jnap_ nine: it definitely works, just I have OCD over a few things :) 16:49
notviki I don't get what the person's point was in that lesson. "The benefits derived from the existence of this book are additive".. well, OK, so what are these supposed benefits?
considering the grant doesn't contribute to book's existence. 16:50
nine jnap_: well, same here. It's just that don't have time to give in to it all that often ;)
holli sometimes i put a slice of cheese on my head and pretend i'd be a sandwich 16:53
yoleaux 07:38Z <nine> holli: cases like "use Wx::App:from<Perl5>; my $app = Wx::SimpleApp.new;" are exactly why I worked on lexical module loading mentioned in rakudo.org/2016/12/17/lexical-module-loading/ Now that that's out of the way I can improve Inline::Perl5
08:29Z <nine> holli: I now understand the bug in Inline::Perl5 which causes your Wx app to fail. The subclass doesn't exist in Perl 5 and the Perl 5 constructor is called with "Wx::App" as package so $this->can( 'OnInit' ) will return the OnInit of the base class. Fixable but a bit involved.
notviki holli: but sandwiches have cheese in the middle, not top! 16:55
holli there can never be enough cheese and i am totally cheesy 16:56
notviki Sounds like you're better off to put bread on your head then... 16:57
notviki Why do you want to pretend to be a sandwich? 17:01
japhb notviki: github.com/jonathanstowe/META6 17:07
GAH
notviki: www.foodnetwork.com/recipes/food-ne...ecipe.html
Sandwich classically made with the cheese on top.
notviki But that page calls it "tuna melt", not "tuna sandwich" 17:09
And even the dictionary defined 'sandwich' verb as "to insert between two other things"
japhb notviki: en.wikipedia.org/wiki/Open_sandwich 17:10
japhb It's possible this is a regional way of using the name, but note that the example on that last wiki page is Norwegian. 17:11
notviki But that wiki page is for "OPEN sandwich" 17:16
en.wikipedia.org/wiki/Sandwich
notviki :/ 17:25
The email from Kickstarter asking how I want to receive drafts of the book saying "comment here" next to a link that leads to a Kickstarter page, but if I visit it, it says "for backers only [for $50 etc etc tiers]", even though I'm a backer at $50 tier 17:26
japhb does his best imitation of Kang and/or Kodos: "I SAY IF A HUMAN WANTS TO PUT CHEESE ON TOP OF A SINGLE SLICE OF BREAD AND CALL IT A SANDWICH, IT IS A SANDWICH! ALSO, VOTE FOR SENATOR KA ... BOB DOLE!"
notviki has no idea who either Kang or Kodos is 17:27
japhb Recurring characters on The Simpsons -- an alien couple that takes over the US election in a "Treehouse of Horror" episode, among other things. 17:28
notviki and the "survey" link just lands me on the kickstarter home page 17:30
Fucking scam this shit is. 17:31
Ah. I was logged in under a wrong account. 17:32
colomon Probably the only Simpsons episode I quote more often that the Kang / Kodos election is the Cromulent one. 17:35
jonadab has actually never watched an entire Simpsons episode but is familiar with the word "cromulent" from other contexts. 17:36
notviki It's a cromulent word... 17:38
jonadab Yes. 17:40
colomon perfectly cromulent, even
jonadab And even if it's not listed in many dictionaries, the reader can generally glork the general piggandisp. 17:40
notviki Is there a way to give a sub instead of a block to whatever? 18:08
I mean whenever
m: class { method foo { start react { whenever Supply.interval(.1) sub { rand < .5 and return; say "hi"; } } } }.foo; sleep 1; 18:09
camelia rakudo-moar 0745ae: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3art react { whenever Supply.interval(.1)7⏏5 sub { rand < .5 and return; say "hi"; }␤ expecting any of:␤ block or pointy block␤ infix␤ …»
notviki just spotted a bug in code that avoided requirement of the `sub` with `when`, but left the `return` in :o
m: class { method foo { start react { whenever Supply.interval(.1) { when rand < .5 { say "fail"; return; }; say "hi"; } } } }.foo; sleep 1; 18:10
camelia rakudo-moar 0745ae: OUTPUT«hi␤hi␤fail␤»
notviki ^ with the fail condition being network failure :) so instead of sleeping for 5 minutes and retrying my app would just... stop doing stuff
m: class { method foo { start Supply.interval(.1).tap: sub ($) { if rand < .5 { say "fail"; return; }; say "hi"; } } }.foo; sleep 1; 18:11
camelia rakudo-moar 0745ae: OUTPUT«hi␤hi␤hi␤hi␤fail␤hi␤fail␤fail␤fail␤fail␤»
notviki There's more than one way to skin a class, I s'pose 18:12
notviki m: start react whenever Supply.interval(.1) {sub { rand < .5 and say "fail" and return; say "hi" }()}; sleep 1 18:21
camelia rakudo-moar 0745ae: OUTPUT«fail␤hi␤fail␤fail␤fail␤hi␤hi␤fail␤fail␤hi␤»
notviki :)
jnthn Since whenever is a loop we should really be able to say `next` in it 18:29
And `last` to unsubscribe to further events
notviki :o
jnthn I can't remember if I actually got around to that
If not, file me an RT :) 18:30
notviki m: start react whenever Supply.interval(.1) { rand < .5 and say "fail $_" and next; say "hi $_" }; sleep 1
camelia rakudo-moar 0745ae: OUTPUT«hi 0␤fail 1␤»
notviki m: start react whenever Supply.interval(.1) { rand < .5 and say "fail $_" and next; say "hi $_" }; sleep 1
camelia rakudo-moar 0745ae: OUTPUT«fail 0␤»
notviki m: start react whenever Supply.interval(.1) { rand < .5 and say "fail $_" and next; say "hi $_" }; sleep 1
camelia rakudo-moar 0745ae: OUTPUT«fail 0␤»
notviki interesting
jnthn: BTW, someone asked a few days back and I wasn't 100% sure... It is OK to have ^ start blocks like that one? The ones that aren't awaited by anything or ones that can be still running when program exits 18:31
'cause in Perl 5 forking willi-nilly leads to zombies and the question was whether that aflicted the start blocks
jnthn It's not forking, it's just scheduling work on the thread pool :) 18:32
notviki OK :)
jnthn The main reason it's not "OK" is that start returns a Promise
And any errors will break that Promise
But if nothing cares...you'll silently ignore errors
(Unless you've a CATCH) 18:33
But in terms of leaks, no, there's not an issue
japhb
.oO( If a Promise errors in sink context and there's no block there to CATCH it .... )
jnthn :) 18:34
Xliff Vat is "sink context"?
notviki m: 42
camelia rakudo-moar e8573e: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant integer 42 in sink context (line 1)␤»
Xliff Is that something like "$a + 2"
notviki Xliff: do you know Perl 5? It's like void context in there 18:35
Xliff OK, so the output of an expression that goes nowhere?
notviki yeah
Xliff kk
geekosaur sink context means you used an expression in a context where it will be ignored
Xliff notvikiZoffixBot++
geekosaur ...where its value/result will be ignored
jnthn We have pondered whether sinking a Promise should do something like .then({ .status == Broken && .cause.rethrow })
japhb Was that the royal we?
jnthn Pretty sure TimToady has suggested it at some point as well as me. :-) 18:36
jnthn So, only if you think we're royalty :P 18:36
notviki :)
japhb And yeah, I'd like that, as long as there's a decent way to silence it on purpose (quietly?)
jnthn m: class C { method sink() { say 'here' } }; C.new; 18:37
camelia rakudo-moar e8573e: OUTPUT«here␤»
jnthn m: class C { method sink() { say 'here' } }; quietly C.new;
camelia rakudo-moar e8573e: OUTPUT«here␤»
jnthn Alas no :)
japhb I find that in my concurrent code, the biggest problem I have during development is figuring out what exactly happened in some dead subtask.
notviki m: class C { method sink() { say 'here' } }; $ = C.new; 18:38
camelia ( no output )
jnthn japhb: Did the recentish improvements that made an unhandled broken Promise display both the stack trace of the point of the cause *and* the point the result was obtained help at all? 18:39
notviki I notice the location is missing in those. 18:40
m: await start { die "what went wrong" }
camelia rakudo-moar e8573e: OUTPUT«===SORRY!===␤what went wrong␤»
jnthn o.O
m: await start { die "what went wrong" }; CATCH { default { say .WHAT } } 18:41
camelia rakudo-moar e8573e: OUTPUT«(AdHoc+{Broken})␤»
jnthn wat, it even went and attached the correct info do it
japhb jnthn: Yes, although I would sometimes see the same backtrace in both cases. I don't offhand recall what mode those cases special.
jnthn m: await start { die "what went wrong" }; CATCH { default { .say } }
camelia rakudo-moar e8573e: OUTPUT«Tried to get the result of a broken Promise␤ in block <unit> at <tmp> line 1␤␤Original exception:␤ what went wrong␤ in block at <tmp> line 1␤␤»
jnthn Why on earth does it say SORRY rather than showing that? :/
The .gist is even correct 18:42
japhb Actually, I've seen that a lot
jnthn I'm sure it didn't do that when I originally added it :(
japhb Nodnod
jnthn wonders where it's deciding it's compile time... 18:43
notviki m: await start { die "what went wrong" }; CATCH { default { say .backtrace && .backtrace.is-runtime } }
camelia rakudo-moar e8573e: OUTPUT«False␤»
japhb puts a bet on "It actually decides it's not not compile time"
notviki m: await start { die "what went wrong" }; CATCH { default { say .backtrace } }
camelia rakudo-moar e8573e: OUTPUT«Backtrace.new␤»
notviki m: await start { die "what went wrong" }; CATCH { default { say so .backtrace } }
camelia rakudo-moar e8573e: OUTPUT«True␤»
jnthn m: await start { die "what went wrong" }; CATCH { default { say .backtrace.is-runtime } } 18:44
camelia rakudo-moar e8573e: OUTPUT«False␤»
notviki Looks like it's just looks that it's not is-runtime backtrace here: github.com/rakudo/rakudo/blob/nom/...on.pm#L345
jnthn Odd
notviki m: BEGIN %*ENV<RAKUDO_EXCEPTIONS_HANDLER>='JSON'; await start { die "what went wrong" }; 18:45
camelia rakudo-moar e8573e: OUTPUT«{␤ "X::AdHoc+{X::Promise::Broken}" : {␤ "payload" : "what went wrong",␤ "message" : "what went wrong",␤ "result-backtrace" : " in block <unit> at <tmp> line 1\n"␤ }␤}»
notviki neat
jnthn m: await start { die "what went wrong" }; CATCH { default { say .backtrace.full } } 18:47
camelia rakudo-moar e8573e: OUTPUT« in method throw at SETTING::src/core/Exception.pm line 63␤ in sub die at SETTING::src/core/control.pm line 179␤ in block at <tmp> line 1␤ in block at SETTING::src/core/Promise.pm line 175␤ in block at SETTING::src/core/ThreadPoolScheduler.…»
jnthn m: await start { die "what went wrong" }; CATCH { default { say .backtrace.full ~~ /THREAD-ENTRY/ } }
camelia rakudo-moar e8573e: OUTPUT«5===SORRY!5===␤Unrecognized regex metacharacter - (must be quoted to match literally)␤at <tmp>:1␤------> 3default { say .backtrace.full ~~ /THREAD7⏏5-ENTRY/ } }␤Unable to parse regex; couldn't find final '/'␤at <tmp>:1␤------> 3efaul…»
jnthn m: await start { die "what went wrong" }; CATCH { default { say .backtrace.full ~~ /THREAD\-ENTRY/ } }
camelia rakudo-moar e8573e: OUTPUT«Nil␤»
notviki jnthn: maybe this Backtrace.new needs the runtime attr set? github.com/rakudo/rakudo/commit/ab...9dcb11R129 18:51
or "something" set
m: Backtrace.new.is-runtime.say
camelia rakudo-moar e8573e: OUTPUT«True␤»
notviki oh :| never mind
jnthn It's pretty odd 18:52
The nqp::backtrace output is actually missing things I'd expect to see
oh wait, no it's not
I misread
m: say (anon sub foo()).name
camelia rakudo-moar e8573e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3say (anon sub foo()7⏏5).name␤ expecting any of:␤ new name to be defined␤»
jnthn m: say (anon sub foo() { }).name
camelia rakudo-moar e8573e: OUTPUT«foo␤»
notviki bets $5 it's the `but` operator 18:53
s: &infix:<but>
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/e857...ors.pm#L47
notviki s: Mu, 'clone' 18:54
SourceBaby notviki, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Mu, Str); none of these signatures match:␤ ($thing, Str:D $method, Capture $c)␤ ($thing, Str:D $method)␤ (&code)␤ (&code, Capture $c)␤ in block <unit> at -e line 6␤␤
notviki dammit
s: 1, 'clone'
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/e857...Mu.pm#L625
jnthn Yeah, the last frame nqp::backtrace returns is the THREAD-ENTRY that we're looking for
But somehow it ends up not getting into the post-processed set of Backtrace::Frames
japhb notviki: Need a Mu or \ on that 'thing'? 18:55
notviki committable6: 0c75e5d m: await start { die "what went wrong" }
committable6 notviki, ¦«0c75e5d»: ===SORRY!===␤what went wrong «exit code = 1»
notviki OK, so it wasn't me messing up when I modified .clone :} 18:56
committable6: abf6caf06eb7 m: await start { die "what went wrong" }
committable6 notviki, ¦«2015.12,2016.02,2016.03,2016.04,2016.05,2016.06,2016.07.1,2016.08.1,2016.09,2016.10»: what went wrong␤ in block <unit> at /tmp/wHdDa0A1PC line 1␤ «exit code = 1»␤¦«2016.11,2016.12,HEAD»: ===SORRY!===␤what went wrong «exit code = 1»
notviki wat
AlexDaniel, your robot is strange 18:57
committable6: abf6caf m: await start { die "what went wrong" }
committable6 notviki, ¦«2015.12,2016.02,2016.03,2016.04,2016.05,2016.06,2016.07.1,2016.08.1,2016.09,2016.10»: what went wrong␤ in block <unit> at /tmp/wi98JHSSpx line 1␤ «exit code = 1»␤¦«2016.11,2016.12,HEAD»: ===SORRY!===␤what went wrong «exit code = 1»
lucasb committable6: abf6caf06eb7 await start { die "what went wrong" }
committable6 lucasb, ¦«2015.12,2016.02,2016.03,2016.04,2016.05,2016.06,2016.07.1,2016.08.1,2016.09,2016.10»: what went wrong␤ in block <unit> at /tmp/FeJTyfHcXJ line 1␤ «exit code = 1»␤¦«2016.11,2016.12,HEAD»: ===SORRY!===␤what went wrong «exit code = 1»
jnthn Since we're losing the last frame it smells a tad off-by-one-ish
lucasb jnthn: github.com/rakudo/rakudo/commit/ab...80e5efecbf 18:59
notviki lucasb: that's teh commit that added better error messages :) 19:00
lucasb bisectable6 pointed to it
ahh :)
notviki m: sub (\a) {}(Mu) 19:01
camelia rakudo-moar e8573e: OUTPUT«Type check failed in binding to a; expected Any but got Mu (Mu)␤ in sub at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
notviki japhb: what do you mean by "\"?
ohhh. heh, I see the glitch in bot 19:04
It's spots "6c" in the commit SHA and thinks that's all I gave it
japhb notviki: Sorry, braino on my part.
dalek ateverable/zoffixznet-patch-1: fd56f80 | (Zoffix Znet)++ | Whateverable.pm6:
Prevent erroneous identification of a commit SHA as 6.c

To prevent glitches like this: irclog.perlgeek.de/perl6/2016-12-20#i_13774319
19:07
jnthn Ah, I mighta found it. 19:09
notviki \o/ 19:10
0.o 19:12
buggable seems to have dropped off, but I still see it's able to see this channel's log in its terminal output
notviki oh 19:13
Oooohh
I turned on nickname enforser in nickserv that's why
jnthn Yay, got a fix
notviki \o/
jnthn spectesting
I guess it could use a test, but I need to cook noms 19:14
Anyone want to task-steal the test writing? :)
notviki Yes, I can. 19:15
dalek ateverable: 57c735d | (Zoffix Znet)++ | Whateverable.pm6:
Prevent erroneous identification of a commit SHA as 6.c (#84)

To prevent glitches like this: irclog.perlgeek.de/perl6/2016-12-20#i_13774319
19:15
jnthn notviki: Thanks! :-) 19:20
Fix pushed
notviki buggable: speed 19:26
buggable notviki, ▃▄▃▃▃▃▄▅▄▄▄▅▃▄▄▃▄▃▅▄▄▄▄▂▂▃▃▂▃▃▃▃▃█▁▁▂▂▁▁▂▁▂▁▂▂▁▁▁▂ data for 2016-11-30–2016-12-20; variance: 6.053s–7.592s
notviki buggable: eco
buggable notviki, Out of 760 Ecosystem dists, 126 have warnings and 0 have errors. See modules.perl6.org/update.log for details 19:27
RabidGravy has is-deeply changed with regard to hashes in the last few weeks? 19:36
I had a dumb test that has just started failing 19:37
lucasb Test.pm6 history doesn't show any recent change. do you have an example? 19:41
lucasb ah, there's a5073f9615 "Add Seq candidates to is-deeply to .cache them" 19:41
idk if it's related 19:42
notviki Nope 19:45
And that was awhile back IIRC
notviki RabidGravy: we fixed autovivication bug in hash arrays.... 19:46
RabidGravy it was a stupid test anyway 19:47
lizmat star-m: my $a; $a[*-0] = 42; dd $a
camelia star-m 2016.10: OUTPUT«Array $a = $[Any, 42]␤»
lizmat m: my $a; $a[*-0] = 42; dd $a
camelia rakudo-moar b8df3a: OUTPUT«Array $a = $[42]␤»
notviki I guess in anything :) 19:48
lizmat yup
loveperl How to know if a variable is not empty? 19:56
moritz define "not empty" please
notviki loveperl: what do you mean by empty?
gfldex m: my $a = 1; say so $a ~~ Empty; 19:57
camelia rakudo-moar b8df3a: OUTPUT«False␤»
loveperl That is not null
notviki loveperl: well, what's full :)
gfldex: that's very confusing :/
gfldex deconfusing link: docs.perl6.org/language/typesystem...efinedness 19:58
RabidGravy m: my $a; say $a.defined
camelia rakudo-moar b8df3a: OUTPUT«False␤»
moritz loveperl: it might be 'with $x { ... }' or 'if $x { ... }' depending on your use case
loveperl: mostly if you want to consider 0 and '' "empty" or not 19:59
notviki m: my $a = Failure.new; say $a.defined
camelia rakudo-moar b8df3a: OUTPUT«False␤»
moritz is 0 null?
gfldex we don't got null
the whole point of the typesystem of Perl 6 is that we don't got a untyped undefined value 20:00
(unless something leaks, what it shouldn't)
loveperl: don't worry. It took me about a year to understand how definedness and containers work. 20:01
That's why I wrote that section of the docs. :)
notviki m: my $a = [1, 2, 3] but class { method ^name ($) { "elems" }; method Real { 0 } }.new; say so $a ~~ Empty; 20:02
camelia rakudo-moar b8df3a: OUTPUT«True␤»
notviki ehehe
gfldex Sir, please put that keyboard down! 20:03
also, that's a ENODOC 20:04
notviki Which part? I'm pretty sure it is doc
gfldex method ^method-name
notviki ah
notviki shrugs
gfldex i will fulltext search
notviki Well, IIRC I added such an example for `but` operator, but I've no idea if it's documented elsewhere
notviki m: use nqp; class Foo { method ^mro($) { nqp::list } }; Foo.new.^methods(:all).say 20:06
camelia rakudo-moar b8df3a: OUTPUT«()␤»
notviki ehehehe
m: use nqp; class Foo { method ^mro($) { nqp::list } }; Foo.new.^can("elems").say 20:07
camelia rakudo-moar b8df3a: OUTPUT«()␤»
notviki Hm, I wonder if that can be used as a fix for grammar's defauylt Actions class being an Any
gfldex roast seams not to know about `method ^` 20:08
notviki :(
gfldex OMGWTFNOSPEC!!111
notviki It'd need to be checked with jnthn then. Maybe the fact that you can override it like that is a Rakudo-specific thing 20:09
gfldex what means you will have to find a better example
or we need more spec
notviki Yeah, I'll change it
notviki m: my $s = 12 but class Warbles { method hi { 'hello' } }.new; $s.Warbles.hi.say 20:13
camelia rakudo-moar b8df3a: OUTPUT«hello␤»
dalek c: b5ccb5c | (Zoffix Znet)++ | doc/Language/operators.pod6:
Change example with method ^name in it

  'cause it's not specced ATM irclog.perlgeek.de/perl6/2016-12-20#i_13774824
20:14
synopsebot6 Link: doc.perl6.org/language/operators
notviki m: use nqp; class Foo { method ^mro($) { nqp::list } }; grammar { token TOP { <clone> }; token clone { "meow" } }.parse("meow", :actions(Foo)).say 20:15
camelia rakudo-moar b8df3a: OUTPUT«Too many positionals passed; expected 1 argument but got 2␤ in any !reduce at /home/camelia/rakudo-m-inst-1/share/nqp/lib/QRegex.moarvm line 1␤ in regex clone at <tmp> line 1␤ in regex TOP at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
notviki nope
that was RE "notviki │ Hm, I wonder if that can be used as a fix "
RabidGravy Oooh, the lexical use really messed Sofa up though 20:16
notviki Really? 0.o
RabidGravy all the rest were stupid tests things
there's quite a bit of MOP hackery going on in Sofa 20:17
japhb I'm just wondering how to refer to another package's our variables in the lexical import world. (In particular, if A uses B, how does B refer to A's our variables?) 20:19
japhb This comes up with modules like Terminal-Print in which the "main" module uses various submodules to implement pieces of its API, but those submodules need to refer to things defined in the main/parent module. 20:20
gfldex m: my $zen = True but False; say $zen; 20:30
camelia rakudo-moar b8df3a: OUTPUT«False␤»
arnsholt just tried to write a Perl 5 conditional without braces around the condition 20:40
That's a first =D
Usually it's the other way around
colomon has been doing that routinely for a couple of years now 20:42
RabidGravy yeah I really struggle with it 20:44
colomon I occasionally do it in C++ too 20:45
samcv morning perl 6 20:46
colomon \o
notviki morning?! But I thought it was quitting time already :o
colomon notviki: you have quitting time? ;) 20:47
notviki Sure. It's in 2 minutes :) 20:48
notviki relocates 20:50
japhb samcv: Still looking for a job? 20:53
samcv yes
japhb I ask because you mentioned being interested in something DevOps-ish, and I was going to try to convince you to apply for Google SRE. :-) 20:54
japhb is an SRE Manager (SRM) at Google in Mountain View
samcv oh cool :)
japhb careers.google.com, just search for SRE 20:56
samcv reading the page now
japhb (y)
moritz uhm, how well does that work, applying through the website without an introduction/reference?
RabidGravy mind this morning I nearly walked out of my job,
japhb moritz: Better if you mention that you know someone on the inside. :-) 20:57
japhb Also, SRE is a rarer skill set and interest pool than general SWE, so probably a somewhat smaller pool of applicants (I wouldn't actually know, since I'm not in sourcing or recruiting, that's just a guess.) 20:58
japhb RabidGravy: That sounds like a pretty sucky morning. :-( 20:59
stmuk_ It's worth doing the SRE interviews just to see how interviews should be done 21:00
japhb Yeah, that was the first time I can recall *enjoying* my interviews. 21:00
stmuk_ I enjoyed them but fell down at the whiteboard stage 21:01
japhb stmuk_: White board programming is definitely a non-trivial skill. 21:03
RabidGravy a very poor and shallow high level architectural decision had percolated down to me as an article of faith
japhb RabidGravy: *sigh*
stmuk_ they also had a production outage during my interview ;)
japhb stmuk_: Dang. Interviewer was oncall? 21:04
stmuk_ this was a few years back .. several interviewers had to go off 21:04
japhb Yikes, that must have been quite a day. 21:05
stmuk_ they didnt look happy 21:05
AlexDaniel jnthn: hello. “In the meantime, I suggest creating a second scheduler to use for timer (or Proc::Async) events.” – what does it mean exactly? How? Is there any example somewhere? 21:12
RabidGravy you can create a new ThreadPoolScheduler and use .schedule-on on the Supplies to use that one 21:15
or say, Supply.interval can take a scheduler argument 21:17
RabidGravy a few of the supply, methods aren't documented as taking a scheduler but do 21:19
AlexDaniel committable6: abf6caf06eb7 m: await start { die "what went wrong" } 21:21
committable6 AlexDaniel, gist.github.com/b602d88634a37bcc35...a2af342c32
jnthn AlexDaniel: You create another one with ThreadPoolScheduler.new 21:22
AlexDaniel: And I think you can pass it to Proc::Async's constructor (or to start, I forget)
So create one of those somewhere to use for Proc::Async
AlexDaniel committable6: abf6caf06eb7 m: await start { die "what went wrong" } 21:25
committable6 AlexDaniel, ¦«abf6caf»: ===SORRY!===␤what went wrong «exit code = 1»
AlexDaniel notviki: thanks
RabidGravy start takes a scheduler 21:36
loveperl How to destroy a variable? 21:43
japhb loveperl: "destroy" in what sense? 21:44
loveperl translate.google.es/#en/es/Somethi...n%20php%3F 21:45
Something like unset in php?
japhb loveperl: Perhaps you are looking for `temp $foo = Any;` or somesuch? 21:48
docs.perl6.org/routine/temp
AlexDaniel loveperl: or maybe just $x = Nil ?
japhb AlexDaniel: I suggested temp because php.net/manual/en/function.unset.php indicates it doesn't change the variable in outside scopes, only the current one. 21:49
AlexDaniel japhb: right
loveperl Something like this but with perl unset($ f ["repeat"]); 21:51
japhb doesn't know what that code would do in PHP
moritz temp $x = Nil ? 21:54
loveperl What I want is to remove an index from a hash 21:55
RabidGravy :delete 21:55
RabidGravy m: my %f = foo => 1; say %f; %f<foo>:delete; say %f; 21:56
camelia rakudo-moar b8df3a: OUTPUT«{foo => 1}␤{}␤»
AlexDaniel huggable: xy 22:18
huggable AlexDaniel, nothing found
AlexDaniel huggable: XY
huggable AlexDaniel, nothing found
AlexDaniel :-/
huggable: xy problem
huggable AlexDaniel, You want to do X, but don't know how. You think you can solve it using Y, but don't know how to do that, either. So, you ask about Y in order to solve X, which doesn't make sense. You should ask about X.
AlexDaniel there you go
RabidGravy boom! 22:22
samcv AlexDaniel, i ended up making to-json in JSON::Fast 2.8x faster 22:50
so hope my pull gets through
AlexDaniel hmmmmm
samcv by using strings with subst instead of regex
AlexDaniel samcv: do you think it will make Pastebin::Gist faster? 22:50
samcv maybe
depending on how long it spends in to-json 22:51
but it was 2.9x faster on a 50mb random string
marchelzo samcv: can i see 22:52
samcv yea
github.com/timo/json_fast/pull/17/...11cdd94eR6 22:53
AlexDaniel samcv: hey 22:56
samcv: what about trans?
samcv: isn't it going to be even faster? 22:57
japhb samcv: That first commit (github.com/timo/json_fast/pull/17/...c21161e58) includes a lot of changes to unrelated test files. Would be better with a separate commit for the general cleanups that aren't part of the actual fix. 22:58
samcv japhb, indeed 23:01
samcv AlexDaniel, what going to be faster 23:01
but yeah it is? 23:02
didn't i say that
AlexDaniel samcv: .trans instead of sequential .subst
maybe, maybe not. Try it?
samcv it can only replace with single characters AlexDaniel
AlexDaniel m: say ‘hello’.trans(‘e’ => ‘really?’) 23:03
camelia rakudo-moar b8df3a: OUTPUT«hrllo␤»
samcv m: 'abc'.trans('a' => 'zzz')
camelia ( no output )
samcv yep
AlexDaniel wait… um…
commit: all say ‘hello’.trans(‘e’ => ‘really?’)
committable6 AlexDaniel, gist.github.com/69f98c65b146f4f4d9...535fdc301c
marchelzo m: say 'abc'.trasn('a' => 'zzz')
camelia rakudo-moar b8df3a: OUTPUT«No such method 'trasn' for invocant of type 'Str'␤ in block <unit> at <tmp> line 1␤␤»
marchelzo T_T
AlexDaniel did you mean trans? :) 23:04
marchelzo m: say 'abc'.trans('a' => 'zzz')
camelia rakudo-moar b8df3a: OUTPUT«zbc␤»
samcv commit: say ‘hello’.trans(‘e’ => ‘really?’)
committable6 samcv, ¦«say»: Cannot find this revision
samcv commit: all ‘hello’.trans(‘e’ => ‘really?’).say
committable6 samcv, gist.github.com/c502932247c44d8053...871e3a4815
samcv bisectable6 ‘hello’.trans(‘e’ => ‘really?’).say
MasterDuke m: say 'abc'.trans(['a'] => ['zzz']) 23:05
camelia rakudo-moar b8df3a: OUTPUT«zzzbc␤»
samcv bisectable6, say 'test'
bisectable6 samcv, On both starting points (old=2015.12 new=b8df3a6) the exit code is 0 and the output is identical as well
samcv, Output on both points: test
samcv chmm MasterDuke so that one worked?
AlexDaniel Yea!!! Yay!
I remember it was working! 23:06
marchelzo samcv: which one didn't work?
samcv m: 'abc'.trans('a' => 'zzz').say 23:06
camelia rakudo-moar b8df3a: OUTPUT«zbc␤»
AlexDaniel right, because a pair works differently
m: 'abc'.trans('aby' => 'zzz').say
camelia rakudo-moar b8df3a: OUTPUT«zzc␤»
MasterDuke the docs show examples docs.perl6.org/routine/trans
AlexDaniel MasterDuke++
samcv don't confuse me with the facts MasterDuke
;)
MasterDuke but the docs for trans could use some more explaining 23:07
samcv ^
AlexDaniel MasterDuke: file an issue
samcv also uhm i guess we could just use trans to do every single control character?
AlexDaniel samcv: yes! That's what I was saying :)
MasterDuke samcv: i made the exact same error the first time i tried to use trans
marchelzo write the json parser in C
samcv longgg list
samcv ahh wtf gives. moar is freezing my computer 23:09
samcv last time running the same program the computer hard froze 23:09
and i had to force it off
notviki prolly nommed all the RAM and started swapping...
notviki You need... moar... RAM 23:10
:}
samcv unlimited?
AlexDaniel .tell jnthn 「$proc.start(scheduler => ThreadPoolScheduler.new);」 seems to work. What's going to happen if I create a new scheduler for every Proc::Async (just like in the example)? 23:17
yoleaux AlexDaniel: I'll pass your message to jnthn.
samcv i'm working on getting the docs with highlights things being possible from multiple threads using json. just have to get the perl 6 part to work 23:32
though i think it crashes if using multiple threads far before it gets to the highlighting part 23:33
samcv nice it works now :) 23:36
dalek c/highlights: 7ab0b2a | samcv++ | / (4 files):
Use a new CSS file name so we don't have to deal with caching

Also is renamed to be accurate about which highlighter it is designed for.
23:41
c/highlights: 58770cc | samcv++ | h (2 files):
Use JSON to communicate with highlights

This will allow us to use multiple threads by waiting for the results from the correct file to be returned, and not just using the result returned most recently.
samcv be back later 23:53
dudz soon as i get paid i'm going to honor my bounced payment for kickstart of the perl6 oreilly book: www.learningperl6.com 23:54
should be later today ^
notviki dudz: it's author rarelly visits here. You may wish to tweet him instead: twitter.com/briandfoy 23:57
AlexDaniel Hm, I wonder what people think about reversing the arrow direction in our type graphs. If it's not UML anyway, why make it point to the parent?
dudz arh yes
a tweet isn't a pm right, its a public message? 23:59
AlexDaniel notviki: what do you think? 23:59