🦋 Welcome to the IRC channel of the core developers of the Raku Programming Language (raku.org #rakulang). This channel is logged for the purpose of history keeping about its development | evalbot usage: 'm: say 3;' or /msg camelia m: ... | log inspection situation still under development | For MoarVM see #moarvm Set by lizmat on 22 May 2021. |
|||||||||||||||||||||||||||||||||||||||
00:07
reportable6 left
00:08
reportable6 joined
01:34
RakuIRCLogger left,
Geth left
03:28
frost joined
06:03
releasable6 left,
coverable6 left,
greppable6 left,
bisectable6 left,
bloatable6 left,
linkable6 left,
shareable6 left,
committable6 left,
reportable6 left,
notable6 left,
statisfiable6 left,
evalable6 left,
sourceable6 left,
nativecallable6 left,
unicodable6 left,
quotable6 left,
benchable6 left
06:04
shareable6 joined,
benchable6 joined,
bloatable6 joined,
quotable6 joined,
greppable6 joined,
linkable6 joined
06:05
coverable6 joined,
notable6 joined,
sourceable6 joined,
bisectable6 joined,
committable6 joined
06:06
nativecallable6 joined,
reportable6 joined,
releasable6 joined,
evalable6 joined
06:07
unicodable6 joined,
statisfiable6 joined
|
|||||||||||||||||||||||||||||||||||||||
nine | japhb: can vs does | 06:27 | |||||||||||||||||||||||||||||||||||||
japhb | nine: Fair enough. Is anyone yet working on turning 'can' into 'does'? (IIUC, that's what Xliff is asking for.) | 06:37 | |||||||||||||||||||||||||||||||||||||
nine | Not that I'm aware of | 06:40 | |||||||||||||||||||||||||||||||||||||
japhb | OK, so it sounds like the current status is "The data is there, there may even be an internal API for it, but either that API is not exposed externally and/or Zef is not currently using that data to communicate to the end user." So I guess the next question is whether there actually is any work to be done to expose that data in an official API, or whether it's just a matter of hacking Zef to expose what | 06:44 | |||||||||||||||||||||||||||||||||||||
it already knows. | |||||||||||||||||||||||||||||||||||||||
nine | It is rather simple: the workhorse for installation is CURI's install method. It takes a Distribution object and installs this distribution, i.e. copying bin and resource files and precompiling modules. The Distribution object is essentially the META6.json in form of an object. | 06:55 | |||||||||||||||||||||||||||||||||||||
Since the META6.json contains information like what distro it is and how many and what modules it contains and zef is the thing that reads this information and passes it to the install method in the first place, zef already knows how many modules are going to be installed. | 06:57 | ||||||||||||||||||||||||||||||||||||||
And of course it could easily take timings for how long it takes to install that distribution. | |||||||||||||||||||||||||||||||||||||||
And if the installer was really keen on giving more fine grained information like what modules is currently being precompiled, it could even do that right now. It would just have to set RAKUDO_LOG_PRECOMP in the environment and replace $*STDERR with an object that intercepts the "Precompiling $id ($_.key())" message and uses it to e.g. drive a counter | 07:01 | ||||||||||||||||||||||||||||||||||||||
lizmat | that's exactly what I want to do, in a slightly different way | 07:07 | |||||||||||||||||||||||||||||||||||||
however, that counter doesn't really keep track | |||||||||||||||||||||||||||||||||||||||
take the example of NativeCall: it uses NC::Types, ::Compiler::GNU and ::Compiler::MSVC | 07:08 | ||||||||||||||||||||||||||||||||||||||
so that's 4 files | |||||||||||||||||||||||||||||||||||||||
because CURI sorts the provides keys, it will precomp NativeCall first | 07:09 | ||||||||||||||||||||||||||||||||||||||
*but* because of its use statements, that means it will also recursively precompile those modules as well | 07:10 | ||||||||||||||||||||||||||||||||||||||
so suppose it would be the only things being installed, then it would start with 1/4 NativeCall, and then be done | |||||||||||||||||||||||||||||||||||||||
because the other 3 modules would be precompiled already by the time CURI is even thinking of precompiling them | 07:11 | ||||||||||||||||||||||||||||||||||||||
nine | We ought to get rid of that recursion as it blocks proper parallelization | ||||||||||||||||||||||||||||||||||||||
lizmat | agree | ||||||||||||||||||||||||||||||||||||||
so that's what I've been doing the past week or so, trying to grok the whole process and try to come up with a way for proper reporting and parallelization | 07:12 | ||||||||||||||||||||||||||||||||||||||
and not break anythinhg | |||||||||||||||||||||||||||||||||||||||
and type correctly :-) | |||||||||||||||||||||||||||||||||||||||
nine | The latter is probably the hardest | ||||||||||||||||||||||||||||||||||||||
lizmat | ineed | 07:13 | |||||||||||||||||||||||||||||||||||||
:-) | |||||||||||||||||||||||||||||||||||||||
07:28
[Coke] left
07:31
[Coke] joined
|
|||||||||||||||||||||||||||||||||||||||
MasterDuke | oh, Geth is down? | 08:59 | |||||||||||||||||||||||||||||||||||||
lizmat | again? | 09:02 | |||||||||||||||||||||||||||||||||||||
09:02
Geth joined,
RakuIRCLogger joined
09:03
TempIRCLogger joined
|
|||||||||||||||||||||||||||||||||||||||
lizmat | MasterDuke: which repo should I replay commits ? | 09:04 | |||||||||||||||||||||||||||||||||||||
MasterDuke | nqp and rakudo | ||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 91185079e0 | (Elizabeth Mattijsen)++ | src/Perl6/World.nqp One unncessary return at the end of a method |
09:06 | |||||||||||||||||||||||||||||||||||||
rakudo: vrurg++ created pull request #4861: Initial attempt with `will complain` trait |
09:08 | ||||||||||||||||||||||||||||||||||||||
nqp/faster_sorted_keys: 6eb2954d7e | (Elizabeth Mattijsen)++ | 2 files Some more tweaks - remove now superfluous decrement (it's handled in the loop condition) - find out that it sorts in reverse, document that - fix sorting for 2 elements, it's supposed to be in reverse! - add tests for "sorted_keys", there weren't any |
09:09 | ||||||||||||||||||||||||||||||||||||||
lizmat | I think that covers it | ||||||||||||||||||||||||||||||||||||||
Geth | nqp: b4d5848597 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 2 files Speed up "sorted_keys" sub - faster collection of keys using nqp::iterator/nqp::iterkey_s - one check for > 2 - one check for == 2 and order - decrement in while condition, account for that in initialization - document it's actually sorting in *reverse* order ... (7 more lines) |
09:37 | |||||||||||||||||||||||||||||||||||||
rakudo: 02c59dc790 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Installation.pm6 Make script stubs and used extensions constants |
09:39 | ||||||||||||||||||||||||||||||||||||||
09:43
sena_kun left
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: f41d5c5a74 | (Elizabeth Mattijsen)++ | tools/templates/NQP_REVISION Bump nqp to get faster sorted_keys logic |
09:52 | |||||||||||||||||||||||||||||||||||||
09:54
sena_kun joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 42457734f9 | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Installation.pm6 Lose the original wrapper initializations |
10:20 | |||||||||||||||||||||||||||||||||||||
[Tux] |
|
10:36 | |||||||||||||||||||||||||||||||||||||
11:05
TempIRCLogger left
12:07
reportable6 left
12:09
reportable6 joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo: 6b50a940af | (Elizabeth Mattijsen)++ | src/core.c/CompUnit/Repository/Installation.pm6 Make sure $*REPO gets restored on exception At the moment, if anything goes wrong with module installation, we completely abort anyway. But that may not be like that in the future. Make sure that $*REPO gets restored on failure. Also reduce the number of $*REPO lookups. |
12:15 | |||||||||||||||||||||||||||||||||||||
rakudo: b2a8bfc9e7 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | 8 files Remove the $?COMPILATION-ID constant - it is not used anywhere - it is only tested for its existence - it is not documented |
12:16 | ||||||||||||||||||||||||||||||||||||||
13:02
frost left
13:35
sena_kun left
13:36
sena_kun joined
|
|||||||||||||||||||||||||||||||||||||||
Geth | rakudo/CUDS-lookup-id: a39ddc222d | (Elizabeth Mattijsen)++ | 2 files Add CompUnit::DependencySpecification.lookup-id method And use it. I guess technically any CUR can devise its own way of encoding a shortname lookup into a filename, but it feels that it being in the CUDS is more appropriate. |
13:37 | |||||||||||||||||||||||||||||||||||||
rakudo: lizmat++ created pull request #4862: Add CompUnit::DependencySpecification.lookup-id method |
|||||||||||||||||||||||||||||||||||||||
rakudo: 8a1e778874 | (Elizabeth Mattijsen)++ (committed using GitHub Web editor) | src/core.c/IO/Path.pm6 Add an IO::Path.dir-with-entries method Checking whether a directory has entries in it, can be checked by doing e.g. an "if .dir.head {". However, this will leak resources as the iterator that runs "dir" will never be finished, and thus the underlying directory handle will also never be closed. ... (8 more lines) |
14:21 | ||||||||||||||||||||||||||||||||||||||
18:05
sena_kun left
18:06
sena_kun joined
18:08
reportable6 left,
reportable6 joined
19:36
linkable6 left
19:37
linkable6 joined
19:46
linkable6 left
19:49
linkable6 joined
19:51
sena_kun left
19:54
sena_kun joined
|
|||||||||||||||||||||||||||||||||||||||
Xliff | lizmat: I've started another run of timings, as requested. | 20:11 | |||||||||||||||||||||||||||||||||||||
lizmat | Xliff++ | 20:49 | |||||||||||||||||||||||||||||||||||||
Xliff | lizmat: I am noticing that prereqs are being recompiled. | 20:51 | |||||||||||||||||||||||||||||||||||||
Which might be why the numbers are off. | |||||||||||||||||||||||||||||||||||||||
lizmat | hmmm... intriguinig | 20:52 | |||||||||||||||||||||||||||||||||||||
Xliff | GIO is compiled before soup, but the parts of GIO that are used by SOUP are adding 61 seconds to SOUPs time. | ||||||||||||||||||||||||||||||||||||||
lizmat | ok, then stop the timing.... | ||||||||||||||||||||||||||||||||||||||
Xliff | Done. | 20:53 | |||||||||||||||||||||||||||||||||||||
lizmat | I guess I need to look at why it is re-doing dependency checks (I know it re-does these for modules in the core repo) | ||||||||||||||||||||||||||||||||||||||
but in that case, it doesn't actually re-precompile the dependencies | |||||||||||||||||||||||||||||||||||||||
Xliff: if you could golf this, that would be brill! | 20:54 | ||||||||||||||||||||||||||||||||||||||
Xliff | lizmat: I'll see what I can do. | 20:55 | |||||||||||||||||||||||||||||||||||||
lizmat | ++Xliff | 20:56 | |||||||||||||||||||||||||||||||||||||
21:29
Xliff left
|