github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
nine MasterDuke: that failed to rename file problem on Windows may have a somewhat simple workaround: trying again after waiting for a bit. When searching the net for the error message, you'll find that this seems to be what others do in this situation. 09:19
nine MasterDuke: the precomp errors listed in #1500 are all about inability to replace the repo-id file. These files are frequently read, but are very small and get closed immediately after reading. Giving it a few tries after waiting for a random time should get us around implicit locking on Windows. 09:22
So what I propose is implementing something like CSMACD (Carrier Sense Multiple Access Colission Detection) which is one of my favourite algorithms. That's because it sounds sophisticated and very technical, but is totally natural for humans. 09:24
Two people start speaking at the same time, they notice that, stop speaking, wait for a somewhat random time and try again. Whoever waits shortest "wins".
tom__ yo 12:01
ugexe there was a brief period when libuv had code to try rename multiple times but was reverted 12:56
github.com/libuv/libuv/pull/2122
nine Interesting. IMHO libuv would be the wrong layer for this anyway. Even MoarVM would be. There's too much policy involved. That's better left for a layer close to the user 13:13
ugexe that was basically why it was reverted 13:16
ugexe there could be a problem implementing it in rakudo in that i dont think moarvm passes along e.g. UV_EBUSY UV_EPERM UV_EACCES 14:03
although if its only ever used for precomp maybe it doesnt need to be that correct 14:05