github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
02:52 squashable6 left 02:53 squashable6 joined 02:54 Kaiepi left 02:55 Kaiepi joined 02:56 Kaiepi left, Kaiepi joined 03:15 Kaiepi left 04:26 nativecallable6 left, linkable6 left, notable6 left, greppable6 left, committable6 left, quotable6 left, bisectable6 left, tellable6 left, evalable6 left, squashable6 left, benchable6 left, unicodable6 left, coverable6 left, sourceable6 left, statisfiable6 left, releasable6 left, shareable6 left, bloatable6 left, committable6 joined, coverable6 joined, releasable6 joined 04:27 shareable6 joined, notable6 joined, unicodable6 joined, statisfiable6 joined, quotable6 joined, bisectable6 joined, benchable6 joined, evalable6 joined 04:28 sourceable6 joined, nativecallable6 joined, squashable6 joined, greppable6 joined, linkable6 joined, tellable6 joined 04:29 bloatable6 joined 05:16 Kaiepi joined
nwc10 good *, #moarvm 06:13
MasterDuke interesting. rakudo builds, but install-core-dist.raku dies with `Cannot assign a literal of type Num (NaN) to a native variable of type int. You can declare the variable to be of type Real, or try to coerce the value with NaN.Int or Int(NaN)` 07:46
07:50 moon-child left, moon-child joined
MasterDuke doh. that's what i get for attempting to program while tired. easy to spot the problem now 07:50
07:57 moon-child left, moon-child joined 07:58 domidumont joined 08:10 brrt joined 08:12 frost-lab joined 08:18 frost-lab31 joined 08:20 Kaiepi left 08:21 frost-lab left 08:27 Kaiepi joined 08:42 Kaeipi joined, Kaiepi left
nine MasterDuke: there are worse things than quickly spotting a problem that you deemed inscrutable the day before :) 08:43
08:44 zakharyas joined 08:45 zakharyas1 joined 08:49 zakharyas left 08:50 Kaeipi left
brrt \o 08:52
08:54 Kaiepi joined
MasterDuke yeah, i'll take it 09:09
09:13 sena_kun joined 09:32 Kaiepi left
nwc10 o/ 10:18
MasterDuke oh, is the german perl workshop on now? i hadn't heard anything about it 10:23
jnthn Yes 10:24
nwc10 but also "no" depending on what granularity you're considering 10:25
not this morning
but the heretical real-concept that happens after "morning" out in the real world. (This, depsite the fact that it's only online. Although there was a shot of two orgaisers in the same place) 10:26
MasterDuke ah, jnthn is giving a talk today at 13:30. what timezone is that? 10:28
nwc10 CET
jnthn My one, which makes it easy for me :)
nwc10 you will want to be streaming.media.ccc.de/gpw2021/
unless you have a pirate copy already. (I don't)
conferences never used to have this problem with timezones when they were in actual places 10:29
jnthn is amused by the thought of his talk being pirated
nwc10 it just randomly occurred to me.
because I realised that it's like a move before it's released in the cinmea - or more, like non-live TV before it's shown 10:30
MasterDuke do i need to pay to watch?
nwc10 No.
I don't think you even need to pay to be on the chat channel at app.element.io/#/room/#GermanPerlW...matrix.org 10:31
so, there's no real market for pirated copies.
sorry, if anyone thought that this was a money spinner
MasterDuke cet is one hour ahead, think i can manage that 10:32
11:07 Altai-man_ joined, sena_kun left 11:14 sena_kun joined
MasterDuke huh. `say DateTime.now` is off by 12 minutes. i could understand being off by some larger values i was using the wrong multiplier between nanoseconds and seconds, but how does 12min happen? 11:14
lizmat not for me 11:15
m: say DateTime.now
camelia 2021-03-25T12:15:40.658154+01:00
lizmat looks ok here as well ?
11:15 Altai-man_ left
lizmat maybe your clock is off ? 11:15
MasterDuke i'm on my branches to remove nqp::time_(i|n) and replace with nqp::time that returns nanoseconds 11:16
lizmat aah... ok
*phew8
*
nwc10 is your local bug exactly 12 minutes?
lizmat 12 seconds I could sorta understand? epoch vs instant ? 11:17
MasterDuke oh yeah, it was seconds
whoops 11:18
lizmat line 866 and following in src/core.c/Rakudo/Internals.pm6 11:26
hmm...that's be more like 27 seconds 11:27
MasterDuke my measurement wasn't very precise, i was running the rakudo appimage for comparison and then immediately running my local rakudo
11:33 Kaiepi joined 11:42 zakharyas1 left 11:48 Kaiepi left 11:49 Kaiepi joined 11:57 brrt left 12:02 Altai-man_ joined 12:03 Kaiepi left, Kaiepi joined 12:05 sena_kun left, frost-lab31 left
nwc10 everyone has about 12 minutes to make coffee (or eat breakfast, hint hint) before jnthn is on streaming.media.ccc.de/gpw2021/GPW2021 12:19
well, jnthn this year, rather than just photos some of which have jnthn in previous years 12:20
12:25 Kaiepi left 12:53 brrt joined 13:01 zakharyas joined
lizmat did we lose the sound? 13:15
13:15 Kaiepi joined
nwc10 jnthn: once you've done with questions on the real live stream, what was your euphamasim for "it might SEGV" covering for why it was eager keys 13:16
we should fix that. But not this week 13:20
I'm going back upstairs with the table (To the coffee, the sofa and the sun) 13:21
jnthn Even if it didn't segv, it'd still be wrong 13:24
Probably OO::Monitors should warn on return of a lazy thing
lizmat jnthn: I wonder whether the three hashes keyed on URL, couldn't have been encapsulated into a single object and used in a SetHash ? 13:32
with the encapsulating object creating a proper WHICH :-) 13:33
jnthn lizmat: I said that in the answer session, but unfortunately the sound got lost for it
lizmat aha, ok 13:34
yeah, no sound indee
d
jnthn But yeah, I did look at it and think "hm, that'd be nicer as one object"
13:35 brrt left
lizmat but yeah, for the presentation, it would have been an additional level of indirection / layer to prevent understanding 13:36
jnthn The WHICH certainly, also I know I'm a very heavy user of lexical classes, but especially for those watching with Perl eyes it may be a less obvious thing too. 13:37
lizmat yeah, figured that :-) 13:49
or maybe use a module such as ValueTypeCache :-) 13:52
MasterDuke heh. `Failed test '   ... of approximately correct value'`...`maximum absolute tolerance: 5`...`actual absolute difference: 1616680383668322973.624558` 13:54
nwc10 :-)
lizmat jnthn: so any idea how many people watched ? 14:05
jnthn lizmat: No 14:13
nwc10 seed the torrents! 14:14
jnthn lizmat: However, the video will be around for a long time. Also there's actually a "director's cut" version that was a bit too long for the schedule, but has an extra section at the end showing some Comma features of use to those using Cro
Probably the Cro docs should get a section linking to these things... 14:15
nwc10 but will fit the typical TPCiC 50-minute slot jsut fine?
jnthn hah! That'd be lazy :P 14:18
nwc10 it only works if you *are* lazy and don't update anything
jnthn I think by then new-disp will have landed and RakuAST will be far along enough to justify another talk
dogbert11 notes that one of [Tux] CSV tests makes ASAN quite angry 15:13
t/45_eol.t ........... 1/? ================================================================= 15:14
==355764==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6020003278ac at pc 0x7f35e3a21f17 bp 0x7ffe0e684a70 sp 0x7ffe0e684a60
READ of size 4 at 0x6020003278ac thread T0
#0 0x7f35e3a21f16 in cache_sep_info src/strings/decode_stream.c:639
#1 0x7f35e3a21f16 in MVM_string_decode_stream_sep_from_strings src/strings/decode_stream.c:698
15:45 Kaiepi left 16:29 zakharyas left 16:45 ggoebel joined 17:02 MasterDuke left 17:18 sivoais left, [Coke] left, samcv left, nwc10 left, jraspass left 17:20 ilogger2 joined, kawaii joined
nine Tradeoffs, tradeoffs, tradeoffs. After spending another couple hours on it, I'm pretty sure that conceptually nqp::backtrace cannot work as it is. The reason is that we simply do not retain the information that it would need to work. 17:31
To generate a backtrace, we need the full call chain of frames at the point of the exception. That's easy, we have that as all we need is put the call chain onto the heap and store the top most MVMFrame*. 17:32
We also need the current position within each of those frames. And that we do not have. A frame doesn't know the point in the caller where it got called from (or would need to return to). Instead it's the caller that stores this information. 17:33
But in Backtrace.new after throwing and catching the exception, we return to one of the callers in the exception's chain and continue executing it (which is how we come across that nqp::backtrace call). So the return point gets changed between exception throw and backtrace. 17:34
Now there is a solution that stores the missing position information into each frame's "extra" in that call chain. It's implemented in MVMContext's snapshot_frame_callees. 17:35
But that would have to happen in MVM_exception_throwobj, making every exception throw even more expensive. 17:36
17:42 Voldenet left, leedo left, chansen_ left, bartolin left, moritz left, bartolin_ joined, moritz_ joined, Voldenet joined, [Coke] joined, chansen_ joined, sxmx joined, jraspass joined, timotimo joined, bingos_ joined, dogbert17 joined, [Coke] left, [Coke] joined, releasable6 joined, notable6 joined, statisfiable6 joined, tellable6 joined, jpf1 joined, Voldenet left, Voldenet joined, Altai-man_ joined 17:44 leedo joined 17:52 moon-child joined 17:57 ugexe left, mtj_ left, SmokeMachine left, Altreus left, rba_ joined, Altreus joined, ugexe joined, SmokeMachine joined 17:58 rba_ is now known as rba, kawaii left, rypervenche left, camelia left, rypervenche joined, kawaii joined, tbrowder joined 17:59 Util_ left, eaterof left, avar joined, avar left, avar joined, jnthn_ joined, mst joined, bonsaikitten joined, jjatria joined, ChanServ sets mode: +o mst 18:00 Util joined, eater joined 18:01 lizmat joined 18:02 camelia joined 18:03 kawaii left, ugexe left, Altreus left, nine joined 18:04 kawaii joined, ugexe joined, Altreus joined 18:05 kawaii left, ugexe left, Altreus left, ugexe joined 18:06 Altreus joined, leedo left, leont left, leedo joined, leont joined 18:10 kawaii joined 18:17 ilogger2 joined, vrurg joined, tobs joined, samcv joined 18:18 quotable6 joined, bloatable6 joined, evalable6 joined, unicodable6 joined, nativecallable6 joined, squashable6 joined, shareable6 joined, committable6 joined, greppable6 joined, coverable6 joined, domidumont joined 18:19 harrow joined 18:21 domidumont left, japhb joined, MasterDuke joined
MasterDuke nine: exceptions aren't the worst thing to get a little slower. but will this also effect rakudo's control flow perf? 18:22
nine it would 18:47
But...maybe we can still avoid that
Thing is, the part I struggle with is to get a stable number of frames, regardless of JIT or spesh being enabled or not. What do I need that number for? To skip the top most n frames! 18:48
Because those frames are just the throwing of an exception, Backtrace.new, Failure!SET-INTERNAL, Failure.new and fail(), none of which the user cares about. 18:49
So instead of starting at the exception's frame, I could actually start generating the backtrace at tc->cur_frame. 18:50
18:58 bingos_ is now known as BinGOs 18:59 BinGOs left, BinGOs joined 19:02 lizmat_ joined 19:03 lizmat left 19:05 MasterDuke left 19:08 lizmat_ is now known as lizmat 19:16 jnthn_ is now known as jnthn 20:14 nebuchadnezzar left, MasterDuke joined
MasterDuke nine: sounds promising 20:14
20:43 nebuchadnezzar joined
MasterDuke ok, i now have a moavm+nqp+rakudo that all use nqp::time instead of nqp::time_(i|n) and pass all tests 20:45
nine sounds excellent :) 20:46
MasterDuke but with virtually no other change. i.e., pretty much just an s/nqp::time_n/nqp::div_n(nqp::coerce_in(nqp::time),1000000000e0)/g 20:47
20:48 japhb left
MasterDuke i think i'll PR them as is so people can see the changes and suggest anything that now can be done better/differently 20:49
20:51 japhb joined
MasterDuke github.com/MoarVM/MoarVM/pull/1450 20:57
nine Ok, seems like this 4th implementation works also and has no drawbacks. On the contrary it makes Failures a little bit cheaper 20:59
What I did was make it possible to call nqp::backtrace not with an exception but with an nqp::null. In that case it will just start with the current frame and position. 21:00
MasterDuke very cool 21:01
nine With this we finally pass those backtrace tests with MVM_SPESH_NODELAY
MasterDuke i don't remember what it was, but a little while ago somebody showed some slow code and iirc creating Failures was (one of?) the biggest costs 21:02
21:03 sxmx left
japhb nine++ # Constantly pushing stability forward 21:04
MasterDuke++ # Taking up my old complaint and doing something about it. :-)
21:30 zakharyas joined 21:58 zakharyas left 22:34 dogbert17 left 22:36 dogbert17 joined 22:38 dogbert11 joined 22:40 dogbert17 left 23:07 dogbert17 joined 23:11 dogbert11 left