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
|