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] |
|
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
|