Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (12 to go), merge outstanding branches
Set by moderator on 26 August 2010.
mikehh Gej: I am not sure about nopaste.snit.ch/23163, something like that is ok, will look at it, nopaste.snit.ch/23164 is fine 00:00
cotto_work I thought GeJ had a commit bit. 00:01
Coke cotto_work: I would like to evict purl.
mikehh Coke: provided we have a karma bot
Coke because #perl gives him a dirty mind.
aloha: karma mikehh?
purl mikehh has karma of 996
aloha Coke: mikehh? has karma of 0.
00:02 Psyche^ joined
Coke aloha: tell bacek to allow a trailing ? on karma requests. 00:02
aloha Coke: OK. I'll deliver the message.
Coke aloha: karma mikehh
purl mikehh has karma of 996
aloha Coke: mikehh has karma of 3.
cotto_work It'd be a downer to reset everyone's karma.
mikehh hey nearly 1000
I am sure purl missed a couple 00:03
darbelo mikehh++
There.
mikehh whwn she was sulking or something
bacek_at_work aloha, explain mikehh 00:04
cotto_work Could we steal purl's source and scrub her factoids?
aloha, explain aloha
bacek_at_work aloha, explain karma mikehh
hmm
doesn't work...
purl Look buddy, doesn't work is a strong statement. Does it sit on the couch all day? Is it making faces at you? Does it want more money? Is it sleeping with your girlfriend? Please be specific!
Coke purl, be mjd 00:07
purl "ice cream, Ice Cream, ICE CREAM!"
Coke purl, be coke
purl Coke: huh?
00:07 Patterner left, Psyche^ is now known as Patterner
Coke purl, be coke is <reply>*ssigh*. Fiiiine. 00:07
purl OK, Coke.
00:08 bacek left, aloha left
cotto_work bacek_at_work: is aloha a custom bot? 00:08
bacek_at_work cotto_work, nope. Bot::BasicBot::Pluggable
00:08 kid51_at_dinner is now known as kid51
bacek_at_work I'm too lazy to reinvent this wheel 00:08
cotto_work +1
purl 1
GeJ cotto_work: I couldn't easily retrieve the line number. Before checking for the erroneous lines, the test removes meaningless lines. In this case, the line "number" I had was 221 while the error was around line 371.
cotto_work (that's the feature of purl I'd miss the least) 00:09
So adding line numbers would mean a refactor. 00:10
laziness applies
bacek_at_work looks like I have to move aloha to more stable connection. Internet at my home way too bad for it. 00:12
kid51 GeJ: The concept of the patch is good, but I'd like to suggest a bit of refinement before we apply. 00:13
If you have *2* such errors in the same file but in non-adjacent lines, the output makes it seem as if the 2 errors are on adjacent lines. 00:14
# got: '/Users/jimk/work/parrot/src/pmc/integer.pmc at :
# if (PARROT_ERRORS_test(interp,PARROT_ERRORS_OVERFLOW_FLAG))
# temp = Parrot_pmc_new_init_int(INTERP, enum_class_BigInt,a );'
# expected: ''
Can you make that a bit more clear? Thanks.
I corrected the source code file. bbial. 00:16
darbelo first expanded that as 'be back in a later' 00:18
00:25 Chandon left 00:27 Paul_the_Greek joined
dalek rrot: r48681 | jkeenan++ | trunk/src/pmc/integer.pmc:
[codingstd] Space needed after comma. Reported by GeJ++.
00:31
rrot: r48682 | mikehh++ | trunk/src/pmc/integer.pmc:
fix codetest failure - parentheses should not have space immediately
Paul_the_Greek I love these coding standard reports. 00:32
GeJ Wow, two commits for one patch of mine. Thanks guys :)
mikehh Gej: will work on the test later if kid51++ doesn't beat me to it 00:35
Paul_the_Greek Hey Gej.
GeJ kid51: I'll have a look at the error reporting during lunch break. Duty calls for now. 00:36
mikehh: thanks. I may propose a new patch in a couple of hours.
But feel free to beat me to it.
Hey Paul_the_Greek. 00:39
& (for real) 00:40
Paul_the_Greek Parsing & ... nope, doesn't parse. :D
00:46 nwellnhof left 00:49 Paul_the_Greek left 00:51 whiteknight left 00:52 dngor left, dngor joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48682 - Ubuntu 10.04 amd64 (gcc) 00:58
01:01 dngor left 01:08 Andy joined 01:09 theory joined
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (10 to go), merge outstanding branches
cotto (for the two bacek++ closed ~16 hours ago) 01:10
01:26 ruoso joined
dalek TT #814 closed by coke++: v39897 build failure on Mac OS 10.5.7 01:38
TT #814: trac.parrot.org/parrot/ticket/814
01:39 tcurtis joined
Coke LHF: add a test for #809 01:41
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (9 to go), merge outstanding branches 01:54
cotto You weren't kidding about that being a lhf. 01:56
Not too low, though. That test shouldn't depend on PCT being built. 02:00
02:01 theory left
dalek TT #1502 closed by coke++: Test that "make corevm" works as expected 02:11
TT #1502: trac.parrot.org/parrot/ticket/1502
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (8 to go), merge outstanding branches 02:12
dukeleto looks at some tickets 02:16
cotto Coke, that example you posted in 809 fails, complaining that it can't find PCT 02:18
"load_language" couldn't find a compiler module for the language 'PCT'
02:20 kid51 left
cotto Also, at attempt at a test fails: 02:21
nopaste "cotto" at 192.168.1.3 pasted "should this fail?" (36 lines) at nopaste.snit.ch/23170
02:25 theory joined 02:27 Andy left 02:35 janus left, janus joined 03:22 theory left 03:41 Andy joined
Coke cotto: doesn't need PCT, really. 03:52
and that printed 1 for me.
I ran it against an installed parrot, though.
the point is that an RPA works as a key to ISA, though. That's all, you can drop PCT entirely. 03:53
03:56 dngor joined
cotto me too 03:56
03:57 dalek left
Coke still prints 1 for me. ;) 03:57
cotto how does the patch work for you? 03:58
nopaste "coke" at 192.168.1.3 pasted "WFM" (13 lines) at nopaste.snit.ch/23172
03:58 dalek joined
Coke patch? 03:58
purl We don't need no stinking patch!
Coke cotto: does newclass work on :: strings? 03:59
cotto not sure
Coke I think that's going to create a one level thing with colons in the name.
cotto: + $P0 = newclass ['Foo'; 'Buz'] 04:01
try that instead.
that WFM.
cotto That works.
Coke compiles 04:03
purl SHIP IT
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (7 to go), merge outstanding branches 04:04
ash_ left 04:08 plobsing left
dalek rrot: r48683 | cotto++ | trunk/t/oo/isa.t:
add a test for TT #809 to ensure that isa works with an rsa
04:16
TT #809 closed by cotto++: Opcode 'isa' does not accept RSA PMC for class 04:17
TT #809: trac.parrot.org/parrot/ticket/809
04:18 patspam left 04:24 theory joined
dalek rrot: r48684 | coke++ | trunk/src/ops/var.ops:
Update docs to reflect those of the function this op wraps.
04:33
TT #1752 closed by coke++: Unclear documentation for find_name 04:34
TT #1752: trac.parrot.org/parrot/ticket/1752
TT #1706 closed by coke++: Parrot fails to build on Mac OS 10.6 Snow Leopard
TT #1706: trac.parrot.org/parrot/ticket/1706
TT #1699 closed by coke++: Update release manager guide for signing releases and providing SHA sums
TT #1699: trac.parrot.org/parrot/ticket/1699
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (4 to go), merge outstanding branches 04:42
Coke Argh. nqp-rx is still using Codestring!? 04:44
purl, msg pmichaud to please update nqp-rx to use StringBuilder instead of CodeString.
purl Message for pmichaud stored.
Coke purl, msg pmichaud And hey, as long as I'm asking for ponies, PGE and json still use CodeString (and the "oh we'll never need these" methods that PCT now owns.) 04:51
purl Message for pmichaud stored.
dalek tracwiki: v7 | coke++ | ParrotDeprecationsFor2.9
tracwiki: add note for codestring, which is going away shortly.
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
Coke msg Andy didn't you already finish TT #1547, aside from the script we don't need? 04:57
purl Message for andy stored.
Andy looking
no, I haven't updated them. 04:58
Coke argh, darwin still expects your build dir to exist. 04:59
cotto coke++ 05:01
Is there a nice way to get a single commit from github or a git repo? 05:03
dalek tracwiki: v8 | coke++ | ParrotDeprecationsFor2.9 05:08
tracwiki: italicize this to indicate it hasn't quite happened yet.
tracwiki: trac.parrot.org/parrot/wiki/ParrotD...ction=diff
cotto seen avar 05:35
purl avar was last seen on #perl 9 hours, 20 minutes and 19 seconds ago, saying: apeiron: How about all those people I opped, like child_predator_58?
05:49 Andy left
Tene cotto: explain "get"? 05:54
cotto: "git show <rev>" to produce the commit message and the diff. "git cherry-pick <rev>" to apply a revision from another branch or something to the current branch.
cotto sure, but what if I don't have a clone of the repo lying around? 05:57
(moot point now, but I'd still like to know)
Tene what do you have, then?
cotto a clone of parrot's github repo, which the repo in question forks
Tene I'd add the repo in question as a remote. 05:58
and then cherry-pick
cotto ok. Thanks.
Tene git remote add foo <url> 05:59
git fetch --all 06:00
git cherry-pick <rev>
ISTR that some people here rather disliked that method, but I don't recall why.
NotFound What's the replacement for CodeString.unique ? 06:06
06:06 jhelwig left
moritz good morning 06:09
purl Lies!
dukeleto moritz: good localtime() 06:13
dalek TT #1613 closed by moritz++: Random segfault in rakudo spectests 06:15
TT #1613: trac.parrot.org/parrot/ticket/1613
06:15 uniejo joined 06:18 jsut joined
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log:  irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (3 to go), merge outstanding branches 06:20
06:23 jsut_ left, jhelwig joined 06:29 robin-gvx joined
dalek rrot: r48685 | NotFound++ | trunk/t/pmc/exception.t:
more Exception tests
06:30
06:35 theory left 06:38 bacek joined
cotto good day, magical coding robot! 06:40
06:42 aloha joined
dalek rrot: r48686 | cotto++ | trunk (2 files):
remove key_pmc from hash.c's includes and makefile dependencies
06:47
rrot: r48687 | cotto++ | trunk/src/hash.c:
use hash iteration macro in destroy function, patch courtesy of luben++
rrot: r48688 | cotto++ | trunk/src/hash.c:
rename INITIAL_BUCKETS to INITIAL_SIZE, patch courtesy of luben++
07:04
cotto seen nwellenhof 07:14
purl I haven't seen 'nwellenhof', cotto
aloha Sorry, I haven't seen nwellenhof.
cotto seen nwellnhof
purl nwellnhof was last seen on #parrot 7 hours, 36 minutes and 59 seconds ago, saying: cotto: yeah, didn't take too long
aloha nwellnhof was last seen in #parrot 7 hours 36 mins ago saying "cotto: yeah, didn't take too long".
cotto Did we decide that functions marked PARROT_EXPORT were part of the API, or was that only PARROT_API? 07:16
NotFound cotto: We do, but I think PARROT_API is still undefined 07:19
07:20 robin-gvx left
cotto The support policy says PARROT_API means "supported". chromatic++ for documenting that. 07:20
dalek rrot: r48689 | NotFound++ | trunk/src/pmc/exception.pmc:
avoid duplicated code in Exception vtable functions
07:21
07:22 robin-gvx joined 07:23 fperrad joined
dalek rrot: r48690 | mikehh++ | trunk/src/hash.c:
fix codetest failure - parentheses should not have space immediately
07:54
mikehh All tests PASS (pre/post-config, make corevm/make coretest, test, fulltest) at r48690 - Ubuntu 10.04 amd64 (g++ with --optimize) 08:08
08:42 tcurtis left
smash mornin' 08:44
dalek rrot: r48691 | cotto++ | trunk (2 files):
make opsc read version information from VERSION, update release guide accordingly
08:45
08:47 preflex left
cotto g'morning smash 08:48
08:49 mikehh_ joined 08:50 mikehh left
cotto NotFound, ping 08:51
08:52 preflex joined
cotto msg NotFound Does r48691 fix the problem you mentioned in TT #1721 (parrot version numbers in oplib)? 08:54
purl Message for notfound stored.
08:59 preflex left 09:00 robin-gvx left
dalek rrot: r48692 | cotto++ | trunk/compilers/opsc/src/Ops/File.pm:
use installed VERSION instead of assuming there's one in the cwd
09:02
09:04 preflex joined 09:11 preflex left 09:16 preflex joined 09:17 robin-gvx joined
cotto If I were smart, I'd have been asleep two hours ago. 09:22
At this point it's damage control.
09:41 masak joined 09:54 whiteknight joined 10:29 robin_gvx joined, robin-gvx left
dalek p-rx: 20477be | pmichaud++ | src/NQP/Actions.pm:
Refactor 83747bd to avoid the "skip_multi" flag on PAST nodes.
10:33
pmichaud purl, msg Coke (CodeString->StringBuilder) nqp-rx and pct don't need the stringbuilder aspects of CodeString; they want the .lineof method. So I need to come up with a replacement for .lineof before I can eliminate CodeString. (Feel free to open a ticket for this if one doesn't already exist.) 10:57
purl Message for coke stored.
10:58 lucian joined 11:02 lucian_ joined 11:04 lucian left 11:19 lucian joined 11:21 lucian_ left 11:30 nwellnhof joined 11:36 ruoso left
whiteknight purl msg Chandon I just ran it again and t/src/threads_io.t is running 2 and 3 out of sequence. Also, the build with clang still fails in a segfault. i'll see if I can start tracking that down today 12:01
purl Message for chandon stored.
whiteknight purl msg Chandon preliminary results look GC-related on the clang failure. It appears that a CallContext PMC is being prematurely collected by the GC. Somewhere we're not anchoring it correctly 12:09
purl Message for chandon stored.
dalek rrot: r48693 | NotFound++ | trunk/t/pmc/hash.t:
test get and set value type in Hash PMC
12:23
12:27 mikehh_ is now known as mikehh
mikehh opbots, names 12:27
12:45 nwellnhof_ joined 12:46 nwellnhof_ left, nwellnhof_ joined, fperrad left, ruoso joined, nwellnhof_ left 12:48 nwellnhof left
Coke pmichaud: no new ticket is needed. just use the "codestring" ticket listed in dep.pod 12:48
pmichaud Coke: okay. 12:49
Coke I started ripping it out last night and hit a roadbloack with the PGE stuff.
12:50 lucian left
pmichaud right 12:55
12:55 ruoso left
pmichaud and it'll be a problem for nqp as well, for a bit. 12:55
NotFound I took a look at data_json but the information from the codestring ticket isn't enough for me. 12:57
pmichaud part of the problem is that .lineof() really needs to be fast, and it wants to be held on a per-string basis. 13:00
I guess I can stick the information on a property.
Coke msg kid51 - re: RT 77464 - did you remove the build tree once you did "make install"?
purl Message for kid51 stored.
Coke NotFound: the information ont he ticket is /wrong/, that's why 13:01
NotFound Nice
Coke (well, incomplete.)
NotFound Coke: I said 'for me' because maybe for someone with PCT skills is enough. 13:02
Coke which is why I basically tried to drop it on pmichaud's lap.
;)
is lineof being used in data_json?
or jsut PGE?
another solution: rewrite data_json in nqp. 13:03
NotFound Coke: first thing that blocked me is 'unique'
Coke since I think PGE/TGE are also eventually going to get ripped out.
NotFound Coke: that's other point I was thinking of. I'm not sure if treating json as a language is the right approach. 13:04
13:04 lucian joined
NotFound I can give a try to a json reader written in winxed and test its speed. 13:05
pmichaud in data_json, it's neither PGE nor lineof that are the source of the CodeString instances 13:07
it's the TGE grammar that has them -- it's using CodeString to build up the PIR code
i.e., data_json still uses TGE, and TGE requires explicit parse->past transformation. 13:08
errr
parse->pir transformation.
(at least for data_json)
od 13:14
Coke hd 13:15
smash pmichaud: any tip on how to debug an infinite loop on nqp-rx ? 13:24
pmichaud smash: depends on where the loop is occurring 13:25
if in parsing, you can add <?DEBUG> to the rule where you'd like a debug trace to start 13:26
my initial guess is that something is quantifying a zero-length pattern
(or a zero-length match)
smash yes, in parsing 13:27
Coke hurm. I wonder if with partcl-nqp, I can make code.google.com/p/partcl/issues/det...%20Summary work. 13:28
smash added <?DEBUG> to TOP, ouch
13:28 Paul_the_Greek joined
Paul_the_Greek Morning, kids. 13:28
smash Paul_the_Greek: mornin'
mikehh Paul_the_Greek: greetings 13:29
Paul_the_Greek Howdy smash and mikehh.
13:30 aloha left 13:32 bacek left 13:42 nwellnhof joined
smash pmichaud: found the bug, <?DEBUG> is handy, thank you 13:43
13:47 ruoso joined
Paul_the_Greek purl,messages 13:54
13:55 khairul joined 14:01 uniejo left 14:08 fperrad joined 14:10 ash_ joined
nwellnhof I have a question about the tests in t/pmc 14:11
For every PMC there are some .pir and .pasm files 14:12
Then there is a .t file that contains the code of all those .pir and .pasm files 14:13
Why?
Are the .pir and .pasm files temporary? 14:14
Generated by running the .t test?
Paul_the_Greek I think so, yes. 14:16
nwellnhof I had a look at the time stamps. The .pir and .pasm files are generated 14:17
And they're not in SVN
particle and make testclean gets rid of them 14:18
iirc
14:20 patspam joined
Paul_the_Greek Was anything said during the Tuesday chat about merging gc_massacre? 14:23
nwellnhof iirc, no
you can always have a look at the irclogs 14:24
Paul_the_Greek Oh right, duh.
mikehh why is the codetest for "space or newline after a comma" -> t/codingstd/c_operator.t 14:26
it strikes me that the original intension of this test has been changed 14:27
and I don't like the way the test is structured 14:28
it does not report what or where the failure is 14:29
Paul_the_Greek It doesn't report the files/lines with errors? 14:33
mikehh Paul_the_Greek: not at the moment 14:36
it does things to strip pod etc and does not keep the line numbers 14:37
Paul_the_Greek What's that final print statement doing?
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (2 to go), merge outstanding branches 14:37
dalek rrot: r48694 | nwellnhof++ | trunk (3 files):
Avoid recursive calls of Parrot_cx_handle_tasks
14:38
mikehh Paul_the_Greek: it seems just to print the number of errors found :-{ 14:39
Paul_the_Greek Oh yes, I see that. I'm not much of a Perl programmer. 14:40
Room for some improvement, for sure.
mikehh see nopaste.snit.ch/23163
I am tempted to rewrite that and also t/codingstd/c_parens.t which reports the error, but again no line numbers 14:42
dalek TT #484 closed by nwellnhof++: illegal instruction/segfault with Timer PMC
TT #484: trac.parrot.org/parrot/ticket/484
TT #1757 created by pmichaud++: Rakudo build broken by r48691/r48692
TT #1757: trac.parrot.org/parrot/ticket/1757
Paul_the_Greek What does is() do? 14:43
Every coding standard test should report the offending lines. 14:44
mikehh Paul_the_Greek: part of the test framework is, ok etc in Test::More - perldoc Test::More 14:45
nwellnhof is(a, b, msg) tests whether a and b are equal
it is used in tests
Paul_the_Greek You know, requiring exactly one space after commas means that you can't align common arguments in a sequence of calls.
Ah, just like .pir tests. Got it.
mikehh Paul_the_Greek: AFAIK it is at least one space or a newline 14:46
Paul_the_Greek Oh, good.
All right, this is my last day at the beach and it's gorgeous. I'm off to sit in the sand. 14:47
14:47 Paul_the_Greek left
mikehh both t/codingstd/c_operator.t and t/codingstd/c_parens.t have the following lines: 15:11
# only strip pod from .ops files 15:12
if ( $path =~ m/\\.ops$/ ) {
$buf = strip_pod($buf);
}
anyone got any idea why? 15:14
ok maybe .ops files are handled differently 15:17
15:18 jsut_ joined 15:22 jsut left 15:26 jan left 15:36 whiteknight left 15:42 robin_gvx left 15:46 KatrinaTheLamia left 15:47 tcurtis joined 15:49 KatrinaTheLamia joined
particle the fact that that code is in two places calls for a t/lib/whatever.pm module 15:57
DRY, even in test suites.
mikehh particle: just trying to figure out what is happening, bucause of the type of pod in .ops files is different from the rest of c_language_files in the DIST 16:07
because
it still causes problems in finding line numbers 16:08
particle well... there's a few ways to handle that, i suppose 16:09
mikehh particle: we are looking at 429 files in c_language_files - I was considering of doin' something if the file fails, otherwise ignoring 16:13
16:14 theory joined
mikehh but I still don't know why the test for spaces or newline after comma is named t/codingstd/c_operator.t 16:14
the parens test is named t/codingstd/c_parens.t 16:16
cotto pmichaud, can you verify that r48695 fixes Rakudo for you? It wfm but that doesn't guarantee anything.
16:16 whiteknight joined
particle mikehh: the t/codingstd tests make sure our code lives up to the rules defined in the coding standard design document. 16:19
c operators are required to have spaces or newlines after commas
c parens are required to follow certain rules. 16:20
16:20 theory left
particle see PDD07. 16:20
mikehh particle: not just operators, it tests all c_language_files, the last failure was in src/hash.c 16:21
particle perhaps it's misnamed, then. if you can think of a better name, change it! :) 16:22
dalek rrot: r48695 | cotto++ | trunk/compilers/opsc/src/Ops/File.pm:
make ops2c smarter about finding VERSION with an installed vs non-installed Parrot
mikehh particle: the problem with those two tests is the they don't report line numbers, in fact t/codingstd/c_operator.t doesn't even report the file in error
cotto NotFound, ping 16:23
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (1 to go), merge outstanding branches 16:24
particle mikehh: that's very different than "but I still don't know why the test for spaces or newline after comma is named t/codingstd/c_operator.t" reported above, to which i've been responding 16:24
16:25 plobsing joined
mikehh particle: I could understand that if it only tested *.ops files, nut it tests all c like files - should be something like c_comma_sp_nl .t or something 16:26
but
particle you're getting confused
cotto C operators aren't the same as PIR ops.
particle operators refers to c operators (and functions), not to pir opcodes 16:27
pir opcodes defined in *.ops files, which are written in c, must conform to the c coding standards defined in pdd07
if the bodies of the pir opcodes call c operators or functions, they must contain a space or newline after a comma 16:28
mikehh ok, but I still think it is a *BAD* name, the c prefix tells you that
particle rename it, as i suggested.
the fact that pod is stripped makes it much harder to report line numbers, and that is bad. 16:29
mikehh let's get it working first :-}
particle it's difficult to get the line numbers, though, in this test
mikehh the pod is only stripped from .ops files, because they have perl type pod, not c type comment pod. 16:31
cotto If nothing else, reporting the contents of the line is helpful.
(or suggesting a regex that'd find the problem)
mikehh yeah, I can find that in the editor, but anyway, let's see what I can do there 16:32
16:34 jan joined
pmichaud cotto: rakudo builds again with r48695, thanks. 16:35
16:37 patspam left
cotto Sorry about breaking it. 16:37
At least the ticket had a good turnaround. 16:38
NotFound, unping. (see reply to TT #1721) 16:39
16:40 baest_ joined
dalek TT #1757 closed by cotto++: Rakudo build broken by r48691/r48692 16:40
TT #1757: trac.parrot.org/parrot/ticket/1757
moderator Parrot 2.7.0 "Australian King" Released! | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | close 20 tickets (0 to go), merge outstanding branches 16:41
16:43 theory joined, baest left
cotto time for work 16:44
particle parrot.org needs to go down for a few minutes 16:49
16:49 khairul left
particle parrot.org is back up, now with more ram 16:54
mikehh excellent! 16:55
purl zwooshes
dalek kudo: 18189a2 | moritz++ | src/core/Mu.pm:
implement Mu.so
16:57
16:59 lucian left 17:07 masak left
cotto_work seen luben 17:11
purl luben was last seen on #parrot 11 days, 8 hours, 44 minutes and 22 seconds ago, saying: Or I could atach a patch to the ticet [Aug 16 08:27:06 2010]
dalek rrot: r48696 | nwellnhof++ | trunk (3 files):
Use flag instead of INTVAL in Scheduler PMC
17:13
Coke wonders what a "gc massacre collector" is. 17:14
17:15 Paul_the_Greek joined 17:18 whiteknight left
cotto_work clock? 17:22
purl cotto_work: LAX: Fri 10:22am PDT / CHI: Fri 12:22pm CDT / NYC: Fri 1:22pm EDT / LON: Fri 6:22pm BST / BER: Fri 7:22pm CEST / IND: Fri 10:52pm IST / TOK: Sat 2:22am JST / SYD: Sat 3:22am EST /
Paul_the_Greek cotto_work: What is the purl command to find out when someone was last here? 17:25
cotto_work seen cotto_work 17:26
purl cotto_work was last seen on #parrot 0 seconds ago, saying: seen cotto_work
Paul_the_Greek seen chromatic
purl chromatic was last seen on #parrot 6 days, 21 hours, 35 minutes and 30 seconds ago, saying: Give me a few minutes and I can look at it. [Aug 20 19:51:22 2010]
Paul_the_Greek Odd. Is chromatic okay? 17:27
17:27 ash_ left, ash_ joined
NotFound Paul_the_Greek: he's alive on twitter, so I suppose is ok. 17:29
Paul_the_Greek Good.
dukeleto can probably guess the issue. There is nice weather in Portland :) 17:37
Paul_the_Greek Well, that's a good excuse. 17:38
I think the gc massacre may fix the two alignment problems that I've got in my tickets. 17:39
17:41 smash left 17:44 patspam joined
pmichaud trac.parrot.org/parrot/ticket/1746#comment:9 says that the problem underlying TT #1746 is a vtable swap. I'm not sure I agree with the analysis there -- can anyone explain further? 17:47
NotFound pmichaud: looking at the comment, it may be related with automatic attributes allocation 17:48
pmichaud yeah, I'm thinking that must be the case
that opcode comes from before attributes were automatically allocated 17:49
dalek rrot: r48697 | nwellnhof++ | trunk/src/pmc/imageiostrings.pmc:
Set custom mark flag for ImageIOStrings PMC
17:49 masak joined
NotFound pmichaud: and if I remember weel, there was a switch to auto_attrs in some rakudo PMC these last days. 17:50
pmichaud NotFound: this particular bug goes back many months
i.e., we can repeat the segfault in many earlier versions of rakudo + parrot
NotFound I'll take a look when I have some time, I'm supposed to be the auto_attrs expert after all. 17:52
cotto_work That's what you get for implementing a feature. 17:54
17:59 patspam left, patspam joined 18:00 allison left
nwellnhof pmichaud: let me explain the problem with the vtable swap 18:00
pmichaud nwellnhof: never mind, I figured it out. 18:01
at least, I think I did.
nwellnhof the data pointer of a PMC is allocated from different fixed size memory pools
pmichaud nwellnhof: right, that's relatively new in Parrot terms.
nwellnhof the pool depends on the size of the attribute struct
pmichaud nwellnhof: the code that is a problem dates from before Parrot had the separate pools, I think.
nwellnhof pmichaud: i don't know from when the code dates 18:02
pmichaud rakudo's code is from early 2009. the auto_attrs stuff was earlier this year, iirc. 18:03
I'm quite surprised we don't see more segfaults, though, if this is indeed the problem.
nwellnhof pmichaud: what is the auto_attrs stuff doing exactly? 18:05
pmichaud nwellnhof: I presume it is what allocates the storage for the attributes.
cotto_work Yes. It takes care of allocating and freeing ATTR storage. 18:06
Paul_the_Greek Whoa! Is the vtable being changed after instances are allocated?
pmichaud Paul_the_Greek: yes. We have to have some way to change the type of an existing object.
nwellnhof pmichaud: i'm not sure if auto_attrs have anything to do with it
Paul_the_Greek Yes, it does. 18:07
purl stays quiet
pmichaud nwellnhof: prior to auto_attrs, every class was responsible for its own attribute allocation, and (iiuc) they all came from common pools.
Paul_the_Greek The attribute allocator assumes a constant attribute block size.
nwellnhof pmichaud: if they came from the same pool, it's ok
pmichaud: that might explain it 18:08
Paul_the_Greek Each attribute block size is allocated from a different pool.
nwellnhof paul: the question is how the old code before auto_attrs handled it
Paul_the_Greek Didn't each PMC have its own attribute allocator/freer? 18:09
nwellnhof i don'T know 18:10
cotto_work Yes. it used to require explicit code in init/init_pmc and destroy
Paul_the_Greek Right, that makes sense.
pmichaud wait, I'm not sure this is in fact a problem (more)
Paul_the_Greek Now the attribute block size can't change between allocate and free. And the size is in the vtable.
cotto_work they used to call some flavor of malloc/free
18:10 robin-gvx joined
pmichaud I mean, it may be here, but there's a bit more to this than there might seem at first 18:10
what we end up doing is changing the VTABLE of an Object PMC to be a p6opaque pmc 18:11
the p6opaque pmc definition is
pmclass P6opaque extends Object dynpmc group perl6_group auto_attrs { 18:12
it doesn't define any new attributes of its own
therefore
it should be allocating from the same fixed-size pool.
nwellnhof pmichaud: i think the problem was a Hash PMC the was used with setprops
pmichaud ah, that could very well be the case.
nwellnhof Hash PMC has attr_size 8 18:13
pmichaud so, the problem is that we're apparently trying to rebless a Hash
which is a no-no.
Paul_the_Greek As long as the attr_size is the same, the same pool will be used.
nwellnhof it was reblessed to something with attr_size 12
pmichaud okay, I'm convinced the problem is in the way the hash is being constructed.
something is providing a Parrot-native Hash PMC when we need it to be a Rakudo Hash
and that's causing a problem with reblessing. 18:14
thanks, that explains it perfectly.
nwellhof++
Paul_the_Greek What prevents this problem in the general case? 18:15
nwellnhof don't change the vtable of a PMC
if you're not absolutely sure what you're doing 18:16
Paul_the_Greek Right.
nwellnhof i also added some PARROT_ASSERTs that should catch issues like that
pmichaud Paul_the_Greek: changing an object's vtable is definitely not for the faint-of-heart. :)
Paul_the_Greek But what prevents Perl from doing so?
A Perl programmer, that is. 18:17
pmichaud Paul_the_Greek: we (Rakudo) accepts that we're operating somewhat outside of what Parrot would consider to be normal. OTOH, since Parrot doesn't give us a good way to rebless an object into a new type, we're a little stuck.
Paul_the_Greek You can reallocate the object, but that would be slow. 18:18
nwellnhof: Do you remember we were talking about a couple of alignment problems in the GC?
masak nwellnhof++
nwellnhof paul: yes, i had look at your ticket 18:19
paul: i think you're right the parrot doesn't check the alignment
Paul_the_Greek There are two alignment problems. Both appear to be fixed in the gc massacre.
Coke is it just that you're trying to use auto_attrs?
(rakudo, hash) I mean to say, if you were using manual_attrs, woudl this problem be avoided?
nwellnhof paul: but i don't think the current code ever allocates memory with an unaligned size 18:20
paul: i would simply add an assertion
coke: i think so
Paul_the_Greek That's true for the one problem. The other problem is that the attribute block size is not rounded up to a multiple of a pointer size. 18:21
That problem I can cause with a custom PMC.
nwellnhof paul: the size of an attribute block is always the size of a C struct
Paul_the_Greek nwellnhof: Right, which is not guaranteed to be rounded to the size of a pointer. 18:22
nwellnhof paul: it should be. gcc rounds even rounds it up to 8 on i386
Paul_the_Greek Imagine the struct had an 8-byte char array and another 3 chars.
Really? 18:23
Why would it do that? And not every compiler will.
nwellnhof paul: i think the C standard defines that sizeof(struct) is always a multiple of pointer size something
s/something/or something/ 18:24
Paul_the_Greek No, the standard says that the struct is rounded so it's aligned for the first item in the struct.
But if the struct only has chars or short ints, then in won't be aligned for a pointer.
I need to run an experiment. 18:25
nwellnhof paul: it's probably defined in the ABI of each platform 18:26
18:26 fperrad left
Paul_the_Greek The new gc_ms2 rounds up the attribute size to a multiple of the pointer size, thus fixing the problem. 18:26
nwellnhof: Yes, you're right, it's undoubtedly platform+compiler dependent.
So the question for us is: How much work do we do on gc_ms, knowing that gc_ms2 is coming? 18:27
nwellnhof paul: on every modern platform sizef(struct) is always a multiple of 4
Paul_the_Greek I don't understand why a struct with, say, 3 chars would have a size of 4. 18:28
nwellnhof it's called structure padding
it's for performance reasons or platforms that don't allow unaligned access 18:29
Paul_the_Greek But three chars don't have to be aligned on anything special.
nwellnhof say you have a struct { int i; char c[3]; } 18:30
Paul_the_Greek Oh then yes, it must be aligned.
But leave out the int i;
nwellnhof than it would work 18:31
s/than/then/
Paul_the_Greek So imagine a PMC with only char or short int attributes. No ints, floats, or pointers. 18:32
nwellnhof the C compiler pads the struct in any case
Paul_the_Greek Why do you think so?
nwellnhof wait a minute, afk
Paul_the_Greek And consider also the pack(1) attribute.
nopaste "plobsing" at 192.168.1.3 pasted "struct padding test" (6 lines) at nopaste.snit.ch/23177 18:33
plobsing prints 3 for me 18:34
Paul_the_Greek What's your platform, plobsing? 18:35
plobsing x86_64
Paul_the_Greek Try it with a short int at the beginning.
plobsing sizeof (struct { short y; char x; }) => 4 18:36
sizeof (void *) => 8 18:37
Paul_the_Greek Right.
So I believe we do have a bug in PMC attribute block allocation. But fixed in gc_ms2.
plobsing: struct { short y; char x[3]; } ... size is 6? 18:38
plobsing Paul_the_Greek: correct 18:39
Paul_the_Greek Does anyone know if gc_ms will disappear, or will all these GCs coexist?
There is also a new tri-color collector and a Boehm collector.
cotto_work They can coexist, though it's likely that one will get more exercise than the others. 18:41
Paul_the_Greek Although I don't understand how incremental GC works without barriers.
If ms2 is all-around better than ms, might as well dump ms, no?
There's no deprecation issue, I don't think. 18:42
This seems like a good subject for next Tuesday's conference.
plobsing there's a conference? 18:43
Paul_the_Greek I mean the usual Tuesday #ps meeting.
plobsing oh, that. facepalm
Paul_the_Greek At least is sounds as if trying to optimize gc_ms may be a wase of effort. 18:44
nwellnhof paul: i'm back 18:52
Paul_the_Greek Hey ho. plobsing tried a few cases and no extra rounding was done. 18:53
You can see above.
nwellnhof paul: yes, it looks like the size of struct is aligned to the size of its biggest member
cotto_work You might also be interested in playing with pahole -C 18:54
Paul_the_Greek pahole?
cotto_work lwn.net/Articles/206805/ 18:55
It shows you (among other things) the internal layout of structs and where any holes exist. 18:56
nopaste "cotto_work" at 192.168.1.3 pasted "pahole example" (72 lines) at nopaste.snit.ch/23179 19:00
Coke cotto_work: ... what did you call me?
cotto_work Coke: possibly but I don't recall why. 19:01
unless you mean by phone, then no
Coke ... wow. misfire joke on an primary english speaker. Time for weekend. 19:02
... because "pahole" sounds like a curse...
cotto_work +1 for weekend
Coke gets to play poker tonight. whee. 19:03
Paul_the_Greek Good luck, Coke.
nwellnhof: So how much do we work on gc_ms when gc_ms2 comes along soon? 19:04
nwellnhof paul: we should probably only fix important things for now 19:05
Paul_the_Greek If gc_ms will remain, then we should fix this alignment bug. But optimizing too much sounds like wasted effort. 19:06
We can talk about it on Tuesday in #ps. I haven't gotten any response from chromatic about when gc_massacre will be merged. 19:07
Now it's time for a little nap.
nwellnhof paul: why not simply add an assertion? 19:08
Paul_the_Greek Be back later.
19:08 Paul_the_Greek left
Coke anyone parroteers going to PPW this year? 19:12
cotto_work I wish I were going.
rblackwe Come on parroteers we need you at PPW :) I will buy you a beer! 19:16
19:18 tcurtis left
Coke rblackwe: OH HAI. 19:33
I'm not sure we'll have enough rakudoers to warrant anything special.
also depends on timing. if such a short timing, we'll lose people as soon as it's over. 19:34
given all that... sure? ;)
rblackwe Coke: Ok wanted to make sure and not miss an opprotunity. 19:40
19:43 davidfetter joined
particle would like to go to ppw, gotta check schedule. but first, gotta eat lunch... 20:00
davidfetter bon appetit 20:01
20:13 davidfetter left 20:14 nwellnhof left 20:20 theory left
dalek kudo: 2740248 | masak++ | src/core/Any-list.pm:
[src/core/Any-list.pm] be more forgiving

In the min/max/minmax methods, even though we should technically expect to get only -1, 0, or +1, we'll instead check for negative, zero, and positive. This due to at least two reasons: (a) Postel's law, (b) it's faster :)
20:47
kudo: a20e62d | masak++ | src/core/Any-list.pm:
[src/core/Any-list.pm] simplification

  .signature.params.elems can be written .arity just as well. Did that.
20:48 whiteknight joined 21:05 bacek joined 21:13 aloha joined, lucian joined 21:20 masak left 21:26 Andy joined 21:38 TiMBuS left, TiMBuS joined 21:44 particle left 21:46 ruoso left 21:48 particle joined 21:51 robin-gvx left
ash_ how do you find the type of a PMC? inspect? 21:51
cotto_work You mean the name of the class? typeof 21:52
ash_ k, thanks
cotto_work Why do you need it? Often you want "does" instead. 21:53
ash_ if your looking at a stack trace and you have a multi-sub, is there a way of telling which multi your in?
that should of been my real question
so, i have a multi sub g; but the stack trace only says it called a sub 'g', so i am not sure which g i am in, it would be nice if the stacktrace had that information for me somewhere, if not i'll see if i can find it some how 21:54
cotto_work Does it not have useful line numbers? 21:55
(they've improved recently but they're still not that great in many cases)
21:56 particle left
Coke I wonder if the name of a multi sub should include it's sig. 21:57
AIGH its.
21:57 particle joined
ash_ gist.github.com/554270 is actually what i am working with, its perl6 with the output, so, there are probably line numbers somewhere... but i am manipulating the hashes manually, i am trying to see if its possible to implement &callframe 21:57
cotto_work It's probably best to ask in #perl6 then. Rakudo has its own multisub PMC. 21:58
ash_ okay, i'll ask there, but they all say they are typeof "Sub" 21:59
22:02 Andy left 22:04 darbelo left 22:22 patspam left 22:31 tcurtis joined 22:32 patspam joined 22:33 theory joined 22:41 NOTevil left 23:13 lucian left, kid51 joined 23:20 tcurtis left
cotto What'd be the right place to put a test that check that the version in VERSION matches the built parrot? 23:25
23:38 particle left 23:39 particle joined
kid51 cotto: I suspect that you want to run under 'make test', i.e., in the basic test suite -- correct? 23:52
23:54 hercynium joined
cotto yes 23:54
23:55 Paul_the_Greek joined
Paul_the_Greek We closed another 20 tickets? 23:56
kid51 cotto: Am looking at lib/Parrot/Harness/DefaultTests.pm for guidance
cotto yes, we did 23:57
though one was opened earlier today
Paul_the_Greek You guys are flying. I look forward to jumping in and closing a few myself. 23:59