github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:00
reportable6 left
00:01
lucasb left
00:02
reportable6 joined
00:13
Kaiepi left
00:52
pamplemousse joined
01:54
pamplemousse left
02:43
pamplemousse joined
02:47
Kaiepi joined
03:24
pamplemousse left
06:00
reportable6 left
06:02
reportable6 joined
06:54
MasterDuke joined
07:48
lizmat joined
07:59
Ven`` joined
08:31
chloekek joined
|
|||
nine | timotimo: a use statement can change the language by its implicit BEGINness, so there's just no way to continue parsing until the statement is processed fully. OTOH you're trying to improve a rare situation anyway. The loaded modules should be precompiled already after all. | 09:13 | |
Unless! You might say, we're talking about a developer working on some base module of his distro, where running the tests means precompiling a large number of modules that depend on the changed base module. | 09:14 | ||
It seems easier to optimize for this situation, because there are more things that work to our advantage. For example we probably know the full set of modules that may need re-compilation from a META6.json. And we can have the developer run some service in the background or include that in some test setup code. | 09:16 | ||
This service could watch files and run the compiler for all modules in the distro (in parallel of course - possibly even with a job server). | 09:17 | ||
And if you're thinking about a job server and dependencies and running compilers, you may as well use something that's already doing this well, like make. | 09:18 | ||
So all we need is something that records the dependency graph of a distro, writes it out into a Makefile, watches files for changes and starts make -j when appropriate. | 09:20 | ||
lizmat | FWIW, I know from experience that currently in such a situation, with running tests in parallel, modules are precompiled more than once | 09:21 | |
so maybe we need some locking at the file level making sure only one process is precomping something at a time | |||
nine | lizmat: yes, I've noticed that, too. CompUnit::PrecompilationRepository::Default.precompile already uses a file lock so precomp processes don't step on each other's toes. I think the check if it still needs to precompile after it gained the lock may be broken. | 09:28 | |
lizmat | perhaps we need some in memory semaphore, if supported :-) | 09:33 | |
I seem to recall implementing that as one of the Perl 5 functions | |||
09:44
lizmat left
09:46
Ven`` left
|
|||
nine | Ah, I think I understand. It's the logic in try-load: load the precompiled file or precompile with :force(did we fail to load because the precompiled file outdated?). There's just no code for the case when the precomp file was outdated but another process may have precompiled while we were waiting for the lock. | 10:06 | |
Without the :force flag, we take whatever's there after gaining the lock. | |||
I'm not sure if the current control flow can somehow be extended with checks if the precomp file has become up-to-date while waiting or if it needs general restructuring | 10:09 | ||
10:16
chloekek left
11:07
pamplemousse joined
11:19
lizmat joined
11:59
lizmat left
12:00
reportable6 left
12:04
reportable6 joined
12:06
lizmat joined
12:18
lizmat left
12:19
lizmat joined
13:16
rba joined
13:27
lizmat left
13:43
pamplemousse_ joined
13:47
pamplemousse left
13:58
chloekek joined
14:05
Ven`` joined
14:13
pamplemousse_ left
14:34
lucasb joined
14:48
Ven`` left
16:15
pamplemousse joined
16:20
pamplemousse left
16:53
chloekek left
17:42
chloekek joined
17:54
Kaiepi left
17:56
Kaiepi joined
18:00
reportable6 left
18:05
reportable6 joined
18:17
zakharyas joined
19:01
zakharyas left
20:36
lizmat joined
20:44
zakharyas joined
20:51
lizmat left
|
|||
Geth | MoarVM: cygx++ created pull request #1159: add MVM_vm_run_bytecode() as alternative to MVM_vm_run_file() |
21:27 | |
21:42
AlexDaniel left
22:03
AlexDaniel joined,
AlexDaniel left,
AlexDaniel joined
22:04
zakharyas left
22:15
Kaiepi left,
Kaiepi joined
22:39
Kaiepi left
22:40
Kaiepi joined
23:00
Kaiepi left
23:01
Kaiepi joined
23:03
lucasb left
23:44
chloekek left
|