|
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
|
|||