github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:03 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
MasterDuke hm, there's no way to mention a constant #define'd in a .h file in a jit template is there? 00:12
samcv MasterDuke: not sure what you're asking? 00:15
oh. you mean to have inserted into the expr template? 00:16
00:38 Monkeh1 joined 00:44 Monkeh1 left 01:10 nukedclx13 joined 01:13 nukedclx13 left
MasterDuke yeah 01:50
oh, wait, maybe there is 01:51
02:55 MasterDuke left 04:01 avar left, avar joined, avar left, avar joined, p6bannerbot sets mode: +v avar 05:42 domidumont joined 05:43 p6bannerbot sets mode: +v domidumont 06:18 brrt joined
Geth MoarVM/fork-safety: 73156ba02a | (Bart Wiegmans)++ | 5 files
[Spesh] Tear down spesh worker in full_cleanup

If the spesh worker is still active the GC can try to free a lock that is being held, which leads to an abort in libuv. Stopping the thread makes full-cleanup work (although it still leaks).
Thread is stopped by signalling with VMNull. Ideally we'd unshift this to the front of the queue, but that is more complicated.
06:18
06:19 p6bannerbot sets mode: +v brrt
MoarVM/fork-safety: ac44769b9f | (Bart Wiegmans)++ | 3 files
[ConcBlockingQueue] Unmoving body

The locks structure was already malloc'd, and I extended this to include the entire body. This prevents the GC from moving the body while we are blocked on acquiring a lock, simplifying the code, and has negligible cost.
MoarVM/fork-safety: f5e4dfde79 | (Bart Wiegmans)++ | 3 files
[IO] Stop event loop thread

Stop loop with uv_stop(uv_loop) and join the thread
MoarVM/jit-expr-optimizer: 4 commits pushed by (Bart Wiegmans)++ 06:20
06:21 domidumont left 06:52 robertle joined 06:53 p6bannerbot sets mode: +v robertle
Geth MoarVM/template-compiler-refactor: c09e4595a2 | (Bart Wiegmans)++ | 5 files
[JIT] New template compiler

  - Single-pass compilation (no separate 'validate_template' step
  - Better type and format checking (operands should be expressions or
   references, parameters should be barewords, numbers or macros)
  - Write-out parameters need to be refered with a \$ sigil, like \$0,
   and templates without output operands should not get a '!' suffix
07:04
MoarVM/template-compiler-refactor: 16c45f2c57 | (Bart Wiegmans)++ | tools/expr-template-compiler.pl
[JIT] Tighten scope rules

  - Reintroduce lexical scope for let declarations
  - Forbid redeclarations (even inner-scope shadowing), because this is
   currently unhygienic
  - We do allow right-to-left references to declarations in the same let
   scope
... (9 more lines)
brrt also a rebase..... 07:08
07:11 fake_space_whale left
Geth MoarVM/template-compiler-refactor: 5c8e050d8c | (Bart Wiegmans)++ | tools/expr-template-compiler.pl
[JIT] Bind 'let:' declarations eagerly

If we resolve 'let:' declarations before applying macros, then there is no possibility of macros introducing a name clash. Also the compiler no longer needs to maintain an environment, and can reuse the deduplication logic that was already necessary due to macros.
07:11
07:25 domidumont joined 07:26 p6bannerbot sets mode: +v domidumont
brrt I intend to merge the above ^ 07:29
07:33 Kinsmir0 joined 07:34 zakharyas joined 07:35 p6bannerbot sets mode: +v zakharyas 07:36 Kinsmir0 left
nine brrt: what I've seen so far looks good 07:38
07:56 zakharyas left 07:57 zakharyas joined, p6bannerbot sets mode: +v zakharyas 08:15 zakharyas left 08:21 graingert8 joined 08:25 graingert8 left 08:39 lizmat left 08:53 lizmat joined 08:54 p6bannerbot sets mode: +v lizmat 08:59 zakharyas joined 09:00 p6bannerbot sets mode: +v zakharyas
brrt ok, then i'll go for it 09:01
09:10 zakharyas left
brrt ugh, fill_macro still manages to screw up substitution 09:19
09:36 See joined 09:37 See left
Geth MoarVM/template-compiler-refactor: 620acf556a | (Bart Wiegmans)++ | tools/expr-template-compiler.pl
[JIT] Maintain link identity during macro expansion

Because the expand_macro routine constructs a new expression (it makes a copy of the original macro) it is necessary to maintain a substitution table to ensure that we replace the same references with identical substitutions. Added a test case to prove that we do this.
09:51
09:56 zakharyas joined 09:57 p6bannerbot sets mode: +v zakharyas 10:09 brrt left
lizmat Q: is QASTOperationsMAST.nqp still used? I'm trying to add a "nqp::ifnull_s" there, but it won't even get compiled after a do a configure 10:34
ah, it's in NQP, duh 10:38
10:44 brrt joined, p6bannerbot sets mode: +v brrt
Geth MoarVM/master: 4 commits pushed by (Bart Wiegmans)++ 10:45
lizmat brrt: feels like a bump is in order ? 10:46
brrt Let me see, what else is there to merge 10:50
I want to get ugexe++'s libuv bump in as well
lizmat sounds like a plan
brrt what's cool about these patches is that macro's and let declarations kind of work like you should expect in the template compiler 10:51
the blurb for the weekly is that this makes writing expression templates safer and simpler
:-)
lizmat brrt: thanks 10:52
weekly: the blurb for the weekly is that this makes writing expression templates safer and simpler
notable6 lizmat, Noted!
lizmat brrt: perhaps make them separate bumps for easier bisectability 10:54
brrt that's possible too
11:03 aaron7 joined 11:06 aaron7 left
lizmat brrt: should we see any performance difference after these changes ? 11:13
brrt no
there's a tiny memory leak cleanup
and the template compiler bit is all about correctness
lizmat ok, well, test-t feels a bit slower after the bump 11:14
but that could be noise
brrt there could be a *tiny* advantage since we now correctly do the implied subexpression elimination in let: expressions
but I don't think it makes any difference
lizmat if there is a difference, it's not positive :-) 11:15
at least, I'm not seeing it :-)
brrt oh well
I'll give speed for correctness :-)
lizmat indeed 11:16
masak a commonly held stance in software development :P 11:17
Geth MoarVM/master: 7 commits pushed by (Jeremy Studer)++, (Bart Wiegmans)++ 11:50
MoarVM: 73e2f53d73 | (Nick Logan)++ (committed by Bart Wiegmans) | 3rdparty/libuv
Update libuv to 1.23.0
11:51
MoarVM: aacd1a7883 | (Nick Logan)++ (committed by Bart Wiegmans) | build/Makefile.in
Update libuv timer source path

The unix and win implementations were consolidated and thus the path of the source no longer had 'unix/' in it.
  github.com/libuv/libuv/commit/95c5...6730ae703b
lizmat brrt: hmmm.... :-)
lizmat will bump unless told otherwise
brrt hasn't yet tested the libuv changes
that said, I trust ugexe 11:52
lizmat is going to test nqp ow
now and if clean, bump rakudo
Geth MoarVM: f71f55cf76 | (Daniel Green)++ (committed by Bart Wiegmans) | src/jit/graph.c
JIT decoder(empty|takebytes)
11:56
MoarVM: e4b75b8b8d | (Daniel Green)++ (committed by Bart Wiegmans) | src/jit/graph.c
Use uintptr_t for decoder* char * to integer casts
lizmat hmmm... rakudo doesn't build anymore 12:10
'uv/errno.h' file not found 12:11
#include "uv/errno.h"
In file included from src/vm/moar/ops/perl6_ops.c:2:
In file included from /Users/liz/Github/rakudo.moar/install/include/moar/moar.h:19:
gist.github.com/lizmat/1cc5df073b8...05edecf460 12:14
FWIW, make test on NQP was fine
commute& 12:17
12:17 lizmat left 12:18 lizmat joined, lizmat left 12:21 brrt left 12:25 brrt joined 12:26 p6bannerbot sets mode: +v brrt
jnthn Lots going on here, I see. Nice. :-) 12:35
dogbert2 lizmat is correct rakudo doesn't build with the new libuv 12:36
In file included from /home/dogbert/repos/rakudo/nqp/MoarVM/../../install/include/moar/moar.h:19:0, from src/vm/moar/ops/perl6_ops.c:2:
/home/dogbert/repos/rakudo/nqp/MoarVM/../../install/include/libuv/uv.h:48:22: fatal error: uv/errno.h: No such file or directory #include "uv/errno.h"
jnthn OK, maybe not entirely nice :D 12:37
dogbert2 it's probably not impossible to fix :) 12:38
12:40 ori12 joined
dogbert2 comparing rakudo (with the new libuv) with the previous version, i.e. my rakudobrew uncovers a difference 12:40
12:40 ori12 left
dogbert2 /home/dogbert/repos/rakudo/install/include/libuv/uv-errno.h 12:40
/home/dogbert/repos/rakudo/nqp/MoarVM/3rdparty/libuv/include/uv/errno.h 12:41
12:41 lizmat joined 12:42 p6bannerbot sets mode: +v lizmat
dogbert2 eh, I meant this 12:42
/home/dogbert/.rakudobrew/moar-master/nqp/MoarVM/3rdparty/libuv/include/uv-errno.h
lizmat dogbert2: there are more cases where it looks like uv/foo.h became uv-foo.h 12:52
nuking install doesn't fix the issue 12:54
perhaps we should revert the libuv update ? 12:55
dogbert2 unless brrt can fix it in a flash :)
jnthn Probably easier to wait a few hours to see if somebody can fix it (not me, alas, teaching :)) and just don't bump the MOAR_REVISION/NQP_REVISION 12:56
dogbert2 the difference seems to be that previously the libuv include files were present in 3rdparty/libuv/include but now all except one have been moced to 3rdparty/libuv/include/uv 12:57
*moved
lizmat what I don't understand is why this doesn't show up with building MoarVM / NQP ? 12:59
lizmat tries a fresh checkout of MoarVM 13:01
fresh checkout of MoarVM builds ok 13:05
dogbert2 aha
lizmat !
dogbert2 ah, MoarVM, that worked before no
lizmat dogbert2: is that a question ? 13:09
dogbert2 I think so, didn't MoarVM build before you did a fresh checkout ? 13:15
lizmat it also built 13:16
dogbert2 I'm probably just confused atm .)
lizmat but I was thinking that since there are files missing in the rakudo case, maybe my checkout somehow had the files
so it built ok using files not in the repo 13:17
a fresh checkout also builds, so scratch that idea
I'm out of ideas atm 13:18
timotimo could be another case of "submodules changing around too much makes git pull unhappy", just in a different way this time 13:23
lizmat yeah, that was my idea in nuking install 13:24
alas
timotimo perhaps nuking 3rdparty/ would have been more helpful 13:25
well
nuking is not quite the right word
some things in there aren't submodules, and therefor won't just be restored after an rm -rf
lizmat rm -rf install # that's nuking to me
lizmat tries a fresh rakudo checkout 13:26
timotimo oh
the Makefile.in has been changed, right?
so what you need is at least a Configure.pl in moarvm
dogbert2 I got it working with some shenanighans 13:29
lizmat doesn't make a differece :-(
timotimo hans, is that you?
dogbert2 then you run 'make install' in the MoarVM directory it seems as if some/most 3rdparty h-files are copied to <rakudodir>/install/include 13:31
s/then/when/
unfortunately only one libuv h-file is copied, i.e. uv.h the files in the new uv directory are not copied
lizmat datapoint: a fresh rakudo checkout + NQP bump doesn't build either (same error) 13:32
dogbert2 lizmat, see above
lizmat feels like a workaround at best ? 13:33
dogbert2 yes, I suspect that should be done automatically 13:34
brrt make reeconfig?
i'm slightly confused as to what is the issue
dogbert2 rakudo doesn't build 13:35
brrt i'll check it out...
dogbert2 I suspect this line is not enough (taken from a Makefile in my MoarVM dir) - $(CP) 3rdparty/libuv/include/*.h $(DESTDIR)$(PREFIX)/include/libuv 13:37
brrt that could well be possible yes
dogbert2 the libuv header files, except one, have moved to rdparty/libuv/include/uv 13:38
brrt right 13:39
13:57 AlexDani` joined, p6bannerbot sets mode: +v AlexDani` 14:00 zakharyas left 14:01 zakharyas joined, AlexDaniel left, p6bannerbot sets mode: +v zakharyas 14:05 zakharyas left 14:06 AlexDani` is now known as AlexDaniel, AlexDaniel left, AlexDani` joined 14:07 p6bannerbot sets mode: +v AlexDani`
brrt has a fix 14:13
there are reasons to want to overhaul the Configure.pl
and there are reasons not to, including 'time limits' 14:14
I think mst++ once complained loudly about our Configure.pl, and not without reason
Geth MoarVM: ccc315f712 | (Bart Wiegmans)++ | Configure.pl
[LibUV] Install subdirectory of headers

Now that we have libuv 1.23, platform specific headers are placed under
  'libuv/uv/', rather than directly under 'libuv/'n and we didn't install
them yet, but now we do.
14:17
lizmat brrt++ # rakudo's building 14:28
dogbert2 brrt++ 14:29
lizmat spectesting now
bumped! 14:37
dogbert2 didn't nine have some cool stuff in the works, something with hllbool? 14:47
lizmat afk for a bit& 14:49
14:49 lizmat left
brrt I think so, and timotimo also had branches 14:57
timotimo i have some branches, yeah
brrt what's the deadline for those :-P
timotimo hm 14:58
i've got some changes that want a coordinated moarvm and nqp merge
japhb timotimo: ready to go, or still working on them? 15:03
timotimo i think i actually want to change the api just a little bit 15:05
15:08 brrt left 15:16 robertle left 15:19 fake_space_whale joined 15:20 p6bannerbot sets mode: +v fake_space_whale 15:27 BuildTheRobots4 joined 15:29 BuildTheRobots4 left 15:35 lizmat joined 15:36 p6bannerbot sets mode: +v lizmat 15:42 domidumont left 15:49 zakharyas joined 15:50 p6bannerbot sets mode: +v zakharyas 15:56 robertle joined 15:57 p6bannerbot sets mode: +v robertle
timotimo you see, it's about adding more data from the program to the profile, more precisely it's about getting type info; size of objects of that given type, and whatever other info we can get 16:09
16:10 zakharyas left 17:22 zakharyas joined, p6bannerbot sets mode: +v zakharyas 17:38 AlexDani` is now known as AlexDaniel 17:48 zakharyas left
dogbert11 lizmat: I've now reported the RPi SEGV problem, from yesterday, as github.com/MoarVM/MoarVM/issues/951 19:04
20:56 lizmat left 21:29 robertle left 21:44 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke 21:46 MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke
Geth MoarVM: ugexe++ created pull request #952:
Fix sprintf formatting for the debugserver port
22:04
22:06 Kaiepi joined 22:07 p6bannerbot sets mode: +v Kaiepi