»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
irced i think prefixing with an ampersand to List'ify the sequence is probably going to be the most widely understood means of iterating over a "list" when flatenning is undesirable due to the presence of sub"lists" 00:04
though even a ( LIST ) needs to be "list"ified for the for loop. it is an idiosyncracy of the for loop perhaps, that it expects something besides a raw ( blah, blah ) to iterate over each element individually 00:06
irced i accept you, for loop. 00:07
irced weirdo.
ampersand oops i meant at symbol 00:13
00:13 pamplemousse left 00:18 sena_kun left 00:20 st_elmo joined
irced i suppose one can say that a non-Array positional is internally read by the for loop as not having an internal field separator. then various operations can change its representation to the for loop or just change IFS="" to IFS="something that internally makes sense" 00:21
00:23 epony left 00:30 [particle] left 00:31 mowcat left 00:33 netrino left, mowcat joined 00:40 [particle] joined
irced non-@rray positional 00:53
01:12 aborazmeh left 01:26 melezhik joined
melezhik How to define function accepting list of arguments, in a way `foo a,b,c;` 01:27
?
irced melezhik: exactly three arguments? 01:28
01:28 Actualey` joined
melezhik no, 1 .. N 01:28
at least one and could be more
irced melazhik: well, there's various ways with various levels of complexity. to begin with a simple case, we can use the implicit arguments list @_ 01:29
sub fun() { say "There are {@_.elems} arguments" }; fun(a, b, 123); 01:30
m: sub fun() { say "There are {@_.elems} arguments" }; fun(a, b, 123);
camelia 5===SORRY!5=== Error while compiling <tmp>
Placeholder variable @_ may not be used here because the surrounding block takes no signature
at <tmp>:1
------> 3sub fun() { say "There are {@_.elems}7⏏5 arguments" }; fun(a, b, 123);
e…
irced oops, an implicit slurp i think is in order 01:31
melezhik I'd like to define signature
irced m: sub fun(*@_) { say "There are {@_.elems} arguments" }; fun(a, b, 123);
melezhik not just @_
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routines:
a used at line 1
b used at line 1
irced ok, well, since this route isn't working as expected, we can do that instead
m: sub fun($a, $b, $c) { say $a; say $b; say $c; }; fun('a', 'b', 123); 01:32
camelia a
b
123
irced m: sub fun(*@_) { say "There are {@_.elems} arguments" }; fun('a', 'b', 123);
camelia There are 3 arguments
irced that's why it wasn't working. 01:33
anyway, those are two examples, please help me narrow down what you need from here.
m: sub fun() { say "There are {@_.elems} arguments" }; fun('a', 'b', 123); 01:34
camelia 5===SORRY!5=== Error while compiling <tmp>
Placeholder variable @_ may not be used here because the surrounding block takes no signature
at <tmp>:1
------> 3sub fun() { say "There are {@_.elems}7⏏5 arguments" }; fun('a', 'b', 123);
irced m: sub fun { say "There are {@_.elems} arguments" }; fun('a', 'b', 123);
camelia 5===SORRY!5=== Error while compiling <tmp>
Placeholder variable @_ may not be used here because the surrounding block takes no signature
at <tmp>:1
------> 3sub fun { say "There are {@_.elems}7⏏5 arguments" }; fun('a', 'b', 123);
irced anyway, working with the two signatures, ($a, $b, $c) and (*@_), how do neither of these fit your requirements? 01:35
melezhik 01:36
melezhik Ideally I'd like to define function `foo(p,a,b,c)` where p is string and the rest - a,b,c,d ... - list, with this call semantic, without `[` `]` symbols around 01:37
and without parenthesis `(` `)` 01:38
irced to address the last part
melezhik signature should check that p is a string and just slurp the rest of parameters as array/list
irced err, ok, let me see 01:39
here we are 01:42
sub fun (Str:D $string-in, *@the-rest) { say $string.in; say @the-rest.gist }; fun "hello universe", 1, 2, 3, 4, 'kewl'; 01:43
m: sub fun (Str:D $string-in, *@the-rest) { say $string.in; say @the-rest.gist }; fun "hello universe", 1, 2, 3, 4, 'kewl';
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '$string' is not declared. Did you mean 'Stringy'?
at <tmp>:1
------> 3un (Str:D $string-in, *@the-rest) { say 7⏏5$string.in; say @the-rest.gist }; fun "h
irced m: sub fun (Str:D $string-in, *@the-rest) { say $string-in; say @the-rest.gist }; fun "hello universe", 1, 2, 3, 4, 'kewl';
camelia hello universe
[1 2 3 4 kewl]
irced there we are, whoa it worked 😄 01:44
melezhik irced thank you, this is what I've looked for `*@list`
(-:
irced ur welcome 01:45
glad it helped
*@list is the slurpy parameter, where * indicates to slurp. but depending on the complexity of your other parameters you might need to use a diffferent slurp. anyway, this is the simple case 01:46
melezhik let's start with this and then let see, but I don't expect anything more complex that just passing plain lists ... 01:47
irced melezhik: it's when you pass in lists of sublists that you might get unexpected results with a simple slurp. 01:48
melezhik sure
01:49 melezhik left
irced melezhik: but don't worry, if you do that the solution is simple, use a different slurp 01:50
melezhik: in fact, you can use the nonflattening slurpy instead of a regular slurpy to treat lists of sublists as they are.. come to think of it
m: sub fun (Str:D $string-in, **@the-rest) { say $string-in; say @the-rest.gist }; fun "hello universe", 1, 2, 3, 4, 'kewl';
camelia hello universe
[1 2 3 4 kewl]
irced melezhik: there, use **@the-rest to start with so you get what you put in. 01:51
melezhik: easy
m: sub fun (Str:D $string-in, **@the-rest) { say $string-in; say @the-rest.gist }; fun "hello universe", 1, (2, 3), 4, 'kewl'; 01:52
camelia hello universe
[1 (2 3) 4 kewl]
irced m: sub fun (Str:D $string-in, **@the-rest) { say $string-in; say @the-rest.gist if @the-rest}; fun "hello universe"; 01:58
camelia hello universe
irced melezhik: you should probably check for the other arguments of course, as shown, as they are optional by default
02:02 epony joined 02:04 Manifest0 left 02:05 Manifest0 joined
irced melezhik: don't forget that parameters themselves are immutable by default 02:07
03:00 kent\n joined 03:07 kent\n left, kent\n joined 03:09 epony left 03:16 epony joined, jlinahan joined 03:32 goatshagger joined 03:34 goatshagger left 03:38 jlinahan left 04:03 kaare__ joined, mowcat left 05:03 evalable6 left, notable6 left 05:04 evalable6 joined 05:06 notable6 joined 05:44 robertle left 06:13 irced left
Geth doc/master: 5 commits pushed by threadless-screw++, (Juan Julián Merelo Guervós)++ 06:16
06:18 jmerelo joined
Geth ¦ doc: JJ assigned to antoniogamiz Issue Standardize search categories github.com/perl6/doc/issues/1410 06:25
06:40 domidumont joined 06:51 rindolf joined
jmerelo There are a bunch of unanswered questions in StackOverflow stackoverflow.com/questions/tagged...Unanswered take a look at them, and help the community by answering them 06:53
06:56 ravenousmoose_ joined
jmerelo CFP in the London Perl Workshop is open: blogs.perl.org/users/lpw/2019/07/lo...-2019.html 06:57
06:59 ravenousmoose left 07:02 chloekek joined 07:17 llfourn left
AlexDaniel r: say 42 07:18
perlbot AlexDaniel: 42␤ 07:19
07:19 cpan-p6 left
camelia 42 07:19

(timeout)
07:19 cpan-p6 joined, cpan-p6 left, cpan-p6 joined
Geth whateverable: 933c6fbe3b | (Aleks-Daniel Jakimenko-Aleksejev)++ | xt/quotable.t
Add timeout test for Quotable

Found it on the server.
07:23
whateverable: 0df6093343 | (Aleks-Daniel Jakimenko-Aleksejev)++ | xbin/Evalable.p6
Remove “r:” shortcut from Evalable

It is now used by perlbot.
whateverable: 1433b21f04 | (Aleks-Daniel Jakimenko-Aleksejev)++ | maintenance/long-term-storage.p6
Move long-term storage cutoff dates

So that more space is saved.
07:26 patrickb joined 07:28 robertle joined
patrickb .tell [Coke] wrt. rakudobrew not finding perl6 after install - could you create a bug report? I'm interested in doing something about this. 07:31
yoleaux patrickb: I'll pass your message to [Coke].
Geth whateverable: 1d1e56a7dc | (Aleks-Daniel Jakimenko-Aleksejev)++ | xbin/Committable.p6
Make committable work with slow snippets

The more releases we have, the longer it takes for committable to produce an answer. By returning a promise the bot will hopefully not ping out when running heavy code snippets.
jmerelo patrickb: I'm not sure it's a bug. It's simply that it's changed the way rakudobrew is declared. You have to run a script to make it find it.
patrickb jmerelo: I think I don't understand. 07:34
AlexDaniel squashable6: status
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 3 days and ≈20 hours (2019-08-03 UTC-14⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel hmmmmmmmm
jmerelo AlexDaniel: hmmmm is correct
patrickb: simply rakudobrew has changed in the way it installs "rakudobrew" as a command. Before it was simply a file somewhere, which you could access via a path, it's now a shell function. 07:35
patrickb: you need to declare that shell function in a shell before you can access rakudobrew, and before it can find perl6 anew.
Geth whateverable: e386853a23 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable.pm6
Sleep for a random amount of time before starting

Otherwise all bots join at the same time which looks suspicious.
07:36
patrickb jmerelo: Ah, so the entry in [Coke]s .bash_rc was wrong. Rakudobrew should have reported that the shim was missing and refuse operation. Might still be a bug... 07:37
jmerelo patrickb: probably, yes.
07:53 dakkar joined 08:02 dolmen joined, zakharyas joined 08:04 nadim_ joined 08:15 reach_satori_ left 08:29 nadim_ left
jmerelo AlexDaniel: so, about next squashathon 08:30
AlexDaniel: there are issues there since 2016
AlexDaniel: there are items in the wishlist, and outright errors. 08:31
AlexDaniel: I think there are also modifications in production that are not in the repo. We would have to onboard timotimo 08:33
AlexDaniel: also, everything is in Perl 5...
timotimo a rakudobrew squashathon? 08:34
or is that a whateverable squashathon? 08:35
jmerelo timotimo: No, a modules.perl6.org squashathon
patrickb I think the two discussions were unrelated.
AlexDaniel jmerelo: 🤷 08:38
jmerelo: 26 issues most of which I won't be able to help with 08:39
08:39 Actualey` left
jmerelo AlexDaniel: you can still help with _some_ :-) 08:39
08:39 Actualeyes left
jmerelo AlexDaniel: midterm, we should migrate it to Perl 6 08:40
AlexDaniel: short term, we should try and fix some stuff.
AlexDaniel I thought the idea is to come with a better squashathon topic?
something that is actually fun for contributors…
last month was awesome 08:41
jmerelo AlexDaniel: I'm open to suggestions. But I take offense to your saying that perl 5 is not fun
08:41 Actualeyes joined
Geth modules.perl6.org: 11302a5f92 | (JJ Merelo)++ | CONTRIBUTING.md
Adds mini-contribution guide
08:42
AlexDaniel jmerelo: small typo: “cna have a working copy” 08:43
does anybody have any cool idea for this squashathon? Something fun, please :) 08:44
Geth modules.perl6.org: 80f20a6279 | (JJ Merelo)++ | CONTRIBUTING.md
Fixes small typo
jmerelo AlexDaniel: fun is OK. But "needed" is also OK. 08:45
AlexDaniel failing to engage is not ok 08:46
remember docs&tools squashathon when somebody won a plush camelia for a single PR? :) 08:47
jmerelo AlexDaniel: Well, by having something that is more perl than perl 6 we could engage people that don't know perl 6
AlexDaniel: that's not fun... for me. It means we have to do a lot of additional work, or simply work is left undone. 08:48
AlexDaniel: perl6 is -Ofun, but it's even funnier if all tools and sites are ready and not working on a wing and a prayer.
AlexDaniel: plus, we're 3 days away from the squashathon. It's either that or some canned squashathon, like the next one, Rakudo and roast 08:49
AlexDaniel: we haven't actually had one of those for a long time.
AlexDaniel how many pages we have on the docs website?
jmerelo AlexDaniel: in the ballpark of coupe of thousands. Generated from ~ 500 documents. 08:50
AlexDaniel I'm thinking doc proofreading squashathon
jmerelo AlexDaniel: doc squashathon, in general... 08:51
AlexDaniel: proofreading is one thing, but people might want to do something more...
AlexDaniel: also, proofreading is fun?
AlexDaniel well, we can make a list of pages and turn every single one into a todo item. What you get is a bunch of actionable tasks 08:52
just an idea
jmerelo AlexDaniel: so you want 400 new issues in the doc repo? 08:53
AlexDaniel no, in a separate repo 08:54
jmerelo AlexDaniel: new repo? 08:55
AlexDaniel a temporary one, yeah
but that's just an idea, arguably not the best one given that we already have a bunch of tickets in the doc repo
jmerelo AlexDaniel: problem is, most of the documentation is basically OK. Coke takes care of typos running aspell from time to time. There are probably some grammar errors. 08:56
AlexDaniel: but those are possibly taken care of from time to time.
El_Che jmerelo: I think there are quite some people with interest in perl6 and not in perl5 (as never learnt it or don't use it any longer) 08:57
jmerelo AlexDaniel: there's also this issue: github.com/perl6/doc/issues/2554 In general, I have found that "old" chunks are the one that are incorrect. Not the grammar, but the examples, mostly.
El_Che: but there are more people who know perl 5 than perl 6. That they want to help with a Perl 6 tool or site is a different thing altogether 08:58
AlexDaniel: but I undertand this might be a contentious topic for a squashathon (cc: El_Che) 08:59
AlexDaniel: what do you think about creating an issue in perl6/doc with check boxes for proofread pages? 09:00
AlexDaniel: we can do a general perl6/doc squashathon, but we would also have an easy issue to start working with it.
AlexDaniel checkboxes might work, I'm not sure 09:01
it's hard to track who checks which checkbox
jmerelo AlexDaniel: squashable does that. It's maybe more difficult to know who's working on what, but it can be done via a comment (which Squashable will dutifully send here) 09:02
09:02 reach_satori_ joined
jmerelo AlexDaniel: there are 392 pod6 files in the documentation. 09:02
AlexDaniel weekly: Squashathon next weekend! See github.com/rakudo/rakudo/wiki/Mont...Squash-Day for more info 09:03
notable6 AlexDaniel, Noted!
AlexDaniel weekly: or should I say this weekend?
notable6 AlexDaniel, Noted!
AlexDaniel weekly: anyway, soon! Very soon :)
notable6 AlexDaniel, Noted!
jmerelo AlexDaniel: so, doc with proofreading squashathon? 09:06
AlexDaniel well, any other cool ideas? 09:07
there's one I have in mind 09:08
jmerelo AlexDaniel: shoot
AlexDaniel I'm not sure how I feel about this one, but 09:09
there's code-golf.io/ and perl6 solutions used to dominate in most answers, but not anymore. What if we organize community code golfing?
jmerelo AlexDaniel: probably OK... but not for this one
AlexDaniel: table it for next, maybe 09:10
AlexDaniel how come this shit idea will become better next month? :) 09:11
jmerelo AlexDaniel: we can talk it out in Riga :-)
AlexDaniel we already have a guide, fwiw github.com/AlexDaniel/raku-golf-cheatsheet 09:12
jmerelo AlexDaniel: we would need something specific for the hackathon... and also a repo that Squashable can follow.
AlexDaniel: we can talk it out, as said before.
AlexDaniel so github.com/AlexDaniel/raku-golf-cheatsheet is the repo 09:13
file a ticket for each hole, start a discussion
I can prepopulate most of the tickets with my solutions so that we have a starting point for most of them
jmerelo AlexDaniel: So you prefer that one to docs? 09:14
AlexDaniel I'm still trying to brainstorm more ideas :)
next month we'll likely have one squashathon about old-issue-tracker (which doesn't exist yet but hopefully will soon)
timotimo btw the only change on modules.perl6.org that isn't in the repo is this: 09:17
- $self->plugin('PODRenderer') if $self->mode eq 'development';
+ #$self->plugin('PODRenderer') if $self->mode eq 'development';
jmerelo timotimo: OK 09:20
AlexDaniel: I'd rather have the doc one 09:21
AlexDaniel: we still need help for the documentation, and there's not been a doc squashathon for a long time
09:22 zakharyas left, pat_js joined 09:25 irdr joined
Geth doc: c8288ae391 | (JJ Merelo)++ | doc/Language/contexts.pod6
Minor correction
09:28
doc: 7256cf354d | (JJ Merelo)++ | util/issue-with-all-pod6.p6
Generates an issuable list of files
synopsebot Link: doc.perl6.org/language/contexts
09:29 AlexDaniel` joined
Xliff say ++$ 09:36
evalable6 1
jmerelo AlexDaniel: we still need to do the modules.perl6.org squashathon. Maybe leave it for later instead of deleting it...
09:37 Black_Ribbon left
AlexDaniel jmerelo: I don't get it. Why do we need to do it if it makes no sense? 09:38
if some shit needs to be done it doesn't mean we should have a squashathon about it
for you, what's the point of doing squashathons?
09:40 Matthew[m] joined, EuAndreh[m] joined, lance_w[m] joined, sergiotarxz[m] joined, TravisRt2botio[m joined, rba[m] joined, Guest7247 joined, mack[m] joined, Garland_g[m] joined, Seance[m] joined, Demos[m] joined, folex joined, matiaslina joined, unclechu joined
jmerelo AlexDaniel: mainly community 09:40
AlexDaniel: but also give some love to repos that don't get any, like that one. 09:41
AlexDaniel: Anyway, next squashathon has been tabled. I've created the issue, and put it in the table.
squashable6: status
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈18 hours (2019-08-03 UTC-14⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel ok, cool 09:42
jmerelo: links are currently broken, I think a full url is required 09:43
jmerelo AlexDaniel: oh, right 09:44
AlexDaniel jmerelo: btw squashable will not tell which todo item was checked
I think the message will be “user X edited issues/2924” or something like that
jmerelo AlexDaniel: yep, right. No problem, as long as there's a link to it. 09:45
AlexDaniel jmerelo: also maybe it has to say what proofreading means, like what should contributors look out for 09:48
broken links? grammar? issues in code examples?
correctness of the text itself?
jmerelo AlexDaniel: OK 09:50
AlexDaniel: check it now 09:52
09:52 Geth joined
AlexDaniel maybe we need both rendered and non-rendered links? 09:54
09:58 demanuel joined 10:10 nightfrog joined
Geth doc: c67873e457 | (JJ Merelo)++ | util/issue-with-all-pod6.p6
Adding both links for @alexdaniel
10:13
whateverable/master: 4 commits pushed by (Aleks-Daniel Jakimenko-Aleksejev)++ 10:19
AlexDaniel ok I'm down to two uncommitted files \o/
10:20 jmerelo left 10:27 pat_js left 10:37 dolmen left
Geth whateverable: 3bde2a3ba5 | (Aleks-Daniel Jakimenko-Aleksejev)++ | xbin/Benchable.p6
Commit latest Benchable usability fixes
10:43
10:45 sena_kun joined
Geth whateverable: 9bf1bc4d19 | (Aleks-Daniel Jakimenko-Aleksejev)++ | xbin/build.p6
Groundwork for bump triples

The idea is to make it possible to bisect NQP and MoarVM whenever we hit a bump. Unfortunately this work has never been finished, but committing it now anyway to get rid of uncommitted files on the server.
10:47
AlexDaniel goodnight, bots 10:49
10:49 nativecallable6 left, unicodable6 left, statisfiable6 left, releasable6 left, squashable6 left, undersightable6 left, coverable6 left, committable6 left, evalable6 left, quotable6 left, bloatable6 left, shareable6 left, bisectable6 left, benchable6 left, greppable6 left, reportable6 left, notable6 left 10:54 dpk left 10:55 dpk joined 10:59 rindolf left
timotimo here's hoping the new rakudo version treats them well :) 11:02
11:04 rindolf joined
AlexDaniel timotimo: yeah, I hope so 11:08
dpk greetings friends
AlexDaniel timotimo: 2018.06-something was the first version that worked well enough 11:09
dpk: o/
timotimo oh hai dpk
dpk after several years of only very sporadic maintenance, i've decided to finally take yoleaux offline
timotimo were you the owner of yoleaux?
oh, i guess you are .. or were
dpk a friend of mine has a replacement bot which does basically the same stuff, called saxo
AlexDaniel I'd prefer to run my own replacement
dpk okie dokes then 11:10
timotimo what do we usually use yoleaux for? message passing and last-seen, i think?
AlexDaniel dpk: can we get all messages .told from our channels that were not delivered yet?
dpk i can give you a CSV dump or something i guess 11:11
AlexDaniel dpk: works for me, yes, that'd be lovely
lizmat dpk++ # keeping yoleaux alive all those years 11:13
AlexDaniel yes, yoleaux was extremely useful
timotimo aye, it was very nice to have 11:14
11:15 Cabanossi left
Xliff dpk: Does that CSV include .seen data? 11:22
AlexDaniel that can be useful too 11:23
dpk no, and i would be reluctant to give that information out for privacy reasons
AlexDaniel: i've PM'd you a link to the CSV file 11:24
wait, bugger, i messed up and forgot to include a column for who the message is actually for >_<
AlexDaniel dpk: by any chance did you miss #moarvm channel?
dpk oh, probably that too 11:25
AlexDaniel dpk: what about only for those who were last seen on one of our channels? 11:26
dpk hmm i could do that i think, yes
AlexDaniel: okay, fixed if you redownload the tells db from the same URL 11:28
AlexDaniel dpk: yeah, that seems to be correct. Weirdly, Some messages are quoted while others are not, but I'll be able to work with that for sure 11:30
dpk okay, done the seens too 11:33
11:36 ChoHag joined
AlexDaniel dpk: great! Thank you very much 11:37
11:37 someuser joined, someuser left
AlexDaniel ah I see, they're quoted if there's a comma in the message. Cool 11:39
dpk yeah, should be pretty standard CSV. i generated it with the CSV module from the Ruby standard library 11:40
i don't know the exact quoting rules
timotimo can "just"™ use json instead 11:41
it's a one-time thing anyway, isn't it?
AlexDaniel it is
timotimo: fucking hell, not only it doesn't start, but the stacktrace is totally wrecked
timotimo whateverable you mean?
AlexDaniel yes 11:42
11:42 [Sno] joined
timotimo ouchies :) 11:42
AlexDaniel now the error itself can be my fault, but
timotimo throw me at the error
AlexDaniel timotimo: gist.github.com/AlexDaniel/f0a935d...ng-file-L3 11:43
in method selfrun at Bisectable.p6 line 176
that's the wrong file
lizmat weekly: www.theperlfisher.com/index.php/201...se-bouche/
AlexDaniel it should say in “method selfrun at lib/Whateverable.pm6 line 176”
lizmat AlexDaniel: bot upgrade in progress ??? 11:44
timotimo hm, maybe backup all the precomp stuff and blow it away?
AlexDaniel lizmat: yes
lizmat okidoki
AlexDaniel lizmat: sorry for that, had to be done one day :)
timotimo i.e. see if blowing it away makes it work, but keep stuff around so we can figure out the error better
lizmat AlexDaniel: no pb
(yet)
:-)
no pressure :-)
AlexDaniel timotimo: I wonder if there's any precomp at all, given that the process is not allowed to write most of the files 11:45
timotimo: ok, I just tried it again with writable precomp and it gives proper stacktrace now 11:46
timotimo strange in any case. maybe we can reproduce wrong filenames in stacktraces whenever precomp can't be written
11:47 lucasb joined
AlexDaniel otherwise it's just an old config it seems 11:50
11:50 dolmen joined 11:55 bisectable6 joined
AlexDaniel bisect: good=2016.02 bad 2016.03 say (^∞).grep({ last })[5] 11:56
bisectable6 AlexDaniel, Bisecting by output (old=2016.02 new=2016.03) because on both starting points the exit code is 0
AlexDaniel, bisect log: gist.github.com/ba24f1ee1abf3fa30d...11d703966d
AlexDaniel, (2016-03-18) github.com/rakudo/rakudo/commit/6d...41e7eb99b0
AlexDaniel ok, that really works!
good sign so far 11:57
11:59 bisectable6 left 12:00 khisanth_ left, statisfiable6 joined, robertle left, notable6 joined 12:01 committable6 joined, bloatable6 joined, squashable6 joined, ChanServ sets mode: +v squashable6, reportable6 joined
Geth whateverable: 6b2edebaa1 | (Aleks-Daniel Jakimenko-Aleksejev)++ | META6.json
Add missing dependency (Cro::HTTP::Client)
12:01
whateverable: 10ef566365 | (Aleks-Daniel Jakimenko-Aleksejev)++ | services/whateverable@.service
Adapt the service file for modern rakudobrew
12:01 evalable6 joined, undersightable6 joined, ChanServ sets mode: +v undersightable6 12:02 bisectable6 joined, ChanServ sets mode: +v bisectable6, releasable6 joined, ChanServ sets mode: +v releasable6, quotable6 joined, ChanServ sets mode: +v quotable6, shareable6 joined, robertle joined
AlexDaniel weekly: www.theperlfisher.com/index.php/201...se-bouche/ 12:02
notable6 AlexDaniel, Noted! (weekly)
AlexDaniel lizmat: we're back up! 12:03
lizmat whee! AlexDaniel++
AlexDaniel on the latest rakudo and also using the latest version of whateverable :)
so some bot updates too
for example
12:03 nativecallable6 joined
AlexDaniel notable6: some very important note here! 12:03
notable6 AlexDaniel, Noted! (weekly)
AlexDaniel see how it put it into the weekly instead of “some”? :)
12:04 benchable6 joined, ChanServ sets mode: +v benchable6
AlexDaniel notable6: (↑ that was just a bot test, nevermind) 12:04
notable6 AlexDaniel, I cannot recognize this command. See wiki for some examples: github.com/perl6/whateverable/wiki/Notable
AlexDaniel notable6: weekly (↑ that was just a bot test, nevermind)
notable6 AlexDaniel, Noted! (weekly)
12:04 unicodable6 joined, ChanServ sets mode: +v unicodable6, greppable6 joined, coverable6 joined, ChanServ sets mode: +v coverable6
AlexDaniel might still need some improvements though :) 12:04
notable6: uptime
notable6 AlexDaniel, 4 minutes and 50 seconds, 218.121094MiB maxrss. This is Rakudo version 2019.07.1-94-gd1f9d2848 built on MoarVM version 2019.07.1-50-gb614a7b4d implementing Perl 6.d.
AlexDaniel I'm hoping that they'll be leaking less too 12:05
timotimo AlexDaniel: how about setting up a little bit of monitoring that regularly logs info from the bots? 12:07
12:07 Cabanossi joined
AlexDaniel timotimo: I think MasterDuke once did a thing that logs maxrss of every bot after running the tests 12:08
I don't think it works…
but what kind of info do you want?
timotimo dunno, as much as possible :P 12:09
12:09 dolmen left
timotimo how much data did it receive over the sockets, how much did it send, how many tasks did it do, a distribution of how much time it spent on each task 12:09
etc etc
how much cpu time it spent in total
how many threads spawned
lizmat weekly: blogs.perl.org/users/damian_conway/...rings.html 12:10
notable6 lizmat, Noted! (weekly)
AlexDaniel timotimo: do you want to calculate carbon footprint of these bots or something? xD
but yeah, that kind of monitoring would be great to have 12:11
timotimo they are very good examples of very long running processes that regularly get fed different amounts of data
AlexDaniel who knows what it reveals
12:13 khisanth_ joined 12:15 dolmen joined 12:21 pat_js joined 12:22 ChoHag left 12:40 pamplemousse joined, xinming_ joined 12:43 ChoHag joined, xinming left 12:48 robertle left
Geth doc/master: 4 commits pushed by Coke++ 12:48
12:52 satori__ joined 12:54 robertle joined 12:55 reach_satori_ left 12:57 sena_kun left 13:04 reach_satori_ joined, st_elmo left
AlexDaniel weekly: goodbye, yoleaux! colabti.org/irclogger/irclogger_lo...07-29#l367 (whateverable replacement is coming soon) 13:05
notable6 AlexDaniel, Noted! (weekly)
13:07 satori__ left 13:09 reach_satori_ left 13:17 pat_js left 13:20 nightfrog left, nightfrog joined 13:23 Cabanossi left 13:25 Cabanossi joined 13:27 scimon joined, pat_js joined
chloekek AlexDaniel: timotimo: I think that having more monitoring and alerting for the ecosystem in general would be nice to have. 13:35
timotimo yeah
we used to have a collectd on p6c.org
then the machine died
AlexDaniel chloekek: what do you mean by the ecosystem?
chloekek AlexDaniel: the various websites and robots. 13:36
AlexDaniel rba: ↑ something to note about the infrastructure and stuff :) 13:37
chloekek I'ven't used collectd but I've used Prometheus which can do statistics collection, queries and alerts. 13:38
timotimo and prometheus is relatively simple to implement ad-hoc on the service side 13:39
maybe put something a little smaller than a Cro on there 13:40
though you can get that up without a cro router i'm sure 13:41
so maybe that's actually small enough to have not such a significant impact
also, some of the irc bots already have a http part for stuff like github notifications
chloekek Crometheus.
rba AlexDaniel: collectd noted. Guess it was an irc bot?
timotimo oooh
AlexDaniel no
timotimo no, collectd is a server process and there's different web frontends
i guess it's a little bit like munin? 13:42
though grafana could be nicer for now?
13:42 zakharyas joined
rba timotimo: can I come back to you about this later this week? 13:44
timotimo hm 13:45
not sure if we'll use collectd again
chloekek Is there a public overview of the servers and what they run/host? 13:47
AlexDaniel chloekek: I'm hoping that github.com/perl6/problem-solving/issues/68 will be it 13:48
cpan-p6 New module released to CPAN! Async::Workers (0.0.8) by 03VRURG 13:53
AlexDaniel rba: ↑ also note that, it's really important in my opinion 13:55
part of our previous problems is that we simply had no idea what's out there
rba AlexDaniel: noted :-) 13:56
14:00 woolfy joined 14:01 domidumont left
chloekek AlexDaniel: thanks 14:02
14:19 zakharyas1 joined 14:20 zakharyas left
chloekek 's been more interested in sysadmin lately. 14:21
timotimo maybe you'd like to hang out in ##perl6-infra 14:22
it's currently rather low-traffic 14:23
chloekek Thanks. 14:25
14:30 pat_js left 14:32 ChoHag left 14:33 Guest7247 is now known as tyil[m], tyil[m] is now known as Guest48765 14:39 pat_js joined, pamplemousse left 14:54 tokomer joined 15:16 pamplemousse joined 15:24 chloekek left 15:26 robertle left 15:35 zakharyas1 left, patrickb left 15:36 Black_Ribbon joined 15:38 domidumont joined 15:40 nightfrog left, nightfro` joined, pat_js left, nightfro` is now known as nightfrog 15:45 MilkmanDan left 15:47 MilkmanDan joined 15:55 [Sno] left 15:58 pamplemousse left
cpan-p6 New module released to CPAN! Gnome::GObject (0.13.14) by 03MARTIMM 15:59
16:03 Sgeo_ joined 16:05 Sgeo__ left 16:11 dolmen left 16:14 demanuel left 16:23 pamplemousse joined 16:27 dolmen joined 16:30 Sgeo__ joined, scimon left 16:32 Sgeo_ left 16:33 robertle joined 16:35 mowcat joined 16:37 dolmen left 16:40 dakkar left 16:41 jmerelo joined
jmerelo squashable6: status 16:48
squashable6 jmerelo, ⚠🍕 Next SQUASHathon in 3 days and ≈11 hours (2019-08-03 UTC-12⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
16:49 nightfrog left 16:50 nepugia joined, nightfrog joined 17:00 nightfrog left, nightfrog joined 17:01 nepugia left 17:06 jmerelo left 17:15 dolmen joined 17:19 rindolf left 17:25 wildtrees joined 17:27 wildtrees left 17:28 wildtrees joined 17:33 dolmen left 17:35 wildtrees left 17:36 wildtrees joined 17:40 demanuel joined 17:42 Sgeo_ joined 17:45 Sgeo__ left 17:54 molaf joined 18:00 reportable6 left, reportable6 joined, ChanServ sets mode: +v reportable6 18:04 natrys joined 18:11 tokomer left
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2019/07/29/...sed-again/ 18:15
18:15 nightfrog left 18:20 nightfrog joined 18:30 cpan-p6 left, cpan-p6 joined, cpan-p6 left, cpan-p6 joined
cpan-p6 New module released to CPAN! Gnome::Gdk3 (0.14.6) by 03MARTIMM 18:37
18:37 chloekek joined 18:49 domidumont left 18:54 mowcat left 19:04 [Sno] joined 19:06 pamplemousse left
vrurg No more .ask for a while...? 19:16
19:19 wildtrees left
vrurg SmokeMachine: ping 19:25
SmokeMachine vrurg: pong
vrurg I was thinking about releasing my hash in DB thing. But is there a way to provide table name at run time for a model? 19:26
19:27 rindolf joined
SmokeMachine vrurg: runtime? the only way to change the table name I know is `is table<new_name>` and maybe `method ^table(|) { "new_name" }` (that I'm not sure if it works...) 19:28
discord6 <Nobody> I have a beginner question: how can I append to a string?
<Nobody> I could not find anything on the doc, I might be searching for the wrong keywords 19:29
19:29 pamplemousse joined
vrurg SmokeMachine: it won't make sense releasing the model as a module because people would have different view over the table naming. 19:30
SmokeMachine but if this second option work, someone could do `method ^table($, $name?) { state $table-name = $_ with $name; $table-name }`
discord6 <Nobody> Nevermind, I should have searched for concatenation instead of appending
SmokeMachine vrurg: let me test...
vrurg SmokeMachine: I guess it doesn't. It takes type name only. 19:32
19:33 pamplemousse left 19:34 cpage_ joined
chloekek p6: enum Foo <Foo Bar>; Foo::Foo.perl.say; Foo::Bar.perl.say 19:35
19:35 evalable6 left
camelia Foo::Foo
Foo::Bar
19:35
chloekek p6: enum Foo <Foo Bar>; Foo::kv.perl.say;
camelia Could not find symbol '&kv'
in block <unit> at <tmp> line 1
19:36
chloekek p6: enum Foo <Foo Bar>; Foo::.kv.perl.say;
camelia ("Bar", Foo::Bar, "Foo", Foo::Foo).Seq
chloekek p6: enum Foo::Bar <Foo Bar Baz>; Foo::Bar::.kv.say
camelia (Foo Foo Baz Baz Bar (Bar))
chloekek Why is (Bar) parenthesized here?
p6: enum Foo::Bar <Foo Bar Baz>; Foo::Bar::Bar.perl.say
camelia Foo::Bar
chloekek p6: enum Foo::Bar <Foo Bar Baz>; Foo::Bar::Baz.perl.say 19:37
camelia Foo::Bar::Baz
vrurg chloekek: I gues because it picks up Bar symbol from Foo namespace
19:37 cpage_ is now known as cpage
SmokeMachine vrurg: www.irccloud.com/pastebin/vyYJ8B0U/ 19:37
19:37 evalable6 joined
chloekek vrurg: is that a bug? 19:38
ugexe no
m: class Foo::Bar { }; say GLOBAL::Foo; 19:39
19:39 evalable6 left
camelia (Foo) 19:39
vrurg SmokeMachine: perhaps making table() a multi and have a variant with multi table(Str:D $name) ? So, for a used it'd be just Model.^table: "my name"? 19:40
*for a user
SmokeMachine vrurg: www.irccloud.com/pastebin/9ANBwwo1/ 19:41
vrurg: yes, I think that's a good idea... but while that's not implemented, I think this would be a solution... 19:42
vrurg SmokeMachine: aha, something like what I was thinking about for the last couple of minutes. :)
19:44 evalable6 joined, ChanServ sets mode: +v evalable6
vrurg Fair enough. I'm not gonna work on it in a couple of days, perhaps. I have implemented to terrible design of own internal project that massive insertion of entries into a DB results in speed < 1 rec/sec whereas direct INSERT gives me 77 and Model.^create ends up with 17 recs/sec! 19:44
chloekek p6: class Foo { }; Foo::Foo.say 19:45
19:45 evalable6 left
camelia Could not find symbol '&Foo'
in block <unit> at <tmp> line 1
19:45
chloekek p6: class Foo { class Foo { } }; Foo::Foo.say
camelia (Foo)
vrurg So, need to reconsider and redo a lot..
chloekek p6: class Foo { class Foo { } }; say Foo::Foo === Foo
camelia False
ugexe m: class Foo::Bar { }; class Foo::Baz { }; say Foo::.keys
camelia (Bar Baz)
chloekek p6: enum Foo <Foo>; say Foo === Foo::Foo; 19:46
camelia False
chloekek p6: enum Foo <Foo>; say Foo::Foo.perl;
camelia Foo::Foo
chloekek p6: enum Foo::Bar <Bar>; say Foo::Bar === Foo::Bar::Bar;
camelia False
chloekek p6: enum Foo::Bar <Bar>; say Foo::Bar::Bar.perl;
camelia Foo::Bar::Bar
chloekek :/ 19:47
ugexe why are you expecting a stash for Foo::Bar to be identity equal to Foo::Bar::Bar ?
chloekek Because:
p6: enum Foo::Bar <Foo Bar Baz>; Foo::Bar::Bar.perl.say
camelia Foo::Bar
chloekek I expect it to print Foo::Bar::Bar, like it prints Foo::Bar::Baz if you do this: 19:48
p6: enum Foo::Bar <Foo Bar Baz>; Foo::Bar::Baz.perl.say
camelia Foo::Bar::Baz
ugexe ah
19:49 epony left, evalable6 joined, ChanServ sets mode: +v evalable6
ugexe m: enum Foo::Bar <Foo Bar Baz>; say Bar === Foo::Bar::Bar 19:50
19:50 evalable6 left
camelia False 19:50
ugexe m: enum Foo::Bar <Foo Bar Baz>; say Baz === Foo::Bar::Baz
camelia True
ugexe yeah i'd say thats a bug
chloekek p6: enum Foo <Bla>; say Bla 19:51
camelia Bla
chloekek Ah you can access the members without qualification.
19:53 evalable6 joined
chloekek Would be nice if there's a way to disable that. 19:53
19:53 Sgeo__ joined 19:57 Sgeo_ left, robertle left
chloekek p6: enum foo ('bar', 'baz'); bar.say 19:59
19:59 evalable6 left
camelia bar 19:59
chloekek Oh well. :) 20:02
20:04 evalable6 joined, ayerhart left 20:05 molaf left
ugexe just use the FQN inside the enum 20:05
although i guess that still leaves you with foo::foo::bar 20:06
chloekek I'm not actually naming the member the same as the package, I just noticed it when experimenting. 20:10
I have “enum Granite::Direction <West East North South Up Down>;”
20:11 pecastro joined
cpan-p6 New module released to CPAN! Gnome::Gtk3 (0.17.9) by 03MARTIMM 20:12
20:12 sena_kun joined
sena_kun m: my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say INIT now - now; 20:13
20:13 evalable6 left
camelia -0.00167835 20:13
sena_kun m: my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say now - INIT now;
camelia 0.0214331
sena_kun m: my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say now - INIT now;
camelia 0.0184006
sena_kun I know the code is useless, but does anyone have any ideas on how to make it faster? 20:14
20:14 rindolf left, epony joined
sena_kun just saw a tweet saying that Perl 6 is like, erm, 39945.714286 times slower(!) than C, which is pretty ridiculous. tried the code myself and it is like 90 times slower than C, but not ~40_000. 20:16
replacing `for` with `loop` does not do a lot
20:17 evalable6 joined 20:18 reach_satori_ joined
timotimo my perl6 search column in tweetdeck didn't pick up a tweet like that recently 20:18
20:19 rindolf joined
sena_kun timotimo, twitter.com/saito_ta/status/1155759758747373568 20:19
I am planning to write a gist with my measures and ask how did they measure it to be so bad
chloekek m: my int @a[1000]; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say INIT now - now; 20:20
20:20 evalable6 left
camelia -0.01370243 20:20
timotimo oh, that's what those numbers mean
sena_kun this is a number of runs in a second
chloekek Pre-allocate the array and Conway's light cone will be proud.
timotimo chloekek: i think INIT now - now will have "now - now" inside the INIT block 20:21
chloekek Ohh wait.
sena_kun chloekek, erm, it did it worse for me. o.O
chloekek m: my int @a[1000]; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say now - INIT now;
camelia 0.316234
20:21 rindolf left
chloekek lmao 20:21
sena_kun m: my int @a[]; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say now - INIT now; 20:22
camelia Cannot create a dimension array with only 0 dimensions
in block <unit> at <tmp> line 1
20:22 rindolf joined
sena_kun m: my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] }; say now - INIT now; 20:22
camelia 0.0109711
chloekek Maybe it doesn't optimize well if you use a shaped array.
Oh hey, the C code is cheating. It uses undefined behavior.
sena_kun yeah
chloekek You can't += an uninitialized element, the compiler will just optimize that away and the program will do nothing. 20:23
timotimo oh, shaped arrays are *super* slow
sena_kun chloekek, it prints values with a print added, garbage ones, of course, can you somehow prove that the code is optimized away?
I am not a C hacker. :S 20:24
20:24 evalable6 joined
timotimo godbolt.org/z/Pr0rL2 20:25
remove the ; there in the include line, i'm super tired right now, lol
though that is C++, i should change it to 20:26
C
sena_kun timotimo, so it does just ret if I remove print. LOL 20:27
that's just epic
timotimo of course :)
sena_kun ok, now I need to write a humble response...
chloekek Also, % is slow if not optimized properly. If the RHS is constant you can always rewrite it to multiplications and bitshifts which are faster, but I don't know if MoarVM does that.
timotimo chloekek: it doesn't, but you could teach it if you'd like!
i can offer guidance
chloekek That'd be fun. I'd have to read the paper again. 20:28
timotimo lemire.me/blog/2019/02/08/faster-r...libdivide/ - i've seen this a couple of months ago and ever since i wanted it in moarvm 20:29
though in the code in question it'll be important to know if it does the math with 64bit or with big integers
chloekek p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; my $before := now; f; my $after := now; say $after - $before; 20:30
20:30 evalable6 left
camelia 0.059757 20:30
chloekek p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^100 { f }; my $before := now; f; my $after := now; say $after - $before;
camelia 0.002092
chloekek Gotta spesh that baby.
p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^500 { f }; my $before := now; f; my $after := now; say $after - $before; 20:31
camelia 0.0021146
chloekek p6: sub f { my int @a; for ^1000 { @a[$_] ⚛️+= @a[($_ + 3) % 1000] } }; for ^500 { f }; my $before := now; f; my $after := now; say $after - $before; 20:32
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3sub f { my int @a; for ^1000 { @a[$_]7⏏5 ⚛️+= @a[($_ + 3) % 1000] } }; for ^500 {
expecting any of:
infix
infix stopper
sta…
20:33 evalable6 joined, ChanServ sets mode: +v evalable6
timotimo have you got experience with MVM_SPESH_LOG yet? 20:34
chloekek Nope. 20:35
sena_kun timotimo, can I leave a link at godbolt? I mean, will it persist?
timotimo sena_kun: the share button offers "share on erddit" and "tweet", so i'd expect it to persist
sena_kun oooh, nice, thanks!
timotimo the long version of the url encodes everything in the url 20:36
even the layout of the splits and what windows you have open
20:37 reach_satori_ left
timotimo p6: sub f { my int @a; for ^1000 { @a[$_] += @a.AT-POS(($_ + 3) % 1000) } }; for ^1_000 { f }; my $before := now; f; my $after := now; say $after - $before; 20:37
20:37 evalable6 left
camelia 0.0021872 20:37
timotimo p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^1_000 { f }; my $before := now; f; my $after := now; say $after - $before;
camelia 0.002075
timotimo perhaps too short to be a good measurement
p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^1_000 { f }; my $before := now; for ^100 { f }; my $after := now; say $after - $before;
camelia 0.1537772 20:38
timotimo p6: sub f { my int @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before;
camelia 2.37775893
timotimo p6: sub f { my int @a; for ^1000 { @a[$_] += @a.AT-POS(($_ + 3) % 1000) } }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before;
camelia 1.8682511
20:38 wildtrees joined 20:40 evalable6 joined, ChanServ sets mode: +v evalable6
chloekek p6: use MONKEY-GUTS; sub f { my int @a; for ^1000 { my int $i = $_; my int $x = @a[($_ + 3) % 1000]; nqp::bindpos_i(@a, $i, $x) } }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before; 20:43
20:43 evalable6 left
camelia 1.4499136 20:43
timotimo on my machine my last one is more than three times faster
sena_kun ok, responded... 20:45
I wish people would do at least some research before posting ridiculous benchmarking results, others likely won't test them for themselves and just think "C good Perl 6 bad"... 20:46
timotimo sena_kun: translate your tweets for us? :)
chloekek I think the godbolt example optimized away because there are no side-effects and the result is unused. 20:47
sena_kun well, one I posted is "Your C code just does nop, $url. Can you show us your Perl 6 code? Here is mine - $github-url. It is not nop, but after optimization is still close in speed to nop C".
20:47 evalable6 joined, ChanServ sets mode: +v evalable6
timotimo what was the ratio between C and p6 in your final example? 55x slower in p6? 20:48
chloekek Here we see that it is not actually optimized away if you use the array: godbolt.org/z/VlqKUN although I'm certain the compiler is allowed to.
sena_kun and a comment is, again, "Can you, please, show us your Perl 6 code? Your C code uses undefined behavior and turns into nop".
chloekek But do note how there are no division or modulo instructions in the assembly code, only multiplications, shifts and subtractions. :) 20:49
sena_kun chloekek, well, the original poster code does not have usage, so...
timotimo, what's the degree, let me check... C worked like 0.001 for me, and my original code is 0.167 in real. 20:50
0.003 real for C
timotimo m: say 1 / 0.167
20:50 evalable6 left
camelia 5.988024 20:50
20:51 evalable6 joined
sena_kun m: 0.167 / 0.003 20:51
20:51 evalable6 left
timotimo 6x per second, that's not all that impressive 20:51
camelia ( no output )
sena_kun m: say 0.167 / 0.003
chloekek What's really fun is if you initialize the array with zeroes, the compiler evaluates everything at compile time and then generates a single REP STOS instruction to fill the array with the results: godbolt.org/z/NZ5HN5 :D
camelia 55.666667
sena_kun so around 55 times
timotimo that's a good ratio between C and p6
chloekek That probably runs in a handful of nanoseconds.
timotimo ah, right, the code will literally never have anything but 0s in the result array 20:53
it even uses 64bit stores so it only has to do it 500 times instead of a thousand, haha
sena_kun well, I already said "the code is useless" part when I brought it here. :P
chloekek It'd be more interesting if the array was filled with 1s or 3s or something.
timotimo so actually we should also use 32bit int array on the perl6 side
p6: sub f { my int32 @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before;
camelia 2.68645491
timotimo p6: sub f { my int32 @a; for ^1000 { @a[$_] += @a[($_ + 3) % 1000] } }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before; 20:54
camelia 2.0605061
timotimo the variability of timings on camelia is pretty oof.
chloekek Here's one that does some interesting work: godbolt.org/z/58_peL if that can be translated to Perl 6 that'd be useful.
20:55 evalable6 joined, ChanServ sets mode: +v evalable6
sena_kun .oO ( maybe I need to start a blog in Japanese explaining that Perl 6 is not _SO_ slow as people think, but moderately slow and sometimes times faster than your python stuff ) 20:55
chloekek p6: sub f { my int32 @a[1000] }; for ^1_000 { f }; my $before := now; for ^1_000 { f }; my $after := now; say $after - $before; 20:56
20:56 evalable6 left
camelia 0.02008364 20:56
21:00 evalable6 joined, ChanServ sets mode: +v evalable6 21:03 molaf joined
chloekek p6: spurt('/tmp/foo.c', 'void f(int* a) { for (int i = 0; i < 1000; ++i) a[i] += a[(i + 3) % 1000]; }'); run('gcc', '/tmp/foo.c', '-shared', '-O3', '-std=c99', '-o', '/tmp/libfoo.so'); use NativeCall; sub f(CArray[int32] $a) is native('/tmp/libfoo.so') {*}; my @a := CArray[int32].new(0 xx 1000); my $before := now; for ^1_000 { f(@a) }; my $after := now; say $after - $before; 21:04
21:04 evalable6 left
camelia 0.01092471 21:04
timotimo aaaaaaaah :) 21:05
chloekek camelia probably runs on a potato so we should also run the C code on the same machine.
21:09 evalable6 joined
timotimo one of those days you'll be able to get a camelia plushie that can run perl6 21:12
21:14 dolmen joined
moritz got his first camelia plushie today. Thanks lizmat & woolfy! :D 21:17
21:20 pamplemousse joined 21:22 [particle]1 joined 21:23 Cabanossi left 21:24 [particle] left 21:27 [particle] joined 21:29 [particle]1 left, pilne joined 21:38 Cabanossi joined 21:39 wildtrees left
pilne so, old lappy died, and for various reasons i'm again stuck on windows, and i'm a bit confused at the download options for rakudo presented to me 21:41
Elronnd pilne: rakudo.org/files
pilne it has 2019.03.1, but it seems 2019.07.1 is current? 21:42
timotimo rakudo star is a distribution of compiler + a collection of modules and docs and such
pilne errr not 03.1, just .03
Elronnd probably just not updated yet
timotimo it's a separate release
which will happen soon, hopefully
pilne so, since i have nothing on here yet, patience would be a virtue?
:D
given the fixes i read 21:43
timotimo it'd be enough to install the compiler-only thing
just gotta download your own zef to install modules
pilne i still feel so lost on windows compared to a linux, and timid almost, since i'm not sure i can fix things when i smeg them up 21:44
timotimo ha, i know that feeling 21:46
pilne i also noticed that the work on the jvm backend is "indeterminate" arrival, is the effort switching to use the truffle/graal framework? that would seem logical to me as someone who just reads about all this stuff too much 21:47
timotimo there is an effort to do that, yeah 21:48
but we have only few people who actually work on the jvm backend
pilne yeah, i'm not that interested per-say, i was just kinda hoping those that were were embracing the new (seemingly easier?) way to approach it
i had java shoved down my throat academically in the 1.2 era....
i still have nightmares 21:49
21:52 Sgeo_ joined 21:55 Sgeo__ left
timotimo i really want a very performant way to get the filename/lineno where my current function was called 21:56
callframe.line doesn't give me the current line at the position the call was made, i think
and Backtrace.new.list.skip(1).head gives me what i want, but is excruciatingly slow 21:57
21:59 chloekek left 22:07 dolmen left 22:09 nepugia joined
woolfy moritz++ Be happy with your Camelia! May the force of the stuffed butterfly guide you through clear coding! 22:26
22:28 natrys left 22:29 nepugia left 22:43 rindolf left 22:50 nepugia joined 23:06 lucasb left 23:17 MilkmanDan left 23:21 Sgeo__ joined 23:24 pamplemousse left, MilkmanDan joined, pamplemousse joined, Sgeo_ left 23:26 Manifest0 left, Sgeo joined 23:27 Manifest0 joined
timotimo cdn.discordapp.com/attachments/538...er_new.gif 23:28
admire my perlsixing, please
23:29 Sgeo__ left 23:31 pecastro left 23:32 nepugia is now known as nephele 23:35 dolmen joined 23:36 MilkmanDan left 23:40 dolmen left
timotimo (a good portion of the niceness of the tool is Xliff's contributions) 23:45
23:48 |oLa|1 joined
vrurg timotimo++ 23:48
What is it gonna be?
timotimo depends what "it" you're refering to
the "art" is a spaceship that'd go into a vertical scrolling spacey shooty game 23:49
vrurg The universal question of life and everything... ;)
23:50 MilkmanDan joined
vrurg And the tool you're using? How are you going to use the perl code for drawing? 23:51
It's hard to ask right questions by seeing just a window in action. :)
timotimo it goes into the perl6 code that is the game
vrurg Now the thing you told me the other day makes sense... Thrilled to see the result! 23:53
timotimo oh, what thing was that? 23:54
SmokeMachine vrurg: would you mind to create a issue asking for the way to set the table at run time, please? 23:55
vrurg: and thank you for your PRs!
Kaiepi done my first real day of work for the networking grant, won't have anything to show for it until later this week though
SmokeMachine PRs 23:56
23:56 holyghost left, holyghost joined 23:59 aborazmeh joined, aborazmeh left, aborazmeh joined