Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2015-03-14

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

All times shown according to UTC.

Time Nick Message
00:57 kjs_ joined #moarvm
02:37 harrow joined #moarvm
06:49 avuserow joined #moarvm
08:14 kjs_ joined #moarvm
08:24 rurban joined #moarvm
08:28 FROGGS[mobile] joined #moarvm
10:32 tgt joined #moarvm
11:23 kjs_ joined #moarvm
11:30 jnthn So what trains are we all on tomorrow?
11:30 jnthn uh, ww
11:34 lizmat .oO( full fart! )
12:35 zakharyas joined #moarvm
12:41 FROGGS joined #moarvm
12:43 camelia joined #moarvm
13:02 FROGGS[mobile] joined #moarvm
14:23 zakharyas joined #moarvm
16:28 FROGGS jnthn: +1 to merge https://github.com/MoarVM/MoarVM/pull/184 after I tested it?
16:28 jnthn I don't like "myeof" :S
16:28 FROGGS yeah
16:29 jnthn Doesn't whine on my any of the compilers I've used about this...
16:29 FROGGS but I also know that I was unable to use the name eof on QNX either
16:29 jnthn Maybe we should underscore it... :)
16:29 FROGGS that's what my patch did :o)
16:30 FROGGS https://gist.github.com/FROGGS/88b75ce683284babe32d
16:30 jnthn OK, and others in the PR I was happy with
16:30 timotimo feel free to beat me to fixing the local ref code gen and or tests. will not have access to a pc until late evening
16:31 FROGGS jnthn: okay, so I'll cherry pick the other and will underscore eof and tell
16:31 FROGGS others*
16:31 jnthn Thanks; FROGGS++
16:31 jnthn timotimo: I may get chance, if not today then sometime in the coming days.
16:34 FROGGS ohh, I <3 github...
16:35 FROGGS just append .diff to a commit url and you get what you expect :o)
16:42 kjs_ joined #moarvm
16:42 dalek MoarVM: 668a207 | cygx++ | src/platform/win32/mmap.c:
16:42 dalek MoarVM: int* and DWORD* are not compatible types
16:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/668a207141
16:42 dalek MoarVM: 4baefd6 | cygx++ | src/io/syncpipe.c:
16:42 dalek MoarVM: fix bogus pointer casts
16:42 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4baefd6b3a
16:53 dalek MoarVM: cea53be | cygx++ | src/io/syncfile.c:
16:53 dalek MoarVM: avoid name clashes with libc functions
16:53 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/cea53be30d
16:56 FROGGS jnthn: I'll also merge https://github.com/MoarVM/MoarVM/pull/185/files
16:57 FROGGS it will be helpful for fakecutables also
16:57 dalek MoarVM: a624f2a | cygx++ | src/moar. (2 files):
16:57 dalek MoarVM: Add helper functions so embedders won't need to poke into MVMInstance
16:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/a624f2a74f
16:57 dalek MoarVM: 1fdea93 | FROGGS++ | src/moar. (2 files):
16:57 dalek MoarVM: Merge pull request #185 from cygx/embed
16:57 dalek MoarVM:
16:57 dalek MoarVM: Add helper functions so embedders won't need to poke into MVMInstance
16:57 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/1fdea93b09
18:06 jnthn FROGGS: Yes, my only qualm with that patch is that main.c really shoulda been updated to use those functions too
18:07 jnthn FROGGS: So we don't have to maintain the same code in 2 places.
18:11 FROGGS ahh, good point
18:11 FROGGS I hopefully wont forget to do that
18:13 jnthn mebbe I'll do it
18:13 jnthn but dinner first :)
18:23 cygx joined #moarvm
18:24 cygx hi
18:24 cygx thank for applying the pr
18:24 cygx but by doing so, you broke the code as MinGW also comes with a declaration _CRTIMP int __cdecl _eof(int _FileHandle)
18:27 jnthn wtf
18:27 jnthn *sigh*
18:29 jnthn Is it just a warning?
18:29 jnthn Or actually an error?
18:29 cygx an actual error at the given warning levels (prototypes don't match)
18:29 cygx to be fair, in C, names with leading underscores are reserved
18:29 * jnthn wonders why we don't hit this anywhere else
18:30 jnthn Yeah, well, I was fine with it as it was. It's a *static*. It's not even getting made visible under the name.
18:30 cygx apparently, the MinGW winapi headers are organized a bit differently than the Microsoft ones
18:30 jnthn And, apparently, the POSIX ones too :)
18:33 jnthn Guess we can go with something like mvm_eof and mvm_tell
18:34 jnthn Still irritating to have to rename stuff because of weird header organization and a bogus warning. :/
18:35 cygx on a related note, both jit and spesh need to be disabled for CORE.setting to compile on MinGW
18:39 cygx with jitting enabled, it dies in stage parse with "Internal error: zeroed target thread ID in work pass"
18:44 jnthn Hm, interesting question then being if that hides the real bug...GC is usually fairly orthogonal
18:45 jnthn I think FROGGS mentioned getting that error recently in a different context
18:46 dalek MoarVM: ce8d59e | jnthn++ | src/io/syncfile.c:
18:46 dalek MoarVM: Rename to fix the build on MinGW; cygx++.
18:46 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ce8d59e439
18:46 jnthn Hopefully that helps.
18:46 jnthn (the build issue)
18:48 FROGGS *sigh* # _tell/_eof
18:48 FROGGS cygx: I've no cygwin atm so I did not check :/
18:49 cygx FROGGS: not Cygwin - MinGW (in particular, Strawberry Perl)
18:50 cygx I've been thinking about a combined Strawberry Perl/Rakudo Star distribution
18:50 cygx the name Starberry Perl came to mind ;)
18:51 jnthn ooh :)
18:51 jnthn (to the idea...the name is...lol :))
18:51 jnthn I had to read it three times to see it didn't say Strawberry
18:52 jnthn Would the idea be to include Inline::Perl5 etc, so you can use the two together?
18:52 cygx jnthn: yes, that was the idea
18:53 kjs_ joined #moarvm
18:53 jnthn Sounds great.
18:54 jnthn cygx++
19:02 vendethiel joined #moarvm
19:20 zakharyas joined #moarvm
19:24 FROGGS it seems like I can install the blackberry IDE this time... which means that I can try again to compile for QNX
19:24 timotimo whats that?
19:26 jnthn The successor to PNX... :P
19:27 FROGGS it's UNIXoid
19:28 FROGGS timotimo: http://de.wikipedia.org/wiki/QNX
19:28 timotimo no the IDE
19:32 cygx MVM_ext_load() calls MVM_gc_root_add_permanent(), whereas the filenames in loaded_compunits get added in MVM_gc_root_add_instance_roots_to_worklist()
19:33 cygx what's the preferred way to register a hash I want to add to instance with the gc?
19:33 jnthn What's its lifetime?
19:33 cygx (said hash containing the names of modules that reside in-memory instead of on-disk)
19:34 cygx jnthn: permanent
19:34 jnthn MVM_gc_root_add_permanent is fine if the object should live as long as the instance
19:34 jnthn (Since there's no way to unregister it)
19:35 jnthn It's the ended mechanism if you're extending the VM through embedding also
19:35 jnthn s/ended/intended/
19:36 * cygx is working on fakecutables
19:37 jnthn aha :)
19:37 jnthn Are you aware of the proof-of-concept work on that at https://groups.google.com/forum/#!searchin/perl.perl6.compiler/Clark|sort:date/perl.perl6.compiler/eyX920g5pgc/nSUT1YL2grIJ ?
19:39 zakharyas joined #moarvm
19:40 cygx jnthn: no, but I basically had it working already
19:40 cygx but the approach I took (preloading the modules) ran into issues because the deserialization frame gets called before any other frame, so I'd have to sneak in some initialization
19:41 cygx I decided the more proper approach would be to just register such modules somewhere and make load_bytecode memory-aware
19:41 jnthn Sounds like you're trying to solve a different problem too, which is how to bundle something with its dependencies into a single executable.
19:42 cygx yes - just embedding the nqp.moarvm already worked
19:42 jnthn aye
19:43 jnthn And I think that's as far as the pathces I linked go
19:45 cygx anyway, I think loading modules as requested is the better approach than just loading them in an essentialy arbitrary order beforehand
19:47 jnthn Yes, indeed. More of an in memory file system appraoch I guess
19:56 timotimo i like the sound of that; and having that work for CompUnitRepo, too
19:56 FROGGS timotimo: it is called momentics, which is an eclipse with the qcc (gcc for qnx) compiler and other blackberry specific bits
19:56 timotimo ah, i see
20:23 japhb joined #moarvm
20:46 cygx so, I've got a working nqp fakecutable: https://gist.github.com/cygx/f7eb20d6c73294f72245
20:55 japhb joined #moarvm
21:02 timotimo cool! :)
21:04 timotimo so nothing is stopping you from getting rakudo to work, too?
21:09 cygx timotimo: as far as I know, it should work equally well with rakudo
21:14 timotimo great :)
21:14 * timotimo heads off to bed to get rid of the cold or whatever he got
21:14 timotimo take care! :)
21:16 cygx good night and get well
21:23 jnthn timotimo: Get well! o/
21:40 cygx pushed and example code updated: https://github.com/MoarVM/MoarVM/compare/master...cygx:fakecutable https://gist.github.com/cygx/f7eb20d6c73294f72245
22:47 dalek MoarVM/spesh-value-prop: aa0cc26 | jnthn++ | src/spesh/graph.c:
22:47 dalek MoarVM/spesh-value-prop: Factor dominance info computation out a little.
22:47 dalek MoarVM/spesh-value-prop: review: https://github.com/MoarVM/MoarVM/commit/aa0cc263b5
22:47 dalek MoarVM/spesh-value-prop: fac3c22 | jnthn++ | src/spesh/graph. (2 files):
22:47 dalek MoarVM/spesh-value-prop: Add a function for re-computing dominance info.
22:47 dalek MoarVM/spesh-value-prop: review: https://github.com/MoarVM/MoarVM/commit/fac3c223ad
22:54 dalek MoarVM/spesh-value-prop: d5baf85 | jnthn++ | src/spesh/graph. (2 files):
22:54 dalek MoarVM/spesh-value-prop: Expose graph.c's unreachable BB elimination.
22:54 dalek MoarVM/spesh-value-prop:
22:54 dalek MoarVM/spesh-value-prop: This is the first step to eliminating the duplication of this logic
22:54 dalek MoarVM/spesh-value-prop: with a very similar but incomplete version in optimize.c.
22:54 dalek MoarVM/spesh-value-prop: review: https://github.com/MoarVM/MoarVM/commit/d5baf852b4
23:10 Ven joined #moarvm
23:15 dalek MoarVM/spesh-value-prop: d515ea9 | jnthn++ | src/spesh/graph. (2 files):
23:15 dalek MoarVM/spesh-value-prop: Provide a callback on basic block elimination.
23:15 dalek MoarVM/spesh-value-prop:
23:15 dalek MoarVM/spesh-value-prop: This will be used by the optimizer to do any fixup operations needed if
23:15 dalek MoarVM/spesh-value-prop: we remove a block.
23:15 dalek MoarVM/spesh-value-prop: review: https://github.com/MoarVM/MoarVM/commit/d515ea902b
23:37 dalek MoarVM/spesh-value-prop: f1b8c16 | jnthn++ | src/spesh/graph.c:
23:37 dalek MoarVM/spesh-value-prop: Fix a couple of bugs in basic block elimination.
23:37 dalek MoarVM/spesh-value-prop:
23:37 dalek MoarVM/spesh-value-prop: We accidentally failed to eliminate some blocks we should have in one
23:37 dalek MoarVM/spesh-value-prop: case, and as efficiently as we could in another.
23:37 dalek MoarVM/spesh-value-prop: review: https://github.com/MoarVM/MoarVM/commit/f1b8c161a0
23:56 jnthn Bah, I played fast and loose with fixing the succ/pred stuff when implementing inlining.
23:56 jnthn What a succer..
23:56 jnthn eh well, tomorrow...

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