Camelia, the Perl 6 bug

IRC log for #parrot, 2013-10-08

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:06 rurban1 joined #parrot
00:12 Psyche^ joined #parrot
00:20 davidfetter_ joined #parrot
00:33 davidfetter__ joined #parrot
01:06 rurban1 joined #parrot
01:24 benabik joined #parrot
01:47 kid51 joined #parrot
01:57 woosley joined #parrot
02:07 rurban1 joined #parrot
02:18 dalek parrot: 4edb3d1 | util++ | docs/pmc/struct.pod:
02:18 dalek parrot: Fix t/examples/pod.t failure in docs/pmc/struct.pod: code marked as PIR is really PASM_FRAGMENT_INVALID.
02:18 dalek parrot: review: https://github.com/parrot/parrot/commit/4edb3d105d
02:30 travis-ci joined #parrot
02:30 travis-ci [travis-ci] parrot/parrot#918 (master - 4edb3d1 : Bruce Gray): The build passed.
02:30 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/5264436752f5...4edb3d105d96
02:30 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/12257330
02:30 travis-ci left #parrot
02:46 rurban1 joined #parrot
03:54 preflex_ joined #parrot
05:07 zby_home joined #parrot
05:29 rurban1 joined #parrot
06:31 denis_boyun joined #parrot
06:35 denis_boyun joined #parrot
06:40 rurban1 joined #parrot
07:42 rurban1 joined #parrot
08:26 FROGGS joined #parrot
08:43 rurban1 joined #parrot
09:43 rurban1 joined #parrot
10:44 rurban1 joined #parrot
11:46 rurban1 joined #parrot
11:58 Mike-PerlRecruiter_ joined #parrot
12:10 denis_boyun joined #parrot
12:28 denis_boyun joined #parrot
12:32 denis_boyun joined #parrot
12:46 rurban1 joined #parrot
13:05 PacoAir joined #parrot
13:24 dalek nqp/buglet: 90050fd | (Tobias Leich)++ | / (13 files):
13:24 dalek nqp/buglet: buglet
13:24 dalek nqp/buglet: review: https://github.com/perl6/nqp/commit/90050fd474
13:35 darbelo joined #parrot
13:39 bluescreen joined #parrot
13:46 rurban1 joined #parrot
14:34 denisboyun joined #parrot
14:47 rurban1 joined #parrot
14:56 benabik joined #parrot
15:10 denisboyun joined #parrot
15:32 rurban1 joined #parrot
15:39 benabik joined #parrot
16:07 denisboyun joined #parrot
16:09 dalek parrot/new-packfile-api: b77f276 | (Gerhard R)++ | / (3 files):
16:09 dalek parrot/new-packfile-api: Add Parrot_pf_single_sub_by_tag() to packfile API.
16:09 dalek parrot/new-packfile-api: Additionally, add method first_sub_in_const_table() to PackfileView PMC as
16:09 dalek parrot/new-packfile-api: a stopgap measure until properly tagged subs are generated.
16:09 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/b77f2764b1
16:09 dalek parrot/new-packfile-api: 2c730f5 | (Gerhard R)++ | src/pmc/imccompiler.pmc:
16:09 dalek parrot/new-packfile-api: Enable new API by returning PackfileView instead of Eval from IMCCompiler
16:09 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/2c730f586f
16:09 dalek parrot/new-packfile-api: 8e7165b | (Gerhard R)++ | / (15 files):
16:09 dalek parrot/new-packfile-api: Use new packfile API
16:09 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/8e7165b7dc
16:09 dalek parrot/new-packfile-api: e38b4cb | (Gerhard R)++ | / (8 files):
16:09 dalek parrot/new-packfile-api: Remove Eval PMC
16:09 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/e38b4cbc22
16:09 dalek parrot/new-packfile-api: 47634a6 | benabik++ | / (26 files):
16:09 dalek parrot/new-packfile-api: Merge branch 'new-packfile-api' of github.com:gerdr/parrot
16:09 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/47634a6345
16:30 FROGGS joined #parrot
16:51 timo joined #parrot
16:51 timo good day
16:52 timo i'm trying to implement an op to check if one string has another string as a substring at a given offset in an efficient way, i.e. no allocations of extra strings along the way
16:52 timo this is for NQP, btw
16:53 timo just adding a simple inline op nqp_string_equal_at(out INT, in STR, in STR, in INT) { $1 = 0 }; causes the resulting nqp executable to segfault or throw random errors around
16:53 timo even though i don't even use that op anywhere yet
16:53 timo how can i debug this?
16:54 benabik Parrot is still fairly amenable to standard debugging via gdb/lldb/VC.  Is the segfault in your op or somewhere random
16:55 timo it's in another op, the one i got was in ... hold on
16:55 timo i don't have the correct nqp executable around any more for the core dump, but it was in some Parrot_..._str_... op
16:55 timo not in mine
16:56 Zefram are you perturbing the numbering of the preexisting ops?
16:56 timo oh. yes. would that be it?
16:56 timo i thought they were accessed by name, not by position in the source file
16:56 benabik bytecode to op mapping is somewhat complex.
16:56 timo mhh, may be problems with the bootstrap?
16:57 Zefram bytecode references ops by number, so if you change the op numbering then the result isn't compatible with old bytecode
16:57 timo damnit, i should have known :(
16:58 timo (or somebody else should have told me what an idiot i was being)
16:58 timo i'm trying a recompile with the new op at the very bottom now
16:59 FROGGS timo: I have added ops to nqp.ops in the middle, it didn't break anything
16:59 timo of course it works now ...
16:59 benabik No.
16:59 benabik Each bytecode has a custom number to op mapping.
16:59 PacoAir joined #parrot
16:59 benabik I'm just trying to recall how that opmap is stored.
17:00 timo out of curiosity, what does :base_core mean after an op signature?
17:01 FROGGS timo: but you added it before END_OPS_PREAMBLE ?
17:01 FROGGS err, after
17:01 benabik But the opmap is library and op number in library.  So you probably do have to re-compile any PBC that relies on the oplib.
17:01 timo FROGGS: oh. i did.
17:01 timo is that very bad?
17:01 benabik Oh.  No?
17:02 FROGGS timo: the code above the END_OPS_PREAMBLE is pure C, after that it gets parsed by the op grammar, dunno how it is called
17:02 benabik Man PBC is a really complex format.
17:02 timo huh
17:02 timo the thing that creates all the alternatives for inlining?
17:03 FROGGS possible
17:03 Coke the :foo markers were a way to add metadata to ops. I am not sure, but I think ":deprecated" was the only one that did anything. (my knowledge in this area is rather stale)
17:03 Coke ISTR making deprecated actual spit out a warning, though.
17:06 Coke I think base_core was meant to indicate an op that was parrot of parrot's core op load.
17:06 timo ah, ok
17:07 benabik Sorry, opmap stores number to library name and op name.  So PBCs are fairly immune to oplib changes.
17:07 Coke s/parrot/part/:1st
17:08 timo https://gist.github.com/timo/52395df81b4041114c30 - this segfaults. am i using the string iterators incorrectly?
17:09 timo oh, haha
17:09 timo i use the hay iter twice, that's dumb
17:11 timo i *can* use two string iters at the same time, yes?
17:12 Zefram that's the reason for iterators to be reified
17:12 timo i'm surprised i can't pass the string to STRING_ITER_init
17:13 * benabik is mostly unfamiliar with string guts.
17:13 timo needle_iter = {bytepos = 0, charpos = 0} - this isn't correct, i'm pretty sure
17:17 timo wow, why is the charpos such a huge number? it seems to be initialised to point at the wrong string or something? :\
17:18 timo it also seems like my handling of $4 to get the int value of the offset is wrong, can you take a quick look at that?
17:21 FROGGS that doesn't look wrong to me
17:22 FROGGS except that this check will never work: https://gist.github.com/timo/52395df​81b4041114c30#file-gistfile1-txt-L20
17:24 timo oh, because it's uint
17:24 timo wow, i am smart.
17:25 FROGGS :o)
17:25 timo thank you
17:25 timo that explains why my debugging session just showed a $bignum for offset
17:25 FROGGS now you an optimize out that condition *g*
17:26 benabik Also you should compare the offset to $2->strlen because you might end up checking if BIGNUM < $3->strlen in L27 if the offset is too large.
17:28 timo oh, mhm
17:29 timo also, the code doesn't seem to work :)
17:29 FROGGS hehe
17:31 timo yes, i was comparing with the length of the haystack rather than the needle for the inner for loop
17:34 timo this is the final version and it works! :)
17:34 timo thanks for the support
17:43 rurban how can we test new-packfile-api? #937
17:45 benabik Ensure it doesn't break any of parrot's own tests and then test the corresponding ticket in NQP for NQP/Rakudo, I'd think.
17:45 benabik It might be a breaking change for any language using Parrot, but it's one we've been wanting to make.
17:45 rurban well, removing eval seems to be a big step for all our kids
17:49 Coke partcl's been broken for years, don't worry about me.
17:49 benabik 1) there are few active languages.  2) most forward looking work uses NQP, so if we fix that in parallel, those are good.
17:50 benabik Although we should make sure nqp-rx also works.
17:51 rurban1 joined #parrot
18:01 rurban Fixing a few minor codingstd problems, and then testing nqp and nqp-rx...
18:02 denisboyun joined #parrot
18:14 rurban I got several -fpermissive problemns in nqp/new-packfile-api with g++ which have nothing to do with parrot/new-packfile-api
18:17 dalek parrot/new-packfile-api: d40e79e | rurban++ | / (2 files):
18:17 dalek parrot/new-packfile-api: [coding_std] minor #937 issues
18:17 dalek parrot/new-packfile-api:
18:17 dalek parrot/new-packfile-api: ending whitespace in t/pmc/sub.t
18:17 dalek parrot/new-packfile-api: superfluous get_packfile_eval_pmc in src/pmc/imccompiler.pmc
18:17 dalek parrot/new-packfile-api: review: https://github.com/parrot/parrot/commit/d40e79e0a5
18:20 rurban joined #parrot
18:38 rurban1 joined #parrot
18:49 timo where do i have to look to find the string equality method nqp runs? in the compiler it seems it just pushes a pirop called 'eq', but string.ops doesn't contain an op called 'eq'
18:50 timo ah, ops/cmp.ops seems to have it
18:53 Util rurban: Since we are within 1 week of a Parrot release, consider uncoupling the "remove eval" part of the branch from the "make eval no-longer-needed" part.
18:54 Util The "make eval no-longer-needed" part gets tested and merged pre-release, and "remove eval" can have a longer testing period after the release on the 15th.
18:55 arnsholt timo: If your NQP/Parrot hacking leads to segfaults, I recommend adding --parrot-option='--ccflags=-g3' to your Configure.pl flags
18:55 arnsholt It makes finding things A LOT simpler
18:55 timo ah, that's a good hint
18:55 timo i think i'm on a very good path now, since pm just gave me a very good hint
18:56 arnsholt Spiffy
18:56 arnsholt I can't recommend -g3 enough. It includes macro definitions in the debugging data, so you can even expand macros in gdb
18:57 arnsholt Which is really useful, since Parrot and NQP both use macros liberally
18:57 dalek nqp/eqat_op: aa949a8 | (Timo Paulssen)++ | src/vm/ (4 files):
18:57 dalek nqp/eqat_op: add nqp::eqat to jvm and parrot.
18:57 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/aa949a8d92
18:57 dalek nqp/eqat_op: d0a8aad | (Timo Paulssen)++ | src/vm/parrot/stage0/ (9 files):
18:57 dalek nqp/eqat_op: update bootstrap files
18:57 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/d0a8aad340
18:57 dalek nqp/eqat_op: 9bbc310 | (Timo Paulssen)++ | src/ (5 files):
18:57 dalek nqp/eqat_op: use the new nqp::eqat op in a couple of places
18:57 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/9bbc31003d
19:05 rurban1 joined #parrot
19:06 rurban Util: Sounds good. One week? pmichaud wants to have the new-packfile-api getting merged
19:08 Util rurban: That is the call of the Release Manager, who is dukeleto this time. I am writing him an email now, briefing him on the situation.
19:08 pmichaud Yeah, I know the timing might be a little tight for packfile api.
19:08 Util Normally, no branch merges for the week before a release.
19:09 rurban We'd need to add deprecation notices to eval.pmc then
19:10 Util rurban: Good idea
19:11 rurban But I'm a bit busy with my potion release now
19:12 pmichaud ....hasn't eval.pmc been deprecation noticed for like almost a year now?!?
19:13 rurban Haven't checked, could be
19:13 rurban my head is somewhere else
19:13 pmichaud I mean, this is a significant change that was being talked about at the beginning of the year... I'd be.... disappointed if nobody thought to dep notice it until now.
19:16 rurban yes, Eval PMC is listed in api.yaml as deprecated
19:17 pmichaud anyway, I don't know how quickly I'll be able to get to the nqp side of the equation, so I don't feel like I should push for the packfile-api merge for the Parrot release, given that there's less than a week left to release.
19:17 pmichaud I'd prefer to keep it as I had it before... Parrot can merge when its ready, and nqp/rakudo will follow along sometime thereafter.
19:18 rurban ok, sounds good. I see if I can detangle the eval removal  from the new pf api
19:19 rurban BTW Deprecate Eval PMC was decided 4 years ago. https://github.com/parrot/parrot/issues/453
19:20 Util rurban: Thanks, for both the detangling and finding #453 .
19:20 rurban Bah, we should rather change both, They are entangled and eval is deprecated long enough
19:21 pmichaud My impression was that it was too difficult to both add packfile_api and keep evalpmc.
19:21 pmichaud so it had to be a backwards-incompatible change.
19:23 pmichaud ...which is why nqp and rakudo have to be careful about coordinating their changes with Parrot release dates.
19:23 rurban yeah, looks like so
19:23 rurban 5.9.0 looks like a good target
19:25 pmichaud will the october release be 5.8.0 or 5.9.0, ooc?
19:26 rurban oct is 5.9 already...
19:26 Util pmichaud: IMHO, 5.9.0.
19:27 rurban anyway, the branch looks good to me being merged today.  I'll leave it to pmichaud to decide when he wants it
19:28 rurban The other main changes for 5.9.0 are readall on eof
19:29 pmichaud rurban: my point is that I don't want to make that decision.
19:29 pmichaud I want to react to what Parrot does, not tell Parrot what to do.
19:29 rurban ha :)
19:29 Util pmichaud: Thanks for that. I am finishing my email to dukeleto now.
19:29 rurban so lets dukeleto decide then
19:29 pmichaud if Parrot decided to abandon the packfile_api branch altogether, that would also be fine with me.
19:30 Util #ps in 1m . What great timing :^)
19:30 pmichaud oh, I was about to head to lunch.... I'll stick around for #parrotsketch though if it would help.
19:30 Util pmichaud: If that is abandoned what route will NQP take to acheive the same end?
19:31 pmichaud Util: I don't know.  But in some sense NQP doesn't feel a strong compulsion to achieve the same end.
19:31 pmichaud We'd like to have a way to go directly from HLL source to .pbc, and packfile api was going to be the answer to that.  But if it doesn't appear, NQP and Rakudo can live with what Parrot has now.
19:33 dalek nqp/eqat_op: 4cc669c | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
19:33 dalek nqp/eqat_op: special case same-encoding strings, length-1 needles.
19:33 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/4cc669c4ee
19:33 pmichaud As rurban noted, this whole task is something that was identified 3-4 years ago.  If we've lived without it for at least 4 years, I suspect we can live without it for quite a while longer.
19:33 pmichaud ("we" being "NQP/Rakudo" in this case)
20:17 rurban1 joined #parrot
20:22 dalek nqp/eqat_op: ec7c8fc | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
20:22 dalek nqp/eqat_op: STRING_ord takes chars, not bytes. local var thinko.
20:22 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/ec7c8fc048
20:22 dalek nqp/eqat_op: d60ae78 | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp:
20:22 dalek nqp/eqat_op: replace some eqat with ordat at compiletime.
20:22 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/d60ae7898a
20:25 dalek nqp/eqat_op: 2c6e75b | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
20:25 dalek nqp/eqat_op: fix comment.
20:25 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/2c6e75bea7
20:40 rurban So lets tell dukeleto that we'll wait for the updated nqp new-packfile-api branch. There should be no hurry
20:49 dalek parrot: d1c24ab | rurban++ | ChangeLog:
20:49 dalek parrot: Updated ChangeLog for release 5.9.0
20:49 dalek parrot: review: https://github.com/parrot/parrot/commit/d1c24ab68c
20:55 pmichaud Util, others:  Would it be okay for me to add a few methods to the EvalPMC to make it easier to switch NQP over?
20:55 pmichaud (EvalPMC can still go away when the packfile api branch merges... this would just help with migrating nqp over)
20:57 Util pmichaud: Yes, as long as the addition is not in the master branch until after the release.
21:11 FROGGS joined #parrot
21:14 travis-ci joined #parrot
21:14 travis-ci [travis-ci] parrot/parrot#919 (master - d1c24ab : Reini Urban): The build was broken.
21:14 travis-ci [travis-ci] Change view : https://github.com/parrot/parrot/c​ompare/4edb3d105d96...d1c24ab68cd9
21:14 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/12292232
21:14 travis-ci left #parrot
21:17 rurban1 joined #parrot
21:22 pmichaud Util: I was hoping to put it into the master branch before the release.
21:22 pmichaud It doesn't change any existing functionality, just adds a few items.
21:22 pmichaud it would enable nqp to move to the new api even before packfile-api is merged.
21:23 Util pmichaud: Today?
21:23 pmichaud could be this evening, yes.
21:23 pmichaud since evalpmc is deprecated anyway, it shouldn't be an issue.
21:23 pmichaud (I totally understand if it is an issue, and will go with whatever parrot leaders decide)
21:24 pmichaud I'll do it in a branch for tonight.
21:24 Util It shouldn't be an issue to evalpmc, but it could be an inadvertant issue to something in `make fulltest`.
21:24 pmichaud if it's ready, I'll propose that it be merged before release.
21:25 pmichaud I'd be surprised if it affects 'make fulltest'... but that could certainly be a condition for merging the branch.
21:25 Util When you have the branch ready, let me know. I will look at it, and dukeleto or I will make a decision on inclusion in this release.
21:26 pmichaud how do you prefer to be notified?
21:28 * pmichaud runs 'make fulltest' on parrot master to get a baseline.
21:30 Util pmichaud: email
21:30 Util IRC is OK too, tonight
21:47 rurban1 joined #parrot
22:03 dalek parrot/pm-evalpmc-api: de3ac86 | pmichaud++ | src/pmc/eval.pmc:
22:03 dalek parrot/pm-evalpmc-api: Add 'all_subs' method to EvalPMC.
22:03 dalek parrot/pm-evalpmc-api:
22:03 dalek parrot/pm-evalpmc-api: This provides API compatibility with the upcoming PackFilePMC changes
22:03 dalek parrot/pm-evalpmc-api: and gives NQP something to target for conversion.
22:03 dalek parrot/pm-evalpmc-api: review: https://github.com/parrot/parrot/commit/de3ac86cb8
23:13 rurban1 joined #parrot
23:18 dalek nqp: 4c66315 | coke++ | t/docs/opcodes.t:
23:18 dalek nqp: remove unneeded use.
23:18 dalek nqp: review: https://github.com/perl6/nqp/commit/4c66315635
23:18 dalek nqp: 23768fd | coke++ | t/docs/tests.t:
23:18 dalek nqp: Add test to see if opcodes are tested
23:18 dalek nqp: review: https://github.com/perl6/nqp/commit/23768fd8ed
23:24 dalek nqp/eqat_op: 84eac7b | coke++ | docs/ops.markdown:
23:24 dalek nqp/eqat_op: add docs for eqat opcode
23:24 dalek nqp/eqat_op: review: https://github.com/perl6/nqp/commit/84eac7b181
23:26 rurban1 joined #parrot
23:41 dalek nqp: 3e2c825 | coke++ | t/docs/tests.t:
23:41 dalek nqp: consider bootstrap and QAST as testing.
23:41 dalek nqp:
23:41 dalek nqp: jnthn++
23:41 dalek nqp: review: https://github.com/perl6/nqp/commit/3e2c8255ab
23:41 rurban1 joined #parrot

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

Parrot | source cross referenced