Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-06-18

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
01:39 dalek MoarVM: 4e9210f | hoelzro++ | VERSION:
01:39 dalek MoarVM: Bump VERSION
01:39 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4e9210f42d
01:41 hoelzro if anyone's around with upload permissions, I've uploaded the tarball to http://hoelz.ro/files/MoarVM-2015.06.tar.gz
01:41 hoelzro sha256sum 8dfe52630a3fcc749b653591f8a4e7fa723cd204cf0f6133b62b70d1b9c5980f
04:21 JimmyZ hoelzro: no change log?
06:41 TEttinger joined #moarvm
06:51 FROGGS joined #moarvm
07:04 zakharyas joined #moarvm
07:55 brrt joined #moarvm
07:58 brrt \o
07:58 nwc10 o/
07:58 brrt update on current 'research' into adapting dynasm
07:59 brrt calculating all possible values of REX bytes and their proper locations is very difficult, because they interact with operand size overrides (for byte and word register sizes)
08:00 brrt fortunately, that's not necessary
08:01 brrt the correct hack would be to specify alternative sequences, and have dynasm work it out at runtime which alternative to take
08:06 brrt end of update, i guess :-)
08:09 FROGGS :o)
08:37 TEttinger so is there some sort of template that https://github.com/arnsholt/snake and https://github.com/tokuhirom/Perl6-Renshu/tree/master/nqp-lisp are following?
08:37 TEttinger I'm looking to start my own project along those lines
08:37 Ven joined #moarvm
08:41 JimmyZ TEttinger: NQP itself?
08:41 TEttinger I was wondering, thanks
08:42 JimmyZ TEttinger: https://github.com/perl6/nqp/tree/master/examples/rubyish
08:43 TEttinger sweet.
08:43 TEttinger thank you very much!
08:44 arnsholt If you want a dead simple Makefile, I've got one in the Snake repo (arnsholt/snake at GitHub)
08:45 arnsholt Sadly the dependency tracking is a bit broken, so you have to use "make clean all" to rebuild
08:47 arnsholt But yeah, there's no explicit template for build systems and such, beyond
08:47 arnsholt *beyond what's implicit in NQP and Rakudo
08:47 arnsholt But those are relatively complicated
08:47 timotimo obviously we should totally build a build system just for nqp
08:48 timotimo it'd be called "nqsb" for "not quite sane builds", perhaps
08:48 arnsholt =D
08:50 timotimo or maybe "nqsbt" - not quite sane build tool
08:53 TEttinger arnsholt, I'm afraid dead simple makefile is not always the case on windows :)
08:54 TEttinger timotimo, which is funny because Scala has sbt as their build tool
08:54 arnsholt Yeah, can't help you there =)
08:54 TEttinger arnsholt, no worries, I need to get a bit of learning experience here
08:55 timotimo TEttinger: i'm aware :)
08:55 timotimo a friend of mine is quite fond of sbt, iirc
08:55 timotimo oh, and also, our very own and lovely panda will be replaced by nqpm
08:56 JimmyZ nqpm? nqp-m?
08:56 timotimo oh
08:56 timotimo that's a problem
08:56 JimmyZ whereis nqpm? :)
09:00 TEttinger quite-the-package-manager
09:00 TEttinger qtpm
09:03 TEttinger woah, did moar 2015.6 release in the last 7 hours?
09:03 timotimo yeah, it seems like hoelzro just did the release in a few minutes while nobody was looking
09:03 timotimo fastest-seeming release i've ever seen
09:05 TEttinger it isn't on the moarvm.com site yet
09:05 timotimo right, jnthn could upload it to that web server
09:06 zakharyas joined #moarvm
09:27 JimmyZ and no changelog update :P
09:29 timotimo that, too
09:30 timotimo oh
09:30 timotimo we don't have a changelog section for this month at all
09:31 * timotimo has a quick look
09:37 timotimo changelogs i write are usually shorter than jnthn's :\
09:40 dalek MoarVM: e8d02ad | timo++ | docs/ChangeLog:
09:40 dalek MoarVM: First draft of MoarVM changelog 2015.06
09:40 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e8d02adea3
09:40 timotimo does somebody want to flesh it out?
09:44 brrt left #moarvm
09:55 hoelzro_trying_w joined #moarvm
09:58 Ven joined #moarvm
10:49 TEttinger oh boy.  so GCC is not working for me when I try to build Moar, and I am not sure why. it can't complete the probe to see if it thinks it's GCC
10:50 TEttinger MSVC gets further, but chokes with a parser stack overflow on unicode.c
10:50 TEttinger will Clang potentially work?
10:51 JimmyZ msvc works here
10:53 arnsholt Clang should work
10:53 arnsholt But it's odd that it doesn't build on the MS toolchain, as that's what jnthn uses...
10:57 * jnthn builds with MSVC nearly every day...
11:00 TEttinger I'll ask him later
11:01 TEttinger JimmyZ, what version?
11:01 TEttinger I am using 2015 RC
11:01 TEttinger 32-bit
11:01 nwc10 would be useufl if the probe fails, that it knows how to print out the STDERR
11:01 JimmyZ msvc 2012 or 2013, 64bit
11:01 nwc10 clearly that's a missing feature
11:01 TEttinger I'll try 64
11:01 JimmyZ express verstion
11:01 JimmyZ *version
11:01 TEttinger community here
11:02 brrt joined #moarvm
11:05 brrt dynasm might just be the most evil codebase i know
11:05 brrt https://github.com/MoarVM/dynasm/blob/master/dasm_x86.h#L274
11:05 brrt i submit for evidence ^
11:06 timotimo i think you have to explain that to me :\
11:06 timotimo i don't see the evil
11:07 timotimo is it just the if (...) with a { directly below it that doesn't if the block to the condition?
11:07 TEttinger same error, src\strings\unicode.c(45034): fatal error C1026: parser stack overflow, program too complex
11:07 timotimo TEttinger: what versions are involved here?
11:08 TEttinger sorry, 2015 RC, 64 bit community
11:08 TEttinger on windows 7
11:08 TEttinger 64
11:08 timotimo shouldn't that be totally fine?
11:08 TEttinger I'd like a pony
11:08 TEttinger I'd settle for a building NQP :)
11:09 JimmyZ or simply use only msi package :)
11:09 TEttinger NEVAR
11:09 TEttinger I need to make source mods to the rubyish example
11:09 brrt left #moarvm
11:09 TEttinger which may or may not require compiling NQP!
11:10 JimmyZ TEttinger: you can run the rubyish by the msi nqp too
11:11 TEttinger yeah, I probably should do that
11:11 TEttinger I do want to be ABLE to build
11:12 JimmyZ or hack the probe to know gcc :P
11:15 FROGGS it does know gcc
11:15 JimmyZ or install a  linux on virtualbox? :)
11:15 FROGGS and it works with gcc+gmake and cl+nmake on my windows 7 box
11:15 FROGGS though, I used cmd.exe and windows sdk shell
11:16 JimmyZ me too
11:16 brrt joined #moarvm
11:17 * brrt has finally found the money line
11:17 brrt also, timotimo, you *don't* find that evil?
11:18 timotimo is it only the in-line if with an "anonymous" block directly on the next line?
11:19 timotimo i just want to know if i'm looking at the right thing :)
11:22 TEttinger brrt, now that I see it, yeah that's awful. they just forgot about 'else' existing, huh
11:22 brrt well, mike pall is brilliant. just not in the 'readable code' sense
11:23 TEttinger sweet, with 2013 64-bit it builds
11:23 brrt timo: yes, that's the one i meant
11:23 TEttinger all tests pass too
11:24 brrt i have more evidence if you're really interested
11:26 brrt https://github.com/MoarVM/dynasm/blob/master/dasm_x86.h#L228 <- this one is also very nice
11:26 FROGGS TEttinger: can you please file a MoarVM issue?
11:27 timotimo brrt: oh come on, that's just like duff's device! :P
11:27 timotimo well, a little bit
11:27 dalek MoarVM/clang-static: a0a9245 | arnsholt++ | src/core/args.c:
11:27 dalek MoarVM/clang-static: Avoid memcpy() into a NULL pointer.
11:27 dalek MoarVM/clang-static: review: https://github.com/MoarVM/MoarVM/commit/a0a9245e23
11:27 dalek MoarVM/clang-static: c37feb0 | arnsholt++ | src/strings/nfg.c:
11:27 dalek MoarVM/clang-static: Set a (previously unused) variable correctly, and use it.
11:27 arnsholt *sigh* I keep doing that >.<
11:28 dalek joined #moarvm
11:28 timotimo that's putting in fixes to problems highlighted by clang's static code analyzer?
11:28 timotimo that branch*
11:28 arnsholt jnthn: I've pushed some commits to the clang-static branch, fixes suggested by running the MoarVM build through the clang static analyzer; is this a line of inquiry worth pursuing further?
11:28 timotimo cool
11:29 Ven joined #moarvm
11:30 TEttinger FROGGS, just that it doesn't build on 2015 because of parser stack overflow?
11:30 arnsholt There's 41 more (although 15 of those are dead stores, so not really bugs as such). I've found a couple of false positives, but the NULL-deref warnings have mostly been on point (of the ones I've been able to make sense of)
11:34 FROGGS TEttinger: aye
11:34 psch i don't get how to do the getlexstatic_o for Failure in p6typecheckrv /o\
11:35 JimmyZ we need submit a bug report to microsoflt :P
11:36 JimmyZ psch: what's the blocker?
11:36 psch https://gist.github.com/peschwa/f399cf10914f1d287a74 is the latest seemingly-sensible thing i tried, and i have no idea how to reach the return value of getlexstatic_o
11:36 psch i get a "no such method result_reg" with that
11:37 psch i've tried using getlexstatic_o as it's used in QASTOperationsMAST.nqp:1373, but that gives me "Cannot invoke this Object"
11:38 psch i suspect there's some confusion how exactly QAST and MAST and all those registers work together :s
11:39 hoelzro JimmyZ: thanks for pointing that out; that wasn't in the release guide =/
11:40 hoelzro timotimo: thanks for working on the changelog; is that ready to go?
11:41 hoelzro since no tarballs were uploaded, should I just re-create the 2015.06 tag? or should I create a 2015.06.1?
11:44 JimmyZ psch: you should not use $str_failure.result_reg;
11:44 JimmyZ and  nqp::push(@ops, MAST::Op.new( :op('getlexstatic_o'), $str_failure) ); should be nqp::push(@ops, MAST::Op.new( :op('getlexstatic_o'), $failure_o, $str_failure) );
11:45 JimmyZ methinks
11:46 JimmyZ and nqp::push(@ops, MAST::Op.new( :op('istype'), $isfailure, $decont, $str_failure.result_reg) );  change to nqp::push(@ops, MAST::Op.new( :op('istype'), $isfailure, $failure_o, $decont) );
11:46 psch ohh
11:46 psch that makes sense, the getlexstatic_o needs a return reg
12:09 hoelzro does anyone have thoughts on the tag/tarball situation?
12:10 JimmyZ hoelzro: you have the right :)
12:10 hoelzro JimmyZ: sorry?
12:11 JimmyZ I  think it is ok the re-tag, if rakudo/moar didn't upload the tar
12:11 JimmyZ *site
12:12 hoelzro ok, thanks!
12:18 jnthn Never overwrite a pushed tag!
12:18 jnthn We can ship the tarball without the changelog
12:18 jnthn And put it in the release guide so we don't forget next time
12:18 jnthn It's not a huge deal
12:20 hoelzro jnthn: alright
12:20 hoelzro good thing you stopped me =)
12:20 jnthn :)
12:20 jnthn If you want to read a foul-mouthed explanation of why I think Linus wrote one :P
12:24 TEttinger the kid with the blanket? :)
12:24 JimmyZ hmm, http://git-scm.com/docs/git-tag # have something  about re-tag
12:31 timotimo hoelzro: i'm not sure it can just go in there like that
12:32 hoelzro timotimo: jnthn, JimmyZ, and I just talked about this; jnthn says it's ok to ship sans Changelog
12:32 hoelzro but I'll be adding it to the release guide as punishment =)
12:32 timotimo :)
12:37 brrt (flying is horrible :-()
12:41 jnthn brrt: Pretty much...
12:47 brrt the only advantage is that it's fast
13:03 timotimo but at least you're secure from all the terrorists now that flying is so secure!
13:04 timotimo jnthn: i'm idly wondering what the state of escape analysis is
13:04 timotimo i remember there was the beginning of markup for ops as to how they behave with regards to escaping stuff
13:04 JimmyZ I had  the branch :P
13:04 timotimo but nothing(?) that analyses BB code regarding that
13:04 brrt apparantly you are never secure from the terrorist in your pilot's head
13:05 timotimo first we'll have self-driving cars, then completely self-flying planes
13:06 JimmyZ timotimo: https://github.com/MoarVM/MoarVM/blob/alias_analysis/src/spesh/mem.c#L27
13:07 timotimo ah, that
13:07 brrt it'd be better if we just all lived in the same place to begin with
13:07 timotimo i was refering to the escape analysis jnthn and masak prototyped on a train or something :)
13:09 JimmyZ the blocker for me is that I don't know do store remove, since it is a bit different from luajit ssa
13:09 timotimo hmm, store remove
13:09 timotimo is that like "no need to set an attribute, just remember it'd be put in an attribute in some register for later when we get it out there again"?
13:09 JimmyZ and cse etc
13:10 timotimo common subexp extraction?
13:10 JimmyZ yeah
13:10 JimmyZ no
13:10 JimmyZ http://wiki.luajit.org/Optimizations#CSE:-Common-Subexpression-Elimination
13:11 brrt JimmyZ - you can only do that to a very limited degree, yet
13:11 JimmyZ and http://wiki.luajit.org/Optimizations#FWD:-Load-Forwarding,-Store-Forwarding
13:11 jnthn You need to be really careful with store/remove
13:11 jnthn Because it intersects with threading
13:12 jnthn Meaning you need global escape analysis
13:12 JimmyZ yeah. which is tricky :(
13:12 brrt that's basically a real good example of luajit style clarity
13:13 JimmyZ and I  really like http://wiki.luajit.org/Optimizations#SINK:-Allocation-Sinking-and-Store-Sinking , which is beyond my ability :(
13:14 JimmyZ I know store/remove is more tricky with threads
13:14 dalek MoarVM: c29ba9b | hoelzro++ | docs/release_guide.md:
13:14 dalek MoarVM: Update release documentation to include changelog update
13:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c29ba9bf4c
13:15 brrt JimmyZ: my suspicion is that this is possible in fast paths which allocate an object (like a boxed integer), do some operations, and discard that
13:17 brrt suppose i have a section that builds an object, sets some values, reads some values, loses the reference; that's easy enough to eliminate provided you are first able to express the loads and stores as separate operations
13:17 JimmyZ well, I think trace spesh may help it, if  I understand it correctly.
13:17 brrt i don't think trace spesh will help you do that
13:17 brrt but the SSA form will
13:18 brrt basically, in moarvm the operations are often too high-level for an analysis like that to be valid
13:18 timotimo JimmyZ: does your branch do anything to running code yet?
13:19 brrt e.g. suppose i have a sp_create,  sp_p6obind_o followed by a sp_p6ogetvc_o; the last of these may well autovivify an object
13:20 timotimo with an sp_fastcreate, it will only autoviv if the p6obind didn't bind a null
13:20 JimmyZ timotimo: not yet. I only wrote the basic code, but I don't know how to do FWD/DSE with SSA, though FWD and CSE  may be easier
13:20 JimmyZ than DSE
13:21 brrt in that case i can't safely sink the create, bind, and get, unless i know that the object that is bound is nonnull
13:22 timotimo brrt: well, you can emit a branch, or use logging
13:23 JimmyZ https://en.wikipedia.org/wiki/Global_value_numbering # better than CSE?
13:24 brrt different than CSE :-)
13:24 brrt it is my understanding that CSE should be done at a somewhat higher level, *or* a somewhat lower level, than a spesh graph
13:25 timotimo oh, huh
13:25 brrt because the spesh graph isn't going to introduce a lot of possiblities that weren't present in the MAST tree
13:25 brrt but that is mho
13:25 brrt maybe 'hunch' rather than opinion
13:27 timotimo how will turning allocations into stack allocations work btw? will we reserve a piece of space at the end of a frame to store inlined/flattened objects and add those to the frame's gc mark routine and that's it?
13:27 brrt that won't work
13:27 timotimo does it have to look more like alloca?
13:28 JimmyZ not alloca
13:28 JimmyZ otherwise you may get SEG :)
13:28 timotimo what's that?
13:29 brrt wait, i'll get back to this
13:29 JimmyZ it is more like local var, methinks
13:31 timotimo well, our local vars are still just pointers
13:31 timotimo i thought one of the great things about having escape analysis would be being able to get rid of a whole lot of Scalar objects that used to go in the nursery
13:31 JimmyZ timotimo: http://wiki.luajit.org/Allocation-Sinking-Optimization#Point-Class explains it
13:32 brrt i agree. i think the point of escape analysis and allocation sinking is the same
13:32 brrt anyway, the point is not to do stack allocation, for two reasons
13:32 brrt a): that'll never work with GC
13:33 brrt b): stack is also just memory
13:33 brrt c): moarvm is stackless (you dummy)
13:33 brrt :-P
13:33 brrt three reasons
13:33 brrt i can't count
13:33 JimmyZ the link explains how to turn objects into register
13:33 JimmyZ without allocation
13:34 brrt right
13:34 brrt it's a strenght reduction
13:34 masak jnthn: we really should get back to escape analysis. I'm kind of eager to find time for that again.
13:34 timotimo oh, you mean you "spill" an object's attributes into registers
13:35 brrt with spilling we typically refer to moving registers to memory :-)
13:35 JimmyZ brrt said allocation-free frame, is the same thing, methinks.
13:35 timotimo sorry :)
13:35 JimmyZ timotimo: yeah
13:35 brrt but yeah
13:38 brrt if you make an object, write, then read from that same object, then discard it, then you can skip all that and just keep the calculated values in registers, or local memory as needed
13:38 brrt and in that sense, having tracing helps
13:39 brrt because objects are often used to communicate state over routine boundaries
13:39 timotimo i was expecting stack-allocated objects could also be passed to callees, though
13:39 brrt who would these callees be?
13:39 timotimo but i suppose that would cause the object to be considered escaped
13:39 timotimo and that would prevent stack-allocating the object in the first place
13:44 FROGGS btw, if someone tried to port moarvm to Hurd, (s)he would have to take parts of the aix codepath, and port the pollset stuff to poll
14:10 JimmyZ_ joined #moarvm
14:11 JimmyZ_ brrt: so tracing is the blocker, if it helps????
14:16 lizmat joined #moarvm
14:19 brrt joined #moarvm
14:19 brrt respectfully, i disagree
14:19 brrt they are separate optimizations
14:19 brrt tracing removes routine boundaries
14:20 brrt allocation sinking removes memory traffic / copying
14:20 brrt the latter works better if the former is implemented
14:20 brrt but they are conceptually quite different
14:20 JimmyZ_ right
14:21 brrt also, timo, again we're stackless :-)
14:21 brrt if you'd
14:21 brrt 'allocate' an object in mvm register space
14:21 brrt you'd run into all sorts of problem, because nobody expects a header, object body, etc
14:23 brrt and if you'd allocate an object on the 'C' stack, you'd run into all sorts of problems, least of all cleanup
14:47 timotimo well, yeah, but we have MVMFrames
14:47 timotimo and they could in theory have flattened STables for objects at their end or something like that
14:47 timotimo like P6Opaque does
14:48 timotimo i dunn
14:48 timotimo i dunno*
14:52 brrt hmm
15:00 brrt joined #moarvm
15:07 jnthn You could allocate on the end of the ->work area provided the GC had a map of what's there
15:11 timotimo that's what i'd've put the STables in there for
15:11 timotimo at least the REPR and REPR_data needs to be there
15:20 jnthn Hm, actually yeah, you just need to know the end, since everything knows its size
15:23 timotimo my thought as well
15:23 timotimo then you can just compare against the "beginning" of the last+1th element
15:23 timotimo no need even to keep a dedicated counter variable around
15:24 FROGGS joined #moarvm
15:25 brrt ok, even supposing you did that, what would the benefit be
15:25 jnthn brrt: Object dies when the frame dies, making no work for the GC
15:26 brrt if the object dies when the frame dies, it needn't exist at all
15:26 brrt if you can prove the object does not escape, you can simply map the attributes to the frame
15:27 brrt i suppose you can argue you allocated the object on the frame, but i'm not sure i agree
15:27 jnthn That's a separate and not always possible optimization.
15:27 jnthn Not all representations are objects with attributes
15:28 brrt moreover, if you do create a real object on the frame, you'd better be really sure it's never ever pushed as a (temporary) gc root
15:28 jnthn It's not a problem.
15:29 brrt hmm... i'm not sure i can easily imagine a reason
15:29 jnthn Well, it needn't be a problem.
15:29 brrt why not
15:29 brrt you'd have to mark them unmovable, at the very least
15:29 Ven joined #moarvm
15:29 jnthn You could easily flag such an object as frame-owned
15:29 brrt yes, well, that would help
15:29 jnthn Much like we have to flag gen2 things.
15:30 brrt right
15:31 brrt i suppose that would work for dynamically-sized stuff
15:31 brrt like bigints and strings
15:32 jnthn bbiab
15:32 brrt that you can't map onto attributes
15:33 brrt see you (i'll be having dinner soon enough anyway)
15:34 timotimo oh, you mean we could also instead of mallocing + freeing string body data at that place
15:51 brrt i'm not sure what i mean :-)
15:53 timotimo well, bigints and strings are only "dynamically-sized" in that they have a pointer to a region of memory that can be any size
15:55 brrt yes. however, if you want that data to disappear after leaving the frame, you either have to add a frame cleanup function, or allocate it to the end of the work space
15:59 brrt and that then means you can't have more than one such structure
16:11 * brrt afk
17:34 timotimo in theory you can already know in advance what you're going to be allocating "in the work area"
17:34 timotimo except if it's in a loop. hmm.
17:45 arnsholt timotimo: BTW, running MoarVM through the static analyzer is ridiculously easy. Just `scan-build make` and then `scan-view $file` to check out the log
18:03 timotimo cool
18:05 timotimo huh, apparently we try to free functions sometimes?
18:06 timotimo i probably better get your branch with fixes before i look into any of the warnings :)
18:09 timotimo oh, i think it reached interp.c
18:09 timotimo clang isn't very good at that huge switch statement, i believe :)
18:20 kjs_ joined #moarvm
18:40 kjs_ joined #moarvm
19:02 brrt joined #moarvm
19:02 jnthn Tomorrow and most days next week are for Perl 6 :)
19:02 jnthn And Moar :)
19:05 hoelzro \o/
19:05 vendethiel joined #moarvm
19:05 nwc10 you're safely back home?
19:08 vendethiel- joined #moarvm
19:10 jnthn nwc10: For some definition ;)
19:10 jnthn I'm at my Sweden home for the last week.
19:10 timotimo clang doesn't know ALIGNOF can't return 0
19:10 jnthn So, it'll be a week of packing and hacking... :)
19:10 nwc10 I was about to ask, the old beer fridge? Or the new one?
19:21 brrt why wouldn't alignof be able to return 0
19:21 brrt for chars it would, or am i missing something?
19:22 brrt oh, no, i am
19:22 brrt it would return 1
19:22 brrt for a char
19:29 kjs_ joined #moarvm
19:51 brrt joined #moarvm
20:07 brrt i think i'd start to bore you with tales of dynasm the interesting codebase
20:08 jnthn :)
20:08 jnthn "May you live in interesting times" :)
20:09 brrt right. i was under the impression that this was a curse of sorts :-)
20:09 brrt not sure how i got that
20:14 jnthn ;)
20:29 japhb brrt: From the dynasm code links you posted earlier, I'd say that's a sure sign of someone who is "seeing through the code" to the output assembly underneath.  His C style feels like someone who really, truly is writing "portable assembly".
20:30 brrt yes, i agree completely
20:32 brrt comments, where they exist, are pretty good though
20:33 brrt also, mind that large parts of luajit are in fact written in assembly
20:34 brrt so it is probably indeed the way the author thinks
20:38 brrt there is an mrm variable that i cannot, for the life of me, figure out what it means
20:39 brrt maybe it's something to do with modrm byte
20:39 brrt http://wiki.osdev.org/X86-64_Instruction_Encoding#ModR.2FM_and_SIB_bytes
20:39 brrt aha...
20:54 kjs_ joined #moarvm
20:59 jnthn Time for some rest
20:59 jnthn brrt: Good luck ;)
20:59 * jnthn back tomorrow
20:59 brrt thanks :-) sleep well
21:01 timotimo gnite jnthn!
21:05 brrt offtopic: how on earth is a person to buy a decent stereo set these days
21:05 brrt (mine is breaking due to software issues, as near as i can tell)
21:42 timotimo a ... stereo set? breaking due to software issues?
21:44 timotimo hm. could ALIGNOF(void *) be 0?
21:56 timotimo something must make clang think ALIGNOF(void *) is returning 0
21:56 timotimo and it's a constant expression
22:01 timotimo clang's report viewer doesn't handle our MVMROOT macro terribly well %)
22:02 brrt hmmm
22:02 brrt that'd be weird, though
22:02 brrt i couldn't see why a void* wouldn't follow the alignment rules of any other pointer type
22:03 brrt (and yes. it is weird, but nothing ever happened to hardware, yet playback can often only be restored by a power reset)
22:04 timotimo o_O
22:04 brrt right :-)
22:04 brrt but i'm sleeping now
22:04 brrt good night
22:09 xiaomiao joined #moarvm
22:09 kjs_ joined #moarvm
22:29 timotimo FWIW, i think arnsholt's branch clang-static can be merged as-is
22:51 sivoais joined #moarvm
22:56 kjs_ joined #moarvm
23:06 moritz joined #moarvm

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary