Parrot 5.7.0 "Azure-rumped Parrot" | parrot.org/ | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
Set by moderator on 6 October 2013.
00:06 rurban1 joined 00:12 Psyche^ joined 00:20 davidfetter_ joined 00:33 davidfetter__ joined 01:06 rurban1 joined 01:24 benabik joined 01:47 kid51 joined 01:57 woosley joined 02:07 rurban1 joined
dalek rrot: 4edb3d1 | util++ | docs/pmc/struct.pod:
Fix t/examples/pod.t failure in docs/pmc/struct.pod: code marked as PIR is really PASM_FRAGMENT_INVALID.
02:18
02:30 travis-ci joined
travis-ci [travis-ci] parrot/parrot#918 (master - 4edb3d1 : Bruce Gray): The build passed. 02:30
[travis-ci] Change view : github.com/parrot/parrot/compare/5...db3d105d96
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/12257330
02:30 travis-ci left 02:46 rurban1 joined 03:54 preflex_ joined 05:07 zby_home joined 05:29 rurban1 joined 06:31 denis_boyun joined 06:35 denis_boyun joined 06:40 rurban1 joined 07:42 rurban1 joined 08:26 FROGGS joined 08:43 rurban1 joined 09:43 rurban1 joined 10:44 rurban1 joined 11:46 rurban1 joined 11:58 Mike-PerlRecruiter_ joined 12:10 denis_boyun joined 12:28 denis_boyun joined 12:32 denis_boyun joined 12:46 rurban1 joined 13:05 PacoAir joined
dalek p/buglet: 90050fd | (Tobias Leich)++ | / (13 files):
buglet
13:24
13:35 darbelo joined 13:39 bluescreen joined 13:46 rurban1 joined 14:34 denisboyun joined 14:47 rurban1 joined 14:56 benabik joined 15:10 denisboyun joined 15:32 rurban1 joined 15:39 benabik joined 16:07 denisboyun joined
dalek rrot/new-packfile-api: b77f276 | (Gerhard R)++ | / (3 files):
Add Parrot_pf_single_sub_by_tag() to packfile API.

a stopgap measure until properly tagged subs are generated.
16:09
rrot/new-packfile-api: 2c730f5 | (Gerhard R)++ | src/pmc/imccompiler.pmc:
Enable new API by returning PackfileView instead of Eval from IMCCompiler
rrot/new-packfile-api: 8e7165b | (Gerhard R)++ | / (15 files):
Use new packfile API
rrot/new-packfile-api: e38b4cb | (Gerhard R)++ | / (8 files):
Remove Eval PMC
rrot/new-packfile-api: 47634a6 | benabik++ | / (26 files):
Merge branch 'new-packfile-api' of github.com:gerdr/parrot
16:30 FROGGS joined 16:51 timo joined
timo good day 16:51
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
this is for NQP, btw
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
even though i don't even use that op anywhere yet
how can i debug this?
benabik Parrot is still fairly amenable to standard debugging via gdb/lldb/VC. Is the segfault in your op or somewhere random 16:54
timo it's in another op, the one i got was in ... hold on 16:55
i don't have the correct nqp executable around any more for the core dump, but it was in some Parrot_..._str_... op
not in mine
Zefram are you perturbing the numbering of the preexisting ops? 16:56
timo oh. yes. would that be it?
i thought they were accessed by name, not by position in the source file
benabik bytecode to op mapping is somewhat complex.
timo mhh, may be problems with the bootstrap?
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 :(
(or somebody else should have told me what an idiot i was being) 16:58
i'm trying a recompile with the new op at the very bottom now
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 ...
benabik No.
Each bytecode has a custom number to op mapping.
16:59 PacoAir joined
benabik I'm just trying to recall how that opmap is stored. 16:59
timo out of curiosity, what does :base_core mean after an op signature? 17:00
FROGGS timo: but you added it before END_OPS_PREAMBLE ? 17:01
err, after
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.
timo FROGGS: oh. i did.
is that very bad?
benabik Oh. No?
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.
timo huh
the thing that creates all the alternatives for inlining?
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)
ISTR making deprecated actual spit out a warning, though.
I think base_core was meant to indicate an op that was parrot of parrot's core op load. 17:06
timo ah, ok
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
timo gist.github.com/timo/52395df81b4041114c30 - this segfaults. am i using the string iterators incorrectly? 17:08
oh, haha 17:09
i use the hay iter twice, that's dumb
i *can* use two string iters at the same time, yes? 17:11
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
benabik is mostly unfamiliar with string guts. 17:13
timo needle_iter = {bytepos = 0, charpos = 0} - this isn't correct, i'm pretty sure
wow, why is the charpos such a huge number? it seems to be initialised to point at the wrong string or something? :\\ 17:17
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:18
FROGGS that doesn't look wrong to me 17:21
except that this check will never work: gist.github.com/timo/52395df81b404...e1-txt-L20 17:22
timo oh, because it's uint 17:24
wow, i am smart.
FROGGS :o) 17:25
timo thank you
that explains why my debugging session just showed a $bignum for offset
FROGGS now you an optimize out that condition *g*
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:26
timo oh, mhm 17:28
also, the code doesn't seem to work :) 17:29
FROGGS hehe
timo yes, i was comparing with the length of the haystack rather than the needle for the inner for loop 17:31
this is the final version and it works! :) 17:34
thanks for the support
rurban how can we test new-packfile-api? #937 17:43
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
It might be a breaking change for any language using Parrot, but it's one we've been wanting to make.
rurban well, removing eval seems to be a big step for all our kids
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.
Although we should make sure nqp-rx also works. 17:50
17:51 rurban1 joined
rurban Fixing a few minor codingstd problems, and then testing nqp and nqp-rx... 18:01
18:02 denisboyun joined
rurban I got several -fpermissive problemns in nqp/new-packfile-api with g++ which have nothing to do with parrot/new-packfile-api 18:14
dalek rrot/new-packfile-api: d40e79e | rurban++ | / (2 files):
[coding_std] minor #937 issues

ending whitespace in t/pmc/sub.t superfluous get_packfile_eval_pmc in src/pmc/imccompiler.pmc
18:17
18:20 rurban joined 18:38 rurban1 joined
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:49
ah, ops/cmp.ops seems to have it 18:50
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:53
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:54
arnsholt timo: If your NQP/Parrot hacking leads to segfaults, I recommend adding --parrot-option='--ccflags=-g3' to your Configure.pl flags 18:55
It makes finding things A LOT simpler
timo ah, that's a good hint
i think i'm on a very good path now, since pm just gave me a very good hint
arnsholt Spiffy 18:56
I can't recommend -g3 enough. It includes macro definitions in the debugging data, so you can even expand macros in gdb
Which is really useful, since Parrot and NQP both use macros liberally 18:57
dalek p/eqat_op: aa949a8 | (Timo Paulssen)++ | src/vm/ (4 files):
add nqp::eqat to jvm and parrot.
p/eqat_op: d0a8aad | (Timo Paulssen)++ | src/vm/parrot/stage0/ (9 files):
update bootstrap files
p/eqat_op: 9bbc310 | (Timo Paulssen)++ | src/ (5 files):
use the new nqp::eqat op in a couple of places
19:05 rurban1 joined
rurban Util: Sounds good. One week? pmichaud wants to have the new-packfile-api getting merged 19:06
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.
Util Normally, no branch merges for the week before a release.
rurban We'd need to add deprecation notices to eval.pmc then 19:09
Util rurban: Good idea 19:10
rurban But I'm a bit busy with my potion release now 19:11
pmichaud ....hasn't eval.pmc been deprecation noticed for like almost a year now?!? 19:12
rurban Haven't checked, could be 19:13
my head is somewhere else
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.
rurban yes, Eval PMC is listed in api.yaml as deprecated 19:16
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
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.
rurban ok, sounds good. I see if I can detangle the eval removal from the new pf api 19:18
BTW Deprecate Eval PMC was decided 4 years ago. github.com/parrot/parrot/issues/453 19:19
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
pmichaud My impression was that it was too difficult to both add packfile_api and keep evalpmc. 19:21
so it had to be a backwards-incompatible change.
...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
5.9.0 looks like a good target
pmichaud will the october release be 5.8.0 or 5.9.0, ooc? 19:25
rurban oct is 5.9 already... 19:26
Util pmichaud: IMHO, 5.9.0.
rurban anyway, the branch looks good to me being merged today. I'll leave it to pmichaud to decide when he wants it 19:27
The other main changes for 5.9.0 are readall on eof 19:28
pmichaud rurban: my point is that I don't want to make that decision. 19:29
I want to react to what Parrot does, not tell Parrot what to do.
rurban ha :)
Util pmichaud: Thanks for that. I am finishing my email to dukeleto now.
rurban so lets dukeleto decide then
pmichaud if Parrot decided to abandon the packfile_api branch altogether, that would also be fine with me.
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.
Util pmichaud: If that is abandoned what route will NQP take to acheive the same end?
pmichaud Util: I don't know. But in some sense NQP doesn't feel a strong compulsion to achieve the same end. 19:31
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.
dalek p/eqat_op: 4cc669c | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
special case same-encoding strings, length-1 needles.
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.
("we" being "NQP/Rakudo" in this case)
20:17 rurban1 joined
dalek p/eqat_op: ec7c8fc | (Timo Paulssen)++ | src/vm/parrot/ops/nqp.ops:
STRING_ord takes chars, not bytes. local var thinko.
20:22
p/eqat_op: d60ae78 | (Timo Paulssen)++ | src/vm/parrot/QAST/Operations.nqp:
replace some eqat with ordat at compiletime.
p/eqat_op: 2c6e75b | (Timo Paulssen)++ | src/vm/jvm/runtime/org/perl6/nqp/runtime/Ops.java:
fix comment.
20:25
rurban So lets tell dukeleto that we'll wait for the updated nqp new-packfile-api branch. There should be no hurry 20:40
dalek rrot: d1c24ab | rurban++ | ChangeLog:
Updated ChangeLog for release 5.9.0
20:49
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
(EvalPMC can still go away when the packfile api branch merges... this would just help with migrating nqp over)
Util pmichaud: Yes, as long as the addition is not in the master branch until after the release. 20:57
21:11 FROGGS joined 21:14 travis-ci joined
travis-ci [travis-ci] parrot/parrot#919 (master - d1c24ab : Reini Urban): The build was broken. 21:14
[travis-ci] Change view : github.com/parrot/parrot/compare/4...c24ab68cd9
[travis-ci] Build details : travis-ci.org/parrot/parrot/builds/12292232
21:14 travis-ci left 21:17 rurban1 joined
pmichaud Util: I was hoping to put it into the master branch before the release. 21:22
It doesn't change any existing functionality, just adds a few items.
it would enable nqp to move to the new api even before packfile-api is merged.
Util pmichaud: Today? 21:23
pmichaud could be this evening, yes.
since evalpmc is deprecated anyway, it shouldn't be an issue.
(I totally understand if it is an issue, and will go with whatever parrot leaders decide)
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`.
pmichaud if it's ready, I'll propose that it be merged before release.
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.
pmichaud how do you prefer to be notified? 21:26
pmichaud runs 'make fulltest' on parrot master to get a baseline. 21:28
Util pmichaud: email 21:30
IRC is OK too, tonight
21:47 rurban1 joined
dalek rrot/pm-evalpmc-api: de3ac86 | pmichaud++ | src/pmc/eval.pmc:
Add 'all_subs' method to EvalPMC.

This provides API compatibility with the upcoming PackFilePMC changes and gives NQP something to target for conversion.
22:03
23:13 rurban1 joined
dalek p: 4c66315 | coke++ | t/docs/opcodes.t:
remove unneeded use.
23:18
p: 23768fd | coke++ | t/docs/tests.t:
Add test to see if opcodes are tested
p/eqat_op: 84eac7b | coke++ | docs/ops.markdown:
add docs for eqat opcode
23:24
23:26 rurban1 joined
dalek p: 3e2c825 | coke++ | t/docs/tests.t:
consider bootstrap and QAST as testing.

  jnthn++
23:41
23:41 rurban1 joined