00:25
btyler joined
01:07
benabik joined
01:47
ilbot3 joined
|
|||
lue | nqp: my $a := subst("\x[10FFFB,10FFFC,10FFFD]", /\s/, "_", :global); say($a) # this appears to be the reason, except for the part where \x10FFFD is untouched in the actual code :/ | 05:39 | |
camelia | nqp-moarvm: OUTPUT«___» | ||
..nqp-jvm, nqp-parrot: OUTPUT«» | |||
lue | whoops, meant that for #perl6, though I suppose it's somewhat relevant here too :) | 05:41 | |
Those codepoints, by the way, are seen by MoarVM as belonging to the categories Co, Cn, and Zl, respectively. They should rather all be Co. | 05:46 | ||
07:00
zakharyas joined
|
|||
jnthn | lue: TimToady knows most about the Unicode lookups in Moar, so probably has the best idea how to fix it. :) | 07:02 | |
I think I mighta figured out a good way to make lexotic (return) a load cheaper while sleeping last night... | 07:10 | ||
Will have to give it a go this evening, after teaching :) | |||
07:14
brrt joined
|
|||
brrt | hi #moarvm | 07:16 | |
jnthn | o/ brrt | 07:21 | |
How's things? | |||
brrt | tired from the weekend | ||
otherwise ok :-) | |||
jnthn | :) | 07:22 | |
Had time to glance over spesh? :) | |||
brrt | glance, yes | 07:23 | |
fully-comprehend… not really, no :-) | |||
jnthn | src/spesh/graph.h is the key to it all really | ||
brrt | uhuh | ||
quick sidenote | |||
the notion of a 'buffer' (or variable-length-realloced-growing-array) leaks all over MVM | 07:24 | ||
would it be sensible to have a struct MVMBuffer { union { void * v; MVMObject * o; MVMCollectable * c; MVMString * s; } u; MVMuint32 alloc; MVMuint32 num } | 07:25 | ||
jnthn | It may | ||
Though note that different places have different growth strategies, and care differently about if the space that gets allocated is zeroed, and so on. | 07:26 | ||
brrt | true enough | ||
jnthn | It's one of those re-use/loose coupling trade-offs, and I tend to call things way more in the loose coupling direction than most folks. | 07:27 | |
brrt | sure, its fair :-) | ||
could always propose a fix and a pull request and see if it cleans things up | |||
jnthn | I could imagine there are opportunities for re-use though | ||
Sure | |||
Well, re-use within a subsystem is fine | 07:28 | ||
I work hard to keep them decoupled... | |||
ok, time to teach folks how not to screw up web dev too hard. :) | |||
bbl | |||
brrt | good luck | ||
09:07
camelia joined
09:20
lizmat joined
|
|||
jnthn | brrt: Looks like your proposal was accepted, so now hopefully we get the slots :) | 10:35 | |
brrt: But need to find a backup/second mentor, it seems. | 10:36 | ||
Anybody want to volunteer? ;) | |||
10:39
LLamaRider joined
|
|||
JimmyZ | me? | 10:43 | |
jnthn | Mebbe. | 10:51 | |
jnthn guesses it's still possible to sign up... | 10:52 | ||
brrt | …. oh really? :-o | 11:18 | |
awesome | |||
that is so much awesome :-D | 11:19 | ||
here's hoping for the slots anyway | |||
tadzik | jnthn: is that public knowledge? | 11:50 | |
moritz | jnthn: sheesh, we're not supposed to talk about that until the slots are firmly allocated and proposals are actually accepted | ||
but we do need a backup mentor, that's no secret, afaict | |||
I've asked timotimo in private message also | |||
JimmyZ: I think signing up as a mentor should still be possible | 11:51 | ||
JimmyZ | Yes | 11:54 | |
jnthn | moritz: I explicitly said "hopefully we get the slots" | 11:57 | |
moritz | jnthn: I know | 11:58 | |
jnthn | The decidedly public-facing issue of "needs a second mentor" was in the same darn sentence of the supposedly private "this looks acceptable". Not to mention "needs a second mentor" kinda implies "this looks hopeful". :/ | 11:59 | |
moritz will rest the case | 12:01 | ||
erm | 12:02 | ||
grammar is hard | |||
let's go JITting :-) | |||
nwc10 | neuralise the logs | 12:04 | |
brrt will be such hush about it | 12:05 | ||
12:06
colomon joined
|
|||
lizmat | fwiw, moritz has the technology to neuralise the perlgeek.de logs :-) | 12:06 | |
tadzik | img.4plebs.org/boards/pol/image/13...228653.jpg | 12:07 | |
nwc10 | lizmat: to quote one of my daughter's favourite phrases "I knew that already", but I guess it's not that well known to everyone here | ||
brrt | neuralise? | 12:09 | |
nwc10 | I suppose it should be an American spelling: en.wikipedia.org/wiki/Neuralyzer | 12:10 | |
moritz nukes stuff from outer orbit | |||
... but not the logs, today :-) | |||
13:01
colomon joined
13:34
avar joined
13:47
benabik joined
13:54
vendethiel joined
13:59
jnap joined
14:03
btyler joined
14:04
vendethiel joined
14:12
vendethiel joined
14:36
jnap1 joined
|
|||
timotimo | o/ | 14:48 | |
15:03
jnap joined
|
|||
brrt | hi timotimo! | 15:08 | |
timotimo | do i still need to sign up as backup mentor? | ||
if so, where do i do it? | |||
15:09
jnap joined
|
|||
brrt | i have no idea, but iirc - i was a somewhat-lousy backup mentor for parrot last year - the organisation manager must send you a link | 15:11 | |
so #soc-help on irc.perl.org should be the right address | |||
timotimo | thanks | ||
brrt | :-) no, thank you | 15:12 | |
15:39
LLamaRider joined
|
|||
jnthn | ++timotimo | 15:39 | |
16:43
benabik joined
|
|||
dalek | arVM/spesh: be7b454 | jonathan++ | src/core/callsite.c: Fix read-after-free in callsite interning. |
17:47 | |
arVM/spesh: 2560514 | jonathan++ | src/ (6 files): Change the way lexotic is handled. Make it not imply a frame reference, at the cost of a little more work at return time. Then also avoid allocating one per frame that needs it. This leads to a 10% saving on "for 1..1000000 { $i++ }" in Rakudo; we can likely also add a spesh op to make obtaining a lexotic cheaper still. |
|||
jnthn | Time for some dinner & | ||
timotimo | \o/ | 17:58 | |
that sounds lovely | |||
jnthn | Yeah, it was tasty :P | 18:58 | |
timotimo | i've got friends over and we'll make pancakes | ||
jnthn | ooh :) | ||
But I had an imperial IPA... :) | 18:59 | ||
19:04
benabik joined
|
|||
dalek | arVM/spesh: 3ddae6a | jonathan++ | src/spesh/facts.c: Fix fact propagation accidently copying usages. |
19:37 | |
19:38
brrt joined
|
|||
jnthn | ...and thus failing to kill some things. | 19:38 | |
19:44
jnap joined
|
|||
brrt | what, you're already starting on deopt? | 19:46 | |
19:48
jnap1 joined
|
|||
timotimo | we already have some deopt | 19:50 | |
brrt | wow | 19:51 | |
brrt thinks his project is getting smaller by the day | 19:52 | ||
jnthn | See src/spesh/deopt.c | ||
brrt: There's still plenty of hard problems to solve for JIT :) | |||
brrt | i think so :-) | 19:53 | |
still | |||
this is all going faster than i had expected | |||
tadzik | welcome to #moarvm. Meet jnthn | 19:54 | |
:P | 19:55 | ||
brrt | :-) | 19:58 | |
timotimo | :D | ||
brrt | ok, that looks understandable enough | 20:00 | |
20:03
bonsaikitten joined
20:05
jnthn_ joined,
cxreg2 joined
20:06
chipdude_ joined
|
|||
lue | I must be reading unicode.c wrong, because by my interpretation a property lookup on 0x10FFFB generates the index 109358 for a 43829-element array. | 20:10 | |
20:19
woolfy joined
|
|||
hoelzro | concurrency stuff in MoarVM is a WIP, right? | 20:26 | |
because I just tried using it, and it did not go well =/ | |||
jnthn | hoelzro: what did you try to do? | 20:27 | |
It does typically explode at exit. | |||
hoelzro | ah ha | 20:28 | |
ok, that's not new to you then | |||
hang on | |||
gisting | |||
jnthn: gist.github.com/hoelzro/10046325 | 20:30 | ||
timotimo | rob o/ | ||
hoelzro | ahoy timo! | ||
timotimo | yes, that's known | ||
apparently the VM tears itself down in the main thread while other threads still seem to think it should continue existing | |||
but, as you can see, it worked :) | |||
hoelzro | sort of | 20:31 | |
timotimo | oh, huh | ||
it gave two different results? %) | |||
hoelzro | the contents of $a and $b vary between executions | ||
yeah =S | |||
I'm guessing that two threads are fighting | |||
jnthn | wtf... | ||
Yeah, that should not happen. | |||
jnthn puts on his "stuff to investigate on Friday" list | 20:32 | ||
Well, or Thu evening. :) | |||
timotimo | jnthn: you'll be tuitless until then? | 20:33 | |
lizmat | jnthn: hoelzro's bug reminds me of the intermittent lock problem | 20:34 | |
t/spec/S17-concurrency/lock.t | |||
jnthn | timotimo: Not tuitless exactly, but generally when I'm teaching I just don't have the concentration to take on such things in the evening after it. | ||
lizmat | not ok 7 - Condition variable worked | ||
# got: 'ale,porter' | |||
# expected: 'ale,porter,stout' | |||
# log = ale porter stout | |||
in other words: when the check is done, the element pushed $c.wait is *not* in the array yet | 20:35 | ||
yet, if we do a diag if the check fails, it *is* in the array | |||
which to me means, that thread #1 may still be running *after* the join | 20:36 | ||
jnthn | r: class A { method m() { say nqp::iscont(%_) } }; A.m | 20:37 | |
camelia | rakudo-parrot b428e8, rakudo-jvm b428e8, rakudo-moar b428e8: OUTPUT«1» | 20:38 | |
jnthn | r: class A { method m(*%h) { say nqp::iscont(%h) } }; A.m | ||
camelia | rakudo-parrot b428e8, rakudo-jvm b428e8, rakudo-moar b428e8: OUTPUT«0» | ||
jnthn | holy s.. | ||
tadzik | :D | 20:39 | |
jnthn | That's only one pointless scalar creation every single method call... | ||
timotimo | oh! | ||
optimization opportunity \o/ | 20:40 | ||
tadzik | that's plenty of scalars... | ||
oh | 20:41 | ||
I HAVE to draw that | |||
it won't be gore this time, I promise | |||
timotimo | plenty of scalars? | ||
jnthn | WITH BLOOD. BLEEDING SCALARS. | ||
tadzik | i.imgur.com/gb5Hzwf.png | 20:44 | |
it's cute this time <# | |||
jnthn | aww :) | 20:45 | |
benabik | Can also reuse the image for alot of cash (well, USD at least) | 20:46 | |
tadzik | :D | ||
lizmat | jnthn: another error message from lock.t: | 20:53 | |
ok 7 - Condition variable worked | |||
Abort trap: 6 | |||
adding some debug code makes the test problem go away :-( | 20:55 | ||
bingo! | 20:56 | ||
# got: 'ale,porter' | |||
# expected: 'ale,porter,stout' | |||
# log = ale porter stout, now = Instant:1396904172.879234 = Instant:1396904172.872281 | |||
I've added a $now1 = now at the end of thread 1, and a $now2 = now after the join of the first thread | 20:57 | ||
the now from *within* the thread is *after* the now of after the join | |||
ok 7 - Condition variable worked | 21:07 | ||
moar(99247,0x7fff7df2e310) malloc: *** error for object 0x7f8b13d9c8c0: pointer being freed was not allocated | |||
*** set a breakpoint in malloc_error_break to debug | |||
Abort trap: 6 | |||
dalek | arVM/spesh: df0f6a4 | jonathan++ | src/spesh/args.c: Specialize empty named slurpy args. |
21:08 | |
21:09
lue joined
|
|||
lizmat | jnthn: made it into a proper text, and put the test in roast | 21:10 | |
timotimo | jnthn: should i wait for something special before running a full benchmark with rakudo + spesh? | ||
lizmat | after running this ~ 40 times, I got this bingo: | ||
not ok 7 - Condition variable worked | |||
# got: 'ale,porter' | |||
# expected: 'ale,porter,stout' | |||
# log = ale porter stout, thread was running *after* join | |||
So I think there is something definitely wrong with .join | 21:11 | ||
as in Thread.join | |||
jnthn | lizmat: whoa... | ||
odd | |||
timotimo: Just pushing something else now | |||
timotimo | oooh :3 | ||
hoelzro | also, I ran the p6docs on a recent Moar: 270 MB | 21:12 | |
way to go, Moar team! | |||
that's 1/3 of what it took only 3 months ago! | 21:13 | ||
jnthn | o.O | 21:16 | |
Wow :) | |||
timotimo | hoelzro: did you compare speed, too? | 21:21 | |
hoelzro | 15 minutes, at the moment | ||
which is slower | |||
but I don't know if more files have been added | |||
I'll check that | |||
timotimo | oh, hmm | 21:24 | |
21:51
brrt left
22:11
colomon joined
|
|||
jnthn | timotimo: OK, I'm gonna sleep now, so you can benchmark ;) | 22:15 | |
timotimo | ok | 22:16 | |
i already benchmarked, but i'll do it again with the newest commit | |||
jnthn | timotimo: ooh, got the graphs from the one you did? | 22:17 | |
22:44
jnap joined
22:49
harrow joined
22:54
timo` joined
23:51
timo joined
|