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? |