»ö« 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:01 avuserow joined 00:03 mawkish__ left 00:10 pyrimidine left 00:13 cale2 joined 00:22 bjz joined
cale2 Hey, was there ever a discussion about running perl6 on erlang's BEAM vm? 00:25
b2gills I don't recall that ever being discussed 00:32
TimToady I did have dinner with Joe Armstrong several times last year :) 00:35
but we mostly didn't talk shop...
cale2 Joe seems extremely charismatic in his talks 00:37
b2gills After taking a quick look, it looks like there would have to be a VM on top of BEAM to support the mutable nature of Perl 6 00:38
cale2 I know Lisp Flavored Erlang can use objects. Would be interesting to look into
00:39 wamba joined
cale2 How do you actually "target" a VM? 00:39
You just write code that parsers perl6 and turns it into VM bytecode? 00:40
b2gills You get nqp running on it. Then you get nqp compiling itself, Then you get nqp to compile Rakudo 00:41
cale2 Oh! So NQP exists to make this task more simple. Because the bridge from NQP to Rakudo already exists? 00:44
00:49 wamba left 00:51 wamba joined 00:53 perlawhirl joined
MasterDuke cale2: yep. that's why the JVM and JS backends are mostly done in nqp 01:02
01:04 wamba left
TimToady MasterDuke: you might check to see if find_symbol is running quite so hot now 01:05
MasterDuke nice, i'll run another profile
01:07 kurahaupo left
SmokeMachine i have: has $.my-attr is rw; and I want to .wrap() the my-attr method, but only setting a value ($obj.my-attr = 42) but not when getting (say $obj.my-attr)... is that possible? 01:12
brokenchicken Yes, write your own accessor 01:13
SmokeMachine I wanna do something like ".is-dirty()" method on attributes of my class... (applied by a role...)
brokenchicken Ah, OK
No idea 01:14
01:14 perlawhirl left
SmokeMachine I mean: class C does Dirtabble {has $.my-attr is rw}; my $c = C.new; $c.my-attr = 42; $c.dirty-attrs # my-attr 01:15
timotimo possible, but a bunch of work :) 01:16
SmokeMachine I thought something like mixing AttributeHow and wrap set_value...
01:16 benchable6 left
timotimo no, that won't help 01:16
setting the value of an attribute hardly ever goes through set_value 01:17
... at least i think so?
TimToady I believe that's correct
01:17 perlawhirl joined
timotimo you can run a piece of code early at compose time that'll go through all attributes and generate an accessor method for you 01:17
it'd use a proxy with a simple FETCH and a complex STORE
01:17 kurahaupo joined 01:18 kurahaupo left
SmokeMachine I think I already so a code like that many years ago... but I don't remember if it was a perl6 example or a Moose's code... :( 01:18
timotimo: I tried that... but I got a infinite loop...
01:18 geekosaur left, kurahaupo joined, kurahaupo left
timotimo i'd ask to see your code but i'm on my way to bed :) 01:18
SmokeMachine www.irccloud.com/pastebin/aT82QkxL/ 01:19
timotimo: sorry, I did send before read... good night!
timotimo maybe it jumps out at me 01:20
attr-columns? that's new to me
01:20 geekosaur joined
SmokeMachine thats my method... 01:20
timotimo oh, ok
does that already work at that time? 01:21
since the class isn't composed yet
SmokeMachine Im grepping all attires that does a specific role...
timotimo ah
at what exact point does it loop?
SmokeMachine I did a method, not a phaser... so Im just calling that method to test...
timotimo does it infinispam STORE or FETCH?
SmokeMachine FETCH 01:22
01:22 kurahaupo joined
timotimo hm, well ... you're just wrapping the methods, so it doesn't have to happen so early 01:22
SmokeMachine its happening when I try to get the value... 01:23
timotimo i'd say nextsame isn't targeting the right thing
because you're already in the FETCH method
SmokeMachine it can strores, but loops on fetching...
timotimo so you're trying to reach the next FETCH method
i'm not sure if you can have it output the state and full contents of the dispatcher from inside that method
SmokeMachine shouldn't be the samo with the store? 01:24
timotimo also, i never put "method" into proxy
yeah, that part is weird.
SmokeMachine it doesn't work with sub...
timotimo it could very well be that STORE isn't doing what you want at all
since you can't check
why doesn't it work?
oh, and also:
you can't just store the dirtyness on the attribute itself 01:25
that's shared between all instances
instead, you can give the class a private attribute that you mix in with the role that can store dirty bits for you
SmokeMachine m: my $a := Proxy.new: FETCH => sub {}, STORE => sub {}; $a = 42
camelia rakudo-moar dd514d: OUTPUT«Too many positionals passed; expected 0 arguments but got 2␤ in sub at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo well, of course
m: my $a := Proxy.new: FETCH => sub fedch {}, STORE => sub stoar {}; $a = 42 01:26
camelia rakudo-moar dd514d: OUTPUT«Too many positionals passed; expected 0 arguments but got 2␤ in sub stoar at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo m: my $a := Proxy.new: FETCH => sub fedch {}, STORE => sub stoar(|c) { say c.perl}; $a = 42
camelia rakudo-moar dd514d: OUTPUT«Too many positionals passed; expected 0 arguments but got 1␤ in sub fedch at <tmp> line 1␤ in sub stoar at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
timotimo m: my $a := Proxy.new: FETCH => sub fedch(|c) { say c.perl }, STORE => sub stoar(|c) { say c.perl}; $a = 42
interesting, that also infiniloops?
SmokeMachine timotimo: that makes sense! i can't store that on the attribute! :(
camelia rakudo-moar dd514d: OUTPUT«(timeout)» 01:27
timotimo ah, hahahaha
am i trying to output the self, which is the proxy, and so it fetches?
anyway, a bit too tired to continue this now
brokenchicken m: my $a := Proxy.new: FETCH => method(|c) { say c.perl }, STORE => method (|c) { say c.perl}; $a = 42 01:28
camelia rakudo-moar dd514d: OUTPUT«5===SORRY!5===␤Word 'method' interpreted as 'method()' function call; please use whitespace around the parens␤at <tmp>:1␤------> 3my $a := Proxy.new: FETCH => method7⏏5(|c) { say c.perl }, STORE => method (|c␤Unexpected block in infix pos…»
SmokeMachine timotimo: thanks so much!
timotimo oh btw
brokenchicken m: my $a := Proxy.new: FETCH => my method(|c) { say c.perl }, STORE => my method (|c) { say c.perl}; $a = 42
camelia rakudo-moar dd514d: OUTPUT«5===SORRY!5===␤Type 'method' is not declared. Did you mean 'Method'?␤at <tmp>:1␤------> 3my $a := Proxy.new: FETCH => my method7⏏5(|c) { say c.perl }, STORE => my method ␤Malformed my␤at <tmp>:1␤------> 3my $a := Proxy.new: FETCH => …»
timotimo do you know of perl6-all-modules?
brokenchicken huh
SmokeMachine timotimo: sorry, was that for me?
m: my $a := Proxy.new: FETCH => my method (|c) { say c.perl }, STORE => my method (|c) { say c.perl}; $a = 42 01:29
camelia rakudo-moar dd514d: OUTPUT«\(42)␤»
timotimo hm. it doesn't find anything really interesting
SmokeMachine brokenchicken: ^
brokenchicken Ah right 01:30
timotimo jonathanstowe/AccessorFacade/lib/AccessorFacade.pm
might be interesting
SmokeMachine timotimo: that is!!! thanks! 01:32
timotimo eco AccessorFacade
um
buggable: eco AccessorFacade
buggable timotimo, AccessorFacade 'Provides a method trait to turn indivdual get/set subroutines into a single attribute': github.com/jonathanstowe/AccessorFacade 01:33
01:33 committable6 left
timotimo i need a bot that can tell me which other bot can do what command 01:33
TimToady
.oO(How much bot would a bot bot bot if a bot bot could bot bot?)
01:35
01:38 statisfiable6 left, evalable6 left, unicodable6 left, bisectable6 left 01:39 kurahaupo left, ggoebel left
timotimo gnite 01:40
TimToady o/
01:40 pyrimidine joined
brokenchicken night 01:40
SmokeMachine night 01:41
01:45 pyrimidine left 01:48 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 01:52 ggoebel joined 01:56 BenGoldberg left 01:58 BenGoldberg joined
sammers hi #perl6 02:05
cale2 hey sammers 02:06
sammers hi cale2, guess everyone is sleeping 02:07
cale2 possibly lol
I'm going through this forth tutorial skilldrick.github.io/easyforth/
quite bizarre
02:09 evalable6 joined, unicodable6 joined, committable6 joined, benchable6 joined, ChanServ sets mode: +v evalable6, ChanServ sets mode: +v unicodable6, ChanServ sets mode: +v committable6, ChanServ sets mode: +v benchable6, bisectable6 joined, ChanServ sets mode: +v bisectable6, statisfiable6 joined, ChanServ sets mode: +v statisfiable6
sammers cale2, how do you like it so for? 02:09
02:09 kalkin- joined
cale2 sammers: It's a really cool way to think about lower level programming. much more approachable than assembly IMO 02:09
02:10 bjz left 02:11 user__ left 02:13 aborazmeh joined, aborazmeh left, aborazmeh joined
BenGoldberg cale2, Forth is similar to ... basically every other stack oriented programming language in the world. Postscript and befunge come to mind. 02:13
And dc. 02:14
sammers cale2, maybe you can write a Forth interpreter for p6. I think there was written in p5.
BenGoldberg And lots and lots of others, but that's just off the top of my head.
cale2 sammers I was thinking about that actually. But how do you go from a p6 grammar to executing code? O.o 02:18
I guess you would parse each thing, be it a word or number, etc. Then maybe you'd use the p6 meta object to construct objects for each item that you parse? 02:19
MasterDuke TimToady: nice! looks like find_symbol went from 3rd to 4th with a definite exclusive time decrease. gist.github.com/MasterDuke17/faf9f...f35baaf963
cale2: github.com/edumentab/rakudo-and-nq...als-course 02:20
has examples of creating toy interpreters 02:21
SmokeMachine m: my $a; sub a () is rw {$a}.wrap: sub () is rw {say "wrap"}; a() = 2; say $a # am I doing something wrong? 02:22
camelia rakudo-moar dd514d: OUTPUT«2␤»
cale2 MasterDuke: thanks!
SmokeMachine shouldn't that say wrap and die? 02:23
m: my $a; my $b; sub a () is rw {$a}.wrap: sub () is rw {say "wrap"; $b}; a() = 2; dd $a, $b # am I doing something wrong? 02:24
camelia rakudo-moar dd514d: OUTPUT«Int $a = 2␤Any $b = Any␤»
SmokeMachine shouldn't $a == Any and $b == 2?
02:25 bjz joined
SmokeMachine m: use Test; my $a; my $b; sub a () is rw {$a}.wrap: sub () is rw {say "wrap"; $b}; a() = 2; is $a, Any; is $b, 2 02:25
camelia rakudo-moar dd514d: OUTPUT«not ok 1 - ␤␤# Failed test at <tmp> line 1␤# expected: (Any)␤# got: '2'␤not ok 2 - ␤␤# Failed test at <tmp> line 1␤# expected: '2'␤# got: (Any)␤»
BenGoldberg m: my $a; my $b; sub a () is rw {$a}.wrap: sub () is rw {say "wrap"; $b}; a() = 2; dd $a; dd $b; 02:37
camelia rakudo-moar dd514d: OUTPUT«Int $a = 2␤Any $b = Any␤»
SmokeMachine BenGoldberg: seems wrong, isn't it? 02:39
BenGoldberg It does.
SmokeMachine is that a bug?
BenGoldberg m: my $a = 2; my $b; sub a () {$a}.wrap: sub () {say "wrap"; $b}; dd a(); dd $a; dd $b; 02:40
camelia rakudo-moar dd514d: OUTPUT«2␤Int $a = 2␤Any $b = Any␤»
brokenchicken m: my $a; my $b; sub a () is rw {$a}; &a.wrap: sub () is rw {say "wrap"; $b}; a() = 2; dd $a; dd $b; 02:41
camelia rakudo-moar dd514d: OUTPUT«wrap␤Any $a = Any␤Int $b = 2␤»
SmokeMachine m: say sub a () is rw {}.wrap: sub () is rw {} 02:44
camelia rakudo-moar dd514d: OUTPUT«Routine::WrapHandle.new␤»
SmokeMachine it "thinks" it was wrapped...
02:45 z8 joined, z8 left, ilbot3 left 02:46 pyrimidine joined 02:47 ilbot3 joined, ChanServ sets mode: +v ilbot3
cale2 how do you explain the difference between a SORRY! error and a runtime error? 02:48
"could not find symbol" is runtime error, right?
geekosaur it's sometimes possible to provoke that at compile time (say, by using a phaser in an unexpected place so compiling the phaser tries to reference the wrong scope; admittedly these usually indicate compiler bugs, or at least LTA errors) 02:50
brokenchicken m: my $z = sub a {say "hi"}; dd $z; $z.wrap: sub {say "bye"}; a 02:52
camelia rakudo-moar dd514d: OUTPUT«Sub $z = sub a () { #`(Sub|78545376) ... }␤hi␤»
02:52 sammers left
brokenchicken m: my $z = sub a {say "hi"}; dd $z === &a 02:52
camelia rakudo-moar dd514d: OUTPUT«Bool::False␤»
brokenchicken m: my &z = sub a {say "hi"}; dd [&z, &a]
camelia rakudo-moar dd514d: OUTPUT«[sub a () { #`(Sub|65954840) ... }, sub a () { #`(Sub|65954992) ... }]␤»
02:53 Cabanossi left
brokenchicken m: my &z = multi a {say "hi"}; multi a is default {say "bye"}; z; a 02:54
camelia rakudo-moar dd514d: OUTPUT«hi␤bye␤»
cale2 geekosaur: Reason I ask is page 34 in this PDF cloud.github.com/downloads/perl6/b....23.a4.pdf
page 28 in book pages
brokenchicken So my understanding is the sub {}.wrap doesn't work because that sub object is just for that particular sub, while &foo has all the dispatcher info and stuff, which is what .wrap wants
cale2 The top example fails to compile, while the bottom fails at runtime. 02:55
You should be able to determine both at compile time
02:56 Cabanossi joined
brokenchicken m: my $z = sub a {say "hi"}; $z.wrap: sub { say "bye" }; $z() 02:56
camelia rakudo-moar dd514d: OUTPUT«bye␤»
03:04 sammers joined 03:13 labster left
Geth oc: WildYorkies++ created pull request #1167:
unicode quotes messes up syntax highlighting
03:15
brokenchicken cale2: messing up syntax highlighting where? 03:16
cale2 docs.perl6.org/type/Sub 03:17
brokenchicken Oh I see
cale2 first code block example
and the first " is invisible :S
brokenchicken u: „“ 03:20
unicodable6 brokenchicken, U+201E DOUBLE LOW-9 QUOTATION MARK [Ps] („)
brokenchicken, U+201C LEFT DOUBLE QUOTATION MARK [Pi] (“)
brokenchicken I see them on my box
AlexDaniel \o/ 03:21
cale2 I saw them on github source code. But on Chrome on my mac (it's not the newest OS version though) it's invisible 03:22
probably warrants discussion on PR 03:23
AlexDaniel discussion on how to install fonts on your machine? Hmm…
brokenchicken I think there was an issue on that topic
samcv waves at cale2 03:24
will fix that highlighing issue right after I have dinner
brokenchicken Thios one: github.com/perl6/doc/issues/776 03:25
brokenchicken no longer cares about it, despite comments there suggesting otherwise :P
samcv brokenchicken, do we allow all of those quotation marks for #` quoting?
probably right?
AlexDaniel yea 03:26
TEttinger I do wonder why unicode quotes are used
AlexDaniel why not
TEttinger are they easier to enter on some machines?
AlexDaniel well, here they are as easy to enter as " but that's a custom layout 03:27
samcv i just have a compose key
AlexDaniel, what' the custom layout?
i just have compose + < + "
cale2 samcv: how do you remember what each key combo is? You have a cheat sheet?
AlexDaniel samcv: meaning that I've created my own keyboard layout
samcv uhm i look at my compose file
TEttinger AlexDaniel: there are numerous reasons why not, ranging from the trivial (larger filesize in UTF-8 encoded files) to the more significant (fonts may not display them) to the "well duh" (shift-' doesn't need to look up a compose combo or even press a multi-key combo) 03:28
cale2 It's possible I'm missing fonts on my machine. But I don't think so. Because I can see them in the source code.
It's more likely an issue with Chrome, no? 03:29
brokenchicken I see them fine in Chrome on Win
samcv well < + " is pretty easy to remember
or > + ", or > + '
etc
AlexDaniel TEttinger: oh, you mean why people use unicode quotes in general, not just on that particular doc page? 03:30
TimToady makes it real easy to avoid shell quote branedamage 03:31
AlexDaniel TEttinger: well, first of all you can nest them… then you can copy-paste code into perl6 -e '' without caring about the quotes
brokenchicken m: my &z = sub a {say "hi"}; dd [&z, &a]
camelia rakudo-moar dd514d: OUTPUT«[sub a () { #`(Sub|48383000) ... }, sub a () { #`(Sub|48383152) ... }]␤»
brokenchicken TimToady: how come these ^ differ?
samcv this is my XCompose file 03:32
github.com/samcv/dot-files/blob/ma.../.XCompose
AlexDaniel m: my $z = sub a {say "hi"}; dd [$z, &a]
camelia rakudo-moar dd514d: OUTPUT«[sub a () { #`(Sub|67666904) ... }, sub a () { #`(Sub|67667056) ... }]␤»
samcv also. samcv++ it's highlighted! well. i created a grammar and got github to include it :)
so XCompose files are highlighted on github. looks nice
more colorful in my editor though 03:33
brokenchicken m: my &z = sub a {say "hi"}; &z.wrap: sub {say "the z"}; &a.wrap: sub {say "the a"}; z; a
camelia rakudo-moar dd514d: OUTPUT«the z␤the a␤»
samcv camelia, if i don't know i just Ctrl+F my xcompose file for the symbol or name
AlexDaniel TEttinger: and the argument about having to look up compose sequences is a bit weird. If someone is using these characters daily, it is definitely not an issue for them, right? 03:34
samcv ya
i have M-dash, N-dash, horizontal bar, negative minus all memorized
n + - is n dash, M + - is M-dash, m + - is negative symbol (think minus) 03:35
brokenchicken Also, copy-paste from powerpoint and ilk to code doesn't require changing all the quotes, 'cause we handle them.
samcv and - + - + - is horizontal bar, used usually when quoting people
TEttinger the shell quote stuff is an excellent reason
AlexDaniel brokenchicken: oh yeah! That's a good one!
03:36 makumiku joined
AlexDaniel m: say “here is some “quoted string”, isn't it an excellent reason as well?” 03:38
camelia rakudo-moar dd514d: OUTPUT«here is some “quoted string”, isn't it an excellent reason as well?␤»
samcv also curly quotes have an opener and a closer
" is ambiguous
AlexDaniel m: say "here is some \"quoted string\", isn't it an excellent reason as well?\"
camelia rakudo-moar dd514d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3 isn't it an excellent reason as well?\"7⏏5<EOL>␤ expecting any of:␤ argument list␤ …»
AlexDaniel m: say "here is some \"quoted string\", isn't it an excellent reason as well?"
camelia rakudo-moar dd514d: OUTPUT«here is some "quoted string", isn't it an excellent reason as well?␤»
AlexDaniel ewwww…
makumiku github.com/slidaway/cthso How should I go about getting HTTPS to work with this?
brokenchicken makumiku: drop it behind a reverse proxy 03:39
cale2 So this is all well and good, but what about that lower case double quote? That's the one I can't see.
makumiku No idea about how to do that ;-;
brokenchicken makumiku: do you have apache?
cale2 It's a double quote on the bottom of the line of text 03:40
makumiku I'd rather use nginx
but I can use apache
AlexDaniel cale2: yea. So install some fonts perhaps?
I'm not sure what OS you are on
ah, you said mac. Still I know nothing :)
03:41 noganex_ joined
brokenchicken makumiku: that will work too. Just google for "set up nginx reverse proxy". The idea is you start an app on port, say, 8888. It's blocked for non-local traffic. nginx listens on 443 and forwards the request to 8888. so you get the HTTPS from nginx and your app can handle the request as if it were just plain ol HTTP 03:42
makumiku I see, thanks a bunch for the help!
03:44 noganex left
samcv wierd... you can close „ with left or right quotation marks 03:47
brokenchicken mhm 03:48
samcv u: low quotation mark
unicodable6 samcv, U+201A SINGLE LOW-9 QUOTATION MARK [Ps] (‚)
samcv, U+201E DOUBLE LOW-9 QUOTATION MARK [Ps] („)
samcv, gist.github.com/720cf1c0d473bcd834...fd0962538a
samcv u: quotation mark
unicodable6 samcv, U+0022 QUOTATION MARK [Po] (")
samcv, U+00AB LEFT-POINTING DOUBLE ANGLE QUOTATION MARK [Pi] («)
samcv, gist.github.com/eace4c4da2224b3a83...1179dace60
samcv that's kinda weird 03:49
idk
TimToady see en.wikipedia.org/wiki/Quotation_mark for a brain melt
samcv „ is an opener, but we let you close it with an opener too?
hmm 03:50
i guess that makes sense
we always need more brackets tbh 03:51
03:54 Cabanossi left 03:56 Cabanossi joined, agentzh joined
cale2 Yeah, it's U+201A and U+201E that are invisible 03:58
03:59 Ven left 04:00 khw left 04:03 cale2 left 04:06 Cabanossi left 04:09 Cabanossi joined
samcv what os do you have camelia 04:17
err cale2
oh i guess he left, i have part messages hidden
brokenchicken AlexDaniel: FWIW, I'm using ≔ in Perl 7 and I must say it's terrible. Can hardly notice the difference from =, especially when tired, sleepy, and not actively trying to discern if the two look too similar 04:18
AlexDaniel brokenchicken: ≔ is full-width here, so I don't know… 04:19
again, it depends on your font
brokenchicken nods
AlexDaniel brokenchicken: it is also in the list of “questionable things” :) 04:20
what should I do with that gist by the way? Do we have some sort of a wiki for brainstorming? 04:21
brokenchicken isn't aware of one
04:22 bjz_ joined, bjz left
AlexDaniel @x⁎₋₁ awwwwww 04:22
too bad people want subscripts in identifiers…
04:25 curt__ left
AlexDaniel “Even though there are ⩵ and ⩶ characters, how are these supposed to look in a fixed-width font?” am I stupid or what? 04:25
04:25 agentzh left
AlexDaniel did I just imply that ⩶ is supposed to fit into the width of a narrow character? 04:26
wh… what… who wrote that :P
04:31 aborazmeh left 04:41 aborazmeh joined, aborazmeh left, aborazmeh joined
Geth oc: 10b8f1a2fa | (Samantha McVey)++ | util/trigger-rebuild.txt
Trigger rebuild to pull in highlighter fixes

Highlight Low-double quotation mark - Left/Right double quotation mark quoting
04:43
samcv lol AlexDaniel 04:45
u: equality
unicodable6 samcv, Found nothing!
AlexDaniel u: equals
unicodable6 AlexDaniel, U+003D EQUALS SIGN [Sm] (=)
AlexDaniel, U+0347 COMBINING EQUALS SIGN BELOW [Mn] (◌͇)
AlexDaniel, gist.github.com/b4fbd07aa1f93c3def...7712f1c481
samcv AlexDaniel, get a monospace font that sets the ≡ sign to double width?
that would be one solution tbh
AlexDaniel ≡? 04:46
u: ≡
unicodable6 AlexDaniel, U+2261 IDENTICAL TO [Sm] (≡)
samcv oh i guess you said that
about ≔
it shows wider for this non-monospace font i'm using for irc at least
AlexDaniel it is double width here too
samcv did we add in ≔ as a way to do :=? 04:47
AlexDaniel no. … at least not yet
samcv ah, not sure what brokenchicken meant then
AlexDaniel anyway, I your initial message is for brokenchicken
yea
samcv oh perl 6
AlexDaniel I think*
samcv s/6/7
haha
04:56 kyan left 04:58 BenGoldberg left
jdv79 P6opaque: no such attribute '$!state' in type Foo when trying to get a value 05:00
except $!state is declared in the same role as the method hitting it
so... wth man...
i have 6 classes comsuming that role too and only one complains per run 05:02
05:06 Cabanossi left 05:09 Cabanossi joined 05:10 travis-ci joined
travis-ci Doc build passed. Samantha McVey 'Trigger rebuild to pull in highlighter fixes 05:10
travis-ci.org/perl6/doc/builds/196274730 github.com/perl6/doc/compare/c1220...b8f1a2fa01
05:10 travis-ci left 05:11 agentzh joined
Geth hateverable: 8a2b349bf3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Consistent ident for the bots

So that they can be voiced on channels with a single mask.
05:22
hateverable: c8acc81410 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 3 files
Ignore messages starting with “what,”

What, people actually start their sentences with “what,”?
  colabti.org/irclogger/irclogger_log...xt=checked
05:26 woeirjisojdfio joined 05:30 AlexDaniel left
samcv brokenchicken, this plugin for atom i got is pretty neat. it creates a like 'index' bar on the right that is populated by regex items 05:30
05:31 bjz_ left 05:37 Cabanossi left 05:38 Cabanossi joined
samcv ugh and now it's not working all of a sudden 05:44
nvm got it working. nice. have a whole list of all the sub's in the file on the right side and can easily click to go to them 05:50
05:51 bjz joined 05:53 CIAvash joined 06:04 labster joined, labster left
samcv how do I do a for loop that doesn't iterate over the subcomponents of things and only deos the list of variables? 06:06
m: my %hash = 10 => 11; for %hash, %hash { .VAR.name.say }
camelia rakudo-moar dd514d: OUTPUT«%hash␤%hash␤»
samcv i guess that worked hmm
06:25 agentzh left 06:30 makumiku left 06:34 woeirjisojdfio left
masak hey #perl6 -- could someone re-URL to that blog post I read recently where it says that global type names now behave differently with `use` statements? 06:40
was it timotimo who wrote it? or nine? or someone?
(turns out 007 is a victim and I didn't discover it until now, since I haven't been working on it for a while. it's easy to fix, but I'd like to reference the blog post in the commit message.) 06:41
I'm also getting a much clearer feeling for what the change in semantics does: if A uses B uses C, A used to get C's "global" type declarations through B -- but it doesn't any more. 06:44
...segmentation fault :(
geez, I hope this is golfable.
oh; went away after I nuked lib/.precomp 06:45
:) :( 06:46
06:47 perlawhirl left, Vynce left
masak ok, that's better. All Tests Pass. 06:48
06:59 aborazmeh left
masak aha; github.com/rakudo/rakudo/commit/4b...95a09a8e80 actually points to rakudo.org/2016/12/17/lexical-module-loading/ 07:00
07:00 darutoko joined
masak nine++ nine++ for that 07:00
07:00 perlawhirl joined 07:02 bjz_ joined 07:03 bjz left
moritz \o 07:07
07:08 Cabanossi left 07:09 Cabanossi joined
masak hiyo moritz 07:12
07:17 ChoHag joined
moritz masak: fwiw I greatly enjoyed your lambda calculus gist the other day 07:24
07:28 Tonik joined 07:29 pyrimidine left
masak moritz: that's great to hear. I'm not done with it, by the way. 07:30
I'm implementing a lambda calculator, and I mean to turn the gist into an interactive page where you can try things out. 07:31
07:34 domidumont joined
moritz \o/ 07:34
and lol i blogged: perlgeek.de/blog-en/perl-6/2017-00...rsing.html
two more regex blog posts coming up, one about grammars, match trees and action methods, and the last about generating good parse error messages 07:35
masak moritz++ 07:36
stray macro/quasi thought: a quasi encompasses even nested routines inside of it, in such a way that these can be factored out of the quasi if-and-only-if they don't contain unquotes. 07:37
(the corollary being that an unquote in a nested routine is more powerful than we may realize. I've now seen two real-ish examples of this.) 07:38
07:38 domidumont left 07:40 kurahaupo joined 07:45 kurahaupo_ joined
moritz masak: do you have links to examples? 07:46
07:47 kurahaupo` joined, kurahaupo left 07:48 pyrimidine joined 07:50 kurahaupo joined, kurahaupo_ left
masak m: class A::B {}; class C { has A::B $.ab .= new } 07:51
camelia ( no output )
masak closes rt.perl.org/Public/Bug/Display.html?id=126975
moritz pleaes remeber to a write a test in roast for it 07:52
07:53 kurahaupo` left 07:54 kurahaupo left
masak oh shucks -- guess now I have to :) 07:54
moritz: to answer your question about examples: yes, my favorite so far is still the 007 implementation of reduce metaops: github.com/masak/007/issues/176#is...-240849038 07:55
this is a *real* macro
moritz nice! 07:56
masak it quasis a sub with a synthetic name
whose parameter list is a single slurpy (a not-yet-in-place 007 extension)
and whose body is an actual .reduce call on the slurped array 07:57
and the call's argument (which needs to be a 2-ary callable, recall) is an *op*, namely the one that we parsed in the macro 07:58
so if we parsed `[+]`, then the op is infix:<+>
"but what about lexical sco..." -- yep, it all works out
*and that's why we have all that bloody complexity with layers of lexical scoping coming out the wazoo*, so that stuff like this macro will work! 07:59
08:00 bwisti left 08:04 Tonik left 08:06 Cabanossi left 08:08 Cabanossi joined
masak by the way, if there are people here who don't mind pain^Wlong discussions and who have ever wondered why we haven't replaced the {{{ }}} syntax yet with something better, let me suggest you read through github.com/masak/007/issues/30 from beginning to end 08:11
(it's good, I think. it goes deep.)
aha; Zoffix++ had already added a test with afe080a028f91ff1f85d2f9fbb04dc2068eb95c0, so I'm off the hook 08:22
08:27 araujo joined 08:37 Cabanossi left 08:38 benji joined, benji is now known as Guest49604, Guest49604 left, Cabanossi joined 08:39 bseiuhrusid joined
bseiuhrusid Everytime I attempt to 'rakudobrew build moar', I run into the following problem: gist.github.com/anonymous/a0a287c6...f42dfa44d2 08:43
08:43 wamba joined 08:45 kurahaupo joined
bseiuhrusid anyone know how to fix this? 08:47
08:54 bseiuhrusid left 08:57 rindolf joined 09:08 TEttinger left 09:22 z448 joined, z448 left 09:27 RabidGravy joined 09:33 kurahaupo__ joined, sjoshi joined
dalek line-Python: fbee34c | niner++ | / (2 files):
Implement simple importing of Python modules
09:48
line-Python: 49b9bcd | niner++ | / (2 files):
Support: use foo:from<Python>
yoleaux 28 Jan 2017 16:37Z <AlexDaniel> dalek: Please switch this bot to Geth
nine .tell dalek Please switch this bot to Geth 09:49
yoleaux nine: I'll pass your message to dalek.
09:51 cibs left 09:53 cibs joined 09:58 sjoshi left
RabidGravy There is one thing though - Dalek uses the IRC nick whereas Geth uses the name from github 09:59
nine RabidGravy: if that about dalek were true, it'd have said nine++, not niner++ 10:03
RabidGravy Hmm, presumably it has some manually updated list somewhere then 10:04
further to my RPi 2 + 3 comparison yesterday, the "Stage Parse" takes 595.026 on the 2 and ~ 300 on the 3 10:16
10:18 andrzejku_ joined 10:19 Ven joined 10:35 agentzh joined
RabidGravy is this exception catchable? 10:39
m: use v6.d
camelia rakudo-moar d93235: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤No compiler available for Perl v6.d␤at <tmp>:1␤------> 3use v6.d7⏏5<EOL>␤»
10:40 Ven left
nine I hope not? :) 10:40
10:40 ufobat joined, agentzh left
RabidGravy *or* if I wanted to make tests that tried with "v6.d.PREVIEW" if it was available is there a way to do it 10:40
specifically I have stuff that will benefit from jnthn's await changes and would like to start testing where possible 10:42
nine We are definitely going to need an API for querying the supported language version. But even then, I'm not sure how to handle your use case since the use v6.d; should be the very first statement in your compilation unit. 10:45
Maybe if you put the tests in a module and load that only if v6.d is supported. 10:46
You could then write a module that just contains use v6.d.PREVIEW; and require that and if that succeeds load the module with your tests. 10:47
RabidGravy yeah 10:48
10:50 rumble joined
RabidGravy maybe something like "$*PERL.compilers" which returns a list of all the available versions 10:51
10:59 grumble left 11:01 rumble is now known as grumble
RabidGravy makes a super repository of all his modules for purposes of smoke testing 11:05
11:06 Cabanossi left 11:09 Cabanossi joined 11:11 Rawriful joined 11:15 AlexDaniel joined 11:19 parv joined 11:24 lukaramu joined 11:32 pyrimidine left 11:47 parv left 11:51 bjz joined 11:53 bjz_ left
RabidGravy there github.com/jonathanstowe/Perl6-Modules 11:55
that's not all of them, just all the ones that are finished or mostly finished
nine Oh boy, Python 2's string vs. unicode handling is so messed up. 12:03
12:06 sammers left 12:17 sammers joined 12:23 pyrimidine joined 12:29 pyrimidine left 12:34 geekosaur left 12:35 geekosaur joined 12:41 ufobat left 12:43 eeoo joined
moritz which is the reason for Python 3 12:45
12:54 bjz_ joined 12:55 eeoo left 12:56 bjz left
masak well, one of the bigger reasons 12:57
nine Feels like healing pain by inflicting more pain...
moritz there's certainly the pain of upgrading 12:58
but I for one like pytho 3's string handling
I just find it miserable that the regex engine doesn't support Unicode properties
Geth nline-Python: 1ecd114855 | (Stefan Seifert)++ | 3 files
Create wrapper functions for imported Python modules

use string:from<Python>; say string::capwords('foo bar'); # prints "Foo Bar"
13:02
13:02 Tonik joined 13:03 bjz_ left 13:04 bjz joined
masak grmbl; another case of Grammar::Tracer changing the outcome of the parse... :/ 13:04
jnthn: if it's worthwhile for me to document these, I could spend some time writing it up. if not, I'll just skip it. :)
jnthn masak: Or just write a patch that makes the returned closuers have a !NFA method (or some such), perhaps by mixing in a role or smilar, which passes on the NFA of the wrapped-up rule. 13:06
*closures
I'm pretty sure that's what's to blame for the discrepancy
masak jnthn: I see we both wish I were more familiar with that codebase :P 13:08
heh, that reminds me. I never did finish up that series of blog posts about PGE :P
masak .oO( to enjoy this joke, you need to be at least this old ) 13:09
moritz nor the last p6 coding contest
Geth nline-Python: fdf275b4ce | (Stefan Seifert)++ | lib/Inline/Python.pm6
Replace long obsolete sub native trick

Ever since we got support for %?RESOURCES, there has not been a need for a
  "native" sub containing logic to find the library. Perl 6 finds it for us :)
13:12
masak indeed 13:13
there's hope
13:14 vendethiel joined
jnthn There's not that much code in Grammar::Tracer to get familiar with :) 13:14
I'll try and remember to take a look at it. 13:15
If you've time to add a failing test case and mark it todo, that'd be even better :)
13:16 nowan left
MasterDuke masak: do you have some blog posts about PGE? if so, could you paste a link? 13:18
samcv it seems it's not letting me use :exists on a hash?
13:19 nowan joined
jnthn samcv: "it's"? 13:20
m: my %h; say %h<a>:exists
camelia rakudo-moar fdcf46: OUTPUT«False␤»
jnthn m: my %h = a => 42; say %h<a>:exists
camelia rakudo-moar fdcf46: OUTPUT«True␤»
samcv i am going to try and golf it
jnthn Could be a precedence trap
samcv oh maybe 13:21
if ! %PropertyNameAliases_to{$prop}:exists
jnthn I think the one sometimes run into is low-precedence negation (`not`) getting the adverb
samcv precedence maybe because of the !?
jnthn Hm, thought ! was tight enough 13:22
fwiw, I'd probably write :!exists
m: my %h = a => 42; say not %h<a>:exists
camelia rakudo-moar fdcf46: OUTPUT«False␤»
jnthn m: my %h = a => 42; say !%h<a>:exists
camelia rakudo-moar fdcf46: OUTPUT«Unexpected named argument 'exists' passed␤ in block <unit> at <tmp> line 1␤␤»
samcv i seem to be able to access self.VAR.name in augmenting a Hash, but cannot for a string
jnthn Ah, no, I got it the wrong way round. It is !
Geth nline-Python: 7905458a9d | (Stefan Seifert)++ | README.md
Minimalistic documentation of new module importing feature
13:23
samcv m: augment class Hash {
camelia rakudo-moar fdcf46: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤augment not allowed without 'use MONKEY-TYPING'␤at <tmp>:1␤------> 3augment class Hash7⏏5 {␤ expecting any of:␤ generic role␤»
Geth nline-Python: 5a18fc7c57 | (Stefan Seifert)++ | META6.json
Version 0.3
jnthn That's probably because the Hash is the container, but in a string the Scalar is the container, and self is never a Scalar container
samcv m: augment class Hash { method dump { self.VAR.name ~ ': ' ~ self } }; my $s = 'string'; say $s.dump
camelia rakudo-moar fdcf46: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤augment not allowed without 'use MONKEY-TYPING'␤at <tmp>:1␤------> 3augment class Hash7⏏5 { method dump { self.VAR.name ~ ': ' ~␤ expecting any of:␤ generic role␤»
samcv m: use MONKEY, augment class Hash { method dump { self.VAR.name ~ ': ' ~ self } }; my $s = 'string'; say $s.dump 13:24
camelia rakudo-moar fdcf46: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Confused␤at <tmp>:1␤------> 3use MONKEY7⏏5, augment class Hash { method dump { sel␤»
samcv m: use MONKEY; augment class Hash { method dump { self.VAR.name ~ ': ' ~ self } }; my $s = 'string'; say $s.dump
camelia rakudo-moar fdcf46: OUTPUT«No such method 'dump' for invocant of type 'Str'␤ in block <unit> at <tmp> line 1␤␤»
samcv m: use MONKEY; augment class Str { method dump { self.VAR.name ~ ': ' ~ self } }; my $s = 'string'; say $s.dump
camelia rakudo-moar fdcf46: OUTPUT«No such method 'name' for invocant of type 'Str'␤ in method dump at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
samcv yeah
jnthn method dump(\SELF:) { SELF.VAR.name } # or some such
samcv m: use MONKEY; augment class Hash { method dump { self.VAR.name ~ ': ' ~ self } }; my %h; say %h.dump
camelia rakudo-moar fdcf46: OUTPUT«%h: ␤»
samcv thanks jnthn :) 13:25
jnthn np 13:26
samcv ===SORRY!===
When invoking 5693 'parameterize', provided outer frame 0x55870ef5e2e0 (572 'quote:sym<s>') does not match expected static frame 0x55870f6a1698 (5694 '')
jnthn o.O 13:27
Ain't seen that error for months...
lunch time; bbl 13:28
samcv k
13:33 cdg joined
brokenchicken samcv: the ≔ is in Perl 7. I find "get a better font" a poor argument as that'd be a reason any style book would advocate against its usage so we'd be adding and supporting something we can't in good conscience advocate the use of. 13:36
samcv can't see unicode quotation marks, get a better font?
so can't advocate their use?
idk it looks fine with my font 13:38
wider even than a =
this is monospace btw
13:38 cdg left
samcv brokenchicken, a.uguu.se/pWubmIIS8UJS_Screenshot_...053857.png they seem pretty easy to tell apart to me 13:39
13:39 cdg joined
MasterDuke i think it's reasonable to have as a requirement that the source code be readable with the default font from a clean install of the common OSes (windows, macos, debian, red hat, ubuntu, fedora, etc) 13:39
samcv and what font is that? 13:40
so we can't use things that the 'default' font doesn't render properly? 13:41
i've checked several monospace fonts i've used and they seem to render ≔ wider than =
Noto Mono for sure renders it fine 13:43
brokenchicken samcv: no support for a mark is different than mark is rendered too similar to something else on many fonts. But the incident with cale2 last night shows just how much confusion it causes. He thought a qoute was missing. I wouldn't want my devs wasting their time trying to set up some Right Font™ just so they would not make a fuck up that would cost me more money
Actually, I fully expect all Best Practice guides to advocate against fancy ops. 13:44
samcv i mean we already have plenty of those
set operators, what if peoples fonts don't have those? should we just have not added those in?
xiaomiao 'defaults' as in the standard ASCII character range? anything beyond that is not guaranteed to work 13:45
brokenchicken We actually have a good test for it already. Any time I wrote @a ∖ @b in a channel people thought it was a backslash.
samcv well just install normal fonts
xiaomiao samcv: what does that mean ...
13:45 obfusk_ left
samcv there's plenty of availible fonts that cover lots of symbols, like the Noto fonts 13:46
brokenchicken samcv: again, the argument is the similarity, not missing glyphs
samcv freely available
13:46 obfusk joined
samcv ah ok i guess that's a little different? 13:46
brokenchicken Lots different.
13:46 cdg left 13:47 cdg joined
samcv sorry you brought up cale2 having a missing font, so i thought you were also using that as an argument. but i guess similarity is ok. and := is pretty easy to see and pretty close to the actual symbol 13:47
13:47 pyrimidine joined
brokenchicken dogbert17: why the dupe ticket? 13:51
Even wording is the same... 13:52
brokenchicken assumes accidental re-send and closes it
samcv m: my %hash = this => 'that'; if !%hash{'that'}:exists { say ‘it's not there’ } 13:56
camelia rakudo-moar fdcf46: OUTPUT«Unexpected named argument 'exists' passed␤ in block <unit> at <tmp> line 1␤␤»
samcv this has affected me so many times
13:56 cdg left
samcv is there anything that can be done about it? 13:56
lizmat m: my %hash = this => 'that'; if %hash{'that'}:!exists { say ‘it's not there’ } 13:57
camelia rakudo-moar fdcf46: OUTPUT«it's not there␤»
lizmat samcv: use :!exists
samcv so is that a no?
yeah jnthn told me about i can do :!exists
lizmat ah, yes, that's a no
samcv is there anyway to improve the error reporting then?
lizmat consult jnthn TimToady for more info
adverbs attach to the outer expression 13:58
SmokeMachine timotimo: I think I got it... www.irccloud.com/pastebin/G24l8JVW/
lizmat so it attached to the !
and prefix<!> doesn't accept :exists as a parameter
perhaps we could make a prefix<!> candidate with :$exists! and then make that an improved error message 13:59
brokenchicken
.oO( make it accept it and throw a better error... )
lizmat but in the past jnthn has been sorta against that type of fixing 14:00
brokenchicken OK :)
It's the right of passage to Perl 6. Learning the precedence of prefix ops and methods :) 14:01
lizmat nobody's stopping anybody making it a PR and have a discussion about it :-)
brokenchicken m: try q|m: my %hash = this => 'that'; if !%hash{'that'}:exists { say ‘it's not there’ }|.EVAL; say $!.^name 14:02
camelia rakudo-moar fdcf46: OUTPUT«X::AdHoc␤»
brokenchicken A lot of improvement could be achieved by simply making that error say to WHERE the unexpected argument was passed.
samcv ^
brokenchicken hm, s/simply//; Doesn't look like the name is anywhere close to where that error is made. 14:04
14:06 aindilis` joined 14:08 aindilis left 14:11 CIAvash left 14:14 bjz left
brokenchicken Any idea where "repr-compose-protocol.markdown" the internals course mentions is at? 14:20
Ah github.com/perl6/nqp/blob/master/d...l.markdown
14:28 rindolf left 14:29 rindolf joined 14:31 mxco86 left
brokenchicken m: my $x = 42; $x.^set_name('heh'); say WHAT $x 14:31
camelia rakudo-moar 7e9850: OUTPUT«(heh)␤»
brokenchicken :D
14:32 ggoebel left
samcv heh 14:33
14:33 z448 joined 14:36 z448 left 14:37 agentzh joined, sammers left 14:41 agentzh left 14:45 ggoebel joined 14:50 sammers joined, khw joined 14:51 Cabanossi left 14:53 Cabanossi joined
moritz m: my $x = 42; $x.^set_name('heh'); say WHAT Int 15:04
camelia rakudo-moar 7e9850: OUTPUT«(heh)␤»
moritz m: role a { }; a.^set_name('foo'; say a.^name 15:05
camelia rakudo-moar 7e9850: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in argument list; couldn't find final ')' ␤at <tmp>:1␤------> 3le a { }; a.^set_name('foo'; say a.^name7⏏5<EOL>␤ expecting any of:␤ postfix␤»
moritz m: role a { }; a.^set_name('foo'); say a.^name
camelia rakudo-moar 7e9850: OUTPUT«foo␤»
moritz and here I thought roles were immutable
brokenchicken m: role a { }; a.^add_method: "foo", -> {say "hi"}; a.foo 15:06
camelia rakudo-moar 7e9850: OUTPUT«No such method 'add_method' for invocant of type 'Perl6::Metamodel::ParametricRoleGroupHOW'␤ in block <unit> at <tmp> line 1␤␤»
15:09 espadrine_ joined
moritz mostly they're immutable because nobody besides jnthn++ and TimToady++ fully comprehend roles semantics :-) 15:14
15:15 zakharyas joined
brokenchicken m: class x { has $!y }; role a {}.^add_attribute: x.^attributes[0]; a.^attributes.say 15:16
camelia rakudo-moar 7e9850: OUTPUT«(Mu $!y)␤»
brokenchicken m: class x { has $!y }; role a {}; a.^add_attribute: x.^attributes[0]; a.^attributes.say
camelia rakudo-moar 7e9850: OUTPUT«No such method 'add_attribute' for invocant of type 'Perl6::Metamodel::ParametricRoleGroupHOW'␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken don't get how that method dissapears tho 15:17
moritz I guess immutable doesn't apply when you use the MOP
TimToady a.^add_attribute is not Perl 6 :P
moritz brokenchicken: roles are basically like multis, and you can only add an attribute to one candidate, not to the whole thing 15:18
brokenchicken Ah. Thanks
moritz and the name refers to the whole collection (hence RoleGroup in the name of the meta class)
speaking of roles 15:19
I'm still looking for a good example for my book to explain roles
preferably something where their use is idiomatic, and something that's practical (no animal/mammal/pet example please) 15:20
any ideas?
15:21 araujo left, cog_ left 15:22 FROGGS joined
moritz similarly, I'm looking for a good example to explain some aspects of functional programming in Perl 6 15:22
15:23 pyrimidine left 15:24 pyrimidine joined 15:34 perlawhirl left
SmokeMachine moritz: isn't Positional a practical and good example of role? 15:35
moritz SmokeMachine: well, I want to present a practical program that a user can (or could) use, which makes use of roles 15:36
that's how the book is structured: explain a problem, develop a solution, and talk about the Perl 6 features used in the solution 15:37
SmokeMachine moritz: I got it... sorry...
moritz no problem
Geth ook: WildYorkies++ created pull request #87:
Update subs and sigs
15:40
15:52 wizard_ joined
wizard_ Hi, 15:52
moritz ho! 15:53
wizard_ I wanted to write a web Application using perl6, I tried to research on that there are lot of different options but I also saw that it was still under development, Is there anything like mojolicious for perl6 which I can use 15:55
moritz wizard_: you can use p5's Mojolicious using Inline::Perl5; or you can use something like ugexe.com/hello-web-with-puree-perl-6/ which is pure Perl 6 15:56
or Dancer
nine wizard_: I happen to write a talk about this exact topic :) niner.name/talks/Web%20development%...0Perl%206/ 16:00
wizard_: input for the talk greatly appreciated. Especially if there's something you'd like to hear/read more about. 16:01
wizard_: Or if I missed something which you came across
wizard_ thank you very much
I will look into it 16:02
16:04 CIAvash joined
timotimo SmokeMachine: please note that BUILDALL runs every single time an instance is created, so every time you .new one of your objects, you'll add another layer of wrap. at least i think so. try putting a "say" in before the with ::?CLASS etc etc 16:05
wizard_ to connect to the database, where DBIsh is used, so if I want to connect to MongoDB/ElasticSeach , should I use the standard Perl driver from Mongo DB and Search::ElasticSearch module 16:06
16:06 domidumont joined 16:07 Cabanossi left
mst SmokeMachine: why would you do this on BUILDALL rather than just setting stuff up once? 16:08
I think perhaps you could use an attribute trait instead?
16:08 Cabanossi joined
nine wizard_: there's the MongoDB Perl 6 module. If that doesn't work out for you, you can use appropriate modules from Perl 5. 16:09
wizard_ thank you, and for elasticsearch , search::Elasticsearch ? 16:10
nine As I don't find any Perl 6 module for ElasticSearch, Search::ElasticSearch seems the way to go 16:11
16:11 pmurias joined
wizard_ cool thanks a ton! 16:11
RabidGravy An ElasticSearch module has been on my TODO for ages 16:14
or even an apache Lucy binding
the former isn't that *hard* there's just a lot of it 16:15
SmokeMachine timotimo: you are right... :( 16:16
wizard_ that would be great if there's a module :)
SmokeMachine mst: because I need to access the $!dirty...
wizard_ Elasticsearch is widely being used these days
mst that's because, unlike mongodb, it's actually useful 16:17
SmokeMachine mst: and it can't be done on a object type method...
mst SmokeMachine: well what you're doing is bizarre and polluting the class so is obviously wrong 16:18
SmokeMachine mst: I agree... 16:19
mst this is why I was wondering about attribute trait
you might be able to get at slots that way
if you can't, maybe create a _set_dirty private method and call that?
16:19 pyrimidine left
timotimo you mean !set_dirty :) 16:19
perl6 has real private methods 16:20
16:20 pyrimidine joined
SmokeMachine thats a good idea! 16:20
mst timotimo: my fingers don't know that yet
16:20 bwisti joined
timotimo :) 16:22
CIAvash samcv: Noto Mono doesn't seem to have ≔, I'm guessing another font is rendering it for you. I checked it in Emacs and GNOME Character Map.
samcv hm 16:23
jdv79 I like how the HTTP::Tinyish t tests are just a compile test and xt has the real tests 16:29
can't decided if that's hilarious or exasperating
16:30 cognominal joined
[Coke] . 16:35
RabidGravy I'm actually considering that for Audio::Liquidsoap as I can't make the tests pass reliably everywhere
;-)
16:36 Cabanossi left
RabidGravy I've also completely shagged the jenkins on my test server 16:36
16:38 Cabanossi joined
jdv79 why... would you simply silently stop parsing http headers if you don't see "HTTP/\d.\d" 16:38
HTTP/2 is valid, right?
nine Looks like Bailador is broken and nobody noticed :/ "Nothing given for new socket to connect or bind to in method connect" 16:40
jdv79 i personally would die instead of return but ok
RabidGravy well arguably an HTTP request is valid without the HTTP version at all
jdv79 that's true. but a resp is not, rght? 16:41
RabidGravy well it's the "be liberal what you accept, conservative what you produce" thing 16:42
which I think people have lost sight of in the last few years
brokenchicken jdv79: are you still talking about HTTP::Tinyish? It's just a wrapper around curl. I doubt it does any parsing of anything. 16:43
nine And HTTP::Server::Tiny even fails to install 16:45
16:45 geekosaur left 16:46 geekosaur joined
jdv79 brokenchicken: it does and yes im talking about it and i'm filing a bug now 16:46
simple bug
but curious handling 16:47
16:47 cygx joined
cygx o/ 16:47
nine: from the slides you linked: "naked "
code blocks don't care about arguments
they do, they just bind a single positional argument to $_ 16:48
nine cygx: yes, it might be a bit of an over simplification
brokenchicken m: {}.signature.say 16:49
camelia rakudo-moar 7e9850: OUTPUT«No such method 'signature' for invocant of type 'Hash'␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: {;}.signature.say
camelia rakudo-moar 7e9850: OUTPUT«(;; $_? is raw)␤»
16:50 melezhik left 16:53 melezhik joined
cygx m: say :($a; $b); say :($a;; $b) 16:58
camelia rakudo-moar 7e9850: OUTPUT«($a, $b)␤($a;; $b)␤»
cygx ^^ curious
(and, as far as I can tell, undocumented) 16:59
brokenchicken cygx: ; is just another way to write ,
Whereas ;; is a multi-dispatch consideration marker thing
17:00 kybr left
brokenchicken .seen toolforger 17:01
yoleaux I saw toolforger 28 Jan 2017 10:13Z in #perl6: <toolforger> lizmat, rakudobugs are in and confirmed
17:03 kybr joined
RabidGravy okay unbroken my local jenkins, it is now building a rakudo with 572 changes since the last time it worked 17:10
(which was 6 December,) don't know what broke it 17:14
jdv79 what's the p6 equiv of p5's delete local $h{$k}? 17:15
moritz temp %h = %h; %h{$k}:delete; # iirc 17:16
brokenchicken temp %h; %h{$k}:delete 17:17
jdv79 thanks 17:18
brokenchicken jdv79: or (temp %h){$k}:delete
jdv79 what's a terse way to check for a bool hash value that'll explode if its not that - like non-existance. 17:20
brokenchicken not that is not what?
moritz die unelss %h<key> ~~ Bool; 17:21
jdv79 not a bool
moritz *unelss 17:22
argl
*unless
jdv79 rather, true
moritz die if %h<key> !=== True
jdv79 ah, thanks
17:25 ufobat joined
brokenchicken m: %.<key> // … 'y u no key?' 17:26
camelia rakudo-moar 7e9850: OUTPUT«y u no key?␤ in block <unit> at <tmp> line 1␤␤»
timotimo 17:29
brokenchicken m: %.<key> || ??? 'y u no key?' 17:32
camelia rakudo-moar 7e9850: OUTPUT«Use of Nil in string context␤ in block <unit> at <tmp> line 1␤Warning: something's wrong␤ in block <unit> at <tmp> line 1␤»
brokenchicken nil? 17:33
moritz m: ??? 'foo' 17:34
camelia rakudo-moar 7e9850: OUTPUT«foo␤ in block <unit> at <tmp> line 1␤»
brokenchicken m: %.<key> || (??? 'y u no key?')
camelia rakudo-moar 7e9850: OUTPUT«Use of Nil in string context␤ in block <unit> at <tmp> line 1␤Warning: something's wrong␤ in block <unit> at <tmp> line 1␤»
brokenchicken prolly not meant to be used that way
moritz brokenchicken: is it maybe parsed as %(.<key> || ??? '...') ?
brokenchicken That 17:35
That'd be weird
moritz brokenchicken: and the ??? returns a Nil that the %() tries to stringify
brokenchicken m: (%.<key>) || (??? 'y u no key?')
camelia rakudo-moar 7e9850: OUTPUT«Use of Nil in string context␤ in block <unit> at <tmp> line 1␤Warning: something's wrong␤ in block <unit> at <tmp> line 1␤»
moritz there is no %. variable, to the best of my knowledge
brokenchicken But there's % :)
moritz m: %.<key>
camelia ( no output )
moritz m: %.<key> || 'foo'
camelia rakudo-moar 7e9850: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤»
brokenchicken hm
Oh that one is correct 17:36
Ah
moritz I still think %.<key> actually does %$_.<key>
brokenchicken m: Nil
camelia ( no output )
brokenchicken m: $_ = %(foo => 42); %.<foo> = 72; dd $_ 17:37
camelia rakudo-moar 7e9850: OUTPUT«Hash $_ = ${:foo(42)}␤»
17:37 Azzham joined 17:38 Azzham left
brokenchicken m: $_ = %(foo => 42); dd %.<foo>; dd $_ 17:38
camelia rakudo-moar 7e9850: OUTPUT«Any % = Any␤Hash $_ = ${:foo(42)}␤»
brokenchicken m: my %h; %h<key> || ??? 'y u no key?'
camelia rakudo-moar 7e9850: OUTPUT«Use of Nil in string context␤ in block <unit> at <tmp> line 1␤Warning: something's wrong␤ in block <unit> at <tmp> line 1␤»
17:39 Cabanossi left 17:40 Cabanossi joined
brokenchicken m: %.<key> // ??? 'y u no key?' 17:44
camelia rakudo-moar 7e9850: OUTPUT«y u no key?␤ in block <unit> at <tmp> line 1␤»
17:45 wizard_ left
timotimo wait wtf 17:48
17:48 geekosaur left, CIAvash left
timotimo ??? "y u no key" calls sink on X::StubCode.new 17:48
not only does the string not appear in the ast output, but it also outputs 17:49
Oops!!! Cannot invoke this object (REPR: P6opaque; NQPMu)
17:49 geekosaur joined
timotimo it actually outputs that error twice during --target=ast 17:49
something is Seriously Wrong here
potentially sink-related differences between // and ||? 17:50
brokenchicken yeah. And // version also has the Oops but only once.
And the || version has a void Want but // doesn't
m: Int || 'foo' 17:53
camelia rakudo-moar 7e9850: OUTPUT«WARNINGS for <tmp>:␤Useless use of constant string "foo" in sink context (line 1)␤»
brokenchicken m: Int // 'foo'
camelia ( no output )
17:53 pyrimidine left, setty1 left
brokenchicken m: (??? 'foo').sink.say 17:54
camelia rakudo-moar 7e9850: OUTPUT«foo␤ in block <unit> at <tmp> line 1␤Nil␤»
timotimo so the result of sinking ??? 'foo' is what gives us the Nil use
but how do we end up not having foo in the AST at all when we have a // bfore that... 17:55
brokenchicken dunno about the Nil... 'cause the output with || doesn't output the message given to 'foo' but just the default thing; and I suspect the Nil warning is due to @msg.join in warn
I'd guess the message is meant to be under StubCode but it doesn't get displayed past the Ooops thing 17:56
17:56 cygx left
timotimo yeah 17:57
that's potentially what output that oops. i haven't looked at that output to see if it does anything strange to control flow that'd make it just disappear
18:07 curt__ joined 18:08 Cabanossi left 18:10 Cabanossi joined 18:25 hankache joined
brokenchicken curses all the programs that use CTRL+W to close tab and CTRL+Q—which is right next to CTRL+W—to close entire program 18:30
Atom in particularly -_-- 18:31
Juerd ctrl+w is evil enough. I'm used to that erasing the previous word, not the entire page... 18:33
18:34 agentzh joined, espadrine_ left
tadzik oh yes 18:36
but I'm still more pissed about screen's default C-a
you're unix people, you're supposed to know it means something!
and then tmux comes around and “improves” that... by using C-b
grumble grumble 18:37
Juerd But at least ^AA is still available for when you need a real ^A 18:41
It's like ~ being special in telnet and ssh, after a newline. Just escape it with another ~
18:45 setty1 joined 18:46 girafe joined, jeek left 18:47 TEttinger joined
tadzik yeah, but it's still a silly default 18:48
imo
Geth oc: JJ++ created pull request #1168:
Adds definition for Repository
18:52
18:53 agentzh left 18:55 Tonik left
Geth oc: d9485954e9 | (JJ Merelo)++ | doc/Language/glossary.pod6
Adds definition for Repository
18:57
oc: 0791485950 | (Zoffix Znet)++ | doc/Language/glossary.pod6
Merge pull request #1168 from JJ/master

Adds definition for Repository
brokenchicken "Method caches hang off an STable"... I keep hearing this "hang off..." phrase. What does it mean? 18:58
19:03 agentzh joined
MasterDuke i interpret it as "method caches are a data structure which STable has a pointer to", but i wouldn't bet large sums on that being 100% correct 19:05
19:05 ufobat left
brokenchicken :) 19:06
19:06 dugword joined 19:07 darutoko left 19:08 Cabanossi left 19:10 Cabanossi joined 19:14 zakharyas left
AlexDaniel m:dd %42 19:14
m: dd %42
camelia rakudo-moar 7e9850: OUTPUT«Hash % = {}␤»
agentzh gfldex brokenchicken: i wrote a merge script that concate all my 8K LOC p6 code into a single .p6 file. now it always takes around 7 sec to complete. 19:16
it's even faster than a typical partial build after editing an arbitrary single .pm6 compilation unit, which usually takes 7 ~ 13 sec.
it's amazing to see compiling an all-in-one script is even faster than a partial build. 19:17
19:17 jeek joined
agentzh not to mention it is significantly faster than a full from-scratch build of every well divided compilation units. 19:17
*of all those
19:18 pyrimidine joined
agentzh which takes 31 sec. 19:18
Geth oc: d8730a58c9 | (JJ Merelo)++ | doc/Language/glossary.pod6
Adds pugs
oc: 7ac5c1f589 | (JJ Merelo)++ | doc/Language/glossary.pod6
Extends PR with reference to Replsitory
oc: 274142ebeb | (JJ Merelo)++ | doc/Language/glossary.pod6
Fiddly and iffy and diffy

I have no idea what they are, so I'll leave just the reference which is kind of circular and will find out.
agentzh but still, 7 sec is still far from good enough for test-driven development workflow.
brokenchicken Sure. We don't claim we've reached the top speed yet :) 19:19
agentzh the bearable limit is around 2 sec ~ 3 sec, IMHO.
brokenchicken: no, i was not expecting top speed, i was just hoping for human bearable speed for prototyping purposes :) 19:20
MasterDuke samcv and i each have a moarvm PR waiting for review/merge which should improve that by maybe 0.001s
samcv heh
MasterDuke 0.002s if you use a lot of Unicode Nd chars as digits 19:21
agentzh MasterDuke: 0.001s for every p6 statement? if yes, then that would be impressive for an 8K LOC code base :)
samcv agentzh, that's a pretty big change
MasterDuke agentzh: ha, total
brokenchicken I thought I saw somewhere nqp::radix is gonna be 50% faster? 19:22
samcv not as much as 50% speed boost tho ;)
yeah
i have a PR that does that
brokenchicken sweet
samcv for non ascii chars it's 50% faster
19:22 hankache left
brokenchicken Oh. And for ascii? 19:22
MasterDuke for Unicode digits
samcv most likely the same speed
19:22 pyrimidine left
brokenchicken Ah. OK 19:22
MasterDuke my PR improves everything, but very slightly
samcv 50% faster when it sees any non ascii digits
idk does that also happen when the number ends? 19:23
lizmat :q
oops
agentzh unfortunately i'm not using non-ascii chars in my current project (yet).
samcv "10 " i mean does it ever encounter like non number chars
or does it basically only process numbers
agentzh but still good to see speedup!
samcv or does it have to find a stopping point?
lizmat .001 improvement for every p6 statement would make setting building in negative time ?
agentzh lizmat: lol 19:24
lizmat setting being something like 50K lines
ok, just parsing in negative time then
parsing takes about 47 seconds for me nowadays :-)
brokenchicken samcv: it'd process that as 10 and one of the return values would tell you offset where it stopped
agentzh lizmat: in my measurement, now each p6 statement takes 0.0052s on average in the comiplation. 19:25
lizmat: so won't be negative.
just 20% better, i think
lizmat ok, so 20% better: I'll take that
Geth oc: c6eda71ce9 | (JJ Merelo)++ | doc/Language/glossary.pod6
Definning the three stooges of categories

iffie, diffie and fiddly. Defined according to copied IRC chat from
  @timtoady as transcribed by @kalkin in #728
Definitely not contributed to clean up the page, rather the obverse, but I'm all in for cleaning, dirtying, or whatever is decided about this page.
brokenchicken m: use nqp; say nqp::radix(10, '10blarg', 0, 0)[2]
camelia rakudo-moar 7e9850: OUTPUT«2␤»
brokenchicken m: use nqp; say nqp::radix(10, '100000rg', 0, 0)[2]
camelia rakudo-moar 7e9850: OUTPUT«6␤»
agentzh lizmat: the actual number should be worse than 0.0052s though since i'm counting lines with a sole '}' char as a statement in my current estimation :) 19:26
samcv m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.max
camelia rakudo-moar 7e9850: OUTPUT«9 => nin␤»
samcv also it is odd this doesn't evaluate numerically? 19:27
but i guess you can call .max on all letter things
brokenchicken s: %, 'max', \() 19:28
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/7e98...s.pm#L1217
agentzh TimToady: one thing i'm really missing in perl 6 grammars is the feature of automatic parse error reporting, like in Parse::RecDescent: metacpan.org/pod/Parse::RecDescent...r-handling 19:29
samcv i mean it just calls cmp on them, so since they're strings, they just compare as strings
so i end up doing %hash.keys.».Int.max 19:30
though i guess maybe i could keys.sort(+*).max too?
nvm that don't work either
brokenchicken m: my %hash := :{0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'}; say %hash.max
camelia rakudo-moar 7e9850: OUTPUT«10 => ten␤»
samcv could do %hash.keys.sort(-*)[0] 19:31
brokenchicken m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.max: +*.key
camelia rakudo-moar 7e9850: OUTPUT«10 => ten␤»
samcv hmm 19:32
weird that .max sorts properly but .keys.max doesn't
i know there is a reason they don't but still wouldn't expect it as the user initially
brokenchicken m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.keys.max 19:34
camelia rakudo-moar 7e9850: OUTPUT«9␤»
samcv m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.max
camelia rakudo-moar 7e9850: OUTPUT«9 => nin␤»
brokenchicken Looks propper to me
samcv m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.keys.max
camelia rakudo-moar 7e9850: OUTPUT«9␤»
brokenchicken m: my %hash := {0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'}; say %hash.keys.max 19:35
camelia rakudo-moar 7e9850: OUTPUT«9␤»
brokenchicken that doesn't :S
samcv i guess i'll use .max: +*.key then
brokenchicken m: my %hash := {0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'}; say %hash.keys[0].^name
camelia rakudo-moar 7e9850: OUTPUT«Str␤»
brokenchicken dafuq
Oh, I missed the second : :) 19:36
m: my %hash := :{0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'}; say %hash.keys.max
camelia rakudo-moar 7e9850: OUTPUT«10␤»
brokenchicken \o/
samcv is considering using Inline::Perl5 and generating the UCD data in perl6 and then using perl 5 to write it to the file 19:37
cause that is what takes the most time
is after i have all the data setup, takes forever to like. put it in rows and crap
lizmat samcv: are you using printf ? 19:40
19:41 rba_ left
samcv yes i guess? 19:42
sprintf
19:43 pyrimidine joined
brokenchicken it's pretty slow 19:43
lizmat it's the parsing of the format every time you call it, that's making it slow
it uses a grammar :-)
brokenchicken :)
lizmat fwiw, I'm not sure why it needs a grammar 19:44
taking sprintf out of List.fmt recently, made it 60x faster
brokenchicken :o
samcv oh i'm not even using it that much 19:46
just in a few places, nowhere that gets called a ton
i don't think? can check
yeah no i use nqp::base_I() to convert from integers to strings 19:47
19:47 wamba left
lizmat samcv: then I have no explanation for the slowness 19:47
samcv this one is pretty slow github.com/samcv/UCD/blob/master/U...en.p6#L650
it used to take like 10+ times longer before i started nqp optimizing it 19:48
19:48 wamba joined
samcv i might make %code-to-prop and %prop-to-code nqp hashes to try and get more speed or something 19:48
and the point mapping for the bitfield is already a nqp array because it took a million years to make that one before i did that 19:49
lizmat github.com/samcv/UCD/blob/master/U...en.p6#L664 19:50
samcv that part only runs for less than a second
lizmat have you tried: sort({%enumerated-properties{$^a}<bitwidth>})
samcv but i'm sure you could make it faster
with only $^a?
lizmat yes 19:51
it will do a schwartzian transform for you under the hood
samcv nope. though this is where the slowness happens github.com/samcv/UCD/blob/master/U...en.p6#L677
lizmat samcv: why is code-to-prop a hash ? 19:52
why not an array ?
samcv uhm
i guess i could make it an array
can't make prop-to-code an array tho
lizmat seems to take a monotonically increasing integer key 19:53
samcv yea
lizmat which spells "array" to me... possible even a str array
samcv i will generate a minimal build, commit that to the source repo and then we can play aronud with it
so we make sure it doesn't change the output 19:54
AlexDaniel m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.max 19:55
camelia rakudo-moar 7e9850: OUTPUT«9 => nin␤»
AlexDaniel m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.maxpair
camelia rakudo-moar 7e9850: OUTPUT«No such method 'maxpair' for invocant of type 'Hash'␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel m: my %hash = 0 => 'zero', 1 => 'one', 10 => 'ten', 9 => 'nin'; say %hash.maxpairs 19:56
camelia rakudo-moar 7e9850: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5one' (indicated by ⏏)␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
AlexDaniel why does it attempt to numify it?… 19:57
lizmat AlexDaniel: maxpairs assumes values are numbers
it came from Baggy/Mixy
samcv so with this minimal build takes 90s to generate the bitfield rows. now gonna make a few of those changes
i wish we had macros 19:59
lizmat nudge masak :-) 20:02
20:03 agentzh left
moritz samcv: no idea if anybody mentioned that, but quietly + warnings is likely expensive; avoiding the warnings in the first place is typically faster 20:05
samcv well it prints tons of warnings
and i have no clue why
let me find the error
moritz find where they come from, and sprinkle some // '' or // 0 in
lizmat moritz++ 20:06
20:08 agentzh joined, domidumont left
samcv well it comes from the iterator 20:09
or something 20:10
i will get back to you when i get some info on it
lizmat what is the warning exactly, samcv?
samcv once i finish this thing i will undo the quietly 20:11
20:13 cognominal left, skids joined 20:16 Vynce joined
samcv weird. i removed it and it didn't warn for every single iteration 20:17
dunno if related to recent changes to rakudo but if i didn't have quietly it would warn me about something used in string context on the line that was `for %points.keys.sort(+*) -> $point {` 20:18
and it didn't make any sense at all
lizmat what was that something ?
samcv it didn't tell me 20:19
lizmat so it said "used something in string context" ?
samcv Use of uninitialized value of type Any in string context
something like that
lizmat ah, ok 20:20
20:20 espadrine_ joined
samcv yeah it didn't tell me what it was 20:20
lizmat no it did, it was an Any
samcv and the values were iniialized cause i could print them out each loop and i checked 20:21
lizmat m: dd Any
camelia rakudo-moar 7e9850: OUTPUT«Any␤»
samcv yeah but.
none of the keys or values were Any, i could print them all out fine in the loop
so i am not sure where the Any came from
timotimo agentzh: does your code happen to use a whole lot of sub infix:<foo> or similar? 20:23
lizmat hmnmm
samcv: you'r doing %points.keys.sort(+*), which implies that the keys of %points are Str or at least Cool
agentzh timotimo: nope
samcv lizmat, yep 20:24
they are ordinary keys
default
lizmat ok
agentzh timotimo: i haven't defined any custom operators yet.
lizmat samcv: I just blew up my line of reasoning... :-)
agentzh timotimo: i just have a .Str() method in one of my 46 classes.
samcv lol
agentzh, you don't have enough classes. 20:25
should have 2000
for optimim compiling speed
and augment everything
that's how you turn on the turbo speed
timotimo OK. we do know that defining many infixes/prefixes/whatever makes compile times blow up a whole lot
samcv ;P
20:25 dugword left
agentzh samcv: lol 20:26
samcv lizmat, so we're down to 72 seconds down from 90 i think, or 80?
lizmat you said 90 before
samcv same final output, i think the removing the quietly. so that's a good improvement
will be magnified greatly for full builds
gonna try some of the other things now :)
lizmat well, removing the warnings would be better
agentzh samcv: i have another perl 5 project waiting to be ported over to perl 6, which has 69 classes, way more than my current one :) 20:27
20:27 awwaiid joined
agentzh samcv: most of the classes are for AST node types. that's why there are many. 20:27
samcv just make them all the same class! genius! samcv you really are smart!
lizmat timotimo: what's the whatever ? subs in general ?
agentzh samcv: these are compilers.
samcv problem fixed
ah cool :) 20:28
agentzh samcv: we're hacking on our own perl 6 dialect compiler.
using rakudo as the reference p6 impl during testing and development. 20:29
samcv i should make a grammar someday that does Unicode regex notation or something
20:29 b2gills left
samcv it will probably happen somewhere down the road 20:29
20:29 b2gills joined
samcv nice 20:29
agentzh hopefully ours is much more practical than rakudo in terms of compilation speed and runtime speed.
samcv and how are you achieving this magic? 20:30
agentzh Perl has to be Practical :)
moritz agentzh: do you have a link for us? 20:31
agentzh moritz: not yet, it's still under development.
samcv top secret club
agentzh moritz: a simple fib(35) recursive p6 program is already 10x faster than rakduo and 2x faster than perl 5.
but that's just a toy.
we've implemented a lot of perl 6 common features already, including OO. 20:32
targeting LuaJIT.
and OpenResty
moritz agentzh: that's great; I hope you can keep up the performance as you add more features 20:33
agentzh moritz: thanks. yeah, we haven't really started optimizations yet.
MasterDuke agentzh: have you run it against roast? if so, what % of it passes?
moritz (or decide to implement only a well-defined subset to keep performance)
agentzh moritz: the goal is to make our p6 compiler generate code that is times faster than perl 5.
perl 5 is our performance reference.
rakudo is our functionality reference. 20:34
samcv how do you plan to implement NFG string types?
agentzh MasterDuke: not yet. but we'll get to that.
samcv: i think we'll just implement features we will use ourselves when creating other compilers. 20:35
like PHP/Python/Ruby/JS on LuaJIT.
it's part of our company's business.
MasterDuke agentzh: any blog posts or articles written about it?
agentzh so we have a team working on these.
samcv so you are not planning on implementing it?
or it is not planned yet? 20:36
agentzh MasterDuke: will definitely write a few. we're still in the early phase.
samcv i could always help out if this becomes profitable
MasterDuke cool, look forward to them!
timotimo lizmat: no, not subs in general, just stuff that adds to EXPR somehow 20:37
it forces the NFA to have stuff added to it and then the optimizer runs over the whole thing again
samcv lizmat, now from 72 down to 52 seconds :)
timotimo so the first time it optimizes the whole core grammar NFA, then it optimizes that + a bit, then that + another bit, then that + one more extra bit
lizmat samcv: cool 20:38
timotimo so the work it has to do increases in a stupid way
TT recently started working on something that'll let us do this more efficiently
lizmat TT ?
20:38 Cabanossi left
japhb TimToady, I presume. 20:39
yoleaux 23 Jan 2017 14:01Z <jnthn> japhb: Probably setting the encoding to ASCII might do it too. Otherwise, use .read(1) - after all, you're after bytes, not chars.
timotimo yup
i couldn't backlog today, anything good happen? :)
20:40 Cabanossi joined
brokenchicken Yes! Perl 7 can do classes now! 20:40
:)
gfldex timotimo: believe it or not, there was another should-I-use-unicode-operators-discussion :-> 20:41
MasterDuke timotimo: if you didn't backlog #moarvm, jnthn and i figured out why i didn't see radix being JITted. turns out moar won't jit the mainline of an NQP program, had to put it in a sub
20:42 jferrero joined
MasterDuke which led to github.com/MoarVM/MoarVM/pull/514 20:42
timotimo oh!! 20:43
were you able to find any performance improvement with the two things?
food time :) 20:44
MasterDuke 20m iterations of nqp::radix() (with just ascii chars) was 1s faster (7s -> 6s)
20:45 agentzh left 20:47 agentzh joined
agentzh samcv: not yet planned. 20:48
samcv: maybe at some point in the future. not sure. not a priority right now. 20:49
20:51 bjz joined
agentzh moritz: performance is our top concern, not completeness. so we choose perl 6 features that can be practically implemented efficiently enough and ignore those that can't (at least for now). 20:51
that's our advantage.
*grin*
20:51 FROGGS left
ugexe like how all the other perl6 compilers started? 20:51
MasterDuke timotimo: and radix is called 6k times during a rakudo build, so that's a whole 0.0003s improvement! 20:52
agentzh ugexe: i can get the sarcasm. but i want to make it clear that ours is driven by real world business requirements. it's not a pet project nor a hobby :) 20:53
we have a full-time engineering team working on it seriously.
ugexe how many of you perl6 dev people think of your work on perl6 as a pet project or hobby?
moritz does 20:54
20:55 TEttinger left
lizmat has always been hobbying for a living 20:55
moritz agentzh: I'm thrilled that there's another Perl 6 compiler project now. Please keep us up-to-date, and tell us if you need any help testing or so 20:56
gfldex goes green of envy
20:56 kurahaupo__ left
agentzh moritz: thanks. very much appreciated. i've already been getting a lot of help here. 20:56
20:56 kurahaupo__ joined
MasterDuke does (enough that i'm not sure i would even call myself a perl6 dev person) 20:56
agentzh i'll definitely keep posting our progress here :)
and share any findings. 20:57
moritz agentzh: does your compiler have a name already?
20:57 rba_ joined
agentzh moritz: yes, it's called fanlang. 20:57
The word Fan means "translate" in Chinese. 20:58
since perl 6 is a wonderful language to build compilers and transcompilers.
lizmat www.amazon.com/FANLANG-Foldable-Ki...B01JOHKTIW :-)
agentzh lizmat: lol
we started working on fanlang since last Nov. 20:59
so it's still very young.
we're trying hard to make it production ready next month.
we're hacking crazily.
we're gonna sell products written in perl 6 and compiled by fanlang soon. 21:00
it's so much fun coding in perl 6 and also implementing perl 6, even just a core subset of it. 21:01
moritz \o/
and I'll have a bigger audience for my book :-)
agentzh ah, you're working on a book?
moritz yes, leanpub.com/perl6 21:02
agentzh yeah, we'll also try to help promote perl 6 in the industry.
21:02 cognominal joined
agentzh moritz: nice! 21:02
moritz about 2/3 done by manuscript length
agentzh moritz: glad to see you are still actively around after so many years.
moritz so probably 20% by effort
agentzh moritz: cool!
moritz agentzh: my involvement did reduce the last two years or so; with two small kids at home it was quite difficult to muster energy for anything except work and family :-) 21:03
agentzh i just coded a 8K LOC perl 6 project last week.
moritz 8K LOC sounds like my yearly output :-) 21:04
agentzh much shorter than my original p5 version.
and also much nicer.
moritz: i said we are crazy :)
moritz: yeah, that's understandable. 21:05
moritz: i had to reduce my workload when i had my daughter.
now she's 3 years old and i can hack a lot again.
*grin* 21:06
moritz agentzh: :-)
agentzh: when my older daugther was a few weeks old, I could hold her on my lap while coding; the younger was was too big and restless for that :-)
agentzh lol 21:07
yeah, older kids want to compete on the keyboard :)
moritz aye 21:08
and then they would point at the screen and say "papa" ("daddy") when they saw my github profile picture
mst being sat on my father's lap watching while he wrote code is what prompted me to try doing so myself 21:09
moritz Ms. 6 loves numbers (and learned adding multi-digit numbers on paper in a under half an hour), so I hope that's a good base for some scientific or engineering interest that I can kindle 21:11
now I'm looking for child-compatible biographies of female scientists or engineers to serve as role models 21:13
21:14 andrzejku_ left
SmokeMachine brokenchicken: how do I create a class in perl7? 21:15
brokenchicken ugexe: I think of it as a school.
SmokeMachine: github.com/perl7/perl7#object-orientation 21:16
21:16 _28_ria left
AlexDaniel no semcicolons, no braces… 21:17
/c// 21:18
ugexe I just think its disingenuous to consider a group of paid engineers as an argument for their producing higher quality "serious' work to that of volunteers (most of whom are paid engineers themselves)
AlexDaniel s
21:18 agentzh left, _28_ria joined
moritz ugexe: it's just a matter of time available 21:18
and building on the experience of others 21:19
brokenchicken ugexe: my code quality in rakudo is about 1000% better than stuff I write for work. 21:20
21:20 bjz left
ugexe brokenchicken: my thoughts exactly 21:20
RabidGravy tum ti tum 21:22
SmokeMachine brokenchicken: why had you changed your mind about fun ton? 21:23
brokenchicken SmokeMachine: because the code that handles functions and methods is the same and having methods declared with `fun ion` was silly :) 21:24
japhb
.oO( Like silly ever stopped you before ... )
21:26
SmokeMachine I was expecting something like cla Foo met foo[a] say a hod ss 21:28
21:29 pyrimidine left, pyrimidi_ joined
SmokeMachine And why had you dropped the 💬? 21:30
21:33 kurahaupo__ left
Geth ook: e68b8c721c | Cale++ | src/subs-n-sigs.pod
Update subs and sigs (#87)

  * Add file extension to open('scores')
Did not compile without this.
  * Update basics.pod
... (30 more lines)
21:34
21:35 kurahaupo left
brokenchicken SmokeMachine: just got annoyed trying to type it 21:36
21:37 labster joined
SmokeMachine :( 21:39
21:44 espadrine_ left 21:54 bjz joined 21:58 obfusk left, obfusk joined 22:01 bjz left, bjz_ joined 22:08 Cabanossi left, bjz_ left 22:09 pmurias left 22:10 Cabanossi joined 22:13 RabidGravy left, agentzh joined 22:16 kyan joined 22:22 BenGoldberg joined 22:23 chewzerita joined 22:24 chewzerita left 22:26 dugword joined 22:28 Vynce left 22:29 pyrimidi_ left 22:30 dugword left 22:32 geekosaur left 22:33 agentzh left, geekosaur joined 22:37 Cabanossi left 22:38 pmurias joined 22:40 Cabanossi joined 22:42 perlawhirl joined 22:50 pyrimidine joined
MasterDuke brokenchicken: you say "You can specify parameters with square brackets:", but all the examples use round parentheses, i.e., () 22:51
timotimo square brackets are just for role parameters, i believe? 22:53
oh
that's for perl7
gfldex moritz: i got a real word example you may be able to use in your book of role mixin in github.com/gfldex/perl6-concurrent...d.pm6#L120 22:54
22:55 perlawhirl left 22:59 pyrimidine left 23:08 Cabanossi left 23:10 Cabanossi joined
brokenchicken MasterDuke: a ye, I changed that too 23:11
MasterDuke changed! how can Perl 7 be considered production-ready when it just changes out from under you like that! 23:12
23:13 perlawhirl joined, dugword joined
brokenchicken :) 23:16
23:16 Actualeyes left 23:18 Actualeyes joined 23:19 avuserow left, avuserow joined 23:25 lep-delete left
samcv is still waiting for perl 6 23:27
err i meant perl 8
23:28 rindolf left 23:29 lep-delete joined 23:34 _28_ria left, njmurphy joined 23:35 perlawhirl left 23:41 AlexDaniel left 23:44 _28_ria joined 23:52 Vynce joined