github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:02 reportable6 left 00:03 reportable6 joined 03:10 evalable6 left, statisfiable6 left, sourceable6 left, tellable6 left, bloatable6 left, reportable6 left, nativecallable6 left, releasable6 left, quotable6 left, greppable6 left, bisectable6 left, coverable6 left, committable6 left, linkable6 left, notable6 left, shareable6 left, unicodable6 left, squashable6 left, benchable6 left 03:11 greppable6 joined, quotable6 joined, statisfiable6 joined, unicodable6 joined, tellable6 joined, nativecallable6 joined, squashable6 joined 03:12 shareable6 joined, benchable6 joined, reportable6 joined, releasable6 joined, evalable6 joined, bisectable6 joined, notable6 joined, bloatable6 joined 03:13 sourceable6 joined, linkable6 joined, committable6 joined 03:14 coverable6 joined 04:59 squashable6 left 05:01 squashable6 joined 06:02 reportable6 left 06:04 reportable6 joined 07:05 sxmx1 left
Geth MoarVM/master: 6 commits pushed by (Nicholas Clark)++ 08:47
08:48 linkable6 left 08:49 linkable6 joined 08:55 frost-lab joined 08:56 squashable6 left 08:57 squashable6 joined
Geth MoarVM/hash-stale: ebf22a79ad | (Nicholas Clark)++ | 2 files
Free StrHashTable memory at GC safepoints; track when it is queued to free.

The control structure now has a flag which is set set to 0 when it is allocated. When the hash expands (and needs a new larger allocation) flag is set to 1 in the soon-to-be-freed memory, and the memory is scheduled to be released at the next safe point. This way avoid C-level use-after-free if threads attempt to mutate the same hash concurrently, and hopefully can spot at least some cases and fault them, often enough for bugs to be noticed.
10:17
MoarVM/hash-stale: 01b91fc033 | (Nicholas Clark)++ | 3 files
Check the `stale` sentinel to try to trap concurrent hash accesses.

Previously MoarVM could well SEGV if two user threads access the same hash without locking. Now if it detects concurrent access it will oops instead with a diagnostic. It's not clear to me that we can really recover if we detect this, as concurrent write accesses might have already corrupted the hash structures too far for us to resolve problems.
MoarVM/hash-stale: d181883c05 | (Nicholas Clark)++ | src/core/str_hash_table.c
If two threads "grow" the same hashtable concurrently, we must `oops`.

User threads are responsible for ensuring that they don't access MoarVM hashes concurrently, with mutexes or other concurrency primitives.
If they ignore this there is the potential for VM-level memory corruption and crashes (or worse). Growing hashes is rare, hence we afford the small performance hit of using atomic operations to detect if two threads attempt to reallocate the same hash at the same time, and exit with an informative message if so. (At the point we detect this we can't actually recover as we have a double free.)
10:18 linkable6 left
Geth MoarVM: nwc10++ created pull request #1492:
Try to trap concurrent hash accesses.
10:18
10:19 linkable6 joined
nwc10 oooh, epic fast fail. I wonder why 10:20
2021-05-16T10:20:00.9382897Z fatal: unable to access 'github.com/MoarVM/MoarVM/': The requested URL returned error: 500 10:22
2021-05-16T10:20:01.0041254Z ##[warning]Git fetch failed with exit code 128, back off 1.507 seconds before retry.
2021-05-16T10:20:02.4582584Z ##[command]git -c http.extraheader="AUTHORIZATION: basic ***" fetch --force --tags --prune --progress --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/pull/1492/merge:refs/remotes/pull/1492/merge
2021-05-16T10:20:03.9017049Z remote: Internal Server Error.
2021-05-16T10:20:03.9055517Z remote:
2021-05-16T10:20:03.9117420Z fatal: unable to access 'github.com/MoarVM/MoarVM/': The requested URL returned error: 500
Awesome!
Epic fail.
I shall wait a bit, then hit re-run 10:23
nine The joy of having CI accessing the network and the major reason why I prefer a push to the Open Build Service
nwc10 The left hand of Microsoft is unable to talk to the right hand of Microsoft 10:24
meanwhile, in definate #firstworldproblem, I seem to be about to run out of sherry.
Geth MoarVM: a1cfecd6db | (Stefan Seifert)++ | src/spesh/optimize.c
Fix getting garbage numbers after spesh optimized away smart_intify

Spesh can turn a smart_intify of a num into a guard, sp_get_n and a coercion. However due to a typo instead of coercing the num into an int, we treated the num as an int and "coerced" it again to a num. This turned a 6.0 into 4618441417868443648 causing infix_x to repeat the input string a bit more often than intended, and making us allocate a huge array for the result.
Fixes GH #1466
10:28
10:28 linkable6 left
nine If only all hard to diagnose bugs where so easy to fix :) 10:29
lizmat feels it is time for another MoarVM bump ? 10:30
10:31 linkable6 joined
nine I wonder if we should re-revert github.com/MoarVM/MoarVM/commit/94...518c590b92 as it's clearly innocent. Or if we should wait for after the release. 10:31
Geth MoarVM: a75a206afb | (Stefan Seifert)++ | src/core/interp.c
Revert "Revert "Always log the type coming out of an nqp::decont""

This reverts commit 9481289950b89dabb553e63d277038518c590b92.
The original commit is clearly innocent. It just unlocked more optimizations which uncovered quite a few spesh bugs. But hiding those won't get them fixed, so let's see what bugs come our way.
10:38
nine lizmat: now I feel like a bump is appropriate :)
lizmat ok will do one 10:39
nine thanks
dogbert11 nine++, absolutely brilliant :) 10:53
lizmat bumped 10:56
dogbert11 I have a few modules cloned, but not installed, on my system. I run their tests from time to time to see if anything strange happens. 11:57
when running 'prove --exec "perl6-m -Ilib"' on [Tux] CSV module I get: Missing or wrong version of dependency 'gen/moar/stage2/NQPHLL.nqp' (from '/home/dogbert/repos/CSV/lib/IO/String.pm6 (IO::String)') 11:58
what could be the reason for this?
wiping the .precomp dir in the modules lib dir will almost certainly fix it 11:59
nine Does RAKUDO_MODULE_DEBUG=1 tell more of the story?
dogbert11 I can check :)
nine: gist.github.com/dogbert17/4708025a...1dfcd56043 12:01
12:02 reportable6 left 12:04 reportable6 joined
nine Nah...would need closer inspection of those files 12:18
dogbert11 ok, another question, the latest MoarVM fixes made some stuff faster (yay) and a few programs a bit slower. It that to be expected? 12:25
nine commit c8c1b4f2b49564d3b40a22a08e381485ff16d5aa certainly made things slower 12:32
12:32 linkable6 left
dogbert11 I see slowdown in som scripts, usually it's not that much slower, bu I have one example where the slowdown is ~30 percent which seems to be an outlier 12:34
my spelling is atrocious
execution time before bump was 16 sec and 22 after 12:35
12:35 linkable6 joined
dogbert11 here's the script gist.github.com/dogbert17/36ff5b85...84e46d523a 12:36
MasterDuke nine++ 12:41
14:05 domidumont joined 14:41 frost-lab left 16:18 Kaeipi joined, Kaiepi left 16:23 Kaeipi left, sena_kun left, Kaeipi joined 16:25 sena_kun joined 16:43 zakharyas joined 18:02 reportable6 left 18:03 reportable6 joined 18:27 patrickb joined 18:33 domidumont left
Geth MoarVM/MVM_fixed_size_destroy-free-safepoint-overflow-list: 5ba30ed83d | (Nicholas Clark)++ | src/core/fixedsizealloc.c
`MVM_fixed_size_destroy` needs to free the safepoint overflow list.

Otherwise anything oversize that has been queued to free at a safepoint can leak on --full-cleanup.
19:32
MoarVM: nwc10++ created pull request #1493:
`MVM_fixed_size_destroy` needs to free the safepoint overflow list.
19:48 linkable6 left, evalable6 left, linkable6 joined 19:49 evalable6 joined
Geth MoarVM/hash-stale: ae024a492f | (Nicholas Clark)++ | 2 files
Free StrHashTable memory at GC safepoints; track when it is queued to free.

The control structure now has a flag which is set set to 0 when it is allocated. When the hash expands (and needs a new larger allocation) flag is set to 1 in the soon-to-be-freed memory, and the memory is scheduled to be released at the next safe point. This way avoid C-level use-after-free if threads attempt to mutate the same hash concurrently, and hopefully can spot at least some cases and fault them, often enough for bugs to be noticed.
20:24
MoarVM/hash-stale: d8a16dfd48 | (Nicholas Clark)++ | 3 files
Check the `stale` sentinel to try to trap concurrent hash accesses.

Previously MoarVM could well SEGV if two user threads access the same hash without locking. Now if it detects concurrent access it will oops instead with a diagnostic. It's not clear to me that we can really recover if we detect this, as concurrent write accesses might have already corrupted the hash structures too far for us to resolve problems.
MoarVM/hash-stale: 77756158c7 | (Nicholas Clark)++ | src/core/str_hash_table.c
If two threads "grow" the same hashtable concurrently, we must `oops`.

User threads are responsible for ensuring that they don't access MoarVM hashes concurrently, with mutexes or other concurrency primitives.
If they ignore this there is the potential for VM-level memory corruption and crashes (or worse). Growing hashes is rare, hence we afford the small performance hit of using atomic operations to detect if two threads attempt to reallocate the same hash at the same time, and exit with an informative message if so. (At the point we detect this we can't actually recover as we have a double free.)
20:38 zakharyas left 21:12 patrickb left 22:24 dogbert11 left 22:25 dogbert11 joined