»ö« 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. |
|||
00:10
loveperl left
00:12
lizmat left
00:16
pyrimidine joined
00:18
BenGoldberg joined
|
|||
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]. | ||
00:20
pyrimidine left
00:24
espadrine left
00:29
cibs left
00:31
cibs joined
00:39
pyrimidine joined
00:40
BenGoldberg left
00:42
perlpilot left
00:44
pyrimidine left,
pierre_ joined
00:49
pierre_ left
00:51
lizmat joined
|
|||
AlexDaniel | what's [big] about it | 00:51 | |
00:55
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:03
wamba left
01:07
j joined,
j is now known as Guest27761
01:14
pyrimidine joined
01:16
mr_ron left,
mr_ron joined
01:19
pyrimidine left,
AlexDaniel left
01:24
mr_ron left
01:26
pyrimidine joined
01:29
Guest27761 left
01:31
buggable is now known as Guest91376,
NeuralAnomaly is now known as Guest13761,
pyrimidine left
01:36
itcharlie joined
01:39
pyrimidine joined
01:42
itcharlie left
01:43
pyrimidine left
01:48
bitmap left
01:49
bitmap joined
01:53
cpage_ left
01:55
pyrimidine joined
02:00
pyrimidine left,
cpage_ joined
02:16
cgfbee left,
baest left,
jargan joined,
baest joined
02:17
cgfbee joined
02:22
pyrimidine joined
|
|||
[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 | ||
02:27
pyrimidine left
|
|||
[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 | |
02:32
pyrimidine joined
|
|||
samcv | you mean client side? | 02:33 | |
02:37
colomon left,
colomon joined
|
|||
samcv | also i'm going to try calling stdout write directly instead of console.log | 02:37 | |
02:39
pyrimidine left
|
|||
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 | ||
02:44
quicoju joined
|
|||
[Coke] | I can try again. | 02:44 | |
samcv | also what node version do you have? | 02:45 | |
02:45
ilbot3 left,
pierre_ joined
02:48
ilbot3 joined
|
|||
[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. | ||
02:50
pierre_ left
02:52
kalkin- left,
kalkin-_ joined
02:56
xtreak joined
|
|||
[Coke] upgrades to 7.2.1 | 02:56 | ||
02:57
pyrimidine joined
|
|||
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 | |||
03:02
noganex_ joined
|
|||
samcv | err or wait maybe i didn't make it async. hold on | 03:02 | |
03:05
noganex left
03:10
rburkholder left
|
|||
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 | |
03:20
cpage_ left
03:21
cpage_ joined
03:23
mr-foobar left
03:35
colomon left
03:37
colomon joined
|
|||
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 | |
03:38
kurahaupo joined
|
|||
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 | |||
03:46
ufobat left
03:49
wentam joined
03:54
aborazmeh left
03:56
quicoju left
04:00
noganex joined,
wentam left
04:02
noganex_ left
04:06
BenGoldberg joined
|
|||
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 | |
04:22
teksteiner joined
|
|||
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 | |
04:29
xtreak left
|
|||
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 | |
04:34
xtreak joined
|
|||
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. | ||
04:43
mr-foobar joined
04:47
pierre_ joined
04:51
pierre_ left
05:05
baest_ joined
05:07
baest left
05:08
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
05:10
baest_ is now known as baest,
teksteiner left
05:12
teksteiner joined
05:13
AndyBotwin left
05:17
djbkd left,
djbkd joined
05:22
djbkd left,
teksteiner left
05:23
teksteiner joined
|
|||
samcv | welcome to perl 6 teksteiner :) | 05:27 | |
05:29
skids left
05:30
teksteiner left
05:32
teksteiner joined
05:40
Cabanossi left,
teksteiner left
05:41
teksteiner joined
05:42
Cabanossi joined
05:51
Sgeo_ joined
05:52
cognominal left
05:53
Sgeo left
06:01
khw left
|
|||
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 ;) | |||
06:11
gregf_ left
|
|||
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 ;) | ||
06:16
xtreak left
|
|||
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 rowat <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)» | ||
06:17
holli joined
|
|||
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 | |||
06:18
bjz joined
|
|||
samcv | reading | 06:19 | |
06:20
xtreak joined
|
|||
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 | ||
06:23
cyphase left
|
|||
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 | ||
06:25
Tonik joined
06:26
bjz left
06:28
cyphase joined,
raiph joined,
bjz joined
|
|||
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 | |||
06:30
bjz left,
bjz_ joined
06:31
nige1 joined
|
|||
holli | neither "method" nor "sub" do work | 06:32 | |
06:32
bjz_ left
|
|||
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 | ||
06:46
bjz joined
06:47
pierre_ joined
06:48
darutoko joined
06:50
cyphase left
06:51
RabidGravy joined
|
|||
holli | apparently not | 06:52 | |
06:52
pierre_ left
|
|||
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. | ||
06:55
cyphase joined
|
|||
raiph | .tell nine irclog.perlgeek.de/perl6/2016-12-20#i_13770361 | 06:59 | |
yoleaux | raiph: I'll pass your message to nine. | ||
07:00
geekosaur left
|
|||
raiph | holli: I plan to take another look at what you're trying later this week | 07:01 | |
goodnight #perl6 | |||
07:02
geekosaur joined
|
|||
holli | gn | 07:02 | |
07:03
pyrimidine left
07:08
ufobat joined
07:13
pierre_ joined,
wamba joined
07:16
pyrimidine joined
|
|||
holli | off to work | 07:17 | |
cya | |||
07:17
holli left
07:21
CIAvash joined
07:22
pyrimidine left
07:25
pierre_ left
07:26
pyrimidine joined
07:28
Actualeyes left
|
|||
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 | |
07:34
Tonik left
|
|||
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. | ||
07:37
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
|
|||
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 | ||
07:43
jargan is now known as jast
|
|||
samcv | morning | 07:43 | |
07:44
pierre_ joined
|
|||
teksteiner | good morning | 07:44 | |
07:45
BenGoldberg left
07:46
BenGoldberg joined
07:47
dayangkun joined
07:48
domidumont joined
07:50
domidumont left
07:51
dayangkun left
07:52
nige1 left
07:53
dayangkun joined,
domidumont joined,
dayangkun left
07:55
CIAvash left
08:05
nige1 joined
|
|||
andrzeju_ | hello PERL!:) | 08:05 | |
nine | andrzeju_: good morning | 08:09 | |
08:09
CIAvash joined
08:13
pierre_ left
08:16
pyrimidi_ joined,
pyrimidine left
08:23
Ben_Goldberg joined,
BenGoldberg left,
Ben_Goldberg is now known as BenGoldberg
08:25
zakharyas joined
08:26
leah2 left
|
|||
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. | ||
08:40
thayne left
08:42
dakkar joined,
xtreak left
08:45
nige1 left
|
|||
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. | ||
08:50
xtreak joined
08:51
g4 joined
|
|||
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 | |
08:53
xtreak left
08:54
xtreak joined
|
|||
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 | |
09:01
xtreak left
|
|||
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 | ||
09:04
BenGoldberg left
|
|||
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... | |||
09:18
thayne joined
|
|||
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 | |
09:20
ocbtec joined
|
|||
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. | |||
09:26
wamba left
|
|||
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 | |
09:35
rindolf joined
|
|||
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 | |||
09:38
xtreak joined
|
|||
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 | |
09:44
espadrine joined
|
|||
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 | ||
09:51
AlexDaniel joined
|
|||
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. | ||
09:54
domidumont left
|
|||
drrho | moritz: thx, this is actually REALLY nifty. | 09:55 | |
09:56
chris2_ joined
09:57
chris2_ is now known as leah2
10:00
xtreak left
|
|||
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. | ||
10:03
jonas1 joined
10:06
AlexDaniel left
10:10
Praise joined,
Praise left,
Praise joined
10:13
mr-foobar left
10:15
bjz left,
bjz_ joined
10:16
Vynce joined
10:20
mr-foobar joined,
domidumont joined
10:28
aries_liuxueyang joined
10:30
domidumont left
10:37
espadrine left,
ocbtec left
10:39
wamba joined
|
|||
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 | |
10:45
labster left
|
|||
ufobat | down to 10sec | 10:49 | |
DrForr | Wow. | ||
mst | MULTIPY # map Inline::Python->new, 1..10; | 10:51 | |
10:52
TEttinger left,
rindolf left
|
|||
ufobat | 0,8sec | 10:54 | |
jast | that's a difference | ||
10:56
rindolf joined
10:58
ChoHag joined
11:00
dayangkun joined
11:01
wamba left
|
|||
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] | ||
11:11
ChoHag left
11:12
ChoHag joined
11:14
perlawhirl joined
|
|||
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 | |
11:20
ChoHag left,
dayangkun left
11:21
ChoHag joined,
wamba joined
11:23
dayangkun joined,
Vynce left
11:27
geekosaur left
|
|||
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/dX05SIba0fUndeclared name: Pointer used at line 1 | |||
11:28
dayangkun left
11:29
geekosaur joined
|
|||
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 | |
11:32
pyrimidi_ left
|
|||
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 | |||
11:38
pyrimidine joined
11:42
pyrimidine left
11:45
Actualeyes joined
|
|||
notviki | To those not subbed to Freenode's notices: read info freenode.net/news/PSA-brief-update-infra | 11:52 | |
11:52
aries_liuxueyang left
|
|||
notviki | DrForr: so I take it we shall be expecting you to optimize src/Perl6/Grammar.nqp next? :) | 11:52 | |
11:53
aries_liuxueyang joined
|
|||
DrForr | And have to rewrite Perl6::Parser? Fat chance :) | 11:55 | |
11:56
pyrimidine joined
|
|||
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 | |||
12:01
pyrimidine left
|
|||
lizmat | notviki: yeah, someone normalized the naming scheme | 12:03 | |
notviki | MasterDuke did :) | ||
notviki restarts the script | |||
12:06
pyrimidine joined
12:08
domidumont joined
12:10
pyrimidine left
12:13
lukaramu joined
12:15
bjz joined
12:17
domidumont left,
Actualeyes left,
bjz_ left
12:18
domidumont joined
12:22
mr-foobar left
12:24
pyrimidine joined,
mr-foobar joined
12:28
Actualeyes joined,
pyrimidine left
12:32
thayne left
12:34
pyrimidine joined
12:39
pyrimidine left
12:43
pyrimidine joined
12:48
pyrimidine left
12:49
mscha joined
|
|||
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«042(0 41)» | ||
12:52
pyrimidine joined
|
|||
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 | |
12:57
pyrimidine left
13:02
espadrine joined
|
|||
jnthn | It may well be more useful that way it is. | 13:02 | |
13:02
pyrimidine joined
|
|||
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 | |
13:07
pyrimidine left
13:20
andrzeju_ left
|
|||
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>) | ||
13:20
pyrimidine joined
|
|||
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 | -_- | ||
13:21
andrzeju_ joined
|
|||
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» | ||
13:22
mr_ron joined
|
|||
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 | |||
13:25
pyrimidine left
|
|||
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 | |
13:29
Praise left
|
|||
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 | ||
13:30
pyrimidine joined
|
|||
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 | |
13:31
Praise joined,
Praise left,
Praise joined,
wamba left
|
|||
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? | ||
13:34
perlpilot joined
|
|||
lizmat | notviki: a point could be self-documenting code | 13:34 | |
13:35
pyrimidine left
|
|||
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 | ||
13:36
marchelzo joined
|
|||
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 1Actually 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«10110-2» | ||
lizmat remembers an attempt to create a intrange class | |||
13:39
pyrimidine joined
|
|||
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)TrueTrue» | ||
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 | |
13:44
pyrimidine left
|
|||
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 | ||
13:58
pyrimidine joined
|
|||
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 declaredat <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» | ||
14:03
lucasb joined
|
|||
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 postfixat <tmp>:1------> 3say 17⏏5𐤖3 expecting any of: infix infix stopper postfix statement end statement modifier stat…» | ||
14:04
pmurias joined,
pyrimidine left
|
|||
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 postfixat <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 | |
14:10
pyrimidine joined
|
|||
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 | ||
14:14
pyrimidine left
|
|||
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 | ||
14:16
pyrimidine joined
|
|||
DrForr | m: multi infix:<>($x,$y) {{$x * $y };} say 23; | 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 23; 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 22; | 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 1234567890; | 14:20 | |
DrForr | (if you fill in the right character between <> and '2' and '3'.) | ||
camelia | rakudo-moar af1501: OUTPUT«45» | ||
14:20
pyrimidine left
|
|||
notviki | m: sub infix:<> { $^a * $^b }; say 123456789 == [*] ^9+1; | 14:21 | |
camelia | rakudo-moar af1501: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Preceding context expects a term, but found infix == insteadat <tmp>:1------> 3{ $^a * $^b }; say 123456789 ==7⏏5 [*] ^9+1;» | ||
notviki | m: sub infix:<> { $^a * $^b }; say 123456789 == [*] ^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. | ||
14:24
pyrimidine joined
|
|||
[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 | ||
14:38
CIAvash left
|
|||
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«ArrayInt» | ||
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«123[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 | |
14:48
g4 left
|
|||
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 | ||
14:52
mr_ron left
|
|||
[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 | ||
14:56
colomon left
14:57
AlexDaniel joined
15:00
Khisanth left
15:02
koma joined
|
|||
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 | ||
15:09
colomon joined
|
|||
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 | ||
15:13
Khisanth joined
15:14
wamba joined,
koma left
15:24
kalkin-_ left
15:25
kalkin- joined
15:38
teksteiner left
15:43
skids joined
15:45
jonas1 left
15:48
troys joined,
perlawhirl left
15:52
thayne joined
15:54
thayne left
15:56
thayne joined
|
|||
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 | |||
16:00
thayne left
|
|||
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. | ||
16:04
cognominal joined
|
|||
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 | |
16:07
cdg joined
|
|||
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 :( | |||
16:35
wamba left
|
|||
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 | |
16:38
cdg_ joined
16:40
troys is now known as troys_,
cdg left
|
|||
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 ;) | ||
16:51
khw joined
16:52
acrussell joined,
holli joined
16:53
xiaomiao left
|
|||
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 | |
16:55
xiaomiao joined,
xiaomiao left,
xiaomiao joined
|
|||
holli | there can never be enough cheese and i am totally cheesy | 16:56 | |
16:57
troys_ is now known as troys
|
|||
notviki | Sounds like you're better off to put bread on your head then... | 16:57 | |
16:58
xiaomiao left
|
|||
notviki | Why do you want to pretend to be a sandwich? | 17:01 | |
17:03
xiaomiao joined
17:06
Praise left
|
|||
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. | |||
17:07
Praise joined,
Praise left,
Praise joined
|
|||
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 | |
17:11
domidumont left
|
|||
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 | |||
17:16
lukaramu left
17:17
AlexDaniel left
|
|||
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 | |
17:29
wamba joined
|
|||
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 | ||
17:34
dakkar left
|
|||
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 | ||
17:40
Actualeyes left
|
|||
jonadab | And even if it's not listed in many dictionaries, the reader can generally glork the general piggandisp. | 17:40 | |
17:51
rindolf left
17:54
acrussell left
17:55
pierre_ joined
18:01
domidumont joined
|
|||
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 blockat <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«hihifail» | ||
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«hihihihifailhifailfailfailfail» | ||
notviki | There's more than one way to skin a class, I s'pose | 18:12 | |
18:15
rindolf joined
18:16
kurahaupo left
|
|||
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«failhifailfailfailhihifailfailhi» | ||
notviki | :) | ||
18:28
dalek left
18:29
dalek joined,
ChanServ sets mode: +v dalek
|
|||
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 0fail 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" | ||
18:34
FROGGS joined
|
|||
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 | |
18:36
pierre_ left
|
|||
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?) | ||
18:37
mscha left
|
|||
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 1Original 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 blockat <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 | |||
19:13
Guest91376 left
|
|||
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 | |
19:15
rindolf left
|
|||
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 | |
19:15
darutoko left
19:17
SourceBaby left
19:18
Undercover left
19:19
huggable left,
buggable joined,
ChanServ sets mode: +v buggable,
huggable joined,
ChanServ sets mode: +v huggable
19:20
SourceBaby joined,
ChanServ sets mode: +v SourceBaby,
Undercover joined,
ChanServ sets mode: +v Undercover
|
|||
jnthn | notviki: Thanks! :-) | 19:20 | |
Fix pushed | |||
19:21
rindolf joined
19:25
pierre_ joined
|
|||
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 | |
19:27
sena_kun joined
19:28
dataf3l joined
19:29
pierre_ left
19:30
cdg_ left
19:32
drrho left
19:34
troys is now known as troys_
|
|||
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 | ||
19:39
dataf3l left
|
|||
lucasb | Test.pm6 history doesn't show any recent change. do you have an example? | 19:41 | |
19:41
dataf3l joined
|
|||
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 | |||
19:45
zakharyas left
|
|||
notviki | RabidGravy: we fixed autovivication bug in hash arrays.... | 19:46 | |
19:46
dataf3l left
|
|||
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 | ||
19:49
lucasb left,
wamba left
19:50
labster joined
19:52
domidumont left
19:53
dataf3l joined
19:55
loveperl joined
|
|||
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 | ||
20:05
drrho joined,
pmurias left
|
|||
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 | ||
20:13
pierre__ joined
|
|||
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 | |
20:20
labster left
|
|||
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 | |
20:25
pmurias joined
20:28
cdg joined
20:30
pmurias left,
pmurias joined
|
|||
gfldex | m: my $zen = True but False; say $zen; | 20:30 | |
camelia | rakudo-moar b8df3a: OUTPUT«False» | ||
20:31
Tonik joined
20:32
labster joined
20:33
troys_ is now known as troys
20:34
zakharyas joined
|
|||
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 | ||
20:47
AlexDaniel joined
|
|||
colomon | notviki: you have quitting time? ;) | 20:47 | |
notviki | Sure. It's in 2 minutes :) | 20:48 | |
20:50
labster left
|
|||
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 | |
20:57
dataf3l left
|
|||
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 | |
20:59
FROGGS left,
pyrimidine left
|
|||
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 | |
21:00
pyrimidine joined
|
|||
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 | |
21:04
bjz left,
dataf3l joined,
pierre__ left
|
|||
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 | |
21:05
loveperl left,
pyrimidine left
|
|||
stmuk_ | they didnt look happy | 21:05 | |
21:05
loveperl joined
21:09
pyrimidine joined
21:10
labster joined,
labster left,
labster joined
|
|||
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 | ||
21:17
troys is now known as troys_
|
|||
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 | |||
21:23
dataf3l left
21:24
stmuk joined
21:25
committable6 left,
pyrimidine left,
committable6 joined,
ChanServ sets mode: +v committable6,
bjz joined
|
|||
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 | ||
21:26
pyrimidine joined,
dataf3l joined
21:27
stmuk_ left
21:31
pyrimidine left
|
|||
RabidGravy | start takes a scheduler | 21:36 | |
21:37
pyrimidine joined
21:38
bjz left
21:40
loveperl left
21:41
dataf3l left
21:42
loveperl joined
|
|||
loveperl | How to destroy a variable? | 21:43 | |
21:43
dataf3l joined
|
|||
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 | |
21:55
pyrimidine left
|
|||
RabidGravy | :delete | 21:55 | |
21:55
pyrimidine joined
|
|||
RabidGravy | m: my %f = foo => 1; say %f; %f<foo>:delete; say %f; | 21:56 | |
camelia | rakudo-moar b8df3a: OUTPUT«{foo => 1}{}» | ||
21:56
thalunil joined
21:58
thalunil left
21:59
bwisti joined
22:00
pyrimidine left
22:03
cognominal left
22:04
pyrimidine joined
22:09
pyrimidine left,
skids left
22:16
troys_ is now known as troys
22:17
zakharyas left
|
|||
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 | |
22:22
pyrimidine joined
22:25
TEttinger joined
22:28
RabidGravy left
22:31
pyrimidine left
22:41
pyrimidine joined
22:43
colomon_ joined,
rindolf left
22:45
pyrimidine left
22:46
colomon left,
colomon_ is now known as colomon
22:47
rindolf joined
|
|||
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 | ||
22:50
pyrimidine joined
|
|||
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 | ||
22:54
colomon left
22:55
colomon joined,
Tonik left
22:56
cognominal joined
|
|||
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 | |
23:00
sena_kun left
23:01
cpage_ left
|
|||
samcv | japhb, indeed | 23:01 | |
23:01
cpage_ joined
|
|||
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? | ||
23:06
dataf3l left
|
|||
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 | ||
23:07
dataf3l joined
|
|||
samcv | ahh wtf gives. moar is freezing my computer | 23:09 | |
23:09
dataf3l left
|
|||
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... | ||
23:10
dataf3l joined
|
|||
notviki | You need... moar... RAM | 23:10 | |
:} | |||
samcv | unlimited? | ||
23:11
dataf3l left
23:16
loveperl left
|
|||
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. | ||
23:18
colomon left,
wamba joined
23:19
dataf3l joined,
troys is now known as troys_
23:20
rindolf left
23:23
dataf3l left
23:24
colomon joined,
Actualeyes joined
23:26
colomon left,
colomon joined
23:27
pyrimidine left
23:28
pyrimidine joined
23:32
pyrimidine left
|
|||
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 | ||
23:33
colomon left
23:34
Actualeyes left
23:35
pmurias left
|
|||
samcv | nice it works now :) | 23:36 | |
23:37
pyrimidine joined
23:39
cdg left
|
|||
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. |
|||
23:41
pyrimidine left
23:43
rburkholder joined
23:45
colomon joined
23:52
Actualeyes joined
|
|||
samcv | be back later | 23:53 | |
23:54
troys_ is now known as troys
|
|||
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 ^ | |||
23:55
pyrimidine joined
|
|||
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 | ||
23:59
dataf3l joined
|
|||
AlexDaniel | notviki: what do you think? | 23:59 |