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