#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Tasks: Fix compact_pool shenanigans | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs
Set by moderator on 20 March 2010.
00:01 hercynium joined
mikehh forgot to report: All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32872), fulltest) at r45215 - Ubuntu 9.10 amd64 (g++ with --optimize) 00:04
dalek rrot: r45217 | cotto++ | branches/profiling_testing/runtime/parrot/library/ProfTest/Matcher.nqp:
[profiling] code cleanup
00:12
rrot: r45218 | cotto++ | branches/profiling_testing (2 files):
[profiling] use pbc_merge to build ProfTest.pbc
00:46 Andy joined
Andy My parrot brothers and sisters, there is goodness a-comin'! 01:07
sjn yay! \\o/ 01:11
01:13 kid51 joined
Andy Headerizer now runs on PMC 01:16
dalek rrot: r45219 | petdance++ | trunk (85 files):
headerizer now runs on PMC files
01:18
ttbot Parrot trunk/ r45219 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/241673.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 01:19
Austin cotto: sub foo(*@pos, *%named) { bar(|@pos, |%named); } 01:44
01:44 slavorgn joined
ttbot Parrot trunk/ r45220 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/241737.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 01:45
dalek rrot: r45220 | petdance++ | trunk/src/pmc (2 files):
protecting args with ARG* macros
01:51
Infinoid Andy: Looks like win32 is barfing on the BIGINT typedef. Can those prototypes go into an "#ifdef PARROT_BIGNUM_CAN_BIGINT" clause? 01:52
Andy I'm working on it, Infinoid
Infinoid Andy++
01:56 Mokurai1 joined
nopaste "kid51" at 70.85.31.226 pasted "[codingstd] C args assert failure" (11 lines) at nopaste.snit.ch/20120 01:59
kid51 Andy: Are those failures a side effect of what you're doing with headerizer for PMCs?
02:08 dngor joined
Andy yes 02:09
arnsholt purl: msg whiteknight Bare (very bare) bones of my Prolog project at github.com/arnsholt/parrotlog. Basing it on the draft ISO spec (d8.tar) at www.cs.cmu.edu/afs/cs/project/ai-re...ard/0.html 02:10
purl Message for whiteknight stored.
Austin arnsholt: That's pretty minimal. How much does it work? 02:19
arnsholt Not at all =) 02:21
But it's four thirty in the morning, and I don't have any of my reference books with me
Austin Heh
arnsholt So I'm calling it a night and saving my work
Austin wfm
Enjoy the rest of your weekend. 02:22
arnsholt And whiteknight said he was interested in Prolog on Parrot, so I figured I'd tell him that I'd made what little I've done public
Thanks. You too =)
02:36 dngor joined
ttbot Parrot trunk/ r45221 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/241807.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 02:37
dalek rrot: r45221 | petdance++ | trunk/src/pmc (2 files):
protecting arguments, and I hope the reorganizing of the typedefs fixes the Win32 failures
02:40
Andy are any of you on Windows? 02:47
02:48 janus joined
sorear Andy: So I can use headerizer in my extensions now? 02:55
Andy I don't know.
what are your extensions?
ttbot Parrot trunk/ r45222 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/241859.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 02:56
sorear Andy: P5Scalar, P5Interpreter, etc
Andy I don't know what they are 02:57
dalek rrot: r45222 | petdance++ | trunk/src/pmc (2 files):
protecting arguments in statics
Andy headerizer isn't a general-purpose tool really
03:09 tetragon joined 03:19 Mokurai1 joined 03:36 Mokurai1 joined 03:38 Mokurai1 joined
dalek rrot: r45223 | petdance++ | trunk/src/pmc (2 files):
Add more ARG* protectors, and removed a commented-out block that was choking the Pmc2c program
03:46
ttbot Parrot trunk/ r45223 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/241940.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 03:47
dalek rrot: r45224 | petdance++ | trunk/src/pmc/unmanagedstruct.pmc:
protecting args in static
04:03
Andy ping Infinoid 04:07
ttbot Parrot trunk/ r45224 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/242006.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ )
Andy Infinoid: No, the headerizer can't carry over #ifs like that. 04:09
04:23 dngor joined
ttbot Parrot trunk/ r45225 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/242089.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 04:43
04:51 eternaleye joined
dalek rrot: r45225 | petdance++ | trunk/src/pmc/bignum.pmc:
No headerizing the functions that rely on BIGINT
04:51
05:17 cotto joined
dalek rrot: r45226 | petdance++ | trunk/src/pmc (3 files):
adding ARG* macros
05:24
ttbot Parrot trunk/ r45226 MSWin32-x86-multi-thread make error tt.taptinder.org/file/cmdout/242186.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 05:30
dalek rrot: r45227 | petdance++ | trunk/src/pmc/bignum.pmc:
hide away the BIGNUM functions so Win32 will not barf
05:40
cotto austin++ 05:48
clearwire--
ttbot Parrot trunk/ r45227 darwin-thread-multi-2level make error tt.taptinder.org/file/cmdout/242256.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 05:49
Andy I do believe that r45229 will take care of it all 06:00
ttbot Parrot trunk/ r45228 darwin-thread-multi-2level make error tt.taptinder.org/file/cmdout/242330.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 06:09
dalek rrot: r45228 | petdance++ | trunk/src/pmc (2 files):
protect args with ARG*() macros
06:13
rrot: r45229 | petdance++ | trunk/src/pmc/bignum.pmc:
sync up definition of dummy function
rrot: r45230 | petdance++ | trunk/src/pmc (2 files):
protecting more function args with ARG*() macros
06:29
06:34 dngor joined
dalek rrot: r45231 | petdance++ | trunk/src/pmc (2 files):
Protecting static funcs with ARG*() macros. Only two more PMC files left to whack.
06:46
rrot: r45232 | cotto++ | branches/profiling_testing (3 files):
[profiling] various profiling testing fixes

use flattening in syntatic sugar subs
07:25 fperrad joined 07:35 cotto joined 07:54 eternaleye joined 08:26 chromatic joined 09:06 bacek joined 09:34 snarkyboojum joined
dalek rrot: r45233 | chromatic++ | trunk/src/hll.c:
[src] Removed an unnecessary exists-before-fetch from Parrot_get_HLL_id(); this

impressive, except for the next commit....
10:02
rrot: r45234 | chromatic++ | trunk/src/pmc/orderedhash.pmc:
[PMC] Removed an unnecessary temporary PMC and the comcomitant delegation from

Rakudo startup by 2.631%.
rrot: r45235 | bacek++ | trunk/src/pmc/callcontext.pmc:
Headerize CallContext PMC
rrot: r45236 | bacek++ | trunk/src/pmc/class.pmc:
Headerize Class PMC
bacek A lot of karma for mikehh coming :) 10:15
dalek rrot: r45237 | mikehh++ | trunk/src/pmc/bignum.pmc:
fix codetest failure - parentheses should not have space immediately after the opening parenthesis
10:18
bacek Here we go! :)))
sorear What's the best way to hold references from outside Parrot? 10:20
Parrot_pmc_register doesn't nest, so it will break if somebody tells me to hold two references to the same object 10:21
mikehh bacek: also got a lot of assert_args failures in .pmc's 10:22
kid51 pointed it out earlier but only got to look at it now 10:23
sorear AddrRegistry seems relevant, BUT, I don't see an easy way to associate an AddrRegistry with a Parrot_Interp 10:24
bacek sorear, probably easiest way to create singleton PMC which will hold pointers to all "externally" handled PMCs. E.g. ResizeblePMCArray registered with Parrot_pmc_register 10:26
dalek rrot: r45238 | mikehh++ | trunk/src/pmc/sub.pmc:
fix codetest failure - unused assert macros
10:51
12:17 Whiteknight joined
Whiteknight good morning #parrot 12:18
arnsholt Morning
bacek Morning? What you are talking about? 12:22
Whiteknight bacek: it is morning. Your clock must be broken 12:26
bacek Whiteknight, it's almost Sunday's midnight. Welcome to the future!
Whiteknight "Welcome to the world of tomorrow!"
dalek rrot: r45239 | bacek++ | trunk/src/pmc/unmanagedstruct.pmc:
Use ASSERT_ARGS in UnManagedStruct helper functions.
12:28
arnsholt Whiteknight: I sent a message to you with a lower case w via purl. Hopefully your upper cased alter ego gets it too =) 12:31
Whiteknight arnsholt: yes, I got it and have been looking at the project
arnsholt Ah, great. As you can see it's not much 12:32
And the grammar is probably all kinds of weird, being written at three in the morning, but it's a start at least
Whiteknight it's okay, I've written worse 12:34
12:34 khairul joined
arnsholt One nice thing is that the spec grammar is operator precedence based. Should fit nicely with nqp-rx 12:36
12:38 dngor_ joined
dalek rrot: r45240 | bacek++ | trunk/src/pmc/stringhandle.pmc:
Use ASSERT_ARG in StringHandle helper functions.
12:45
rrot: r45241 | bacek++ | trunk/src/pmc/role.pmc:
Use ASSERT_ARG in Role helper functions.
rrot: r45242 | bacek++ | trunk/src/pmc/parrotthread.pmc:
Use ASSERT_ARGS in ParrotThread.
rrot: r45243 | bacek++ | trunk/src/pmc/parrotinterpreter.pmc:
Use ASSERT_ARGS in ParrotInterpreter
12:58 lucian joined 13:06 dngor joined, cotto joined
dalek kudo: 0577068 | moritz++ | Test.pm:
[Test.pm] give better diagnostic output in isa_ok()
13:12
kudo: 8f7d293 | moritz++ | t/spectest.data:
run S04-statement-parsing/hash.t
13:14 cotto joined
Whiteknight purl msg Austin in TT #1497, do you prefer option #1, or option #2? I suggest #1 would be easier to implement, but would be more expensive because we have to walk the MRO looking for an override before checking the cache 13:29
purl Message for austin stored.
arnsholt Popquiz: Does any one know (without looking =) how ISO Prolog does octal and hex escape sequences in strings? (They're weird) =) 13:36
moritz has no idea
arnsholt \\$octaldigits\\ and \\x$hexdigits\\ for some reason =) 13:40
Coke stares at ovid's last post. 13:41
13:50 dalek joined
dalek rrot: r45244 | mikehh++ | trunk/src/pmc/null.pmc:
fix codetest failure - unused assert macros
13:51
rrot: r45245 | mikehh++ | trunk/src/pmc/object.pmc:
fix codetest failure - unused assert macros
rrot: r45246 | mikehh++ | trunk/src/pmc/namespace.pmc:
fix codetest failure - unused assert macros
14:08
14:09 TiMBuS joined
Whiteknight wtf, I had TT #1473 fixed, couldn't commit without updating. Updated, everything broke 14:17
Okay, I get test failures in trunk with no modifications 14:19
ugly, ASSERT_ARGS failures
dalek rrot: r45247 | mikehh++ | trunk/src/pmc/integer.pmc:
fix codetest failure - unused assert macros - src/pmc/integer.pmc
14:24
rrot: r45248 | mikehh++ | trunk/src/pmc/imageio.pmc:
fix codetest failure - unused assert macros - src/pmc/imageio.pmc
rrot: r45249 | mikehh++ | trunk/src/pmc/fixedbooleanarray.pmc:
fix codetest failure - unused assert macros - src/pmc/fixedbooleanarray.pmc
rrot: r45250 | mikehh++ | trunk/src/pmc/eval.pmc:
fix codetest failure - unused assert macros - src/pmc/eval.pmc
ttbot Parrot trunk/ r45251 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/243656.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 14:39
dalek rrot: r45251 | mikehh++ | trunk/src/pmc/default.pmc:
fix codetest failure - unused assert macros - src/pmc/default.pmc
14:40
ttbot Parrot trunk/ r45252 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/243697.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 14:45
Whiteknight mikehh: build failure in src/pmc/default.pmc 14:47
14:51 tetragon joined
Austin msg purl messages 14:52
purl Message for purl stored.
Austin huh
Whiteknight: I think the search requirement depends on whether you cache the overrides on the class. In general, I'd like to see the cache stay, since it probably does a lot for performance. But that means an interface for managing it. 14:54
dalek rrot: r45252 | mikehh++ | trunk/src/pmc/complex.pmc:
fix codetest failure - unused assert macros - src/pmc/complex.pmc
14:57
15:02 Mokurai1 joined 15:05 payload joined
ttbot Parrot trunk/ r45253 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/243812.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ ) 15:17
mikehh just src/pmc/bigint.pmc to go - let's test for breakage first 15:21
ttbot Parrot trunk/ r45254 i386-linux-thread-multi make error tt.taptinder.org/file/cmdout/243845.txt ( tt.taptinder.org//buildstatus/pr-Pa.../rp-trunk/ )
dalek rrot: r45253 | mikehh++ | trunk/src/pmc/bignum.pmc:
fix codetest failure - unused assert macros - src/pmc/bignum.pmc
15:29
rrot: r45254 | mikehh++ | trunk/src/pmc/complex.pmc:
fix codetest failure - assert macro must be at top of function
15:31 theory joined 15:40 jan joined 16:00 hercynium joined
dalek rrot: r45255 | mikehh++ | trunk/src/pmc/default.pmc:
remove some extra characters that somehow got committed by mistake
16:02
16:07 theory_ joined 16:10 lucian joined
dalek rrot: r45256 | mikehh++ | trunk/src/pmc/bigint.pmc:
fix codetest failure - unused assert macros - src/pmc/bigint.pmc
16:34
16:39 payload joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32880), fulltest) at r45256 - Ubuntu 9.10 amd64 (gcc with --optimize) 16:48
Austin msg coke I haven't seen any progress on that mscgen plugin issue. Have you? 17:53
purl Message for coke stored.
Coke Austin: I have not 17:55
Austin :(
18:03 contingencyplan joined 18:12 dukeleto joined
dukeleto 'ello 18:13
dalek tracwiki: v4 | Austin_Hastings++ | TreeUnit 18:15
tracwiki: trac.parrot.org/parrot/wiki/TreeUni...ction=diff
dukeleto plobsing: psql:plparrot.sql:3: ERROR: could not load library "/home/leto/lib/postgresql/plparrot.so": /home/leto/lib/postgresql/plparrot.so: undefined symbol: Parrot_ResizablePMCArray_push_string 18:17
plobsing: ah, looks like i should be using Parrot_PMC_push_string 18:18
19:01 hercynium joined
mj41 mikehh: you probably know about r45246 tt.taptinder.org/report/pr-Parrot/d...n-27910=on 19:16
19:25 iblechbot joined 19:42 allison joined
Coke allison: ALLISON! 19:47
purl allison is, like, Allison Randal <mailto:allison@parrot.org>
moritz fun in garbage-collection land: www.andymoore.ca/2010/03/motherfuck...ollection/
allison coke!
sorear bacek_at_work: Supposing I do that, how will I get a reference to the object? I don't want to use a global here...
allison 61 failing tests? 19:48
I'm about to commit a small but deeply core refactor 19:49
the 61 failing tests predate the commit (i.e. revert, realclean, rebuild has identical failures) 19:50
Coke are these codingtest failures/ 19:53
allison Coke: a few are, but also pge, oo, and pmc tests 19:55
Coke -> 19:56
dalek rrot: r45257 | allison++ | trunk/src/gc/alloc_resources.c:
[cage] Break the compact_pool function into a collection of smaller static
20:08
20:17 Whiteknight joined 20:19 eternaleye joined 20:22 bacek joined 20:25 ash_ joined
dalek kudo: 534afd8 | moritz++ | t/spectest.data:
we pass S10-packages/basic.t, now with quite different fudging than before
20:36
20:46 chromatic joined
bacek Good morning 20:51
Does anyone "prioritised Rakudo needs"? 20:55
chromatic TT #389, memory use, TT #1040, line numbers in annotations 21:00
bacek chromatic, I have no idea how MMD works... 21:01
Hollei schitt. make test failures? What happened? 21:02
chromatic Okay, TT #389 for you then! 21:05
bacek In tt389_fix branch only MMD failures left afaik. 21:08
(make test passed at r45259) 21:11
chromatic I thought they were inheritance failures, but I haven't looked since working on memory usage and performance.
sorear bacek: Supposing I do [Parrot_pmc_register a ResizablePMCArray], how will I get a reference to the object? I don't want to use a global here...
chromatic If you're looking for something to do, we can replace the constant STRING storage Hash with a binary tree; that should give us some nice improvements. 21:12
bacek sorear, you'll keep it somehow on P5 side.
chromatic, how that?
dalek rrot: r45258 | bacek++ | trunk/src/pmc/namespace.pmc:
Fix Namespace.add_to_class arg guard.
21:13
rrot: r45259 | bacek++ | trunk/src/pmc/namespace.pmc:
Rerun headerizer
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32882), fulltest) at r45257 - Ubuntu 9.10 amd64 (g++ with --optimize) 21:14
bacek sorear, (yes, as "global" probably) 21:15
chromatic We can get rid of the nastiness of trying to hash C strings (which is somewhat expensive), and we can index on string length and encoding.
sorear bacek: Ick. 21:16
21:16 allison joined
bacek chromatic, we can just use constant STRINGs. It will be easier. 21:16
sorear the trouble is, "the P5 side" doesn't offer any good way to hold onto PMCs itself... 21:17
chromatic bacek, this is for the cache of constant STRINGs. 21:18
Didn't you want to remove cstring hashes a while ago? 21:20
bacek chromatic, yes I did.
But implementing RB-tree will be worse from maintenance perspective. 21:21
chromatic Why? 21:22
bacek we already have hash.
cstring hash is just add 2 more functions.
RB-tree will add a lot of them.
chromatic Yeah, but the cost of making hash values of C strings is significant. 21:23
bacek If we are not going to rewrite Parrot into C++ and use std::map
chromatic, any benchmarks?
chromatic I'm tempted to rewrite our hashes in C++.
I don't have a good benchmark here, but I expected a 5 or 6% improvement with the PBC constant STRING merging patch, and it was only about 2%, mostly due to hash overhead. 21:24
bacek "PBC constant string merging" uses STIRNGs, not cstrings. 21:26
chromatic We look them up with cstrings; the constant STRING cache uses cstrings for keys. 21:27
ash_ if your keys are always strings, I know the llvm has a specialized string map that has better performance than std::map for strings llvm.org/viewvc/llvm-project/llvm/t...iew=markup 21:32
well, strings as keys 21:33
21:42 pmichaud joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32883), fulltest) at r45259 - Ubuntu 9.10 amd64 (gcc with --optimize) 21:44
looking at smolder.plusthree.com/app/projects/..._reports/8 we seem to getting some failures (not mine) probable without --optime - let me try that 21:47
bacek mikehh, jfyi, ASSERT_ARGS (and other assertions) ignored in --optimized builds. 22:02
Whiteknight bacek: so that's the problem. Somebody added an assertion that is too strict, and non-optimized builds fail 22:08
bacek Whiteknight, yes. 22:09
Whiteknight allison: ping 22:13
Yay! I'm happy with allison's comment on TT #1468 22:21
I think there are some big performance savings there if we do both things correctly
mikehh bacek: I just ran without --optimize on gcc and g++ and didn't get any coretest/test errors - Ubuntu 9.10 amd64 22:23
oh he's gone 22:24
Whiteknight mikehh: let me start the tests again 22:26
22:34 tcurtis joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32884), fulltest) at r45259 - Ubuntu 9.10 amd64 (gcc) 22:47
22:48 ruoso joined
mikehh the last tests I ran on r45259 were gcc with and without --optimize and g++ with) see smoke #32883. #32884 and #32882 22:49
I ran make corevm/make coretest make world/make test g++ without --optimize and all PASSed 22:50
chromatic sorear, read the documentation of the AddrRegistry PMC. 23:05
sorear chromatic: In order to do anything with an AddrRegistry PMC I need to know its address 23:10
Since I don't understand the Parrot thread model, I don't want to use globals 23:11
chromatic Parrot_pmc_register() uses the AddrRegistry internally. 23:24
That should be all you need to do to ensure that a PMC or STRING you use survives Parrot GC. 23:25
Whiteknight chromatic: you have a minute? 23:44
chromatic Sure. 23:47
Whiteknight I am trying to get a second opinion on TT #1497.
sorear chromatic: Oh? Thanks, that makes things much easier
Whiteknight I'm thinking a method on the Class PMC to clear the cache would be best, but there are a few other option
sorear I saw VTABLE_set_pmc_keyed and thought it was an ordinary hash 23:48
chromatic We need to detangle the guts of the cache from caching operations.
sorear, it manages the reference counts (so to speak) for you.
23:48 kid51 joined
Whiteknight chromatic: that is true, the whole thing does need a little bit of a refactor. But, that doesn't really inform what the final PIR-visible itnerface to it will be 23:49
23:53 snarkyboojum joined