Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-03-17

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

All times shown according to UTC.

Time Nick Message
03:21 bonsaikitten joined #moarvm
03:21 bonsaikitten https://bugs.gentoo.org/show_bug.cgi?id=504716 # there's an interesting licensing problem for you
03:22 bonsaikitten looks like the tarballs are technically non-redistributable and should be fixed ...
06:52 JimmyZ bonsaikitten: removing 3rdparty/dyncall/doc/watermark.sty will fix the bug?
06:52 bonsaikitten JimmyZ: it should. Apparently the license of that file does not allow redistribution without the rest of the package
06:53 JimmyZ or add watermark.dtx ?
06:54 bonsaikitten I'm not sure
06:56 retupmoca joined #moarvm
06:56 JimmyZ it said: You are allowed to distribute this file if and only if it is distributed with the corresponding source files in the `ncctools' bundle.
06:56 JimmyZ which means watermark.dtx
06:57 bonsaikitten right, so adding that one or removing the other should fix the problem
07:12 * JimmyZ sends a email to dyncall team
07:56 zakharyas joined #moarvm
09:15 colors joined #moarvm
09:47 woolfy joined #moarvm
09:53 lizmat joined #moarvm
10:29 woolfy left #moarvm
11:21 tadzik joined #moarvm
11:21 synopsebot joined #moarvm
11:22 masak joined #moarvm
11:23 Util joined #moarvm
12:05 colomon joined #moarvm
12:36 brrt joined #moarvm
12:37 brrt hi #moarvm
12:37 brrt is there any secret to running nqp on moar (aside from --bakend=moar)
12:38 brrt i get the message 'no method cache and no ^find_method' on pretty much everything i try
12:38 nwc10 I've never seen that
12:38 nwc10 but I'm not pushing stuff
12:38 nwc10 I think that jnthn is in Oslo teaching
12:38 nwc10 Not sure who else might be awake and able to anser
12:39 timotimo brrt: what does your setup so far look like?
12:39 brrt i have patience :-)
12:39 timotimo and what are your versions of moar and nqp?
12:39 brrt moar installed in ~/usr/bin/moar, nqp installed in ~/usr/lib and running the binary in ~/Code/external/nqp/nqp
12:40 brrt also, recent nqp and moarvm master
12:40 timotimo okay, can you verify that it's using the right moar binary?
12:41 brrt i have no other :-)
12:41 timotimo that's strange
12:42 timotimo i haven't seen that error message in a long time
12:42 timotimo you get it for pretty much everything you try, so even something simple like nqp-m -e 'say(1)'?
12:42 timotimo or perhaps you're trying to use the repl, which may or may not be busted?
12:42 brrt well, yeah, i was repl-ing
12:43 brrt and apparantly, the actual install does work
12:43 timotimo that may be the problem
12:43 brrt never mind, nothing to see here :-D
12:43 brrt thanks :-)
12:44 brrt is there a tutorial on nqp anywhere?
12:45 brrt google seems to think nqp == nmap
12:45 timotimo there's the slides for the RaNIW
12:45 timotimo which teaches you to make a little compiler in nqp
12:50 brrt pointer? google is failing me :-)
12:51 timotimo http://6guts.wordpress.com/2013/09/17/material-from-the-rakudo-and-nqp-internals-course/
12:54 brrt thanks
12:54 timotimo yw
13:10 cognominal joined #moarvm
13:53 colomon joined #moarvm
14:40 jnap joined #moarvm
15:03 dalek joined #moarvm
15:25 jnap1 joined #moarvm
15:49 timotimo ctrl-d on perl6-m's repl doesn't exit the program
15:50 jnthn Well, that's probably a linenoise issue
15:50 * jnthn sighs at the idiotic licensing thing.
15:50 nwc10 linenoise is $n clause BSD apart from the bit that isn't?
15:51 jnthn nwc10: No, the "dyncall included some image file in their repo with different rules to everything else in their repo"
15:51 nwc10 oh, so s/linenoise/dyncall/ ?
15:51 nwc10 but that's still, um, somewhat less than awesome
15:52 timotimo jnthn: are we going to release a perl6-m with "partial" threading support this month?
15:52 brrt can you make a hash literal in nqp?
15:52 timotimo yes, but it looks like this:
15:53 timotimo nqp::hash("key1", "value1", "key2", "value2")
15:53 * nwc10 suspects that "partial" is worse than "not quite yet" as first impressions count
15:53 nwc10 and get blogged about
15:53 brrt thanks
15:53 * japhb__ would be perfectly happy if we merged moar-conc right *after* the release.  To give it a month-ish to bake.
15:54 JimmyZ jnthn: I sent a mail to dyncall team
15:54 timotimo sounds okay
15:54 JimmyZ timotimo: you could try ctrl+c
15:54 timotimo yes, that works
15:54 * timotimo recalls someone wishing to be able to ctrl-d a program multiple times
15:54 tadzik does it introduce regressions?
15:54 tadzik (known) :)
15:55 JimmyZ timotimo: ctrl+d is alias del
15:56 JimmyZ remove char at right of cursor
15:56 timotimo oh? weird!
15:57 TimToady sounds like emacs damage
15:57 JimmyZ :)
15:57 jnthn timotimo: It depends. If on Wed I can get it feeling reasonable stable, perhaps so. If I'm not happy it'll make a sufficiently good first impression, probably not.
15:58 japhb__ TimToady: Well, "confusing emacs-like line editing with actual emacs" damage, at least.
15:58 * TimToady would like to be able to brag about it in Beijing :)
15:58 timotimo sounds totally acceptable, jnthn
15:58 jnthn TimToady: Brag about...what exactly?
15:58 timotimo mouq was nice enough to help me with helping you with tristar
15:58 jnthn And when will you be wanting to brag in BJ? :)
15:59 jnthn timotimo: oh, cool. I didn't backlog #perl6 at all yet...just back from teaching... :)
15:59 jnthn JimmyZ: OK, thanks for dropping them a mail.
15:59 timotimo mouq has most notably added a piece of code that creates -p, -j, -m variants of ufo, panda, whatever the third one was
16:01 JimmyZ good night
16:02 TimToady jnthn: the conference is on March 30
16:03 TimToady I think I get a 45 minute keynote, but not sure what kind of translation might or might not be provided
16:04 TimToady anyway, ^D when there are no chars in the buffer should surely be taken as an eof instead
16:04 timotimo it is interpreted like a <CR> instead
16:04 jnthn TimToady: ah...that gives some time
16:05 jnthn TimToady: I think we can have it by then; it's the monthly release that's more questionable.
16:05 TimToady np, I can always brag about HEAD instead :)
16:05 nwc10 I think it's better to brag about HEAD.
16:05 nwc10 It still gives a chunk of time to fix actual bugs
16:06 jnthn ;)
16:07 jnthn I've submitted a reactive programming in Perl 6 talk for a bunch of workshops, so I'll have to build something sufficienlty shiny for that at some point :)
16:10 jnthn omg, so #perl6 backlog
16:12 japhb__ jnthn: Welcome to my world.  Even on my late nights, I go to bed just about when all the eurohackers are starting to talk ... so I'm guaranteed a morning of backlog.  And if I don't read until after $dayjob ... woofta.
16:12 timotimo :D
16:16 tadzik I think it's weird that rakudo has --target=mbc, and the resulting file is .moarvm
16:17 tadzik if I'm indeed bringing up something that was brought up countless times, sorry :)
16:17 timotimo a bit, yeah
16:17 timotimo but --target=moarvm seems even weirder :)
16:17 tadzik well, I would just expect bytecode to be called .mbc
16:17 tadzik .moarvm is like .jvm or .parrot
16:17 timotimo well, yeah
16:18 tadzik .moarvm sounds like "there is a moarvm inside"
16:18 timotimo i'm looking forward to that. executable files that contain a complete moarvm with all the bytecode needed
16:19 tadzik oh yes
16:19 tadzik but then they're just regular executable files :)
16:19 jnthn Yeah, it was something of an accidental inconsistency.
16:19 tadzik like jast and jost :P
16:21 timotimo how about .moar for MoarVM Object ARchive?
16:22 tadzik :>
16:22 tadzik nice
16:22 tadzik jnthn: I have plenty of bugs for zavolaj-moarvm, here or #perl6?
16:22 timotimo oh, plenty of bugs? :(
16:22 tadzik one of them being "starship shoots from its butt", but I think I can minimize that testcase a bit...
16:22 timotimo i shoud perhaps mention that on the post?
16:22 timotimo hmm. unsigned/signed integer confusion?
16:23 tadzik possible
16:23 tadzik no, it always goes at the same angle, which is 0
16:24 jnthn tadzik: I've not actually tried it on anything except the the test suite. Sounds like we need more tests... :)
16:24 jnthn tadzik: If you can get it down to those then it's really easy for me to work on.
16:24 tadzik sounds like I can provide some :)
16:24 jnthn \o/
16:25 tadzik so: first, it looks for "sdlwrapperlib.so", instead of sdlwrapper.so
16:25 tadzik unlike parrot and jvm
16:25 tadzik second, it segfaults at the end
16:25 tadzik what was that easy way to start perl6-m on gdb?
16:26 timotimo cat =perl6-m
16:26 timotimo and gdb --args ...moar rakudo.moarvm -e 'foo'
16:27 retupmoca the sdlwrapperlib.so thing is happening on this line: https://github.com/jnthn/zavolaj/blob/master/lib/NativeCall.pm6#L119
16:27 timotimo alternatively, set up ulimit to dump core and just gdb moarvm core
16:27 retupmoca $*VM<config><dll> contains 'lib%s.so' on moarvm
16:27 tadzik 0x00007ffff45ca5e9 in ?? ()
16:27 tadzik ......grrrreat
16:27 timotimo hehe
16:28 tadzik looks like I need a debug build
16:28 timotimo should always have that
16:28 tadzik I hoped so
16:28 tadzik oh
16:28 tadzik that might be in my code, actually
16:28 timotimo i wonder if the debug build makes things any slower for the benchmarks
16:28 tadzik anyway, on the plus side, the performance brings jvm to its knees
16:28 timotimo huh?
16:28 tadzik let me provide you with numbers
16:29 timotimo it's easy to be faster if you're also wrong :)
16:29 tadzik heh
16:30 tadzik ok,it's not _that_ much faster
16:30 tadzik but it's actually insanely wrong somewhere :)
16:30 timotimo i think we should get some nativecall based benchmark for Perl6::Bench
16:30 tadzik it feels a bit like all the objects of one class had the same attribute values
16:31 timotimo hm, so CStruct may be pointing all attributes to the same piece of memory?
16:31 timotimo forgot to add an offset somewhere perhaps?
16:31 tadzik those are Perl6 objects, not C
16:31 timotimo oh, huh?
16:31 tadzik yep
16:31 tadzik which is super weird
16:32 retupmoca tadzik: there was also a segfault fix in moarvm HEAD that may not have made it to MOAR_REVISION
16:32 retupmoca dunno what you're on
16:32 tadzik ah, hard to say
16:32 tadzik I'm probably on MOAR_REVISION
16:32 timotimo ah, that'd be a mistake :)
16:32 tadzik I just asked rakudobrew to build things for me
16:32 tadzik but, but, those angles
16:33 tadzik oh oh
16:33 tadzik may be macros?
16:33 tadzik yeah, macro bug
16:34 tadzik https://github.com/tadzik/p6steroids/blob/master/test.pl#L82 when I change that to sub, everything works fine
16:34 jnthn me finally catches up with the backlog on #perl6 :)
16:34 tadzik (:
16:34 jnthn ah, moar does fail some of the macros tests
16:34 jnthn So, not a nativecall bug? :)
16:34 timotimo yes, it does :(
16:34 tadzik no, definitely not :)
16:35 jnthn phew!
16:35 tadzik the C code in asteroids is as dumb as it can be
16:35 jnthn "Macros bug results in asteroids shooting out of butt"
16:35 tadzik that's going to entertain masak
16:37 jnthn .oO( What what? )
16:37 tadzik in t.. oh you
16:39 tadzik I saw a javascript framework recently that makes writing games nice
16:39 tadzik I didn't look very far, but I looked around a bit, and only JS seems to be blessed with millions of easy frameworks
16:39 timotimo yeah
16:39 timotimo how long until we get something like that for Perl 6? ;)
16:39 tadzik and because of compilation times, the development is a PITA compared to Perl 6
16:39 tadzik so I'm going to write such thing
16:40 tadzik and I'm going to deliver a new game by sunday
16:40 timotimo yay
16:40 tadzik I got a bit inspired by http://lessmilk.com/ this guy
16:41 jnthn tadzik: How does nativecall on moar perform compared to other backends, btw?
16:41 jnthn (if you have any numbers)
16:42 tadzik jnthn: it's slightly faster than jvm, so slightly that it may be a calculation error. The "benchmark" I do is "play until I die and then see how many frames I got in how much time"
16:42 tadzik and of course it's easier to calculate 4 asteroids than 12 asteroids and 20 bullets
16:42 tadzik so it's hardly a benchmark :)
16:43 timotimo well, set a random seed and build an AI that plays for you
16:43 timotimo (no matter how dumb that AI is)
16:43 timotimo then you'll have a benchmark
16:43 jnthn tadzik: And JVM is faster/slower than on Parrot?
16:44 tadzik jnthn: much faster
16:45 tadzik jnthn: also, I didn't notice any pauses on moarvm
16:45 jnthn ooh :)
16:45 tadzik I thought that they're GC pauses, but I'm not so sure now
16:45 jnthn GC win
16:45 tadzik there is a statistic "longer frame took X"
16:45 tadzik and it's about the same on both
16:45 tadzik maybe it's just below the visibility threshold on moarvm, and just above on jvm :)
16:46 tadzik but thanks to unnoticable startup time, development on moar is very, very pleasant
16:46 japhb__ tadzik: What is your average frame rate?
16:46 tadzik japhb__: it's frame-limited to 60fps
16:47 timotimo well, parrot likely does less GCing, no?
16:47 tadzik I don't think so
16:47 timotimo because it decides to use a lot more memory for everything
16:47 timotimo hm, but that also means: longer individual pauses
16:47 tadzik japhb__: average frame is 7.6 ticks, the longest took 54
16:47 tadzik ticks are microseconds, I think
16:48 timotimo same number for more backends?
16:48 tadzik nope
16:48 tadzik sorry, milliseconds of course
16:48 jnthn timotimo: moar's nursery pauses should be very short; the gen2 one goes with heap size. I'd imagine for an asteroids game the heap is a fairly steady, non-huge size.
16:48 timotimo agreed
16:49 tadzik on jvm I just got 11.9/108
16:49 timotimo so 7.6/54 is moarvm?
16:50 tadzik yes
16:50 timotimo and parrot?
16:50 tadzik and parrot is 11.4/194
16:50 timotimo oh wow.
16:50 tadzik I'm fairly sure the first number is noise tohugh
16:50 tadzik the second is indicating something
16:50 timotimo fair enough
16:51 jnthn There'll be ways to further improve gen2 on Moar (bitmaps, card marking), but not until we've done a lot of other important things :)
16:51 tadzik but well, I played like 4 times in a row, and moarvm average doesn't go higher than 9
16:52 timotimo jnthn: how do you feel about collecting equal strings into the same instance when doing a major collection?
16:52 timotimo maybe only consolidating equal strings from the nursery rather than all of the strings in the gen2?
16:53 timotimo or maybe squishing equal strings together in minor collections so that much fewer of them even end up in the gen2?
16:54 timotimo at the same time, the CORE.setting compilation may be very abnormal and shouldn't be a target for general optimization of the VM itself
16:54 jnthn timotimo: Not to keen on that kind of opt at the moment
16:55 timotimo aye
16:55 timotimo it's just that i failed hard to build string interning for nqp's world
16:55 jnthn I did some plotting on strings improvements on the plane yesterday
17:00 * timotimo was waiting for the explanation :)
17:02 jnthn oh :)
17:03 jnthn mostly just pondering how to hash without flattening, and data structure tweaks, tidying up iteration, etc.
17:03 timotimo ah, yes
17:59 japhb__ tadzik, a histogram of frame times (grouped by int(milliseconds)) would be very interesting to see.
18:02 tadzik indeed. I think it's managable :)
18:19 timotimo got hardly any feedback on my draft, so i'll probably publish it soon
18:34 tadzik another game trivia: on moarvm, the game skips 0 frames, whereas on parrot and jvm it's 20-40 frames per game
18:34 tadzik 40/3000 is not that much, but clearly only moarvm is capable of Perfect Responsiveness :)
18:41 cognominal Perl 6 and moarvm speakers are welcome to propose presentations to fpw 2014. With all the things brewing, this should be exciting.  http://journeesperl.fr/fpw2014/  because of family illnesses, I may not be there :(
18:46 japhb__ tadzik: Indeed, pauses that cause lost frames can cause quite a bit of annoyance to the player.  (It's a form of stuttering, and it's known that 30 fps stutter-free can look better than 60 fps with occasional stutter.  But of course, 60 fps stutter-free is better than both.)
19:04 brrt joined #moarvm
19:43 lizmat joined #moarvm
20:26 woolfy joined #moarvm
20:26 tgt joined #moarvm
21:10 jnap joined #moarvm
21:59 jnap1 joined #moarvm
22:53 jnthn japhb__: Curiously, Moar's GC isn't actually incremental nor concurrent. I guess it's just efficient enough that with a reasonably sized heap it gets done fast enough. We've room to do better too.
22:53 jnthn (Before doing incremental.)
22:54 japhb__ .oO( Our GC is merely parallel.  We haven't done any *real* work on it .... )
22:55 japhb__ I'm sure there's a lot more win to be had.  Personally, I think I'll call it good when GC pauses are limited to 1-2 ms.  But that I expect will take a while.  Still, really nice to see how well it's doing already.  :-)
23:02 jnthn Sure. :)
23:03 jnthn Well, the parallel algo can be better too.
23:03 jnthn But I care about working first. :)
23:03 jnthn Better to be clever when you have good test coverage.
23:04 jnthn Also it's going to take some time to bootstrap a parallel programming in the community.
23:04 jnthn s/a //
23:08 jnthn teaching tomorrow...sleepy time &
23:25 timotimo "a parallel programming" o_O
23:25 timotimo just one?

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