Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-09-06

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

All times shown according to UTC.

Time Nick Message
00:00 diakopter erm. the value of this pointer is 0xbaadf00dbaadf00d
00:00 diakopter seems legit.
00:14 TimToady maybe that's what made you sick earlier
00:16 diakopter *groan*
00:41 diakopter TimToady: awesome. I fixed the gc/threads tests. :)
00:41 diakopter all's copacetic again.
00:42 diakopter well, in --no-optimize, anyway
00:42 diakopter trying optimize
00:48 FROGGS joined #moarvm
00:50 dalek MoarVM: 6ea45bb | diakopter++ | / (2 files):
00:50 dalek MoarVM: fix remaining two tests in threads.t (in --no-optimize at least), and re-enable tests.
00:50 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6ea45bbc36
00:52 dalek MoarVM: d6c977b | diakopter++ | src/io/procops.c:
00:52 dalek MoarVM: don't return a value from a void function
00:52 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d6c977b69e
00:53 diakopter argh. doesn't fix the hang when --optimize
00:55 diakopter and can't meaningfully use the msvc de ugger when optimizer
00:55 diakopter optimized
00:57 diakopter oh wait, maybe we do have --optimize --debug
01:01 diakopter not_gerd++
01:04 FROGGS joined #moarvm
01:04 JimmyZ diakopter: ping
01:06 diakopter JimmyZ: pong
01:08 JimmyZ diakopter: nm
01:11 diakopter JimmyZ: what? :)
01:13 dalek MoarVM: 7617c5d | jimmy++ | src/io/fileops.c:
01:13 dalek MoarVM: avoids a MVMROOT
01:13 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7617c5d6e7
01:15 diakopter oic
01:30 diakopter ohhhhhhhhhhhhhhhhhhhhhhhhhh
01:30 diakopter oh yeah.
01:30 diakopter forgot that all assignments to libatomic_ops controlled variables should use the libatomic_ops assignment macros
01:31 diakopter ... in the debugger it's showing me a different value for the same memory location in different threads!
01:34 JimmyZ :P
01:35 JimmyZ so... make selftest only fails on x86, at least on windows, with mingw32 or msvc
01:36 JimmyZ works well on x64
01:38 FROGGS_ joined #moarvm
02:47 FROGGS joined #moarvm
03:21 dalek MoarVM: 5dc8527 | diakopter++ | src/ (13 files):
03:21 dalek MoarVM: full code audit of all atomics usage
03:21 dalek MoarVM:
03:21 dalek MoarVM: every load/store of every memory location accessed by
03:21 dalek MoarVM: libatomic_ops needs read/written using its macros...
03:21 dalek MoarVM:
03:21 dalek MoarVM: fixes --optimized threads.t on msvc64
03:21 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5dc8527258
03:21 diakopter JimmyZ: ^^
03:21 diakopter JimmyZ: test on 32-bit? optimized and not?
03:31 diakopter ..and .... segfault on linux
03:31 diakopter that's ok, I like segfaults.
03:33 JimmyZ I can test on 32-bit tonight
03:33 diakopter t/nqp/78-shell.t ...................... moarvm(73248) malloc: *** mmap(size=45035996273709056) failed (error code=12)
03:33 diakopter *** error: can't allocate region
03:33 diakopter *** set a breakpoint in malloc_error_break to debug
03:34 diakopter (mac64 clang, optimized)
03:34 JimmyZ diakopter: how about assign it to you? https://github.com/MoarVM/MoarVM/issues/55 :P
03:35 diakopter but I'll close it..
03:35 diakopter it really needs to stay 8bit
03:35 JimmyZ :(
03:35 diakopter there's no reason to make it 16bit
03:35 JimmyZ diakopter: #define NEXT_OP (cur_op += 2, *(MVMuint16 *)(cur_op - 2))
03:35 diakopter the compiler wouldn't compile it any differently
03:36 diakopter it would result in the exact same machine code
03:36 diakopter but make it a lot harder and more verbose casts elsewhere in the code
03:38 diakopter see, that pointer value is updated non-locally by other C routines
03:38 diakopter when they swap out which frame is running in the interpreter loop
03:38 ggoebel joined #moarvm
03:39 diakopter they're just raw memory addresses, not indexes into an array
03:39 JimmyZ diakopter: yes, I know
03:40 JimmyZ so I'd like to redefine NEXT_OP part code
03:44 diakopter of course, that segfault happened with gcc, but not with clang on linux
03:45 diakopter so I can't use address sanitizer to debug..
03:45 diakopter bah.
03:45 diakopter er, there it went.
04:05 FROGGS joined #moarvm
04:12 JimmyZ diakopter++, threads.t passed with gcc --optimize
04:13 diakopter well..
04:13 diakopter seems to fail rarely now fo rme
04:13 diakopter for me
04:18 rblackwe joined #moarvm
04:34 foo_bar_baz joined #moarvm
04:43 FROGGS joined #moarvm
04:58 diakopter JimmyZ: https://gist.github.com/diakopter/6459725
04:59 JimmyZ clang?
04:59 diakopter yup, clang-3.4
05:00 diakopter MVM_gc_gen2_transfer is entirely my creation :)
05:00 diakopter so definitely something I need to fix
05:04 FROGGS joined #moarvm
05:04 JimmyZ :)
05:05 JimmyZ I never used clang
05:06 diakopter FROGGS: ping
05:24 FROGGS joined #moarvm
05:42 dalek MoarVM: d7c705b | jimmy++ | src/core/interp.c:
05:42 dalek MoarVM: Move MVM_panic to 'default:' to help debug when op is not existed.
05:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d7c705b1c5
06:00 jnthn I see GC fixes! :)
06:00 yoleaux 5 Sep 2013 23:34Z <diakopter> jnthn: adding global destruction didn't measurably change the duration of selftest
06:00 jnthn diakopter++
06:02 diakopter yes, and more coming
06:02 jnthn < diakopter> there's no reason to make it 16bit
06:02 JimmyZ diakopter:
06:02 JimmyZ not ok 6 - Multiple allocating threads work (large heap usage)
06:02 JimmyZ ok 6 - Multiple allocating threads work (large heap usage)
06:03 diakopter JimmyZ: yes........ as I said I'm fixing that
06:03 JimmyZ diakopter: not stable :P
06:03 diakopter as I said..
06:03 JimmyZ oh
06:03 jnthn Agree with diakopter on that one.
06:03 JimmyZ which one?
06:03 JimmyZ uint8?
06:03 jnthn The thing i just pasted :)
06:04 jnthn Yes. There's no benefit to change it that I can see.
06:04 jnthn It'd involve changes in a bunch of other places to.
06:04 jnthn *too
06:04 JimmyZ yes, I see problems with string heaps when change to uint16
06:04 jnthn And the cur_op++ would compile into += 2 anyways... :)
06:04 diakopter as I said :P
06:04 jnthn Right :)
06:05 JimmyZ so I just pushed a beter cur_op +=2
06:05 diakopter better how :P
06:05 diakopter faster man_or_boy? :)
06:06 JimmyZ not much, only reduced an instruction from op dispatch
06:08 dalek MoarVM: 9d05749 | jimmy++ | src/gc/orchestrate.c:
06:08 dalek MoarVM: reduced a MVM_load
06:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9d05749278
06:09 diakopter JimmyZ: oops, missed one.. line 350
06:09 diakopter can you fix?
06:10 diakopter whew, missed only that one
06:10 JimmyZ diakopter: how? changed to MVM_load(xxxx) or threads var?
06:11 diakopter MVM_load(&  because it has to re-grab it to CAS it
06:12 diakopter also you could change the trycas to a cas, and store the result from that
06:14 JimmyZ diakopter:
06:14 JimmyZ https://gist.github.com/zhuomingliang/6460150
06:14 diakopter watching this now.. http://www.youtube.com/watch?v=oK-TjPScIEw
06:15 JimmyZ diakopter: Does this miss too?
06:15 diakopter all those are fine
06:15 FROGGS joined #moarvm
06:15 diakopter well except line 8
06:19 jnthn diakopter: oh phew, not the Jii advert :P
06:19 jnthn commute &
06:19 diakopter this is TimToady's band-mate
06:20 JimmyZ diakopter: I think I don't know how to fix it :(
06:20 diakopter ok I'll do it :)
06:40 FROGGS[mobile] joined #moarvm
06:48 FROGGS joined #moarvm
07:42 jlaire left #moarvm
08:22 FROGGS joined #moarvm
08:27 dalek MoarVM: 21032d7 | diakopter++ | src/gc/orchestrate.c:
08:27 dalek MoarVM: save another load..
08:27 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/21032d7684
08:33 lizmat_ joined #moarvm
08:55 donaldh joined #moarvm
09:51 cognominal joined #moarvm
10:07 jnap joined #moarvm
11:21 benabik joined #moarvm
12:25 FROGGS joined #moarvm
12:30 benabik joined #moarvm
12:35 hoelzro left #moarvm
12:53 jnap joined #moarvm
13:54 ggoebel how goes the roadmap to self-hosting? what milestones are left?
13:57 jnthn Fix the handful of tests make selftest fails
13:57 jnthn :)
13:59 odc is there a formal roadmap or todo file somewhere?
14:00 * diakopter says 'hi' to odc
14:00 diakopter no..
14:00 diakopter there are a few todos listed on github
14:00 diakopter a bunch more todos in the sourc marked TODO
14:00 diakopter github issues
14:00 odc hmm right
14:00 diakopter but those aren't necessarily on the critical path
14:01 cognominal__ joined #moarvm
14:01 diakopter to self-hosting
14:02 odc oh well, i still need to understand how this thing works first ;)
14:02 diakopter jnthn: seen this? http://www.jooq.org/
14:02 diakopter masak: u2
14:03 diakopter odc: are you interested in contributing?
14:04 * diakopter whois's you
14:05 odc diakopter, well, i'm very impatient about this project, but i don't have much time to help. I could send a few patches though, when there is an easy task.
14:05 diakopter odc: there's still a lot of stuff that doesn't seem to do anything; it'll make a lot more sense once nqp is bootstrapped
14:05 diakopter *smile* impatient? excited I guess you mean :P
14:06 odc yeah, it would help to have a document explaining how it works globally
14:06 diakopter I'm curious what interests you about it? just potential to run perl6?
14:06 odc yeah. and not having to run a huge vm like parrot
14:07 timotimo or the jvm :)
14:07 jnthn diakopter: You gotta be jooqing...
14:07 odc heh
14:08 diakopter lolz
14:08 jnthn decom &
14:09 odc by the way, how come you guys can work on this full time?
14:09 timotimo they are?
14:09 diakopter I think all of us have full-time employment elsewhere
14:10 diakopter so, to answer your question, "we can't" :D
14:10 odc hm, i see, you're just full time on irc
14:11 timotimo irc doesn't take any production away. in between lines, there's always a tiny shred of time to go onto irc :P
14:11 diakopter jnthn somehow has the ability to output 80-100 extremely productive hours/week of design/coding/consulting/analysis/planni​ng/community/travel/engagements/teaching
14:12 diakopter well personally I've been active on irc a lot lately b/c I've been home sick from work
14:12 odc timotimo, well said :D
14:12 diakopter timotimo: "lines"?
14:12 diakopter of... coke??!
14:13 diakopter oh, code.
14:13 diakopter well I don't even code for a living, really
14:14 diakopter odc: what interests you about perl6? have you been involved in the community the last 13 years? (for all I know you contributed heavily for many years; my memory is terrible)
14:14 diakopter what do you want to use perl6 for
14:15 odc just for my daily job
14:15 odc which is mostly mojolicious coding
14:15 odc these days
14:16 odc one thing i'd like to try in perl6 : serving one request per thread, like in Go
14:16 odc it could make things easier for me
14:18 timotimo i'll be interested to know how long it'll take after rakudo gets compiled on moarvm until threading is as ossum as on jvm right now
14:19 odc i though moarvm was supposed to be good at threading from the start?!
14:19 JimmyZ depends on how much money
14:19 diakopter heh.
14:19 odc -_-
14:19 tadzik :D
14:20 diakopter odc: well there's "good at threading" meaning actually has shared-memory threads (unlike parrot, perl5, python, javascript)
14:20 JimmyZ money saves time
14:21 diakopter and then there's "awesome" at threading meaning supporting all the fancy stuff like threadpools and event queues like jvm
14:21 FROGGS joined #moarvm
14:22 diakopter timotimo: to be fair, rakudo's collection objects aren't actually threadsafe on jvm yet
14:23 JimmyZ we have event queues, in the libuv , just didn't call it,  want contribute ?
14:23 diakopter (nor are NQP's)
14:23 diakopter JimmyZ: -_-
14:23 JimmyZ :P
14:24 diakopter yes, I plan on porting Java's Disruptor pattern/library to C/libuv/moarvm for inter-thread messaging and events
14:24 JimmyZ how about actor?
14:24 diakopter that's a simple matter of programming
14:25 diakopter actors can be abstracted at several different layers once you have shared memory threads
14:25 diakopter it just depends on what kind of language support you want
14:25 JimmyZ e
14:25 diakopter (do you want actors to support coroutines like Perl6's gather/take)
14:25 JimmyZ oh, libuv has a threadpools too
14:25 * JimmyZ is not sure
14:26 diakopter yes, but there are many millions of lines of java code that make java threadpools incredibly flexible
14:26 JimmyZ I'd like to see compile core.setting in 1s firstly
14:26 diakopter ha.
14:26 JimmyZ ;)
14:27 diakopter that'll be at least a year before we have a jit with a decent optimizer
14:27 JimmyZ e
14:27 JimmyZ still not sure , consider rakudo  on jvm
14:28 diakopter I have grand designs for how to optimize the optimizer
14:28 diakopter bouncing around
14:29 diakopter caching at *many* more layers than you might have expected
14:30 diakopter JimmyZ: I'll fix that gc gen2_transfer bug in 10 hours... gotta full day of work today; commute/bbl&
14:31 FROGGS timotimo: the sql-code-alignment is interesting here: http://www.jooq.org/
14:31 FROGGS not sure if it is actually more readable but it is somehow nie
14:31 FROGGS nice
14:32 diakopter FROGGS: heh, I linked that above
14:32 diakopter really afk&
14:32 FROGGS ahh, okay :o)
14:32 FROGGS timotimo: scratch that :o)
14:34 JimmyZ diakopter: greate
14:35 odc left #moarvm
14:35 odc joined #moarvm
14:36 jnap1 joined #moarvm
15:00 * jnthn back
16:05 dalek MoarVM/validation: 933b810 | (Gerhard R)++ | / (8 files):
16:05 dalek MoarVM/validation: Reimplement bytecode validation
16:05 dalek MoarVM/validation: review: https://github.com/MoarVM/MoarVM/commit/933b8105da
16:05 diakopter o_O
16:06 jnthn O_o :)
16:07 diakopter what, you didn't likek one big function with lots of variables? ;)
16:08 dalek MoarVM/validation: d79593b | (Gerhard R)++ | tools/update_ops.p6:
16:08 dalek MoarVM/validation: Fix comment fail
16:08 dalek MoarVM/validation: review: https://github.com/MoarVM/MoarVM/commit/d79593bafa
16:09 not_gerd joined #moarvm
16:09 not_gerd o/
16:09 yoleaux 5 Sep 2013 23:34Z <diakopter> not_gerd: --optimize doesn't recompile the 3rdparty stuf... should it?
16:12 not_gerd reconfiguring only leads to a recompile because it touches the config.h
16:12 not_gerd 3rdparty libs don't depend on that
16:12 not_gerd we could just make everything depend on the Makefile if so desired
16:12 not_gerd alternatively, make 'realclean' before building
16:18 * TimToady imagines a big red button in the Whitehouse with the label: Push This to Rebuild the World...(eventually)...
16:34 diakopter FROGGS: I saw that link in my CodeProject newletter; where'd you see it?
16:38 FROGGS diakopter: in the clogs :o)
16:39 diakopter which clogs
16:39 FROGGS this clogs
16:40 FROGGS you posted that link, remember?
16:41 diakopter ohh
16:41 diakopter from me.
16:41 diakopter not_gerd: I like your validation branch, and I havent even finished reading the diff :)
16:42 diakopter it's, like, factored like real software and sturff
16:42 not_gerd ;)
16:42 not_gerd I'm not quite sure if we need the complexity
16:43 not_gerd validate_block/sequence might be better hardcoded
16:43 not_gerd depends on what other interesting op sequences there are
16:47 diakopter it feels good to be working inmaster branch again
16:48 not_gerd diakopter: I can probably add something like `make reconfig ADDCONFIG="--optimize"`
16:51 benabik joined #moarvm
16:52 not_gerd \o/ 59-nqpop.t fails not only in validation, but also in master
16:52 not_gerd so there don't seem to be any regressions
16:53 diakopter not_gerd: well.. it did start failing with one of your commits the other day..
16:55 not_gerd diakopter: could also be the merge of serialize, imo
16:55 not_gerd or did someone already bisect?
16:55 diakopter seems unlikely it was serialize; I don't think I touched any in-use codepaths
16:55 jnthn not_gerd: I suspect it's a GC-related bug that isn't anything's fault, just memory layout changed.
16:57 not_gerd well, I did make thread-contexts 16 byte larger
16:57 not_gerd I don't remember touching any other structures
16:57 not_gerd (which doesn't necessarily mean anything ;))
17:27 diakopter hunh, my user thread destruction isn't always running
17:29 * diakopter reluctantly adds debug category flags to the debug logging
17:31 * nwc10 has tried to bisect that 59-nqpop.t failure
17:31 nwc10 fails with about 12 skip revisions
17:33 diakopter what's a skip revision
17:33 nwc10 git bisect can treat revisions as "skip", ie neither good nor bad
17:33 nwc10 the script I had written for git bisect run would return "skip" if it couldn't get the build to a point where it could run that test
17:33 diakopter ah.
17:34 dalek MoarVM: 467a0c6 | (Gerhard R)++ | / (2 files):
17:34 dalek MoarVM: Add reconfig make target
17:34 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/467a0c6e2e
17:34 nwc10 I am a bit surprised that it fell into tarpit of skips
17:34 nwc10 so I am building one manually now
17:34 diakopter I'm not... I frequently commit non-building stuff
17:34 FROGGS ... which is bad
17:34 diakopter well I was yelled at here for not committing more often
17:35 diakopter which do you want, more often commits or giant commits that build
17:35 not_gerd we want our cake and eat it!
17:36 not_gerd commit often in branches and merge --squash or reset and add -p
17:36 FROGGS diakopter: I WANT BOTH :P
17:38 diakopter not_gerd: okay, but for that purpose, git bisect gets more useless
17:38 diakopter "it's in this 300,000 line commit"
17:38 diakopter "thanks biset"
17:39 diakopter "thanks bisect"
17:43 not_gerd the point is that git allows you to refactor your history to your liking
17:44 not_gerd merge --squash, reset/add -p, rebase -i, ...
17:44 not_gerd pusblished history need not reproduce development history
17:44 not_gerd of course it takes additional work
17:45 not_gerd so I don't always bother myself
17:46 not_gerd the validation branch originally came with commits with the original messages 'XXX', 'YYY', 'ZZZ' ;)
17:47 diakopter interesting; I hadn't considered that possbility
17:49 * benabik uses rebase-i constantly.
17:50 * diakopter only uses git (well, only uses source control) as much as is evidenced on github
17:51 * diakopter feels like an outsider/n00b, and probably will forever
17:53 ingy https://gist.github.com/ingydotnet/6467346 ;)
17:53 benabik If you never feel out of your depth, you're never learning anything new.
17:55 diakopter .oO( I have followers...? I guess our little cult needs a name.. )
17:56 * ingy has had a debilitating headache all week. :(
17:56 ingy heya benabik
17:57 benabik o/ ingy
18:15 dalek MoarVM: cd43ee5 | (Gerhard R)++ | build/ (2 files):
18:15 dalek MoarVM: Add switch make target and update help
18:15 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cd43ee58e3
18:19 diakopter bah
18:20 dalek MoarVM: 0b053da | diakopter++ | src/gc/ (3 files):
18:20 dalek MoarVM: refactor gc debug logging.... "whee..."
18:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/0b053da180
18:22 * ingy git hub follow diakopter  # (cult of 12 disciples ;)
18:22 diakopter eh.
18:22 diakopter heh.
18:22 jnap joined #moarvm
18:55 * diakopter opens threads.c with trepidation
18:56 FROGGS nwc10: any conclusions yet?
19:01 nwc10 No. There is something strange with my bisect script
19:15 FROGGS ../moarvm nqp.moarvm -e 'role r1 { }; class c1 does r1 { }'
19:15 FROGGS Invalid string index: max 32, got 33
19:15 FROGGS at <unknown>:1  (nqp.moarvm:ENDSTMT:0)
19:15 FROGGS that might be one problem of 56-role.t
19:15 FROGGS ../moarvm nqp.moarvm -e 'role r1 { }; class c1 does r1 { };'
19:15 FROGGS Cannot locate an outer frame for the call
19:15 FROGGS at nqp-src/NQP.nqp:251  (nqp.moarvm:�gLG:137)
19:15 FROGGS there we go
19:17 jnthn Ah, I was gonna look into that one...
19:17 * jnthn grabs the latest stuff
19:17 FROGGS yeah, nobody else seems to be able to hunt that one down :o)
19:18 diakopter I'll do it; just haven't gotten there yet
19:18 diakopter would get to it today
19:22 not_gerd oO
19:22 FROGGS Oo
19:22 not_gerd clang now provides windows builds
19:22 FROGGS cool
19:22 not_gerd and VS integration
19:24 dalek MoarVM: d0b9d61 | (Tobias Leich)++ | nqp-cc/nqp-src/NQP.nqp:
19:24 dalek MoarVM: document end is like ENDSTMT
19:24 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d0b9d616f5
19:30 diakopter jnthn: I hope I didn't break anything in master :)
19:38 diakopter ..... what in the world was I thinking............... !??!
19:38 diakopter this is so janky
19:55 jnthn Argh, I go call family and now there's more commits :P
19:55 jnthn FROGGS: is  d0b9d61 nabbed from the NQP repo?
19:57 * TimToady keeps hoping one of them will fix one of the Big Five
19:58 jnthn TimToady: You only have 5 tests with failures?
19:58 TimToady 5 test files
19:59 TimToady been that way for a while now
19:59 jnthn hmm, I got 6
19:59 jnthn Is 19-file-ops.t one of your failers?
19:59 TimToady no
20:00 TimToady linux vs windows I suppose
20:00 diakopter jnthn: that one hasn't been failing for me
20:00 jnthn ok, yeah, it's probably Windows specific then.
20:00 jnthn diakopter: oh.
20:00 jnthn t\nqp\19-file-ops.t                 (Wstat: 0 Tests: 40 Failed: 2) Failed tests:  9-10
20:00 jnthn Not epic failure, just 2 tests.
20:01 diakopter all 40 ok here
20:01 TimToady the Big Five all appear to be epic
20:03 TimToady the other day the JVM actually wedged my machine, which is getting close to apocalyptic, but I couldn't reproduce it
20:12 diakopter heh apopleptic
20:13 foo_bar_baz joined #moarvm
20:17 dalek MoarVM: 2c79f1c | jnthn++ | src/6model/reprs/MVMStaticFrame.c:
20:17 dalek MoarVM: Some MVMStaticFrame.copy_to fixes.
20:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2c79f1c529
20:17 jnthn Doesn't fix anything, but less wrong...
20:20 diakopter jnthn: dest_body->static_code = NULL; /* XXX ? */
20:20 diakopter seems that should be copied..
20:20 diakopter (MVM_ASSIGN_REF)
20:20 dalek MoarVM: 56c74ad | jnthn++ | src/ (2 files):
20:20 dalek MoarVM: Fix static_code handling in freshcoderef op.
20:20 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/56c74ad4df
20:21 jnthn diakopter: Well, was a bit more than that, which is why I left it until the next patch :)
20:21 jnthn Now, lexical_names_list and instr_offsets are all we don't copy
20:22 jnthn I figure at least the latter one is handled because invoked is 0 and so we re-validate...which is probably wasteful...
20:24 diakopter I don't understand why these things need cloned
20:26 jnthn It relates to dynamic compilation and closures.
20:26 jnthn (where dyn comp is about handling BEGIN time stuff)
20:26 diakopter bleh
20:28 jnthn :)
20:28 jnthn (nqp.moarvm:1♥:137)
20:28 jnthn Where does the love come from...
20:29 * ingy sendz moar ♥
20:30 jnthn I think 56-role might just be 'cus compunitmainline returns a frame other than the mainline one...
20:32 jnthn hm, but we should see more stuff busted than that...
20:34 FROGGS jnthn: no
20:35 FROGGS jnthn: I am thinking about committing it to nqp too because a) it can't hurt and b) it works on parrot because its substr is a bit lax opposed to mvm's
20:35 jnthn FROGGS: ok
20:39 FROGGS jnthn: what lineendings does t/nqp/CREDITS have? does your git a LF -> CRLF conversion?
20:39 jnthn FROGGS: yes to the latter
20:39 FROGGS that explains the t/nqp/19 fails
20:39 jnthn FROGGS: and yes, it's in Windows format.
20:39 jnthn ah, ok
20:40 diakopter haha :)
20:41 jnthn I guess I can make the test look for 5 or 6 chars?
20:41 FROGGS jnthn: already hanging
20:41 not_gerd joined #moarvm
20:42 dalek MoarVM: 7a1daae | (Tobias Leich)++ | nqp-cc/t/nqp/19-file-ops.t:
20:42 dalek MoarVM: test file can have LF or CRLF line endings
20:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/7a1daae0b3
20:42 FROGGS changing*
20:44 not_gerd if we're talking about failing tests: nqpop.t fails for me at the allocation strings/ops.c:381
20:44 not_gerd it points to a bogus REPR
20:45 FROGGS yeah, I tried to debug it but failed
20:46 FROGGS what the... test 19 passes when running directly, but `no subtests run` when running via make selftest
20:46 diakopter I've seen that
20:49 FROGGS if I revert my patch it passes...
20:49 FROGGS what the heck? how can I have messed it up?
20:50 FROGGS and it passes when I run it via: prove -vv -e "../moarvm nqp.moarvm" t/nqp/19-file-ops.t
20:55 dalek MoarVM: c0144d7 | jnthn++ | src/6model/reprs/MVMCode.c:
20:55 dalek MoarVM: Static frames are GCable now; use MVM_ASSIGN_REF.
20:55 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/c0144d7398
20:55 dalek MoarVM: b9dc298 | jnthn++ | src/mast/driver.c:
20:55 dalek MoarVM: One more place to force gen2 allocation.
20:55 dalek MoarVM:
20:55 dalek MoarVM: Avoids risk of things moving under us.
20:55 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/b9dc298518
20:56 diakopter jnthn: that commit is wrong
20:56 diakopter MVM_ASSIGN_REF(tc, dest_body, dest_body->sf, src_body->sf)
20:56 diakopter MVM_ASSIGN_REF(tc, dest_root, dest_body->sf, src_body->sf)
20:57 jnthn How so?
20:58 diakopter ^^
20:58 jnthn oh...yeah
20:59 dalek MoarVM: e2ac32c | jnthn++ | src/6model/reprs/MVMCode.c:
20:59 dalek MoarVM: Correct body/root confusion; diakopter++.
20:59 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/e2ac32c8e3
21:01 diakopter jnthn: I'm re-working how the gc orchestration interacts with thread death... it's ... even more complex than I feared last time I muddled through it
21:02 diakopter also, the global destruction phase makes it more complex in a sense, but easier in another
21:03 diakopter anyway, I'm on the right track.
21:03 diakopter probably won't get it before you sleep though
21:05 FROGGS huh, the last commits fixed my t/nqp/19 weirdness
21:07 jnthn nice
21:07 jnthn b9dc298 could be to thank
21:08 donaldh joined #moarvm
21:14 dalek MoarVM: 3a9b957 | jnthn++ | src/core/interp.c:
21:14 dalek MoarVM: Remove bogus is_static checks.
21:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3a9b957e66
21:14 dalek MoarVM: 5241f11 | jnthn++ | src/core/frame.c:
21:14 dalek MoarVM: Fix outer location for the freshcoderef case.
21:14 dalek MoarVM:
21:14 dalek MoarVM: Gets 56-role.t through the compile; now fails after a couple of tests.
21:14 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5241f112c8
21:20 FROGGS ahh, 5241f112c8 fixes the frame name problem, jnthn++
21:20 nwc10 ok, something strange here. I can do the bisect manually.
21:20 nwc10 It says that this is the first bad commit
21:20 nwc10 cfdddb378c46a97a8bf9018ea9267718801698dd
21:20 nwc10 Wire up random number generator
21:20 nwc10 from that commit on, ../moarvm nqp.moarvm t/nqp/59-nqpop.t will SEGV
21:21 nwc10 if I have done it correctly
21:21 nwc10 but I need to go to bed
21:21 FROGGS a heisenbug probably... sleep well
21:22 jnthn 'night, nwc10
21:23 diakopter nwc10: thanks :)
21:25 donaldh joined #moarvm
21:28 diakopter not_gerd: can you look into a mostly-portable way to determine the number of cores in C
21:28 jnthn (does libuv know?)
21:28 diakopter dunno
21:29 diakopter (for all I know, there's a perfectly portable way)
21:29 not_gerd diakopter: can do
21:29 not_gerd would have to use the Google oracle, though
21:30 FROGGS maybe steal fro parrot
21:30 jnthn .oO( I thought it was the JVM that was oracle? )
21:30 FROGGS from*
21:30 not_gerd .oO( only since the sun has set )
21:30 FROGGS it is all procter&gamble, really
21:31 not_gerd http://stackoverflow.com/questions/150355/progra​mmatically-find-the-number-of-cores-on-a-machine
21:33 not_gerd assuming we want a runtime instead of a configure-time
21:33 diakopter yeah runtime I'm sure
21:33 not_gerd ...solution
21:34 not_gerd should I add some MVM_platform function for that?
21:35 diakopter please :)
21:35 diakopter "(Almost) Platform Independent function in c-code"
21:35 diakopter looks good
21:35 diakopter exept for the macosx caveat comment
21:36 diakopter actually use the windows version from that answer and the rest from the top answer
21:37 diakopter oh wait, it's the same windows version.
21:37 diakopter just mentions the headers.
21:37 not_gerd there's a comment about GetLogicalProcessorInformation() instead if you have >32 cores
21:39 diakopter anyway the gc orchestration wants it because we ideally want to run no more gc threads than cores
22:40 not_gerd good night o/
22:40 not_gerd left #moarvm
22:53 jnthn diakopter: aye, that makes sense.
22:53 * jnthn needs rest
22:53 jnthn 'night
22:54 diakopter o/
22:54 diakopter sleep weel
22:56 foo_bar_baz joined #moarvm
23:49 jnap joined #moarvm

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