Perl 6 language and compiler development | Logs at colabti.org/irclogger/irclogger_log/perl6-dev | For toolchain/installation stuff see #perl6-toolchain | For MoarVM see #moarvm
Set by Zoffix on 27 July 2018.
00:12 vrurg left 00:15 AlexDani` joined 00:19 AlexDaniel left, AlexDani` is now known as AlexDaniel, AlexDaniel left, AlexDaniel joined 01:12 Kaypie joined, Kaiepi left 04:00 pamplemousse joined 06:08 shareable6 left, committable6 left, reportable6 left, AlexDaniel` left, nine left 06:12 benchable6 left, coverable6 left, zostay left 06:18 benchable6 joined, coverable6 joined, zostay joined, TreyHarris joined, card.freenode.net sets mode: +vv benchable6 coverable6, shareable6 joined, committable6 joined, reportable6 joined, AlexDaniel` joined, nine joined, card.freenode.net sets mode: +vvv shareable6 committable6 reportable6 06:20 HarmtH left, epony left 06:22 HarmtH joined 06:25 Kaypie left, Kaypie joined 07:05 Kaypie left 07:08 Kaiepi joined 07:20 robertle left 07:48 epony joined 08:10 Kaypie joined, Kaiepi left 08:12 rba[m] left, AlexDaniel` left, tyil[m] left 08:16 epony left 08:17 Kaypie is now known as Kaiepi 08:20 AlexDaniel` joined 08:53 tyil[m] joined, rba[m] joined 09:18 robertle joined 09:56 Kaiepi left 09:59 Kaiepi joined, Kaiepi left 10:00 Kaiepi joined 10:01 pamplemousse left, epony joined 10:02 Kaypie joined, Kaiepi left 10:25 Kaypie is now known as Kaiepi 10:45 Kaiepi left 10:49 Kaiepi joined 10:56 robertle left 11:18 pamplemousse joined 11:37 pamplemousse left 11:43 pamplemousse joined 12:41 robertle joined
Geth rakudo: eb88e64ea3 | (Elizabeth Mattijsen)++ | src/core/signals.pm6
Fix for R#3035
12:42
synopsebot R#3035 [open]: github.com/rakudo/rakudo/issues/3035 signal has odd signature
timotimo haha, the archive on perl6.org has the note "this file is part of the perl 6 archive" and below that, in white on white, " 12:43
Note: these documents may be out of date. Do not use as reference!"
with the "not" in boldface
something clearly went wrong with the stylesheets there 12:44
12:47 Kaiepi left 12:48 Kaiepi joined 13:02 Kaiepi left 13:03 Kaiepi joined 13:10 Kaiepi left 13:20 Tux__ left 13:26 Tux__ joined, Kaiepi joined 13:52 travis-ci joined
travis-ci Rakudo build failed. Elizabeth Mattijsen 'Fix for R#3035' 13:52
travis-ci.org/rakudo/rakudo/builds/555283422 github.com/rakudo/rakudo/compare/c...88e64ea3c6
13:52 travis-ci left
synopsebot R#3035 [open]: github.com/rakudo/rakudo/issues/3035 [tests needed] signal has odd signature 13:52
lizmat argh, "make test" fails 13:58
timotimo passing todos! 14:01
Geth rakudo: fcf1f761a1 | (Elizabeth Mattijsen)++ | src/core/signals.pm6
Make sure the signal proto matches

Unbreaks "make test" and makes Travis happy
14:10
14:16 HarmtH left 14:18 pamplemousse left, HarmtH joined
timotimo anyway, i have this optimization. should i push it to master just before release? ;) ;) ;) ;) 14:18
time to recompile cro and the heapanalyzer so that i can run moarperf at my recordings %) 14:19
what. i read some amusing website for a few minutes and it's already done and didn't even tell me about it 14:26
in my very scientific "send to and receive from channel a million times in a row" there's an improvement 14:31
lizmat timotimo: is this a MoarVM push? if not, I think AlexDaniel already has a release branch for the rest 14:32
timotimo it's a pure rakudo change
the number of GCs doesn't go down, but the one GC it does do over the entire run is a bunch later, and frees 20k BOOTHash more than the unoptimized code instead of freeing the 950k IntAttrRef that my optimization caused to never be created in the first place 14:33
lizmat timotimo: then push away, it'll be in the next release :-) 14:34
timotimo OK
ugexe alternatively the other signature could be changed: multi sub signal(*@signals [$, *@], :$scheduler = $*SCHEDULER) 14:35
i guess does it ever make sense to call signal with no signals? 14:36
or rather: does it make sense for it to blow up if its called with no signals (previous behavior) 14:37
Geth rakudo: 84ee0c8ce2 | (Timo Paulssen)++ | src/Perl6/Optimizer.nqp
Optimizer: Don't use Int*Ref in first arg of if/unless/while/until

  (this refers to the low level nqp ops, so not necessarily
immediately works on user code with these keywords, but at the very least, a ternary usually immediately turns into an if op.
timotimo that send/receive thing went from about 2s to about 1.75s
ugexe i'd probably want signals(@possibly-empty-arr) to not blow up 14:38
lizmat yeah, that code needs a closer look at 14:40
ugexe it looks like the new code should allow it to not blow up 14:43
14:56 patrickb joined
patrickb o/ 14:57
yoleaux 6 Jul 2019 01:46Z <vrurg> patrickb: It's been totally crazy last two weeks for me. Will try to find some time over the weekend.
6 Jul 2019 20:37Z <ugexe> patrickb: I imagine we'll drop travis-ci and just use circle-ci eventually, but right now the familiarity of travis is still helpful to have around. as for testing e.g. reloc, names-with-spaces, etc these can probably be done with circle-ci using cron jobs that run specific jobs, but i dont think appveyor has anything beyond "run default branch nightly"
patrickb Now that relocatability is finally done I want to tackle providing binary releases. 14:58
We might even manage to have a binary package that has moar VM for different platforms but every thing else shared 14:59
I'd like to provide a compiler bundled with the Windows binary package. 15:01
Now I'm pondering which compiler best to use. Mingw can be bundled, but there are some libraries (C++ libraries mostly) that it can't link. 15:03
`cl` on the other hand can not be bundled for licencing reasons, we'd have to provide a script to download and install it. 15:04
But the compatibility with Windows libraries is best.
Then there is `clang` but I think the same limits as with `gcc` apply. 15:05
AlexDaniel holy shit that sounds awesome 15:06
patrickb Also I'm not sure in how far perl6 modules that bundle a C file need to care about the compiler or if zef` abstracts all of that away.
ugexe choco install vcredist140 15:07
patrickb ugexe: So you would vote for `cl`? 15:08
AlexDaniel lizmat: and yes, that's correct. Feel free to push to nqp and rakudo
According to samcv++ we'll have moar release soon too 15:09
patrickb ugexe: Is that available on all reasonably new Windowses?
AlexDaniel so we'll finally get something out :)
ugexe i think it will provide the best experience for windows user and developers
timotimo if we bundle that, we can perhaps also have something that compiles and installs gtk and friends using vcpkg or what it's called
ugexe using the other compilers always results in pain anytime i've gotten that far into the weed
patrickb OK cl it is then. 15:10
ugexe then again i've never had problems with strawberry perl which doesnt use cl afaik 15:11
patrickb timotimo: I do like the current solution a lot. Waiting 15 minutes for the build is not pleasant
timotimo yeah, sadly vcpkg is extremely slow at that. but i'm sure it'd be at least 50x faster if it didn't compile and run tests ... 15:12
ugexe most of that stuff could be cached in the CI if someone was sufficiently motivated
timotimo i mean, who really cares about knowing things are broken a minute before it happens ...
ugexe even if built from source
patrickb ugexe: strawberry bundles a GCC. Not sure what they compiled perl itself with.
ugexe artifact caching
patrickb Is anyone experienced with glibc compatibility an how to build *nix binaries that run on many distros and releases? 15:15
15:19 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Make sure the signal proto matches 15:19
travis-ci.org/rakudo/rakudo/builds/555315730 github.com/rakudo/rakudo/compare/e...f1f761a1da
15:19 travis-ci left, pamplemousse joined, HarmtH left
patrickb Some advice along the lines of: "Get Ubuntu 5.04 (2005) in a Docker, build every thing in there an you are good to go!" would be awesome. 15:20
timotimo sorry, not sure about that :(
15:21 HarmtH joined
AlexDaniel patrickb: :( github.com/perl6/doc/issues/2859 15:21
patrickb: it is definitely an issue
patrickb AlexDaniel: That's an instance of the problem, yes. From what I've read the usual approach is compiling with a reasonably old glibc. (As glibc is backwards, but not forward compatible). But how old is reasonable I do not know. 15:26
AlexDaniel :S
patrickb AlexDaniel: What would be needed to add the creation of binary releases to the release process? Is a step by step documentation on what to do sufficient? 15:29
Or is the process automated in some way?
AlexDaniel patrickb: yeah, most of it is automated 15:30
patrickb: there's `make release` target, so you can do it in the makefile if you can 15:31
patrickb: if you can't and it requires some manual steps, then just document it in the release guide: github.com/rakudo/rakudo/blob/mast..._guide.pod 15:32
patrickb: on top of that there's a Sakefile that follows the steps of the release guide similarly to how a human would do it: github.com/rakudo/rakudo/blob/mast...e/Sakefile
patrickb OK. Manual steps will definitely be required. One needs to boot different OS'. 15:33
AlexDaniel ok, then just document it in the release guide
and then we'll automate it in the sakefile :)
patrickb I think I'll start with getting it to work on my machine, then documenting as good as I can. Then look into automating it. 15:34
Yeah, that's what you already said... 15:35
Do the releasers have a Windows somewhere by any chance?
AlexDaniel not exactly, no
I most relied on the output from appveyor 15:36
but even then, nobody really spectests on windows… and that's bad
patrickb OK. We might manage to use appveyor for this, but I wouldn't get my hopes up...
AlexDaniel maybe just document steps to set up a VM? 15:37
I think nowadays it's relatively easy?
patrickb VM s might be a good idea. I'd like to use containers or similar for building anyways so we can guarantee a reproducible build environment. 15:40
Only problem is you still have to buy a Windows.
Or just havesomeone that has a Windows installed do the Windows build. 15:41
I think there is no practical Windows container solution on dode 15:43
... on Windows for Windows?
AlexDaniel patrickb: do you have to buy it? I thought there was some special image for devs somewhere
I could be mistaken though
patrickb I heard about that too, but not sure it's still available... 15:44
timotimo i used them a few times; they were for testing internet explorer with your sites/apps 15:47
patrickb Chocolatey seems not to be preinstalled on Windows.
timotimo www.modern.ie/en-us/virtualization-tools - well, this isn't it
patrickb timotimo: do you have a link?
timotimo developer.microsoft.com/en-us/micr...tools/vms/ - this one i think 15:48
15:48 pamplemousse left
patrickb Just found this: developer.microsoft.com/en-us/wind...l-machines 15:51
ugexe you can install choco with a one-liner 15:58
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
timotimo that's equivalent to curl blah | sh? :) :) 15:59
patrickb Is it ok to install chocolatey on a users computer who just to
Wants to have a compiler installed? 16:00
timotimo yeah, we should at least ask in the installer if they want chocolatey and the Ask.com toolbar
patrickb Sorry, no real keyboard in front of me.
I hoped for simple .zip file actually.
And a .bat or .p6 file to install the compiler maybe. 16:01
The build tools support silent installation. So we can just download + silent install. Only question: Can we do this in a .bat file? 16:13
ugexe just use powerscript imo 16:14
timotimo you can call powershell from .bat and pass the powershell script
ugexe s/powerscript/powershell/ 16:15
patrickb I think that will not work on all computers as power shell is often execute-locked
timotimo oh, huh? 16:16
ugexe i'd be interested in seeing that quantified
patrickb About the only things you can double click start reliably are .exe and .bat. :-(
ugexe: Good question! Me too! 16:17
ugexe well the .bat can just call the powershell script
timotimo are .msi out of the question?
ugexe i'd only expect powershell to be locked down on some type of super duper enterprise windows shop 16:18
patrickb timotimo: can such things as download + execute be done with MSI?
timotimo i'd expect so, but i don't actually know how msi works 16:19
patrickb ugexe: as is the case on my work computer :-P
timotimo omfg
ugexe but then should you be installing this at all then?
timotimo "what can msi do" in google gives me many results a la "what is an msi file what do you need to install so you can click on it is it dangerous for viruses"
16:20 travis-ci joined
travis-ci Rakudo build failed. Timo Paulssen 'Optimizer: Don't use Int*Ref in first arg of if/unless/while/until 16:20
travis-ci.org/rakudo/rakudo/builds/555327939 github.com/rakudo/rakudo/compare/f...ee0c8ce263
16:20 travis-ci left
ugexe i.e. if your shop is locking down powershell won't they likely lock down other things (possibly compiler-y things?) 16:20
timotimo looks like an msi can just extract an .exe and immediately run it 16:21
patrickb ugexe: Kind of true, but the solution with the least potential of failing is the one to choose I'd say. 16:22
timotimo let's develop a pure .bat package management solution so we don't have to force our users to install chocolatey 16:23
ugexe powershell is going to give you a bunch of tools to avoid other types of failure though... i.e. you get a fake curl/wget to handle fetching
patrickb Good point
ugexe if only there was a Perl 5 Alien::VisualC 16:24
then we could just install a stand-alone strawberry perl 5 and use that
patrickb ugexe: does zef handle the envvar32.bat magic that is needed before running cl? 16:25
Well, if we are willing to install strawberry, we could just use their GCC...
ugexe no. you can add meta data that a builder module can parse/handle though github.com/niner/Inline-Python/blo...on#L36-L65 16:26
builder field should actually be 'Distribution::Builder::MakeFromJSON' but you get the point 16:27
16:27 vrurg joined
ugexe all that is the next gen of Build.pm6 fwiw, although it hasn't really been touched since 2 perl toolchain summits ago 16:29
patrickb But then the module is responsible of dealing with compiler intricacies 16:30
I think I probavly misunderstood the point you wanted to make. 16:31
timotimo yes, yes. a provable misunderstanding :)
patrickb :-P 16:33
16:33 llfourn left
ugexe well someone can create a Distribution::Builder::* module to do whatever it is you need. 16:33
16:34 llfourn joined
ugexe if such logic existed in zef would it still be useful in 5 years or would we be cursing how we can't get rid of it now? 16:34
a builder module could, for example, provide an external API via env vars to allow the person using zef to e.g. set some alternate path to some library 16:35
16:35 patrickb left 16:36 patrickb joined
patrickb OK. So in short the extra loops `cl` makes one jump through are no reason not to choose `cl` over `gcc` for this endeavour. 16:36
ugexe the loops that we are aware of. fate will probably dictate that it is impossible for some obscure windows reason 16:43
it might also be worth mentioning that i think cl creates faster code on windows than other compilers too 16:45
patrickb I have to leave now. Thanks for all the help and heads up!
ugexe: Yeah, I'll go for cl. Seems the sanest choice at the moment. 16:46
o/
16:46 patrickb left 17:18 AlexDaniel left 17:19 AlexDaniel joined 17:33 btyler left 17:52 lucasb joined
Geth rakudo: a46c414f77 | (Elizabeth Mattijsen)++ | 2 files
Only initialize HLL version of nqp::getsignals once
17:53
ugexe m: &::("foo") 18:03
camelia No such symbol ''
in block <unit> at <tmp> line 1
ugexe m: ::("&foo")
camelia No such symbol '&foo'
in block <unit> at <tmp> line 1
ugexe m: &::("foo")::bar 18:04
camelia No such symbol '&bar'
in block <unit> at <tmp> line 1
ugexe m: ::("&foo")::bar
camelia No such symbol '&foo::bar'
in block <unit> at <tmp> line 1
19:04 travis-ci joined
travis-ci Rakudo build passed. Elizabeth Mattijsen 'Only initialize HLL version of nqp::getsignals once' 19:04
travis-ci.org/rakudo/rakudo/builds/555407220 github.com/rakudo/rakudo/compare/8...6c414f77e8
19:04 travis-ci left
kawaii Hi people, sorry for being absent the last few days. I've been in hospital due to a slight personal emergency. I 19:42
am not sure if AlexDaniel picked up release tasks in the meantime
I'm not feeling 100% yet, but hope to be back with you in the next week
AlexDaniel kawaii: we're alright, waiting for the moar release really 19:43
kawaii: I did sort the remaining commits in the changelog and some rewording is needed, so that's still in progress, but I do it much quicker when the release needs to be done :)
kawaii: meanwhile the squashathon went great: github.com/ajs/perl6-Math-Sequence...-509005868 19:44
kawaii: rakudo and nqp have release branches now, so people are committing directly to master no problem
kawaii good to hear, thank you for updating me
AlexDaniel kawaii: it's not the same in moar, so that's still blocking some people, but samcv++ said that we'll have a moar release soon™ 19:45
kawaii: so yeah, please take care of yourself :) 19:47
kawaii I had some dark personal circumstances (relationship related as you might guess) and my mental health took a turn for the worse Wednesday evening but I feel a little better now. I want to stay involved in the community though since it's a nice distraction :) 19:49
and it's been 4 days since I wrote any perl 6 code so, need to do something about that :)
lizmat hugs kawaii 19:57
timotimo i wish you all the bests 19:58
20:12 lucasb left