Parrot 2.11.0 Released | parrot.org | Log: irclog.perlgeek.de/parrot/today | Keep up with GCI
Set by moderator on 5 January 2011.
dukeleto NotFound: what is the problem? 00:01
NotFound dukeleto: support.github.com/discussions/repo...ail-200-ok 00:03
dukeleto NotFound: sadface 00:05
00:21 mikehh joined
dukeleto Yuki`N: see github.com/parrot/parrot/pull/117 , bitops still fail 00:22
Yuki`N Can anyone give me SSH access to a 64-bit machine? 00:26
mikehh Yuki`N: No, but I just booted into Kubuntu 10.10 amd64, what do you need 00:28
Yuki`N I need an environment to run some tests, hmm.
Like changing one line and seeing the result.
mikehh what you got at the moment? 00:30
Yuki`N Nothing so far.
Still thinking.
mikehh what platform are you running on? 00:31
Yuki`N i686. 00:36
00:39 fbrito left
dalek rrot: 9bbcc27 | nwellnhof++ | / (2 files):
[io] Seek back when switching from buffered read to write

Also fix writing in append mode and optimize a little.
00:40
00:44 contingencyplan left
dalek rrot: 80145c1 | nwellnhof++ | t/pmc/filehandle.t:
[t] Fix tempfile name
00:47
Yuki`N mikehh, can you try running `prove t/dynoplibs/bit.t` with my latest master, git://github.com/nol888/parrot 00:50
If that doesn't work I'll have to do it at work tomorrow when I have access to a 64-bit machine.
mikehh Yuki`N: cloning it now 00:55
00:55 whiteknight joined
Coke smolder.parrot.org/app/projects/rep...tails/2164 01:03
Yuki`N Ok I have no idea why that would not pass on Mac. 01:06
Passes on windows and linux i386 01:07
mikehh Yuki`N: passes for me 01:09
Yuki`N Cool.
mikehh Yuki`N: btw you have a codetest failure in it - for( needs to be for (
Yuki`N Ah.
I'll just amend and force-push 01:10
mikehh Failed Failed test 'there should be at least one space between a C keyword and any subsequent open parenthesis
t/codingstd/c_parens.t 01:12
Yuki`N Ok my amend didn't turn out too well so I just made a separate commit and updated the pull request. 01:13
01:15 fbrito joined
dukeleto Yuki`N: danke, will look at it soon 01:23
fbrito Ah, I am stuck with my pbc_dump task :( www.google-melange.com/gci/task/sho...9452036881 01:47
01:48 whiteknight left
dalek rrot: 84ba5a6 | nwellnhof++ | / (2 files):
[io] Fix bugs in Parrot_io_seek_buffer
01:50
dukeleto fbrito: what is up? 01:58
fbrito: is there stuff that is uncoverable? 01:59
fbrito I am having problems trying to cover lines 267-294: tapir2.ro.vutbr.cz/cover/latest-c_c...ump-c.html
dukeleto fbrito: what is your coverage currently? 02:00
fbrito only 69.3%, haha
plobsing fbrito: what sections are you having trouble covering? 02:01
dalek rrot: 8dd8476 | nwellnhof++ | include/parrot/api.h:
Run make headerizer
rrot: 6acab19 | nwellnhof++ | / (4 files):
[io] Remove file_size attribute from FileHandle

It wasn't implemented and it's a value that can't be cached.
dukeleto fbrito: will be back soon. Try creating PMCs of different types, so the bytecode has various stuff to dump
fbrito plobsing: cases with "KEY_register_flag" (line 267-294) 02:02
plobsing oh keys. those are fun 02:03
and by fun I mean the opposite
fbrito case KEY_string_FLAG: and case KEY_integer_FLAG: was really easy to cover with a hash
Yuki`N 'Night all.
nwellnhof wasn't there a proposal to remove keys?
fbrito Yuki`N: good night :)
02:03 Yuki`N left
fbrito case KEY_number_FLAG: is still uncovered, like the cases with KEY_register_FLAG: 02:04
plobsing nwellnhof: yes, by bacek IIRC 02:05
fbrito: try using strings and floating point values in hash accessors
fbrito when trying to use floating points values I get "error:imcc:build_key: unknown set" 02:06
plobsing interesting
yep, looks like IMCC won't build keys using floating point values (a good thing IMHO) 02:07
fbrito for example: $P0 = new ['Hash']; $P0[1.0] = 1; will raise the build_key error 02:08
plobsing I wonder if I could remove all support for floating point values in keys without anything breaking.
fbrito: sure, but consider what floating point keys would mean. 02:09
$P0[1.0] = 'good'; $P0[0.9999999999999] = 'bad'; say $P0[1.0]
worse, what happens when those are the same in 32-bit but different in 64-bit 02:10
fbrito oh yes, it looks pretty bad :P
so... I am still left with the cases checking for KEY_register_FLAG 02:15
I saw that Key PMC has a method called 'set_register', but I am not sure how it works
plobsing fbrito: I am currently attempting to remove floatval keys altogether. that should boost your coverage, and since you brought it up, go ahead and take some credit. 02:17
fbrito I am waiting for cover_new results 02:20
from 50% to 77.2%. Still really far from the 95% that the task requested 02:22
02:22 mikegrb left
fbrito that was a very mean task :P. increase code coverage by 45%? :o 02:22
plobsing you are getting close tho 02:23
fbrito but unfortunately I have to go now :(. have to write some really important tests tomorrow 02:24
ahahah, any chance of having a task split by 2? :P 02:31
02:31 stilgar joined
stilgar fbrito: submit your task 02:36
plobsing fbrito: how much coverage would you gain if the numval key portions were gone? I am currently halfway through fulltest with everything good so far. 02:37
stilgar fbrito: i will redefine the task and plobsing is removing stuff 02:38
fbrito Code coverage was 50% when the task was created. I could only cover string and int keys, which increased it to 69.3%. Removing numval key portions increased it to 77.2% 02:39
My biggest problem are the key "switch cases" that check for KEY_(integer, string, pmc)_FLAG | KEY_register_FLAG 02:40
stilgar fbrito: this is dukeleto, btw
fbrito ahhh :P
stilgar plobsing: +1 to remove numval keys 02:41
fbrito: create an Iterator pmc and dump it 02:42
dalek rrot: 3cd107c | plobsing++ | / (8 files):
eliminate floating point key values

IMCC refuses to create these, so they are not yet in use and there are no compelling/sane examples of where this might be useful
02:43
stilgar is dukeleto's phone
plobsing fbrito: those should be fairly easy. just use $I0, $S0, and $P0 registers 02:44
fbrito plobsing: I have tried that, but it didn't work 02:46
Is there any other way of doing that? I have tried $I0 = 1; $P0[$I0] = 1
plobsing thats odd. hmmm... maybe you have to use them in complex keys?
dalek rrot: dce9186 | nwellnhof++ | t/pmc/filehandle.t:
[t] Test multibyte chars split across buffers
02:47
plobsing eg: $P0[$I0;$I1]
$P0[$I0] maps to get_x_keyed_int and doesn't use a key at all
fbrito ah, genius!
but it didn't work for case "KEY_pmc_FLAG | KEY_register_FLAG". I get the same "error:imcc:build_key: wrong register set" error 02:50
plobsing try just $P0[$P1]
Based on looking at key.pmc, I'm fairly sure PMCs aren't supported in complex keys. 02:51
there's nowhere in the struct to hold them
stilgar fbrito: some stuff is uncoverable. submit your task before you go to sleep and explain 02:53
fbrito the code worked, but it was mapped to something else
plobsing :( 02:54
fbrito let me run cover_new for the last time
stilgar fbrito: and good luck on your exams!!!
plobsing is there a concise document on what a package developer has to do to get into plumage? 02:56
I see the matadata segment in the ModuleEcosystem page, but how does that metadata get picked up?
stilgar plobsing: plumage has a json file for each project 03:01
plobsing stilgar: so it does. thanks. 03:03
cotto dukeleto, ping 03:05
stilgar cotto: pong 03:08
cotto stilgar, you're dukeleto? 03:09
mikehh cotto: btw I think fixed that problem you had with html_cleanup, cab you check it out?
can 03:10
cotto mikehh, youdid
thanks
ENOSPACE
;}
stilgar cotto: yes sir :) Stilgar is Duke Leto's right hand man in Dune and is also my phone
cotto I feel like I should have known that. 03:11
but now I do, so it works out
stilgar, see privmsg 03:14
Matt221 can someone approve this: www.google-melange.com/gci/task/sho...0353#c3001 03:15
cotto on it
done
Matt221 github.com/parrot/parrot/pull/118 03:16
cotto wonders how it's not valid to initialize a complex with a boxed int 03:18
Matt221, approved. We can pull/merge later. 03:20
Matt221 cotto: thanks!
fbrito can someone please accept my claim request on this? www.google-melange.com/gci/task/sh...9452036881 03:21
03:21 nwellnhof left
plobsing fbrito: OOC, what's your coverage at now? 03:22
fbrito 86% -.-. but "case KEY_pmc_FLAG | KEY_register_FLAG:" also seems invalid 03:23
plobsing that's not quite as easy a sell as number keys, but worth considering 03:26
fbrito maybe we can split the task in 2 2-points 20% tasks 03:27
03:31 Matt221 left
fbrito anyway... I really should go to bed 03:33
stilgar fbrito: 86% is close enough
fbrito: submit task and sleep! 03:34
fbrito stilgar: are you sure? 03:35
what do you think, cotto?
cotto . o O ("")
I'll halve the task. 03:36
wait. which task?
plobsing he did 77%. that deserves at least 3 of the 4 points
cotto nm. you mentioned it
stilgar cotto: the task was a bit too hard 03:37
cotto plobsing, it rounds up
stilgar fbrito: submit and we will figure it out
03:38 fbrito left, fbrito joined
fbrito if I did only 77% of the task I think it would be better to get 2 points instead of 4 03:42
plobsing are you arguing against points assigned to yourself?
fbrito yes... I wouldn't like if someone else had received "free" points 03:45
and I have to sleep :D
cotto fbrito++ 03:47
definitely appreciate the ethic
fbrito hehee, too bad that there aren't tasks to increase the ethic coverage :P 03:48
cotto fbrito, I can help get this straightened out now. 03:49
If you unaccept the task, I can edit it to match what you were able to do.
fbrito just did that :) 03:50
cotto fixed
accepted 03:52
fbrito, submit and I'll make sure it gets reviewed before the deadline. If you don't want to do any more tasks, you can go to bed. 03:53
fbrito ok, thank you very much :) 03:54
Kapace cotto: I might have to do the same as fbrito
cotto Kapace, ok
Kapace can't reach the last few %
cotto Kapace, how far off are you?
Kapace making cover right now.. tell you in a bit 03:55
cotto ok
fbrito ok, work submitted. going to bed 03:56
cotto fbrito, 'night
fbrito I hope I can keep contributing to Parrot, but now without the GCI pressure :) 03:58
cotto fbrito, why does your pull add some code and then delete it?
fbrito really? 03:59
cotto github.com/fernandobrito/parrot/co...b37f2a2701
fbrito the pull request has 2 commits: I added them on the first commit and moved them to it own test on the second commit 04:02
cotto ok 04:03
fbrito hm... actually the 1st commit is useless
I should have used "--amend" 04:04
should I fix it?
Kapace cotto: well, It's kinda strange, I have 89.1% and thats with Matt's earlier work 04:06
there is also one function which seem to hang when I call it
cotto fbrito, unless it changes the overall diff, don't bother.
we can have a few messy commits. Git deals. 04:07
fbrito ok
cotto Kapace, so you're saying that you're not seeing an apparent increase in coverage?
04:07 fbrito left
Kapace hmm, well 04:09
yes, It does increase, but I can't get it probably any higher than like 90..
(the latest cover seems to cover some lines that aren't in my report) 04:10
cotto Are you using fullcover? that's what tapir2 uses 04:11
Kapace oh, I'll try that (i was doing cover_new)
cotto I can't follow the proliferation of cover targets. 04:12
Kapace fullcover didn't work for me, bunch of errors, and only reports a couple files etc.. 04:32
Anyways, there seems to be some lines that would never execute and some methods that hang/fail
cotto charming 04:35
are your changes available to play with? 04:36
I can try to get some coverage results.
Kapace pushing... 04:37
cotto I'd hate for you to get knocked out of the top 10 over something stupid like that. 04:38
Kapace pretty sure I'm out anyways :( 04:39
sucks that I couldn't work on more tasks today..
cotto actually you'll be in if you get any more points and none of the other people you're tied with do. 04:40
barring disqualifications and other post-contest changes 04:41
Kapace hmm, I need 101+ points now
cotto indeed 04:42
that changed quickly
dalek TT #1943 created by doughera++: Failure due to missing external definition of inlined functions 04:50
TT #1943: trac.parrot.org/parrot/ticket/1943
Kapace oh forgot to link to my code: github.com/kapace/parrot/commit/83...9d1a3dd86f 04:51
not my proudest stuff here :/
cotto running coverage tests now. It'll be a while 04:55
Kapace ok thanks, cotto
oh, and I brought my can of applause
I should wait until it's over :P
so pirate is python on parrot? I'll probably want to look at that later 04:57
cotto Kapace, that pirate is defunct. Pynie is the current Python on Parrot implementation. PIRATE is a PIR->pbc compiler written in nqp-rx. 04:59
Kapace, I see about a 10% increase. 05:16
Kapace alright, so theres one method that when I try to call it, it hangs 05:19
line 134, load_lib
but other than that, I can't cover 167 since if the opcode is invalid an exception is raised before tapir2.ro.vutbr.cz/cover/latest-c_c...t-pmc.html 05:21
cotto Kapace, that method is in the wrong place. I'm going to delete it. 05:24
bacek_at_work Kapace, remove lines 167-170. PackfileOpMap never return -1.
cotto PackfileOpMap is responsible for loading libraries
Kapace oh ok
bacek_at_work cotto, no. Please keep method here :) 05:25
cotto ok.
It should be more paranoid though. I'll add a null check for the opmap.
bacek_at_work op_map is created in .init 05:26
You don't have to check it all the time
cotto wait. How does PFBCS.load_lib even work? It looks like it calls itself in an infinite loop.
bacek_at_work Ah. This one should be killed 05:27
Line 167 is from .push_pmc
cotto, I added .opmap and call PFBCS.opmap.load_lib() 05:28
We can add shortcut here but I don't think it's necessary.
cotto on phone. bbs 05:30
dalek rrot: d3e1e52 | bacek++ | t/pmc/float.t:
Bump Float PMC test coverage to 100%.
05:37
cotto bacek++ 05:43
05:45 rurban_ joined
Kapace whats the most violent way to kill a proccess? -9? 05:45
cotto bacek_at_work, is pfbcs.load_lib really broken or am I missing something? 05:46
Kapace, yes
05:46 khairul joined, khairul left 05:48 rurban left, rurban_ is now known as rurban
Kapace it won't die!! 05:48
cotto 11 (SEGV) might work 05:49
but it might be a zombie
plobsing find the parent, kill the parent, somewhere along the line something will handle its child processes appropriately. that's all init really does. 05:54
Kapace ended up unplugging the device, process then died, although ^ would be better 05:56
plobsing that works too I guess 05:58
bacek_at_work cotto, yes, it's broken. Just kill it 06:00
Kapace can i do the killing?
bacek_at_work Kapace, go for ti 06:02
Kapace cool: github.com/kapace/parrot/commit/d9...cb564dafde 06:05
cotto Kapace, you need to send in a cla so we can get you a commit bit 06:07
Kapace meh, I probably won't commiting too much, just every now and then 06:08
plus I like the extra eyes going over my code :)
cotto: that gets coverage up to 95.9 06:11
plobsing Kapace: don't worry, more people read parrot's commits than you'd think
Kapace actually in the latest result, one more line is covered
cotto Kapace, great. Submit your task and we'll call it complete. 06:12
Eliminating useless code is a valid way to increase coverage. 06:14
Kapace ok done.. 06:15
cotto and done 06:16
Kapace, did load_lib hang instead of segfaulting? 06:17
Kapace yes
well, prove kills it after 3 seconds, but make test just hanged
plobsing is there a way to have an exception handler pass an exception upwards to the next exception handler while maintaining the original backtrace? 06:18
cotto tco ftw
plobsing I have difficulty classifying that as a "win" 06:20
06:21 contingencyplan joined
cotto well, the tco worked, even if it was for a stupid use case. 06:22
plobsing a segfault would have been a better way of failing 06:24
but I do like that we are stackless in some sense 06:26
cotto yeah
Kapace, let me know if you want to try any other tasks 06:28
Kapace actually yeah
I was just thinking
but I'm not sure which 06:29
cotto the Class task looks like the most valuable point-wise
Kapace but I doubt I have the time for it, way too many lines 06:30
im thinking the research task
(since its easy, shouldn't been too in depth?) 06:31
cotto looking at removing auto::jit would be helpful 06:32
Kapace I was thinking mappedbytearry, but that too
cotto plobsing, nice addition on debugging random failures. I think we should have a separate file that kind of info, though. 06:34
NotFound Kapace: mappedbytearray coverage can be tricky, there is a lot of #ifdef in it 06:37
Kapace NotFound: oh, its not a coverage task, its the research one
for mappedbytearray on windows
NotFound Sorry, I'm just awakening :O 06:38
cotto plobsing++ for nuking num keys 06:42
that removes a nice chunk of confusing and misleading code 06:44
07:20 contingencyplan left
dukeleto ~~ 07:23
37 minutes until GCI is over!
cotto quite the wild ride
dukeleto cotto: indeed :) 07:26
07:27 stilgar left
cotto msg nwellnhof In your platform_src branch, shouldn't auto::platform fail if there's no appropriate file for a platform? 07:29
aloha OK. I'll deliver the message.
dukeleto Kapace: howdy 07:33
Kapace: you working on a task?
kapace_ dukeleto, hey there 07:42
dukeleto, not really, gave up..
dukeleto kapace_: no! there is still time... 07:46
kapace_ not enough :/
cotto dukeleto, be nice
I'm not sure I'd accept a gci task done in 14 minutes.
dukeleto cotto: yeah, i guess your right
kapace_: you did some awesome work, and I hope you stick around :) 07:47
cotto too
dukeleto kapace_: also, definitely apply to Google Summer of Code
kapace_ yeah, just have to catch up with school work
dukeleto, thanks, I will definetly try
dukeleto kapace_: and if you need a letter of recommendation or something, just ask
kapace_ right, well this seems about the right time.. 07:48
I'd like to thanks the mentors of Parrot for GCi
dukeleto It is interesting to see the GCI tasks that didn't get finished.
kapace_ cotto, dukeleto to name a few
I have learned a lot and it has been a great expirience :)
kapace_ opens the can of canned applause 07:49
cotto kapace_, you're welcome.
dukeleto kapace_: i must say, you GCI students blew away my expectations 07:50
cotto kapace_, if you're bored, you can completely rip out share_ro in your branch. I'm fairly sure it has no redeeming value.
tadzik wow, there aren't too many remaining tasks
kapace_ cotto, yeah sounds like a good idea 07:51
dukeleto +1 to killing share_ro
kapace_ ill try to get to it tommrow, just going to hang around for 9 minutes and fall asleep
tadzik now, where did the t-shirt tasks go? 07:52
dukeleto tadzik: they got completed, but they weren't great
cotto yeah. I don't think we'll be doing those again next year.
tadzik hmm, I didn't even get any notice, weird
cotto Melange is wonky on all fronts. 07:53
bacek aloha, humans
tadzik o/
dukeleto looks like bit dynops tests are still failing on 64bit 07:54
tadzik nevertheless, I plan to complete the remaining code-related GCI task after it's over ;)
dukeleto cotto: yeah, melange usually goes down around any deadline
cotto dukeleto, it was a general statement
It actually doesn't look much worse than normal atm. 07:55
dukeleto cotto: purely by chance :) 07:57
cotto likely as not
kapace_ well, Good night #parrot, see you again soon 08:00
cotto 'night kapace_ 08:01
tadzik 'night
GCI's over?
cotto 2 minutes ago
dukeleto GCI is Done.
and we survived, to boot. 08:02
rfw thanks cotto, dukeleto and everyone at #parrot for GCI :D 08:05
cotto rfw, thanks for being insanely productive 08:06
rfw cotto: i hope you have nice dreams about me now, instead of nightmares or sandwiches
cotto ... 08:07
rfw what, let me find it
cotto a waffle sandwich sounds pretty good
I know what you're talking about.
rfw oh good
i thought i scared you
dukeleto mmmm, waffles. 08:12
dukeleto goes to sleep
cotto 'night 08:18
dalek rrot/nqp_pct: 2e20a9f | bacek++ | compilers/pct/src/POST/ (3 files):
Move %!paramfmt into Sub.pm
08:19
rrot/nqp_pct: ea734bc | bacek++ | compilers/pct/src/POST/ (3 files):
Quick hack to move last method into Sub.pm
rrot/nqp_pct: cf6de38 | bacek++ | compilers/pct/ (4 files):
Add POST::Ops.pm
rrot/nqp_pct: 82b83fd | bacek++ | compilers/pct/ (4 files):
Split POST/Nodes.pir with only includes of other .pir files
rrot/nqp_pct: e3d865b | bacek++ | compilers/pct/src/POST/Node.p (2 files):
Migrate POST::Node to NQP
cotto reparrot.blogspot.com/2011/01/thank...dents.html 08:23
bacek cotto++ # good post 08:43
cotto thanks. now, sleep 08:45
08:49 fperrad joined 09:01 theory left 09:27 rfw left 10:39 wagle left 11:04 whiteknight joined
dalek rrot: 9b4a1f2 | mikehh++ | include/parrot/key.h:
run make headerizer to fix missing ASSERT_ARGS (removed functions)
11:32
mikehh getting some test failures (64 bit) - t/dynoplibs/bit.t - Failed tests: 136-137, 139 and t/library/sha.t - Failed tests: 1-6 11:36
11:59 whiteknight left 12:25 mikehh left
Coke I had mikehh's failure's also. 12:26
dalek p-rx: cb33a76 | bacek++ | src/setting/ResizablePMCArray.pm:
Remove redundant pirop signatures. PAST::Compiler is smart enough to handle it as is.
12:36
p-rx: f11a416 | bacek++ | / (2 files):
Properly handle unscoped multi methods/subs
p-rx: b1a8289 | bacek++ | src/stage0/ (4 files):
Rebootstrap files
12:38
rrot: 420c909 | bacek++ | ext/nqp-rx/src/stage0/ (4 files):
Update nqp-rx with fixes for unscoped multi methods handling
12:39
12:40 mikehh joined 12:45 bacek left 13:03 woosley joined 13:09 bacek joined
bacek *incoming* 13:12
dalek rrot/nqp_pct: 9b4a1f2 | mikehh++ | include/parrot/key.h:
run make headerizer to fix missing ASSERT_ARGS (removed functions)
rrot/nqp_pct: 92f00a2 | bacek++ | compilers/pct/ (4 files):
Start moving POST::Compiler to nqp
rrot/nqp_pct: 70bcb32 | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.hll_pir
rrot/nqp_pct: 631fe33 | bacek++ | compilers/pct/src/POST/Compiler (2 files):
.escape & .key_pir
rrot/nqp_pct: 81a7569 | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.to_pir
rrot/nqp_pct: 15e18c7 | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.pir_children
rrot/nqp_pct: 3b9fbf3 | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.pir(Any)
rrot/nqp_pct: 420c909 | bacek++ | ext/nqp-rx/src/stage0/ (4 files):
Update nqp-rx with fixes for unscoped multi methods handling
rrot/nqp_pct: 848164d | bacek++ | / (98 files):
Merge branch 'master' into nqp_pct
rrot/nqp_pct: ce81731 | bacek++ | compilers/pct/src/POST/ (25 files):
Remove useless 'our' from multimethods
rrot/nqp_pct: 13d69fc | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.pir(Op) and .pir(Label)
rrot/nqp_pct: f7efe98 | bacek++ | compilers/pct/src/POST/Compiler (3 files):
.pir(Sub)
rrot/nqp_pct: c4417e6 | bacek++ | compilers/pct/ (5 files):
Final switch POST::Compiler to 'nqp' version
bacek seen pmichaud 13:17
aloha pmichaud was last seen in #perl6 2 days 11 hours ago saying "excellent.".
moritz does rakudo work on the nqp_pct branch?
bacek moritz, dunno. But it should be. I didn't introduce new functionality (yet) 13:19
moritz would be a good test case :-)
bacek running "git pull & make test" now :) 13:20
moritz tries
bacek moritz, if you are bored you can actually convert POST::Compiler to nqp. I kinda cheated :) 13:21
moritz bacek: no boredom here
bacek sigh... When we can have next GCI?
13:25 Drossel joined, Kulag left
Coke tries to imagine pmichaud saying "excellent" in the smithers voice and fails. 13:29
bacek: how you doing?
bacek Coke, much better than on 1st of January :) 13:31
holy... It's 12:30 already. Good night, folks. Time to get some sleep. 13:33
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#2175) fulltest) at 2_11_0-905-g420c909 - Ubuntu 10.10 i386 (g++-4.5) 13:37
Coke good night, robot. 13:40
mikehh Coke: can you have a look at html_cleanup branch, I think it's ready to merge 13:42
arnsholt Coke: I think the reason is that it's Mr. Burns that says "eeeeexcellent", not Smithers ;)
moritz bacek: t/spec/S06-advanced_subroutine_features/recurse.rakudo faisl 8 tests with rakudo on pct_nqp branch
Coke arnsholt: brain-o. 13:44
arnsholt I figured =)
13:44 darbelo joined
mikehh got to go out for a spell - bbl 13:45
13:45 rurban_ joined 13:48 rurban left, rurban_ is now known as rurban
moritz bacek: lots of failures actually 13:51
14:00 contingencyplan joined 14:16 whiteknight joined
whiteknight good morning, #parrot 14:16
14:16 krunen left 14:17 krunen joined 14:18 plobsing left 14:19 Drossel left, Kulag joined
whiteknight msg moritz: when you get a chance can you review TT #1833? We've changed the error message and I want to see if it satisfies your requirements. 14:29
aloha OK. I'll deliver the message.
whiteknight msg cotto can you look at TT #1298 and see if it is still worth doing? I suspect it is not, but I don't want to close it as WONTFIX without a second set of eyes. 14:32
aloha OK. I'll deliver the message.
dalek TT #1091 closed by whiteknight++: ExceptionHandlers should be Subs 14:36
TT #1091: trac.parrot.org/parrot/ticket/1091
whiteknight msg cotto: Also, can you take another look at TT #1020? I think we should close that ticket as WONTFIX and plan for some of these issues to fall out of the Lorito refactors. 14:49
aloha OK. I'll deliver the message.
atrodo Looks like whiteknight is trac busy 14:50
moritz whiteknight: "er the message.
sorry
copy&paste fail 14:51
"Version %d.%d of config hash is invalid, expected %d.%d. You're probably linking against an incompatible libparrot. "
whiteknight :)
moritz as a user, I'm really interested in the file name of the .pbc file that caused the error
is that also included?
whiteknight moritz: no, not at the moment. If the input bytecode is coming from a string or array, it won't have a file 14:52
but, I can add a case where we take the file name, and include that in the details 14:53
moritz: add that request to the ticket
dalek TT #552 closed by whiteknight++: Evaluate all hack-identifying comments in source code
TT #552: trac.parrot.org/parrot/ticket/552
moritz whiteknight: I ask for the file name in the error message in the original ticket
"This error message should include the name of the file that caused this error; otherwise it is very hard to figure out which file caused the problem."
is that not enough? 14:54
whiteknight oh, i didn't see that
okay
15:01 woosley left 15:07 Patterner left, Psyche^ joined, Psyche^ is now known as Patterner 15:15 PacoLinux joined
tadzik ~ 15:21
15:23 davidfetter left 15:26 plobsing joined
mj41 /msg bacek Working on proper Git support. See tapir1.ro.vutbr.cz:2000/buildstatus/pr-parrot . You can also join irc://irc.freenode.org/taptinder 15:56
\\msg bacek Working on proper Git support. See tapir1.ro.vutbr.cz:2000/buildstatus/pr-parrot . You can also join irc://irc.freenode.org/taptinder
whiteknight mj41++ 15:57
mj41: Do you need any extra hands with your work? We want taptinder so badly that you would have volunteers
mj41 whiteknight: It isn't easy tapir1.ro.vutbr.cz:2000/dbdoc/schema.png . But I would welcome any help. 15:58
whiteknight: I'm probably doing many ugly Catalyst hacks. 16:00
tadzik msg mj41 that's how you use msg
aloha OK. I'll deliver the message.
mj41 There is also github.com/mj41/TapTinder/issues , but not too detailed. 16:01
msg bacek Working on proper Git support. See tapir1.ro.vutbr.cz:2000/buildstatus/pr-parrot . You can also join irc://irc.freenode.org/taptinder
aloha OK. I'll deliver the message. 16:02
16:05 theory joined 16:11 plobsing left 16:20 plobsing joined 16:24 hercynium joined 16:48 darbelo left
dalek rrot: 88e9072 | plobsing++ | / (20 files):
Merge branch 'platform-encoding'
16:54
16:58 fbrito joined
fbrito ~~ 17:04
whiteknight good morning, fbrito 17:06
fbrito why can I still claim tasks on GCI? isn't it over? :P 17:07
whiteknight i don't knpw 17:08
know
tadzik it's over 17:09
Google says: all work stops
maybe melange just fails at it ;) 17:10
whiteknight can't be! melange never fails at anything 17:11
17:17 darbelo joined 17:26 plobsing left, bacek left
cotto whiteknight, 1298 still sounds like a good idea if someone finds tuits for it. 17:26
I'll need to look at 1020 when doing Lorito planning. Some of it is likely worth using. 17:28
I'm glad we did gci, but I'm very glad it's over. 17:29
now, back to normalesque 17:30
17:37 Kristaba joined, bacek joined
whiteknight yes, GCI was awesome but exhausting 17:38
dukeleto ~~ 17:39
whiteknight: i have some questions for you about the new embed api
whiteknight dukeleto: sure. What's up?
dukeleto whiteknight: how is extend_vtable.h related to your new embed api? I notice that api.h does not include extend_vtable.h . 17:40
whiteknight extend_vtable.h, and related extend_vtable.c are the old API
they aren't used by the new API
dukeleto whiteknight: ok
dalek tracwiki: v32 | cotto++ | CottoTasklist
tracwiki: trac.parrot.org/parrot/wiki/CottoTa...ction=diff
dukeleto whiteknight: so extend_vtable.(c|h) are going away
whiteknight the goal is to sheild end users from words like "vtable", etc
dukeleto whiteknight: well, that is good to know, since my current TPF grant is increase test coverage on extend_vtable 17:41
Coke I was bummed that all the individual code coverage increases were only 3.5% all told.
IWBN to note as an update what the before/after percentages were.
dukeleto whiteknight: perhaps I can change directions and increase code coverage on the new api
whiteknight dukeleto: we do need access to vtables from extending applications still
so that file might want to stay, with tweaks, for that purpose
but the new embedding API will be using a different and more abstracted interface for PMC operations 17:42
Coke sees that checkdepend.t is skipping files again.
dukeleto whiteknight: interesting.
Coke can someone open a ticket for tht?
meh, I'll do it. 17:44
dukeleto whiteknight: for example, how do I push an element onto a RPA in the new embed api?
dalek rrot: 8427455 | Coke++ | t/src/checkdepend.t:
Add ticket for todo.
17:46
Coke wonders why some branches are being merged as individual commits and others as single merge commits. 17:50
Coke guesses "just becauses"
whiteknight dukeleto: At the moment, there is no API for many operations, such as push 17:53
dukeleto: we want to add them, but there hasn't been a demand yet
dukeleto whiteknight: ok, just clarifying
whiteknight: so my tests for extend_vtable.h will be useful, when that functionality is implemented in the new API 17:54
Coke ... why not expose the vtables again?
dukeleto whiteknight: in the sense of "here is what the old api could do"
whiteknight dukeleto: What we don't want is to have ~200 PMC operations as separate API calls, because so many of those are lower-level than the user needs to care about
Coke (if the goal is to hide them, then it seems like the "right" thing to do would be to allow invocation of opcodes, since that's how a PIR user would get at that functionality) 17:55
whiteknight Coke: we want the embedding API to be more stable, and exposing all sorts of low-level interfaces like that is asking for trouble
dukeleto whiteknight: PL/Parrot needs to be able to push and pop PMCs from a ResizablePMCArray
whiteknight dukeleto: Noted. I'll add those methods ASAP
cotto_work ~~
dukeleto cotto_work: nice blog post about GCI
whiteknight dukeleto: I'll set up a fork of PL/Parrot and start updating to the new API, adding interfaces as necessary 17:56
Coke whiteknight: do you not expect anyone but core parrot to be able to use vtables?
whiteknight Coke: extenders can and should use them
Coke: but the word "vtable" should not be in the mind of the embedder. It's too low-level
we can provide friendly wrappers around many of the vtables if needed
dalek TT #1944 created by coke++: t/src/checkdepend.t should not skip thr_ files. 17:57
TT #1944: trac.parrot.org/parrot/ticket/1944
whiteknight but a general, automagical code generator to create wrappers for all vtables is really out of the question
Coke: What the API wants to do is provide the capabilities of Parrot in a way that doesn't expose Parrot internals, Parrot architecture, etc. 17:58
Coke doesn't sound quite right to me, but IANAembedder. (Is partcl considered an extender?)
dukeleto whiteknight: you have a commit bit to PL/parrot, you can probably just make a branch
whiteknight Coke: partcl is an extender, not an embedder. Right.
dukeleto whiteknight: but whatever works for you
whiteknight dukeleto: Ah, that's much easier
Coke: When you think about all the big subsystems we've refactored in the past, and all the ones we want to do in the future, and all the times Parrot has "broken" things like partcl because of well-meaning changes, we really want something more stable for people to use and rely on 17:59
Coke dukeleto: are you currently the only parrot person with keys to the gcc farm?
whiteknight: I'd settle for functional at this point. <shrug> 18:00
dukeleto: or rather, is your access somehow tied to the parrot foundation, or can anyone from parrot sign up? 18:01
whiteknight Coke: The new embedding API is very functional. And stable. And it was designed in such a way that we could completely rewrite a lot of stuff in Parrot and not affect it's stability
cotto_work dukeleto: thanks
seen yuki`n 18:02
aloha yuki`n was last seen in #parrot 15 hours 58 mins ago saying "'Night all.".
whiteknight I sincerely hope that some of those GCI students stay on as regular contributors 18:04
I sincerely hope that some of them go on to become GSoC students 18:06
dukeleto cotto_work: anybody can ask for access and I am currently the only one with access 18:07
cotto_work dukeleto: to what? gcc compile farm?
mikehh there are a bunch of build error in latest parrot with g++
cotto_work has the memory of a goldfish 18:08
Coke cotto_work: he was probably talking to me. He can't seem to keep us straight.
dukeleto Coke: anybody can ask for access and I am currently the only one with access
whiteknight you mean Coke and cotto_work aren't the same person?
dukeleto cotto_work: sorry, tab-complete fail
whiteknight mind = blown
cotto_work Coke: I know the feeling. Half the time I think you're me.
Coke That's got to be rough on me.
18:09 Coke is now known as cokke_work
whiteknight cotto_work: is the opmap_aware_pmc branch able to be deleted? It was merged, but the branch is still there 18:11
18:11 sri is now known as srilicious
cotto_work whiteknight: verify with bacek but I think the answer is that it's safe to nuke. 18:11
He's taken it over with his robot-like efficiency.
whiteknight He is truely a gentleman and a scholar 18:12
cotto_work a gentlebot and a scholarbot
whiteknight msg bacek the opmap_aware_pmc branch was merged. Can we delete it from github? Thanks
aloha OK. I'll deliver the message.
whiteknight msg plobsing the platform-encoding branch was merged, can we delete it from github? Thanks 18:13
aloha OK. I'll deliver the message.
whiteknight I really want to continue Tene's work on the exceptions refactor stuff. I don't think his branch is salvagable, but there isn't too much stuff in there
dukeleto fbrito: students are still submitting tasks? What kind of insanity is this? 18:16
Tene whiteknight: the patches themselves are pretty small; it would be pretty simple to re-do. 18:17
cotto_work dukeleto: I guess it's good enough for melange to disable mentor and admin access to task manipulation
dukeleto cotto_work: students are still getting points, so something is wrong 18:18
cotto_work: fbrito notes that someone just bumped someone else out of the 10th spot
cotto_work whiskey tango foxtrot
dukeleto cotto_work: there could be riots in the streets
cotto_work Google clearly didn't put their A team on gci. 18:22
18:23 kurahaupo joined
whiteknight don't go criticizing google 18:25
anything they do or provide is 100% more than we would have had otherwise
cotto_work This is true.
thanks for the perpective
*perspective
There are annoying inconsistencies and UI problems, but gci has definitely been an overall win. 18:26
whiteknight the first GCI is definitely a learning process 18:27
and I'm not exactly volunteering to help fix melange myself
Tene whiteknight: additionally, if you have any questions about the work in that branch, just ask me, and I'm glad to chat about it.
whiteknight if somebody is submitting tasks after the deadline, and those points are changing the list of "winners", that is a problem 18:28
dukeleto This "first GCI" is actually the second time this contest has existed. It was called "Google Highly Open Participation Contest" before
whiteknight: that is what I hear. fbrito says that the #10 spot just changed
whiteknight Tene: Will do. I've been looking at the changeset, doesn't look hard. Changing most of the vtable->base_type checks to VTABLE_isa checks would be a big help
dukeleto but this is the first year it was called "Google Code-In"
dukeleto was not involved in the first year (GHOP)
whiteknight Tene: This is the changeset according to github: github.com/parrot/parrot/compare/m...tor#diff-3
cotto_work Out of the top 10 students, 8 appear to have completed tasks after the deadline. I'm not entirely sure what it means though, since some of the dates are in the future. 18:29
dukeleto good lord.
cotto_work socghop.appspot.com/gci/student_ran...10/aoihana 18:30
whiteknight that's a lot of Romanian! 18:32
did that student write any code?
dukeleto contacts Carol Smith 18:33
Tene whiteknight: that part was easy. The only actual problem I ran into with it was dealing with two separate sets of storage for instances of subclasses.
whiteknight Tene: what do you mean?
Tene whiteknight: depending on which set of vtables I used to access attributes, I'd get a different attribute storage. 18:34
I don't remember the details there, lemme look at the changeset.
dukeleto The melange devs are telling me that they will remove any points/tasks completed by students after the GCI deadline 18:35
cotto_work ok. I figured there'd be a mop-up operation.
dukeleto there is almost always some timezone/time-of-day issues with deadlines
cotto_work Where are they hanging out? I'd like to say thanks.
dukeleto cotto_work: #melange on freenode
Tene whiteknight: do you see the places I changed set_attr_str to set_pmc_keyed_str? 18:36
erm, one place.
There were a few issues like that that I still wanted to track down.
Somehow, if I directly called {get,set}_attr, I'd be accessing a different place than if I used {get,set}_*_keyed, which just called {get,set}_attr 18:38
whiteknight weird
Tene: Are there any specific test cases you were working on? Do you have any tests that currently fail but should pass? 18:39
Tene I had a test I wrote, where I instantiated a subclass of exception, set_attr ex, 'msg', 'a'; ex['msg'] = 'b'; $S0 = get_attr ex, 'msg'; $S1 = ex['msg'];
$S0 was 'a', $S1 was 'b'
whiteknight Tene: okay. that seems easy 18:40
Tene Nobody could offer me any help with that, so I just standardized everything to use the same interface, or something.
cotto_work who broke the build?
whiteknight okay
18:40 srilicious is now known as sri
dukeleto From Carol Smith (the GCI coordinator): No, you cannot work on further tasks. However, students that submitted work before the deadline can still have mentors approve their tasks now and therefore still gain points and move around in the rankings. 18:40
so some mentors are still getting around to reviewing submitted tasks 18:41
Tene whiteknight: I don't think that's a critical issue, as long as basic operations all work. The only issue is if there are codepaths somewhere where someone passes in an instance of a subclass, and it uses the wrong storage location.
and whether it's possible for users to write code that works with exceptions, but not with subclasses. 18:42
That sort of concern was why I never merged it in; I wanted some feedback on whether this behaviour was expected, whether it was a bug or not, etc. 18:43
18:47 plobsing joined
NotFound whiteknight: I think we can't fully fix the subclassing problems without rethinking and reworking the attributes access. 18:50
18:50 TiMBuS left
whiteknight NotFound: Not completely. But I do think we can get things working much better than they are working now 18:57
plobsing ~~ 19:00
while we're talking about exceptions, do we have a mechanism for exception handlers to rethrow the exception *without* updating the backtrace? if not, we really should. I've been frustrated by this too many times already. 19:03
NotFound We have the rethrow opcode, but is deprecated, isn't it? 19:05
moritz can't it be a method? 19:06
plobsing NotFound: I tried that. it didn't help.
NotFound If we need it, we can undeprecate and fix.
whiteknight plobsing: Open a ticket for that and assign it to me
NotFound We can also use the can_handle method on the handler, but that way needs subclassing 19:07
whiteknight As part of the embedding API work I changed it so that the backtrace printer outputs a STRING instead of printing it right to stderr. I can cache that on rethrow and keep long compound histories now
plobsing but rethrow from within parrot shouldn't hit the embedding API 19:08
also backtraces within parrot are arrays, not strings
moritz array sounds find 19:09
cokke_work there's already a ticket for that exception request. moment. 19:10
19:10 cokke_work is now known as Coke
Coke trac.parrot.org/parrot/ticket/1283 19:11
assigned it to whiteknight. 19:12
plobsing yes. that is *exactly* what I'm asking for.
Coke plobsing: welcome to Oct 2008. :P
whiteknight Coke++
plobsing the current behaviour makes debugging Ωη grammars (which use exceptions for failures) very painful 19:13
whiteknight plobsing: I'll try to get this implemented ASAP
Coke be sure to read the original thread on RT also, as allison seems to have a slightly different idea on resolving it.
whiteknight I would like it in for 3.0
Coke; will do
Coke /to have/to have had/, anyway. 19:14
NotFound So rethrow is not deprecated? I can't find a ticket for that, maybe it was not ported from RT, 19:17
whiteknight I don't think rethrow is deprecated 19:18
plobsing what does that mean for the proposed changes?
whiteknight and if I am going to be adding behavior to it to provide better backtraces, I don't think it should be
Coke it's not deprecated.
SFAIK. 19:19
especially since it doesn't do the same thing that throw does, even if it's not the different thing Pm & plobsing & I expected.
19:26 plobsing left 19:33 plobsing joined
NotFound rethrow just sets the unhandled state in the excpetion and calls Parrot_ex_throw_from_op 19:54
whiteknight right
I'm going to push a few exploratory commits here in a minute
dukeleto bit dynop tests are still failing on 64bit 19:59
smolder.parrot.org/app/projects/rep...tails/2179
dukeleto goes for a run 20:00
cotto_work Is the build broken for anyone else? 20:14
plobsing those tests fail for me as well 20:16
whiteknight cotto_work: I don't know. I'll try it in a second
dalek rrot/exception_backtraces: 3c6f7d0 | Whiteknight++ | src/ (3 files):
rethrow caches the old backtrace.
20:21
rrot/exception_backtraces: 0bc55ee | Whiteknight++ | src/exceptions.c:
+docs
rrot/exception_backtraces: 0a4f093 | Whiteknight++ | / (4 files):
build fixes
cotto_work I'm bisecting now 20:24
NotFound The algorithm for the rot op looks odd for me. 20:30
dalek rrot: 62b8c4e | plobsing++ | src/ (2 files):
use platform strings in directory read

PARROT_EXPORT must be used because OS is a dynpmc
20:31
NotFound plobsing: WTF is a platform string? 20:32
plobsing it is platform-specific-encoded string
on windows, probably utf-16. on linux, probably utf-8, but also possibly latin-1 or ascii. 20:33
cotto_work github.com/parrot/parrot/commit/9c...94e7d870fe is the culprit
that one breaks the build on my box
NotFound plobsing: I can have names utf8 encoded and names iso-8859-1 encoded. With that change, such directory can't be read.
plobsing NotFound: unicode-aware applications should respect the locale
NotFound plobsing: reading directories shouldn't fail for such reason. 20:34
plobsing working with strings coming from directories shouldn't fail because we guess about the encoding. locale is the way the user tells its programs how to interpret file names (among other things). 20:35
NotFound plobsing: and the locale is choosen by the user, not
not by the system as a whole
plobsing cotto_work: that one appears to be mine. what is the error message and what platform are you on? 20:36
cotto_work ubuntu 10.10 x86 20:37
plobsing NotFound: try Filehandle.readall() on strings comming from OS.readdir. it fails to open files (with error "no such file") for me.
the file *is* there, I just read the directory! 20:38
cotto_work trying to reproduce. it'll be a minute
plobsing changing directory read to respect locale fixes the problem 20:39
nopaste "cotto" at 192.168.1.3 pasted "broken build" (15 lines) at nopaste.snit.ch/27671 20:40
cotto_work plobsing: ^
20:40 Andy joined
plobsing NotFound: we had 2 different, both incorrect, strategies for dealing with platform strings 20:43
(1) assume ascii - obviously wrong
(2) passthrough (assume binary) - wrong whenever you start doing things with such strings (eg: mangling paths)
the worst is what happens when both assumptions come into play in the same program 20:45
NotFound plobsing: (2) is better than being unable to read some directories. At least you can recode it if you want. 20:49
20:51 plobsing left 20:55 plobsing joined 20:57 perlite_ joined
plobsing NotFound: you can delegate the recoding down the line, yes. but that just pushes the same problem to everyone trying to do anything remotely intelligent with directories. 20:57
what, for example, should distutils do? 20:58
NotFound The problem is: using binary or iso-8859-1 all characters are valid, even if printing looks ugly, but using utf8 there are invalid byte streams.
plobsing but using binary strings breaks any program that tries to do anything with the paths 20:59
the case for using binary strings is basically limited to ls
21:00 perlite left, perlite_ is now known as perlite
NotFound plobsing: I think the only sane solution is to have a lousy utf8 that converts invalid utf8 bytes to some private codepoints, 21:01
plobsing NotFound: that could work 21:02
alternate full solutions include optional parameters for getting binary-encoded strings from system operations or giving access to the platform encoding alias to users (so they could reset this to "binary" if they so chose) 21:03
NotFound plobsing: the problem with user driven solutions is that a user that gets a "Cannot read directory" error may not even notice what is the problem. 21:05
plobsing but, if we did things right, users would get "Cannot read directory: invalid UTF-8 string" which explains *exactly* what the problem is
at which point, they could take steps to remedy the problem 21:06
NotFound plobsing: I think I can without much effort creating a directory with a bunch of such errors where ls looks perfectly normal. 21:07
And I have seen such things at works, accidentally cretaed,. 21:08
Or smb mounts unappropiately configured.
Most users can't figure what is the problem. 21:09
plobsing ls from gnucoreutils (yes I know most shells implement it themselves) respects locale 21:10
sorear the obviously correct thing to do is "whatever ls does"
ls needs a robust way to go from bytes to characters for printing 21:11
on Windows, do "whatever explorer.exe does"
cotto_work plobsing: can you resolve this quickly or should the change be reverted?
sorear files should show up to Parrot as they show up to the user
NotFound Some systems just replace inavlid utf8 with one special purpose codepoint, but that way will fail to open the files.
plobsing cotto_work: I have no clue, I'm trying to do 3 things at once. 21:12
NotFound A full solution should use one codepoint for each invalid byte.
plobsing I can probably have it finished by day-end PST
21:13 wagle joined
NotFound sorear: on Windows I think the best way is to use Unicode aware functions and convert the utf16 that windows provides to utf8. 21:13
dalek Heuristic branch merge: pushed 135 commits to parrot/kill_packfile_new_dummy by Whiteknight
whiteknight Windows will typically do proper unicode with the -W functions 21:14
NotFound But the console input/output usually is not configured for unicode, so the file names may need conversion.
whiteknight Unable to open filehandle from path '--ou'
I'm getting that build error today when I try to build master
plobsing not you too 21:15
whiteknight others are seeing that too?
cotto_work whiteknight: the build is broken for me too. It could be related.
nopaste.snit.ch/27671
NotFound --ou ? 21:16
whiteknight NotFound: comes from this command-line: ./parrot runtime/parrot/library/PGE/Perl6Grammar.pir --output=compilers/pge/PGE/builtins_gen.pir compilers/pge/PGE/builtins.pg
the --output is getting mangled
atrodo Just got the same thing as well 21:17
NotFound master builds fine for me
plobsing people with build failures: what locale do you have configured? 21:18
NotFound But looks like is failing a bunch of tests
cotto_work plobsing: is that $LANG?
NotFound Uh, oh... there are locale problems with the floating pint, 21:19
plobsing cotto_work: it is LC_ALL || LC_CTYPE || LANG
NotFound point
cotto_work en_US.utf8 then
NotFound I'm seeing thinks like: got 0,1 expected 0.1
Spain locales use , as decimal point.
plobsing huh. I'm on utf-8 and I don't see failures
NotFound: that one is probably easier to remedy 21:20
there's some granularity in locales I chose to ignore. maybe it is in there.
whiteknight Maybe we want Parrot to respect user locale, and our tests for floating point format is wrong
of course, that fix is probably harder to do than the "just ignore it" fix 21:21
NotFound plobsing: Is a known issue, I've seen such things even in Borland Kylix
plobsing whiteknight: or "ignore except for known-good locales"
atrodo plobsing> I have no locale set
whiteknight it would do Parrot well to be more language- and locale-respectful in the future 21:22
NotFound whiteknight: we don't want to always respect locale for such things. Programming languages almost never do that.
plobsing atrodo: you have *something* set. if you haven't done anything, chances are it is en_US.UTF-8
NotFound That was the kylix failure.
The only compilers I know that did such things were cobol with the DECIMAL POINT IS COMMA option. 21:23
whiteknight In C# I can write software which is completely localizable and translatable. .NET makes that easy for the programmer by providing all the necessary tools
NotFound whiteknight: yes, but you don't that in the source text.
whiteknight I can always pass a locale name, or "current locale" to object.ToString() and get the right results
plobsing: Do you think my build failure is related to the platform-encoding branch merge? 21:24
atrodo plobsing> Not sure about UTF-8, the box was built in 2004, but nothing is set in my env
whiteknight because I only have about ~5 minutes here at this computer to get diagnostics information for you
After that I'm packing up and heading home
NotFound const PI = 3.14 # Change this to fit your locale decimal point
whiteknight NotFound: in the actual source code? 21:25
plobsing whiteknight: are you seeing the *exact* same failure as cotto_work ?
whiteknight no
plobsing: my failure is this: Unable to open filehandle from path '--ou'
NotFound whiteknight: there was at least one Kylix version with that bug, yes.
whiteknight in response to: ./parrot runtime/parrot/library/PGE/Perl6Grammar.pir --output=compilers/pge/PGE/builtins_gen.pir compilers/pge/PGE/builtins.pg 21:26
plobsing that means that Parrot_str_platform_strlen() is returning the wrong value for some reason on that argument.
whiteknight: where is the API function that wraps argv? 21:27
whiteknight plobsing: yes
src/embed/pmc.c, Parrot_api_pmc_wrap_string_array, or something like that
Parrot_api_pmc_wrap_string_array 21:28
plobsing yep. that's where the failure is most likely occurring.
NotFound I got several hundreds of test fails.
whiteknight it calls Parrot_str_from_platform_string to do the conversion
plobsing which in turn calls Parrot_str_platform_strlen and uses Parrot_platform_encoding_ptr 21:29
whiteknight although that doesn't make sense, since argv is char*, not wchar_t*
NotFound Mmmm... make test don't do a grand total of fails?
plobsing argv *can* contain non-ascii characters
the previous assumption of ASCII was very wrong 21:30
whiteknight okay, on that note I need to pack up and go home
I'll be back on in ~60min for more debuggerization
21:31 whiteknight left
NotFound A lot of the failures are the . -> , floating point problem 21:31
plobsing NotFound: s/LC_ALL/LC_CTYPE/ in calls to setlocale should eliminate the locale-respect of printf 21:32
NotFound There are also tests that looks for the text of error messages and are getting localized versions
21:33 avms joined
NotFound For example: Failed test 'Test bad OS.lstat' ... # No existe el fichero o el directorio .... doesn't match .... No such file or directory ... 21:34
plobsing atrodo: do you have time to help me debug? can you step through Parrot_api_pmc_wrap_string_array for the failing invocation and tell me if the values returned by Parrot_str_from_platform_cstring() correspond or not to the values in argv?
atrodo plobsing> With a little guidance, i can lend a little bit of time 21:35
plobsing atrodo: awesome! 1st, do you have gdb? are you at all familiar with it? 21:36
atrodo Yes, and enough to get around
plobsing OK. the command './parrot runtime/parrot/library/PGE/Perl6Grammar.pir ...' fails for you as well, correct? prefix that with 'gdb --args' 21:37
atrodo Okay
plobsing set a breakpoint at Parrot_api_pmc_wrap_string_array
atrodo Do you know a good place to set the breakpoint?
NotFound Using LANG=C I got: Failed test 'Test OS.readdir with ord >127' at t/dynpmc/os.t line 395. Invalid character in ASCII string 21:38
atrodo okay. And apparently, now i'm in gdbtui
plobsing good. next-source-line-step (n) through that function. at each loop iteration print argv[i] and *arg. they should be the same. 21:40
atrodo nopaste? 21:41
plobsing please
atrodo aloha> nopaste?
aloha atrodo: Dunno.
atrodo drat 21:42
plobsing aloha: nopaste?
aloha plobsing: nopaste is is nopaste.snit.ch (works with the script in $_PARROT/tools/dev/nopaste.pl)
plobsing > does not parse so well
atrodo apparently
nopaste "atrodo" at 192.168.1.3 pasted "for plobsing" (6 lines) at nopaste.snit.ch/27672 21:43
atrodo *arg ends up being blank on the first arg
plobsing print arg *after* it is assigned (gdb shows the line it is about to evaluate)
nopaste "atrodo" at 192.168.1.3 pasted "for plobsing" (20 lines) at nopaste.snit.ch/27673 21:44
atrodo plobsing> Yep, each time it was examined at line 536
plobsing oh. ouch. 21:45
21:45 rurban_ joined
plobsing atrodo: can you step into Parrot_str_from_platform_cstring -> Parrot_str_new_init from there and print the value of '*s'? 21:47
atrodo sure, hold on 21:48
21:48 rurban left, rurban_ is now known as rurban, Kulag left
dalek rrot: aa0783b | plobsing++ | include/parrot/string_funcs.h:
headerizer
21:48
atrodo *s is an empty string 21:49
plobsing at the end?
atrodo hmmm
plobsing ok, what's len?
21:49 Kulag joined
plobsing and is 'buffer' the expected value? 21:50
atrodo the string passed to Parrot_str_platform_strlen is empty... 21:51
Coke is this breakage happening in master?
(re previous discussion about encodings and failing tests)
cotto_work yes 21:52
NotFound --ou -> 4 --output -> 8 Maybe some misconversion and some mixing of lenght and bytelength
atrodo Okay, in Parrot_str_new_init, buffer is correct, but len is set to 0 21:53
Very strange. The call to Parrot_str_platform_strlen uses c just like the outside call to Parrot_str_new_init does, but Parrot_str_platform_strlen gets an empty string and Parrot_str_new_init gets the right string 21:54
on the second time around, s in Parrot_str_platform_strlen is garbage
plobsing gah. that's just plain weird 21:55
Coke ... can we please not break master? it's (*!@#&$ hard enough to bisect as it is.
atrodo I've got to run 21:56
plobsing I have a theory of why it doesn't work 21:57
Parrot_str_platform_strlen is not predeclared
NotFound plobsing: ack don't show it in any .h file 21:58
plobsing apparently platform-specific function predeclaration is manually maintained in include/parrot/platform_interface.h
theory belches 21:59
NotFound "Get the length of a platform-encoded C string." What does this mean?
Coke wonders how that isn't "strlen" 22:00
plobsing utf16 strlen != strlen 22:01
it is strlen on linux
NotFound plobsing: What system uses utf16 for char * ? 22:02
dalek rrot: 4ae951d | plobsing++ | include/parrot/platform_interface.h:
remove declaration of dead memexec functions
rrot: a70cd1b | plobsing++ | include/parrot/platform_interface.h:
predeclare platform encoding functions
rrot: b65708c | plobsing++ | src/string/api.c:
add interp as first parameter to function (major thinko)
plobsing b65708c probably fixes the problem
not sure why it wasn't failing here
maybe realclean doesn't remove the appropriate .o file 22:03
NotFound: types can lie 22:05
NotFound plobsing: the use void * to a-void confusion.
Same failure as before with LANG=C 22:08
And still a lot of failures with es_ES.UTF-8 22:09
nopaste "plobsing" at 192.168.1.3 pasted "[PATCH] higher granularity locale for NotFound" (26 lines) at nopaste.snit.ch/27674 22:10
plobsing NotFound: try ^^this^^
people with build failures: please try b65708c to see if it fixes your problems 22:11
22:13 darbelo left
cotto_work plobsing: looks better for me 22:16
plobsing \\o/
not sure why that was working for me. it was horribly wrong.
cotto_work and by "better" I mean "good"
plobsing quirk of the x86_64 ABI I suppose
cotto_work How did that even compile? 22:17
22:17 darbelo joined
plobsing when you fail to predeclare, you predeclare failure 22:17
or something like that
22:18 darbelo left
NotFound plobsing: fine with my usual locale, still fails with LANG=C 22:19
And of course, the fails in dynoplibs/bit.t and library/sha.t remains. 22:20
plobsing (re: LANG=C) that sets ASCII as the platform encoding. very probably, you've got non-ASCII paths. 22:21
maybe platform string should *try* to encode according to locale and fall back on binary encoding 22:22
NotFound plobsing: the test that fails uses a non-ascii path on purpose.
Failed test 'Test OS.readdir with ord >127'
plobsing we have a test for non-ascii paths? does that work on all filesystems?
NotFound at t/dynpmc/os.t line 395. 22:23
plobsing: no system that I know has problem with using byte values > 127, even if printing them may looks ugly or wrong, 22:25
bacek_at_work ~~ 22:26
NotFound But if we have a strict ascii encoding and use it, of course we should fail at that.
plobsing which is basically what LANG=C does
it says "expect strings to be ascii"
NotFound plobsing: no program that I know restrict to strict ascii with LANG=C 22:27
cotto_work hi bacek_at_work
bacek_at_work aloha, cotto_work
NotFound That's why many people talk about "extended ascii"
plobsing true, strict reading of standards may lead to serious violation of POLS 22:28
NotFound Which ususally means "the system works by magic, except when it does unexpected things"
And they call "wizards" the pepole able to fix things because of that ;) 22:29
His magic is more powerful.
plobsing we could probably get by with falling back to binary when platform-encoding fails
it would only fail where it absolutely had to 22:30
in stead of everywhere it might eventually
is that an acceptable option? 22:31
of course failures would be more cryptic ("why is my program emitting complete jibberish?") in stead of ("oh hai, u haz an encodingz problem")
NotFound plobsing: for a quick fix, WFM, but for long term we should consider the lousy utf8 approach. 22:32
And maybe hard-code iso-8859-1 in some systems.
cotto_work POLS? 22:35
plobsing aloha: POLS? 22:36
aloha plobsing: I give up.
plobsing POLS is the principle of least surprise
aloha: POLS?
aloha plobsing: POLS is the principle of least surprise
GeJ aloha: POLA?
aloha GeJ: Search me, bub.
NotFound Failing to read a directory that most tools and applications can navigate without problem is a BIG surprise. 22:37
GeJ hey, watch that attitude of yours young girl!
cotto_work principle of least awesomeness? 22:38
GeJ astonishment.
plobsing I like cotto's better
GeJ :) 22:39
NotFound I should have be more specific: is BIG BAD surprise. 22:42
22:43 hercynium left
NotFound I'm not completely against good surprises. 22:43
plobsing NotFound: I'll admit that the solution I implemented doesn't solve for the general case. But it *does* solve for a fairly common case: a system with encodings which are everywhere-consistent and locales which are set up properly. 22:44
aka UnicornOS
NotFound plobsing: I'm sure they are the majority is USA. 22:46
plobsing I'd wager they're also fairly common for single-user systems abroad.
NotFound plobsing: I don't like a general purpose tool like parrot with such restrictions. 22:48
22:48 fperrad left
plobsing covering some cases well and failing early in others is better than failing late and cryptically 22:49
22:49 Andy left, hudnix left
NotFound plobsing: failing early to read or navigate a directory does not solve anything. 22:50
plobsing chances are you are going to want to do something with the strings you read from a directory. if you don't encode them properly, you are going to do that something incorrectly. 22:51
NotFound People may be surprised while seeing funny characteres in a directory that they don't know were here, but is no surprise to see funny characteres when they are here. 22:52
So the surprise doesn't come from parrot, comes from the directory.
plobsing: yes, but failing to do something with them is not a proper encoding. 22:53
dalek rrot: e635b0a | plobsing++ | / (6 files):
fix C++ build
plobsing I suppose most (all?) cases of mistaken-encoding are (mostly) harmless because the operations we're performing on them mostly deal with ASCII characters (which are usually encoded the same way) 22:54
NotFound plobsing: but if we assume strict encoding in strings that come from the operating system or external libs, we have a problem. 22:57
latin-1 and the like don't have that problem because any byte is a valid character, but strict ascii and utf8 do. 22:58
plobsing NotFound: I can see your point. But I don't think we can go down the route of being agnostic about encoding (as the kernel does). 22:59
NotFound plobsing: maybe not, but we should support the corner cases some way. 23:00
At least in the lower levels, the HLLs and librarys may filter whatever way they want. But you can't unfilter if the lower level fails. 23:02
23:02 avms left
plobsing NotFound: I'll work on a more general solution soon. Decommuting. 23:03
NotFound ok 23:04
23:09 plobsing left
cotto_work seen andy 23:10
aloha andy was last seen in #parrot 2 hours 29 mins ago joining the channel.
cotto_work seen petdance
aloha petdance was last seen in #perl6 43 days 19 hours ago joining the channel.
23:19 hudnix joined 23:22 hudnix left 23:23 hudnix joined, kid51 joined
kid51 . 23:24
dalek rrot: 24280fc | mikehh++ | config/gen/makefiles/root.in:
fix dependency for src/runcore/profiling.c
23:28
kid51 mikehh: ping 23:39
mikehh kid51: pong 23:41
bacek_at_work cotto_work, I've deleted opmap_aware branch
kid51 mikehh: Have you merged html_cleanup yet?
mikehh kid51: not yet - I was making sure master was ok first :-} will do it in an hore or so 23:42
hour 23:45
dalek TT #1927 closed by jkeenan++: Parrot doesn't build with spaces in directory name
TT #1927: trac.parrot.org/parrot/ticket/1927
atrodo b65708c built for me 23:46
kid51 I see that earlier I got a failure in t/dynpmc/os.t. 23:47
cotto_work bacek_at_work: thanks
kid51 This is a file I often see fail, but not consistently.
dalek Heuristic branch merge: pushed 24 commits to parrot/nwellnhof/platform_src by nwellnhof
cotto_work I really like that new message. 23:51
23:52 nwellnhof joined
mikehh should add to karma though, like nwellnhof++ 23:52
cotto_work yes 23:53
kapace_: ping
kapace_ hey cotto_work, just got back from school
cotto_work wb then
kapace_: in your pfbcs pull request, why do you test that pfbcs doesn't implement pack?
nwellnhof dalek++ 23:54
kapace_ those were the only methods left to cover
cotto_work ah
kapace_ I was thinking of making some sort of todo test?
so then when they pass unexpectedly, we can just get rid of the third arg (todo) to ok() or whatever 23:55
cotto_work There's no need for them. PackfileSegment implements them the same way.
nwellnhof cotto: when no platform specific file is found, the one in the "generic" directory is used. it's exactly like the current system.
cotto_work bacek_at_work: can pfbcs.pack and unpack be removed?
nwellnhof cotto: it can happen that no generic file is found, but that's ok.
nopaste "kid51" at 192.168.1.3 pasted "t/dynpmc/os.t: New failure in 'Test OS.readdir with ord >127'" (59 lines) at nopaste.snit.ch/27675 23:56
kapace_ cotto_work, so they can be removed?, oh well see what bacek says
then I'll remove them in the same branch as removing share_ro?
cotto_work nwellnhof: what about when someone adds a platform-specific file but forgets a generic version?
kapace_: better to use your pfbcs test branch
kapace_ ok
cotto_work keep similar stuff together 23:57
kapace_: test_methods looks fine 23:58
nwellnhof cotto: we should always have a generic version. like in the current system.
dalek Heuristic branch merge: pushed 20 commits to parrot/nwellnhof/unicode_filenames by nwellnhof
nwellnhof what's the heuristic? more than 5 commits? 23:59
cotto_work nwellnhof: of course. I'm just thinking about how to code defensively.
fail early, etc