Camelia, the Perl 6 bug

IRC log for #parrot, 2012-03-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:15 sri joined #parrot
00:17 jsut_ joined #parrot
00:34 wagle joined #parrot
00:36 losinggeneration joined #parrot
00:50 losinggeneration joined #parrot
01:07 PacoAir_ joined #parrot
01:21 * whiteknight is working on packfile code today
01:21 whiteknight too bad I don't have anything to push yet
01:53 losinggeneration joined #parrot
02:32 dalek parrot/remove_sub_flags: 4a1968f | Whiteknight++ | / (10 files):
02:32 dalek parrot/remove_sub_flags: Drop the bomb on do_sub_pragmas, PackFile_fixup_subs and related machinery. IMCC now handles :immediate and :postcomp. :load and :init are NOT automagically triggered on packfile load. Parrot exe builds but predictably doesn't run right
02:32 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/4a1968f7e0
02:32 whiteknight BAM
02:40 whiteknight so much work left to do for this transition. It's almost depressing
02:47 dalek parrot/remove_sub_flags: 019116f | Whiteknight++ | / (8 files):
02:47 dalek parrot/remove_sub_flags: Remove :init and :load flags from the IMCC grammar, with associated bookkeeping
02:47 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/019116f41f
02:47 dalek parrot/kill_props_vtables: e40e72a | bacek++ | t/pmc/namespace.t:
02:47 dalek parrot/kill_props_vtables: Update test to latest list of vtables.
02:47 dalek parrot/kill_props_vtables: review: https://github.com/parrot/parrot/commit/e40e72a592
02:52 dalek parrot/kill_props_vtables: 6f6d7d0 | bacek++ | t/src/extend_vtable.t:
02:52 dalek parrot/kill_props_vtables: Update test to remove prop VTABLEs testing.
02:52 dalek parrot/kill_props_vtables: review: https://github.com/parrot/parrot/commit/6f6d7d071a
02:54 losinggeneration joined #parrot
02:57 travis-ci joined #parrot
02:57 travis-ci [travis-ci] parrot/parrot#95 (remove_sub_flags - 019116f : Whiteknight): The build is still failing.
02:57 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/4a1968f...019116f
02:57 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790047
02:57 travis-ci left #parrot
02:58 whiteknight dukeleto: ping
03:12 dalek parrot/remove_sub_flags: daad65b | Whiteknight++ | / (139 files):
03:12 dalek parrot/remove_sub_flags: [ci skip] replace :init and :load with :tag('init') and :tag('load') respectively
03:12 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/daad65b475
03:12 dalek parrot/remove_sub_flags: c7934d0 | Whiteknight++ | .travis.yml:
03:12 dalek parrot/remove_sub_flags: [ci skip] Don't run travis builds on this branch yet, it's not in a buildable state
03:12 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/c7934d09d6
03:20 travis-ci joined #parrot
03:20 travis-ci [travis-ci] parrot/parrot#97 (kill_props_vtables - 6f6d7d0 : Vasily Chekalkin): The build passed.
03:20 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/e40e72a...6f6d7d0
03:20 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790083
03:20 travis-ci left #parrot
03:43 jsut joined #parrot
06:00 dalek parrot/remove_sub_flags: d54121c | cotto++ | / (12 files):
06:00 dalek parrot/remove_sub_flags: [ci skip] fix results of an overeager search and replace
06:00 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/d54121c4b7
06:58 bacek cotto, ping
06:59 cotto bacek, pong
07:00 bacek cotto, I want to merge my branch soon. E.g. now
07:00 bacek any objections? :)
07:00 cotto no hll prolems?
07:00 cotto yes, if so.  It's a good branch.
07:01 bacek ok
07:01 bacek There is additional branch in nqp. I'll merge it as well.
07:01 cotto and no test failures?
07:01 bacek One-line patch for rakudo required.
07:01 bacek Nope, all tests are fine
07:02 dalek parrot: c662128 | dukeleto++ | .travis.yml:
07:02 dalek parrot: [ci] Tell Travis to use a perl worker and test under perl 5.10 and 5.14
07:02 dalek parrot: review: https://github.com/parrot/parrot/commit/c662128655
07:02 bacek (parrot, nqp, and rakudo)
07:02 cotto good times
07:03 bacek seen moritz
07:03 aloha moritz was last seen in #perl6 4 hours 54 mins ago saying "r: constant fib = 0, 1, *+* ... *; say fib[100]".
07:03 bacek aloha, clock?
07:03 aloha bacek: LAX: Sat, 23:03 PST / CHI: Sun, 01:03 CST / NYC: Sun, 02:03 EST / UTC: Sun, 07:03 UTC / LON: Sun, 07:03 GMT / BER: Sun, 08:03 CET / TOK: Sun, 16:03 JST / SYD: Sun, 18:03 EST
07:03 cotto tests look good for me too
07:03 cotto apart from some unexpected passes on select.t
07:03 cotto *one unexpected pass
07:04 bacek cotto, yes. It was passing for me for quite few times already.
07:04 bacek But not on all my boxes.
07:04 benabik select.t is problematic
07:04 bacek seen jnthn
07:04 aloha jnthn was last seen in #perl6 7 hours 12 mins ago saying "Time for sleep...'night".
07:05 bacek ookey.
07:06 cotto I'm happy.  merge whenever you're ready.
07:06 travis-ci joined #parrot
07:06 travis-ci [travis-ci] parrot/parrot#98 (master - c662128 : Jonathan "Duke" Leto): The build was broken.
07:06 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/021101f...c662128
07:06 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790769
07:06 travis-ci left #parrot
07:06 fperrad joined #parrot
07:09 dalek parrot: 47bfa1f | bacek++ | / (20 files):
07:09 dalek parrot: Merge branch 'kill_props_vtables'
07:09 dalek parrot: review: https://github.com/parrot/parrot/commit/47bfa1ff8b
07:13 dalek nqp/kill_props_vtables: cc387d7 | bacek++ | tools/build/PARROT_REVISION:
07:13 dalek nqp/kill_props_vtables: Bump parrot revision to kill_props_vtables marge commit.
07:13 dalek nqp/kill_props_vtables: review: https://github.com/perl6/nqp/commit/cc387d7bde
07:14 travis-ci joined #parrot
07:14 travis-ci [travis-ci] parrot/parrot#99 (master - 47bfa1f : Vasily Chekalkin): The build is still failing.
07:14 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/c662128...47bfa1f
07:14 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790801
07:14 travis-ci left #parrot
07:15 dukeleto joined #parrot
07:15 cotto It's nice to finally use all_hll_test to test a merge
07:15 cotto hio dukeleto
07:16 cotto though all languages won't pass before the nqp and rakudo patches get merged
07:16 dalek parrot: 5555d82 | dukeleto++ | .travis.yml:
07:16 dalek parrot: [ci] Perl versions must be quoted because they are strings
07:16 dalek parrot: review: https://github.com/parrot/parrot/commit/5555d82a4e
07:16 dukeleto cotto: coolio
07:17 dukeleto bacek: i accidentally messed up our travis.yml, which is why your branch merge tests failed. just ignore that
07:17 bacek dukeleto, I do. Travis is too noisy and unreliable.
07:21 travis-ci joined #parrot
07:21 travis-ci [travis-ci] parrot/parrot#100 (master - 5555d82 : Jonathan "Duke" Leto): The build is still failing.
07:21 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/47bfa1f...5555d82
07:21 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790821
07:21 travis-ci left #parrot
07:22 dukeleto blarg.
07:22 dukeleto No good deed goes unpunished.
07:27 dalek parrot: 86ddac4 | dukeleto++ | .travis.yml:
07:27 dalek parrot: [ci] Specify a dummy install command so cpanminus is not invoked, since it doesn't know what to do with Parrot
07:27 dalek parrot: review: https://github.com/parrot/parrot/commit/86ddac4833
07:45 travis-ci joined #parrot
07:45 travis-ci [travis-ci] parrot/parrot#101 (master - 86ddac4 : Jonathan "Duke" Leto): The build is still failing.
07:45 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/5555d82...86ddac4
07:45 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790845
07:45 travis-ci left #parrot
07:52 dalek parrot: d82182c | dukeleto++ | .travis.yml:
07:52 dalek parrot: [ci] Submitting smoke tests requires LWP::UserAgent as a dependency
07:52 dalek parrot: review: https://github.com/parrot/parrot/commit/d82182cd85
07:52 dukeleto bacek: if you have useful criticisms, I am all ears. But I am allergic to negativity. If you want me to turn of travis notifications, put it to a vote on parrot-dev
07:53 dukeleto s/turn of/turn off/
08:00 bacek dukeleto, yes, I do. Check latest builds. About 80% of failures was travis failures, not parrot's.
08:01 bacek and less-than-awesome handling of branches is really really disturbing...
08:01 dukeleto bacek: what?
08:02 bacek "I do want it switched off"
08:02 dukeleto bacek: that is because I am hacking on our travis config and I am testing it live instead of trying to install a local travis instance and test that way
08:02 dukeleto bacek: put it to a vote
08:03 dukeleto bacek: and describe exactly what you want turned off: mail notification, irc notification, etc
08:03 bacek dukeleto, mail notifications. IRC, CI, etc are fine
08:03 dukeleto bacek: and i have no clue what you mean by "LTA handling of branches"
08:04 dukeleto bacek: i can make it only run on master, but that seems suboptimal. We can put that to a vote too, though.
08:04 bacek dukeleto, there is no distinguish between failed build in branch and failed build in master.
08:04 sorear fwiw I unsubscribed from parrot-dev when travis started posting
08:04 cotto I'd like to see it do master by default and opt-in for branches
08:05 dukeleto cotto: how does opt-in work?
08:05 cotto dukeleto, opposite of [ci skip]
08:05 dukeleto sorear: well that is pretty curmudgeonly, since parrot-dev has been pretty quiet lately
08:05 dukeleto but alas, to each their own
08:06 sorear when it was quiet I could handle it
08:06 dukeleto "I like the sound of a dead baby, it is so quiet"
08:06 dukeleto Over the line, smokey.
08:06 * dukeleto goes back into his cave
08:09 bacek dukeleto, there is too much of ad crap in travis' mail. A LOT of it.
08:10 dalek parrot: c7f99d7 | dukeleto++ | .travis.yml:
08:10 dalek parrot: [ci] Only run Travis on the master branch and only on 5.14 for now
08:10 dalek parrot: review: https://github.com/parrot/parrot/commit/c7f99d751b
08:10 cotto the plaintext version isn't bad
08:10 cotto the html version is a little noisy
08:10 travis-ci joined #parrot
08:10 travis-ci [travis-ci] parrot/parrot#102 (master - d82182c : Jonathan "Duke" Leto): The build is still failing.
08:10 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/86ddac4...d82182c
08:10 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790905
08:10 travis-ci left #parrot
08:19 dalek rakudo/nom: 943e4c5 | moritz++ | src/core/Cool.pm:
08:19 dalek rakudo/nom: correct the sub form of comb
08:19 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/943e4c5f2f
08:20 dalek nqp: 572970e | bacek++ | src/ (2 files):
08:20 dalek nqp: Update to latest parrot with replaceing prop VTABLEs with standalone functions
08:20 dalek nqp: review: https://github.com/perl6/nqp/commit/572970edfa
08:20 dalek nqp: cc387d7 | bacek++ | tools/build/PARROT_REVISION:
08:20 dalek nqp: Bump parrot revision to kill_props_vtables marge commit.
08:20 dalek nqp: review: https://github.com/perl6/nqp/commit/cc387d7bde
08:24 dalek rakudo/nom: 3ce70e6 | moritz++ | / (2 files):
08:24 dalek rakudo/nom: bump NQP revision, and get rid of VTABLE_getprop
08:24 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/3ce70e62f4
08:25 travis-ci joined #parrot
08:25 travis-ci [travis-ci] parrot/parrot#103 (master - c7f99d7 : Jonathan "Duke" Leto): The build is still failing.
08:25 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/d82182c...c7f99d7
08:25 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/790940
08:25 travis-ci left #parrot
09:01 dalek rakudo/nom: 42695ea | moritz++ | docs/ChangeLog:
09:01 dalek rakudo/nom: add :ex and :nth adverbs to ChangeLog
09:01 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/42695ead9e
09:34 d0as8 joined #parrot
09:34 d0as8 left #parrot
10:33 mj41 joined #parrot
10:57 ascent joined #parrot
11:39 whiteknight joined #parrot
11:41 nine good morning, whiteknight
11:41 whiteknight hello nine.
11:43 nine whiteknight: I'm currently reading up on how a method invokation in Parrot actually works. I think/hope this is the only place left where thread memory separation does not yet work as it should, tripping up GC.
11:43 whiteknight That wouldn't surprise me
11:45 nine This stuff is....complicated
12:04 whiteknight yeah, unnecessarily so in some places
12:05 whiteknight If you have any questions about it I can probably help
12:08 nine I do have questions for sure...but have to clear the table right now, lunch is calling
12:25 whiteknight ok
12:29 jsut_ joined #parrot
13:38 nine whiteknight: my current approach is to copy interp->vtables and replace all PMCs in those vtables by proxies. This way find_method returns a proxy to the method in question. invoke therefore runs proxied. But then the method gets executed with the interp of the main thread not the current one. If I change that to run invoke with the thread's interp, it trips up stuff like inspect_str used to get at the class
13:39 nine whiteknight: I wonder if it might be better to just copy all the class stuff as well...but copying is what we want to get away from.
13:40 nine whiteknight: maybe you have some idea for a completely different approach? Fixing problems just to turn up new ones usually means I'm overlooking something fundamentally different.
13:43 benabik joined #parrot
13:49 benabik joined #parrot
13:51 whiteknight nine: that's a great question. bytecode is read-only and methods on a class shouldn't change much. I don't think we need to proxy methods
13:51 benabik Good morning, #parrot
13:51 whiteknight hello benabik
13:52 whiteknight nine: The underlying problem, I think, is that Sub PMC contains way too much state. Eventually we need to cut that down so Sub PMC is essentially a read-only interface around read-only bytecode
13:52 PacoAir joined #parrot
13:52 whiteknight then it won't matter where it's invoked from
13:54 benabik Oh, that reminds me.  I met someone at the University of Rochester who tried to do threading in Parrot for a while.  He seemed glad someone was getting farther with it than he did.
13:55 whiteknight Fixing Sub is going to have to be my next big project, after these :load/:init shenanigans
14:27 whiteknight blah, PGE is a gigantic hassle of weird dependency chains
14:44 whiteknight and double-blah, it looks like parrot is executing :tag('load') subs out of order now
14:44 whiteknight that's even worse
14:45 benabik :load subs are supposed to be done in-order?
15:24 whiteknight yeah
15:25 whiteknight during packfile serialization we sort the list of tags so that finding a range of them by name can be done with a simple binary search
15:25 whiteknight so I suspect that mechanism is mixing them up
15:26 whiteknight So I'm going to have to re-sort them according to idx in the constants table
15:28 whiteknight It actually won't be so bad. I'll create an RIA of constant indices, sort that, and then use it as a lookup into the constants table
15:49 Psyche^ joined #parrot
15:52 nine whiteknight: read only subs sound great. But still they'd have to be proxied because the GC must not find any PMCs belonging to a different interp.
15:52 whiteknight nine: Okay, that's fine too. If Subs are much smaller and much thinner, copying them won't be an issue
15:52 benabik If they're read only, can we assign them to "no GC" or something?
15:52 whiteknight right now Sub.clone is the best we have and it isn't free
15:53 whiteknight benabik: in the future when they are read-only, yes. Right now Sub has way too much state
15:53 benabik Or, "no/all interp" rather
15:53 benabik copying thin ones might be better anyway
15:53 benabik Was just a random idea.
15:54 nine To be precise: currently I run mark_code_segment(interp) only on the main thread. But I know much too little about code segments to say if that suffices to share code between all threads. My guts say no.
15:55 nine whiteknight: any idea how I may hack it into some runnable state so I can conduct benchmarks for the final chapter of my paper?
15:56 whiteknight nine: I'm trying to make sure I understand the problem completely. So you are running into conflicts and GC shenanigans when invoking methods on a different thread?
15:56 nine whiteknight: worse: the problems arise when I try to run methods on the current thread. Just because the meta data (class objects, namespaces and such) come from a different thread (the main thread)
15:57 whiteknight does the object exist on the current thread or on the main thread?
15:58 nine the current one. To be precise, when executing task = interp.'current_task'()
15:59 nine It does not get more local than that :)
16:01 whiteknight and what's the error you're getting?
16:06 nine It very much depends on which version of the code. Have tried different things. The original problem is that the GC finds these method objects in the method cache and marks them though they belong to a different interp. I tried to create proxies but then the methods themselves still get called with the other interp. I added an exception to Proxy so invoke would still use the thread's interp, but this leads to http://paste.scsys.co.uk/185049
16:07 nine I added an origin_interp field to the PMC base struct and an assertion to Parrot_gc_mark_PMC_alive checking if the PMC marked belongs to the current interp.
16:09 nine That's what I meant by fixing one problem turns up another one :)
16:18 dalek parrot/remove_sub_flags: 811fd6e | Whiteknight++ | / (17 files):
16:18 dalek parrot/remove_sub_flags: [ci skip] Update several uses of the load_bytecode op to use the new loading sequence
16:18 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/811fd6ee8c
16:20 whiteknight nine: is there any way to tell GC not to mark method caches if you're not on the main thread?
16:21 whiteknight or add an ->owner_interp param to Sub, and in Sub.mark don't do anything unless INTERP == self->owner_interp
16:28 whiteknight brb, roof
16:53 benabik roof?
17:32 nine roof?
17:36 nine whiteknight: method caches are certainly possible. But still GC could very well kick in during method execution so it would for sure find Subs elsewhere. owner_interp is a nice hack for me to debug threading, but I'm sure we don't want to keep it. It's enlarging every single PMC. We may keep it on Subs though till a better solution is possible
17:42 nine whiteknight: even if I do not mark the Subs, I'd still have to keep the GC of the main thread from collecting them... Many places in which things can go wrong.
17:57 whiteknight yeah, GC has always been a hassle
17:57 whiteknight benabik: roof is that thing that keeps the rain out
17:57 benabik whiteknight: Is it not doing it's job?
17:58 whiteknight it is, mostly. I need to take down the rest of the xmas lights and check a few places to make sure it's not leaking
17:58 brambles joined #parrot
17:58 whiteknight most of the christmas lights helpfully took themselves down, with a combination of wind and gravity
17:58 benabik The wind's been killer here this weekend.
17:58 benabik Was driving the snow so hard I thought it was hail.
18:01 whiteknight our roof is a year or two away from end-of-life, so I am trying to keep a close eye on it
18:02 benabik Probably a good idea.
18:04 whiteknight Since we've only been in the house for a few months, every weather-related event is the first time, and we need to see how the house handles it
18:04 whiteknight first snow, first ice storm, first freezing rain, first driving rain, first wind over 20mph, etc
18:07 benabik Our house had had most of that work done recently before we moved in so I didn't have to worry too much.
18:08 whiteknight This house had a lot of things replaced recently (windows, A/C, plumbing, kitchen, etc) but the roof was not one of them
18:09 jsut joined #parrot
20:41 aloha (parrot/parrot) Issues opened : 723 (ops2c doesn't handle ':deprecated' op pragma.) by bacek : https://github.com/parrot/parrot/issues/723
20:44 dalek parrot: 4a482c7 | bacek++ | src/ops/pmc.ops:
20:44 dalek parrot: Add new getprop variant and deprecate old one. Part of #351
20:44 dalek parrot: review: https://github.com/parrot/parrot/commit/4a482c7ee0
20:44 dalek parrot: a8dd597 | bacek++ | / (4 files):
20:44 dalek parrot: Rebootstrap ops
20:44 dalek parrot: review: https://github.com/parrot/parrot/commit/a8dd597b88
20:59 travis-ci joined #parrot
20:59 travis-ci [travis-ci] parrot/parrot#104 (master - a8dd597 : Vasily Chekalkin): The build is still failing.
20:59 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/c7f99d7...a8dd597
20:59 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/794192
20:59 travis-ci left #parrot
21:04 jsut_ joined #parrot
21:14 whiteknight bacek++
21:33 dalek parrot/remove_sub_flags: c3cb390 | Whiteknight++ | / (7 files):
21:33 dalek parrot/remove_sub_flags: [ci skip] several library load_bytecode fixes, including some to generated code in ext/ to get the build further along. Runs coretest with results not as bad as might be expected
21:33 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/c3cb3909be
22:03 dalek parrot: 675a804 | petdance++ | config/auto/byteorder.pm:
22:03 dalek parrot: remove capture from match
22:03 dalek parrot: review: https://github.com/parrot/parrot/commit/675a8046fa
22:10 tadzik make: *** [pbc_to_exe] Segmentation fault
22:10 tadzik cool :)
22:13 tadzik it went away after 'make clean' luckily
22:18 travis-ci joined #parrot
22:18 travis-ci [travis-ci] parrot/parrot#105 (master - 675a804 : Andy Lester): The build is still failing.
22:18 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/a8dd597...675a804
22:18 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/794556
22:18 travis-ci left #parrot
22:36 whiteknight tadzik: what brachw as that?
22:56 bacek_at_work ~~
23:02 aloha (parrot/parrot) Issues closed : 722 (Properties related VTABLEs are deprecated) by bacek : https://github.com/parrot/parrot/issues/722

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

Parrot | source cross referenced