|
github.com/moarvm/moarvm | IRC logs at irclog.perlgeek.de/moarvm/today Set by moderator on 3 August 2013. |
|||
|
00:12
cognominal joined
00:22
FROGGS joined
00:23
BenGoldberg joined
00:42
donaldh joined
01:49
FROGGS joined
|
|||
| dalek | arVM: 09ecf26 | diakopter++ | / (47 files): add a few more ops; make compunit and staticframe reprs |
02:23 | |
| arVM: f45dafe | diakopter++ | / (66 files): Merge branch 'master' of github.com:MoarVM/MoarVM |
|||
| arVM: 1d531d3 | diakopter++ | src/ (5 files): finish merging |
|||
| arVM: df6c1e4 | diakopter++ | src/ (3 files): small fixes |
|||
| MoarVM: 3e92deb | diakopter++ | src/core/exceptions.c: | |||
| MoarVM: more precise labels | |||
| diakopter | bah | ||
| FROGGS: ping | 02:24 | ||
| well, technically I broke the cc build | 02:25 | ||
| I guess I'll just have to fix it! | 02:29 | ||
|
02:55
colomon joined
|
|||
| diakopter | colomon: hi | 02:58 | |
| colomon | \\o | ||
| diakopter | colomon: :D | 02:59 | |
| dalek | arVM/libuv1: 47d6cd8 | jimmy++ | src/io/ (2 files): fixed bugs, passed 77-file-io.t |
03:03 | |
| arVM: d8c1a84 | diakopter++ | / (2 files): bit more debugging |
03:21 | ||
| TimToady | hmm, src/core/interp.c:2898:25: error: lvalue required as unary ā&ā operand | 04:10 | |
| diakopter | TimToady: ? | 04:23 | |
| TimToady | what happens when I try to do make in the top dir | 04:24 | |
| diakopter | after pulling just now? | ||
| diakopter goes to linux vm | |||
| TimToady | yes, up-to-date | ||
| diakopter | erm, maybe it'd help if I had a linux vm | ||
| TimToady: hunh. | 04:27 | ||
|
04:29
grondilu joined
|
|||
| dalek | arVM: f2af649 | diakopter++ | src/core/interp.c: TimToady++ bug |
04:29 | |
| diakopter | TimToady: ^ | ||
| TimToady | src/6model/reprs.o: In function `MVM_repr_initialize_registry': | 04:31 | |
| /home/larry/MoarVM/src/6model/reprs.c:252: undefined reference to `MVMStaticFrame_initialize' | |||
| /home/larry/MoarVM/src/6model/reprs.c:253: undefined reference to `MVMCompUnit_initialize' | |||
| diakopter | wha | ||
| oops | |||
| erm | 04:32 | ||
| try make clean | 04:33 | ||
| TimToady | did | ||
| diakopter | weeuhd | ||
| are you using clang | 04:34 | ||
| TimToady | no, gcc | ||
| diakopter | hm, me too | ||
| .. but those functions are right there in the .h included from reprs.h | 04:37 | ||
| TimToady | hmm, there's no MVMStaticFrame.o | 04:38 | |
| diakopter | oh you have to reconfigure | ||
| lol, should make Makefile rewrite itself using Configure if Makefile.in changes ;D | 04:39 | ||
| TimToady | would be nice if it could say so, dunno how rakueo does it | ||
| grondilu thinks the function should rather be in frame.o, not in MVMStaticFrame.o | 04:40 | ||
| TimToady | that appears to have fixed it | ||
| diakopter | the enormous refactoring at github.com/MoarVM/MoarVM/commit/09...7a14598fd7 and following remove the memory leak of "eval" by making essentially everything garbage collected | 04:41 | |
|
04:42
benabik joined
|
|||
| dalek | arVM/libuv1: fd2cb03 | jimmy++ | src/ (12 files): port all apr threads api to libuv api |
04:43 | |
| diakopter | JimmyZ: you've been doing amazing work lately; you deserve a gold star | 04:44 | |
| JimmyZ | :P | 04:45 | |
| diakopter | uv_mutex_t is a pointer? | ||
| JimmyZ | no | 04:46 | |
| diakopter | ok | ||
| JimmyZ | so it doesn't needs malloc | 04:47 | |
| diakopter | ok | ||
| JimmyZ | anyway, apr mem_pool is a bit annoying :) | ||
| diakopter | yes | 04:48 | |
| JimmyZ: can you see if master merges to libuv1? | |||
| I changed ... a lot | |||
| I wish github would tell me if master would merge cleanly to a branch | |||
| grondilu got a segmentation fault: | 04:49 | ||
| nqp nqp-moar-cc.nqp --target=mbc --setting=NQPCOREMoar --no-regex-lib --output=QASTCompilerMAST.moarvm src/QASTCompilerMAST.nqp | |||
| make: *** [QASTCompilerMAST.moarvm] Segmentation fault | |||
| diakopter | o_O | ||
| grondilu tried again and got the same seg. fault | 04:51 | ||
| diakopter | I guess I should try things on linux too after pushing from windows... | ||
| grondilu: well, at least it's repeatable | |||
| grondilu: which OS/compiler | |||
| grondilu | gcc (Debian 4.8.1-8) 4.8.1 | 04:52 | |
| Copyright (C) 2013 Free Software Foundation, Inc. | |||
| This is free software; see the source for copying conditions. There is NO | |||
| warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | |||
| oops, sorry for the long output, I ran /exec -out gcc --version | |||
| diakopter | I don't warrant my own fitness either :D | 04:53 | |
| grondilu | Linux redkey 3.10-0.towo-siduction-686 #1 SMP PREEMPT Wed Jul 3 10:05:10 UTC 2013 i686 GNU/Linux | ||
| diakopter | oh yeah, 32-bit. | 04:54 | |
| 2nd-class citizen | |||
| grondilu | :( | ||
| TimToady | make test works here in nqp-cc | ||
| diakopter | kidding.. I get the same on 64-bit | ||
| TimToady: !!!!!!!!!!! | |||
| TimToady | except for the thread.t | ||
| *threads.t | |||
| diakopter | TimToady: it compiled NQPP6QRegex.moarvm ?? | 04:55 | |
| grondilu: oh, yes, mine segfaults there too | |||
| TimToady: oh, did you reconfigure nqp-cc ? | |||
| TimToady | trying | 04:56 | |
| diakopter | grondilu: yes, I haven't figured out why that does that yet.. | ||
| but it shouldn't segfault | |||
| I'll fix that first | |||
| dalek | arVM/libuv5: 61c8396 | jimmy++ | / (53 files): Merge branch 'master' into libuv5 Conflicts: \tsrc/core/interp.c \tsrc/core/oplist \tsrc/core/ops.c \tsrc/core/ops.h \tsrc/io/fileops.c |
04:57 | |
| JimmyZ | diakopter: ^^ | ||
| diakopter | libuv5? :) | ||
| JimmyZ | based libuv1 branch, with a merge | 04:58 | |
| libuv1 is for jnthn++ :P | |||
| diakopter | right | 04:59 | |
| TimToady | kablooey | ||
| JimmyZ | diakopter: I fixed these Confilicts | ||
| diakopter | oh ok | ||
| TimToady: hint, it's in parrot ;) | |||
| TimToady | sugoi | ||
| maybe you should use JVM instead :P | 05:00 | ||
| diakopter | " | ||
| Japanese equivalent of either "awesome" or "awful". Most frequently used to mean the former, at least among westerners." | |||
| TimToady | terrific comes close if you allow the ironic meaning | 05:01 | |
| diakopter | I get all my knowledge from urbandictionary | ||
| TimToady | well, it's not even ironic in "a terrific explosion" | 05:02 | |
| dalek | arVM: 2317be7 | diakopter++ | src/mast/compiler.c: less debugging |
05:03 | |
| TimToady | 'course, rakudo/jvm doesn't even *build* right now :( | 05:04 | |
| diakopter | methinks jnthn will fix that when he awakens in a few hours | ||
| er, wakes | |||
| TimToady doesn't see anything wrong with "awakens" | |||
| "wakes" seems a bit archaic | 05:05 | ||
| grondilu | it sounds weird unless jnthn is a Godzilla | ||
| diakopter | you're thinking of akraken | ||
| grondilu | (or a zombie) | ||
| diakopter | that last commit makes it die betterly | 05:06 | |
| I don't really know how to diagnose it | 05:08 | ||
| TimToady | chop out lines until the problem disappears? | 05:10 | |
| diakopter | *whimper* | ||
| grondilu | os_version=`uname -r | sed -e 's/\\(.\\)\\.\\(.\\)[\\.-]\\(.\\).*/\\1\\2\\3/' | 05:11 | |
| ^this still does not parse my kernel | |||
| 3.10-0.towo-siduction-686 | |||
|
05:12
FROGGS joined
|
|||
| dalek | arVM/libuv1: eac6e83 | jimmy++ | src/io/fileops.c: added a few comments to MVM_file_readline_fh |
05:12 | |
| arVM/libuv1: 0e63714 | jimmy++ | src/io/procops.c: port MVM_proc_time_i/MVM_proc_time_n function to libuv api |
05:18 | ||
|
05:25
FROGGS joined
|
|||
| dalek | arVM: 0d7c224 | diakopter++ | nqp-cc/tools/build/Makefile.in: don't build the latest broken thing yet |
05:37 | |
| arVM/libuv1: 21a974f | jimmy++ | src/core/interp.c: re-implemented sleep op |
05:39 | ||
| JimmyZ | left parts: socket, opendir/readdir, mmap | 05:42 | |
| diakopter | JimmyZ++ | 05:44 | |
| JimmyZ: also a couple cas32 things | 05:45 | ||
| JimmyZ | that one just s/// | ||
| diakopter | well the fields it uses need to be 64-bit for the MVM_cas to use it | 05:46 | |
| (on 64-bit machine anyway) | |||
| JimmyZ | yeah | ||
| and I know nothing about it :P | 05:47 | ||
| diakopter: If you could help, we can merge it much faster :P | 05:49 | ||
| diakopter | JimmyZ: just change whatever field you're CAS'ing to a AO_t | 05:53 | |
| it'll always be wide enough | |||
|
05:53
FROGGS joined
|
|||
| JimmyZ | diakopter: I meant socket and mmap part :P | 05:54 | |
| diakopter | oh | 05:55 | |
| JimmyZ | socket is about 250 lines code | 05:56 | |
| FROGGS | diakopter: pong | 06:16 | |
| diakopter | FROGGS: just letting you know I put in those new ops finally | 06:22 | |
| who knows whether they work.. | |||
| FROGGS: could you import the things that test them, if any? | |||
| FROGGS | diakopter: what are 'those ops'? | 06:23 | |
| freshcoderef etc? | 06:24 | ||
| diakopter | yes | ||
| FROGGS | I can look for tests, yes | ||
|
06:25
not_gerd joined
|
|||
| not_gerd | o/ | 06:25 | |
| diakopter | not_gerd: howdy | ||
| FROGGS | hi | ||
| not_gerd | for the mmap stuff, we need someone who knows the winapi | 06:26 | |
| msdn.microsoft.com/en-us/library/aa...85%29.aspx | |||
| ^makes it sound as if you need to keep the file handle around | |||
| code.google.com/p/mman-win32/ | |||
| ^immediately closes it | |||
| would be nice if the latter could be relied upon | |||
| diakopter | can't use gpl | 06:27 | |
| JimmyZ | not_gerd: I think we can take a look at mmap api in apr | ||
| not_gerd | JimmyZ: they keep the file handle around | 06:28 | |
| diakopter: I don't plan about using mmap-win32 | |||
| JimmyZ | diakopter: repr clones need MVMROOT? I couldn't see clone which may alloc object | ||
| not_gerd | I just want to know if what they do is right | ||
| it simplifies the implementation | 06:29 | ||
| diakopter | JimmyZ: which one has MVMROOT | ||
| JimmyZ | diakopter: freshcoderef | 06:30 | |
| not_gerd: so you want whether mmap on windows that close the file handle works well or not? | 06:31 | ||
| diakopter | JimmyZ: I think p6opaque copy_to can allocate...? | ||
| JimmyZ | diakopter: I can't see the it, though jnthn++ said clone may alloc object | 06:32 | |
| not_gerd | JimmyZ: yes | ||
| assuming mmap-win32 is used in practice, it should | 06:33 | ||
| however, this use is not documented | 06:34 | ||
| JimmyZ | not_gerd: I thought you said must keep the filehanle to avoid leaks | ||
| not_gerd | JimmyZ: not closing the filehandle will produce a leak | ||
| JimmyZ | not_gerd: msdn sometimes is wrong | ||
| not_gerd | mmap-win32 closes it directly after creating the mapping | ||
| so we don't leak an open handle | 06:35 | ||
| just use mappings for a handle that's already been closed | |||
| JimmyZ | yeah, I want to close it :P | ||
| FROGGS | diakopter: you forgot to add getstaticcode to QASTOperationsMAST.nqp | 06:36 | |
| diakopter | oops | 06:37 | |
| FROGGS | diakopter: you are going to add it, or should I? | 06:38 | |
| dalek | arVM: 0d93e27 | diakopter++ | nqp-cc/src/QASTOperationsMAST.nqp: FROGGS++ missing op mapping |
06:42 | |
| diakopter | <- wins | ||
| JimmyZ | not_gerd: msdn said: These calls to CloseHandle succeed even when there are file views that are still open. However, leaving file views mapped causes memory leaks. | ||
| so it's not a issue for loading bytecode | 06:43 | ||
| not_gerd | JimmyZ: closing the filehandle without closing the fileviews leaks these views | ||
| the uestion is, are these 'leaked' views fully functional? | |||
| that's how mmap-win32 uses them | 06:44 | ||
| JimmyZ | not sure :( | ||
| diakopter | we don't care about leaking stuff loaded from disk, I'd think | ||
| only eval'd stuff | |||
| not_gerd | there are 3 options: | 06:46 | |
| 1. keep track of the filehandle like apr | |||
| dalek | arVM: 59b84b8 | (Tobias Leich)++ | nqp-cc/t/serialization/0 (3 files): added serialization tests, which segfault |
||
| not_gerd | 2. close the filehandle like mmap-win32 and use the file views anyway | ||
| 3. leak the filehandle | |||
| FROGGS | brb # breakfast | 06:47 | |
| JimmyZ | not_gerd: mman-win32 doesn't close os_handle? | 06:49 | |
| not_gerd needs to re-read the code | 06:53 | ||
| code.google.com/p/mman-win32/source...mman.c#118 | 06:58 | ||
| JimmyZ | so, according msdn, I'd like to keep the filemapping handle :) | ||
| not_gerd | I called it filehandle, but actually it's the handle of the file *mapping* | ||
| so s/filehandle/file mapping handle/ in my 1.2.3. | |||
| JimmyZ | not_gerd: it doesn't close "h" | 06:59 | |
| not_gerd | JimmyZ: correct | ||
| that's the caller's responsibility | |||
| closing h would close fildes | |||
| it closes fm and still uses map | 07:00 | ||
| JimmyZ | not_gerd: it doesn't return h :) | 07:02 | |
| not_gerd: I'd like to +1 to 1. both apr and msdn do | 07:03 | ||
| not_gerd | sure, but h is equivalent to fildes | 07:04 | |
| the caller provides fildes, so it doesn't need h | |||
| JimmyZ | I mean +1 to 1. keep track of the filehandle like apr :P | 07:05 | |
| not_gerd | looking at the moarvm code, right now we do leak the mapping handle | ||
| MVM_cu_map_from_file() only puts mmap_handle->mm intu cu | 07:06 | ||
| mmap_handle->mv is lost | 07:07 | ||
| JimmyZ | not_gerd: how about add libatomic_ops to configure? | 07:08 | |
| not_gerd | JimmyZ: it's already there | ||
| JimmyZ: it's header-only on windows | |||
| on other architectures, it shells out to its own configure | |||
| JimmyZ | oh | 07:19 | |
| FROGGS | diakopter: gist.github.com/FROGGS/111a825365e629f4331c | 07:21 | |
| ohh, all nqptest fail that way :o( | 07:23 | ||
| JimmyZ | we have serialize? | 07:24 | |
| FROGGS | JimmyZ: these tests cover the newly added ops at least | 07:25 | |
| JimmyZ | oh | ||
| FROGGS | but the cc is broken, like diakopter said | ||
|
07:31
crab2313 joined
|
|||
| JimmyZ | help! anyone knows how let uv_read returns what it reads? | 07:36 | |
| a thread safe one :) | 07:37 | ||
| FROGGS | is it possible that latest changes to nqp itself broke the cc? | 07:49 | |
| JimmyZ | cc works well on my libuv branch | 07:50 | |
| if you mean nqp-cc | |||
| FROGGS | yes | 07:52 | |
| what is your nqp revision? | |||
| JimmyZ | 2013.07-25-g1541771 | 07:53 | |
| FROGGS | thanks | ||
| crab2313 | 2013.07-22-gfb241ae, cc works well too | 07:59 | |
| on master | 08:10 | ||
| not_gerd | diakopter: do you think we ever need to mmap files at an offset different from 0? | 08:11 | |
| JimmyZ | to replace apr_atomic_casptr, which libatomic_ops I should use? | 08:32 | |
|
08:42
cognominal joined
|
|||
| not_gerd | JimmyZ: possibly AO_compare_and_swap_full | 08:45 | |
| I'll need to look some more into libatomic_ops | |||
| not quite sure what's the differende between compare_and_swap and compare_and_swap_full | 08:49 | ||
| *difference | |||
| JimmyZ | not_gerd: thanks, I'm using compare_and_swap | ||
| some times compare_and_swap is defined to compare_and_swap_full | |||
| at least on windows7 x86 msvc | 08:50 | ||
| I'm confused with apr_atomic_casptr and apr_atomic_cas32 | 08:51 | ||
| not_gerd | casptr maps to caompare_and_swap | 08:56 | |
| libatomic_ops operates by default on pointer-sized values | |||
| for cas32, you probably should use AO_int_compare_and_swap | 08:59 | ||
| (assuming int is 32-bit, which it is on all platforms moarvm currently supports) | |||
| JimmyZ | # define AO_int_compare_and_swap(addr, old, new_val) \\ | 09:01 | |
| AO_compare_and_swap((volatile AO_t *)(addr), \\ | |||
| (AO_t)(old), (AO_t)(new_val)) | |||
| not_gerd | JimmyZ: on x86, but should not be on x64 | 09:02 | |
| JimmyZ: you might want to preprocess the header and check which defines actually get used | 09:03 | ||
| JimmyZ | not_gerd: the same | ||
| the same on x64 | |||
| grep -r 'AO_int_compare_and_swap(' * | |||
| only this line :( | |||
| I know apr_atomic_casptr sometimes maps to apr_atomic_cas32, ie on gcc | 09:04 | ||
| but not on windows | 09:05 | ||
| I mean msvc | |||
| crab2313 | weird, got QASTCompilerMAST.moarvm?Š??? rather than QASTCompilerMAST.moarvm | 09:10 | |
| diakopter | oh! | 09:13 | |
| crab2313: I'm getting a comma | |||
| instead of that | |||
| there must be a stray character in the Makefile.in | |||
| crab2313 | diakopter: but the suffix is always different on my box | 09:15 | |
| not_gerd | JimmyZ: apr_atomic_casptr should be mapped tp AO_compare_and_swap according to documentation | 09:17 | |
| AO_int_compare_and_swap apparently doesn't exist on windows | |||
| diakopter | crab2313: weird! | 09:18 | |
| not_gerd is back from getting rid of jehovah's witnesses at my door ;) | |||
| diakopter | mace works well | 09:19 | |
| (kidding) | |||
| JimmyZ | not_gerd: and apr_atomic_cas32? | ||
| not_gerd: where is the doc? | |||
| diakopter | not_gerd: yes, you need to define WIN98 or something to force it defined | ||
| I didn't know how two detect 32-bit | 09:20 | ||
| or else I would've added it | |||
| not_gerd | JimmyZ: I was reading www.hpl.hp.com/research/linux/atomi...README.txt | ||
| JimmyZ: a - I forgot the define | |||
| (even though I added it to COnfigure.pl) | |||
| diakopter | crab2313: it might be an apr error! | 09:21 | |
| JimmyZ | not_gerd: and how about apr_atomic_cas32? | 09:22 | |
| diakopter | JimmyZ: can't get it | ||
| I tried | |||
| have to use 64 | |||
| JimmyZ | diakopter: no api in libatomic_ops for apr_atomic_cas32? | 09:24 | |
| diakopter | no; have to use somehting size AO_t | ||
| JimmyZ | I can't follow :( | 09:25 | |
| not_gerd | JimmyZ: libatomic_ops uses AO_t by default, which is a pointer-sized integer type | 09:26 | |
| for cas32, you'd have to use AO_int_ | |||
| but apparently they aren't available on windows? | 09:27 | ||
| diakopter | yeah. | ||
| they should be though | |||
| I reported the bug a year ago | |||
| on libatomicops github | |||
|
09:27
cognominal joined
|
|||
| JimmyZ | you mean that define? | 09:27 | |
| diakopter | not_gerd: oh, should probably update ours from github.com/ivmai/libatomic_ops/ | 09:28 | |
| not_gerd | diakopter: looks like there's some activity, so might be a good idea | 09:30 | |
| diakopter | my 2nd issue is stil open there | 09:31 | |
|
09:31
colomon joined
|
|||
| not_gerd | diakopter: I believe manually adding -DAO_ASSUME_WINDOWS98 is the right thing to do | 09:33 | |
| FROGGS | I get the weird filenames too since two weeks or so? (since I last did something with moarvm | 09:34 | |
| JimmyZ | does it looks right? gist.github.com/zhuomingliang/6256105 , btw, I'm on win32 | ||
| FROGGS | ) | ||
| JimmyZ | x86 | ||
| not_gerd | I wonder if it might be easier to just take the atomic stuff from apr... | ||
| diakopter | I thought it'd be easier to just use AO_t everywhere | 09:35 | |
| not_gerd | that, too | ||
| or switch to C11 | |||
| they come with nice _Atomic types | |||
| diakopter | msvc doen't do it | 09:36 | |
| meesa loves msvc | |||
| not_gerd | they actually just recently decided to add some more C99 features | ||
| compound literals and some other stuff | |||
| MS is worse at implementing C than we are at implementing Perl6 ;) | 09:37 | ||
| JimmyZ | or we fixed libatomic_ops bug ourself? | ||
| not_gerd | JimmyZ: your gist isn't correct | 09:38 | |
| you need to change the types of ->pool_index, ->ref_count etc to AO_t | |||
| JimmyZ | apr_atomic_cas32 is using InterlockedCompareExchange API on windows | 09:41 | |
| jnthn agrees with diakopter - let's see if we can't use libatomic_ops everywhere we currently use APR for atomic ops. A frothy mix will only lead to confusion... | 10:16 | ||
| If we have to use 64-bit integers for the ref counts of frames, so be it. | 10:17 | ||
| diakopter | I think he meant to import some of apr's code | ||
| (not to keep apr) | |||
| jnthn | ah | ||
| Doesn't seem worth it, though? | |||
| 64-bit AO_t may well be faster on a 64-bit machine anyway... | |||
| diakopter | yeah | 10:19 | |
| not_gerd agrees | |||
| JimmyZ | jnthn: I couldn't see where repr clone alloc object ... | 10:21 | |
| or maybe in the future? | |||
| jnthn | JimmyZ: I think KnowHOWREPR, were it ever cloned (and maybe its clone just is NYI) would do so. | ||
| JimmyZ: But yeah, it's partly a future thing. It's just not a very surprising thing to do. | 10:22 | ||
| diakopter thought that way too | |||
| I thought p6opaque might too | |||
| JimmyZ | jnthn: KnowHOWREPR didn't | ||
| jnthn | JimmyZ: Yes, but is its copy_to implemented? :) | ||
| JimmyZ | yes | 10:23 | |
| jnthn | hm, I wonder what on earth it does... :) | ||
| JimmyZ | it does MVM_ASSIGN_REF | ||
| jnthn | um. | ||
| Yeah, that'll end up with the two sharing their method table etc. D'oh. :) | |||
| diakopter doesn't want to guess whether I did that.. | |||
| jnthn wonders how widespread the issue is | 10:24 | ||
| Though I'm not sure that code-path is hit. | |||
| diakopter wouldn't think so | |||
| not_gerd | gist.github.com/gerdr/6256243 # totally untested wrapper for mmap/winapi | ||
| JimmyZ | another thing I wonders the difference copy_to between VMString and P6str | ||
| not_gerd | I'm assuming our use-case for mmap is mapping byte-code files and allocating executable pages for the JIT (someday) | 10:25 | |
| diakopter | well first just getting .moarvm files to memory | ||
| jnthn | JimmyZ: They look correct. | ||
| not_gerd | if the API sounds sane, I'll see if these actually compile ;) | 10:26 | |
| JimmyZ | I had found gerd is a fan of inline a years ago, though I'm too :P | ||
| I mean gerdr :P | |||
| jnthn | JimmyZ: VMString is the actual low-level string. P6Str is just a boxing type that knows to flatten away if a P6opaque contains one. | ||
| JimmyZ | jnthn: ok, thanks. how about merging gerdr++'s configure system? | 10:27 | |
| not_gerd | well, have we decided yet on which libraries to ship? | 10:28 | |
| jnthn | Which branch, or is that the one in the pull request? | ||
| not_gerd | jnthn: see github.com/MoarVM/MoarVM/pull/46#i...t-22618300 | 10:29 | |
| we only need these 4 files | |||
| either from pr/46 or pr/49 | |||
| the latter has everything besides libuv commented out | |||
| jnthn | ok, will look | 10:32 | |
| JimmyZ | jnthn: libuv1 branch is for you :P. A new branch, without patching libuv | 10:33 | |
| needs review | |||
| passed all test | |||
| jnthn | not_gerd: On the mmap thing...we didn't tend to put so much code into header files so far, and this doesn't seem like something where we'd be doing a load of calls, so inline doesn't seem so helpful. | 10:35 | |
| jnthn wonders if it'd be a good idea to have a src/platform/ where we keep these platform-abstraction things. | 10:36 | ||
| JimmyZ | jnthn: just copy it to compunit.c | ||
| jnthn: +1 to src/platform/ | |||
| and for error process | |||
| jnthn | JimmyZ: Well, I think it being in a separate file is a good thing, we'll probably want it in places becides memmap.h | 10:37 | |
| JimmyZ | we may just throw error cod in MoarVM, so perl6 and other languages shouldn't parse our error message | 10:38 | |
| not_gerd | jnthn: on posix systems, the functions wrap a single function call, so it seemed like a good idea | ||
| JimmyZ | I know rakudo is parsing parrot's error message | ||
| not_gerd | jnthn: if we make these linkable, they'll need to be put into the MVM_ namespace | ||
| I don't really care either way | |||
| jnthn | JimmyZ: Sometimes we need to convey more than just a code, however. | 10:40 | |
| JimmyZ | jnthn: aye | ||
| jnthn | not_gerd: Aye, I just like to keep "where is X" relatively unsurprising. :) | ||
| JimmyZ | jnthn: anyway, I'm +1 to src/platform/ | 10:41 | |
| And I want it :P | |||
| dalek | arVM: 47eb65b | jimmy++ | src/core/interp.c: added back missing MVMROOT |
10:42 | |
| not_gerd | is there an internal namespace? | ||
| not_gerd too lazy to look | 10:43 | ||
| these don't really belong in the public API | |||
| jnthn | Not as of yet. | ||
| JimmyZ | mvm_ :P | ||
| not_gerd | MVM_platform_? | ||
| jnthn | One thing nwc10++ pointed out is that we should be careful what we export and don't, though. | ||
| MVM_platform_ is fine | |||
| On Windows that's easy, as the default is "not exported" so we have to mark the things we want to expose specifically. | 10:44 | ||
| I think on Linux that needs some kind of linker script? | |||
| FROGGS | btw, my nqp-cc seems to work again now, I had to rm nqp's /install, and the rebuilt everything | ||
| JimmyZ | MVM_internal_ | 10:45 | |
| jnthn | Well, I'd have mark things that are API with MVM_API or some such. | ||
| JimmyZ | mark MVM_API means exported | 10:46 | |
| jnthn | Yeah. | ||
| So for now, nothing is exported. At least, not portably. But given we don't yet have a way to build a libmoar...unless some productive person sneaked it in while I wasn't watching. :) | 10:47 | ||
| not_gerd | note that we also need to careful about non-api externals | ||
| someone might want to link moarvm statically | |||
| moarvm seems to consistenly use the mvm prefix, so we're good on that | 10:48 | ||
| jnthn | Yes, anything non-static should use that. | ||
| bbi15 or so | |||
| JimmyZ | Maybe we could see how PHP src code does export, since there are many php exts. | ||
| # define MVM_API __attribute__ ((visibility("default"))) | 10:51 | ||
| and __attribute__ ((visibility ( internal ))) | 10:52 | ||
| jnthn: gcc.gnu.org/wiki/Visibility | |||
| not_gerd: I'd like to add your code to src/core/memmap.h | 10:58 | ||
| grondilu | JimmyZ: I hope you'll put this link in the source code for reference. | ||
| not_gerd | JimmyZ: I'm thinking we should create src/platform and put it there | 10:59 | |
| I can do it after jnthn gets back so we can sicuss factoring | |||
| JimmyZ | not_gerd: great | ||
| not_gerd | s/sicuss/discuss/ | 11:01 | |
| dalek | arVM: 0e62fbd | (Tobias Leich)++ | nqp-cc/t/serialization/0 (2 files): nqpmo is still called nqp-mo |
11:02 | |
| jnthn | JimmyZ: src/platform/memmap.[ch] | 11:03 | |
| FROGGS | diakopter: here is the proper output of the tests your newly added ops: gist.github.com/FROGGS/111a825365e629f4331c | ||
| JimmyZ | not_gerd: ^^ :) | 11:04 | |
| not_gerd | jnthn: should we split that into src/platform/posix/mmap.c and src/platform/win32/mmap.c | ||
| JimmyZ | jnthn: not src/platform/win32/memap.[ch] or something? | ||
| not_gerd | and compile the right one via Configure.pl | ||
| or just one file with #ifdef? | |||
| JimmyZ | aye | ||
| I'd like to separate | 11:05 | ||
| there will may be aix/ solaris/ | 11:06 | ||
| jnthn | Seaparating it out like that will need more build system work and effort, but will scale better in the end. | ||
| JimmyZ | I'm +1 to will scale better in the end | 11:07 | |
| jnthn | So if there's energy/motivation to do it, it's probably the way to go :) | ||
| not_gerd | jnthn: my Configure.pl should support that relatively hassle-free | ||
| jnthn | not_gerd: OK. :) | ||
| not_gerd goes food-hunting | 11:08 | ||
| dalek | arVM: 55b9e0f | jimmy++ | build/config.h.in: added reference link for MVM_API exporting |
||
| JimmyZ | grondilu: ^^ | ||
| not_gerd | if no one beats me to it, I'll do the mmap stuff after I get back | ||
| JimmyZ | I'd suggest to add not_gerd to MoarVM :P | 11:11 | |
| if not_gerd does not object... | 11:12 | ||
| jnthn | The Configure refactor sure puts a heck of a lot into Configure.pl itself... | 11:22 | |
| jnthn woulda preferred a slightly more modular factoring | |||
| It does seem a bunch more flexible, however. | 11:23 | ||
| not_gerd | jnthn: the question is, what's worse - a monolithic file or hacing to hunt through files all over the place if something doesn't work | 11:31 | |
| * having | |||
| if the configuration logic gets more complex (automatic feature detection), that might be worth putting into a separate file | 11:33 | ||
|
11:35
colomon joined
|
|||
| jnthn | not_gerd: Hm, fair point. Maybe pulling the bunch of hashes at the start of the file, which are essentially data, out of Configure.pl into a module that exports them would help make it feel less of an epic. :) | 11:40 | |
| not_gerd | that's certainly an option | 11:42 | |
| the same goes for automatic feature detection | |||
| right now, we only detect if we're on x64 in case of windows, though | |||
| jnthn | I think I'd prefer it that way | 11:43 | |
| (the data split out) | 11:44 | ||
| JimmyZ | We need detect whether support %lld or not .. | ||
| in the future | |||
| jnthn | not_gerd: Would you like a commit bit, btw? I'd like large refactors/changes like this one be done in branches still, but it'd perhaps make your life easier... :) | 11:46 | |
| not_gerd | jnthn: sure | 11:47 | |
| I don't really need it, but it might make testing easier for you guys | |||
| jnthn | not_gerd: aye, my thought too. It's not hard to pull from your fork, but laziness is nice... :) | ||
| ok, done :) | 11:48 | ||
| Of course, for obviously right things, just go ahead and commit in master. :) | 11:49 | ||
| shopping & | |||
| not_gerd | I'll try not to make amess ;) | 11:50 | |
| jnthn | Well, in the worst case, git provides ways to cope with that :) | ||
| FROGGS .oO( git stalk not_gerd ) | 11:55 | ||
|
12:03
birdwindupbird joined
|
|||
| not_gerd | any one knows how to get the file descriptor/handle out of apr_file_t? | 12:22 | |
| JimmyZ can't follow you | 12:26 | ||
| not_gerd | JimmyZ: my mmap wrappers need a filr descriptor, which is hidden in an apr_file_t structure | 12:27 | |
| I'll have to pull in some APR internal headers to get at it | 12:28 | ||
| the switch to libuv will fix that | |||
| *headdesk* | 12:42 | ||
| what is wrong with the following line: | |||
| writable ? FILE_MAP_READ | FILE_MAP_WRITE : FILE_MAP_WRITE | |||
|
12:42
cognominal joined
|
|||
| JimmyZ | where is the code? | 12:46 | |
| I don't know .. | |||
| not_gerd | JimmyZ: the last FILE_MAP_WRITE should read FILE_MAP_READ | ||
| if not writable, make it writable is not sound logic | 12:47 | ||
|
12:50
cognominal joined
|
|||
| JimmyZ | we don't need writeable | 12:51 | |
| diakopter | not_gerd: I thought you needed parens there | 12:52 | |
| not_gerd | diakopter: the ?: act as parens | 12:56 | |
| dalek | arVM/mmap: 4af81af | (Gerhard R)++ | / (5 files): import new build system |
||
| arVM/mmap: 7a66dea | (Gerhard R)++ | build/Makefile.in: add missing objects ot Makefile.in |
|||
| arVM/mmap: fdc7214 | (Gerhard R)++ | Configure.pl: disable libuv build |
|||
| arVM/mmap: 1e64add | (Gerhard R)++ | src/platform/ (3 files): add platform-specific mmap wrappers |
|||
| arVM/mmap: efce9cb | (Gerhard R)++ | / (2 files): build platform-specific files reorder header inclusion order |
|||
| not_gerd | \\o/ | 12:57 | |
| needs testing on non-windows | 12:58 | ||
| jnthn | not_gerd: Does it remove the linenoise bits too? That's not in master yet, yes? | 13:00 | |
|
13:00
crab2313 joined
|
|||
| not_gerd | jnthn: that's master + mmap - no additional 3rdparty libs | 13:01 | |
| jnthn | OK, I see a reference to linenoise in there, is all. | 13:02 | |
| not_gerd | jnthn: the important bit should be behing a comment | 13:03 | |
| jnthn | ok | ||
| not_gerd | github.com/MoarVM/MoarVM/blob/mmap...ure.pl#L81 | 13:04 | |
| that's where we decide what to build | |||
| jnthn | not_gerd: Hm, it auto-detects the x64 toolchain, and then /DAO_ASSUME_WINDOWS98 is in the compile line. | ||
| I *thought* (may be totally misremembering) that one was just needed on 32-bit... | 13:05 | ||
| crab2313 | not_gerd: -osrc/main.o | ||
| not_gerd | jnthn: it's needed on 32-bit, but I don't think it hurts on x64 | ||
| jnthn | ok | ||
| not_gerd | I wouldn't know how to detect if it does, though ;) | ||
| jnthn builds mmap branch | 13:07 | ||
| not_gerd | crab2313: the old system didn't build that? | ||
| well, it only becomes relevant once we start generatinc libmoarvm | |||
| crab2313 | not_gerd: I'm on mmap | ||
| not_gerd | crab2313: what's the problem with -osrc/main.o | 13:08 | |
| crab2313 | not_gerd: not just that | ||
| not_gerd: gist.github.com/crab2313/6256778 | 13:09 | ||
| not_gerd | crab2313: gist the generated Makefile? | 13:10 | |
| diakopter | I've gotten that before | 13:12 | |
| crab2313 | not_gerd: gist.github.com/crab2313/6256785 | 13:13 | |
| not_gerd | crab2313: does `make -j1` help? | 13:16 | |
| I'm not yet seeing anything wrong with the makefile... | |||
| crab2313 | not_gerd: I should try it again | 13:19 | |
| JimmyZ | not_gerd: gist.github.com/zhuomingliang/6248474 | 13:22 | |
| I'm on centos x64 | |||
| crab2313 | not_gerd: I think it forget to build apr | 13:24 | |
| not_gerd | JimmyZ: the header inclusion order is wrong | ||
| alternatively, mmap.h needs to pull in stddef.h | |||
| jnthn: should I add an inclusion guard + dependency headers in mmap.h or reorder header inclusion order in mmap.c? | 13:25 | ||
| other internal moarvm headers don't use inclusion guards... | |||
| jnthn | not_gerd: I prefer to avoid those. | 13:26 | |
| crab2313 | not_gerd: build apr manually | 13:27 | |
| crab2313 | not_gerd: and got the same issue | ||
| not_gerd | oO | ||
| does the file 3rdparty/apr/include/apr.h exist? | 13:28 | ||
| crab2313 | not_gerd: there is a apr.h.in, and it didn't build apr automatically | 13:29 | |
| not_gerd | crab2313: I thought you built apr manually? | ||
| if so, *that* should have generated the header | 13:30 | ||
| crab2313 | not_gerd: yes, I built it manually, | ||
| not_gerd | crab2313: remove 3rdparty/apr/.libs/libapr-1.a and try a simple `make` again | 13:31 | |
| JimmyZ | not_gerd: gist.github.com/zhuomingliang/6248474 upated | ||
| not_gerd | if that doesn't work, no idea what will | ||
| JimmyZ | crab2313: which OS? | 13:32 | |
| crab2313 | not_gerd: I have solved the problem, and got the same issue as JimmyZ | ||
| dalek | arVM/mmap: f4f5611 | (Gerhard R)++ | src/platform/posix/mmap.c: pull in stddef.h in platform/posix/mmap.c |
||
| not_gerd | crab2313, JimmyZ: ^^ | 13:33 | |
| JimmyZ | builds | ||
| crab2313 | not_gerd: just think it should build apr automatically | ||
| not_gerd | crab2313: it should | ||
| jnthn | It did here for me, fwiw | 13:34 | |
| crab2313 | JimmyZ: gentoo x86 | ||
| not_gerd | $(OBJECTS) depend on $(HEADERS), 3rdparty/apr/include/apr.h is part of $(HEADERS) and depends on 3rdparty/apr/.libs/libapr-1.a | 13:35 | |
| that *should* trigger the build | |||
| (except if you cleaned your apr dir but kept libapr-1.a around) | |||
| JimmyZ | X86 is LibR, not .lib on windows | 13:36 | |
| crab2313 | not_gerd++ | ||
| not_gerd | JimmyZ: as far as I know, on linux it's always .lib | 13:37 | |
| or .libs, rather | 13:38 | ||
| crab2313 | it works on my box | ||
| grondilu on debian x86 notices apr libs in ./MoarVM/3rdparty/apr/.libs | 13:40 | ||
| JimmyZ | good, not_gerd++, works on windows x86 | 13:41 | |
|
13:45
donaldh joined
|
|||
| JimmyZ | not_gerd: make test passed on CentOS X64 | 13:46 | |
| not_gerd: make test passed on Window X86 with msvc | 13:51 | ||
| jnthn | Want me to retest on x64 windows? | 13:52 | |
| not_gerd | jnthn: shouldn't be necessary | 13:53 | |
| jnthn | just kicked one off anyway :) | 13:54 | |
| JimmyZ | so left part is atomic, diropen/dirread and socket for switching to libuv | 13:55 | |
| TimToady | as usual, I just get a coredump from threads.t now | 13:57 | |
| jnthn | Is that, getting rid of the use of atomic stuff from APR? | ||
| JimmyZ | jnthn: yes | ||
| TimToady | (on linux/64) | ||
| JimmyZ | I tried, but failed | ||
| jnthn | JimmyZ: OK, I can take that one on. | ||
| JimmyZ | jnthn: and I have problem to get uv_read bufs ... | 13:58 | |
| uv_read calls cb, and I don't know how to get its read | |||
| jnthn | not_gerd: Things looked good | 13:59 | |
| JimmyZ | \\o/, merge !! | ||
| not_gerd | ;) | 14:00 | |
| I can pull out the config data from Configure.pl before that | |||
| jnthn | Yes, please. | ||
| not_gerd | hardest part is the naming | ||
| jnthn | That's nothing new... :) | ||
| not_gerd | what should the .pm be called? | 14:01 | |
| jnthn | gah! :P | ||
| BuildData perhaps? | |||
| JimmyZ | ConfigMap.pm | ||
| jnthn | map? :) | ||
| JimmyZ | ConfigHash.pm | 14:02 | |
| :P | |||
| or ConfigData.pm ? | |||
| jnthn | ConfigData is also OK, but the data is mostly about how to build :) | ||
| JimmyZ | the data is about configs :P | 14:03 | |
| not_gerd | the old name was Config::BuildEnvironment | ||
| JimmyZ | +1 to Config::BuildEnvironment :P | 14:04 | |
| jnthn | That works, it just doesn't capture the fact it's most just a load of data... | ||
| not_gerd | oO( Configure::Data ) | 14:09 | |
| JimmyZ | oO | 14:18 | |
| dalek | arVM/configure: 23927ed | (Gerhard R)++ | build/Config/ (4 files): get rid of old build system |
14:42 | |
| arVM/configure: 6d441fd | (Gerhard R)++ | / (2 files): pull out build config data into build/setup.pm |
|||
| not_gerd | if it were my pet project, I'D totally do it like that | ||
| please tell me if it's too ugly for production and I should hide it away somewhere ;) | |||
| jnthn | This branch is based off mmap one? | 14:43 | |
| not_gerd | jnthn: yes | ||
| jnthn | k | 14:44 | |
| exporting the symbols might'a saved some ::'s : | |||
| :P | |||
| JimmyZ | tomorrow I will do opendir/readdir part :P | 14:46 | |
| jnthn | k | ||
| JimmyZ | the left socket \\o/ | ||
| not_gerd | jnthn: configure branch needs a fix | 14:54 | |
| jnthn | JimmyZ: Are you just implementing synchronous stuff with libuv at the moment, or some async stuff also? | 14:55 | |
| JimmyZ | jnthn: nope | ||
| jnthn | Which is the nope to? :) | ||
| JimmyZ | jnthn: I needs read tty | ||
| tty use uv_read | |||
|
14:55
benabik joined
|
|||
| JimmyZ | jnthn: I know nothing about sync or async | 14:56 | |
| dalek | arVM/configure: ef6b17f | (Gerhard R)++ | Configure.pl: fix backslash substitution |
14:57 | |
| JimmyZ | jnthn: getstd may be tty or pipe or file, both tty and pipe use uv_read, but file uses uv_fs_read | 14:58 | |
| uv_read_stat | 14:59 | ||
| jnthn | Oh? | ||
| JimmyZ | uv_read_start | ||
| jnthn | So you can't get a standard handle and always read from it in the same way? | ||
| JimmyZ | jnthn: yeah, see MVM_file_get_stdstream/MVM_file_read_fhs/MVM_file_write_fhs in github.com/MoarVM/MoarVM/blob/libu.../fileops.c | 15:01 | |
| jnthn: libuv mostly uses uv_handle_t, execpt uv_fs_ part | 15:02 | ||
| *except | |||
| jnthn: according to uv.h , uv_stream_t is the parent class of uv_tcp_t, uv_pipe_t, uv_tty_t, and* soon uv_file_t | 15:04 | ||
| jnthn: so uv_fs_ will be using uv_handle_t in the future... | 15:05 | ||
| jnthn | hm, ok | 15:07 | |
| JimmyZ | good night | 15:42 | |
| not_gerd | good night | 15:43 | |
| jnthn | 'night, JimmyZ | 15:44 | |
| dalek | arVM/libuv5: 2317be7 | diakopter++ | src/mast/compiler.c: less debugging |
16:11 | |
| MoarVM/libuv5: eac6e83 | jimmy++ | src/io/fileops.c: | |||
| MoarVM/libuv5: added a few comments to MVM_file_readline_fh | |||
| JimmyZ | jnthn: btw, libuv5 branch is better working branch than libuv1 | ||
|
16:12
dalek joined
|
|||
| JimmyZ | master merged into libuv5 | 16:12 | |
| diakopter | howdy | 16:19 | |
| not_gerd | bye, #moarvm | 16:27 | |
|
16:27
not_gerd left
17:38
benabik joined
|
|||
| benabik | There are quite a few libuv\\d? branches. | 17:40 | |
| jnthn | benabik: Tell me about it! | 17:42 | |
| o/ diakopter | |||
| benabik | Also, minor gripe: Please write commit messages as if the person reading them has no idea what you're doing. "Fixes" or "added opcodes" are not useful to someone browsing commits. What did you fix? What opcodes did you add? | 17:43 | |
| jnthn | +1 | ||
| benabik | This is one thing I love about git.git's mailing list approach. Your commit messages has to convince jch that it's worthwhile. So many git.git commit messages are longer than the patch itself. | 17:44 | |
| </gripeing> | |||
|
18:10
donaldh joined
|
|||
| dalek | arVM: bfdfebd | jnthn++ | src/core/frame. (2 files): Switch frame ref-count to libatomic_ops. |
19:03 | |
| diakopter | who's jch | 19:13 | |
| jnthn | #define MVM_cas(addr, old, new) | ||
| has the comment | |||
| /* returns non-zero for success. Use for both AO_t numbers and pointers. */ | |||
| really? | |||
| CAS usually returns what was seen... | |||
| diakopter | yeah | ||
| jnthn | grr | 19:15 | |
| I'd rather we'd called that MVM_trycas | |||
| And used MVM_cas for the normal definition of CAS | |||
| diakopter | so change it :P | ||
| jnthn | yeah, doing so | ||
| diakopter | jnthn: I don't know how you'll do it though | 19:16 | |
| without making it read it again on failure | |||
| jnthn | AO_t fetch_compare_and_swap(volatile AO_t * addr, AO_t old_val, AO_t new_val) | 19:17 | |
| It's defined by libatomic_ops | |||
| I *think* that is actually the primitive one, and that the int-returning one is implemented in terms of it, at least on Windows... | 19:18 | ||
| diakopter | oh; that must be new | ||
| did someone update lao from the repo? | 19:20 | ||
| jnthn | oh, I was looking at the docs in the lao repo...hm | ||
| diakopter | no I think fetch means add a fetch fence | ||
| er, that's read | |||
| I don't remember | |||
| jnthn | Nope, "returns the original value of *addr" | 19:21 | |
| but...hmm...seems our repo copy is behind.. | |||
| diakopter | yeah by a year | ||
| jnthn | odd | ||
| ok | |||
| Think I'd rather update it than hack something myself | |||
| diakopter | :) | ||
| now... it's significantly modified | |||
| had to strip out all the GPL stuff | 19:22 | ||
| diakopter watches jnthn's yak shave grow to a lawn mowing | |||
| jnthn: perhaps I should do the lao refresh since I mangled it previously | 19:24 | ||
| and surprisingly I somewhat remember it | |||
| jnthn | OK | ||
| diakopter | and you have better things to do :) | 19:25 | |
| more jnthn-y things | |||
| jnthn | ok, will push the MVM_cas => MVM_trycas rename since I did that. | 19:26 | |
| Getting an MVM_cas that does the return-seen thing will make it easier to deal with the leftover apr_atomic_* | 19:27 | ||
| diakopter | well, this "extra random character" at the end of the QASTCompilerMAST.moarvm feels like a parrot bug | ||
| *filename, I mean | |||
| jnthn | oh, is that why I've a funny named file? | 19:28 | |
| eek, now I've more of them | |||
| diakopter | yeah I get it too; I can't find a problem with the Makefile | ||
| jnthn | hmm :) | 19:29 | |
| diakopter | makes me think it's a parrot thing | ||
| or nqp, I guess | |||
| dalek | arVM: 72a9fd4 | jnthn++ | src/core/ (2 files): Switch frame_pool_num to libatomic_ops. |
19:30 | |
| arVM: 06ae890 | jnthn++ | src/ (4 files): Rename MVM_cas => MVM_trycas. The traditional cas definition is to return what was seen. We'll make MVM_cas mean that in the future, so rename the bool-returning one to MVM_trycas. |
|||
| jnthn | diakopter: uh, it may be me to blame :) | 19:32 | |
| dalek | arVM: 7ce6050 | jnthn++ | nqp-cc/src/ops/mvmcc.ops: Make sure we get null-terminated filename. |
19:36 | |
| jnthn | diakopter: ^^ fixes it | ||
| afaict | |||
| diakopter | oh | 19:37 | |
| jnthn | diakopter: gc_free in MVMCompUnit seems to have some unrelated leftover code? | 19:42 | |
| diakopter | if so, oops | 19:43 | |
| oh, not completed | 19:44 | ||
| jnthn | In copy_to of MVMStaticFrame, I think the static_env should be copied from old to new | ||
| With a loop and MVM_ASSIGN_REF for the appropriate things | 19:45 | ||
| Is it better if I issues these? | |||
| diakopter | oh, it's not? | ||
| jnthn | oh, hang on...lemme check latest source in case if differs from the patch | 19:46 | |
| diakopter | oh oops | ||
| no | |||
| you're right | |||
| wait | |||
| those aren't objects | |||
| jnthn | no, it doesn't | ||
| /* XXX start out with blank static env? */ | |||
| dest_body->static_env = calloc(1, src_body->env_size); | |||
| diakopter | oh, that | 19:47 | |
| jnthn | Right, it's a bunch of registers; it goes by lexical_types as to what's in there | ||
| jnthn is happy to see MVM_gc_worklist_add_frame | 20:00 | ||
|
20:04
colomon joined
20:20
dalek joined
|
|||
| benabik | diakopter: Junio C Hamano, git maintainer | 21:19 | |
|
21:44
colomon joined
|
|||
| diakopter | jnthn: any other things need fixing? | 22:26 | |
| jnthn | diakopter: Not that I could see right off. | 22:27 | |
| diakopter | yay, I think :) | ||
| jnthn | What blocks on me in terms of NQP on Moar, ooc? Or, what is it most helpful for me to do? | 22:31 | |
| jnthn should look more closely at what's going on with libuv also :) | |||
| Otherwise, I can just take pot shots at whatever I find stopping NQP on Moar... :) | 22:32 | ||
| diakopter | nqp-cc\\> make NQPP6QRegex.nqp | ||
| nqp-cc\\> make NQPP6QRegex.moarvm | |||
| nqp-cc\\> nmake NQPP6QRegex.moarvm | |||
| er, also gist.github.com/FROGGS/111a825365e629f4331c | 22:33 | ||
| jnthn | gotcha | ||
| diakopter | ^ my completely naive attempts at those opcodes | ||
| jnthn | oh...serialization ain't even implemetned yet | ||
| diakopter | well, those prereq opcodes | 22:34 | |
| jnthn | So I'd have been surprised if the tests got anywhere :) | ||
| ok | |||
| diakopter | the 4 added in that bit commit | ||
| big | |||
| jnthn | yeah, noticed those... | ||
| diakopter wonders where lizmat | |||
| jnthn | OK, will see how my tuits/brane are tomorrow | ||
| diakopter | 'nite | ||
| jnthn | about for 10 mins more... | 22:36 | |
| diakopter | frankfurt flight is $1337 each for me and Melanie | ||
| ... | 22:37 | ||
| jnthn | 1337! | ||
|
22:58
cognominal joined
23:17
colomon joined
23:27
BenGoldberg joined
|
|||
| BenGoldberg | .ping | 23:31 | |
| yoleaux | There is no ping command; nor can this be construed as a response. | ||
| diakopter | . | 23:37 | |
| .yoleaux | |||
| .yolo | |||
| .ping response | |||
| yoleaux | There is no ping command; nor can this be construed as a response. | ||
| BenGoldberg | So I've got this silly question about NQP... | 23:40 | |
| The perl5 language is defined by the implementation, any "specification" of it merely describes one particular impl. The perl6 language is defined by the perl6 specification -- implementations do their best to follow the spec. NQP, which the rakudo implementation of perl6 is written in, doesn't currently seem to have a specification. Is NQP simply defined by how rakudo uses it, or will there | 23:43 | ||
| be a formal spec? | |||
|
23:45
Ben_Goldberg joined
|
|||
| diakopter | Ben_Goldberg: more important than the syntax of NQP (which is very close to a subset of Perl 6) is the nqp:: opcode set | 23:46 | |
| Ben_Goldberg | Is there (will there be) a document somewhere which states precisely which nqp:: opcodes must be defined, in order for rakudo to compile and run? | 23:49 | |
| diakopter | no; for MoarVM we just looked at the implementations for Parrot and the JVM | 23:52 | |
|
23:52
colomon joined
|
|||
| Ben_Goldberg | Ok | 23:52 | |
| diakopter | (you'd have to do a lot of that anyway, so a document wouldn't help much) | ||
| Ben_Goldberg | So someone writing an implementation for LLVM or Adobe Flash would also look other implementations to see how to go. | 23:54 | |
| diakopter | yes, definitely | ||
| Ben_Goldberg | Approximately how many nqp:: ops are there? | 23:57 | |
| diakopter | 4-500? | 23:58 | |
| some dramatically huger than others | |||
| Ben_Goldberg | Wow! That's a lot! :) | 23:59 | |
| And approximately how many does MoreVM have implemented? | |||