|
Parrot 4.1.0 "Black-headed Parrot" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC Set by moderator on 20 March 2012. |
|||
|
00:01
benabik joined
|
|||
| Coke yawns from Wednesday in the UK. | 00:17 | ||
| 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. | ||
| bacek_at_work | ~~ | 00:44 | |
| nine, ping | 00:45 | ||
|
00:52
jsut joined
|
|||
| dalek | rrot/remove_sub_flags: 4065d6e | Whiteknight++ | / (30 files): Fix several library-related tests. Most fixes are simple updates of old load_bytecode_s to load_bytecode_p_s |
01:19 | |
| dukeleto | /quit | 02:15 | |
| blarg | 02:16 | ||
| benabik | hah | ||
| dukeleto | updating parrot.github.com needs more automation | 02:20 | |
| cotto | ~~ | 02:24 | |
|
03:32
alester joined
05:08
preflex_ joined
|
|||
| dukeleto | ~~ | 05:16 | |
| moritz | good morning | 05:41 | |
| how's the release coming along? | |||
| dukeleto | running fulltest now on what could be our release tag | 06:04 | |
| moritz | ok, great | 06:07 | |
| dalek | rrot: 3e77d40 | dukeleto++ | / (4 files): [nci] Fix definition of ffi_type_parrot_numval when NUMVAL_SIZE=16 and add some native pbc |
06:13 | |
| dukeleto | running release_check again for good measure | 06:20 | |
| release is tagged, feel free to nuke master from space | 06:28 | ||
| bacek_at_work | Just typed in ~/src/parrot "git push origin :master". | 06:32 | |
| Should I press enter? | 06:33 | ||
| moritz | not *that* kind of nuke | 06:34 | |
| tadzik | also, are you typing from space? | ||
| 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
|
|||
| travis-ci | [travis-ci] parrot/parrot#182 (master - 3e77d40 : Jonathan "Duke" Leto): The build is still failing. | 06:36 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/0......3e77d40 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/912013 | |||
|
06:36
travis-ci left
|
|||
| dalek | p: ca74e29 | moritz++ | tools/build/PARROT_REVISION: bump parrot revision to 4.2.0 release |
06:38 | |
| kudo/nom: 1a468d8 | moritz++ | tools/build/NQP_REVISION: bump NQP revision to get parrot 4.2.0 |
|||
| 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 | |
| rm'ed, rather | |||
| i will probably due release announcement stuff tomorrow. ETOOTIRED | 06:42 | ||
| moritz | dukeleto++ #release | 06:45 | |
|
06:58
fperrad joined
|
|||
| nine | bacek_at_work: pong | 07:25 | |
|
08:05
bacek joined
08:08
bacek joined
08:11
bacek joined
08:15
bacek joined
|
|||
| bacek | ~~ | 08:16 | |
|
08:29
mj41 joined
08:32
bacek joined
08:49
bacek joined
08:50
bacek joined
08:51
bacek joined
|
|||
| nine | bacek: pong | 09:05 | |
|
09:49
lucian joined
|
|||
| bacek | nine, aloha | 09:56 | |
| nine, can you explain in few words your current problems with GC and threads? And how you are handling (or trying to) handle them? | 09:57 | ||
| 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:01 | |
| 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 | rrot: ddd6fb6 | fperrad++ | runtime/parrot/library/osutils.pir: [osutils] refactor with unlink/rmdir instead of rm |
||
|
10:06
jsut_ joined
|
|||
| 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:07 | |
| bacek | nine, why to you need proxies? | 10:08 | |
| and flag will not help in generic case | |||
| same problem as inter-generation links for GenGC | |||
| nine | Because otherwise the GC would mark and sweep PMCs which belong to another interp (and thus GC) | ||
| bacek | nine, nope. It wouldn't. | ||
| 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. | ||
| But I guess you know a different way of preventing this? | |||
| bacek | it's weird | ||
| nine, mmm. Probably | 10:10 | ||
| Basic idea is: | |||
| 1. Each child interp has own GC instance | |||
| 2. Counting of allocations happens in root interp's GC | 10:11 | ||
| 3. When GC is triggered - we merge all GC pools into root GC and do mark and sweep in root GC | |||
| So, we don't have to (mostly) lock GC during allocations. | 10:12 | ||
| Actually we can do it without lock at all. Even if we do non-precise calculation of allocated memory | 10:13 | ||
| We only need lock and merge "pools" for mark and sweep run | |||
| Something like this. Makes sense? | |||
| moritz | don't you get race conditions between threads and the GC? | 10:14 | |
| bacek | moritz, nope. | ||
| moritz, yes, we will have race on "allocated memory counting". But it's less problem. | 10:15 | ||
| Every GC allocates from own pool. | |||
| nine | We would have to stop all threads during the mark and sweep run. Otherwise threads would try to allocate during the pool merging. | ||
| bacek | We just have to track all existing "GC instances" for merge purpose | ||
| nine, yes. We have to stop-the-world for this | 10:16 | ||
| 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:17 | |
| bacek | Yes, real world performance can't be tested until we implement anything. | 10:19 | |
| But with this approach we'll not affect single-thread performance | |||
| 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:20 | |
| bacek | nine, you don't need proxies for this :) Look at how GenGC write barriers are implemented | 10:21 | |
| 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 :) | ||
| 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:23 | |
| nine, for the case of threads - s/old generation/different thread/ :) | 10:24 | ||
| nine | aah...it basically just resets the generation counter. | 10:25 | |
| 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 | ||
| moritz, correct. There is special list for dirty objects. | 10:27 | ||
|
10:28
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#183 (master - ddd6fb6 : Francois Perrad): The build is still failing. | 10:28 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/3......ddd6fb6 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/912788 | |||
|
10:28
travis-ci left
|
|||
| 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 | ||
| 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) | ||
| nine | moritz: which would defeat the whole purpose of having generations | ||
| moritz | correct | ||
| 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? | ||
| nine | moritz: yes, they are fairly normal PMCs | ||
| 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. | 10:33 | ||
| dukeleto | ~~ | 11:42 | |
| api.yaml hasn't been updated in a while | 11:50 | ||
| i should have added some entry to 4.2.0 about the getprop change | |||
| 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 | |||
| dalek | rrot: f623f49 | dukeleto++ | docs/project/release_manager_guide.pod: [doc] Linkify some filenames in the release manager guide so the HTML rendering on Github is more useful |
11:53 | |
| rrot: fefc6b7 | dukeleto++ | docs/project/release_manager_guide.pod: [doc][ci skip] Add a note about the auto_release.pl tool to the release manager guide |
12:09 | ||
|
12:10
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#184 (master - f623f49 : Jonathan "Duke" Leto): The build is still failing. | 12:10 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/d......f623f49 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/913289 | |||
|
12:10
travis-ci left
|
|||
| dukeleto | tarballs are here in case people want to test: ftp://ftp.parrot.org/pub/parrot/releases/devel/4.2.0/ | 12:25 | |
| dalek | website: dukeleto++ | Parrot 4.2.0 "Ornithopter" Released! | 12:28 | |
| website: www.parrot.org//news/2012/Parrot-4.2.0 | |||
| nine | Headline link wrong? news/2012/Parrot-4.2.0 | 12:29 | |
| moderator | Parrot 4.2.0 "Ornithopter" | parrot.org | Log: irclog.perlgeek.de/parrot | #parrotsketch meeting Tuesday 19:30 UTC | 12:33 | |
| dukeleto | nine: yeah, had to fix that | 12:34 | |
| www.parrot.org/news/2012/Parrot-4.2.0 | |||
| moritz++ # saving the release manager from doing more work :) | |||
| nine: giving a link to your pdf in the release announcement should get more eyes on it :) | 12:35 | ||
| nine: again, I am very impressed with your work, please keep on truckin'. | |||
| nine: are you applying to GSoC this year? | |||
| nine | dukeleto: wow....maybe I should write some more on it then | ||
| dukeleto | nine: yes, please :) | 12:38 | |
| release URL redirects have been updated | |||
| So. Many. Things. | |||
| and we have somewhat orthogonal docs now, some for docs.parrot.org and some for parrot.github.com | |||
| nine | dukeleto: never given GSoC much thought since I already have a full time job | 12:41 | |
| dukeleto | nine: are you a student? | 12:43 | |
| nine | dukeleto: yep | ||
| dukeleto | nine: do you work full-time during the "summer" ? i.e. May-August? | 12:44 | |
| nine | dukeleto: yes | ||
| 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 | ||
| nine: depends on your available time. You get $5-6K USD from Google from being part of GSoC | 12:45 | ||
| nine: what does "full time" mean for you, if I may ask. 40/hr per week, roughly? | |||
| 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 | ||
| 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 | ||
| nine: this is all up to you, but please think about it. I think you would make an awesome GSoC student. | |||
| Ouch: a bug in random() on OpenBSD: banu.com/blog/42/openbsd-bug-in-th...-function/ | 12:48 | ||
| 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:49 | |
| dukeleto | nine: ah, i understand. I wasn't exactly sure about your age :) The resume stuff is important for younger students | 12:50 | |
| nine: whatever is best for you to keep on truckin' and get the threads branch, that is what I want :) | |||
| nine: i am a big proponent of health | |||
| s/get the threads branch/get the threads branch merged/ | |||
| 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 | |
| dukeleto: I'm 29 btw. ;) | |||
| atrodo | dukeleto++ # For the release | 12:55 | |
| dukeleto++ # For the Dune reference | |||
| dukeleto | atrodo: i do what i can :) | 12:57 | |
| nine: good to know ;) I am 30! | |||
| atrodo | dukeleto> In my opinion, Dune isn't referenced nearly enough in pop culture | 12:58 | |
| dukeleto | atrodo: i agree | 13:02 | |
| atrodo: i only quote "canonical" Dune, FYI. Only Frank, not Brian and friends ;) | 13:03 | ||
| 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 | ||
| dukeleto | atrodo: yeah, the ending of chapterhouse dune (written by Brian) let me down, so I didn't read any more | 13:05 | |
|
13:05
whiteknight joined
|
|||
| atrodo | Chapterhouse was the last of Frank's | 13:05 | |
| 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 | ||
| dukeleto | atrodo: you can sense a drop in quality about 3/4 of the way through the book | 13:07 | |
| atrodo: wikipedia can't be wrong, can it? ;) | |||
| atrodo | Touche | ||
| dukeleto | atrodo: I am not sure. That was what I heard on the grapevine. Needs investigation. | ||
| atrodo | dukeleto> I will agree though, the ending was weird | ||
| dukeleto | atrodo: but not the Weirding Way... | 13:11 | |
| atrodo: what have you been hacking lately? | |||
| atrodo: i could use some of your tuits on the m0 branch if you are into it... | |||
| atrodo | dukeleto> Sadly, nothing parrot related, a lot else going on | 13:12 | |
| dukeleto> I wish i had tuits to give for m0, or anything related to that | 13:13 | ||
| dukeleto | atrodo: ok. I might ask you for a code review on the m0 branch some time... | 13:20 | |
| masak | no parrot release email on the mailing list? | 13:38 | |
| dukeleto | masak: just haven't gotten there yet. It is only 6:43am localtime() :) | 13:42 | |
| masak | ah :) | 13:43 | |
| dukeleto++ # release | 13:44 | ||
| dukeleto just updated c2, parrot wiki and wikipedia | 13:47 | ||
| moritz wonders if most of these update tasks should be decoupled from the release manager role | 13:48 | ||
|
13:50
myhrlin joined
|
|||
| dukeleto | moritz: yeah | 13:51 | |
| 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 | |||
| atrodo | dukeleto> is it a matter of tuits to get it automated? | ||
| dukeleto | atrodo: a bit of both | 13:52 | |
| a very simple script could automate 80% of parrot.github.com being updated | |||
| we might even be able to add some kind of automated git hook for it | |||
| masak | dukeleto: c2.com/cgi/wiki?ParrotCode -- s/February/March/ | 13:54 | |
| dukeleto | masak++ | 13:56 | |
| masak | also, c2.com says 21st, but en.wikipedia.org/wiki/Parrot_virtual_machine says 20th. | 13:57 | |
| dukeleto | masak: 20th is correct | ||
| masak: release tag actually happened last night in my timezone | 13:58 | ||
| masak: just updated c2 to match wikipedia | |||
| masak: just sent out announcement emails as well | |||
| masak | \\o/ | ||
| dukeleto | masak: who is the next release manager for rakudo? | 14:02 | |
| 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 | ||
| so it'll probably masak++ or me | |||
| speaking of which, I could already start with collecting the news | |||
| dukeleto | moritz: wear a helmet if you have NUMVAL_SIZE=16 | ||
| moritz | dukeleto: I promise not to touch such a platform anytime soon | 14:05 | |
| at least not for parrot/rakudo stuff | |||
| masak | yeah, I'm willing to do Thursday's Rakudo release. | ||
| dukeleto | moritz: actually, i got numval_size=16 on my ubuntu x64 linux box, when trying to generate native bytecode | 14:06 | |
| masak: i think something changed in my compiler toolchain. | |||
| moritz: ^^^ | |||
| dukeleto is mis-tabbing this morning, due to waking up at 4am localtime | 14:07 | ||
| masak: could you unban me from #perl6 ? | |||
| moritz | dukeleto: done | 14:08 | |
| moritz adds to the tab confusion | |||
| dukeleto | moritz++ | 14:09 | |
| aloha | (parrot/parrot) Issues closed : 745 (sh tools/dev/mk_native_pbc fails) by leto : github.com/parrot/parrot/issues/745 | 14:18 | |
| dalek | rrot: 9d15456 | dukeleto++ | / (5 files): Merge pull request #743 from gerdr/gerdr/mingw-gpp Fix g++ issues with Strawberry Perl on Win64 |
||
| dukeleto is trying to do his part to nuke master | 14:22 | ||
| how do people feel about merging github.com/parrot/parrot/issues/363 ? | 14:23 | ||
| aloha | (parrot/parrot) Issues closed : 743 (Fix g++ issues with Strawberry Perl on Win64) by gerdr : github.com/parrot/parrot/issues/743 | ||
|
14:38
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#185 (master - 9d15456 : Jonathan "Duke" Leto): The build is still failing. | 14:38 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/f......9d15456 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/914229 | |||
|
14:38
travis-ci left
|
|||
| moritz puts travis-ci on his ignorelist | 14:40 | ||
|
14:44
schmooster joined
14:49
dmalcolm joined
14:51
PacoAir joined
14:59
alester joined
15:02
whiteknight joined
15:03
benabik joined
|
|||
| whiteknight | good morning, #parrot | 15:05 | |
| dukeleto++ on the release | |||
| dalek | rrot: 34ee753 | petdance++ | / (4 files): Use proper /* */ C-style comments, not C++-style // comments which some compilers do not handle |
||
| alester | shoot that shouldn't have push | 15:06 | |
| moritz | anything wrong with it? | ||
| it's after the release :-) | |||
| alester | no, is fine. | ||
| Why do we have frontend/parrot and parrot2? | 15:07 | ||
| ttbot | Parrot 34ee7539 i386-linux-thread-multi make error tt.taptinder.org/cmdinfo/75106 | 15:08 | |
| alester | There we go | ||
| dalek | rrot: 16d0081 | petdance++ | frontend/parrot (2 files): remove nested comments |
||
| 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 | |
| Although I just noticed I'm replying to a conversation from several hours ago. Whatever. | |||
| whiteknight | alester: frontend/parrot is the old one. frontend/parrot2 is the new version that uses an embedded PIR thunk to bootstrap execution | 15:10 | |
| 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 | ||
| not quite full time | |||
| benabik | We may want to rename parrot to mini-parrot and parrot2 to parrot. | ||
| 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 | ||
| moritz: They suggest that if you're getting an internship to not apply. | |||
| moritz | benabik: "primary focus" is wonderfully vague :-) | 15:13 | |
| benabik | True. | ||
| alester | as opposed to beer. | ||
| We're talking abotu college students. | |||
| benabik | But I think they rather expect to be getting more than evening and weekend time for their $5k | ||
| benabik shrugs. | |||
| 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 :-) | ||
| whiteknight | benabik: frontend/parrot2 compiles down to "parrot" | 15:16 | |
| 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? | ||
| parrot-old? | |||
| whiteknight | for backwards compatibility | ||
| we can probably remove it and clean things up now | |||
| when I first made the change, I wanted it to be as smooth as possible | |||
|
15:19
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#186 (master - 34ee753 : Andy Lester): The build is still failing. | 15:19 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/9......34ee753 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/914627 | |||
|
15:19
travis-ci left
|
|||
| 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:20 | |
|
15:34
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#187 (master - 16d0081 : Andy Lester): The build is still failing. | 15:34 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/3......16d0081 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/914641 | |||
|
15:34
travis-ci left
|
|||
| 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 | |
| I don't feel like it's a high-priority fix | |||
| benabik | True enough | 15:37 | |
| 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:38 | |
|
15:40
fperrad joined
15:42
brambles joined
15:46
Psyche^ joined
15:47
mj41 joined
16:09
davidfetter joined
16:23
jsut joined
16:31
parthm joined,
parthm left
17:10
contingencyplan joined
|
|||
| 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. | ||
| dukeleto | moritz: i agree that the failure message could be better | ||
| 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 | ||
| dukeleto | moritz: yep. I could change it to only report changes of status, iirc | 17:50 | |
| moritz: is that more to your liking? | |||
| moritz | dukeleto: yes | 17:52 | |
| cotto | ~~ | 17:56 | |
| dukeleto, how many tuits do you need? | 17:57 | ||
| for m0 | |||
| dalek | rrot: a39d99f | petdance++ | frontend/parrot (2 files): remove the //-style comments that are causing problems embedded in comments |
18:09 | |
| dukeleto | cotto: how many can I have? ;) | ||
| cotto: i am close to getting the m0 c implementation inside of the normal-ish parrot build system | 18:10 | ||
| cotto: there are a few unimplemented ops in the c implementation, still. I created a gh ticket with the exact error | 18:11 | ||
| cotto | dukeleto, interesting | 18:12 | |
| next talk starts on the hour, so I have until ~then | |||
| dukeleto | cotto: ok | 18:17 | |
| cotto: github.com/parrot/parrot/issues/733 | |||
| cotto | dukeleto, what's going kaboom? | ||
| looking | |||
| dukeleto | cotto: convert_i_n op is unimplemented in C implementation | 18:18 | |
| cotto: not sure why m0_hash.m0 is going to an infinite loop | |||
| cotto | dukeleto, sounds fun | ||
| dukeleto | cotto: i added an M0 ticket label as well, so we can actually see which tickets are for m0 | 18:19 | |
| cotto: there is a make m0_tests now, in the main Makefile | |||
| cotto: and make m0 | |||
| cotto | what's m0-debug? | ||
| dukeleto | cotto: m0 will debugging symbols and such. I think chromatic added that. | ||
| seen chromatic | |||
| aloha | chromatic was last seen in #parrot 194 days 17 hours ago saying "In theory IMCC could rewrite the existing syntax to those flags.". | ||
| cotto | dukeleto, the hash test does looping, so it's conceivable that a bug could cause an infinite loop | 18:22 | |
| it's most likely due to the unimplemented op, so that shouldn't be too hard a fix | 18:23 | ||
| gimme a few minutes | |||
| dukeleto, looks like set_byte needs to be implemented | 18:26 | ||
|
18:26
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#188 (master - a39d99f : Andy Lester): The build is still failing. | 18:26 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/1......a39d99f | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/915832 | |||
|
18:26
travis-ci left
|
|||
| dukeleto | cotto++ | 18:27 | |
| benabik | Huh. I think one of the -Werror options is causing gcc to explode on an icu header. | 18:29 | |
| dalek | rrot: 4b167c1 | petdance++ | tools/dev/pbc_to_exe.pir: All instances of get_program_code() need to return unsigned char * |
||
| 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 | ||
| alester: When building src/string/encoding/shared.c | |||
| alester | Hmmm | ||
| Wonder if we can make that check be only for our code, but not outside headers. | |||
| whiteknight | I doubt it | 18:33 | |
| dalek | rrot: 0b292f8 | dukeleto++ | .travis.yml: [ci] Only send IRC notifications when build status changes, for moritz++ |
||
| cotto | dukeleto, it wasn't set_byte (either that or I didn't implement it correctly) | 18:36 | |
| alester | Bah. | 18:37 | |
| cotto | I really need to build something to map numbers to names | ||
| "31" isn't helpful | |||
| alester | benabik: can you show me that uset.h file? I don't have it. | 18:39 | |
| or, I could just install libicu myself. | 18:40 | ||
| benabik | alester: icu.sourcearchive.com/documentation...ource.html | 18:42 | |
| cotto | dukeleto, the op is actually get_byte, but my implementation isn't making the test happy | ||
| alester | Thanks. I installed it anyway | 18:43 | |
| Now waiting for the blowup | |||
| cotto | d'oh. 'nother unimplemented op | 18:44 | |
| probably something important | |||
| benabik | Perhaps unimplemented ops should explode instead of just being ignored? | 18:45 | |
| cotto | get_word | ||
| used to figure out how long the string to be hashed is | |||
| so that probably needs love | |||
| alester | benabik: Were you on gcc or g++? | 18:46 | |
| benabik | alester: ccache-gcc | ||
| alester | OH, yeah, I just assume ccache. How did people live without it/ | ||
| benabik | By waiting a lot? | ||
| 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 | rrot/m0: 7a27563 | cotto++ | src/m0/c/m0_ops.c: implement get_byte and set_byte for m0_c |
||
| rrot/m0: 22451c9 | cotto++ | src/m0/c/m0_ops.c: tab -> space fix |
|||
| alester | So what is this icu4c library, benabik ? Non-standard ICU? | ||
| 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 | ||
| benabik | Yeah, it's the C library from icu-project.org. As opposed to icu4j | ||
|
18:49
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#189 (master - 4b167c1 : Andy Lester): The build is still failing. | 18:49 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/a......4b167c1 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/916063 | |||
|
18:49
travis-ci left
|
|||
| alester | Hmm, wonder what my yum install gave me. | 18:49 | |
| benabik | Probably icu4c 4.8.1.1 or 4.6 based on what I see at rpmfind. | 18:50 | |
|
18:51
mj41 joined
|
|||
| alester | Yours looks newer than mine | 18:52 | |
| based on copyright date in uset.h | |||
| benabik | Then you probably got 4.5 | ||
| 4.6, rather | |||
| alester | I don't have the function openEmpty() like you do | 18:53 | |
| and it should be openEmpty( void ) | |||
| benabik | :-( | ||
| alester | which is what's making the compiler upset | ||
| There are options to turn on more warnings for system headers, but not a way to turn them off. | 18:54 | ||
|
18:54
not_gerd joined
|
|||
| 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. | ||
| alester | Sure. | ||
| not_gerd | alester: by default, gcc shouldn't warn for system headers... | ||
| alester | beucase the way it is now it knows nothing about what parameters are being passed in. | ||
| not_gerd: You're coming in late on this. | 18:55 | ||
| not_gerd | alester: that's what the logs are for | ||
| benabik | Hm. Still the same way in 49.1. I'll submit a bug to icu4c. :-) | ||
| alester | Good idea. | 18:56 | |
| dalek | rrot: 9f73c7d | petdance++ | config/auto/warnings.pm: 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. |
||
| not_gerd | my uset.h file contains the non-prototype declaration and gcc doesn't warn | 18:58 | |
| alester | I'm not sure what to do with that. | 19:00 | |
| benabik: does my latest commit fix it for you? | |||
| benabik | not_gerd: Today was the first time it warned for me. alester++ has been working on strengthening our warnings. | ||
| 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." | ||
| benabik undoes the hack to the include file. | |||
| alester | not_gerd: What is the conclusion you're trying to draw here? | 19:01 | |
| 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 | |
| not_gerd: Whatever the theory, it's throwing an error in practice for me. | |||
| not_gerd | benabik: that' sthe issue - sue -isystem instead | ||
| ^use | |||
| 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. | ||
| alester | not_gerd: I wonder if that behavior is also true if the warning is elevated to error with -Werror= | 19:04 | |
| not_gerd | -Werror= should have no affect as long as -Wsystem-headers isn't present as well | 19:05 | |
| ^effect | |||
| benabik | alester: So far, so good. | 19:06 | |
| alester: And it's into testing, so the build completes. \\o/ | |||
| alester++ | |||
| alester | benabik: But did it throw the warning on uset.h? | ||
| when it built that .c file? | |||
| benabik | Yes | ||
| alester | ok | ||
| 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 | ||
| benabik | I really want to quiet our build process so I can notice warnings. | ||
| whiteknight | otherwise, it's too hard to pick out any unusual warnings from "interesting" files | ||
| alester | Agreed on both of those. | ||
| benabik: Can you change how your ICU gets found? | |||
| not_gerd | I suspect parrot is to blame - see config/auto/icu.pm lines 393 and 396 | 19:08 | |
| alester | Then let's get at that, so I can flip the error back on | 19:09 | |
| Is there any reason to NOT quote the contents of $arg->{icuheaders}? | 19:10 | ||
| It seems an unnecessary optimization to get rid of the double quotes | |||
| 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 | ||
| not_gerd: Which gives -I/usr/local/yadda | |||
| alester | Do you need to be specifying --icuheaders on your Configure.pl call? | 19:12 | |
| benabik | I specify --icu-config | 19:13 | |
| 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` | ||
| alester | I don't understand why that's a problem. | ||
| benabik | Because -Werrors affects anything included via -I | 19:15 | |
| alester | OK, so ANYTHING you have to include via -I it doesn't think is a system header? | 19:16 | |
| benabik | Yeah. | ||
| 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 | ||
| benabik | -isystem makes it a system header. | ||
| nine: Doesn't it though? | |||
| not_gerd | or #pragma GCC system_header | ||
| alester | So you could say "-isystem -I/usr/local/whatever"? | ||
| benabik | I think it's `-isystem /usr/local/whatever` | 19:17 | |
| alester | Wouldn't be too hard to try | ||
| yeah, -isystem it is. | |||
| 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). | ||
| So other people will probably hit the same error. | |||
| 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. | ||
| If Configure can take the output of icu-config and massage it, that'd probably work. | |||
| 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. | ||
| alester | I don't think so | 19:21 | |
|
19:21
travis-ci joined
|
|||
| travis-ci | [travis-ci] parrot/parrot#191 (m0 - 22451c9 : Christoph Otto): The build passed. | 19:21 | |
| [travis-ci] Change view : github.com/parrot/parrot/compare/9......22451c9 | |||
| [travis-ci] Build details : travis-ci.org/parrot/parrot/builds/916263 | |||
|
19:21
travis-ci left
|
|||
| alester | I don't see that the config is calling icu-config at all | 19:21 | |
| How are you invoking Configure.pl, benabik ? | |||
| oh, isee where we are calling it. | 19:23 | ||
| 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 | sella: 1b518b2 | Whiteknight++ | src/template/node/Eval.winxed: [Template] Updated Winxed returns a Packfileview instead of an Eval. Fix Template Eval to assume this. |
||
| benabik | Looks like we generate the directory from --prefix, actually. Not what I'd expect. | 19:25 | |
| alester | I don't get any -I back from icu-config --cflags, only --cppflags | 19:27 | |
| but I don't see that we call icu-config with --cppflags anyhere | 19:28 | ||
| benabik | Yeah, we generate the header directory from the prefix, apparently. Which is not what I'd expect. But hey. | 19:29 | |
| alester | prefix of what? | 19:30 | |
| Seems to me that anything that Configure.pl is detecting should s/-I/-isystem/g; | 19:31 | ||
| The only things that should be -I should in stuff that we build ourselves, include/parrot/ etc | |||
| benabik | config/auto/icu.pm calls icu-config --prefix, then appends /include to it. | 19:33 | |
| alester | ok, and then that winds up in icu_dir | 19:36 | |
| in the configu | 19:37 | ||
| I'm suggesting we change the -I on 393 and 396 to -isystem | |||
| benabik | Yes, that would work. not_gerd++ | 19:38 | |
| alester | You want to try a patch? | ||
| before I commit? | |||
| I have it all sitting in my dir | |||
| I hate to create a branch just for this | |||
| benabik | Give me a moment and I'll hand-patch it. | ||
| alester | well | ||
| I'm also wanting to always quote the args | |||
| benabik | Rakudo rebuild can wait. | ||
| alester | benabik: gist.github.com/2151870 | 19:39 | |
| I'm trying it here too | 19:40 | ||
| benabik | Why does the patch have . in the empty lines? | 19:41 | |
| My git does not like that. | |||
| alester | oh, sorry | ||
| benabik | s/^./ / fixes | ||
| alester | I copied from the screen, | ||
| benabik | Ah. | ||
| alester | and I have spaces at EOL show as . | ||
| ssssooooorrry | 19:42 | ||
| Aside: Good gosh am I loving tmux | |||
| benabik | Should have realized, as that's what my Vim does too. Had to double-check I had actually replaced it. | ||
| tmux sounds shiny. | |||
| alester | Brian Hogan's book is fantastic | ||
| benabik | Book on tmux? | 19:43 | |
| alester | y | ||
| benabik | That seems to have fixed it, yes. | ||
| alester | pragprog.com/book/bhtmux/tmux | ||
| benabik | Now the only warning I see is this stupid PACKAGE redefined thing | ||
| alester | OK, i'm gonna commit that | ||
| benabik | Pragmatic Programmers are awesome. | ||
| alester | They are. There's another book of theirs you should get too. | 19:44 | |
| pragprog.com/book/algh/land-the-tec...b-you-love | |||
| That one's their best. Buy 100 copies of it. | |||
|
19:45
lucian joined
|
|||
| benabik | I dunno. The author's main experience seems to be "the open source community". Can I trust that? ;-) | 19:45 | |
| dalek | rrot: a6b9346 | petdance++ | config/auto/ (2 files): Turn the strict-prototypes back to an error. not_gerd++ for showing the way, and benabik++ for being the guinea pig. |
||
| 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. | ||
| alester | Anyway, the tmux book is great. I just started on it this weekend and I've overhauled how I work. | ||
| Thanks for pushing, not_gerd. | 19:47 | ||
| stronger errors be better. | |||
| not_gerd | alester: glad to be of help | 19:49 | |
| dukeleto | Nice work fixing that icu issue | ||
| alester | Yay teamwork. | ||
| dukeleto | alester: if you keep talking about tmux, i might have to try it | 19:51 | |
| alester | It's really swell. | ||
| benabik | Now that we've fixed a build issue, time for me to go to my class on build systems. :-D | ||
| dukeleto has a few years of scripts around screen, tho | |||
| benabik: extra credit! | |||
| alester | It doesn't say much for the work project I'm on that I'd rather fix a build system. :-( | 19:53 | |
| 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:55 | |
| crassus | paypal is the answer | 19:56 | |
| nine | not for pragprog.com | 19:58 | |
| But they support openid which I could set up on my own server | |||
| 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 | |
| no relation to personas | |||
| identity.mozilla.com/ | 20:00 | ||
| </threadjack> | |||
| 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 | |
| Has anyone encountered these elsewhere? | |||
| alester | Hey, cotto, have you seen any Greg Dunlap at Drupalcon? | 20:02 | |
| cotto | alester, possibly. I wouldn't recognize him. | ||
| dalek | sella/optional_args2: 6247747 | Whiteknight++ | src/ (34 files): merge optional_args branch, fix conflicts |
20:03 | |
| cotto | aka heyrocker, right? | ||
| cotto | confirmed | ||
| why? | 20:05 | ||
| alester | cotto: Yup, that's him. | 20:09 | |
| He's a fine fell.a | 20:10 | ||
| 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. | |||
| cotto | he used to lead development on a drupal module I co-maintain now | 20:12 | |
| alester | huh | ||
| cotto | drupal.org/project/services | 20:13 | |
| drupal.org/node/109640/committers | |||
| nine | noooooooooooooooooooooooo | 20:14 | |
|
20:14
jsut_ joined
|
|||
| cotto | nine, ? | 20:15 | |
| nine | Just got hit by trac.parrot.org/parrot/ticket/1219 | 20:16 | |
| 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 | ||
| nine | That's the reason why get_global cannot be used in a thread | ||
| whiteknight hates namespaces in parrot | |||
| nine: can you hack something into the get_global opcode? | |||
| temporarily | |||
| until we can burn the damn things with fire | |||
| 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 | ||
| whiteknight | yeah, that also works and is equally ugly | ||
| nine | but it at least contains threading workarounds in threading code | ||
| whiteknight | yeah, that's true | 20:21 | |
| dukeleto | cotto: fyi, Persona used to be called BrowserID | ||
| whiteknight | so it's much less encapsulation-leaky | ||
| man, I don't know how I didn't see that coming. NameSpaces are shit | |||
| cotto | dukeleto, yup | ||
| 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 | ||
| 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 | |
|
20:23
bacek joined
|
|||
| dukeleto | cotto: i am a fan. It looks like it will simplify a lot of authentication non-sense on the web | 20:23 | |
| bacek: morning, meat bag | |||
| nine | seems to work :) | 20:35 | |
| cotto | dukeleto, yes. I'd love to find something better than clipperz + copy/pasting | 20:43 | |
| nine | Can I use a continuation to stop processing the current sub and resume it later? | 20:53 | |
|
20:54
perlite_ joined
|
|||
| cotto | shiny: github.com/jokkedk/webgrind | 20:56 | |
|
21:06
not_gerd left
|
|||
| nine | seems like I can | 21:12 | |
| OMG it works! | 21:37 | ||
| 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. | ||
| tadzik | nine++ # AWESOME | 21:40 | |
| cotto | nine++ | 21:48 | |
|
21:54
hercynium joined
22:02
cogno joined
22:17
cogno joined
22:20
plobsing joined
22:32
kid51 joined
|
|||
| cotto | ~~ | 22:56 | |
|
23:12
jsut joined
|
|||
| dalek | rrot: a357484 | jkeenan++ | t/steps/auto/icu-01.t: [configure] Update test file to reflect changes in auto::icu configuration step. |
23:30 | |
|
23:44
whiteknight joined
|
|||