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:14 lucasb left 02:06 discord63 joined 02:09 discord6 left, discord63 is now known as discord6
releasable6 Next release in ≈1 day and ≈15 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 03:00
05:05 vrurg left
timotimo ===SORRY!=== Error while compiling /home/koto/docs.perl6.org/build/Language/061-nativecall.pod6 05:24
Preceding context expects a term, but found infix = instead.
blergh
lizmat Files=1262, Tests=107912, 409 wallclock secs (29.96 usr 7.12 sys + 2918.01 cusr 253.16 csys = 3208.25 CPU) 08:21
10:37 pmurias joined
pmurias do we have a google apis module? 10:37
www.npmjs.com/package/googleapis#google-apis - node.js verson of the library I'm using 10:41
sorry meant to ask in #perl6
11:22 pmurias left
nine Just pushed: Fix bogus role conflict when the same method is added under multiple names github.com/rakudo/rakudo/commit/e2...644173fe54 11:49
11:49 pmurias joined
lizmat rebuilds and tests 11:52
is there any news on the status of Geth or similar ?
.ask ugexe shouldn't "candidates" be an empty method of the CompUnit::Repository role ? 11:53
yoleaux lizmat: I'll pass your message to ugexe.
lizmat .ask ugexe also for method files ? 11:55
yoleaux lizmat: I'll pass your message to ugexe.
ugexe Only 2 of the many repos provide those methods. So one needs to answer e.g. what does it do for CURAP which has no concept of distribution? 12:07
yoleaux 11:53Z <lizmat> ugexe: shouldn't "candidates" be an empty method of the CompUnit::Repository role ?
11:55Z <lizmat> ugexe: also for method files ?
lizmat hmmm.... 12:08
12:14 Geth_ joined
Geth_ Inline-Perl5: ca4df01514 | (Stefan Seifert)++ | 6 files
Properly represent P6 subclasses of P5 packages in P5
12:23
nine geth.niner.name:8888/?chan=#perl6-dev is ready for service
timotimo oh we should totally make it return a pleasant-to-look-at html page when you open it with a browser 12:28
maybe even on geth.niner.name:80 and the ssl port
is it 143?
what is that site i get on geth.niner.name? odd. 12:30
nine timotimo: I'm quite sure it's the parent company of a friend's company which also uses my server. 12:36
I guess they'd do well enough to afford their own server, but OTOH he handles boring stuff like TLS certificates for me, so I don't complain ;) 12:37
12:39 Geth left 12:40 Geth joined
timotimo :) 12:42
lizmat .ask ugexe perhaps an "has Str $.api" should be added to the CompUnit class ? 12:58
yoleaux lizmat: I'll pass your message to ugexe.
12:59 travis-ci joined
travis-ci Rakudo build failed. Stefan Seifert 'Fix bogus role conflict when the same method is added under multiple names 12:59
travis-ci.org/rakudo/rakudo/builds/528134491 github.com/rakudo/rakudo/compare/3...74f4a26ed0
12:59 travis-ci left
nine So...why the hell does t/02-rakudo/reproducible-builds.t still fail on Travis? 12:59
lizmat hmmm... 13:00
I thought it might have something to do with TEST_JOBS= 13:04
nine: any idea with how many TEST_JOBS= Travis is running the test? 13:05
nine I'd guess the default 13:08
13:24 andreios joined
nine Oooooh.... Travis doesn't just run make test. It runs prove -e ~/build/rakudo/rakudo/install/bin/perl6 -vlr t, i.e. the installed perl6 with the installed Test module 13:25
That's a very different scenario 13:27
lizmat why on earth does it do that ? 13:31
andreios how can i trigger jvm's P6OpaqueBaseInstance from nqp? it appears the tests are incomplete for it 13:32
nine No idea.... Testing a workaround now
andreios i've tried to compile nqp-j with jdk11, and it compiles to 8s 13:33
bytecode and passes tests just fine. Though one class uses
deprecated sun.mics.Unsafe. i've managed to replace it with
VarHandles, but apparently the code which uses Unsafe is completely
dead or not triggered by any test at least
sorry
nine At least the hour it will take Travis will give me time to get my exercise done :)
andreios github.com/perl6/nqp/blob/master/s...e.java#129
I've removed this three methods which uses sun.misc.Unsafe completely and not a single test failed 13:34
I was trying to figure out if there would be any performance gain from JDK11, and perl6-j could be atleast usable as a repl 13:35
Also I found some minor problems, like missing `throw` in several places, and missin @Overrid 13:37
I wonder if I should report them
13:50 andreios left 13:56 andreios joined 14:03 andreios left
ugexe there has been discussion on upgrading from java8 last year 14:06
yoleaux 12:58Z <lizmat> ugexe: perhaps an "has Str $.api" should be added to the CompUnit class ?
ugexe github.com/perl6/nqp/pull/442
lizmat afk& 14:07
ugexe lizmat: it would be a Version, but even still I don't see the point of CUR having version/auth/api when it already has Distribution 14:09
for consistency it should probably exist, but i'd argue none of those should exist
well, i guess it makes sense for when you supply multiple versions/apis in a single dist 14:10
although in that case i'd argue it should just have a single CompUnit::DependencySpecification 14:11
.tell andreios github.com/perl6/nqp/pull/442 14:13
yoleaux ugexe: I'll pass your message to andreios.
ugexe lizmat: my final answer would be it should probably be added as a Version just because version and auth exist, but that we should consider the possibility of getting rid of them in favor of a single CompUnit::DependencySpecification 14:15
otherwise ver/api/auth get repeated across 3 different classes: Distribution, CompUnit, CompUnit::DependencySpecification
pmurias ugexe: if the jvm backend has a future I would guess it will be based on truffle/graalvm anyway 14:40
ugexe: so I doubt old jdk support has much value
14:45 travis-ci joined
travis-ci Rakudo build passed. Stefan Seifert 'Make sure reproducible-builds.t loads NativeCall from lib' 14:45
travis-ci.org/rakudo/rakudo/builds/528158256 github.com/rakudo/rakudo/compare/e...bc71e3cf42
14:45 travis-ci left
ugexe nine: that test still fails on windows ci.appveyor.com/project/rakudo/rak...cxao#L1146 14:52
nine ugexe: but CompUnit::DependencySpecification doesn't have version. It has a version-matcher. Close but not really the same. Most of all they may be of different types
ugexe: where's the debug output from that? 14:54
ugexe i dunno, it'll be a few minutes before my windows vm boots up (let alone build rakudo) 14:55
there really doesn't need to be a significant difference for CURFS. the -matcher part is only relevant when querying for a range of something 14:56
there is no reason to think version-matcher = 1 is any different than version = 1 14:57
also i'm not sure i will be able to get any debug output unless windows handles redirection and/or the diff command properly 14:58
15:00 pmurias left
ugexe looking at the changes i don't see why the test should fail though... 15:01
i was expecting a path thing, e.g. / -> \\
15:02 pmurias joined
nine I'd not be surprised if the debug stuff failed, but the test itself uses only high level interfaces 15:17
Maybe the 'lib/NativeCall.pm6'.IO? 15:18
ugexe well its still building, but now i wonder if its related to deleting a file that is still in use 15:20
or rather, deleting a file which still has a handle to it open
15:24 b2gills left
ugexe C:\Users\ugexe\.rakudobrew\moar-blead-master>perl6 t\02-rakudo\reproducible-builds.t 15:25
Failed to remove the directory 'C:\Users\ugexe\AppData\Local\Temp\rakudo-precomp217GKM2H452SRR3SCR8CFAWN6\338EA3E53CB478656D45B2AC28FC4D1A20F83F82': Failed to rmdir: directory not empty
in block <unit> at t\02-rakudo\reproducible-builds.t line 22
nine So, it's the still open handle 15:28
ugexe if i comment out $store.delete-by-compiler($compiler-id); i get an error about failing to rename (which is probably expected) 15:29
nine Essentially the same issue: trying to precompile while the old file is still open, so it can't rename the newly compiled file to the final name 15:31
Easiest fix would probably be to just not keep the unit around for debugging on Windows and instead closing it 15:33
ugexe why shouldn't it always be closed regardless? 15:37
nine We'd have to read the whole unit into memory just for the case that maybe we want to generate debug output 15:38
15:38 b2gills joined
ugexe so because of debug performance? that seems... strange 15:39
is there a way to know when calling .delete-by-compiler which handles are open (and thus which one should be closed first?) 15:43
im not seeing how to get at the inner CURPS::File's .close method from .delete-by-compiler 15:44
nine %!loaded contains the open units 15:48
It's not performance of debug but about saving that memory in the much more common case of not needing to debug. Though granted, it's probably not much anyway 15:49
Note that closing the unit may cause other unintended effects. If the module is actually used, then MoarVM will trip over the suddenly closed handle 15:50
ugexe once a module is used why would MoarVM trip over the closed handle? i expect that once a module is used that it is in memory, and any further use will load the cached result 15:53
im assuming you meant reuse instead of use, otherwise i dont understand how use would cause such an issue 15:54
nine MoarVM lazily reads the precomp file. Also it just mmaps the file instead of copying it into a buffer 15:56
Lazy deserialization was one of those huge wins early on
15:56 Geth left
ugexe eww, calling $store.unlock errors out with "Attempt to unlock mutex by thread not holding it" 15:57
15:58 Geth joined
nine ouch 15:58
ugexe i wonder could this test instead precompile to two separate locations, and *then* compare? 16:00
or would the test not be as valid then?
although i suppose .delete-by-compiler should still be able to work on windows one way or another 16:01
16:54 Geth left 16:55 Geth joined
ugexe well the good news is that it doesnt seem like an open handle 17:03
$subdir isn't getting deleted (or deleted fast enough) by .rmdir 17:04
or the .unlink 17:08
ok its .unlink on the file not actually deleting it (...because of a open handle?) 17:13
17:31 MasterDuke joined, MasterDuke left, MasterDuke joined
ugexe nine: gist.github.com/ugexe/ce6330421e9f...d19b822f7b 18:14
that fixes the test on windows. note sure why its not able to delete that .lock file though 18:15
it does have to be .?close() (it was Any sometimes?) 18:16
i wonder if remove-from-cache should be called by delete-by-compiler 18:18
18:25 andreios joined
andreios . 18:26
yoleaux 14:13Z <ugexe> andreios: github.com/perl6/nqp/pull/442
andreios ugexe: thanks 18:32
18:35 pmurias left
andreios there'd be no point in migrating to jdk9, since it has reached EOS 18:36
nine ugexe: CompUnit::PrecompilationStore::File::unlock does not actually close the lock file! 18:42
It only unlocks
I'm not sure I like remove-from-cache to also close the unit. That seems like unrelated functionality and both is-up-to-date and store-unit will inherit that 18:43
andreios oh, i haven't noticed the year 18:44
18:44 andreios left 18:45 andreios joined
ugexe nine: maybe .delete should call .close, and delete-by-compiler should call .delete (instead of .unlink directly) 18:48
18:52 pmurias joined
nine Why not keep the user responsible for that? 18:57
19:00 andreios left
ugexe i cant think of a reason for the user to ever want to close it otherwise, and if there isn't a good reason to leave it open then why not avoid exposing additional api 19:05
otherwise sure, an api to expose the necessary parts to the test itself would work 19:07
19:35 vrurg joined
nine It just feels like a bit too much magic for a very internal low level thing 19:35
19:41 pmurias left 19:43 pmurias joined
ugexe i don't feel like its magic since the user never instantiates the handle (and indeed there may be no handle if it wasn't loaded from a file) 19:44
well, i'm not sure if precomp can be loaded from anything other than a file. im thinking of CompUnit::Loader.load-source(...) though 19:46
[Tux] Rakudo version 2019.03.1-276-ge274f4a26 - MoarVM version 2019.03-105-g2e87a0a06
csv-ip5xs0.735 - 0.755
csv-ip5xs-205.929 - 6.313
csv-parser22.536 - 22.880
csv-test-xs-200.430 - 0.463
test7.048 - 7.499
test-t1.698 - 1.856
test-t --race0.807 - 0.918
test-t-2027.680 - 30.360
test-t-20 --race8.663 - 10.696
20:03
20:08 ufobat_ joined 20:11 ufobat__ left 20:17 [TuxCM] left
ugexe if the handle doesn’t have to be encapsulated then maybe .precompile should return it instead of True 20:31
20:43 dogbert11 left 20:49 Geth left 20:50 Geth joined 22:40 pmurias left 22:52 pmurias joined
releasable6 Next release in ≈19 hours. 1 blocker. Please log your changes in the ChangeLog: github.com/rakudo/rakudo/wiki/ChangeLog-Draft 23:00
23:08 denix13 joined 23:09 Kaiepi left, Kaiepi joined 23:17 denix13 left 23:27 pmurias left