»ö« 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.
00:03 pharv left, pharv joined 00:04 p6bannerbot sets mode: +v pharv 00:06 Ven` joined 00:07 p6bannerbot sets mode: +v Ven` 00:10 pharv left 00:11 Ven` left 00:12 pharv joined, p6bannerbot sets mode: +v pharv 00:17 sotona joined 00:18 p6bannerbot sets mode: +v sotona 00:22 sotona left, pharv left
buggable New CPAN upload: Git-Log-0.2.0.tar.gz by SAMCV modules.perl6.org/dist/Git::Log:cpan:SAMCV 00:42
00:42 Ven` joined 00:43 p6bannerbot sets mode: +v Ven` 00:47 Ven` left 00:49 joy_ left 01:19 Ven` joined, p6bannerbot sets mode: +v Ven` 01:23 lichtkind left 01:24 Ven` left 01:34 sotona joined 01:35 p6bannerbot sets mode: +v sotona, lichtkind joined 01:36 p6bannerbot sets mode: +v lichtkind 01:48 sotona left 01:55 Ven` joined 01:56 p6bannerbot sets mode: +v Ven` 02:00 Ven` left 02:01 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 02:03 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 02:07 ifim left 02:08 sotona joined 02:09 p6bannerbot sets mode: +v sotona 02:13 sotona left 02:31 Ven` joined 02:32 p6bannerbot sets mode: +v Ven` 02:33 joy_ joined 02:34 p6bannerbot sets mode: +v joy_ 02:36 Ven` left 02:44 MasterDuke left 02:45 joy_ left 03:08 Ven` joined, p6bannerbot sets mode: +v Ven` 03:11 inbioz joined, p6bannerbot sets mode: +v inbioz 03:13 Ven` left 03:16 inbioz left 03:23 joy_ joined 03:24 p6bannerbot sets mode: +v joy_ 03:34 kurahaupo_ joined 03:35 p6bannerbot sets mode: +v kurahaupo_ 03:44 Ven` joined 03:45 p6bannerbot sets mode: +v Ven` 03:49 Ven` left 04:25 kaare__ joined, p6bannerbot sets mode: +v kaare__
Geth doc: 8cfb6db806 | (JJ Merelo)++ | doc/Type/Submethod.pod6
Eliminates TODO refs #2277
04:27
synopsebot Link: doc.perl6.org/type/Submethod
04:29 dominix joined, p6bannerbot sets mode: +v dominix 04:41 x[LGWs4x4i]uG2N0 left 04:45 x[LGWs4x4i]uG2N0 joined 04:46 saki joined, saki left, p6bannerbot sets mode: +v x[LGWs4x4i]uG2N0 04:50 kaare__ left, kaare_ joined 04:51 p6bannerbot sets mode: +v kaare_ 04:53 vrurg left 04:54 saki joined, saki left 05:06 vrurg joined, fake_space_whale left, p6bannerbot sets mode: +v vrurg 05:08 kerframil left 05:11 AlexDaniel left, AlexDaniel joined, livingstone.freenode.net sets mode: +v AlexDaniel, p6bannerbot sets mode: +v AlexDaniel 05:38 leastbit joined, leastbit left, leastbit joined, leastbit left 05:39 leastbit joined, leastbit left, leastbit joined, leastbit left 05:41 vrurg left 05:44 psychoslave joined 05:45 p6bannerbot sets mode: +v psychoslave 05:47 spycrab0 left
xinming How do we check value against type? 05:54
geekosaur m: say so 5 ~~ Int 05:55
camelia True
xinming Ok~~~ 05:56
Didn't thought it's that easy.
geekosaur the thing on the right controls what it actually checks; if it's a type, it checks compatibility
(which includes subclasses)
06:12 araraloren_ joined 06:13 p6bannerbot sets mode: +v araraloren_ 06:16 araraloren left 07:02 Guest32399 joined 07:03 psychoslave left, psychoslave joined 07:04 p6bannerbot sets mode: +v psychoslave 07:06 Guest32399 left, kurahaupo1 joined 07:07 p6bannerbot sets mode: +v kurahaupo1, psychoslave left 07:08 psychoslave joined, p6bannerbot sets mode: +v psychoslave 07:20 psychoslave left 07:26 pmurias joined 07:27 p6bannerbot sets mode: +v pmurias 07:50 x[LGWs4x4i]uG2N0 left 07:52 saki joined, saki left 07:54 kurahaupo1 is now known as kurahaupo`, x[LGWs4x4i]uG2N0 joined 07:55 sotona joined, p6bannerbot sets mode: +v x[LGWs4x4i]uG2N0 07:56 p6bannerbot sets mode: +v sotona 07:59 sotona left 08:07 psychoslave joined 08:08 p6bannerbot sets mode: +v psychoslave 08:11 saki joined, saki left 08:25 saki joined, saki left 08:40 saki joined 08:41 p6bannerbot sets mode: +v saki 08:50 dominix left, rindolf joined, p6bannerbot sets mode: +v rindolf 08:55 lizmat joined 08:56 p6bannerbot sets mode: +v lizmat
pmurias would building a regular static content (html) serving framework on Cro be a good idea? 09:01
or are old school web frameworks considered passe 09:02
;) 09:07
09:17 lichtkind left
lizmat pmurias: static content html is nicely handled By front-ends like Nginx , no ? 09:25
pmurias lizmat: I used the wrong words, by static content I meant dynamically generated html as opposed to sending data that is used by a client side js app 09:26
lizmat what's the difference between dynamically generated HTML and data sent to a client side js app other then the content-type ? 09:27
pmurias having some nice html templating integrated in? 09:28
maybe less then more I think about it 09:29
09:29 lichtkind joined 09:30 p6bannerbot sets mode: +v lichtkind 09:36 sena_kun joined 09:37 p6bannerbot sets mode: +v sena_kun 09:38 psychoslave left 09:42 psychoslave joined 09:43 p6bannerbot sets mode: +v psychoslave 09:45 stmuk_ joined 09:46 p6bannerbot sets mode: +v stmuk_, lizmat left 09:47 stmuk left
CIAvash[m] pmurias: If I understood you correctly, jnthn has started working on it github.com/jnthn/cro-webapp 09:50
09:52 kaare_ left
lichtkind can anyone tell me why zef still doesnt updated to latest version of my module since over month? 09:54
sena_kun lichtkind, can you please provide some details? A link to your module repo, is it hosted on cpan or github-based ecosystem? 09:58
lichtkind sena_kun, Math::Matrix is still github only and since a Month there is version 0.25 and zef still gives me 0.20 10:00
sena_kun, but it was my suspition too that it is because im not on cpan
github.com/pierre-vigier/Perl6-Math-Matrix 10:01
sena_kun well, it shouldn't depend on cpan, I think. I'll look now, though cannot promise anything, unfortunately.
thanks
lichtkind, github.com/pierre-vigier/Perl6-Mat...6.json#L24 <- I see your META6.json has 0.2.0 as version, not 0.25. 10:02
10:03 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh
sena_kun zef looks on META6.json when calculating meta data, so you should update it there. And then wait maybe just a bit(not sure how much though, but not a month, maybe an hour or something) and it'll be fine. :) 10:03
10:03 p6bannerbot sets mode: +v aborazmeh 10:05 Khisanth left 10:18 Khisanth joined, p6bannerbot sets mode: +v Khisanth 10:24 spycrab0 joined, p6bannerbot sets mode: +v spycrab0
lichtkind sena_kun, allright so its my fault i udated it pud i guess due some strange commit from my other computer i set it back somehow, Thanks 10:24
10:25 saki left
sena_kun lichtkind, no problem, have a nice day. :) 10:26
lichtkind thank you sena_kun 10:27
10:37 gaurav_ joined, p6bannerbot sets mode: +v gaurav_
gaurav_ hey all 10:37
araraloren_ lichtkind you maye try `zef update` first 10:39
gaurav_ o/
lichtkind araraloren_, I did
but its resolved now
araraloren_ okay, cool 10:40
lichtkind sena_kun++ found the issue
10:43 tejr left 10:44 gaurav_ left 10:50 gaurav_ joined, p6bannerbot sets mode: +v gaurav_
gaurav_ p6: sub ($a,$b) { dd @_ } (2,3); 10:58
camelia 5===SORRY!5=== Error while compiling <tmp>
Placeholder variable '@_' cannot override existing signature
at <tmp>:1
------> 3sub7⏏5 ($a,$b) { dd @_ } (2,3);
gaurav_ p6: sub ($a,$b) { dd $a,$b } (2,3);
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3sub ($a,$b) { dd $a,$b }7⏏5 (2,3);
expecting any of:
infix
infix stopper
statemen…
gaurav_ p6: sub ($a,$b) { dd $a,$b; } (2,3);
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3sub ($a,$b) { dd $a,$b; }7⏏5 (2,3);
expecting any of:
infix
infix stopper
stateme…
gaurav_ p6: say sub ($a,$b) { dd $a,$b; } (2,3); 10:59
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3say sub ($a,$b) { dd $a,$b; }7⏏5 (2,3);
expecting any of:
infix
infix stopper
pos…
11:01 psychoslave left
sena_kun m: -> $a, $b { say ($a, $b); }(2,3) 11:02
camelia (2 3)
sena_kun ?
m: -> $a, $b { dd $a, $b }(2,3); 11:03
camelia 2
3
gaurav_ trying to see how the anon sub works in p6 11:06
so I see you wrote '->' instead of 'say sub. 11:07
so I see you wrote '->' instead of 'say sub'.
sena_kun well, it's a pointy block.
m: sub ($a,$b) { say $a + $b }(2,3); 11:08
camelia 5
sena_kun gaurav_, anonymous subroutine will be something like ^
see last paragraphs of docs.perl6.org/language/functions#Subroutines 11:09
gaurav_ checking..
sena_kun m: { say $^a + $^b }(2,3);
camelia 5
sena_kun :) 11:10
buggable New CPAN upload: Config-2.0.0.tar.gz by TYIL modules.perl6.org/dist/Config:cpan:TYIL 11:12
New CPAN upload: Config-2.0.1.tar.gz by TYIL modules.perl6.org/dist/Config:cpan:TYIL
gaurav_ p6 seems to be a little sensitive to spaces. example: 11:14
sub ($x) - OK
but
sub($x) - NOK
sena_kun well, it is almost not sensitive, except for a couple of tiny bits.
gaurav_ okay. just trying to get the hang of it. 11:15
I have used perl5 extensively at work for many things.
11:15 imcsk8 left
sena_kun a space between `sub` and argument list is one of the exceptions, as it introduces ambiguity. 11:15
however, if you "I Know What I Am Doing", you can use Slang::Tuxic module/slang to get the ability to add space there. :)
gaurav_ Now I would like to see whether if there is a possibility of using p6 :)
wow @Slang::Tuxic, that is a cool option. Thanks sena_kunj 11:16
*sena_kun
Is perl6 going to be standard linux distribution anytime soon? Where can I read about this topic? 11:17
sena_kun gaurav_, do you mean packages for various distributions to install it using package manager?
11:18 leastbit joined, leastbit left, leastbit joined, leastbit left, leastbit joined, leastbit left
gaurav_ you can say that sena_kun 11:18
I know that one could intall rakudo by downloading. 11:19
11:19 leastbit joined
sena_kun I am sure there are packages for some popular ones(even for arch/gentoo/void etc). What distro do you use? 11:19
11:19 p6bannerbot sets mode: +v leastbit
gaurav_ but are there any plans to include perl6 with the standard linux distribution itself? 11:19
I like using RHEL/CentOS
11:20 p6bannerbot sets mode: +v leastbit
gaurav_ currently using RHEL/CentOS 7.5 11:20
11:20 sotona joined
sena_kun gaurav_, see nxadm.github.io/rakudo-pkg/#os-repositories see "Centos and Fedora" sub-paragraph. 11:21
11:21 p6bannerbot sets mode: +v sotona
gaurav_ thanks. checking.. 11:21
11:21 leastbit left 11:22 imcsk8 joined 11:23 p6bannerbot sets mode: +v imcsk8
gaurav_ If I remember, 1-2 years ago one had to download rakudo and compile it, instead of a direct package. 11:24
sena_kun about standard linux distribution itself - well, right now I am doubting that. It is very tricky process and there must be serious reasons to do so. Linux community is very big, there are tons of various organizations and corporations behind it. As Perl 6 first release was not so long ago... Well. But you can always install it fine, there are repos and stuff. For tricky cases compiling is always an option.
things are better with time. :) 11:25
gaurav_ Yes, I can see that. It is absolutely great.
11:25 sotona left
sena_kun \o/ 11:25
gaurav_ Working at a bank, where all development is in Java, people just hate perl5 (dunno why!). Probably because they get scared of the perl5 expressive syntax. 11:27
I have to constantly hear stuff like, oh! perl5 is a dead language and blah blah..
11:27 aborazmeh left
robertle I guess staffing for java positions is easier than for most other languages 11:28
gaurav_ Java people can't look past Classes and Objects and when I read about Java, I now know why. Because Java only allows Classes and Objects - their brains have never seen functional stuff.
And the best part.. "oh.. you don't use an IDE? IDE is a must...!", I always vim 11:30
sena_kun well, people are not always like to learn new things, even if those things are good. so it's a matter of taste and bravery to help people learn by promotion, helping and creating amazing things.
.o0 ( and we have a Perl 6 IDE, in beta though :D )
robertle still, you can write some fine stuff in java, and the relatively simple language makes is readable for people less proficient 11:31
gaurav_ Yes, I read about that. It is more than welcome!
Yes, Java is OK or probably good if it suits the development goals of the organization/company. But when their developers start the negativity about other languages, it just doesn't make sense. 11:32
pmurias IDE help a lot when writing java stuff tho 11:34
gaurav_ @pmurias, I am sure that is the case. this may be the reason that no one is without an IDE ;) 11:35
AlexDaniel gaurav_: re “standard linux distribution” github.com/perl6/user-experience/i...-413646915 11:38
gaurav_: i.e. most distros already have rakudo
robertle I guess the weird enforced directory structure also makes worrking with vim or so hard, at least for me. 11:39
AlexDaniel though it depends on how recent your distro version is
gaurav_ @AlexDaniel. Checking link. Thanks for it.
robertle in any case, the success of java is really interesting. it's not because of anything java did by design. in fact noone is using java for what it was designed for 11:40
sena_kun AlexDaniel, I thought he meant en.wikipedia.org/wiki/Linux_Standard_Base
s/he/they/
gaurav_ @robertle. enforced directory?
robertle but somehow they have managed to form a community with shared ideas on how java code should look like
AlexDaniel sena_kun: oh… oh… 11:41
robertle gaurav_: the package = directory plus the convention of having the com/something/mycorp prefix to make all packages globally unique. makes the package tree really deep
I think this normative process makes it really easy to get people to start on other codebases, and therefore a good language for corporate development. you can move people around easier 11:42
of course the flipside is that java can't evolve easily, and that is showing at the moment
gaurav_ robertle: Is that the reason Java8 is now trying to do functional programming? 11:43
robertle but it's interesting that the C++ community is doing more of that recently, working towards a less fractured idea of what code should look like. at least that is my impression
gaurav_: I'd rather think the functional parts are one of the rare cases where java has managed to evolve. it's not like that only perl is combining functional and imperative programming, everyone is 11:44
11:44 lizmat joined
robertle and from a lisp or scheme point of view all of these attempts are relatively weak 11:44
AlexDaniel 8? don't we have java 10 now? :) 11:45
though I stopped following it at 8, so I don't even have a clue about 9 and 10
11:45 p6bannerbot sets mode: +v lizmat
robertle the actual changes to the language are relatively small 11:45
gaurav_ Not sure about Java 9 or Java 10. 11:46
robertle the only thing i really noticed was c++-style type inferrence at compile time
and technical improvements to the garbage collector 11:47
AlexDaniel oooooooooo `var` in java 10! Finally!
robertle the other bit I find interesting or even worrying is that at my work, java is slowly being replaced with golang, an even less expressive language. and one that is even more monoculture in how code should look
AlexDaniel I've been using `val` from projectlombok since forever. Nice to see it becoming part of the language 11:48
gaurav_ @robertle: which sector of industry do you work in? 11:49
11:49 tejr joined, p6bannerbot sets mode: +v tejr
robertle gaurav_: used to be television, now fitness. but in both cases it's just backend development. some of it was C++ and java, now it's java and golang. some scala by accident 11:52
11:52 saki joined 11:53 saki left
robertle golang is just barbaric, and java has these weird cultural things where you need to have so much useless structure in the form of interfaces and facades around. I don't really like either. C++ lacks good libraries for typical backend work, and (like perl) it requires restraint from the developer, but at least it's fun 11:54
gaurav_ I work in Investment Banking firm in Testing/QA division. Our new products are now moving from Java to Scala
robertle scala is a much saner language than java, but I wonder whether it will hold 11:55
gaurav_ But in our case, they are using Scala in conjunction with Apache Spark and Hadoop framework. The volume of data is just too much. 11:56
11:57 leastbit joined, leastbit left 11:58 psychoslave joined, saki joined, saki left, p6bannerbot sets mode: +v psychoslave
robertle I guess that is the other reason for java or scala: momentum by all these big frameworks 11:58
gaurav_ One thing about C++ is that you need to have a discipline and patience. It takes some time to learn it, specially if you know a scripting language and trying to do c++. 11:59
Yes robertle. It is only due to these big frameworks. Otherwise I haven't had the time to look into scala to know what it brings on the table. Someday I shall do it. 12:00
robertle yeah, it's a bigger language. but I think the more important aspect, and perhaps more relevant for perl, is that you need to have discipline *during* development, not only in the startup/learning phase. it's just way too easy to do something unnecessarily complex. you even get the excuses, "zero overhead" and all
gaurav_ One thing I like about C/C++ is that you can compile your code and hide the code. Try to understand that there are a lot of people who are just looking to copy your work and present it as your's. 12:01
12:02 sotona joined, p6bannerbot sets mode: +v sotona
buggable New CPAN upload: Config-2.1.0.tar.gz by TYIL modules.perl6.org/dist/Config:cpan:TYIL 12:02
12:06 sotona left
robertle 0b9cd9f22f67 12:06
grrr, sorry
gaurav_ I agree to the point about easy to do something unnecessarily complex. One must clearly know what is to be achieved. Design is king! 12:07
There is no escape from poor design, anywhere!
12:09 stmuk joined 12:10 p6bannerbot sets mode: +v stmuk 12:12 stmuk_ left 12:13 molaf joined, p6bannerbot sets mode: +v molaf 12:16 saki joined 12:17 p6bannerbot sets mode: +v saki 12:21 kaare_ joined 12:22 p6bannerbot sets mode: +v kaare_ 12:26 AlexDaniel left, kaare_ left
stmuk most of the code I've written I've wished someone had copied it ... and improved it! 12:28
12:28 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
stmuk I've seen large enterprises lose source code for their projects and have to rewrite it 12:29
12:31 molaf left 12:36 stmuk_ joined 12:37 p6bannerbot sets mode: +v stmuk_ 12:39 stmuk left 12:43 sotona joined, p6bannerbot sets mode: +v sotona 12:47 sotona left
rindolf stmuk_: ah 12:48
stmuk_: no vcs?
stmuk_: perlhacks.com/2012/03/you-must-hat...l-systems/ 12:49
12:59 espadrine joined, p6bannerbot sets mode: +v espadrine 13:00 kurahaupo` left
timotimo in the videogame industry, many older projects have lost all their source code :( 13:00
sometimes source code turns up in someone's closet randomly, though 13:01
13:06 psychoslave left 13:19 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 13:20 p6bannerbot sets mode: +v aborazmeh 13:22 psychoslave joined, p6bannerbot sets mode: +v psychoslave 13:23 sotona joined 13:24 p6bannerbot sets mode: +v sotona 13:28 sotona left
rindolf timotimo: ah 13:28
13:44 aborazmeh left 13:59 curan joined, p6bannerbot sets mode: +v curan 14:06 curan left 14:30 molaf joined, p6bannerbot sets mode: +v molaf
Geth doc: 45cbd5d509 | (Elizabeth Mattijsen)++ | doc/Language/operators.pod6
Fix typo
14:33
synopsebot Link: doc.perl6.org/language/operators
14:47 albongo left, stmuk joined 14:48 albongo joined, albongo left, albongo joined, p6bannerbot sets mode: +v albongo, p6bannerbot sets mode: +v stmuk 14:49 p6bannerbot sets mode: +v albongo, stmuk_ left
ingy Hey all. As I've been running the same test suite over and over for the past months it seems like the perl6 tests keep getting slower and slower. Is there some kind of caching going on outside of testing directory, that could somehow be causing a problem? 14:58
I mean I can clear my local .precomps etc, but is perl6 writing something else out somewhere, that it is later checking causing it to slow down more and more 15:00
mst can't think of anything except precomps but that doesn't mean I'm right 15:01
timotimo perhaps the precomp folder is filling up with outdated bytecode files? and finding the right file takes longer for some reason? i don't know how it works ... 15:03
15:04 HaraldJoerg joined, p6bannerbot sets mode: +v HaraldJoerg
mst since ingy's not explained what his test suite does, "I bet it's the precomps" plus trout.me.uk/vaguecat.jpg are my only answers atm 15:12
robertle don't fully understand precomp, but I don't think there is any "scanning" involved. so more files should not really make it slower apart from the OS parts of course 15:13
15:14 zakharyas joined
timotimo is the sha1 of the source file used to find the right file? not sure. strace could tell. 15:14
15:14 p6bannerbot sets mode: +v zakharyas
timotimo though of course rakudo might be getting more optimized for things being run many times and losing some performance for things being run only once or twice? 15:15
15:16 psychoslave left
ingy timotimo: it seems like all thing equal, perl6 tests are running twice as slow each week 15:17
timotimo oh wow
ingy I'll dig into it later
timotimo shareable6: help
shareable6 timotimo, Like this: shareable6: f583f22 # See wiki for more examples: github.com/perl6/whateverable/wiki/Shareable
timotimo ingy: you can get pre-built rakudos for any revision from this bot
that can help run your code with multiple versions of rakudo very quickly 15:18
ingy timotimo: thanks
timotimo: is that you project? 15:19
timotimo nope
the whateverables are from AlexDaniel and MasterDuke plus contributors
github.com/perl6/whateverable/grap...ntributors
ingy I was just thinking about a way to make them relocatable
timotimo relokudo is a thing many people want 15:20
ingy ActivePerl did this by compiling in a long path, and then subst in the real path at install time
AlexDaniel ingy: these tars are installed into /tmp :)
ingy super easy hack
I saw that 15:21
timotimo that's how our prototype AppImage works, too
it uses /./././././. or something
ingy cool
15:23 zakharyas left 15:24 zakharyas joined, p6bannerbot sets mode: +v zakharyas
pmurias timotimo: precomp is not doing a sequential scan 15:32
ingy omg, I just time my p6 run at 7 minutes! (4 secs for p5) 15:36
AlexDaniel that's pretty great
because now we have an easy benchmark so that we can improve things
ingy p6 used to take 30 secs last week
:P 15:37
AlexDaniel o especially if it's a regression
in fact… what version was that last week? :)
if it's a regression that was introduced in the last week then that's unfortunate…
ingy it's been the ubuntu 18.04 version all along. v18.03 15:38
just can't figure out why it gets slower and slower :\
AlexDaniel ooh 15:39
that's interesting :) 15:40
[Coke] are you doing the exact same thing each time? Any chance you're, (e.g.) parsing a log file that's getting bigger, something like that?
ingy [Coke]: it's exact 15:41
15:41 gaurav_ left
ingy but it feels like that :) 15:41
[Coke] is the whole thing slowing down? or just a subset of the tests? 15:42
you're updating rakudo as you go?
ingy gist.github.com/d3e9d633d8e6bd136a...298f52f1c5
I'm going to plug in my laptop and see what diff it makes 15:43
timotimo wow, almost 1 minute of system time 15:44
that's impressive
ingy over 1 minute with precomp
I mean before -e .precomp 15:45
`make clean` deletes precomp...
timotimo is this the same thing i get when i git clone your testml repo from github?
ingy timotimo: sure. you should be able to `make test-runtime-perl6` 15:46
timotimo is it testml-pm6?
ingy no
I should get rid of that :) 15:47
timotimo so testml1-pm?
ingy testml-lang/tesml
testml-lang/testml
timotimo ah
ingy I have some power saving stuff turned on for linux. wonder if it slowed things down. but last week in glasgow wasn't this bad. don't think I was always plugged in. 15:49
timotimo i have moarvm with postrelease-opts, but i get 22.20user 8.68system 0:28.21elapsed 109%CPU (0avgtext+0avgdata 122520maxresident)k
but that's without "make clean"
ingy well it's clean first time :) 15:50
Geth doc/master: 4 commits pushed by (JJ Merelo)++
ingy 2 secs seems like what I used to get
laptop plugged in not seeming to help 15:51
timotimo yes, but that wasn't the first run :)
ingy still waiting
sorry I meant 22 secs seems like what I used to get
seems normal
timotimo after clean: 15:52
30.19user 10.69system 0:35.84elapsed 114%CPU (0avgtext+0avgdata 167732maxresident)k
ingy I've apt purge perl6; apt install perl6 # this morning
timotimo what's perl6 --version?
ingy went down to 4 minutes plugged in 15:53
This is Rakudo version 2018.03 built on MoarVM version 2018.03 # <== Ubuntu 18.04
timotimo how filled is your ram? and hard drive?
ingy how do I check ram?
timotimo i usually look at htop, but "free -m" is good enough 15:54
with the common caveat that "free" really means "unused" and +/- cache means "free to be used immediately"
ingy free -mh 15:55
total used free shared buff/cache available
Mem: 15G 8.1G 1.5G 629M 5.8G 6.3G
Swap: 16G 1.1G 15G
it's a new x1 carbon g6 15:56
15:56 reportable6 left, reportable6 joined
timotimo that's lots and lots available 15:56
ingy I should try on a 18.04 digitalocean vm 15:57
timotimo here's moarvm master, i.e. without the newest optimizations
33.02user 11.94system 0:41.98elapsed 107%CPU (0avgtext+0avgdata 165972maxresident)k
21.98user 8.46system 0:28.02elapsed 108%CPU (0avgtext+0avgdata 117496maxresident)k
first with make clean, then without make clean
15:57 p6bannerbot sets mode: +v reportable6, araraloren_ left
timotimo so the postrelease opts don't actually do all that much, except when it has to precompile in which case it's more expensive? 15:57
wait, did i read that backwards 15:59
OK, postrelease-opts made it about 5 seconds faster when you have "make clean" before that
except now i got 35 seconds after make clean; perhaps because i just recompiled moar and rakudo cleanly 16:00
as always: timing stuff is fiddly
ingy what's postrelease-opts?
jnthn ingy: A MoarVM branch with a bunch of new opts, which we'll merge to master soon after the next release. 16:01
timotimo everything jnthn has been doing in the last ~two weeks; things that shouldn't go into the release because it's too risky
ingy: how do i run a single test file "directly" with perl6? 16:03
i'd like to remove "prove" and "make" from the pipeline
ingy timotimo: I like your explanation more that jnthns :D 16:05
timotimo: give me a sec... tricky
timotimo that's not good :D 16:06
ingy it's fine 16:10
timotimo i have to perl6 --profile to work my magic ): 16:11
:)
ingy try TESTML_ROOT=$PWD PATH=$PWD/bin:$PATH TESTML_RUN=perl6-tap TESTML_LIB=$PWD/src/perl6/test testml test/runtime-tml/010-math.tml
see if it works
still has some shell
so I will try to get rid of it
timotimo it fails to find perl6 :D 16:12
ingy whu? 16:13
timotimo /home/timo/perl6/ecosystem/testml/bin/testml-perl6-tap: line 8: perl6: command not found 16:14
ingy what shell you using? 16:16
timotimo fish
ingy meh 16:17
timotimo wouldn't fish pass the path on?
PATH=/home/timo/perl6/ecosystem/testml/bin:/bin
doesn't seem like it, weird. 16:18
i just added the path for my perl6 binary in the line and it works now
ingy FOO=fish echo $FOO 16:19
ok
timotimo fish won't let you do that, you have to put "env" in front
ingy PERL6LIB=/home/ingy/src/testml/ext/perl6,/home/ingy/src/testml/src/perl6/lib,/home/ingy/src/testml/src/perl6/test,/home/ingy/src/testml/test/runtime-tml,/home/ingy/src perl6 -e 'use TestML::Run::TAP; TestML::Run::TAP.run("/home/ingy/src/testml/test/runtime-tml/.testml/010-math.tml.json")' 16:21
that *should* work but doesn't for me
that's the final command that the shell bits call 16:22
timotimo i'm not sure what the lines with : do 16:23
ingy where? 16:24
timotimo testml-perl6-tap
: "${TESTML_BIN:=testml-perl6-tap}"
16:24 ufobat_ joined
ingy oh 16:25
16:25 p6bannerbot sets mode: +v ufobat_
ingy : is a shell builtin that is same as `true` command 16:25
that is a idiomatic bash for $TESTML_BIN ||= 'testml-perl6-tap' 16:26
the ${...:=...} needs to be an argument of something so : is handy 16:27
16:27 fake_space_whale joined
timotimo i'm not sure how `true` would cause that to happen, but i generally don't know much shell at all 16:28
16:28 p6bannerbot sets mode: +v fake_space_whale
ingy TESTML_BRIDGE=TestMLBridge PERL6LIB=$PWD/ext/perl6,$PWD/src/perl6/lib,$PWD/src/perl6/test,$PWD/test/runtime-tml perl6 -e 'use TestML::Run::TAP; TestML::Run::TAP.run("'$PWD'/test/runtime-tml/.testml/010-math.tml.json")' 16:30
try that
timotimo works! 16:32
ingy timotimo: gist.github.com/2c4c094a934ae0ebc8...4ca3359974 16:33
it's not in p6 it seems
it's something outside of p6 that only happens when testing p6
timotimo that one runs in only 0.23 seconds or so, so not a good target for benchmarking 16:34
oh, curious
ingy look closer
19s then 0.4s
without the shell wrapper 16:35
16:35 psychoslave joined
ingy p6 is still part of equation, but the equation is all on my side 16:35
timotimo: thanks and if you ever need shell help, call me collect! 16:36
16:36 p6bannerbot sets mode: +v psychoslave
timotimo thanks! 16:36
benjikun what if perl6 had an explicit option to prefer nums over rats 16:37
16:37 psychoslave left
benjikun `perl6 --number-prefer=[num/rat] computepi.p6` 16:38
ingy the shell wrapper stuff is just supposed to check if the testml has been compiled, compile it if needed, then call p6
timotimo m: class Rat { method new(|c) { say c.perl } }; 1.0 + 3.5
camelia \(1, 1)
WARNINGS for <tmp>:
\(35, 10)
Useless use of "+" in expression "1.0 + 3.5" in sink context (line 1)
ingy bbl
timotimo m: class Rat { method new($nu, $de) { $nu.Num / $de.Num } }; say 1.0 + 3.5
camelia 4.5
timotimo m: class Rat { method new($nu, $de) { $nu.Num / $de.Num } }; say (1.0 + 3.5).perl
camelia 4.5e0
benjikun hmm, true
timotimo m: class Rat { method new($nu, $de) { $nu.Num / $de.Num } }; say 1.0 + 2.0 == 3.0
camelia True
timotimo not quite
benjikun could be a rakudo cli parameter too
oh, I see 16:39
timotimo m: class Rat { method new($nu, $de) { $nu.Num / $de.Num } }; say 3.0 - 2.0 == 1.0
camelia True
timotimo is that not how...?
m: class Rat { method new($nu, $de) { say "called $nu $de"; $nu.Num / $de.Num } }; say 3.0 - 2.0 == 1.0
camelia called 3 1
called 2 1
called 1 1
True
timotimo m: class Rat { method new($nu, $de --> Num) { say "called $nu $de"; $nu.Num / $de.Num } }; say 3.0 - 2.0 == 1.0
camelia called 3 1
called 2 1
called 1 1
True
timotimo m: class Rat { method new($nu, $de --> Num) { say "called $nu $de"; $nu.Num / $de.Num } }; say 30.0 - 20.0 == 10.0
camelia called 30 1
called 20 1
called 10 1
True
benjikun isn't that still just converting the Rat to a Num
timotimo :|
benjikun at creation
timotimo i'm converting both numerator and denominator to num before i divide 16:40
benjikun ah
I think the cli param for rakudo could be a nice option tbh
timotimo the return typecheck of the new method also verifies that it's giving me a Num
put that definition into a module and use -Mpragma::num 16:42
:D
16:44 MilkmanDan left
benjikun hmm I see 16:44
ty timotimo
timotimo :)
of course it only works for constants in that very file
benjikun it could be interesting having it built-in to rakudo, too 16:45
just for programs that prefer speed over absolute numerical accuracy
I'm not entirely sure how much that would require to be added
16:46 MilkmanDan joined, p6bannerbot sets mode: +v MilkmanDan
timotimo hmm, maybe all in all ten to twenty lines in the right places? 16:46
benjikun perhaps, would be nice if it were just that 16:47
wouldn't it be under src/Perl6 in rakudo/rakudo 16:48
timotimo one thing i've learned in my years of rakudo and perl6 is that "easy" things and "hard" things both can come down to either five or a hundred lines
16:59 diakopter joined, p6bannerbot sets mode: +v diakopter 17:03 silug joined 17:04 p6bannerbot sets mode: +v silug, kerframil joined, p6bannerbot sets mode: +v kerframil, noganex joined 17:05 p6bannerbot sets mode: +v noganex 17:10 x[LGWs4x4i]uG2N0 left 17:14 x[LGWs4x4i]uG2N0 joined, p6bannerbot sets mode: +v x[LGWs4x4i]uG2N0 17:15 stmuk_ joined 17:16 p6bannerbot sets mode: +v stmuk_ 17:17 stmuk left
xinming m: class T { has $.v; }; my @a = map { T.new(:v("a")) }, (1..5); @a.perl.say; ("a" eq all(@a>>.v)).perl.say; 17:27
camelia [T.new(v => "a"), T.new(v => "a"), T.new(v => "a"), T.new(v => "a"), T.new(v => "a")]
all(Bool::True, Bool::True, Bool::True, Bool::True, Bool::True)
xinming How can I get the "single" result for all of them are the same? 17:28
I know I can use unique
But doesn't seems right to do so
timotimo you want to "so" it, i believe 17:29
or just use it in a boolean context, like with "if" or "unless"
xinming m: class T { has $.v; }; my @a = map { T.new(:v("a")) }, (1..5); @a.perl.say; ("a" eq all(@a>>.v)).so.perl.say; 17:30
camelia [T.new(v => "a"), T.new(v => "a"), T.new(v => "a"), T.new(v => "a"), T.new(v => "a")]
Bool::True
xinming Thanks
17:42 molaf left 17:47 espadrine left 17:51 saki left 17:52 jvmperl joined, p6bannerbot sets mode: +v jvmperl 18:04 zakharyas left, zakharyas joined 18:05 p6bannerbot sets mode: +v zakharyas, jvmperl left
Altreus someone remind me how to use a string in a variable to access a property from a class 18:42
yoleaux 21 Aug 2018 21:52Z <SmokeMachine> Altreus: thats how you do it
Altreus hmm
I wonder what that was about :D
geekosaur m: class Foo { has $.a; has $.b }; my Foo $x .= new(a => 4, b => 6); my $y = 'b'; say $x."$y"() 18:44
camelia 6
Altreus hmm 18:49
that didn't work... lemme try agin
oh yea
I must've got part of it wrong :) 18:50
geekosaur possibly dropped either of the quotes or the parentheses; both are required to disambiguate
Altreus I think I dropped a dot actually 18:51
yea
I think I accidentally did `has $a`
18:51 TreyHarris left 18:57 cpage left, cpage joined 18:58 p6bannerbot sets mode: +v cpage 19:04 TreyHarris joined, p6bannerbot sets mode: +v TreyHarris, zakharyas left 19:05 xinming_ joined 19:06 p6bannerbot sets mode: +v xinming_ 19:07 xinming left 19:09 HaraldJoerg1 joined 19:10 p6bannerbot sets mode: +v HaraldJoerg1, HaraldJoerg left
Altreus does an 'our' variable in a class make sense? 19:12
I was expecting 'our %FOO' to be %Class::Name::FOO but it isn't so I'm not sure what to expect :) 19:13
19:25 molaf joined 19:26 p6bannerbot sets mode: +v molaf
moritz m: class A::B { our %FOO; method init() { %FOO = a => 1 }; A::B.init; say %A::B::FOO 19:28
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3OO = a => 1 }; A::B.init; say %A::B::FOO7⏏5<EOL>
expecting any of:
postfix
statement end
statement modifier
stat…
moritz m: class A::B { our %FOO; method init() { %FOO = a => 1 }}; A::B.init; say %A::B::FOO
camelia {a => 1}
moritz Altreus: seems to work the way you expected
19:29 robertle left
Altreus m: class A::B { our %FOO = a => 1 } say %A::B::FOO 19:34
camelia 5===SORRY!5=== Error while compiling <tmp>
Strange text after block (missing semicolon or comma?)
at <tmp>:1
------> 3class A::B { our %FOO = a => 1 }7⏏5 say %A::B::FOO
expecting any of:
infix
infix stopper
Altreus m: class A::B { our %FOO = a => 1 }; say %A::B::FOO
camelia {a => 1}
Altreus hum
:x
when I do it from another file it says (Any) 19:35
jdv79 maybe a precomp thing?
moritz Altreus: try to do the initialization in an INIT block 19:36
Altreus I've taken the opportunity to refactor anyway 19:37
:)
19:39 fake_space_whale left
Altreus where is WHAT documented? :s 19:40
moritz docs.perl6.org/language/mop#index-..._WHAT-WHAT 19:41
Altreus sweet
perl6 follows behind perl5 in being impossible to google for 19:42
geekosaur most languages are difficult if not impossible to google for reliably
(could be worse; see go. but they brought that one on themselves) 19:43
19:43 rouking left
moritz Altreus: pro tip: just enter WHAT in the search field on docs.perl6.org 19:45
19:50 xinming_ is now known as xinming 19:53 sotona joined, p6bannerbot sets mode: +v sotona
Altreus right, right 19:54
use the provided tools :D
20:20 TreyHarris left 20:25 HaraldJoerg1 is now known as HaraldJoerg 20:26 molaf left 20:33 TreyHarris joined, p6bannerbot sets mode: +v TreyHarris 20:37 webstrand left 20:38 webstrand joined, p6bannerbot sets mode: +v webstrand
xinming How do we do return from a immediate anonymous block? 20:40
in some cases, I got something like Attempt to return outside of immediately-enclosing Routine (i.e. `return` execution is outside the dynamic scope of the Routine where `return` was used)
the error is "Attempt to return outside of immediately-enclosing Routine (i.e. `return` execution is outside the dynamic scope of the Routine where `return` was used)" 20:41
20:41 mscha left 20:46 diakopter left 20:49 dct joined, p6bannerbot sets mode: +v dct
jnthn xinming: return binds to the enclosing routine, not block; if you want to use return, you'll need an anonymous sub instead of an anonymous block. If you're in a loop, you can also use `next` to go to the next iteration. 21:06
21:09 pmurias left 21:12 pmurias joined 21:13 lichtkind left, p6bannerbot sets mode: +v pmurias 21:19 kerframil left, vrurg joined 21:20 p6bannerbot sets mode: +v vrurg 21:29 HaraldJoerg left
rindolf Altreus: meow, sup? 21:45
ingy timotimo: pingz 21:53
jnthn: hi 21:55
jnthn ingy: o/
ingy I figured out the p6 sloooowness 21:56
timotimo pong
what was it?
ingy it might be considered a bug
try: time PERL6LIB=/home perl6 -e 'use NativeCall' 21:57
timotimo aaaaahahahaha
yeah, that's not fast
ingy it explains a lot. I keep all my source repos in ~/src 21:58
timotimo having PERL6LIB set to ~ or even ~/src doesn't work very well either
ingy and that ended up in PERL6LIB (bug on my part)
but ~/src got bigger each week
timotimo what do you suggest we do about it?
ingy so I wasn't imagining the p6 tests getting slower 21:59
timotimo unsolicited warning output about folders way too large to be useful in PERL6LIB would be kinda weird
ingy well I had: PERL6LIB=good,also/good,bad/and/big 22:00
bad/and/big was never needed for a look up
do you do a parallel lookup or something?
timotimo you don't "use Test" or something? 22:01
i believe PERL6LIB comes first
ingy I see
timotimo so if you use Test or NativeCall or something rakudo has in its lib/ you'll end up going through your whole PERL6LIB before looking there
ingy before core
aye
ok
timotimo and doing lookup in parallel won't help much because the earlier ones have to come up negative before a later one can be accepted
ingy I wasn't suggesting parallel was good 22:02
timotimo OK
ingy I forgot that stuff would get looked up in ~/src at all
but now I understadn
so nothing to see here... 22:03
except... hmm
I only have 42 repos in ~/src
seems like should only be 42 stats 22:04
but takes 13 secs
timotimo it's going through the whole tree
deeply recursive
ingy why?
timotimo not sure
ingy no thing FOOLIB would do that
no other FOOLIB would do that
timotimo github.com/rakudo/rakudo/blob/mast...m6#L61-L93 22:05
ingy looking up Foo::Bar under $LIB would just stat $LIB/Foo
so I'm wrong, only 1 stat not 42 :)
timotimo i'm not sure who calls the id method there 22:06
ingy I guess p6 lookup is supernatural
timotimo gist.github.com/timo/a8bef611712d2...de65aefc08 22:07
here's a stacktrace for you
ingy seems like a big local lib could also slow things down
timotimo github.com/rakudo/rakudo/blob/mast...y.pm6#L104 22:08
this requires the ids
22:08 graphene joined
timotimo OK, so here's the rub 22:08
if you load Test, it'll have some dependencies listed
22:09 sena_kun left, p6bannerbot sets mode: +v graphene
timotimo hm 22:09
maybe this is how it is:
ingy I wonder if a `use lib` would be faster than a PERL6LIB
timotimo the first entry in the PERL6LIB is where all precomps are stored
ingy ok
timotimo it should do the same thing 22:10
if something depends on precompiled files, it first checks if the repo has not been touched at all
and the file repo does that by sha1-ing all files
ingy one would expect them to be the same, but p6 is always too magic :)
hrmm 22:11
timotimo github.com/rakudo/rakudo/blob/mast...agement.md - maybe this has the explanations
PERL6LIB on a folder with pm files isn't really what you'd have in production
you'd have it actually installed properly
ingy sha1ing all files seems...
timotimo: what would PERL6LIB be in prod? 22:15
timotimo ""
ingy oic
timotimo or something like inst#/path/to/an/installation/folder
ingy is that folder a .precomp dir? 22:16
timotimo not quite
perl6 -e 'say $*REPO.repo-chain'
see those for examples
ingy jnthn: just read about your honeymoon in ^^
congrats
jnthn Wow, that was some years ago :D 22:17
ingy hahaha
jnthn But thanks! ;)
ingy wel congrats
22:17 pmurias left
jnthn *:) 22:17
ingy I just saw July
timotimo :D
that was just the last change 22:18
ingy oooo
ingy considers the Honey::Moose module... 22:19
jnthn I'm guessing I wrote that as one of my design notes gists, and it ended up put verbatim into the repo :)
timotimo sweet jesus, pooh! that's not honey
ingy :D
timotimo: how do I prettyprint that chain? 22:21
.gist?
timotimo well, "say" will gist it for you
ingy no pretty enough
.pretty?
timotimo m: .perl.say for $*REPO.repo-chain
camelia CompUnit::Repository::Installation.new(prefix => "/home/camelia/.perl6")
CompUnit::Repository::Installation.new(prefix => "/home/camelia/rakudo-m-inst-2/share/perl6/site")
CompUnit::Repository::Installation.new(prefix => "/home/camelia/rakudo-m-in…
ingy thx 22:23
22:38 sotona left
ingy timotimo: fyi p6 suite runs in ~5 secs, p5 in about 4 23:17
so good job all :)
still need to optimize the heck out of things but at least all is sane now
23:18 numbskull15 joined, p6bannerbot sets mode: +v numbskull15
ingy export PERL6LIB=/ # Nooooooooooooooooo..... 23:19
23:19 numbskull15 left
ingy time PERL6LIB=/home perl6 -e 'use Test' 23:20
real0m19.694s
at least PERL6LIB=/ fails on perms (I assume) 23:21
also for all at my Glasgow talk where P6 was soooo sloooow. apologies. p6 is fine. ingy is sloooow... 23:23
timotimo oh, that was in there already by the time you had the talk? 23:25
23:26 speedChicken left
timotimo that's bad PR :) 23:27
actually, no PR is bad PR
23:27 speedChicken joined
ingy right! 23:27
I worked with nine on it 23:28
nine: ^^
23:28 p6bannerbot sets mode: +v speedChicken
timotimo i should hone the reflex to see "oh there's a lot of 'sys' time there" and immediately suggest "hey let's run strace on it!" 23:29
that should have immediately told us what's up
ingy you are probably better at reading strace 23:30
but sounds good...
timotimo you'd see a line with "open" for every single file in your src folder, including lots-and-lots of non-perl6 files 23:31
that'd surely catch your eye and make you go "that's kinda strange"
ingy yeah, if I didn't gauge my eyes out first 23:32
timotimo hah, oh my
23:33 rindolf left
ingy timotimo: are you in .eu? 23:33
23:34 speedChicken left
timotimo yep 23:36
ingy night owl
timotimo it's true
23:36 speedChicken joined
timotimo plus bad sleep for a couple of days 23:37
23:37 p6bannerbot sets mode: +v speedChicken 23:38 speedChicken left
buggable New CPAN upload: Dist-Helper-1.0.0.tar.gz by TYIL modules.perl6.org/dist/Dist::Helper:cpan:TYIL 23:42
23:59 dct left