Camelia, the Perl 6 bug

IRC log for #parrot, 2012-03-21

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 benabik joined #parrot
00:17 * Coke yawns from Wednesday in the UK.
00:19 benabik Coke: Ahh!  It's a visitor from the future!
00:19 Coke (flag on GC newly created PMCs) ... I m very sure there used to be.
00:44 bacek_at_work ~~
00:45 bacek_at_work nine, ping
00:52 jsut joined #parrot
01:19 dalek parrot/remove_sub_flags: 4065d6e | Whiteknight++ | / (30 files):
01:19 dalek parrot/remove_sub_flags: Fix several library-related tests. Most fixes are simple updates of old load_bytecode_s to load_bytecode_p_s
01:19 dalek parrot/remove_sub_flags: review: https://github.com/parrot/parrot/commit/4065d6ef5a
02:15 dukeleto /quit
02:16 dukeleto blarg
02:16 benabik hah
02:20 dukeleto updating parrot.github.com needs more automation
02:24 cotto ~~
03:32 alester joined #parrot
05:08 preflex_ joined #parrot
05:16 dukeleto ~~
05:41 moritz good morning
05:41 moritz how's the release coming along?
06:04 dukeleto running fulltest now on what could be our release tag
06:07 moritz ok, great
06:13 dalek parrot: 3e77d40 | dukeleto++ | / (4 files):
06:13 dalek parrot: [nci] Fix definition of ffi_type_parrot_numval when NUMVAL_SIZE=16 and add some native pbc
06:13 dalek parrot: review: https://github.com/parrot/parrot/commit/3e77d4004c
06:20 dukeleto running release_check again for good measure
06:28 dukeleto release is tagged, feel free to nuke master from space
06:32 bacek_at_work Just typed in ~/src/parrot "git push origin :master".
06:33 bacek_at_work Should I press enter?
06:34 moritz not *that* kind of nuke
06:34 tadzik also, are you typing from space?
06:34 moritz though it wouldn't hurt too much, we could simply start a new master branch from the release tag
06:36 travis-ci joined #parrot
06:36 travis-ci [travis-ci] parrot/parrot#182 (master - 3e77d40 : Jonathan "Duke" Leto): The build is still failing.
06:36 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/0e75eb6...3e77d40
06:36 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/912013
06:36 travis-ci left #parrot
06:38 dalek nqp: ca74e29 | moritz++ | tools/build/PARROT_REVISION:
06:38 dalek nqp: bump parrot revision to 4.2.0 release
06:38 dalek nqp: review: https://github.com/perl6/nqp/commit/ca74e29152
06:38 dalek rakudo/nom: 1a468d8 | moritz++ | tools/build/NQP_REVISION:
06:38 dalek rakudo/nom: bump NQP revision to get parrot 4.2.0
06:38 dalek rakudo/nom: review: https://github.com/rakudo/rakudo/commit/1a468d853c
06:40 dukeleto bacek_at_work: andy lester rm' parrot.git on github accidentally right after i migrated it to github. It was awesome. But another push fixed it :)
06:40 dukeleto rm'ed, rather
06:42 dukeleto i will probably due release announcement stuff tomorrow. ETOOTIRED
06:45 moritz dukeleto++ #release
06:58 fperrad joined #parrot
07:25 nine bacek_at_work: pong
08:05 bacek joined #parrot
08:08 bacek joined #parrot
08:11 bacek joined #parrot
08:15 bacek joined #parrot
08:16 bacek ~~
08:29 mj41 joined #parrot
08:32 bacek joined #parrot
08:49 bacek joined #parrot
08:50 bacek joined #parrot
08:51 bacek joined #parrot
09:05 nine bacek: pong
09:49 lucian joined #parrot
09:56 bacek nine, aloha
09:57 bacek nine, can you explain in few words your current problems with GC and threads? And how you are handling (or trying to) handle them?
10:01 nine bacek: my current aproach is to let each interp (and thus thread) handle its own GC. Shared data is handled by creating Proxy PMCs which are used for accessing foreign data and act as a barrier for the GC.
10:06 nine Proxy forwards all VTABLE calls to the foreign PMC. I used to use the foreign PMC's interp for this but switched to using the thread's interp yesterday. When using the foreign interp, the problem is that the call may cause the foreign interp's GC to run. When using the thread's interp, the problem is that PMCs created during this call would already belong to the current interp, so I must not create proxies for these result PMCs.
10:06 dalek parrot: ddd6fb6 | fperrad++ | runtime/parrot/library/osutils.pir:
10:06 dalek parrot: [osutils] refactor with unlink/rmdir instead of rm
10:06 dalek parrot: review: https://github.com/parrot/parrot/commit/ddd6fb6d2a
10:06 jsut_ joined #parrot
10:07 nine Currently I have an orig_interp pointer on each PMC so I can check where it comes from and only create proxies for foreign PMCs. I also had the idea that I could temporarily tell the GC to set a flag on newly created PMCs which would be less expensive.
10:08 bacek nine, why to you need proxies?
10:08 bacek and flag will not help in generic case
10:08 bacek same problem as inter-generation links for GenGC
10:08 nine Because otherwise the GC would mark and sweep PMCs which belong to another interp (and thus GC)
10:08 bacek nine, nope. It wouldn't.
10:09 bacek each GC instance should only collect GCable which it allocated
10:09 nine Well, I have seen it doing it :) Spent the last couple of weeks tracking down cases where PMCs would wander unproxied from one interp to another tripping up the GC.
10:09 nine But I guess you know a different way of preventing this?
10:09 bacek it's weird
10:10 bacek nine, mmm. Probably
10:10 bacek Basic idea is:
10:10 bacek 1. Each child interp has own GC instance
10:11 bacek 2. Counting of allocations happens in root interp's GC
10:11 bacek 3. When GC is triggered - we merge all GC pools into root GC and do mark and sweep in root GC
10:12 bacek So, we don't have to (mostly) lock GC during allocations.
10:13 bacek Actually we can do it without lock at all. Even if we do non-precise calculation of allocated memory
10:13 bacek We only need lock and merge "pools" for mark and sweep run
10:13 bacek Something like this. Makes sense?
10:14 moritz don't you get race conditions between threads and the GC?
10:14 bacek moritz, nope.
10:15 bacek moritz, yes, we will have race on "allocated memory counting". But it's less problem.
10:15 bacek Every GC allocates from own pool.
10:15 nine We would have to stop all threads during the mark and sweep run. Otherwise threads would try to allocate during the pool merging.
10:15 bacek We just have to track all existing "GC instances" for merge purpose
10:16 bacek nine, yes. We have to stop-the-world for this
10:17 nine Just an hour ago I thought of a way to use the green thread infrastructure to stop the world quite easily. It's just hard to say which version would have better real world performance and the fewest threading problems.
10:19 bacek Yes, real world performance can't be tested until we implement anything.
10:19 bacek But with this approach we'll not affect single-thread performance
10:20 nine The idea behind using proxies was to use them to allow unlocked cross thread reading while preventing cross thread writes (forcing all writes to be done from the data owning thread). Using them for keeping GC domains separate followed quite naturally from that. Till now I didn't have to touch the GC at all and even the needed modifications to get the last cases to work are quite minimal.
10:21 bacek nine, you don't need proxies for this :) Look at how GenGC write barriers are implemented
10:22 bacek nine, just patch Pmc2c slightly to produce trampoline code before mutating VTABLEs/methods
10:22 nine bacek: for now I don't even understand what exactley write barriers are :)
10:23 bacek nine, to distinguish between reads and writes. For writes we have to notify GC that particular PMC was updated and should be handled during M&S even it's from old generation.
10:24 bacek nine, for the case of threads - s/old generation/different thread/ :)
10:25 nine aah...it basically just resets the generation counter.
10:26 moritz though I hope it's not just a counter, but being in a pool or another
10:26 bacek nine, not quite this. It marks PMC as dirty. And all dirty PMCs are handled during M&S in same run
10:27 bacek moritz, correct. There is special list for dirty objects.
10:28 travis-ci joined #parrot
10:28 travis-ci [travis-ci] parrot/parrot#183 (master - ddd6fb6 : Francois Perrad): The build is still failing.
10:28 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/3e77d40...ddd6fb6
10:28 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/912788
10:28 travis-ci left #parrot
10:28 nine But the principle is the same. We cannot treat a recently changed PMC as belonging to an old generation, because new members would not get marked.
10:28 moritz right
10:29 bacek nine, something like this. Look at src/gc/gc_gms.c. There is explanation of algorithm (including dirty list) in it
10:29 moritz (the only difference is one of performance. If you keep the generation count in the PMC header, you have to traverse all PMCs to find those of a particular generation count)
10:29 nine moritz: which would defeat the whole purpose of having generations
10:29 moritz correct
10:32 nine Well, since I have a deadline upcoming next week, I'll for now just continue on my current path. After all I'm not far away from having a version which runs meaningful benchmarks. If we want to be able to compare different implementations, we'll need those anyway.
10:32 moritz nine: are the proxies GCed right now?
10:32 nine moritz: yes, they are fairly normal PMCs
10:33 nine Oh, I just remembered: they still have to block GC marking during the call to the foreign PMC, since otherwise the GC could find foreign objects on the C stack.
11:42 dukeleto ~~
11:50 dukeleto api.yaml hasn't been updated in a while
11:50 dukeleto i should have added some entry to 4.2.0 about the getprop change
11:50 dukeleto but really, api.yaml needs to be updated when branches merge or a change happens. Putting the burden on the release manager is no bueno
11:53 dalek parrot: f623f49 | dukeleto++ | docs/project/release_manager_guide.pod:
11:53 dalek parrot: [doc] Linkify some filenames in the release manager guide so the HTML rendering on Github is more useful
11:53 dalek parrot: review: https://github.com/parrot/parrot/commit/f623f49158
12:09 dalek parrot: fefc6b7 | dukeleto++ | docs/project/release_manager_guide.pod:
12:09 dalek parrot: [doc][ci skip] Add a note about the auto_release.pl tool to the release manager guide
12:09 dalek parrot: review: https://github.com/parrot/parrot/commit/fefc6b72bc
12:10 travis-ci joined #parrot
12:10 travis-ci [travis-ci] parrot/parrot#184 (master - f623f49 : Jonathan "Duke" Leto): The build is still failing.
12:10 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/ddd6fb6...f623f49
12:10 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/913289
12:10 travis-ci left #parrot
12:25 dukeleto tarballs are here in case people want to test: ftp://ftp.parrot.org/pub/pa​rrot/releases/devel/4.2.0/
12:28 dalek website: dukeleto++ | Parrot 4.2.0 "Ornithopter" Released!
12:28 dalek website: http://www.parrot.org//news/2012/Parrot-4.2.0
12:29 nine Headline link wrong? http://news/2012/Parrot-4.2.0
12:33 Topic for #parrot is now Parrot 4.2.0 "Ornithopter" | http://parrot.org | Log: http://irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC
12:34 dukeleto nine: yeah, had to fix that
12:34 dukeleto https://www.parrot.org/news/2012/Parrot-4.2.0
12:34 dukeleto moritz++ # saving the release manager from doing more work :)
12:35 dukeleto nine: giving a link to your pdf in the release announcement should get more eyes on it :)
12:35 dukeleto nine: again, I am very impressed with your work, please keep on truckin'.
12:35 dukeleto nine: are you applying to GSoC this year?
12:35 nine dukeleto: wow....maybe I should write some more on it then
12:38 dukeleto nine: yes, please :)
12:38 dukeleto release URL redirects have been updated
12:38 dukeleto So. Many. Things.
12:38 dukeleto and we have somewhat orthogonal docs now, some for docs.parrot.org and some for parrot.github.com
12:41 nine dukeleto: never given GSoC much thought since I already have a full time job
12:43 dukeleto nine: are you a student?
12:43 nine dukeleto: yep
12:44 dukeleto nine: do you work full-time during the "summer" ? i.e. May-August?
12:44 nine dukeleto: yes
12:44 dukeleto nine: ok. Well, if you are already going to plan to be hacking on parrot in your free time, GSoC could still work for you
12:45 dukeleto nine: depends on your available time. You get $5-6K USD from Google from being part of GSoC
12:45 dukeleto nine: what does "full time" mean for you, if I may ask. 40/hr per week, roughly?
12:46 nine exactly 40 hrs per week
12:46 dukeleto nine: it is also a huge thing to put on your resume. Just about every ex-gsoc student that I know has gotten jobs because of their gsoc experience
12:47 dukeleto nine: you are already doing awesome work, so you are a good potential student. We just need to make sure you would have time to complete a proposal (that you come up with) in the allotted time
12:47 dukeleto nine: this is all up to you, but please think about it. I think you would make an awesome GSoC student.
12:48 dukeleto Ouch: a bug in random() on OpenBSD: https://banu.com/blog/42/openb​sd-bug-in-the-random-function/
12:49 nine dukeleto: to be frank, I don't care too much about my resume anymore since I already have 10 years of work experience and built a programming team from scratch. But still, GSoC might be a nice incentive to continue working on Parrot. I do not plan on abandoning it, but without the pressure from the university, I'll probably go a lot slower (which might be a bit healthier on the other hand...)
12:50 dukeleto nine: ah, i understand. I wasn't exactly sure about your age :) The resume stuff is important for younger students
12:50 dukeleto nine: whatever is best for you to keep on truckin' and get the threads branch, that is what I want :)
12:50 dukeleto nine: i am a big proponent of health
12:50 dukeleto s/get the threads branch/get the threads branch merged/
12:52 nine dukeleto: since I picked a topic that was much too advanced for a simple bachelor's thesis on the express reason that it would at least be useful work, I definitely want to see this stuff merged as well :)
12:52 nine dukeleto: I'm 29 btw. ;)
12:55 atrodo dukeleto++ # For the release
12:55 atrodo dukeleto++ # For the Dune reference
12:57 dukeleto atrodo: i do what i can :)
12:57 dukeleto nine: good to know ;) I am 30!
12:58 atrodo dukeleto> In my opinion, Dune isn't referenced nearly enough in pop culture
13:02 dukeleto atrodo: i agree
13:03 dukeleto atrodo: i only quote "canonical" Dune, FYI. Only Frank, not Brian and friends ;)
13:04 nine I definitely have to read Dune again. Have yet to read it in English...
13:04 atrodo dukeleto> Good choice.  I read all the prequals and the ending two books, and while I liked them, Frank was best.  That, and the ending of sandworms just really ruined it
13:05 dukeleto atrodo: yeah, the ending of chapterhouse dune (written by Brian) let me down, so I didn't read any more
13:05 whiteknight joined #parrot
13:05 atrodo Chapterhouse was the last of Frank's
13:06 dukeleto atrodo: Frank died before finishing Chapterhouse, so the end of it is by his son.
13:06 atrodo Wikipedia tells me it was published in '85 and Frank died in '86
13:07 dukeleto atrodo: you can sense a drop in quality about 3/4 of the way through the book
13:07 dukeleto atrodo: wikipedia can't be wrong, can it? ;)
13:07 atrodo Touche
13:07 dukeleto atrodo: I am not sure. That was what I heard on the grapevine. Needs investigation.
13:07 atrodo dukeleto> I will agree though, the ending was weird
13:11 dukeleto atrodo: but not the Weirding Way...
13:11 dukeleto atrodo: what have you been hacking lately?
13:11 dukeleto atrodo: i could use some of your tuits on the m0 branch if you are into it...
13:12 atrodo dukeleto> Sadly, nothing parrot related, a lot else going on
13:13 atrodo dukeleto> I wish i had tuits to give for m0, or anything related to that
13:20 dukeleto atrodo: ok. I might ask you for a code review on the m0 branch some time...
13:38 masak no parrot release email on the mailing list?
13:42 dukeleto masak: just haven't gotten there yet. It is only 6:43am localtime() :)
13:43 masak ah :)
13:44 masak dukeleto++ # release
13:47 * dukeleto just updated c2, parrot wiki and wikipedia
13:48 * moritz wonders if most of these update tasks should be decoupled from the release manager role
13:50 myhrlin joined #parrot
13:51 dukeleto moritz: yeah
13:51 dukeleto moritz: it is getting out of hand. I really like and want parrot.github.com, but the process is not automated and adds a lot to the release manager role
13:51 atrodo dukeleto> is it a matter of tuits to get it automated?
13:52 dukeleto atrodo: a bit of both
13:52 dukeleto a very simple script could automate 80% of parrot.github.com being updated
13:52 dukeleto we might even be able to add some kind of automated git hook for it
13:54 masak dukeleto: http://c2.com/cgi/wiki?ParrotCode -- s/February/March/
13:56 dukeleto masak++
13:57 masak also, c2.com says 21st, but http://en.wikipedia.org/wi​ki/Parrot_virtual_machine says 20th.
13:57 dukeleto masak: 20th is correct
13:58 dukeleto masak: release tag actually happened last night in my timezone
13:58 dukeleto masak: just updated c2 to match wikipedia
13:58 dukeleto masak: just sent out announcement emails as well
13:58 masak \o/
14:02 dukeleto masak: who is the next release manager for rakudo?
14:03 dukeleto masak: please send them my way if something is borked. I had to deal with some last-minute NCI/FFI shenanigans on this release
14:03 moritz I don't think we have one yet
14:03 moritz so it'll probably masak++ or me
14:03 moritz speaking of which, I could already start with collecting the news
14:03 dukeleto moritz: wear a helmet if you have NUMVAL_SIZE=16
14:05 moritz dukeleto: I promise not to touch such a platform anytime soon
14:05 moritz at least not for parrot/rakudo stuff
14:05 masak yeah, I'm willing to do Thursday's Rakudo release.
14:06 dukeleto moritz: actually, i got numval_size=16 on my ubuntu x64 linux box, when trying to generate native bytecode
14:06 dukeleto masak: i think something changed in my compiler toolchain.
14:06 dukeleto moritz: ^^^
14:07 * dukeleto is mis-tabbing this morning, due to waking up at 4am localtime
14:07 dukeleto masak: could you unban me from #perl6 ?
14:08 moritz dukeleto: done
14:08 * moritz adds to the tab confusion
14:09 dukeleto moritz++
14:18 aloha (parrot/parrot) Issues closed : 745 (sh tools/dev/mk_native_pbc fails) by leto : https://github.com/parrot/parrot/issues/745
14:18 dalek parrot: 9d15456 | dukeleto++ | / (5 files):
14:18 dalek parrot: Merge pull request #743 from gerdr/gerdr/mingw-gpp
14:18 dalek parrot:
14:18 dalek parrot: Fix g++ issues with Strawberry Perl on Win64
14:18 dalek parrot: review: https://github.com/parrot/parrot/commit/9d15456410
14:22 * dukeleto is trying to do his part to nuke master
14:23 dukeleto how do people feel about merging https://github.com/parrot/parrot/issues/363 ?
14:23 aloha (parrot/parrot) Issues closed : 743 (Fix g++ issues with Strawberry Perl on Win64) by gerdr : https://github.com/parrot/parrot/issues/743
14:38 travis-ci joined #parrot
14:38 travis-ci [travis-ci] parrot/parrot#185 (master - 9d15456 : Jonathan "Duke" Leto): The build is still failing.
14:38 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/fefc6b7...9d15456
14:38 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/914229
14:38 travis-ci left #parrot
14:40 * moritz puts travis-ci on his ignorelist
14:44 schmooster joined #parrot
14:49 dmalcolm joined #parrot
14:51 PacoAir joined #parrot
14:59 alester joined #parrot
15:02 whiteknight joined #parrot
15:03 benabik joined #parrot
15:05 whiteknight good morning, #parrot
15:05 whiteknight dukeleto++ on the release
15:05 dalek parrot: 34ee753 | petdance++ | / (4 files):
15:05 dalek parrot: Use proper /* */ C-style comments, not C++-style // comments which some compilers do not handle
15:05 dalek parrot: review: https://github.com/parrot/parrot/commit/34ee7539e9
15:06 alester shoot that shouldn't have push
15:06 moritz anything wrong with it?
15:06 moritz it's after the release :-)
15:06 alester no, is fine.
15:07 alester Why do we have frontend/parrot and parrot2?
15:08 ttbot Parrot 34ee7539 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/75106
15:08 alester There we go
15:08 dalek parrot: 16d0081 | petdance++ | frontend/parrot (2 files):
15:08 dalek parrot: remove nested comments
15:08 dalek parrot: review: https://github.com/parrot/parrot/commit/16d0081a1a
15:09 benabik People with full time jobs shouldn't apply to GSoC, IMHO.  Google is paying you on the assumption that you'll be working full time on the project.  So unless you're planning on working 80 hours a week...
15:09 benabik Although I just noticed I'm replying to a conversation from several hours ago.  Whatever.
15:10 whiteknight alester: frontend/parrot is the old one. frontend/parrot2 is the new version that uses an embedded PIR thunk to bootstrap execution
15:11 whiteknight frontend/parrot is also what miniparrot is built from
15:11 moritz benabik: iirc the GSoC assumption is that you work at least 20 or 25 hours on your project
15:11 moritz not quite full time
15:11 benabik We may want to rename parrot to mini-parrot and parrot2 to parrot.
15:12 benabik moritz: "While your organization may offer some flexibility around milestone completion dates, you should expect your project to be your primary focus this summer."
15:12 benabik moritz: They suggest that if you're getting an internship to not apply.
15:13 moritz benabik: "primary focus" is wonderfully vague :-)
15:13 benabik True.
15:13 alester as opposed to beer.
15:13 alester We're talking abotu college students.
15:13 benabik But I think they rather expect to be getting more than evening and weekend time for their $5k
15:13 * benabik shrugs.
15:13 moritz I have a stipend where I signed that in exchange for receiving the stipend, I make my PhD the primary focus of my life (but it didn't stop me from getting a child :-)
15:16 whiteknight benabik: frontend/parrot2 compiles down to "parrot"
15:17 whiteknight frontend/parrot compiles down to "miniparrot" (without config hash) and "parrot-old" (with config hash)
15:17 benabik whiteknight: And frontend/parrot compiles down to miniparrot, yes?  So why not name the directories after the binaries they create?
15:17 benabik parrot-old?
15:17 whiteknight for backwards compatibility
15:17 whiteknight we can probably remove it and clean things up now
15:17 whiteknight when I first made the change, I wanted it to be as smooth as possible
15:19 travis-ci joined #parrot
15:19 travis-ci [travis-ci] parrot/parrot#186 (master - 34ee753 : Andy Lester): The build is still failing.
15:19 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/9d15456...34ee753
15:19 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/914627
15:19 travis-ci left #parrot
15:20 benabik That makes sense.  Eases merging and the like.  I just think it's probably time to move it so it's clear.  :-D
15:34 travis-ci joined #parrot
15:34 travis-ci [travis-ci] parrot/parrot#187 (master - 16d0081 : Andy Lester): The build is still failing.
15:34 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/34ee753...16d0081
15:34 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/914641
15:34 travis-ci left #parrot
15:36 whiteknight benabik: parrot-old is used to compile frontend/parrot2/prt0.pir. I think we can change the build to use miniparrot instead, but that's going to take some playing
15:36 whiteknight I don't feel like it's a high-priority fix
15:37 benabik True enough
15:38 whiteknight After I get the remove_sub_flags branch mergable or close, and get the packfile api cleaned up I can look at it
15:40 fperrad joined #parrot
15:42 brambles joined #parrot
15:46 Psyche^ joined #parrot
15:47 mj41 joined #parrot
16:09 davidfetter joined #parrot
16:23 jsut joined #parrot
16:31 parthm joined #parrot
16:31 parthm left #parrot
17:10 contingencyplan joined #parrot
17:43 dukeleto msg moritz just fyi, travis is currently correctly reporting that the parrot test suite is failing on an optimized clang
17:43 aloha OK. I'll deliver the message.
17:43 dukeleto moritz: i agree that the failure message could be better
17:44 dukeleto moritz: working on it in my copious free time :)
17:44 moritz dukeleto: well, since nobody improved the clang support, I don't care much to learn that every single commit didn't fix it
17:50 dukeleto moritz: yep. I could change it to only report changes of status, iirc
17:50 dukeleto moritz: is that more to your liking?
17:52 moritz dukeleto: yes
17:56 cotto ~~
17:57 cotto dukeleto, how many tuits do you need?
17:57 cotto for m0
18:09 dalek parrot: a39d99f | petdance++ | frontend/parrot (2 files):
18:09 dalek parrot: remove the //-style comments that are causing problems embedded in comments
18:09 dalek parrot: review: https://github.com/parrot/parrot/commit/a39d99f919
18:09 dukeleto cotto: how many can I have? ;)
18:10 dukeleto cotto: i am close to getting the m0 c implementation inside of the normal-ish parrot build system
18:11 dukeleto cotto: there are a few unimplemented ops in the c implementation, still. I created a gh ticket with the exact error
18:12 cotto dukeleto, interesting
18:12 cotto next talk starts on the hour, so I have until ~then
18:17 dukeleto cotto: ok
18:17 dukeleto cotto: https://github.com/parrot/parrot/issues/733
18:17 cotto dukeleto, what's going kaboom?
18:17 cotto looking
18:18 dukeleto cotto: convert_i_n op is unimplemented in C implementation
18:18 dukeleto cotto: not sure why m0_hash.m0 is going to an infinite loop
18:18 cotto dukeleto, sounds fun
18:19 dukeleto cotto: i added an M0 ticket label as well, so we can actually see which tickets are for m0
18:19 dukeleto cotto: there is a make m0_tests now, in the main Makefile
18:19 dukeleto cotto: and make m0
18:19 cotto what's m0-debug?
18:19 dukeleto cotto: m0 will debugging symbols and such. I think chromatic added that.
18:19 dukeleto seen chromatic
18:19 aloha chromatic was last seen in #parrot 194 days 17 hours ago saying "In theory IMCC could rewrite the existing syntax to those flags.".
18:22 cotto dukeleto, the hash test does looping, so it's conceivable that a bug could cause an infinite loop
18:23 cotto it's most likely due to the unimplemented op, so that shouldn't be too hard a fix
18:23 cotto gimme a few minutes
18:26 cotto dukeleto, looks like set_byte needs to be implemented
18:26 travis-ci joined #parrot
18:26 travis-ci [travis-ci] parrot/parrot#188 (master - a39d99f : Andy Lester): The build is still failing.
18:26 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/16d0081...a39d99f
18:26 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/915832
18:26 travis-ci left #parrot
18:27 dukeleto cotto++
18:29 benabik Huh.  I think one of the -Werror options is causing gcc to explode on an icu header.
18:29 dalek parrot: 4b167c1 | petdance++ | tools/dev/pbc_to_exe.pir:
18:29 dalek parrot: All instances of get_program_code() need to return unsigned char *
18:29 dalek parrot: review: https://github.com/parrot/parrot/commit/4b167c1298
18:30 alester benabik: Tell me more.
18:30 benabik alester: /usr/local/Cellar/icu4c/4.8.1.​1/include/unicode/uset.h:250: error: function declaration isn’t a prototype
18:30 benabik alester: When building src/string/encoding/shared.c
18:30 alester Hmmm
18:30 alester Wonder if we can make that check be only for our code, but not outside headers.
18:33 whiteknight I doubt it
18:33 dalek parrot: 0b292f8 | dukeleto++ | .travis.yml:
18:33 dalek parrot: [ci] Only send IRC notifications when build status changes, for moritz++
18:33 dalek parrot: review: https://github.com/parrot/parrot/commit/0b292f8dab
18:36 cotto dukeleto, it wasn't set_byte (either that or I didn't implement it correctly)
18:37 alester Bah.
18:37 cotto I really need to build something to map numbers to names
18:37 cotto "31" isn't helpful
18:39 alester benabik: can you show me that uset.h file?  I don't have it.
18:40 alester or, I could just install libicu myself.
18:42 benabik alester: http://icu.sourcearchive.com/documen​tation/4.8.1.1-1/uset_8h_source.html
18:42 cotto dukeleto, the op is actually get_byte, but my implementation isn't making the test happy
18:43 alester Thanks.  I installed it anyway
18:43 alester Now waiting for the blowup
18:44 cotto d'oh.  'nother unimplemented op
18:44 cotto probably something important
18:45 benabik Perhaps unimplemented ops should explode instead of just being ignored?
18:45 cotto get_word
18:45 cotto used to figure out how long the string to be hashed is
18:45 cotto so that probably needs love
18:46 alester benabik: Were you on gcc or g++?
18:46 benabik alester: ccache-gcc
18:46 alester OH, yeah, I just assume ccache.  How did people live without it/
18:46 benabik By waiting a lot?
18:47 benabik Although Parrot is basically the only project that I use it with.  Although parrot is one of the largest things I build, so there's that.
18:47 dalek parrot/m0: 7a27563 | cotto++ | src/m0/c/m0_ops.c:
18:47 dalek parrot/m0: implement get_byte and set_byte for m0_c
18:47 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/7a27563f38
18:47 dalek parrot/m0: 22451c9 | cotto++ | src/m0/c/m0_ops.c:
18:47 dalek parrot/m0: tab -> space fix
18:47 dalek parrot/m0: review: https://github.com/parrot/parrot/commit/22451c9a02
18:47 alester So what is this icu4c library, benabik ?  Non-standard ICU?
18:48 benabik I think it's the standard ICU?
18:48 cotto dukeleto, if you can implement get_word in m0_c, that hash test might start to work.  no promises though
18:48 benabik Yeah, it's the C library from icu-project.org.  As opposed to icu4j
18:49 travis-ci joined #parrot
18:49 travis-ci [travis-ci] parrot/parrot#189 (master - 4b167c1 : Andy Lester): The build is still failing.
18:49 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/a39d99f...4b167c1
18:49 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/916063
18:49 travis-ci left #parrot
18:49 alester Hmm, wonder what my yum install gave me.
18:50 benabik Probably icu4c 4.8.1.1 or 4.6 based on what I see at rpmfind.
18:51 mj41 joined #parrot
18:52 alester Yours looks newer than mine
18:52 alester based on copyright date in uset.h
18:52 benabik Then you probably got 4.5
18:52 benabik 4.6, rather
18:53 alester I don't have the function openEmpty() like you do
18:53 alester and it should be openEmpty( void )
18:53 benabik :-(
18:53 alester which is what's making the compiler upset
18:54 alester There are options to turn on more warnings for system headers, but not a way to turn them off.
18:54 not_gerd joined #parrot
18:54 alester so I'll have to back off that -Werror=strict-prototypes
18:54 benabik Yup, looks like adding void in there makes it happy.
18:54 alester Sure.
18:54 not_gerd alester: by default, gcc shouldn't warn for system headers...
18:54 alester beucase the way it is now it knows nothing about what parameters are being passed in.
18:55 alester not_gerd: You're coming in late on this.
18:55 not_gerd alester: that's what the logs are for
18:55 benabik Hm.  Still the same way in 49.1.  I'll submit a bug to icu4c.  :-)
18:56 alester Good idea.
18:56 dalek parrot: 9f73c7d | petdance++ | config/auto/warnings.pm:
18:56 dalek parrot: Don't be so strict about prototypes because we can't control system libraries, and a function declaration of foo() instead of foo(void) makes this error trip.
18:56 dalek parrot: review: https://github.com/parrot/parrot/commit/9f73c7dc9c
18:58 not_gerd my uset.h file contains the non-prototype declaration and gcc doesn't warn
19:00 alester I'm not sure what to do with that.
19:00 alester benabik: does my latest commit fix it for you?
19:00 benabik not_gerd: Today was the first time it warned for me.  alester++ has been working on strengthening our warnings.
19:00 not_gerd from the gcc manual: "All warnings, other than those generated by `#warning' (see Diagnostics), are suppressed while GCC is processing a system header."
19:00 * benabik undoes the hack to the include file.
19:01 alester not_gerd: What is the conclusion you're trying to draw here?
19:02 benabik not_gerd: It depends on how they define "system header" then.  My icu4c isn't in a standard path, it has to be found via -I
19:02 benabik not_gerd: Whatever the theory, it's throwing an error in practice for me.
19:02 not_gerd benabik: that' sthe issue - sue -isystem instead
19:02 not_gerd ^use
19:03 benabik not_gerd: Well then, that's another bug for icu, as it's configuring via icu-config
19:03 cotto I like seeing allison++ jumping back into the fray.
19:04 alester not_gerd: I wonder if that behavior is also true if the warning is elevated to error with -Werror=
19:05 not_gerd -Werror= should have no affect as long as -Wsystem-headers isn't present as well
19:05 not_gerd ^effect
19:06 benabik alester: So far, so good.
19:06 benabik alester: And it's into testing, so the build completes.  \o/
19:06 benabik alester++
19:06 alester benabik: But did it throw the warning on uset.h?
19:06 alester when it built that .c file?
19:06 benabik Yes
19:06 alester ok
19:07 alester so, as not_gerd says here, the problem is in how ICU is getting found.
19:07 whiteknight What we really need to do is to decrease the number of warnings in src/ops/core_ops.c and other generated files, to reduce noise
19:07 benabik I really want to quiet our build process so I can notice warnings.
19:07 whiteknight otherwise, it's too hard to pick out any unusual warnings from "interesting" files
19:07 alester Agreed on both of those.
19:07 alester benabik: Can you change how your ICU gets found?
19:08 not_gerd I suspect parrot is to blame - see config/auto/icu.pm lines 393 and 396
19:09 alester Then let's get at that, so I can flip the error back on
19:10 alester Is there any reason to NOT quote the contents of $arg->{icuheaders}?
19:10 alester It seems an unnecessary optimization to get rid of the double quotes
19:11 dukeleto whiteknight: i am very impressed with the colorized warnings/errors from clang. It makes them much more readable.
19:11 benabik not_gerd: It's icu-config --cppflags
19:11 benabik not_gerd: Which gives -I/usr/local/yadda
19:12 alester Do you need to be specifying --icuheaders on your Configure.pl call?
19:13 benabik I specify --icu-config
19:14 alester and that makes gcc think they're not system headers?
19:14 benabik Because `icu-config --cppflags` returns `-I/usr/local/Cellar/icu4u/4.8.1.1`
19:14 alester I don't understand why that's a problem.
19:15 benabik Because -Werrors affects anything included via -I
19:16 alester OK, so ANYTHING you have to include via -I it doesn't think is a system header?
19:16 benabik Yeah.
19:16 nine benabik: 80 hrs is not so far from what I do right now with those evenings and weekends ;) But doing a little less and have actual spare time in the summer sounds very attractive
19:16 benabik -isystem makes it a system header.
19:16 benabik nine: Doesn't it though?
19:16 not_gerd or #pragma GCC system_header
19:16 alester So you could say "-isystem -I/usr/local/whatever"?
19:17 benabik I think it's `-isystem /usr/local/whatever`
19:17 alester Wouldn't be too hard to try
19:17 alester yeah, -isystem it is.
19:18 not_gerd if a directory is both added via -I and -isystem, the -isystem takes precedence, btw
19:18 benabik A solution that involves me changing my config is non-optimal.  I'm using the recommended way to configure icu as it's installed by a semi-major package manager (homebrew).
19:18 benabik So other people will probably hit the same error.
19:19 alester How about if we make ICU be -isystem in the Configure?
19:19 benabik Most people probably have icu in /usr/lib or /usr/local/lib so it works.
19:19 benabik If Configure can take the output of icu-config and massage it, that'd probably work.
19:20 alester I'm saying that for the ICU include, we should be using -isystem instead of -I
19:20 benabik At the moment, aren't we taking the value returned by icu-config?  Which uses -I.
19:21 alester I don't think so
19:21 travis-ci joined #parrot
19:21 travis-ci [travis-ci] parrot/parrot#191 (m0 - 22451c9 : Christoph Otto): The build passed.
19:21 travis-ci [travis-ci] Change view : https://github.com/parrot/par​rot/compare/926ab69...22451c9
19:21 travis-ci [travis-ci] Build details : http://travis-ci.org/parrot/parrot/builds/916263
19:21 travis-ci left #parrot
19:21 alester I don't see that the config is calling icu-config at all
19:21 alester How are you invoking Configure.pl, benabik ?
19:23 alester oh, isee where we are calling it.
19:24 benabik perl Configure.pl --ccflags="-I/usr/include/ffi" --libs="-lffi" --icu-config="$icudir/bin/icu-config" --mandir=/usr/local/share/man
19:24 dalek Rosella: 1b518b2 | Whiteknight++ | src/template/node/Eval.winxed:
19:24 dalek Rosella: [Template] Updated Winxed returns a Packfileview instead of an Eval. Fix Template Eval to assume this.
19:24 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/1b518b2af2
19:25 benabik Looks like we generate the directory from --prefix, actually.  Not what I'd expect.
19:27 alester I don't get any -I back from icu-config --cflags, only --cppflags
19:28 alester but I don't see that we call icu-config with --cppflags anyhere
19:29 benabik Yeah, we generate the header directory from the prefix, apparently.  Which is not what I'd expect.  But hey.
19:30 alester prefix of what?
19:31 alester Seems to me that anything that Configure.pl is detecting should s/-I/-isystem/g;
19:31 alester The only things that should be -I should in stuff that we build ourselves, include/parrot/ etc
19:33 benabik config/auto/icu.pm calls icu-config --prefix, then appends /include to it.
19:36 alester ok, and then that winds up in icu_dir
19:37 alester in the configu
19:37 alester I'm suggesting we change the -I on 393 and 396 to -isystem
19:38 benabik Yes, that would work.  not_gerd++
19:38 alester You want to try a patch?
19:38 alester before I commit?
19:38 alester I have it all sitting in my dir
19:38 alester I hate to create a branch just for this
19:38 benabik Give me a moment and I'll hand-patch it.
19:38 alester well
19:38 alester I'm also wanting to always quote the args
19:38 benabik Rakudo rebuild can wait.
19:39 alester benabik: https://gist.github.com/2151870
19:40 alester I'm trying it here too
19:41 benabik Why does the patch have . in the empty lines?
19:41 benabik My git does not like that.
19:41 alester oh, sorry
19:41 benabik s/^./ / fixes
19:41 alester I copied from the screen,
19:41 benabik Ah.
19:41 alester and I have spaces at EOL show as .
19:42 alester ssssooooorrry
19:42 alester Aside: Good gosh am I loving tmux
19:42 benabik Should have realized, as that's what my Vim does too.  Had to double-check I had actually replaced it.
19:42 benabik tmux sounds shiny.
19:42 alester Brian Hogan's book is fantastic
19:43 benabik Book on tmux?
19:43 alester y
19:43 benabik That seems to have fixed it, yes.
19:43 alester http://pragprog.com/book/bhtmux/tmux
19:43 benabik Now the only warning I see is this stupid PACKAGE redefined thing
19:43 alester OK, i'm gonna commit that
19:43 benabik Pragmatic Programmers are awesome.
19:44 alester They are.  There's another book of theirs you should get too.
19:44 alester http://pragprog.com/book/alg​h/land-the-tech-job-you-love
19:44 alester That one's their best.  Buy 100 copies of it.
19:45 lucian joined #parrot
19:45 benabik I dunno.  The author's main experience seems to be "the open source community".  Can I trust that?  ;-)
19:45 dalek parrot: a6b9346 | petdance++ | config/auto/ (2 files):
19:45 dalek parrot: Turn the strict-prototypes back to an error.
19:45 dalek parrot: Include the ICU flags as -isystem instead of -I, so GCC knows to ignore warnings in ICU includes.
19:45 dalek parrot: not_gerd++ for showing the way, and benabik++ for being the guinea pig.
19:45 dalek parrot: review: https://github.com/parrot/parrot/commit/a6b93466fc
19:46 alester Let's see if anything on taptinder or travis barfs.
19:46 benabik travis probably won't say anything until we fix the optimized clang build.
19:46 alester Anyway, the tmux book is great.  I just started on it this weekend and I've overhauled how I work.
19:47 alester Thanks for pushing, not_gerd.
19:47 alester stronger errors be better.
19:49 not_gerd alester: glad to be of help
19:49 dukeleto Nice work fixing that icu issue
19:49 alester Yay teamwork.
19:51 dukeleto alester: if you keep talking about tmux, i might have to try it
19:51 alester It's really swell.
19:51 benabik Now that we've fixed a build issue, time for me to go to my class on build systems.  :-D
19:51 * dukeleto has a few years of scripts around screen, tho
19:51 dukeleto benabik: extra credit!
19:53 alester It doesn't say much for the work project I'm on that I'd rather fix a build system. :-(
19:55 nine Am I the only one who would buy much more stuff online if he didn't have to create new accounts for everything?
19:56 crassus paypal is the answer
19:58 nine not for pragprog.com
19:58 nine But they support openid which I could set up on my own server
19:59 cotto at the keynote at dupalcon today, mozilla's ceo talked about a unified identity thing that they're working on called Persona.  It sounded shiny
19:59 cotto no relation to personas
20:00 cotto http://identity.mozilla.com/
20:00 cotto </threadjack>
20:01 allison I've got two test failures in Parrot 4.0 (and 4.2) on Debian Sid: t/dynpmc/gziphandle.t and t/dynpmc/select.t
20:01 allison Has anyone encountered these elsewhere?
20:02 alester Hey, cotto, have you seen any Greg Dunlap at Drupalcon?
20:02 cotto alester, possibly.  I wouldn't recognize him.
20:03 dalek Rosella/optional_args2: 6247747 | Whiteknight++ | src/ (34 files):
20:03 cotto aka heyrocker, right?
20:03 dalek Rosella/optional_args2: merge optional_args branch, fix conflicts
20:03 dalek Rosella/optional_args2: review: https://github.com/Whiteknig​ht/Rosella/commit/62477478cb
20:03 cotto confirmed
20:05 cotto why?
20:09 alester cotto: Yup, that's him.
20:10 alester He's a fine fell.a
20:10 alester I've known him since…. 1986?  From the Electric Cafe BBS, and Chicago punk rock circles in general.  And now he turns up in open source years later.
20:12 cotto he used to lead development on a drupal module I co-maintain now
20:12 alester huh
20:13 cotto http://drupal.org/project/services
20:13 cotto http://drupal.org/node/109640/committers
20:14 nine noooooooooooooooooooooooo
20:14 jsut_ joined #parrot
20:15 cotto nine, ?
20:16 nine Just got hit by http://trac.parrot.org/parrot/ticket/1219
20:17 nine get_pointer_keyed is misused in Namespaces to return a PMC. Proxy doesn't know this since the return type is void * so it doesn't create a Proxy for the result.
20:17 whiteknight well, fart
20:17 nine That's the reason why get_global cannot be used in a thread
20:17 * whiteknight hates namespaces in parrot
20:17 whiteknight nine: can you hack something into the get_global opcode?
20:17 whiteknight temporarily
20:17 whiteknight until we can burn the damn things with fire
20:19 whiteknight if (namespace isa proxy) { do weird encapsulation-breaking proxy magic here }
20:19 nine I could add a check to Parrot_Proxy_get_pointer_keyed to check if the proxied object is a Namespace and if it is create a proxy
20:19 whiteknight yeah, that also works and is equally ugly
20:19 nine but it at least contains threading workarounds in threading code
20:21 whiteknight yeah, that's true
20:21 dukeleto cotto: fyi, Persona used to be called BrowserID
20:21 whiteknight so it's much less encapsulation-leaky
20:21 whiteknight man, I don't know how I didn't see that coming. NameSpaces are shit
20:21 cotto dukeleto, yup
20:22 nine whiteknight: I already got a lot of fun out of them, yes ;)
20:22 dukeleto nine: our namespaces need to be fixed with a flamethrower
20:23 whiteknight nine: one of my TODO projects sometime this year is going to be ripping them out and beating them with a stick
20:23 bacek joined #parrot
20:23 dukeleto cotto: i am a fan. It looks like it will simplify a lot of authentication non-sense on the web
20:23 dukeleto bacek: morning, meat bag
20:35 nine seems to work :)
20:43 cotto dukeleto, yes.  I'd love to find something better than clipperz +  copy/pasting
20:53 nine Can I use a continuation to stop processing the current sub and resume it later?
20:54 perlite_ joined #parrot
20:56 cotto shiny: https://github.com/jokkedk/webgrind
21:06 not_gerd left #parrot
21:12 nine seems like I can
21:37 nine OMG it works!
21:39 nine msg whiteknight I seem to have got a working semaphore with tasks sleeping while waiting for the lock and getting resumed as soon as the lock becomes available
21:39 aloha OK. I'll deliver the message.
21:40 tadzik nine++ # AWESOME
21:48 cotto nine++
21:54 hercynium joined #parrot
22:02 cogno joined #parrot
22:17 cogno joined #parrot
22:20 plobsing joined #parrot
22:32 kid51 joined #parrot
22:56 cotto ~~
23:12 jsut joined #parrot
23:30 dalek parrot: a357484 | jkeenan++ | t/steps/auto/icu-01.t:
23:30 dalek parrot: [configure] Update test file to reflect changes in auto::icu configuration step.
23:30 dalek parrot: review: https://github.com/parrot/parrot/commit/a357484396
23:44 whiteknight joined #parrot

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

Parrot | source cross referenced