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