»ö« 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.
Kaiepi how would i write a test for if perl6 is exiting with a code? 00:31
6
typo sorry
timotimo you have to run a perl6 compiler (or just the script) via run or Proc::Async for that purpose 00:33
MasterDuke i think there are some tests in rakudo's t directory or in roast that do that
Kaiepi would they work for tests for the repl? 00:34
timotimo yeah, we do have repl tests already
Kaiepi i know, i'm adding tests for the changes i'm making 00:35
i'm ensuring pressing ^D twice in a row works 00:36
lookatme m: use soft; &say.wrap(-> |c { put c; nextsame; }); say 123
camelia 123
Attempt to return outside of any Routine
in block <unit> at <tmp> line 1

123
lookatme Argument of wrap can not be a anon sub ? 00:37
or a block
m: use soft; &say.wrap(sub (|c) { put c; nextsame; }); say 123
camelia 123
123
lookatme this fine
Kaiepi i think what i can do is make a proc for the repl, then test for whether it dies or not 00:38
lookatme m: try "say 123".EVAL; 00:39
camelia 123
lookatme m: try "say abc".EVAL;
camelia ( no output )
AlexDaniel e: try "say abc".EVAL;
evalable6
AlexDaniel e: try "say ‘abc’".EVAL;
evalable6 abc
lookatme yeah, how about EVAL :)
Geth doc: 91b5c7beb2 | cfa++ | xt/links-not-links.t
Remove trailing whitespace.
00:50
herby_ tyil: the speed increase in the new version of assixt is great 01:21
tyil :D
its been making my time working on other modules much more enjoyable 01:22
it went from ~13s parse time to ~0.15
I got some help from samcv in figuring out why it was so slow 01:23
herby_ i was about to ask, why was it slow?
tyil so feel free to give her some credit too :>
tyil I changed two parts 01:23
tyil for one, I updated Hash::Merge to expose subs that did not augment the Hash class 01:24
that used to make it unable to use precompilation
so it would always have to parse, making it slow
the other part was that I used to load all classes 01:25
which has been turned into lazy loading the classes it needs to perform a task
my next project is a querybuilder, so I dont have to put hardcoded queries into programs 01:27
almost got update, insert and select queries working with it
tyil and next week at my semi-local perl monger meetup I'll look for some feedback and look into the possibilities of giving a talk at the perl conference 01:28
herby_ that's good stuff.
tyil I hope so, yeah :D 01:29
tyil its already 3:30 am 01:31
time to sleep I guess
tyil good night ~ 01:31
herby_ o/ 01:32
Kaiepi how do i post a thread to the perl6 mailing list? 04:20
jmerelo Hi y'all 06:40
donpdonp say "hello jmerelo" 07:06
evalable6 hello jmerelo
jmerelo :-) 07:07
jmerelo Working on old perl6/doc issues today... Anyone wants to have an issue assigned, just ask. Or don't. I'll assign them anyway :-) 07:14
Geth doc: 9156582edc | (JJ Merelo)++ | doc/Type/Signature.pod6
Converts "below" to link to section it refers to.

Which would close #1883. Incidentally, it works towards solving #1416 by adding a reference to **@. The second concept mentioned there, **% is not actually documented, but we can document it right there.
07:36
synopsebot Link: doc.perl6.org/type/Signature
jmerelo So, kind of a slow day, huh? 08:38
jmerelo Is there some way to collect "How do I..." questions from the IRC bot? Can we have a "HowDoIAble"? 08:44
Juerd Followed up quickly by isitpossibletoable 08:48
jmerelo Juerd: :-) Point is, I would like to collect those questions, and answers, for the documentation. If possible, automatically. Or as automatically as possible. 08:49
Geth perl6-most-wanted: b05b4eaea8 | (JJ Merelo)++ | most-wanted/documentation.md
Update and link to roadmap
09:19
jmerelo "Most wanted" link from modules just drops you into a GitHub page. Should we turn that into a proper web? 09:22
Kaiepi sorry to ask again, but how do i post threads on one of the perl mailing lists? 09:43
i'm already subscribed to it
lizmat which perl mailing list do you mean? there's many of them :-)
El_Che you send a mail to the address you got when you subscribed with from the email address you subscribed 09:44
lizmat send an email to the posting email address of the list?
Kaiepi the users one 09:45
that'd be [email@hidden.address] right?
jmerelo Kaiepi: you need to be subscribed, probably. We can help you right here if you want, too. 09:48
timotimo already subscribed, see above
Kaiepi i've already subscribed
jmerelo Kaiepi: you need to send email from the same email address you are subscribed, using your email client. 09:49
Kaiepi alright, i think i got it 09:50
thanks
jmerelo Kaiepi: Glad to be of help :-)
jmerelo There seems to be a single scholarly article on Perl 6, from 2007 and by Audrey Tang dl.acm.org/citation.cfm?id=1190218 10:45
Kaiepi p6: use NativeCall; my $ptr = cglobal('c', 'printf', Pointer); nativecast(:(Str), $ptr)('test') 11:01
camelia Cannot locate native library 'libc.so': /usr/lib64/libc.so: invalid ELF header
in block at /home/camelia/rakudo-m-inst-2/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 680
in block <unit> at <tmp> line 1
Kaiepi huh
buggable New CPAN upload: Lingua-Stopwords-0.0.3.tar.gz by CHSANCH cpan.metacpan.org/authors/id/C/CH/...0.3.tar.gz
Kaiepi m: use NativeCall; my $ptr = cglobal('c', 'printf', Pointer); nativecast(:(Str), $ptr)('test') 11:02
camelia Cannot locate native library 'libc.so': /usr/lib64/libc.so: invalid ELF header
in block at /home/camelia/rakudo-m-inst-2/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 680
in block <unit> at <tmp> line 1
Kaiepi welp i'll paste what i get i guess
oh, printf doesn't write to stdout with sub printf(Str --> int32) is native { * } either 11:08
different fds? 11:09
jmerelo p6: say (Bool.roll xx 32).hyper.sum 11:27
camelia 21
jmerelo p6: say (Bool.roll xx 64).hyper.sum
camelia 30
jmerelo p6: my $start = now; say (Bool.roll xx 1024).hyper.sum; say "Time: ", now - $start; 11:28
camelia 512
Time: 0.0642494
jmerelo p6: my $start = now; say (Bool.roll xx 2048).hyper.sum; say "Time: ", now - $start;
camelia 1035
Time: 0.0512425
jmerelo p6: my $start = now; say (Bool.roll xx 65536).hyper.sum; say "Time: ", now - $start; 11:29
camelia 32778
Time: 0.2149424
jmerelo p6: my $start = now; say (Bool.roll xx 2**34).hyper.sum; say "Time: ", now - $start;
camelia MoarVM panic: Memory allocation failed; could not allocate 71139328 bytes
jmerelo p6: my $start = now; say (Bool.roll xx 2**32).hyper.sum; say "Time: ", now - $start;
El_Che jota-jota energy boost
camelia MoarVM panic: Memory allocation failed; could not allocate 70090752 bytes
jmerelo p6: my $start = now; say (Bool.roll xx 2**17).hyper.sum; say "Time: ", now - $start; 11:30
camelia 65390
Time: 0.4147548
jmerelo p6: my $start = now; say (Bool.roll xx 2**17).hyper.sum; say "Time: ", now - $start;
camelia 65426
Time: 0.3164581
jmerelo p6: my $start = now; say (Bool.roll xx 2**16).hyper.sum; say "Time: ", now - $start; 11:31
camelia 32793
Time: 0.18517156
jmerelo It's not parallelizing much, right? Takes almost twice as much for twice the size.
p6: my $start = now; say (Bool.roll xx 2**16).sum; say "Time: ", now - $start;
camelia 32660
Time: 0.045990
jmerelo p6: my $start = now; say (Bool.roll xx 2**18).sum; say "Time: ", now - $start; 11:32
camelia 131158
Time: 0.14542349
jmerelo And it's four times as slow as the sequential version. Am I missing something?
moritz parallelization has a lot of overhead 11:37
for somethiing as fast as Bool.roll, you need a huge batch size for it to make sense 11:38
m: : my $start = now; my $result = (Bool.roll xx 2**16).hyper.sum; say "Time: ", now - $start; 11:39
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus statement
at <tmp>:1
------> 3:7⏏5 my $start = now; my $result = (Bool.rol
expecting any of:
colon pair
moritz m: my $start = now; my $result = (Bool.roll xx 2**16).hyper.sum; say "Time: ", now - $start;
camelia Time: 0.18563355
moritz m: my $start = now; my $result = (Bool.roll xx 2**16).hyper(batch => 2**14).sum; say "Time: ", now - $start;
camelia Time: 0.10231314
moritz m: my $start = now; my $result = (Bool.roll xx 2**16).sum; say "Time: ", now - $start;
camelia Time: 0.042404
moritz you probably can't speed up something so fast with a pretty generic parallization method 11:40
if you could tell the parallelizer "this is all identical, speed it up", it could probably to a better job 11:41
jmerelo moritz: so we'd have to look for single-element heavyweight operations, right?
moritz jmerelo: right 11:42
m: sub count-primes($upto) { (2..$upto).grep(&is-prime).elems }; say count-primes(1e5) 11:43
camelia (timeout)
moritz m: sub count-primes($upto) { (2..$upto).grep(&is-prime).elems }; say count-primes(1e3) 11:44
camelia 168
moritz m: sub count-primes($upto) { (2..$upto).grep(&is-prime).elems }; say count-primes(5e3) 11:44
camelia 669
moritz m: my $start = now; my $result = (Bool.roll xx 2**16).hyper(batch => 2**14).sum; say "Time: ", now - $start;
camelia Time: 0.1067636
jmerelo p6: my $start=now; ( (Bool.roll xx 64 ) xx 512).hyper.map( *.sum ); say now-$start; 11:47
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
now used at line 1. Did you mean 'not', 'HOW'?
flw py: say 3; 11:49
jmerelo p6: my $start=now; ( (Bool.roll xx 64 ) xx 512).hyper.map( *.sum ); say now - $start;
camelia 0.0622274
jmerelo p6: my $start=now; ( (Bool.roll xx 64 ) xx 1024).hyper.map( *.sum ); say now - $start; 11:49
camelia 0.0908485
jmerelo moritz: now this is cool :-) 11:50
p6: my $start=now; ( (Bool.roll xx 256 ) xx 2048).hyper.map( *.sum ); say now - $start;
camelia 0.1775111
jmerelo WTF
p6: my $start=now; my @sums = ( (Bool.roll xx 256 ) xx 2048).hyper.map( *.sum ); say now - $start;
camelia 0.21646196
jmerelo p6: my $start=now; my @sums = ( (Bool.roll xx 1024 ) xx 2048).hyper.map( *.sum ); say now - $start; 11:51
camelia 0.43274324
jmerelo moritz: This hyper is opening a world of possibilities. Thanks. 12:10
Kaiepi unrelated, but why does running fcntl($*OUT.native-descriptor, 0) return -1 when running from a file, and something like 15 when run from the repl instead? 12:13
jmerelo p6: say fcntl($*OUT.native-descriptor, 0) 12:16
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
fcntl used at line 1
jmerelo p6: use NativeCall; say fcntl($*OUT.native-descriptor, 0)
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
fcntl used at line 1
Kaiepi p6: use NativeCall; sub fcntl(int32, int32 --> int32); fcntl($*OUT.native-descriptor, 0) 12:17
camelia 5===SORRY!5=== Error while compiling <tmp>
A unit-scoped sub definition is not allowed except on a MAIN sub;
Please use the block form. If you did not mean to declare a unit-scoped sub,
perhaps you accidentally placed a semicolon after routi…
Kaiepi p6: use NativeCall; sub fcntl(int32, int32 --> int32) is native { * }; fcntl($*OUT.native-descriptor, 0)
camelia ( no output )
jmerelo p6: use NativeCall; sub fcntl(int32, int32 --> int32) is native { * }; say fcntl($*OUT.native-descriptor, 0) 12:17
camelia 13
jmerelo Kaiepi: probably a question for StackOverflow. I really have no idea. 12:18
Kaiepi: same as above. If a question goes unanswered here, it's better to go there. There are several perl6 answerers on duty, only asynchronously.
Kaiepi alright, thanks 12:32
[Coke] presumably because $*OUT is wrapped in an object when dealing with the repl.
[Coke] checks.
[Coke] has weird presumptions, apparently. 12:34
backing up a step: what does $*OUT.native-descriptor return for you in both cases? 12:35
I get "1" here in both cases (indicating it's just the plain stdout)
[Coke] I get 15 in a file, 132 in the REPL. 12:38
what OS are you on, OOC? 12:39
[Coke] started out not thinking about what fcntl was actually doing here. 12:40
Kaiepi i'm on openbsd [Coke] 12:51
Kaiepi 1 -> 0 in the file, 1 -> 15 in the repl 12:53
*1 -> -1
lichtkind mäsak thank but nevermind i found a way you just have to capsulate it in a submethod
lichtkind masak++ 13:00
Zoffix Kaiepi: that sounds like a bug. I always get 1 on Linux 13:07
Kaiepi damn
Zoffix Why damn? Bugs are exciting \o/ :) 13:08
Kaiepi true, this delays being able to write Editline though
Zoffix Hm, -1 comes cause handle->body.ops->introspection gives false 13:10
Kaiepi: so you get false for $*OUT.t in REPL too? 13:12
Kaiepi nope, True 13:13
Zoffix :S
ok, then that's not where it comes from :)
(the -1 I mean)
Zoffix Well, I've no idea what I'm doing, but IIRC you know C, maybe you can figure out. 13:16
Kaiepi: it's basically coming from this function: github.com/MoarVM/MoarVM/blob/mast...file.c#L64
Zoffix Kaiepi: and the nqp op is mapped to this function: github.com/MoarVM/MoarVM/blob/mast....c#L58-L72 13:17
Kaiepi thanks
El_Che Kaiepi: i.imgflip.com/27fje7.jpg 13:20
Kaiepi lol 13:28
Geth doc: maettu++ created pull request #1887:
Hyper race methods: explain batch and degree
13:35
lichtkind masak, no i didnt found it my example would be: class C {has Int $.attr = 2; subset Pint of Int where {$_ > $.at()}; submethod at {$!attr}; method useit(Pint $a){say $a}}; C.new().useit(3) 14:00
lichtkind p6: class C {has Int $.attr = 2; subset Pint of Int where {$_ > $.at()}; submethod at {$!attr}; method useit(Pint $a){say $a}}; C.new().useit(3) 14:01
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable $.at used where no 'self' is available
at <tmp>:1
------> 032; subset Pint of Int where {$_ > $.at()7⏏5}; submethod at {$!attr}; method useit(P
lichtkind that is what i get too
Kaiepi what great timing for my keyboard to go berserk 14:52
El_Che there a limit on how much utf8 shortcuts it can takes ;) 14:53
[Coke] m: class C { has Int $.attr = 2; submethod at {$!attr}; method useit(Int $a where * > self.at){say $a}}; C.new().useit(3) 14:59
camelia 3
[Coke] I don't think you can have a dynamic reference like you're trying to get in the subset, so you have to put it into the sig.
[Coke] m: class C { has Int $.attr = 2; submethod at {$!attr}; method useit(Int $a where * > self.at){say $a}}; C.new().useit(3); C.new().useit(1); 15:00
camelia 3
Constraint type check failed in binding to parameter '$a'; expected anonymous constraint to be met but got Int (1)
in method useit at <tmp> line 1
in block <unit> at <tmp> line 1
Kaiepi yeah, my arrow keys are broken and my up key decided to spam constantly 15:18
not fun to make stop
El_Che hopefully it's not a laptop keyboard 15:22
(and in that case not a mac)
Kaiepi it is, but it's a thinkpad 15:56
15 minute job to replace
timotimo thinkpads are fantastic for this reason
Kaiepi exactly
i had an hp pavilion that was utter hell to repair at one point 15:57
~120 screws to remove to replace the keyboard
timotimo ugh 15:58
Kaiepi .tell zoffix, didn't end up being a bug, just differences in how openbsd handles fcntl that i wasn't aware of 15:59
yoleaux Kaiepi: What kind of a name is "zoffix,"?!
Kaiepi wait what's the command
timotimo just no punctuation after the name 16:02
Kaiepi .tell zoffix didn't end up being a bug, just differences in how openbsd handles fcntl that i wasn't aware of 16:03
yoleaux Kaiepi: I'll pass your message to zoffix.
Kaiepi thanks
fzeffhj jmerelo , Kaiepi : 16:33
m: use NativeCall; sub fcntl(int32, int32 --> int32) is native { * }; say fcntl($*OUT.native-descriptor, 0) xx 5
camelia (13 -1 -1 -1 -1)
fzeffhj m: use NativeCall; sub fcntl(int32, int32, int32 --> int32) is native { * }; say fcntl($*OUT.native-descriptor, 0, 0) xx 5
camelia (13 14 15 16 17)
jmerelo Still a bit perplexed with the inner workings of Channels and threads. Maybe you can help answering this stackoverflow question stackoverflow.com/questions/495779...-a-channel 16:38
jnthn jmerelo: The *entire point* of react/whenever is that one message is processed at a time 16:40
If you want multiple workers, start them
(start react in a loop for the amount of them you want)
jmerelo jnthn: I thought it meant you *started* processing messages one at a time. 16:41
jnthn: I'll try that, but it didn't work... In fact, I did *start* inside the whenever block. Still only one thread.
Kaiepi m: $*VM.osname
camelia ( no output )
Kaiepi m: say $*VM.osname 16:41
camelia linux
jmerelo jnthn: if I do start react whenever { do stuff } for ^10; still the same thing. Single thread. 16:42
jnthn And if it's (start react whenever { do stuff }) for ^10 ? 16:43
Kaiepi going off the man pages the linux version of fcntl doesn't care about making the dest fs use the source fd's flags
jmerelo jnthn: checking that 16:44
jnthn: that did the trick. Thanks. 16:45
jnthn: please answer anyway at stackoverflow so that we can all give you a bit of karma :-)
jnthn Will do, still hunting a tricky bug at the moment :) 16:46
jmerelo jnthn: and here I have my concurrent evolutionary algorithm running thanks to you. You're awesome. 16:47
jnthn Yay. :) Welcome :)
lichtkind jnthn, is there a way to created subtype that uses data of class attribute (got allways no self accessable) ? 16:51
jnthn No 16:52
Kaiepi is there a way to force a library's symbols to get loaded before another's, when the latter depends on them? 16:58
what i mean is moar complains that symbols don't exist for the latter if i try to load it 16:59
jmerelo Kaiepi: example? 17:00
lichtkind jnthn++ thanks (even it does make me decisevly not happy)
Kaiepi hastebin.com/acemijured.coffeescript 17:02
editline wants some symbols from curses since it expects programs using it to be compiled with both depending on how editline's built 17:03
jmerelo Kaiepi: But it seems like the problem is that the library is not loaded, not the order of loading... Isn't that what it says in line 11? 17:04
Kaiepi yeah
it still needs to get loaded before editline though
jnthn Kaiepi: Perhaps just try to call a symbol from that library for force it to be loaded 17:06
AlexDaniel maettu: o/ 17:09
Geth doc/master: 5 commits pushed by (Matthias Bloch)++, (Jonathan Worthington)++, (Aleks-Daniel Jakimenko-Aleksejev)++ 17:33
AlexDaniel squashable6: next 17:35
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 6 days and ≈16 hours (2018-04-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
jmerelo AlexDaniel: is it going to be Rakudo-exclusive? Can we join in to work on the documentation? 17:41
AlexDaniel jmerelo: well, every second month is a doc squashathon: github.com/rakudo/rakudo/wiki/Mont...Squash-Day 17:44
you're free to work on docs ofc, but the point this time is to close testneeded tickets :) 17:45
[Coke] (commits always welcome!)
AlexDaniel buggable: tag testneeded
buggable AlexDaniel, There are 48 tickets tagged with TESTNEEDED; See fail.rakudo.party/t/TESTNEEDED for details
AlexDaniel + also: github.com/rakudo/rakudo/issues?ut...testneeded
Kaiepi jnthn that did the trick
Geth doc: 2ab1c59411 | (Will "Coke" Coleda)++ | doc/Type/Iterable.pod6
remove trailing whitespace
17:47
doc: 0ab46fe702 | (Will "Coke" Coleda)++ | doc/Type/Iterable.pod6
Prefer Ameringlish.
synopsebot Link: doc.perl6.org/type/Iterable
jmerelo AlexDaniel: OK. Might want to give it a try, anyway. 17:48
El_Che wishes that p6 would pick the best syntax for task instead of going out of the way to backwards compatible with p5 (see: github.com/perl6/doc/issues/1380), or compatible with itself (see the key value combinations) 18:33
mostly is not about TIMTOWTWDY, but about having 5 spellings for the same word 18:34
El_Che :127foo is like the phone message spelling in my eyes 18:35
Bowlslaw does perl have a 'flag' reading function, like opt()? so if i call my script with a cmd line argument and a flag? 18:36
yoleaux 29 Mar 2018 23:03Z <Zoffix> Bowlslaw: well, first `$dbh.prepare("select price from $table")` is an unsafe statement. You need to quote $table properly. I don't use DBIish, but there should be some method to quote stuff (placeholders might work too). As for the sum, `my $total = $sth.allrows».head.sum`
lizmat :2nd :3rd :4th # read better
Bowlslaw ???
evalable6 Stub code executed
in block <unit> at /tmp/o68Dey4P6L line 1
timotimo :D
Bowlslaw ahh what's happening
El_Che lizmat: if you're 14and a lousy typist :)
timotimo say "what if i forgot to put a m: in front?" 18:37
hum?
lizmat !!!
???
evalable6 Stub code executed
in block <unit> at /tmp/LlkxHgj1hK line 1
timotimo Bowlslaw: evalable6 judges messages that look like perl6 code to be "accidentally forgot to put an m: in front"
lizmat weird
timotimo so it just helpfully runs it for you instead
say 99 + 1
evalable6 100
El_Che lizmat: :2nd is cute but it does not look useful. You really want a pair met the key nd??? 18:38
lizmat that part is where the developer gets tortured :-) 18:39
El_Che paying any price in complexity for that is weird
lizmat: it tortures the readers that has to know all the variations
timotimo what i really like is for things like datetime.later; :10seconds, :5days 18:40
that reads really good to me
Bowlslaw lol
timotimo it's a syntactical feature that you can use when it makes sense, but don't have to use anywhere it wouldn't 18:41
El_Che Pair.new('key', 'value'); 'key' => 'value'; :key<value>; :foo(127); :127foo; :key;:!key; 18:42
maybe I am getting old :)
timotimo: it's not the shortcut itself, but the added complexity in an already complex language 18:43
it adds up
timotimo the straw that broke the butterfly's back?
El_Che hehe 18:44
timotimo: perl 5 is simple in comparison :)
Bowlslaw ??? 18:46
evalable6 Stub code executed
in block <unit> at /tmp/Uxh61dspAq line 1
lizmat m: dd Pair.new(:key<key>, :value<value>)
camelia :key("value")
Bowlslaw why is '???' perl code?
O_o
lizmat m: dd ??? 18:47
camelia Stub code executed
in block <unit> at <tmp> line 1
0
El_Che dd ...
lizmat hmmm...
El_Che dd {...}
evalable6 -> ;; $_? is raw { #`(Block|94792552303488) ... }
El_Che dd {???}
lizmat Bowlslaw: docs.perl6.org/routine/%3F%3F%3F
evalable6 -> ;; $_? is raw { #`(Block|94830811845696) ... }
timotimo there's ???, !!! and ... that you can put in code that doesn't yet do something. one of them notes, one of them warns, one of them throws ... i think?
m: ??? "oh my" 18:48
camelia oh my
in block <unit> at <tmp> line 1
Bowlslaw oh, haha, cool 18:51
Bowlslaw i like the #| comment 18:52
Guest14802 I'm confused by this line github.com/maros/oarm-p6/blob/mast...rm.pm6#L21 19:21
oh heck
Altreus uh what's my nickserv password 19:22
Ulti ******* 19:22
Guest66879 um 19:23
weechat has done this automatically since time began
and I can't work out how :D
lizmat Altreus: it show that the "is oarm_table" trait on a class mixes in the Oarm::TableHOW role into the HOW of that class 19:24
Guest66879 I'm confused by the use of ^mixin on something that's already a HOW
is it a metametaobject?
timotimo yeah, that'd be one extra .HOW 19:25
lizmat yup, it calls the method "mixin" on the HOW of the classHOW
.oO( Perl 6 is turtles all the way down )
timotimo but yeah, you want to change the HOW, so you add something to it via its own HOW
Altreus There we go 19:26
timotimo was it hunter2? 19:26
Bowlslaw lol
Altreus It might have been once but it's not now :P 19:26
OK so it is intentionally changing the howhow 19:27
I just need to understand better
lizmat hmmm better phrased as: it's changing the HOW by calling a method from the HOW.HOW
Altreus back to the docs :)
I need to better understand the metaobject to understand what it means at 2 cuils 19:28
so I'mma read that
lizmat Altreus++
[Coke] buh. github.com/perl6/doc/blob/coke/bui...#L164-L168 is dying with "Cannot find method 'Nil' on object of type List" on the require call there. I swear this worked the last time I poked at this (probably last rakudo release) 19:31
Altreus OK I understand to some extent the concept of metaclasses and I think I know what might happen if you mess with the metametaclass, but I don't really understand the difference between the methods in Oauth::Table and those in Oauth::TableHOW (except that the latter is mixed into the HOWHOW when I declare a table) 19:44
I mean this could be one of those decisions that's TIMTOWTDI
I guess since it's incomplete it's also unclear
I'm just wondering why put it all in TableHOW instead of just doing it right there in the trait_mod 19:45
Altreus now I ask, I realise that's a common question about normal programming and the answer is reuse 19:45
I may be rubber-ducking slightly, sorry :) 19:46
lizmat
.oO( some rubber ducks might learn from this as well :-)
19:46
Altreus elsewhere we can see my @oarm_columns = self.HOW.oarm_columns().list; 19:53
I suppose the author considered the structure of the table to be meta
I think I can dig it 19:55
Geth doc/master: 4 commits pushed by (Ronald Schmidt)++ 20:14
Altreus I think I have reached the level of my understanding because I don't know where Oauth::X::Record comes from or if it's just not done yet 20:18
Altreus oh I found it 20:19
wtf ack
xD I acked for Oauth 20:20
Altreus this has also taught me how to autogenerate a resultset class for a result type 20:27
Geth whateverable: 9b747bc43e | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Uncomment now passing tests

These tests were SEGV-ing because of a rakudo bug. It is now fixed. See github.com/rakudo/rakudo/issues/16...-377584146
22:02
Geth whateverable: 1d76409d4e | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/benchable.t
Bump the timeout a little

This is actually a bug in benchable (#299), as it uncompresses the build for every iteration (instead of uncompressing just once). Old revisions (e.g. 2015.12^) are now in long-term storage mode, so it takes more time. Bumping the timeout just a little bit (10s is default) makes the test pass.
22:30
Kaiepi took me a little too long to notice i could just abstract this so people don't have to deal with flags manually hastebin.com/erotilotej.pl 23:16
Kaiepi i'll probably just give the flags their own methods instead of this mess 23:19