| jnthn | OK. We can hun the problems with linenoise, or readline, later | 00:03 | |
| FROGGS | yeah | ||
| dalek | arVM: b63301e | jnthn++ | src/core/interp.c: Workaround for readline interactive bug. On some platforms, it spews endless prompts and never reads a line. This avoids the issue by turning it into a normal readline, which does lose the readline stuff, but is better than no REPL at all. |
00:04 | |
| diakopter | jnthn: I thought we had some custom patches on dyncall (and libuv for that matter) | 00:05 | |
| jnthn | diakopter: None on libuv | ||
| diakopter: Maybe some on dyncall | |||
| Well, certianly we have dyncall ones now | 00:06 | ||
| I put in the patch from Andy, but I did it on top of their latest | |||
| Sadly, their latest breaks stuff for us. | |||
| diakopter | I thought we had lots and lots of mods | ||
| jnthn | It's probably not a big deal to fix, but I don't have time for it now. | ||
| Well, we have lots and lots of build patches at least :) | |||
| FROGGS | spectest looks good I think | 00:15 | |
| jnthn | Same here | 00:17 | |
| OK, anything else to go into MoarVM pre-release? | 00:18 | ||
| timotimo | hohum. | ||
| seccomp forbids the use of sbrk if you don't supply a filter | |||
| jnthn | Hm :) | 00:19 | |
| timotimo | now i need to get the documentation for seccomp filters %) | 00:20 | |
| FROGGS | I dunno... I'd look into fixing this tomorrow when I got to it | ||
| jnthn | FROGGS: "this"? | 00:25 | |
| timotimo | libseccom looks easy enough | ||
| FROGGS | things* | ||
| <-- tired | 00:26 | ||
| dalek | arVM: 6fabfa2 | Jonathan++ | tools/release.sh: Add initial release script by moritz++. With a small tweak. |
00:30 | |
| timotimo | er, what is exec >MANIFEST supposed to mean? o_O | 00:31 | |
| wait | |||
| that redirects the output of the current shell into a file? | |||
| jnthn | I didn't write it :P | 00:32 | |
| moritz++ did :) | |||
| But yes, I presume that's what it does :) | |||
| timotimo | holy fucking shit | ||
| that's awesome | |||
| perl6 needs this. | |||
| :P | |||
| (i know it already does) | |||
| dalek | arVM: 8ba3c28 | jnthn++ | Configure.pl: Don't try to update submodules if no .git. Otherwise, Configure will explode in a release. |
00:38 | |
| jnthn | jnthn.net/MoarVM/MoarVM-2014.01-rc1.tar.gz | 00:48 | |
| Please try to download and Configure and make ^ | |||
| btyler | build failure: gist.github.com/kanatohodets/b49fd...fb70a2426b | 00:52 | |
|
00:52
benabik joined
|
|||
| lee__ | i see the same on OS X | 00:52 | |
| btyler | (I'm also on OSX) | 00:53 | |
| lee__ | should libdyncall_s.a be omitted from the tarball? | ||
| jnthn | um...that's build output... | 00:54 | |
| diakopter | well if the clean misses it.. | ||
| jnthn | Well, but it shouldn't really happen | 00:55 | |
| 'cus it does git ls-files to make the manifest... | |||
| lee__ | gist.github.com/leedo/666a43f884612ca4db7c | 00:56 | |
| thats freshly extracted | |||
| jnthn | How on earth... | 00:58 | |
| They don't show up in the MANIFEST file, though? | 00:59 | ||
| lee__ | hmm nope | 01:02 | |
| jnthn | I agree they're in the .tar.gz | ||
| lee__ | must be something with that tar command | 01:03 | |
| jnthn | Yeah | 01:05 | |
| perl -pe "s{^}{MoarVM-$VERSION/}" MANIFEST | tar zc -T - -f MoarVM-$VERSION.tar.gz | 01:06 | ||
| The first bit piped into tar doesn't mention the .a files | |||
| ohh | 01:11 | ||
| We're ending up with the entire directories of the submodules in the MANIFEST | |||
|
01:20
jnap joined
|
|||
| timotimo | hm. here's something i don't understand | 01:20 | |
| i can nqp::getcomp the compiler and register my extops | |||
| how do i then go ahead and use these in the future in the same process? | |||
| can i have a .nqp file compiled to .moarvm that does the registration, use ThatModule from the other code file and immediately use the nqp::myextop calls? | 01:21 | ||
| or how would i get that to work? | 01:22 | ||
| er, i was mistaken, i don't have to use getcomp to do that | 01:23 | ||
| just use MASTNodes and then MAST::ExtOpRegistry.register_extop(...) | |||
| jnthn | Well, but then you still need to map nqp:: ops to them | 01:25 | |
| New RC coming up | 01:26 | ||
| bah, shoulda known something was up when the tarball was a couple of megs | 01:27 | ||
| up | |||
| 18 megs | |||
| Now it's a couple of megs | |||
| timotimo | hm. how do i go about mapping the nqp ops then? :\ | 01:28 | |
| ah, for *that* i need the getcomp | |||
| jnthn | See how Perl6::Ops does it | 01:29 | |
| timotimo | that's where i'm looking now. i just didn't look far enough down | ||
| does it make sense to supply "nqp" as the hll in the first field? | |||
| jnthn | If you will call the ops from NQP, yes | 01:30 | |
| You can also add them globally | |||
| add_core_op | |||
| Maybe not so sociable :) | |||
| timotimo | hehe. | 01:31 | |
| i used "add_hll_moarop_mapping", was that wrong? | |||
| ah, for that i don't supply the hll | |||
| that actually sounds nice. | |||
| but i do want add_core_moarop_mapping | 01:32 | ||
| jnthn | yes, that's the one | 01:34 | |
| timotimo | how long are you going to stay online today? | 01:37 | |
| i'm getting ever closer to an actually executable *thing* | |||
| this excites me :) | |||
| it does feel a bit boilerplatey to me | |||
| jnthn | jnthn.net/MoarVM/MoarVM-2014.01-rc2.tar.gz | 01:38 | |
| timotimo | i have stuff i want to do in C. i wrap that in moarvm extops that i register from c land | ||
| then i register the ops with the QAST compiler | |||
| and then i register the ops with the operations | |||
|
01:38
jnap joined
|
|||
| jnthn | btyler, FROGGS, timotimo: Try RC2 if you have a moment. | 01:38 | |
| timotimo: tbh, adding these things isn't really a very common thing to do. | 01:39 | ||
| timotimo: And keeping nqp and VMs at something of a distance is what means we can have one codebase and run on JVM/MoarVM/Parrot | |||
| timotimo | that's true, yeah | 01:40 | |
| i'll try rc2 real quick | |||
| dalek | arVM: 517f0c2 | Jonathan++ | tools/release.sh: Don't include submodule directories in MANIFEST |
||
| arVM: 516ceab | Jonathan++ | build/setup.pm: Remove submodule-related git references in Makefile While the clean instruction is perhaps helpful in some sense, it is not good for in a release, where there's no Git repo. |
|||
| timotimo | jnthn: how about shipping a few "hello moarvm!" .moarvm files with moarvm? :) | 01:41 | |
| something braindead simple, that says "hello!" or something | 01:42 | ||
| i don't know how to make such a thing without dependencies on nqp, though | |||
| jnthn: it seems to build fine :) | 01:43 | ||
| jnthn: how does i debugs "failed to load library './secmoar_ops.so'"? :( | 01:44 | ||
| dalek | arVM: 5d8f31e | Jonathan++ | build/Makefile.in: Update make release target. |
||
| timotimo | huh, it seems like it's trying to load MASTOps.moarvm | 01:45 | |
| but i don't see that file anywhere | |||
| ah, ../nqp/MASTOps.moarvm | |||
| jnthn | That file should be installed... | ||
| I'm not sure about the library loading issue, but maybe look at how Rakudo does it | |||
| We put the ops file in a dynext directory...wonder if that's significant. | |||
| diakopter | what's sec for | 01:46 | |
| timotimo | gee, i hope not | ||
| diakopter: SECURE :) | |||
| (it uses seccomp to prevent malicious stuff from happening) | 01:47 | ||
| diakopter | seccomp is the thing from the nsa? | ||
| dalek | arVM: 9656fbd | jnthn++ | README.markdown: Tweak a number in the README. |
01:48 | |
| jnthn | 'cus we know they're good at security... :) | ||
| diakopter | selinux? | 01:50 | |
| timotimo | diakopter: no, seccomp | 01:51 | |
| btyler | jnthn: RC2 builds, tried using the release as a --prefix for nqp but it died on some path problem; I wiped out my existing MoarVM install/ dir and copied the release install/ into its place, nqp built and nqp-m fails 5 tests (related to file-ops, which I think is normal?) | ||
| timotimo | jnthn: how do you feel about letting me add another little commit before we cut the commit? | ||
| btyler | so seems good, I think | ||
| timotimo | cut the release* | ||
| jnthn: i'd really like to put a fast path into the concat that uses memcpy instead of a for loop with get_codepoint_at if both strings have the same format | 01:52 | ||
| because now, anything that concatenates is basically horridly slow | |||
| and most things on the repl will be printed using concatenation | |||
| diakopter | theyre not that slow on windows | 01:53 | |
| bc it's much more optimized | |||
| timotimo | right. but it's unbearable on linux | ||
| and people will want to look at our first release | 01:54 | ||
| and if it does silly things like that, they'll say "wtf are they smoking?" | |||
| jnthn | btyler: Sounds good. | ||
| diakopter | timotimo: I'm not sure any more people will say that than already have for 13 years | 01:55 | |
| timotimo | hm | ||
| jnthn | True :) | ||
| Also, this is *not* a distribution release | |||
| It's the first Rakudo release that has some level of Moar support | 01:56 | ||
| diakopter | not to mention there are plenty of other reasons to say that :) | ||
| jnthn | There's a number of reasons not to trust it too much yet. | ||
| timotimo | we won't publish moar support with this month's rakudo compiler? | ||
| jnthn | We will | ||
| But that's a compiler release | |||
| It's distribution releases (Rakudo Star) that are explicitly end-user targetted. | 01:57 | ||
| And come with promises like "yes, it runs Panda", "yes, it has the debugger", "yes, you can use NativeCall", etc. | |||
| diakopter | I've never understood how compiler users are less of end users than distribution users | 01:58 | |
| timotimo | what's the difference between _STRAND_DEPTH and STRAND_DEPTH? | ||
| diakopter | one is lvalue | ||
| I think | |||
| timotimo | ah, that makes sense | ||
| strand_depth is supposed to be 0 if it's not a rope, eh? | 01:59 | ||
| diakopter | well it's never read in that case I think | 02:00 | |
| or maybe it means something else | |||
| see MVMString.h | |||
| timotimo | fair enough | ||
| the compare_offset minus the offset is the length of the strand's piece, right? | |||
| diakopter | don't remember exactly | 02:01 | |
| driving on the highway | |||
| (kidding) :) but not in front of my computer | 02:02 | ||
| timotimo | whoops. i think i just outputted a 8-bit utf8 encoded string into a bunch of int64 slots m) | 02:03 | |
| nope, MVMCodepoint32 | |||
| but still wrong | |||
| ah well, let's do it right. after the release. | 02:04 | ||
| i wonder what not_gerd is up to these days | 02:05 | ||
| haven't seen him in a long while | |||
| dalek | arVM: 87b2029 | jnthn++ | docs/release_guide.md: First stab at a release guide. To make sure the bus number can be more than 1 here. |
02:06 | |
| timotimo | jnthn: --prefix=install is apparently the default | 02:08 | |
| jnthn | timotimo: OK. I'll leave it in there in case we change that. | 02:11 | |
| timotimo is unsure how to debug the failed to load library thing :( | 02:14 | ||
| getting the output of __dlerror after the library comes back NULL from dyncall would be excellent | 02:19 | ||
| $1 = 0x18108a0 "./secmoar_ops.so: undefined symbol: seccomp_load" ← now i know that it didn't find this symbol ... i linked it in with ld, but i probably would have to link it in statically or something | |||
| yay, i had to move the -lfoobar from cc to ld | 02:20 | ||
| obviously | |||
| huh. | 02:21 | ||
| gist.github.com/timo/e01bdb2252a683fd9e9d | |||
| (updated with secmoar_sandbox.nqp and the build script) | 02:22 | ||
| ah! | 02:23 | ||
| --output= instead of -o | |||
| interesting. | |||
| diakopter | timotimo: do you havea way to contact not_gerd? | 02:25 | |
| timotimo | i don't think so | 02:27 | |
| diakopter | he's in your country; just linear search | ||
| timotimo | good idea | ||
| so ... i have an op named nqp::smclientcreate and moar seems to think it wants 4 arguments, but i'm pretty sure i gave it 3 everywhere | |||
| MVM_ext_register_extop(tc, "smclientcreate", secmoarclientcreate, 3, s_secmoarclientcreate); | |||
| this is in C | |||
| static MVMuint8 s_secmoarclientcreate[] = { MVM_operand_int64 | MVM_operand_write_reg, MVM_operand_obj | MVM_operand_read_reg, MVM_operand_obj | MVM_operand_read_reg, MVM_operand_obj | MVM_operand_read_reg }; | |||
| as is this | 02:28 | ||
| MAST::ExtOpRegistry.register_extop('smclientcreate', MVM_operand_int64 +| MVM_operand_write_reg, MVM_operand_obj +| MVM_operand_read_reg, MVM_operand_obj +| MVM_operand_read_reg, MVM_operand_obj +| MVM_operand_read_reg); | |||
| and this is in nqp | |||
| $ops.add_core_moarop_mapping('smclientcreate', 'smclientcreate'); | |||
| as is this | |||
| so ... huh? | |||
| diakopter | well there's 4 there in teh first C line | ||
| timotimo | there is? | ||
| diakopter | counting the first (output) one | ||
| timotimo | oh? so i have to supply the variable i want the return value to be put into as the first argument in nqp, too? | 02:29 | |
| is the 3 there correct in the C code? | |||
| diakopter | no | ||
| timotimo | OK | 02:30 | |
| that has to be 4, yes? | |||
| so, how do i make it work? :\ | 02:31 | ||
| i can't supply my variable there, because it'll say "cannot accept void register" | |||
| huh, half past 3 already?! | |||
| i better get some sleep. | |||
| diakopter | :) | 02:34 | |
| timotimo | don't think you're off the hook just yet! | 02:37 | |
| jnthn | Tiem for some sleep & | 02:41 | |
| diakopter | 'n | ||
|
02:44
benabik joined
|
|||
| benabik | Hm. 19-file-ops.t failures 36-40: reading a{ line till {CR,CRLF,LF,EOF},n empty line} | 04:24 | |
|
05:50
jnap joined
|
|||
| FROGGS | benabik: that is kinda expected, jnthn had to change the way we detect newlines | 07:33 | |
| but I dunno if this will affect rakudo, I guess not | 07:34 | ||
|
07:59
jnap joined
08:09
Mouq joined
08:22
FROGGS joined
08:32
odc joined
09:00
jnap joined
10:01
jnap joined
10:02
Mouq joined
|
|||
| jnthn | MoarVM 2014.01 is tagged, and release is here: jnthn.net/MoarVM/MoarVM-2014.01.tar.gz | 10:15 | |
| hoelzro | \o/ | 10:16 | |
| FROGGS | I am testing it (again) after current p-spectest | ||
| nwc10 | good UGT jnthn | 10:17 | |
| FROGGS | jnthn: what do we do about this? t/spec/S06-advanced/callframe.rakudo.parrot ..................... Failed 1/9 subtests | 10:20 | |
| jnthn | FROGGS: I dunno, why's it fail? | ||
| FROGGS | not ok 2 - callframe().line | 10:21 | |
| # got: '14' | |||
| # expected: '15' | |||
| almost looks like the test is off | |||
| jnthn | What do other backends think? | ||
| FROGGS | jnthn: all think the same | 10:22 | |
| FROGGS is looking at the test file now | |||
| jnthn | What does a human thing? :) | ||
| *think | |||
| FROGGS | 14 sub f() { | 10:23 | |
| 15 is callframe().line, $baseline + 5, 'callframe().line'; | |||
| what do you think? | |||
| 14, right? | |||
| jnthn | Hmm | 10:24 | |
| Well, but I think it's meant to be the line where callframe is? | |||
| FROGGS | yeah, I see | 10:25 | |
| I duplicated that test line, and the second invocation succeeds | |||
| jnthn | Odd... | ||
| FROGGS | even | ||
| jnthn | Was one of the commits that fixed line number related things on Moar to blame? | ||
| FROGGS | I will check | 10:26 | |
| I think there only are two related commits... trying something with one of them | 10:30 | ||
| nr: say callframe().line | 10:32 | ||
| camelia | rakudo-parrot c5ca99, rakudo-jvm c5ca99, rakudo-moar c5ca99, niecza v24-109-g48a8de3: OUTPUT«1» | ||
| FROGGS | nr: sub foo {say callframe().line} | ||
| camelia | ( no output ) | ||
| ..niecza v24-109-g48a8de3: OUTPUT«Potential difficulties: &foo is declared but not used at /tmp/tmpfile line 1:------> sub foo ⏏{» | |||
| FROGGS | nr: sub foo {say callframe().line}foo | ||
| camelia | rakudo-parrot c5ca99, rakudo-jvm c5ca99, rakudo-moar c5ca99, niecza v24-109-g48a8de3: OUTPUT«2» | ||
| FROGGS | nr: sub foo {say callframe().line}foo | 10:33 | |
| camelia | rakudo-parrot c5ca99, rakudo-jvm c5ca99, rakudo-moar c5ca99, niecza v24-109-g48a8de3: OUTPUT«5» | ||
| FROGGS | umm, wait | 10:53 | |
| the fudged script gets a line stripped | |||
| jnthn: it is just this commit: github.com/perl6/roast/commit/de89...33dbaea330 | 10:54 | ||
| we need to adjust our expectations :o) | |||
| yeah, niecza gets it wrong too of course... fixing it | 10:57 | ||
|
11:01
jnap joined
|
|||
| timotimo | i still don't understand what i'm doing wrong when trying to register my extops with mast | 11:31 | |
| smclientcreate is set to have 4 arguments, one of which is a write register, so i *should* be fine passing 3 arguments and using the return value, no? | |||
| jnthn | timotimo: Yes, the nqp:: op mapping should do the "write register is result" thing for you | 11:32 | |
| timotimo: Presumably you made the write register the first operand? | |||
| timotimo | where should i look if it fails? | ||
| yes, i did | |||
| OH DUH | 11:33 | ||
| jnthn | Well, how does it fail? | ||
| You can always do --target=mast | |||
| Or failing that,--target=mbc --output=x.moarvm and then moar --dump x.moarvm | |||
| timotimo | forgot to put $ before the MVM_operand_foo numbers | ||
| jnthn | oops | ||
| FROGGS | yeah, $$ is what you need | 11:34 | |
| babe | |||
| timotimo | :) | 11:35 | |
| #2 MVM_string_utf8_encode_substr (tc=0x603430, str=0x7ffff65e2cf8, output_size=0x0, start=start@entry=0, length=11258999068426240) at src/strings/utf8.c:291 | 11:48 | ||
| 291 memset(result, 0, sizeof(MVMint32) * length + 2); | |||
| (gdb) print length | |||
| $18 = 11258999068426240 | |||
| seems legit. | |||
| jnthn | long string is long | 11:50 | |
|
11:50
Mouq joined
|
|||
| timotimo | it's supposedly "-e" | 11:51 | |
| its flags is 0, meaning STR_TYPE_UINT32 | 11:52 | ||
| its codes = 0, doesn't that mean its length is 0? | |||
| ah, whoa | |||
| graphs = 18014398509481984, | |||
| how did that happen? | |||
| nwc10 | r: printf "%016X", 18014398509481984 | 11:53 | |
| camelia | rakudo-parrot c5ca99, rakudo-jvm c5ca99, rakudo-moar c5ca99: OUTPUT«0040000000000000» | ||
| moritz | a single bit set | 11:54 | |
| timotimo | huh. | ||
| it may not be a MVMString | 11:55 | ||
| what do i have to cast the .st.WHAT to to get the right structure? | |||
| i have to .get_str on it %) | 11:58 | ||
| SecMoar: couldn't create a socket pair: Success ← oh how i love errno :) | 11:59 | ||
| ah! "On success, zero is returned." | 12:00 | ||
| jnthn | hehe | ||
| timotimo | hm. i have a BOOTIO, but it seems like i'm supposed to have an MVMOSHandle | 12:01 | |
| in general, how do i find my way to these? i should probably pass the class with the nqp op, right? | 12:02 | ||
|
12:02
jnap joined
|
|||
| jnthn | timotimo: You're confusing type and REPR | 12:03 | |
| BOOTIO is a type based on the MVMOSHandle REPR. | |||
| timotimo | ah, huh. | 12:04 | |
| jnthn | What're you trying to do? | ||
| timotimo | i have a file descriptor in a C struct and i'd like to expose that as a handle to nqp/perl6 land via an op | ||
| oh, huh | |||
| i apparently forgot to even set the fd itself | |||
| jnthn | Not sure how to get from fd to a thingy that'll work out with the various IO ops; I guess see libuv docs to see if they have a way...or see how getstdin and the like do it | 12:08 | |
| timotimo | sure | 12:12 | |
| it would appear that i'll have to use libuv's pipe mechanism instead of the one unix gives me | 12:17 | ||
| which is a tad annoying, as i'm bound to linux anyway | |||
| oh well. on unix, it's a unix domain socket rather than a normal pipe | 12:18 | ||
| that's kind of annoying | |||
| but at least the uv_pipe has a built-in notion of passing file descriptors, so that's already nicer than a regular socketpair | |||
| but apparently uv_pipe_open is what i need | 12:21 | ||
| jnthn: so i'm creating my handle with MVMOSHandle * const result = (MVMOSHandle *)MVM_repr_alloc_init(tc, tc->instance->boot_types.BOOTIO); and returning that as the object register like this: GET_REG(tc, 0).o = (MVMObject *)result; | 12:31 | ||
| shouldn't that give me an object with the MVMOSHandle REPR? | |||
| jnthn | timotimo: Yes, it should | 12:45 | |
| timotimo | time to debug i guess | ||
| jnthn | Those two lines look correct, so maybe the issue is elsewhere | 12:46 | |
| I mean, I guess you are populating the object in some way before returning it? | |||
| timotimo | yes | 12:48 | |
| yeah, the repr is apparently type 7 rather than 8 | 12:54 | ||
| the other way around. | |||
| apparently that's a P6int | |||
| d'oh | |||
| i'm an idiot | |||
|
13:03
jnap joined
13:38
Mouq joined
|
|||
| timotimo | strings confuse me. | 13:45 | |
| the string's content seems to be correct, but the graphs number is totally off | 13:46 | ||
| FROGGS | my cats enjoy 'em | ||
| timotimo: so what level is it correct? at byte level? | |||
| timotimo | yes, i'm casting the individual int32s to char and letting them be printed out | 13:47 | |
| in gdb | |||
| and the string is what i expect it to be and it's even null terminated | |||
| jnthn | The NUM_GRAPHS(...) should be the number of 32 bit things | 13:50 | |
|
14:04
jnap joined
15:04
jnap joined
15:27
Mouq joined
16:00
FROGGS joined
17:15
Mouq joined
17:24
guest1338 joined
17:56
FROGGS[mobile] joined
19:02
woolfy joined
19:03
Mouq joined
19:27
tgt joined
19:57
tgt joined
|
|||
| FROGGS | r: say "\c[ARMENIAN DRAM SIGN]".ord | 20:01 | |
| camelia | rakudo-moar bbbebb: OUTPUT«1423» | ||
| ..rakudo-parrot bbbebb, rakudo-jvm bbbebb: OUTPUT«===SORRY!=== Error while compiling /tmp/tmpfileUnrecognized character name ARMENIAN DRAM SIGNat /tmp/tmpfile:1------> say "\c[ARMENIAN DRAM SIGN⏏]".ord» | |||
| timotimo | \o/ | 20:02 | |
| FROGGS | r: say 0x058F | ||
| camelia | rakudo-parrot bbbebb, rakudo-jvm bbbebb, rakudo-moar bbbebb: OUTPUT«1423» | 20:03 | |
| FROGGS | yay :o) | ||
| (our own stuff)++ | |||
|
20:14
Mouq joined
20:36
odc joined
21:26
ggoebel1112 joined
22:13
japhb joined
22:24
woolfy1 joined
23:05
tgt joined
23:14
dalek joined
|
|||
| dalek | arVM: 6e85b9c | jnthn++ | src/core/coerce.c: Increase precision in num => str coercion. |
23:48 | |