Parrot 1.2.0 released | parrot.org/ | Weekly Priority: Profiling | Parrot VM Workshop, Pittsburgh, June 20-21
Set by moderator on 7 June 2009.
00:00 snarkyboojum joined 00:11 Theory joined
Whiteknight nope, I'm too busy tonight 00:16
well, let me rephrase that. I would like to do it, but I'm not able tonight
chromatic You can bake you cookies. 00:17
Infinoid mmm, cookies 00:18
Whiteknight: hmm, maybe the heisenbug migrated to my machine. *tests trunk*
00:19 kid51 joined
Whiteknight Infinoid: chromatic had a way to reproduce it reliably 00:20
cotto "Go To Statement Considered Harmful" is a lot shorter than I thought it'd be.
Infinoid Everything was shorter back then.
cotto probably because they used gotos 00:22
00:25 bacek joined
CokeZero oh bother; now I parse string.test it's dying with a memory panic. :| 00:28
pmichaud: (different test) yah. Sadly, getting the official test suite changed is probably pretty low on my able-to-do list. =-)
darbelo cotto: another short-but-good paper on coding is "UNIX Style, or cat -v Considered Harmful" 00:29
CokeZero chromatic isn't here, but yah, those are very specific imcc leaks. =-) 00:30
dalek rtcl: r465 | coke++ | wiki/SpecTestStatus.wiki:
We now can parse string.test again.
00:37
CokeZero Whiteknight: ping. 00:40
Whiteknight CokeZero: pong
CokeZero Whiteknight: I have a BUNCH of partcl related tickets that could use some love before the release. 00:43
I'm just going to reply to your message with them. =-)
I suspect other HLL folks will do the same. 00:45
dalek rtcl: r466 | coke++ | trunk/src/class/tclconst.pir:
Parse \\udead and similar codepoints.

at least lets us parse another spec test.
00:47
cotto wishes Whiteknight hadn't qualified "PIR-level profiling tool" with "good". ;) 00:48
Whiteknight CokeZero: Good! The more we know, the more we can focus on it
cotto: You have to earn your brownies! I don't just give them away for nothing
regrettably, for some people I dont know if the brownies would survive the trip 00:50
dalek TT #455 closed by jkeenan++: [TODO] Change name of 'Parrot_add_library_path' to ... 00:52
Whiteknight yay! Tickets getting closed is awesome
01:02 rhr joined 01:18 bobke joined
CokeZero www.snopes.com/photos/natural/parrotflower.asp 01:22
Whiteknight irclogs 01:30
irclogs?
purl well, irclogs is irclog.perlgeek.de/parrot/today or see also: infrared clogs
kid51_at_dinner nick kid51 01:35
dalek TT #66 closed by coke++: partcl's "expr-old.test" spec test file exposes segfault (r34059) 01:42
rtcl: r467 | coke++ | wiki/ParrotIssues.wiki:
This issue no longer occurs
01:45
nopaste "kid51" at 70.85.31.226 pasted "codingstd failures: c_function_docs" (36 lines) at nopaste.snit.ch/16842 01:47
dalek tracwiki: v15 | whiteknight++ | IOTasklist 01:51
tracwiki: remove completed items, add a few new tasklist items
tracwiki: trac.parrot.org/parrot/wiki/IOTask...ction=diff
bacek Whiteknight: byw, before merge io_rewire branch Sockets inherited "close" from FileHandle 01:55
s/byw/btw/
Whiteknight bacek: Ah, that's what we are missing then 01:56
01:56 payload joined
Whiteknight bacek++ 01:56
that did strink me as being an obviously bad omission 01:57
dalek rtcl: r468 | coke++ | wiki/ParrotIssues.wiki:
another resolved ticket
01:59
Whiteknight Goodnight 02:01
02:33 Theory joined 02:35 janus joined 02:56 ZeroForce joined
CokeZero anyone bored and want to write a dynamic op for me? =-) 03:41
03:58 eternaleye joined
CokeZero there we go. 04:11
Util CokeZero: ??? Did you already write it, or did someone take the bait? 04:13
And what was the op needed to do? 04:14
dalek rtcl: r469 | coke++ | trunk/ (2 files):
resurrect an old opcode - die generates the right type of exception for us, but

tests.
Util Ah, I see. 04:17
CokeZero I need something similar from straight C. 04:23
I briefly toyed with doing it now and then having the op call it, but I don't think that's easily doable. could be wrong. 04:24
dalek rtcl: r470 | coke++ | trunk/runtime/builtin/ (2 files):
Reclaim a few more spec tests by throwing proper tcl errors.
CokeZero kicks off another spec test run.
CokeZero sees a trailer for Ron Howard's Grand Theft Auto and is kind of freaked out. 04:29
Util <SNL> Opie Cunningham!!! </SNL> 04:31
CokeZero: wait... you saw a real theatrical trailer? or just a TV ad? 04:35
04:40 Andy joined
CokeZero he made that movie when he was like 21. 04:41
saw the trailer on _Biography_ just now.
dalek rtcl: r471 | coke++ | wiki/SpecTestStatus.wiki:
This test is dying, skip it.
04:48
05:03 allison left
eternaleye purl: tell Whiteknight good luck for the release, hope everything goes smoothly! 05:13
purl eternaleye: what?
eternaleye tell Whiteknight good luck for the release, hope everything goes smoothly!
purl: msg Whiteknight good luck for the release, hope everything goes smoothly! 05:14
purl Message for whiteknight stored.
eternaleye damn syntax
05:14 snarkyboojum joined
eternaleye Also, isn't a reliably reproducible heisenbug a bit of an oxymoron? 05:19
05:24 chromatic joined
CokeZero chromatic: ~~ 05:24
05:31 snarkyboojum joined
eternaleye chromatic: I've been subscribed to your Modern Perl blog for a while now, and I have to say: 100% agreed. On all of it. 05:34
CokeZero curmudgeon++ ! 05:37
05:40 Theory joined
chromatic Thanks, eternaleye. 05:47
05:49 masak joined
chromatic Isn't it more effort to file bugs for codingstd errors than to fix them? 05:50
cotto it is if you have a commit bit or know about #parrot 05:51
chromatic True. 05:53
Andy I do love me some splint. 05:56
chromatic I'm not complaining about splint. 05:57
I'm complaining about tickets that say "Hey, you changed a file and IT HAD TRAILING SPACES IN IT PLEASE FIX NOW!"
For example.
dalek rrot: r39486 | chromatic++ | trunk/src (2 files):
[src] Fixed two coding standards errors; after changing the function signatures

documentation somewhere exactly as written" coding standards test started to fail. That seems slightly picky.
chromatic Thank you, dalek.
Andy I didn't think you were 05:59
05:59 whoppix joined
chromatic Maybe I'll call you during a YAPC talk and complain. That's always fun! 06:00
06:01 uniejo joined
Andy OK! 06:01
I won't know when you're in a YAPC talk, though.
chromatic Maybe I'll wait until you are in one. 06:02
Andy I wonder when that will be. 06:03
chromatic I can wait years. 06:05
Andy Come and hasle me at the LISA panel I'll be on.
chromatic I haven't been Lost In System Administration since 2000. 06:13
dalek rrot: r39487 | petdance++ | trunk (3 files):
reheaderized, and added PARROT_OBSERVER decorations
06:17
Andy I've never been 06:19
dalek rrot: r39488 | petdance++ | trunk/src/embed.c:
adding some consts, and ornamenting some parms for the headerizer
06:27
rrot: r39489 | chromatic++ | trunk/t/compilers/imcc/syn/regressions.t:
[t] Fixed an uninitialized value warning in TODO test.
06:37
rrot: r39490 | chromatic++ | trunk/compilers/imcc (2 files):
[IMCC] Plugged a memory leak of names of .macro_const declarations. This one

can't be freed immediately, or else the hash key disappears. Subsequent keys already in the hash need freeing.
06:46
rrot: r39491 | petdance++ | trunk (2 files):
more PARROT_OBSERVER decorations
06:50
chromatic src/embed.c:748: warning: passing argument 1 of ā€˜*(interp->op_func_table + (unsigned int)((unsigned int)*&code * 4u))’ discards qualifiers from pointer target type
That's almost ugly enough to be Haskell/APL.
Andy is that something I changed? 06:51
I don't think so
chromatic No, I think that was eralier. 06:52
./src/pmc/stringhandle.pmc:223: warning: ignoring return value of ā€˜Parrot_io_open’, declared with attribute warn_unused_result
Andy yeah, that's a good one. 06:55
ok beditme for me.
ewilhelm chromatic, you have an entry for the pdx.pm rakudo shootout challenge? 07:05
chromatic No, what would you like?
ewilhelm shootout.alioth.debian.org/ <- a perl 6 version of any perl 5 code there 07:06
or similar perl 5 vs rakudo speed comparisons
chromatic I'll see what I can do.
Patrick had an IO benchmark that looked good with Rakudo.
ewilhelm thanks. You know if there's been any other activity on 5vs6 benchmarking? 07:07
chromatic Not a lot.
purl Not a lot. are you still in hong kong?
ewilhelm well, I might make it a monthly thing 07:08
chromatic Rakudo's getting to the point where some of its benchmarks can look competitive.
Some won't; Parrot's calling conventions are still a bottleneck.
ewilhelm shootout.alioth.debian.org/u32q/ben...&box=1 07:09
maybe it could be shown to be competitive with python 07:10
chromatic My guess is that we can overtake MRI in the near future. Python is a ways off. It depends on the benchmark. 07:11
ewilhelm cross-language comparison is a plus side of using the shootout problems anyhow
java?
purl hmmm... java is just bad or bash.org/?338364 or brain cancer or a cause of ass cancer or makes rails ass humpery look like amish pr0n or Dumb dumb = new Dumb();
ewilhelm you can catch ruby at 1/2 of perl 5 at least - shootout.alioth.debian.org/u32q/ben...&box=1 07:12
chromatic I don't know about Java any time soon. 07:13
Not without nanoparrot anyway. 07:14
07:19 cottoo joined
ewilhelm hmm, looks like shootout has some of the timtowtdi in their setup already 07:20
Tene MRI? If anyone was actually interested in ruby-on-parrot, I could be convinced to start work on cardinal again. 07:21
07:21 eternaleye joined
ewilhelm Tene, I mentioned parrot to one of the ruby-on-something guys and he was like "is that still alive?" 07:25
cottoo "yes"
Tene nice
ewilhelm so maybe there's interest, but they don't know it yet 07:26
Tene cardinal's grammar is absurdly slow. I figured out where the massive backtracking was happening once... but don't remember it.
So, not really usable until that's fixed. 07:27
Seriously... anything deeply nested is *minutes* to parse. 07:28
chromatic There are two big memory leaks now in Rakudo. One of them is the weird context problem (a missing refcount decrement somewhere) and the other is Rakudo's weird rebless into object opcode. 07:29
dalek rrot: r39492 | chromatic++ | trunk/compilers/imcc (3 files):
[IMCC] Plugged a leak in IMCC where compilation units attached to a namespace

it's the responsibility of the compilation unit to free that namespace; sometimes it isn't. Did I mention that IMCC can be opaque?
eternaleye Well, the first should probably disappear once the contexts-as-PMCs thing Whiteknight++ has been planing gets accomplished 07:30
*planning
chromatic yes, but until then it's significant. 07:31
Not only does it make Parrot programs use more memory than they should, but it also makes Parrot run more slowly than it should.
Every context we leak is a context we can't reuse and have to malloc() a replacement.
ewilhelm are there tests for performance regression? 07:32
07:33 barney joined
chromatic There aren't. 07:33
We're getting to the point where we should consider them.
At least we should have benchmarks at various checkins. 07:34
08:04 DanielC joined 08:11 riffraff joined
DanielC Hello. About 70% of my program is spent doing this: "$S1 = substr $S0, i, 1". Is there a fast way to get every byte in a byte stream? 08:13
(and is "string" the right place to store a byte stream?)
I am writing a checksum function. Grab every byte in a file and do some math with it. 08:14
08:21 jimmy joined 08:23 snarkyboojum joined
barney DanielC: 'string' seems wrong. ResizableBooleanArray might be better 08:24
DanielC barney: 'string' certainly feels wrong. I just couldn't find anything better. But BooleanArray? Is that right? Isnt' there anything like "ByteArray" or similar? 08:25
I don't need individual bits, I need individual bytes. 08:26
barney I'm not sure. I didn't find a ByteArray. BooleanArray is AFAIK a flat piece of memory 08:27
DanielC Where can I find documentation for BooleanArray ? 08:28
barney perldoc src/pmc/resizablebooleanarray.pmc 08:29
DanielC thanks
barney Did you see src/dynpmc/md5.pmc ? 08:32
DanielC barney: No, I haven't. I wouldn't mind using a built-in md5, but how would you run it on a large file? I wouldn't want to load the entire file in memory all at once. 08:33
08:33 HG` joined
DanielC Hmm... I'm having a hard time figuring out how to actually use BooleanArray or md5 inside an actual PIR program. 08:35
Looking at the perldoc information, this looks like a bunch of C functions. I can't see how to access these from PIR. 08:38
barney See t/dynpmc/md5.t
DanielC thanks
barney For real world it would be nice to be able to pass a FileHandle, don't know whether this is already there 08:39
DanielC Filehandle would be nice.
$P0 = split '', $S0 <-- Is that efficient? 08:40
I'll play with split later. 08:41
Aha! md.'Update'($S0) 08:42
So I can read a file in chunks and "update" the md5 sum.
barney When you have a small, documented example PIR skript, I could add it to examples/pir 08:44
DanielC Sure. Why not. 08:45
barney DanielC++
DanielC $S0 = md.'Final'() <-- After this point I assume $S0 has the final checksum and I'm done, right? 08:56
I can't figure out what the rest of the test does, and I hope I don't need it. 08:57
Hmm... Looks like I need the rest to convert to hex. 09:02
barney Yes, looks like Final() gives a string of bytes, for comparison it is converted to hex 09:04
The result of split() is an array of strings 09:05
DanielC Yay! \\o/ 09:06
It works!
barney $P1 is needed because sprintf takes an array of Strings
DanielC Now I just need to pretty it up a little....
09:09 mikehh joined
DanielC All done :-D 09:09
barney cool 09:10
09:19 whoppix joined 09:32 clinton joined 09:42 bacek joined
bacek good evening 09:42
DanielC barney: You asked to see my example when it was done. How does this look? pastebin.com/m7ace5791 09:45
09:55 mberends joined
bacek DanielC: You don't need "substr" on line 32 10:16
(and check on line 31) 10:17
sprintf/.= loop after finish better to replace with gathering characters into ResizeableStringArray and final "join" 10:19
DanielC bacek: I don't need substr on line 32? Why not? 10:43
bacek because it's no-op. 10:44
DanielC What is no-op?
bacek "read FH, step" will read "step" bytes
substr will not extend it
DanielC and that might be too many.
no no, I don't want to extend it. 10:45
bacek No. It will read available bytes up to step
DanielC ?
If step is 100 and length is 50, then I only want the first 50 bytes.
bacek "read" will returns string of 50 bytes. 10:46
DanielC So I use "substr" to get the first 50.
bacek: Why should it, when step is 100?
bacek Because there is no so many bytes available :)
DanielC wrong 10:47
I am reading a subset of a file.
There are plenty of bytes available.
bacek "$S0 = substr $S0, 0, length" 10:50
1. you are reducing length on each read.
DanielC y 10:51
bacek 2. When length > step, "substr" is no-op because it will not extend string
DanielC If length > step, I want to read step bytes. Otherwise I want to read length bytes.
bacek 3. When length < step, "read" will read "length" of bytes, so it's no-op again. 10:52
"$S0 = read FH, step" will read up-to "step" bytes 10:53
DanielC If length < step, there is no reason why it will only read length.
We are not at the end of the file.
bacek length can be less than step only on last read
DanielC yes
bacek (at and of file)
DanielC (but I am not at the end of the file) 10:54
bacek sigh... So length > step?
DanielC So, when length < step, "read" will still read "step" bytes because the file keeps going.
"length" is not the length of the file.
It is the length that I want to read. 10:55
bacek Ah! So it's not length of file?
DanielC correct
I may have a 100MB file and set length to 10MB to read only the first 10MB. 10:56
bacek ok, "length" is slightly misleading. May be "bytes_to_read" will be better
DanielC Ok, I'll rename it.
11:14 silug joined 11:31 eternaleye joined
bacek seen cotto 11:38
purl cotto was last seen on #parrot 5 hours, 46 minutes and 58 seconds ago, saying: it is if you have a commit bit or know about #parrot
11:56 payload joined 12:12 bkuhn joined 12:22 skids joined 12:24 ruoso joined 12:37 integral joined 12:46 donaldh joined 12:48 payload1 joined
dalek rtcl: r472 | coke++ | trunk/docs/spectest- (2 files):
another spec test run. edge back up over 2K passing tests.
13:08
13:20 Steve_H joined, payload joined
nopaste "mikehh" at 90.206.38.35 pasted "make -k fulltest failures on Kubuntu 9.04 Amd64 at r39492" (199 lines) at nopaste.snit.ch/16845 13:42
13:43 gryphon joined
mikehh results of fulltest om Kubuntu 9.04 Amd64 - pre/post Config tests PASS smoke PASS but failed to send to smolder 13:43
s/om/on/ 13:44
Coke I'm getting a ton of unitilized value warnings with valgrind. I'm proceeding under teh assumption that th ememory leaks are more important. yes? 13:46
Infinoid glibc causes quite a few of those 13:48
tools/dev/parrot.supp should suppress at least some of them 13:49
mikehh provided you are not trying to use the iniyialized value
uninitialized
13:50 Whiteknight joined
mikehh heading back to i386 - cu in a minute 13:52
13:58 mikehh joined
NotFound Coke: there are some warnings about that with gcc, I'll try to fix that. 14:07
Coke Infinoid: I am using parrot.supp 14:08
still getting a ton of warnings.
Infinoid If you investigate any of them and they turn out to be benign, please update parrot.supp (it's had very little maintenance since its creation in 2004) 14:10
Coke Infinoid: I'm already in over my head. =-) 14:11
14:13 Andy joined 14:20 cosimo joined 14:27 Theory joined
dalek rtcl: r473 | coke++ | trunk/runtime/tcllib.pir:
Remove bizarre load of src/macros.pir which is already .include'd.
15:05
rrot: r39493 | NotFound++ | trunk (11 files):
[cage] fix some constness problems and potential allocation errors with filenames passed to imcc
15:06
15:21 donaldh joined
dalek rrot: r39494 | Infinoid++ | trunk (2 files):
[cage] Fix codingstd failures.
15:25
rrot: r39495 | Infinoid++ | trunk (3 files):
[cage] Update parrot.supp with some GNU ld suppressions.

Also include a little tool I used to create those suppressions.
rrot: r39496 | Infinoid++ | trunk/tools/dev/gen_valgrind_suppressions.pl:
Set svn metadata on newly created file.
15:29
Infinoid That's likely all the time I'll have for parrot for the next few days. See you all later :) 15:35
pmichaud what do I have to do to get Perl6Grammar.pbc moved out of library/PGE and into languages ? 15:37
Coke what is languages? 15:38
pmichaud in an installed parrot, there's a lib/version_dir/languages subdirectory where compilers go
e.g., that's where NQP ends up
Perl6Grammar should go there also.
Coke h.
"ah" 15:39
Coke sees Infiniod ignored his comment on that ticket. 15:41
(not that it wasn't ignorable, mind you. =-) 15:42
Coke wishes someone would port partcl to PCT for him. =-) 15:43
pmichaud: any chance you'll have some cycles to work on RT #37745 before this release? 15:44
pmichaud not likely.
purl well, not likely. is that outside?
pmichaud unless someone tags it as critical, I'm happy to let it wait for the overall PGE refactor.
Coke it's causing 3 partcl spec tests to explosed.
"explode"
pmichaud okay, that makes it a bit more critical. 15:45
Coke (though, if you fix it, no doubt the OTHER memory leak will kill me.)
pmichaud but still, not likely to happen this week. I need to get rakudo working from installed parrot.
and then I need to prep for pvwm
Coke fair enough.
tcl seems to be happily building from installed, steal what you like. =-)
pmichaud that's exactly what I'm doing :)
Coke heh.
Infinoid Coke: Sorry if I missed something, I don't see any comments from you on any of the 5 open tickets I own 15:46
Coke Infinoid: the codingstd pdd19 fix.
jonathan Parrot Virtual Workshop Machine - automating virtual workshop creation! :-)
Coke ... which you can now claim and close. =-)
Infinoid maybe this weekend, I gotta go...
Coke rant. I can't change the owner and the ticket status at the same time. 15:48
dalek TT #746 closed by coke++: pdd19 fails t/codingstd/pdd_format.t 15:50
Coke pmichaud: added a note about the spec test failures to TT#721, the sister ticket. 15:51
pmichaud Coke: thx 15:52
15:56 payload joined, ruoso joined 16:04 itrekkie joined 16:12 contingencyplan joined 16:14 viklund_ joined 16:16 sjn joined 16:24 ilia joined 16:27 Psyche^ joined 16:32 eternaleye joined
dalek rrot: r39497 | NotFound++ | trunk/src/io/api.c:
[io] Fix bizarre last branch of Parrot_io_open
16:37
pmichaud ugh, managing dynpmcs is a real pain. 16:44
shouldn't parrot provide a tool to automatically generate the files, instead of having to manually maintain the Makefiles? 16:45
moritz since parrot is all about tools... yes 16:47
jonathan I thought they *were* build by a tool? 16:50
Or did the process get "improved"?
pmichaud jonathan: here's how partcl does it (nopasting)
nopaste "pmichaud" at 72.181.176.220 pasted "partcl's Makefile for src/pmc" (109 lines) at nopaste.snit.ch/16851 16:51
pmichaud the build tool that Rakudo is uses is no longer available 16:52
(it's deprecated)
jonathan OK, but that makefile is generated, right? 16:53
And maintained by some tool?
# Generated by Parrot::Configure::Compiler from config/makefiles/pmc.in
pmichaud the only part that is generated is up to the PMC_SOURCES line
the entries after that have to be manually added to the makefile template
here's the template that was used to create that Makefile... 16:54
code.google.com/p/partcl/source/bro...les/pmc.in
jonathan oh. 16:55
So Parrot::Configure::Compiler doesn't provide that much help at all.
pmichaud Correct.
it's a similar story for ops, although that's slightly less complex because there's usually only one .ops file 16:56
jonathan *sigh*
Deprecating the easy way is not so fun.
pmichaud Yes, it feels like a serious step backwards to me.
(1) we increase the number of makefile templates
(2) we encourage lots of copy+paste 16:57
jonathan Any idea why the previous tool was deprecated?
pmichaud None.
jonathan Rather than fixed?
pmichaud (3) we add a dependency on Parrot's configuration tool
jonathan I mean, sure, maybe it had some issues with make install - but they surely coulda been fixed...
pmichaud I can _almost_ get there by writing a .pmc.o implicit Makefile rule, but the .c files get in the way of that. 16:58
jonathan :-( 16:59
pmichaud ...unless....
ooooh, I might be able to do it as a single makefile rule 17:00
that would be AWESOME
Coke pmichaud: I'd be happy to take patches back to partcl. =-) 17:04
pmichaud well, I can get about as far as the link line -- after that it might get tricky 17:05
jonathan -> store, bbiab 17:09
cottoo oh boy. we have trac spam 17:13
pmichaud are the *.dump files not installed? 17:14
cotto pmichaud, they are 17:15
pmichaud or.... hmmm
cotto well, some are 17:16
pmichaud right, I'm missing object.dump
what determines which .dump files are installed? 17:17
cotto I was wondering that too. 17:18
17:18 Whiteknight joined
NotFound There is some reason to allow comments in closed tickets? 17:18
pmichaud maybe MANIFEST.generated ? 17:19
family wants lunch -- bbl 17:20
looks like it's MANIFEST.generated 17:21
cotto yup, so the fix is probably to add add (some?) pmc dumps there
s/add add/add all/ 17:22
pmichaud I just added the ones I need.
gone
cotto Who has permission to delete replies to trac tickets? 17:25
and delete users
NotFound And ban them
cotto although a reactive solution won't last long if the spam starts to increase 17:26
NotFound Not reacting quickly is a good incentive to get it increased 17:27
Whiteknight who's spamming? 17:29
purl spamming is the point
17:30 sekimura_ joined
Coke I can delete accounts. 17:31
cotto "sunrise" needs the boot 17:32
Tene I'm spamming?
NotFound I CAN HAZ BAN?
Coke sunrise has been removed. 17:33
i don't think I can remove comments. 17:34
NotFound Coke: Removing a user also delete his posts?
Coke NotFound: no.
that would be bad, in general. 17:35
(there was also no option to select it.)
NotFound Yeah, but not deleting the spam entries makes almost unuseful the user deletion.
Coke well, at least the spam will stop for a bit. 17:36
cotto we need to get more people with comment deletion powers around here
Coke cotto: I'm a super-duper-admin
cotto and you can't do it? That's no good.
Coke if someone does the trac research, I can pull the trigger.
NotFound Research? Just read the last emails. 17:37
Coke NotFound: ... there's an email telling me how to delete a comment?
NotFound Ops, I misunderstood
Coke NotFound+-
cotto trac-hacks.org/wiki/TicketDeletePlugin 17:38
(also allows for comments)
Coke cotto;I'll open an osu ticket.
cotto Coke, thanks. 17:39
Coke cotto: ticket open. remind me if nothing seems to happen. 17:40
NotFound trac.edgewall.org/ticket/454 :( 17:41
17:42 clinton joined
Coke NotFound: ? 17:42
NotFound Coke: a long thread negating the problem 17:43
Coke so I should keep my request open? 17:44
NotFound Several comments saying that you just need to disallow anonymous comments 17:45
Coke but we do.
support.osuosl.org #7811
NotFound And looks like there is no way to ban users other than create a fake account
Coke so if anyone asks why you have to register an account before reporting a bug... here's why. =-) 17:49
17:51 chromatic joined
Coke ho, chromatic. 17:51
chromatic hiya
Coke I have a PIR program that leaks extra if I tack on more $P1()'s at the end.
it's probably still too big for you, though. 17:52
chromatic Is it the Parrot_Context leak?
Coke that's the big one, yes.
can I stop now? =-)
chromatic I have an idea about it.
Coke ok. I'll save my work in progress but not agonize more just yet.
18:01 mikehh_ joined
Coke chromatic: in comparision, a very very small amount of bytes are lost in IMCC. 18:05
18:05 japhb joined
nopaste "coke" at 65.91.151.194 pasted "small leak from dlopen" (13 lines) at nopaste.snit.ch/16852 18:06
chromatic Looks like a lack of dlclose. 18:08
Coke rough guess, < 400 bytes to IMCC out of about 18K in my current sample program. 18:09
18:09 skids joined
Coke one of the imcc seems to be leaking a byte at a time. 18:09
NotFound I'm working in a cleaner redoing of r39493, please don't touch imcc in the meantime
Coke chromatic: I'm not sure if it's at all relevant, but all of my user-defined subs are really TclProcs which isa (area?) Subs 18:11
chromatic I don't think that's a problem for you. It's a problem for Rakudo because of its rebless_or_reuse dynop (or whatever the name is). 18:12
Coke k. 18:13
chromatic: oh, you'll like this one:
Whiteknight rebless_subclass I think 18:14
Coke code.google.com/p/partcl/source/dif...tcllib.pir
I am trying to imagine the kind of maladjusted parrot where that would have been required for some reason.
chromatic Perhaps you're on drugs? 18:15
Or need to be?
Coke oh, and I added a .prof macro to tcl so I can at least see what I'm invoking. hand-added it to all my .subs. I look forward to being able to rip that out. =-) 18:16
jonathan chromatic: Have you actually worked out how rebless_subclass leaks?
chromatic No, I haven't.
jonathan chromatic: I still don't quite get how it can be.
chromatic It's losing a flag or something, I guess.
jonathan If we didn't copy the whole data structure - flags included - in one shot, that'd seem much more likely. 18:17
The only thing I do wonder though, that I thought of just recently, was what if the PMC we rebless the subclass of is a constant one. How would this affect the marking?
But that seems more likely to give us unreferenced stuff that would segfault than to leak. 18:18
chromatic Yeah, that's true.
Coke (136+ 152+ 328+ 576+ 368+ 552+ 680+ 6384+ 15480) /18251
purl 1.35093967453838
jonathan Plus we only use rebless_subclass heavily at startup, whereas a program while 1 { }; will leak a LOT.
And that surely is not doing a rebless_subclass at runtime. 18:19
Coke (136+ 152+ 328+ 576+ 368+ 552+ 680+ 6384+ 15480) /(18251+8880)
purl 0.90877593896281
Coke so, 90% is context-related leaking.
jonathan bbiab 18:20
Coke if contexts are leaking, that would explain it.
chromatic The Parrot_Context leak is the biggest.
Coke chromatic++ for fixing this thing that we're planning on throwing out. 18:22
chromatic Consider it triage. 18:23
It's not worth it to refactor it into something long-term maintainable, but we can keep it out of the way as much as possible.
Whiteknight chromatic: you said you had some ideas about the pcc_rewiring branch? 18:29
chromatic I haven't dug into it yet. 18:30
Whiteknight As soon as that branch lands we can start putting together GCable contexts, so that's the next logical step in all this
i haven't had time to dig into it yet either, maybe tonight if I am lucky
nopaste "mikehh" at 90.206.38.35 pasted "fulltest failures on Ubuntu 9.04 i386 at r39497" (170 lines) at nopaste.snit.ch/16853 18:35
mikehh codetest now PASSes otherwise manifest_tests, exa,ples_tests and distro_tests FAIL all others PASS 18:37
KUbuntu 9.04 i386 at r39497 18:38
dalek rrot: r39498 | NotFound++ | trunk (7 files):
[cage] redoing of changes in r39493 with less loss of constness
18:39
mikehh both Ubuntu 9.04 Amd64 and Kubuntu 9.04 i386 FAIL the same teste in manifest_tests, examples_tests and distro_tests 18:41
s/teste/tests/ 18:42
pmichaud back from lunch (and shopping) 19:04
19:10 tewk joined
cotto pmichaud, PAST freezing/thawing seems to be broken 19:12
nopaste "cotto" at 75.92.174.97 pasted "PAST freeze/thaw doesn't work as expected" (29 lines) at nopaste.snit.ch/16854 19:14
cotto That's in the pmc_pct branch
jonathan cotto: Probably a good first stop: check if the Capture PMC freeze/thaw's correctly. 19:18
pmichaud cotto: I've never done anything with freeze/thaw, so.... whatever jonathan++ says :-) 19:19
it wouldn't surprise me a bit if freeze/thaw doesn't work at all. 19:20
cotto Good idea since there doesn't appear to be any testing of that code in t/pmc/capture.t
pmichaud afaik, it's not been tested.
(or even attempted)
19:20 donaldh joined
cotto should it work (i.e. should I make it work if I have the tuits)? 19:21
jonathan cotto: But beyond that it should freeze/thaw like any PIR subclass of a PMC.
pmichaud I have trouble understanding how it's supposed to work.
(freeze/thaw in general, that is)
it seems to me that freezing a PAST tree will also end up freezing the entire parse tree
cotto oh. it's not even implemented.
jonathan That's probably why it doesn't work. :-) 19:22
pmichaud and if either the PAST or parse make references outside of the tree itself, then all of that gets frozen as well
cotto It's nice how it silently fails, causing me to spend several days writing code with the assumption that it works.
jonathan cotto: Since it's a hash and an array underneath, it may not be too horribly hard to make it work. 19:23
But don't ask me for specifics...the last attempt I made to edit freeze/thaw code just made segfaults happen.
cotto I got freeze/thaw working for Pipp's Array implementation, but that was a battle. 19:24
jonathan It's most likely possible, just takes some working out how on earth the freeze/thaw subsystem works.
pmichaud jonathan: question
purl question is, like, how a _separate_ package could help with the install
jonathan pmichaud: answer
Whiteknight maybe freeze/thaw is one of next subsystems that needs a major review and refactor 19:25
pmichaud suppose that the rakudo build process always builds from an installed parrot (more)
Whiteknight because nothing should be that big a battle
cotto Since nothing else seems to care about this, I'm tempted just to manually convert it into something that freezes/thaws gracefully.
pmichaud but the default --gen-parrot does a parrot install into a local subdirectory
is that a reasonable alternative to building from the build tree?
jonathan What does that imply for trying different Parrot revisions?
pmichaud well, after making a change in the parrot/ subtree, one does "make install-dev" to update the install image 19:26
i.e., in the parrot subtree the typical command is "make install-dev" instead of just "make"
jonathan OK, that's it's just remembering that one extra thing and beyond that it should all Just Work Out?
pmichaud yes, I think so
jonathan If it's that little a difference, it's probably not going to be disruptive. 19:27
It's not all that often that I want to build agaisnt a different Parrot.
pmichaud the challenge is that the layout of the install tree is substantially different from the layout of the build tree
jonathan And I think end users who are just grabbing and doing --gen-parrot mostly don't care so long as it works. 19:28
pmichaud so we either have to do a fair bit of "if build tree then look here otherwise look here"
or we have to add a layer of abstraction
(I may end up with the layer of abstraction -anyway-, but always working from an install parrot might be advantageous)
jonathan OK, that sounds like a place for us to make mistakes that are much more painful than typing a few extra characters when making an updated Parrot.
Coke working on partcl, I don't find it that much more onerous to just re-install parrot if I make a change.
pmichaud Coke: good to know, thanks. 19:29
purl good to know, thanks. is there a free version of that I can install (linux or win32) to play with?
Coke I have a specific, non-standard install directory I use for partcl.
pmichaud right, that's what I'm looking at doing for rakudo
jonathan That sounds fine by me.
So long as make install-dev actually _works_ on Windows.
pmichaud so far I'm fairly comfortable that it will
jonathan I think it's been looked at, yeah.
nopaste "coke" at 65.91.151.194 pasted "./TCLIT" (9 lines) at nopaste.snit.ch/16855
Coke jonathan: I've used it once or twice. 19:30
pmichaud I'll have a branch to try out here shortly
Coke with strawberry, but it seems to work.
jonathan Coke: OK, sounds encouraging.
pmichaud: OK, I'll be patchily about later this evening and tomorrow. 19:31
Gotta go grab someone from the airport soon.
Coke chromatic++ # intermediate karma.
Coke is looking forward to re-enabling some currently very expensive code once the PCC stuff is sped up. 19:32
(that was a non-sequitor)
jonathan is looking forward to Rakudo performance sucking less once the PCC sutff is sped up. 19:33
...and the context leak fixed. chromatic++
Coke I thought, for a second, that i missed a commit message. =-) 19:35
Coke ponders again the thought of bounties.
Mini community grants. "This trac ticket annoys me and I will pay 5$ to whoever fixes it." 19:36
"ok. 10."
19:36 darbelo joined
pmichaud sounds like the brownie bribe that Whiteknight posted 19:36
Whiteknight everybody loves brownies
Coke very likely. wondering if the pafo could handle that sort of mini-grant without wasting everyone's time. 19:37
I would definitely chip in a bit for the things that annoy me.
pmichaud "Write a good code profiler, get free brownies. Can't beat that."
Coke what if I write a crappy one? ;)
Whiteknight NO BROWNIES FOR YOU! 19:38
pmichaud your brownies are still free, but they have side effects
Whiteknight crappy profiler == crappy brownies 19:39
Coke ewewewew. 19:44
in tcl, this is is normal hash-like access: set a(key) value
you can do this:
variable {}; set (key) value;
so the hash's name is the empty string. 19:45
Tene o.O 19:54
Coke I was just looking for low hanging fruit and saw that. My eyes are bleeding. 19:56
ah. you don't even need the variable decl. 19:57
TimToady phone 20:01
20:12 DanielC joined
DanielC How do I make a function return two values? (PIR). I tried putting the results in a hash, but when I do 'say $P0["key"]' I get the error: optcode say_p_ck not found. 20:15
Ok, technically that's a problem with the 'say' and not the hash, but if I can't print the output the program is not very useful.
Coke DanielC: .return(1,2)
DanielC cool
Coke: What should I put on the "receiving" end? 20:16
Coke ($P1,$P2) = 'somefunc'('hi')
DanielC thanks
Coke np
rg1 also, to say the element of a hash, you need to get it out first. $S0 = $P0["key"] // say $S0 20:17
DanielC rg1: ah...
Whiteknight DanielC: PIR is basically an assembly language, so everything needs to get written in babysteps 20:18
DanielC yeah
20:21 bacek joined
Whiteknight I would actually very much like to write a new frontend for Parrot that used a slightly-higher level language for programming in 20:23
Coke Whiteknight: I would recommend just using scheme or something that level. 20:24
NotFound Whiteknight: you can try pirric X-)
Whiteknight somehting low-level, like the equivalent of a C language but more dynamic
Coke (which we should have done ages ago.)
20:33 contingencyplan_ joined
chromatic L1? 20:37
purl L1 is, like, a hypothetical language that would be used to implement PMCs and PIR-visible ops so that they could all be easily jitted. or irclog.perlgeek.de/parrot/2009-04-21#i_1083550 or rt.perl.org/rt3/Ticket/Display.html...txn-471982
Coke TimToady++ # extra karma. 20:43
NotFound What's that thing about creating blogs in parrot.org ? 20:52
"There are blogs on www.parrot.org available to all committers," 20:54
Coke I think that means, "you can add storie that go into the parrot blog." 20:55
/stories/
it might also mean there's an individual blog site inside www.parrot.org, though. Iunno.
bacek Good morning 20:56
purl Here I am, brain the size of a planet, and all they say is 'Good Morning'
21:19 itrekkie1 joined
dalek tracwiki: v18 | cotto++ | ParrotQuotes 21:45
tracwiki: crappy profiler == crappy brownies
tracwiki: trac.parrot.org/parrot/wiki/Parrot...ction=diff
cotto That was really fast. dalek caught that before the page loaded after I made the edit.
darbelo Is there a way to call a PMC METHOD from C, given a pointer to the PMC? 21:47
21:48 bacek joined
NotFound darbelo: Parrot_call_method 21:50
darbelo Something from inside parrot? I'd rather not include extend.h 21:52
21:53 itrekkie joined
darbelo Oh, wait. I don't need to. 21:54
NotFound darbelo: extend.h functions are usable from the inside, too
GeJ Good morning everyone 21:55
cotto Hi, GeJ
GeJ servus cotto
NotFound Anyway, what Parrot_call_method does is calling Parrot_run_meth_fromc_arglist 21:56
bacek Parrot_PCCINVOKE? 21:58
pmichaud 20:23 <Whiteknight> I would actually very much like to write a new frontend for Parrot that used a slightly-higher level language for programming in 22:12
that's the niche NQP is intended to fill.
viklund hello all, how do I, in PIR, convert encoding on a string, I want to do ther parrot equivalent of perl5s decode('utf8', $string) 22:18
darbelo Seeing stuff like "19:11 <@pmichaud> 20:23 <Whiteknight>" does strange things to my already fever-confused brain.
pmichaud darbelo: I too come from the future. :-) 22:19
darbelo My first thought was "How does he know Whiteknight is going to say that?" 22:20
Which probably means I'm past 39ļæ½C by now. 22:21
bacek pmichaud++ # NQP rocks! 22:24
22:27 skids joined
cotto pmichaud, do you think it'd be worthwhile to make Captures freeze/thaw correctly? I can easily work around the brokenness for what I'm doing. 22:32
22:32 rg1 joined
pmichaud cotto: short answer -- I wouldn't think it worthwhile 22:33
cotto I'll go with the short answer then. I don't mind if it'll win us something, but it sounds like that's not the case.
cotto is glad to have found the source of the brokenness 22:39
dalek rrot: r39499 | cotto++ | branches/pmc_pct/compilers/vtdumper/vtdumper.pir:
[vtdumper] freeze/thaw on Captures is broken; convert the PAST to Hash of RPAs
22:42
cotto dalek's speedy today.
s/Hash of RPAs/RPA of Hashes/ 22:44
stupid lysdexia 22:45
22:51 Theory joined
dalek rrot: r39500 | cotto++ | branches/pmc_pct/compilers/pmcc/src (3 files):
[pmcc] start using vtdumper's vtable dump for code generation
22:52
skids
.oO(you know you've picked an identifier that's too long when people make TLAs out of it.)
22:53
cotto and when that TLA contains another TLA 22:54
"ResizableParrotMagicCookieArray" (or "ResizablePolyMorphicContainerArray" if you want the boring bacronym)
dalek rrot: r39501 | cotto++ | branches/pmc_pct/compilers/pmcc/t/07-default.t:
[pmcc] give the default pmc slightly better test coverage
22:56
cotto s/bac/back/
skids knew that but had blocked it out for his own sanity.
now look what you have done! :-) 22:57
22:59 Whiteknight joined 23:02 payload joined
cotto .o0(If only "Parrot" stood for something...) 23:06
payload for me it stands for: parrot speaks your language 23:09
23:11 snarkyboojum joined
skids fwiw IIRC "RPA"s are a very common acronym in SAN/NAS circles. Not that anyone would ever get those confused. 23:12
but then, in SAN/NAS circles they probably have exhausted the TLA space. 23:14
23:21 donaldh joined 23:23 kid51 joined 23:29 davidfetter joined 23:32 patspam joined
DanielC @seen pmichaud 23:32
Sorry.. wrong channel. 23:33
kid51 seen pmichaud 23:34
purl pmichaud was last seen on #parrot 1 hours, 1 minutes and 28 seconds ago, saying: cotto: short answer -- I wouldn't think it worthwhile
Whiteknight fulltest is running so fast right now. chromatic++ for the speedup tip 23:46
dalek cnum-dynpmcs: r83 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
Move the guts of the get_rounding_mode() METHOD to a helper function.
23:51
23:53 Zak joined
darbelo The rainbow-colored kitten that lives in my thermometer tells me that commiting with a high fever is unadvisable, but the pink pony that levitates outside my window says I shouldn't listen to hallucinations. 23:55