Camelia, the Perl 6 bug

IRC log for #moarvm, 2013-08-18

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

All times shown according to UTC.

Time Nick Message
00:00 diakopter pretty close to all
00:00 Ben_Goldberg As a rough %
00:00 diakopter more than 95% for sure
00:00 diakopter and the remaining ones are relatively small
00:00 Ben_Goldberg Cool :)
00:05 diakopter Ben_Goldberg: are you thinking of undertaking a port?
00:06 Ben_Goldberg I wish I had enough time and skill for that...
00:06 Ben_Goldberg I was just curious about what would be needed for someone who was planning on porting
00:08 JimmyZ Good morning
00:11 diakopter JimmyZ: hi :)
00:12 JimmyZ hi
00:15 JimmyZ how cc is going :P
01:36 FROGGS_ joined #moarvm
03:01 colomon joined #moarvm
04:15 dalek MoarVM/libuv1: 5d2fce9 | jimmy++ | src/ (7 files):
04:15 dalek MoarVM/libuv1: re-implemented MVM_dir_open/MVM_dir_read function, only for windows now
04:15 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/5d2fce9e1a
04:27 grondilu joined #moarvm
06:05 dalek MoarVM/libuv1: 7383cf8 | jimmy++ | / (7 files):
06:05 dalek MoarVM/libuv1: fixed bugs, passed t\moar\dirs.t again on windows
06:05 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/7383cf85ee
06:05 dalek MoarVM/mmap: 984b7c6 | jnthn++ | nqp-cc/src/ops/mvmcc.ops:
06:05 dalek MoarVM/mmap: Make sure we get null-terminated filename.
06:05 dalek MoarVM/mmap: review: https://github.com/MoarVM/MoarVM/commit/984b7c6ae1
06:06 dalek MoarVM/configure: 5cdf3b1 | jnthn++ | nqp-cc/src/ops/mvmcc.ops:
06:06 dalek MoarVM/configure: Make sure we get null-terminated filename.
06:06 dalek MoarVM/configure: review: https://github.com/MoarVM/MoarVM/commit/5cdf3b19d1
06:14 dalek MoarVM/libuv1: 32225e4 | jimmy++ | src/io/ (2 files):
06:14 dalek MoarVM/libuv1: improved error message output for file ops and directory ops
06:14 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/32225e496d
06:19 dalek MoarVM/libuv1: 6c9d5f3 | jimmy++ | src/io/dirops.c:
06:19 dalek MoarVM/libuv1: removed needless codes in MVM_dir_open
06:19 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/6c9d5f3b29
06:41 dalek MoarVM/configure: 4c7c21b | (Gerhard R)++ | / (2 files):
06:41 dalek MoarVM/configure: put feature detection into build/auto.pm
06:41 dalek MoarVM/configure: review: https://github.com/MoarVM/MoarVM/commit/4c7c21b898
06:56 lizmat joined #moarvm
07:16 dalek MoarVM/libuv1: fd981c9 | jimmy++ | src/ (3 files):
07:16 dalek MoarVM/libuv1: added a posix version for MVM_dir_open/MVM_dir_read/MVM_dir_close
07:16 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/fd981c92f6
07:17 JimmyZ yeah, left part is only socket
07:32 JimmyZ not_gerd: how about split win32/posix codes from src/io/ to src/platform/ ?
07:44 FROGGS_ joined #moarvm
07:45 FROGGS o/
08:07 dalek MoarVM/libuv1: a701803 | jimmy++ | src/io/dirops.c:
08:07 dalek MoarVM/libuv1: small fixes for using Windows GetFullPathNameW API
08:07 dalek MoarVM/libuv1: review: https://github.com/MoarVM/MoarVM/commit/a701803e45
08:24 dalek MoarVM/libuv5: 5d2fce9 | jimmy++ | src/ (7 files):
08:24 dalek MoarVM/libuv5: re-implemented MVM_dir_open/MVM_dir_read function, only for windows now
08:24 dalek MoarVM/libuv5: review: https://github.com/MoarVM/MoarVM/commit/5d2fce9e1a
08:24 dalek MoarVM/libuv5: 7383cf8 | jimmy++ | / (7 files):
08:24 dalek MoarVM/libuv5: fixed bugs, passed t\moar\dirs.t again on windows
08:24 dalek MoarVM/libuv5: review: https://github.com/MoarVM/MoarVM/commit/7383cf85ee
08:24 dalek MoarVM/libuv5: 32225e4 | jimmy++ | src/io/ (2 files):
08:24 dalek MoarVM/libuv5: improved error message output for file ops and directory ops
08:24 dalek MoarVM/libuv5: review: https://github.com/MoarVM/MoarVM/commit/32225e496d
08:24 dalek MoarVM/libuv5: 6c9d5f3 | jimmy++ | src/io/dirops.c:
08:24 dalek MoarVM/libuv5: removed needless codes in MVM_dir_open
08:24 dalek MoarVM/libuv5: review: https://github.com/MoarVM/MoarVM/commit/6c9d5f3b29
08:49 JimmyZ not_gerd: ping
09:19 not_gerd joined #moarvm
09:19 not_gerd JimmyZ: pong
09:20 JimmyZ not_gerd: for rand(), which one do you suggest?
09:22 JimmyZ I know PHP mt_rand is using http://www.math.sci.hiroshima-u.ac.jp/~m-m​at/MT/MT2002/CODES/MTARCOK/mt19937ar-cok.c
09:22 JimmyZ and there is a faster http://www.math.sci.hiroshima​-u.ac.jp/~m-mat/MT/SFMT/#SFMT
09:23 JimmyZ but mt19937ar-cok.c looks like much easy.
09:24 not_gerd JimmyZ: I'd go with the simpler code for now
09:24 * JimmyZ thinks so
09:25 not_gerd we can always upgrade later on, and crypto stuff needs another implementation anyway
09:26 JimmyZ so which file I'd copy genrand_int32() part to?
09:26 JimmyZ :P
09:27 JimmyZ procops.c again?
09:29 not_gerd JimmyZ: procops lives in io/
09:29 not_gerd should be in core/ or math/, I'd guess
09:32 JimmyZ I'm +1 to math
09:32 not_gerd BabsSeed: did you ever gert around to setting up a testing environment?
09:32 JimmyZ wait ask jnthn :P
09:34 JimmyZ we need [0,1] or [0,1)?
09:34 JimmyZ I think [0,1]?
09:36 not_gerd JimmyZ: I believe [0,1) is more common
09:37 JimmyZ [0,1) means not contains 1?
09:37 not_gerd JimmyZ: yes
09:38 not_gerd I just did a quick check: Javascript, Python, Perl5 both exclude the upper bound
09:38 JimmyZ thanks
09:38 not_gerd s/both/all/
09:38 JimmyZ great
09:40 JimmyZ So I'd leave sockect to others, I really don't want to touch it :P
09:40 * grondilu wonders what is the probability of rand returning exactly 0
09:42 grondilu .oO( got to be 2**(-N) where N is the number of bits in a floating point mantisse or something)
09:43 grondilu .oO( so it should really not matter if 1 is included or not )
09:44 not_gerd grondilu: if you want to map to integers, it affects the rounding mode to use
09:46 JimmyZ not_gerd: how about split win32/posix codes from src/io/ to src/platform/ ?
09:47 JimmyZ in libuv5 branch :)
09:47 not_gerd JimmyZ: probably a good idea
09:47 JimmyZ :P
09:49 JimmyZ jnthn: how about importing http://www.math.sci.hiroshima-u.ac.jp/~m-m​at/MT/MT2002/CODES/MTARCOK/mt19937ar-cok.c  to src/math ?
09:51 not_gerd needs to be changed to use the proper sized types, though
09:51 not_gerd long can be either 32 or 64 bits
09:51 not_gerd (on common architectures)
09:51 * JimmyZ is not good at it :(
09:52 jnthn What are we importing this for?
09:52 not_gerd jnthn: backing rand() with a mersenne twister
09:53 jnthn Why are the rand calls in the C standard library not good enough for us?
09:53 nwc10 ANSI only guarantees 15 bits.
09:53 jnthn nwc10: What does Perl 5 do?
09:53 nwc10 Perl 5 is likely to switch to using a drand48 (or whatever it is) from *BSD
09:54 nwc10 had been using the best C rand function available, which sucks on Win32
09:54 nwc10 MT is *probably* also reasonable
09:54 nwc10 but I don't see why Rakudo should be using C code
09:54 nwc10 this is a numeric algorithm - a JIT should love it given type annotated NQP
09:55 nwc10 so, really, my question would be - why does this need to be implemented in C?
09:55 jnthn It doesn't need to be implemented at all if we nab existing code. :)
09:56 nwc10 free as in puppies
09:56 JimmyZ mersenne twister is about 4x faster than rand(), and better
09:56 nwc10 as in, you pay the maint cost down the line
09:56 JimmyZ PHP is using it :)
09:57 jnthn I'm not sure "PHP does X" is ever an excuse for anything :P
09:57 nwc10 perl 5 rand() ends up needing state per ithread
09:57 nwc10 and MT has a lot of state
09:57 JimmyZ So I just remove MVM_proc_rand API?
09:57 jnthn JimmyZ: No, just implement it in terms of the standard C functions for now.
09:57 nwc10 so, if you're retrofitting it to Perl 5, you need something without massive state, or you need to decide that each ithread is now bigger
09:59 jnthn Right, we've tried hard to avoid static things that mutate in MoarVM. This code introduces 4 static things that mutate. That's bad.
09:59 JimmyZ jnthn: btw, left part is only libatomic_ops and socket for full switching to libuv
10:00 nwc10 the second (sort of) Perl 5 observation was "there is no single right answer" combined with "user can supply own RNG function if wanted"
10:00 jnthn JimmyZ: OK. I started on the libatomic_ops switch yesterday. diakopter++ will do a libatomic_ops upgrade that will unblock the rest.
10:01 not_gerd ny default, the mt code JimmyZ linked to keeps about ~2.5k bytes of state
10:01 not_gerd *by
10:05 JimmyZ nice
10:06 nwc10 if I understand it correctly, the Mersenne Twister by design does need that sort of amount of state
10:06 jnthn State is never nice...
10:06 nwc10 drand48() needs a heck of a lot less
10:07 nwc10 that's one of the axes in the trade off - size of state  vs  "random"ness
10:07 crab2313 joined #moarvm
10:07 jnthn It's funny how remembering more things makes you more random in the future :P
10:07 nwc10 :-)
10:07 not_gerd well, if #os-threads ~ O(#cpus), it won't be that bad
10:08 not_gerd needs some design decisions, though
10:13 jnthn Well, it's #cores really, and that number will probably continue to grow
10:14 jnthn And to put 2.5kb into perspective, if you subtract out the space allocated for the nursery and the system stack space, then the data structures we already keep per thread may be less than 2.5KB :P
10:19 not_gerd on an unrelated note, I pulled out the feature-detection out of my Configure.pl
10:19 not_gerd I don't see any more obvious improvements there
10:21 jnthn not_gerd: Works for me.
10:21 jnthn not_gerd: It's the big hash at the top I really wanted out :)
10:27 dalek MoarVM/configure: ec19510 | (Gerhard R)++ | build/setup.pm:
10:27 dalek MoarVM/configure: fix search&replace fail
10:27 dalek MoarVM/configure: review: https://github.com/MoarVM/MoarVM/commit/ec19510eb8
11:01 donaldh joined #moarvm
11:01 grondilu joined #moarvm
11:16 not_gerd bye, #moarvm
11:17 not_gerd left #moarvm
11:56 JimmyZ Is configure branch ready to merge?
12:15 colomon joined #moarvm
12:41 birdwindupbird joined #moarvm
13:47 BenGoldberg joined #moarvm
14:06 crab2313 joined #moarvm
14:12 colomon joined #moarvm
14:43 benabik joined #moarvm
14:44 colomon joined #moarvm
15:50 jnthn JimmyZ: Maybe; let's see if not_gerd is aware of any outstanding issues.
15:59 JimmyZ jnthn: ok :)
15:59 JimmyZ Good night
16:01 jnthn 'night o/
16:03 crab2313 joined #moarvm
16:03 diakopter hi
16:04 FROGGS hi diakopter
16:05 jnthn o/ diakopter
16:09 dalek MoarVM: 3fab09e | jnthn++ | nqp-cc/src/QASTRegexCompilerMAST.nqp:
16:09 dalek MoarVM: Fix :dba(...) code generation.
16:09 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/3fab09e051
16:11 FROGGS uhhh, I love to see commits from jnthn++ here :D
16:14 Guest____ joined #moarvm
16:15 dalek MoarVM: ad4275a | jnthn++ | nqp-cc/tools/build/Makefile.in:
16:15 dalek MoarVM: Add NQPP6QRegex.moarvm to build.
16:15 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ad4275ac45
16:15 jnthn diakopter: OK, that's that next piece taken care of :)
16:25 Guest1337 joined #moarvm
16:30 dalek joined #moarvm
16:31 jnthn diakopter: Good news: MoarVM seems a good bit more stable on long-running things since your changes, or perhaps other people's changes... :)
16:43 FROGGS cool
16:48 crab2313 joined #moarvm
16:50 not_gerd joined #moarvm
16:50 not_gerd o/
16:51 not_gerd jnthn: I'm not aware of any issues with the configuration system
16:51 not_gerd (the mmap stuff could need testing on osx, bsd)
17:17 dalek MoarVM: 8fc69a1 | jnthn++ | src/gc/ (4 files):
17:17 dalek MoarVM: Avoid resizing/copying if many gen2 roots.
17:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8fc69a188c
17:17 dalek MoarVM: 940c5bb | jnthn++ | src/6model/reprs/MVMCompUnit.c:
17:17 dalek MoarVM: MVMCompUnit doesn't (directly) ref MVMFrames.
17:17 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/940c5bb0ca
18:05 diakopter hi
18:06 crab2313 joined #moarvm
18:06 jnthn hi again :)
18:07 diakopter can't find how to type pgup to this android keyboard, so can't backscroll
18:08 diakopter bah; bbiab
18:18 diakopter re stable, *whew*
18:21 diakopter jnthn: yes a bunch of missing MVMROOT and MVM_ASSIGN_REF
18:21 diakopter also in that giant commit
18:21 diakopter well not a bunch. a few, at least.
18:22 jnthn Yeah, that'll need a good review later
18:22 lizmat diakopter++ for delivering code  :-)
18:22 jnthn I discovered an algorithmic problem in the gen2 roots handling
18:23 jnthn We don't currently detect the case where all the items an gen2 thing points to are also promoted, so it no longer needs to remain in the roots list.
18:23 diakopter jnthn: I meant I fixed a few I found :)
18:23 jnthn diakopter: To clarify, I meant that I think at some point I want to look over All The Code for such things. :)
18:23 diakopter jnthn: simply count down from 2 generations and reset it to 2 when it finds another one in the nursery it points to
18:24 jnthn hmm
18:24 diakopter er, record the latest gneration in which it found a nursery ref
18:24 diakopter then on a major collection if it's more than 2 prior, de root it
18:25 diakopter de-root
18:25 diakopter lizmat++ thanks :)
18:25 diakopter jnthn: I mean, it's ok to last until the next major collection, right?
18:27 diakopter that would add a word to the size of each gen2 object but that's ok
18:28 diakopter jnthn - also the gen2 roots list could be a doubly -linked list through the gen2 area
18:29 diakopter or a two-level array with one of your in-line freelists
18:29 diakopter actually yeah that's the way to do it
18:30 diakopter wait, NQPP6QRegex.nap builds !?!
18:30 diakopter wow
18:31 jnthn yes :)
18:31 jnthn I think it's easier to just do the "what just went into the worklist" trick in the process_worklist loop
18:32 jnthn Same as we do for write-barriering if we promote to gen2 and object that points to nursery
18:32 diakopter oh hm
18:32 diakopter oh, speaking of which
18:33 diakopter need to clear the frames worklist before that check at the end
18:35 diakopter hm, is compunit->body.pool used at all?
18:35 jnthn Possibly not any more...
18:36 crab2313 joined #moarvm
18:38 * diakopter blinks at p6l
18:51 diakopter jnthn: can I convert the sc_to_resolve rechanism to another level of indirection
18:51 diakopter to eliminate all the linear searches
18:51 diakopter scs_to_resolve
18:52 diakopter wait, there's already a weakhash; why not just link to those members, but have their targets null until resolved
18:53 diakopter (that is, have an entry in the hash for all sc named handles waiting for resolution)
18:54 diakopter jnthn: ^ when you get a chance
18:59 colomon joined #moarvm
19:12 jnthn How would that cause the compunit tables to get updated?
19:15 diakopter they wouldn't; they'd link through to the corresponding entries in the hash directly
19:16 diakopter seem ok?
19:21 jnthn wval resolution is relatively hot-path, which is why I kept a table of resolved SCs to quickly index into there...do you mean a named lookup in the hash or a direct reference?
19:21 diakopter direct pointer to the hash entry struct
19:22 jnthn quess that's only one extra LOI
19:22 diakopter saves a bunch of time on deserialization I'd guess
19:22 diakopter makes the weakhash entries permanent though
19:23 diakopter well, I suppose they could be GC'd actually; that'd be interesting
19:24 diakopter heh.
19:24 diakopter actually.
19:24 diakopter do SCs have only one handle each?
19:25 diakopter nm, too hard to make sure those never move
19:33 diakopter ok, I'll take that as a tentative "ok"
19:40 jnthn Saves a bunch of time?
19:41 jnthn We only do the looking up once per module we load...
19:42 jnthn The main thing is that SCs can get GC'd when all compunits that refer to them are.
19:42 jnthn So long as we end up with that, it's OK
19:42 jnthn We make sure they don't go away too early by anchoring them right away on creation to compunits that need them.
19:43 diakopter saves the time of updating the scs_to_resolve in all the compunits
19:43 jnthn The weakhash is just so compunits loaded later on can find an SC
19:43 jnthn Yes, I'd be very, very surprised if that's a measurable cost :)
19:43 diakopter oh
19:44 diakopter how many entries in that hash can a given SC have
19:44 jnthn Like, comapred to the rest of deserialization.
19:44 diakopter max 1?
19:44 jnthn Yes, it's handle -> SC.
19:45 dalek MoarVM: 5e82dad | diakopter++ | src/ (3 files):
19:45 dalek MoarVM: implement compunit repr gc_free (doh)
19:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5e82dadafa
19:51 not_gerd left #moarvm
19:53 dalek MoarVM: cb25b48 | diakopter++ | src/gc/collect.c:
19:53 dalek MoarVM: oops, this needs to be before the trick reconciliation
19:53 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cb25b481ca
20:08 dalek MoarVM: 6806716 | diakopter++ | src/gc/ (2 files):
20:08 dalek MoarVM: macro-ize that frame marking thing and add it to another place it needs to be
20:08 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/680671617b
20:18 dalek MoarVM: 2f8b49c | jnthn++ | nqp-cc/nqp-src/NQP.nqp:
20:18 dalek MoarVM: Tweak NQP.nqp to get it to mostly build.
20:18 dalek MoarVM:
20:18 dalek MoarVM: Took the JVM-based version rather than the Parrot-based one, which
20:18 dalek MoarVM: gets rid of the pir::. Tweaked the NQP::Ops bit, but still some bits
20:18 dalek MoarVM: to add back in the future. Also commented out a section missing an
20:18 dalek MoarVM: nqp:: op. And with that, we get a NQP.moarvm out.
20:18 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/2f8b49c38a
20:19 jnthn diakopter: Does that really have to be a macro when a function is probably OK?
20:20 diakopter yeah a function's fine..
20:21 diakopter jnthn: so, have you dared to run NQP.moarvm ?
20:21 jnthn While looking for './QRegex.moarvm': The system cannot find the file specified.
20:21 jnthn :)
20:22 diakopter easily fixed with a Makefile tweak..
20:22 jnthn yeah, looking into those things at the moment...
20:23 diakopter oopsie I broke it
20:23 diakopter ergh
20:23 jnthn broke...what?
20:23 jnthn ah, this cross-comp has gone wonky... :)
20:25 jnthn oh, hmmm...
20:25 dalek MoarVM: 9dd8b39 | diakopter++ | src/gc/worklist. (2 files):
20:25 dalek MoarVM: unbreak the build
20:25 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/9dd8b39fa6
20:27 diakopter I'm waiting for you guys to merge the configure refactor for me to put in my makefile refactor and dyncall building
20:28 jnthn diakopter: Feel free to give it a test on Windows and merge it if you're happy.
20:28 jnthn diakopter: It's only not merged by me 'cus I didn't do that yet.
20:28 diakopter which pull request is it anyway
20:28 jnthn It's already in the branch
20:28 jnthn *repo
20:28 jnthn configure branch
20:28 jnthn So just git merge configure, then test.
20:29 jnthn or git checkout configure, test it, git checkout master, then merge... :)
20:33 dalek MoarVM: 4af81af | (Gerhard R)++ | / (5 files):
20:33 dalek MoarVM: import new build system
20:33 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4af81af7a9
20:33 dalek MoarVM: 7a66dea | (Gerhard R)++ | build/Makefile.in:
20:33 dalek MoarVM: add missing objects ot Makefile.in
20:33 diakopter dalek: we hardly knew ye
20:34 donaldh joined #moarvm
20:34 dalek joined #moarvm
20:41 dalek MoarVM: 6813fcb | jnthn++ | nqp-cc/ (3 files):
20:41 dalek MoarVM: Start fixing up later part of NQP build a bit.
20:41 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6813fcb498
20:43 diakopter lol; oh; you're already made the sc body objects the hash members
20:44 diakopter so, simply need to pre-allocate them
20:44 diakopter jnthn: the real problem I'm trying to fix is the chain of compunits, which doesn't really work anymore since they're GC'd
20:48 jnthn diakopter: Yes, the original design before they became GC-able is if one never got it's seq number incremented, we'd know it was dead and then just rip it out of the linked list as we traversed it.
20:48 jnthn That's a pain now.
20:48 diakopter right
20:51 diakopter jnthn: can I delete the mmap branch?
20:52 jnthn diakopter: Is it merged?
20:53 diakopter I think
20:53 diakopter github UI says it's only 1 ahead, and that one ahead I thought was already merged
20:53 jnthn Check with not_gerd maybe...
20:53 jnthn I can't remember if configure included the mmap patches...
20:54 diakopter it did have a bunch of mmap stuff
20:57 dalek MoarVM: 984b7c6 | jnthn++ | nqp-cc/src/ops/mvmcc.ops:
20:57 dalek MoarVM: Make sure we get null-terminated filename.
20:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/984b7c6ae1
20:57 dalek MoarVM: 6605b1a | (Matthew Wilson)++ | /:
20:57 dalek MoarVM: Merge pull request #51 from MoarVM/mmap
20:57 dalek MoarVM:
20:57 dalek MoarVM: Make sure we get null-terminated filename.
20:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/6605b1aa5a
20:57 diakopter meh, merged it anyway
21:04 diakopter C:\Users\mwilson\src\MoarVM\nqp-cc>..\moarvm nqp.moarvm
21:04 diakopter Method operations not found in cache, and late-bound dispatch NYI in frame_name_0, <ephemeral file> in frame_name_3752, <ephemeral file>
21:05 jnthn yes, that's the latest error :)
21:05 diakopter woohoo :D
21:05 diakopter it runneth
21:05 jnthn May be a step or so further in a bit
21:05 diakopter yeah but it takes 60ms to get to that error
21:06 jnthn It basically loads everything except QAST -> MAST
21:07 diakopter parrot nqp takes 74ms to run "1"
21:08 diakopter this will be an "interesting" profile in Visual Studio :D :D :D
21:08 BenGoldberg joined #moarvm
21:08 diakopter oh, that's unoptimized
21:09 jnthn Yeah, default build is unoptimized.
21:09 jnthn It makes a fair difference.
21:09 diakopter 38ms to get that error, optimized \o/
21:11 diakopter jnthn: fyi, I'm fixing that compunit chain thing
21:12 jnthn diakopter: +1
21:24 timotimo my lord, moarvm will be *so fast*
21:24 jnthn Some day... :)
21:26 diakopter timotimo: maybe
21:27 diakopter I doubt it beats parrot nqp initially
21:31 dalek MoarVM: 4a11514 | jnthn++ | / (7 files):
21:31 dalek MoarVM: Get QAST -> MAST properly into the build.
21:31 dalek MoarVM:
21:31 dalek MoarVM: This pulls it all together into a single QASTMoar.nqp and builds the
21:31 dalek MoarVM: .pbc and then .moarvm. Added code to load it; doesn't survive being
21:31 dalek MoarVM: loaded yet, however.
21:31 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4a115145a7
21:44 dalek MoarVM: 685bc4b | diakopter++ | src/moarvm.c:
21:44 dalek MoarVM: add filename to compunit
21:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/685bc4bd2d
21:44 dalek MoarVM: 8f05914 | diakopter++ | src/core/compunit.c:
21:44 dalek MoarVM: begin fixing the compunit chain
21:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/8f05914f0c
21:44 dalek MoarVM: fd6c056 | diakopter++ | / (7 files):
21:44 dalek MoarVM: Merge branch 'master' of github.com:MoarVM/MoarVM
21:44 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/fd6c0563ad
21:45 diakopter jnthn: that might help debugging (add filename to compunit)
21:45 dalek MoarVM: 98efde5 | jnthn++ | nqp-cc/src/QASTOperationsMAST.nqp:
21:45 dalek MoarVM: Don't rely on a Parrotism.
21:45 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/98efde5ac8
21:45 jnthn diakopter: Yeah...at some point we'll want line numbers too :)
21:46 diakopter jnthn: that op idiom is copy/pasted a couple places
21:46 diakopter the one you just patched
21:47 jnthn OK
21:47 jnthn The next issue I hit is that the HLL configured hash_iter isn't yet respected; it always created BOOTIter.
21:48 diakopter I guess it should use the hll of the current compunit?
21:48 jnthn Yeah
21:49 jnthn Anyway, at least we now have an nqp.moarvm that attempts to start :)
21:49 diakopter wat.
21:54 jnthn At this rate we might make self-hosted "hello, world" on Moar before the month is out...
21:55 japhb \o/
21:56 diakopter jnthn: can I add the sc handle to the SC not yet resolved error?
21:56 FROGGS that would be awesome :o)
21:56 jnthn diakopter: yes]
21:57 jnthn Probably would help with tracking down such things :)
21:59 diakopter oh, well I'll integrate that into this larger change, so probably won't help you
22:00 jnthn Well, I don't have the problem now...
22:00 jnthn I just mean if it comes up in the future it's a better error
22:01 diakopter oh; I got that error
22:01 jnthn congrats...
22:01 * jnthn wonders how :)
22:03 diakopter C:\Users\mwilson\src\MoarVM\nqp-cc>..\moarvm nqp.moarvm
22:03 diakopter SC not yet resolved; lookup failed in frame_name_59, ModuleLoader.class in frame_name_3744, nqp.moarvm
22:04 jnthn With your local patches?
22:05 jnthn Here it's "Missing method cache; late-bound dispatch NYI"
22:08 diakopter don't have local patches really
22:09 jnthn Hmm
22:09 jnthn You re-configure'd?
22:10 * jnthn didn't re-build latest moar
22:10 jnthn lemme try that
22:10 jnthn uh
22:10 jnthn on latest Moar I get that error too :(
22:10 jnthn I guess that counts as a regression
22:11 donaldh joined #moarvm
22:11 jnthn yeah, you stopped building the compunit chain, so now resolution fails.
22:12 jnthn Reverting 8f05914f0c00b9f8bb5082ba01b6c134d6b39945 gets it back to the normal error again
22:12 diakopter oh ok :)
22:12 diakopter oops
22:13 diakopter not too far from fixed
22:13 jnthn OK. I'm done hacking Moar for today anyways :)
22:51 donaldh joined #moarvm
23:14 benabik joined #moarvm
23:26 colomon joined #moarvm
23:48 benabik Some change to mmap fails on Darwin.
23:48 benabik OS X has MAP_ANON, not MAP_ANONYMOUS
23:51 benabik Is there a better way to do it than just #if !def(ANONYMOUS) & def(ANON) #define ANONYMOUS ANON ?
23:59 diakopter benabik: remap MAP_ANONYMOUS instead?

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