timotimo IO::Socket::Async.Supply has a :$scheduler argument that gets ignored ): 00:08
MasterDuke timotimo: Zoffix might have already addressed that in his post-release branch. at least, i think i remember something similar 00:20
timotimo oh? interesting
MasterDuke or maybe it's just called out in some inconsistency notes, i'm really not sure 00:21
timotimo ah, he added scheduler being passed on in print-to
why is libuv giving me addr == NULL? :\ 00:32
we are currently receiving an extra empty datagram after every bunch of udp packets read by libuv 00:37
i have a simple fix for that already
MasterDuke seems an easy win 00:39
timotimo yup 00:41
IO::Socket::Async::Datagram.new(data => "hi\n", hostname => "127.0.0.1", port => 48878) 00:43
IO::Socket::Async::Datagram.new(data => "hi\n", hostname => "127.0.0.1", port => 60130)
IO::Socket::Async::Datagram.new(data => "hi\n", hostname => "127.0.0.1", port => 59787)
IO::Socket::Async::Datagram.new(data => Buf[uint8].new(104,105,10), hostname => "127.0.0.1", port => 53398) 00:45
^- this one's with :bin in the Supply args
btw, supplying :!enc in there makes it blow up when the first message arrives, Type check failed in binding to parameter 'encoding'; expected Str but got Bool (Bool::False) 00:46
00:46 yoleaux joined
MasterDuke think that's another thing Zoffix at least pointed out 00:46
timotimo cool :)
react whenever IO::Socket::Async.bind-udp("127.0.0.1", 9999).Supply(:datagrams, :!enc) { .perl.say } 00:47
how does that look?
i probably want to rename it "datagram" instead of "datagrams"
MasterDuke nice
timotimo not so sure if it is, though
Geth MoarVM/udp_receive_hostname_port: 967102bc67 | (Timo Paulssen)++ | src/io/asyncsocketudp.c
expose both hostname and port of received datagrams
00:56
MoarVM/udp_receive_hostname_port: 7b27ca8a2e | (Timo Paulssen)++ | src/io/asyncsocketudp.c
ignore libuv-caused "fake" empty datagrams
MasterDuke heh. i have a template for sp_findmeth, but segv almost right away building nqp 00:59
timotimo :D 01:02
MasterDuke timotimo: how are you at reading templates? up for taking a look if i gist it?
timotimo if it weren't bedtime, i'd look 01:14
maybe i can look while i brush my teeth
MasterDuke: ^ 01:16
MasterDuke gist.github.com/MasterDuke17/9b8db...60f76f62a4 01:17
my suspicion is something about the sizes of the what's read from the registers, but i'm not really sure... 01:18
timotimo hm, have you verified with another example that the "carg $0 ptr" is correct to get the register's address properly? 01:20
i think you need an additional layer of pointeryness 01:21
like, the code in the template is the same for the obj and the res arguments, but obj is just *obj = GET_REG and res is *res = &GET_REG 01:22
MasterDuke sp_decont does the same thing
`MVMRegister *r = &GET_REG(cur_op, 0); ...; STABLE(obj)->container_spec->fetch(tc, obj, r);` 01:23
timotimo mhm
MasterDuke becomes `(callv (^getf (^getf (^stable $1) MVMSTable container_spec) MVMContainerSpec fetch) (arglist (carg (tc) ptr) (carg $1 ptr) (carg $0 ptr)))` 01:24
timotimo weird, i wonder how that works
MasterDuke i did think it was a little odd, but then compared with sp_decont and just did what it did 01:25
timotimo yeah, weird
maybe if an argument to an opcode is r/w it'll have an additional layer of pointer for free in the template? 01:26
could it be the invokish nature of the op isn't properly taken into account unless we do something special in the template itself? 01:27
have you tried dumping the asm yet?
or even just the graphviz tree in the jit log? 01:28
MasterDuke no, is there an easy way to do that?
ah, i think i see it in the log, but gotta afk for a bit 01:29
timotimo surely the $3 thing, i.e. the 16bit right out of the instruction stream, will be passed properly by the exprjit compiler? 01:30
yeah, wval also just does it like that 01:31
we should just ping brrt with the gist url: gist.github.com/MasterDuke17/9b8db...60f76f62a4 01:36
and maybe you can also put a backtrace and listing and such from gdb at the point of the segfault 01:37
unless of course the segfault is inside the assembly code rather than the MVM_blah function
good luck! o/
MasterDuke gist updated, thanks for looking at it timotimo++ 02:16
oh, that may have been silly 02:19
swapped $1 and $3 in the sub expressions of the eq 02:20
hm. built nqp, but rakudo build died. not with a segv though. `Cannot invoke null object` 02:21
in src/Perl6/Metamodel/MROBasedMethodDispatch.nqp: `my %submethods := $obj.HOW.submethod_table($obj);` 02:23
02:57 ilbot3 joined 03:09 yoleaux joined 04:54 nativecallable6 joined 05:50 statisfiable6 joined 06:05 geospeck joined 06:27 klapperl joined 07:10 ilmari[m] joined 09:11 yoleaux joined 09:23 brrt joined 09:33 travis-ci joined
travis-ci MoarVM build passed. Aleks-Daniel Jakimenko-Aleksejev 'Revert "Try to use egcc when compiling on OpenBSD" 09:33
travis-ci.org/MoarVM/MoarVM/builds/331388501 github.com/MoarVM/MoarVM/compare/9...4d1099b0b1
09:33 travis-ci left 10:15 domidumont joined 10:23 domidumont joined 10:39 zakharyas joined 10:42 benchable6 joined, bisectable6 joined, coverable6 joined 10:43 releasable6 joined 10:44 releasable6 joined 10:45 releasable6 joined 10:51 domidumont joined
nwc10 good *, #moarvm 10:53
jnthn o/ nwc10 10:59
11:01 brrt joined
brrt good * #moarvm 11:01
yoleaux 21 Jan 2018 18:36Z <MasterDuke> brrt: line 104 of github.com/MoarVM/MoarVM/blob/mast...t/tiles.md has a sentence that doesn't end
jnthn It goes on forever? :) 11:02
nine brrt: I pushed a couple of expr JIT templates into my inline_in_place branch. After the initial shock over the unusual syntax, I've found those templates incredibly nice to work with. Constructs that were really tedious to implement in the lego JIT are now downright trivial. 11:04
brrt thanks :-D 11:05
i'll check that out
nine brrt: speaking of, do you have any idea about this? github.com/MoarVM/MoarVM/commit/89...bf3eaf7b11
11:06 yoleaux joined
brrt no, that should work. i'll check it out 11:07
there's no OR tile defined…. 😭 11:24
11:27 lizmat joined
Geth MoarVM: 21267d80ff | (Bart Wiegmans)++ | 4 files
Implement tile for OR operator

  nine++ tried to implement the 'isnull' opcode as an expression
template as
   (or (zr $1) (eq $1 (^vmnull)))
... (7 more lines)
11:36
11:48 brrt joined 12:03 brrt joined 12:13 lizmat joined
timotimo brrt: did you see MasterDuke's work in the backlog? gist.github.com/MasterDuke17/9b8db...60f76f62a4 - this is for sp_findmeth 12:14
12:22 domidumont joined 12:37 reportable6 joined
brrt did not 12:43
timotimo OK, cool. maybe you can figure this out :) 12:54
it looked acceptable to me
bbiab
13:03 brrt joined
brrt yeah, it looks good to me as well 13:06
i'll check it out
timotimo thanks 13:08
brrt i'll point jit-bisect to it :-)
13:33 brrt joined 13:49 brrt joined 14:00 yoleaux joined 14:25 geospeck joined 14:34 yoleaux joined
brrt I don't think the problem is in the template, though 14:35
timotimo oh? that's nice 14:36
14:41 domidumont joined 14:49 domidumont1 joined 15:13 zakharyas joined 15:37 geospeck joined 15:50 yoleaux joined 16:12 brrt joined
brrt ah, hang on, i think i'm seeing the issue 16:15
no, i'm not
oh, now i think i am 16:21
the fallback case for sp_findmeth is invokish 16:22
lemmesee how to do that in the template
16:23 yoleaux joined
timotimo ah, so it *is* about invokish stuff! i thought it'd take that from the oplist 16:28
brrt not sure…. 16:30
nine brrt: if you are not sure, who would be? :) 16:31
brrt hehe. good point 16:35
so, i think it does get them from the oplist, it's just that sp_findmeth is marked noninvokish
or not marked invokish, to be more exact 16:36
jnthn It prolly should be 16:38
sp_decont also if it ain't already
nine Otherwise the basic block merger might introduce new exciting failures 16:39
brrt hmmm 16:42
maybe, but i think the original rationale for not marking them invokish is to be able to only be invokish in the slow case
which brings me back to an idea i had earlier 16:43
what if we let the sp_findmeth fail by setting a NULL value
and then continue by checking that NULL value and branching to the slow case if so
(this would mean adding a new basic block) 16:44
the sp_findmeth case is nasty… 16:48
17:12 brrt1 joined 17:27 domidumont joined 17:35 yoleaux joined
Geth MoarVM: samcv++ created pull request #786:
ucd2c.pl: Fix White_Space/space Unicode Property +many other improvements
17:41
17:41 brrt joined 17:43 evalable6 joined 18:45 yoleaux joined 19:00 zakharyas joined 19:12 Kaiepi joined 19:21 zakharyas joined 19:36 yoleaux joined, quotable6 joined 19:55 Kaiepi joined 20:02 Kaiepi joined 20:19 Ven`` joined 20:21 yoleaux joined 21:01 yoleaux joined 21:36 yoleaux joined 21:40 yoleaux joined 21:56 Ven`` joined
MasterDuke glad to see i eventually got the template right 22:03
heh. though the dark center to that silver lining is that it seems the solution isn't trivial 22:04
22:11 Ven`` joined
timotimo aye 22:16
22:22 squashable6 joined, unicodable6 joined, committable6 joined, bloatable6 joined
MasterDuke is it all on brrt now? 22:26
lizmat looks like :-( 22:32
jnthn .tell brrt Having pondered it a little, sp_findmethod is really "we couldn't do a good opt on the method call here". From the spesh logs I've looked at of late, they are all on code paths that we no data for - meaning they were cold. Given that, being clever and trying to make it a half-invokish maybe isn't worth it. 22:48
yoleaux jnthn: I'll pass your message to brrt.
MasterDuke jnthn: so just marking it invokish in the oplist might make the template work? 22:54
hm, nope, same error when building rakudo 22:57
jnthn Depends if that info is conveyed to the right place, and if that's even the problem 22:58
MasterDuke oops, forgot to run update_ops
22:59 Ven`` joined
MasterDuke trying again... 22:59
jnthn My point to brrt was mostly, "if that is the issue, don't feel a need to try and solve a hard problem we might not benefit from" :)
MasterDuke rakudo just built ok 23:02
jnthn hah, neat :) 23:03
MasterDuke i'll run a spectest and then PR that template with the addition of :invokish on the op
23:09 domidumont joined, greppable6 joined 23:11 Ven`` joined 23:23 Ven` joined
Geth MoarVM: MasterDuke17++ created pull request #787:
Add JIT template for sp_findmeth
23:45
23:48 yoleaux joined