Parrot 1.3.0 "Andean Swift" released | parrot.org
Set by moderator on 23 June 2009.
Whiteknight Infinoid: that patch looks reasonable enough to my untrained eye 00:06
i don't see you calling pipe() anywhere though 00:07
Infinoid Right, that's the point. Instead, I create a new Pipe PMC 00:10
Whiteknight so...how do you create the pipe at the OS level? 00:11
Infinoid Pipe.new() does that
Whiteknight oh
okay then
Infinoid by the way, can you free up a child process on win32 by simply closing its HANDLE? 00:12
nopaste "pmichaud" at 72.181.176.220 pasted "this is what is maddening about parrot" (22 lines) at nopaste.snit.ch/17078
Infinoid Or do you have to call the WaitWhateverCamelCase() thingy?
Whiteknight I believe so, yes
Infinoid WaitForSingleObject()
pmichaud yes, the difference between a.rakudo and b.rakudo is a COMMENT AND A BLANK LINE 00:13
Whiteknight pmichaud: that is maddening
Infinoid uck.
pmichaud a.rakudo segfaults. b.rakudo passes.
Whiteknight happen to have a backtrace?
pmichaud I can get one.
Whiteknight that would be helpful, make sure IMCC is handling comments and blank lines properly 00:14
not that I am not grasping at straws here
pmichaud it's not IMCC that gets the comment.
the sources are Perl 6
Whiteknight oh crap, right, it's PCT.
pmichaud even PCT doesn't get the comment.
Whiteknight ?
pmichaud by the time we get to PCT, they should be exactly equivalent with the exception of the position of the final statement 00:15
the comment introduces no functional change in the code.
Infinoid Can that be verified?
pmichaud I think so, yes.
just a sec.
backtrace first
Infinoid thanks :)
Whiteknight heisenbug--
jonathan ffs wtf huh?
Infinoid heisenbugs often show up in valgrind
nopaste "pmichaud" at 72.181.176.220 pasted "backtrace of "a.rakudo"" (80 lines) at nopaste.snit.ch/17079 00:16
Whiteknight needs to practice his valgrind-foo
jonathan pmichaud: tbh though, I've been moving these things around almost on a per-commit basis at times.
Infinoid vgp='valgrind --suppressions=/some/path/to/parrot/tools/dev/parrot.supp --freelist-vol=1000000000 --num-callers=500 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test' 00:17
pmichaud jonathan: yes, I know -- it's long been my experience with Parrot that simply changing a line of source causes the bugs to move
Infinoid Whiteknight: That's courtesy of chromatic++. Stick that in your .bashrc, and then replace "./parrot" with "vgp" and you're off and running
jonathan All about getting (un)lucky with the memory allocations I guess.
Infinoid (replace in your parrot command line I mean) 00:18
ooh, the obj=0x2 bug again
jonathan It does actually crash while doing a GC run.
Though I'll get it's nothing to do with the GC and everything to do with earlier corruption.
Infinoid That's a pretty safe bet 00:19
jonathan (well, it is to do with the GC probably, but not this specific run through of it)
pmichaud agreed.
running with -G means the segfault disappears, as usual.
jonathan So far as we call "X was not marked and should have been" style things as GC bugs.
pmichaud ...installing valgrind 00:20
Infinoid Hmm. I have no idea whether valgrind will help or not 00:23
From valgrind's perspective, we've traded one PMC struct for another, but the arena is still allocated
Even if it's on the free list, it's still reachable 00:24
pmichaud valgrind gives me a huge amount of output
...and no segfault. 00:25
pmichaud.com/sandbox/vgout.txt 00:26
jonathan I fear valgrind won't help
Since we allocate out of our own pools for PMCs. 00:27
00:27 kid51 joined
Infinoid There are apparently some annotations we can add to make valgrind smarter about that, but that's not a quick project 00:28
pmichaud so, what should I do with the (many) segfaults that are starting to show up in Rakudo?
Infinoid boil them down if you can (which I fear you can't) 00:29
pmichaud since something as simple as adding a comment is sufficient to make the problem disappear, I'm not sure how to boil this one down. 00:30
Infinoid valgrind.org/docs/manual/mc-manual....l.mempools would help here
Whiteknight Infinoid: where do I point that suppressions file thingy?
Infinoid it's tools/dev/parrot.supp in your checkout 00:31
Whiteknight okay, thanks
jonathan -> sleep 00:35
dalek kudo: ee1fd13 | pmichaud++ | src/classes/Multi.pir:
Allow .WHAT and other p6object methods on Parrot MultiSub objects (RT #66928).
kudo: 7fdd7c8 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION so we get some Parrot fixes (RT #66060).
00:41
Whiteknight pmichaud: this is a very interesting stack trace 00:48
trace_system_stack is a ugly messy function and we should kill it with a stick 00:49
but, I can't look at it any more tonight, need sleep. Goodnight 00:50
Infinoid sleep well
Whiteknight always do :)
Infinoid makes a quick attempt to see how hard adding valgrind annotations is 00:51
Can we apply redzones in our arena allocator? 00:58
01:17 rdice joined
Coke Infinoid: that vgp is in tools/dev/vgp 01:27
if you can't supply a short PIR snippet, it would seem that declaring the parrot and rakudo versions and supplying the backtrace can't hurt.
it is at least theoretically possible that someone can avoid the segfault based on the BT alone. 01:28
dalek rrot: r39852 | pmichaud++ | trunk/compilers/pge/PGE/OPTable.pir:
[pge]: Change ternary parse error to throw exception instead of exit.
01:47
Coke pmichaud: I think that will fix a tcl spectest bug. 01:49
pmichaud Coke: excellent, I hope it does. :-) 01:50
02:16 leto_ joined 02:19 Andy joined
Coke vgp? 02:32
purl somebody said vgp was valgrind --suppressions=tools/dev/parrot.supp --num-callers=500 --leak-check=full --leak-resolution=high --show-reachable=yes ./parrot --leak-test $@
Coke vgp is also tools/dev/vgp
purl okay, Coke.
02:33 japhb joined 02:43 szabgab joined
dalek kudo: 6c6299f | pmichaud++ | src/builtins/globals.pir:
Fix %*VM<config> (RT #66818).
02:45
kudo: 5351a33 | pmichaud++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get fix for RT #66840 (ternary error shouldn't exit)
s1n is there anything built in to build ctags or am i going to have to do that myself? 02:57
i see references to auto::ctags 02:58
okay, i see the tags-* make targets 03:01
03:02 leto_ joined 04:16 zak_ joined 04:32 Theory joined 05:21 dukeleto joined 05:40 QiFengDao joined 05:43 QiFengDao left
coke_zzz pmichaud: sadly, no fix. [expr 7?3>>>2:3] should give an error because >>> isn't a valid operator. instead I gte ResizablePMCArray: Can't pop from an empty array! 05:44
Coke msg pmichaud sadly, no fix. [expr 7?3>>>2:3] should give an error because >>> isn't a valid operator. instead I gte ResizablePMCArray: Can't pop from an empty array!
purl Message for pmichaud stored.
06:00 chromatic joined 06:01 uniejo joined 06:06 MoC joined, Zak joined 07:05 japhb joined 07:26 zak_ joined 07:28 particle joined, soxet joined 07:35 iblechbot joined 07:36 purl joined
mikehh pre/post config, smolder, fulltest All PASS at r39852 - Ubuntu 9.04 amd64 08:36
09:10 bacek_ joined 09:15 whoppix joined
bacek_ o hai 09:27
Infinoid good evening 09:29
mikehh greetings
moritz oh hai 09:32
bacek_ had 6 hours of meeting today and want to die... 09:37
meetings... 09:38
purl HE WHO CONTROLS THE MEETINGS, CONTROLS THE UNIVERSE! (see also, "litany against meetings")
bacek_ O! purl++
moritz litany against meetings?
purl "I must not attend meetings. Meetings are the mind killer. Meetings are the little-death that brings total obliteration. I will face my meeting. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the wasted time has gone there will be nothing. Only I will remain."
Infinoid "I will find a way to smuggle my DS into meetings."
bacek_ I can't speak and play on my iPhone at the same time :( 09:39
And I've got nice assertion "!PObj_on_free_list_TEST(s)" in my keys_revamp branch... 09:40
Something collected prematurely...
Infinoid Last night I spent a little time trying to add valgrind annotations to our GC 09:41
I think once this is working, we can take over the universe with it 09:42
bacek_ "valgrind annotations"? 09:43
Infinoid valgrind.org/docs/manual/mc-manual....l.mempools
the goal is to get it to emit errors/warnings about access to pobjs on the free list 09:45
bacek_ PARROT_ASSERT is very nice "error/warning" in my case...
Infinoid we've had a heisenbug for a while in which we end up with a PMC ATTR pointer value of 0x2, which pmichaud hit lastnight in rakudo 09:46
He removes a comment and a blank line from his script, and it goes away. Or something like that 09:47
So it's affected by GC churn
bacek_ Hah!
It's not only my problem! 09:48
But in my case GC collecting Hash keys way too early...
Infinoid hmm 09:49
anyway, if I can get valgrind to tell me when we access freed pmcs, I'm hoping it might help find this bug 09:50
bacek_ I hope so. 09:54
Infinoid stares at Memory_Pool, Small_Object_Pool and Small_Object_Arena and scratches his head 10:04
bacek_ passing Heavy Duty Head Scratcher to Infinoid 10:10
oh... Can we integrate some third-party GC into parrot and blame "third party" for all faults? 10:14
Boehm/Harmony/whatever... 10:15
10:27 muixirt joined
Infinoid blaming is fine, but I prefer fixing 10:27
Anyway, as far as I can tell, the GC is fine. It's just that some of our code isn't using it right :) 10:28
so I think the alternatives would have the same issue
10:31 bacek__ joined
Infinoid bacek__: Is the sun down yet? 10:32
Your shadow is getting longer
bacek__ clock?
purl bacek__: LAX: Wed 3:32am PDT / CHI: Wed 5:32am CDT / NYC: Wed 6:32am EDT / LON: Wed 11:32am BST / BER: Wed 12:32pm CEST / IND: Wed 4:02pm IST / TOK: Wed 7:32pm JST / SYD: Wed 8:32pm EST /
bacek__ it's half-past-eight 10:33
and it's winter
Infinoid ah
bacek__ so it's pretty dark here
And I'm on 3G internet which lost connection from time to time :/
Infinoid eew, cell internet 10:34
Infinoid feels your pain
bacek_with_shadow Infinoid: heh. I work for one of largest telco in AU. 10:35
10:35 cognominal joined 10:44 masak joined
bacek_with_shadow msg Whiteknight I suspect, that PMCs on C stack which survive more than 1 collection causing a lot of problems. They didn't have "live" flag cleared. So second collection will not call VTABLE_mark. (I hope I totally wrong...) 11:10
purl Message for whiteknight stored.
szbalint bacek_with_shadow: telstra? 11:12
purl telstra is probably an evil monopoly. or deeply fscked up and sucks half-decayed gerbils through dirty sausage casing or a spamhaus or www.hereticweb.org/smelstra/telstra...centre.mp3 or particularly evil
bacek_with_shadow szbalint: I said "one of" not "largest" :) Optus 11:13
optus?
purl i guess optus is probably one of the top 3 Perl employers in the country
bacek_with_shadow wow!
szbalint ;) 11:14
bacek_with_shadow purl telstra is also AKA hellstra 11:18
purl okay, bacek_with_shadow.
Infinoid ... dirty sausage casing, wow 11:21
11:22 mikehh joined
bacek_with_shadow Infinoid: noone like monopolies... 11:27
bacek_with_shadow taking Heavy Duty Head Scratcher back from Infinoid 11:37
sorry, I need it for myself 11:38
12:01 kid51 joined 12:06 Whiteknight joined
muixirt hi Whiteknight 12:06
Whiteknight good morning muixirt 12:07
muixirt Whiteknight, read your last post
Whiteknight ? 12:08
muixirt it's quite a C-centric view
Whiteknight yes, that's true. But Parrot is written in C 12:09
there is plenty of optimizations that could be made in pure assembly though
muixirt I would write the whole dispatching and opcode code in assembler 12:10
Whiteknight There isn't necessarily any benefit in that unless we majorly change the algorithm that we're using 12:11
a context-threading core is the next step I think, and once we have that we can add trace-based JIT for the hotspots
muixirt from a low-level view (or in forth systems) subroutine threaded code is all about avoiding indirect calls 12:13
Whiteknight, what papers did you read on that topic? 12:15
Whiteknight I did mention that I wasn't being accurate about subroutine threading in the blog post 12:16
12:16 ArjenL left
Whiteknight But you're right, a "real" subroutine threaded system will avoid indirect calls like that 12:16
muixirt soxet, what I would call 'subroutine threading' is what you call 'context-threading', more or less 12:19
s/soxet/so/
I wonder how your proposal would handle that 'foo' literal in your example new P0, 'foo' 12:21
kid51 starts to dive into Whiteknight's post-YAPC blogs ... but has to go to $job 12:22
Whiteknight muixirt: from what I have read, there are distinctions between subroutine-threading and context-threading 12:24
although i may not be entirely clear on the differences
muixirt Whiteknight, I'm curious :-) what have you read? 12:25
Whiteknight let me see if I can find a link 12:26
citeseerx.ist.psu.edu/viewdoc/downl...p;type=pdf 12:27
that's one that I've read most recently, and I've been following through the web of citations to find new related papers 12:29
muixirt Whiteknight, thanks ... hopyfully it is readable without a cs grade
dalek rrot: r39853 | whiteknight++ | trunk/src/gc/api.c:
[gc] Add some documentation to api.c to explain what most of the files in this system do.
12:32
Whiteknight en.wikipedia.org/wiki/Forth_virtual..._threading Here is a very interesting overview on Wikipedia
muixirt Whiteknight, some time ago i read Anton Ertls paper mentioned there, hence my low-level view :-) 12:36
nopaste "muixirt" at 91.47.112.145 pasted "for Whiteknight, example for direct threaded code in amd64 asm code" (74 lines) at nopaste.snit.ch/17081 12:37
Whiteknight yeah, I guess what I presented as subroutine-threaded code is really an example of call-threaded code. 12:38
so I should post an update to that
12:40 ruoso joined
muixirt has accidently overwritten his call threaded example, sigh! 12:42
Whiteknight I updated the blog post with some clarifications 12:49
12:51 skids joined
Whiteknight purl msg Infinoid check out r39853, I added some explanations of files in src/gc/api.c. Let me know if that answers any of your questions 12:55
purl Message for infinoid stored.
Whiteknight purl msg bacek that's a very interesting idea about the system stack thing. Worth looking into. 12:56
purl Message for bacek stored.
13:13 Whiteknight joined 13:22 mj41 joined 13:27 clinton joined
nopaste "muixirt" at 91.47.112.145 pasted "for Whiteknight, example for call threaded code in amd64 asm code" (60 lines) at nopaste.snit.ch/17082 13:29
muixirt Whiteknight, the direct threaded code runs in about 34 secs. and the call threaded code in about 9 secs. 13:33
Whiteknight that's a pretty impressive benchmark 13:37
what platform/processor are you on?
muixirt x86_64 linux 13:38
Whiteknight okay. 13:39
muixirt Whiteknight, you mentioned trace-based JIT, did you study the tracemonkey approach? 13:41
Whiteknight muixirt: I've been looking very closely at tracemonkey, yes 13:42
muixirt I can't see how Parrot would manage to infer the types of, let's say, rakudo variables 13:43
Whiteknight pmc->vtable->base_type
13:45 PacoLinux joined
dalek rrot: r39854 | NotFound++ | trunk (2 files):
[core] respect HLL mappings in split, TT #794
13:50
muixirt Whiteknight, sure? 13:53
Whiteknight mostly sure, most of the time 13:54
muixirt so as the interpreter executes the bytecode, pmc->vtable->base_type always reflects the type of the perl6scalar? 13:55
jonathan If it's wrapped in a Perl6Scalar proxy it'll always be the same, and not related to what's contained. 13:56
NotFound The type of perl6scalar is perl6scalar, isn't it?
Whiteknight for cases where we can't accurately check the type of the object, we just won't be able to optimize things 13:58
muixirt NotFound, yes, but trace based compilation tries to assume whether a variable is/contains for instance a integer (at that point), right?
NotFound If some HLL know for sure the type of some var during a bug, for example, and optimize basing on it, is the HLL business, not the parrot backend, IMO. 13:59
Whiteknight muixirt: trace-based JIT doesn't check for specific types, only that a certain object does not change type on each iteration of a loop 14:00
NotFound s/bug/loop 14:01
szbalint that's the beauty of it
NotFound Stormy wheater makes me doing even more mistakes than ususally.
muixirt Whiteknight, well that tracemonkey LIR operates on integers, right?
Whiteknight I can't imagine that it's all integers for javascript, it's all sorts of prototype-based object references 14:02
muixirt there are no integers in JavaScript, only floating point numbers 14:04
and LIR has opcodes for integer and floatings point operations 14:06
Coke-ZZZ any world travellers here have pointers on booking flights between the US & EU? 14:09
szbalint get your fingerprints removed by acid 14:10
and watch the hiliarity ensue
tell them it's a sideeffect of a cancer drug you used to take
www.forensicmag.com/News_Articles.asp?pid=594 14:11
muixirt jonathan, so Parrot has no means to make a judgement if integer operations would suffice in case of a per6scalar?
jonathan If the Perl 6 type checker had enough info to know, it could probably convert a multi dispatch to a static one. 14:15
my int $x; though would end up in an I register rather than a P one.
(vs my Int $x) 14:16
14:29 PacoLinux joined
NotFound I suppose any good compiler can optimize 'for (i= 0; i < 10; ++i) ' to using integer if it can know for sure that 'i' is not touched by any other part. 14:30
No need to special JIT runtime analysis magic to do that. 14:31
muixirt Well Perl6 might be a bad example for that because it can act like a static language as log as you provide the appropriate native type (line my int $x;) 14:35
in that case the perl6 compiler has to do the optimizations and jitting is more or less trivial 14:36
NotFound Well, the code generated can be the same no matter if the programmer provides the info ot the compiler deduce it. 14:37
muixirt NotFound, so we need better compilers and not L1/LIR/trace based compilation :-) 14:38
NotFound Better compilers will be good, in any case.
davidfetter wonders what he can do, short of getting a bachelor's in CS, to understand what the issues around this are 14:40
muixirt davidfetter, hg clone hg.mozilla.org/tracemonkey 14:41
and read the whole thing 14:42
NotFound Then return and explain it to us X-)
muixirt is waiting 14:45
davidfetter heh 14:46
14:52 Austin joined
Austin Error on final test. How frustrating is that? 14:54
jonathan I hate it when that happens. 14:57
Especially if your test suite takes 10+ mins to run. 14:58
Austin :) Fortunately, I don't have that many tests. 14:59
Or is that "Unfortunately?"
I have two questions, jonathan. Do you have some mips to spare? 15:00
dalek ose: r26 | austin_h...@yahoo.com++ | trunk/ (4 files):
Moved 'p6object' phylum to 'P6object' to reflect name in library. Made some
Austin Moo. 15:03
15:06 cghene joined
dalek kudo: 2dded8e | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 412 files, 11592 passing, 52 failing

   S04-declarations/my.rakudo aborted 47 test(s)
   S12-enums/basic.rakudo 27 - short name of the enum without parenthesis is an enum
   S32-num/rand.rakudo aborted 4 test(s)
15:12
15:13 amuck_ joined
Coke is there a hackathon planned for yapc::eu? 15:32
15:40 jdv79 joined 15:41 Theory joined 15:49 mikehh joined 15:59 darbelo joined 16:05 bruce joined
pmichaud Coke: I think most people are aiming at a 1-day hackathon or session post-yapc::eu 16:06
Coke pmichaud: turns out I just got screwed. nevermind. :| 16:09
purl, going to yapc::eu 2009? 16:10
purl going to yapc::eu 2009 is probably ash or BinGOs or maybe coke or jnthn
Coke purl, going to yapc::eu 2009? =~ s/maybe coke//
purl I didn't have anything matching 'going to yapc::eu 2009?', Coke
Coke purl, going to yapc::eu 2009 =~ s/maybe coke//
purl OK, Coke
Coke trip to the uk is cancelled, so the trip to .pt is off the table. 16:11
16:21 bacek_ joined 16:39 Psyche^ joined 16:57 chromatic joined 17:07 bruce joined 17:13 abesapien joined 17:17 abesapien joined 17:18 abesapien joined 17:28 braceta joined 17:33 sekimura joined 17:34 |MoC| joined 17:36 _MoC_ joined 17:43 clinton1 joined 17:53 bacek_ joined 18:10 Whiteknight joined
Coke did any voting happen at yapc? 18:11
chromatic No.
particle we can't vote without a list of members 18:12
members != committers
i had planned on making that list last week, but without a computer it proved impossible 18:13
allison particle: you must be reading my mind 18:15
about 15 minutes ago I started filling in the rest of the list 18:16
it's the google doc of Parrot contributor agreements
particle: we're missing CLAs for a lot of committers
particle: that is, we're missing *Parrot* CLAs for a lot of committers 18:17
particle allison: yes, indeed. i wasn't able to get any at the con
it was really a bad time for my video card, monitor, and memory module to go bad on my laptop
allison particle: I'm planning to subscribe all the committers to the members list, then we can start talking to everyone about the steps to get ready for the first vote 18:18
particle they've now been replaced, and i'm rebuilding the computer
18:19 clinton joined
allison particle: ah, that's good. a dead computer is always a pain 18:19
18:19 athomason joined
particle we need a membership committee 18:20
then we can vote coke in as a member 18:21
...as soon as he completes a cla...
chromatic You mean something is blocking ON Coke, not blocking Coke? Nice. 18:22
18:22 davidfetter joined
allison particle: in the bylaws we put in a "grandfather" clause, that all current committers would be the first set of members 18:22
18:23 mberends joined
allison particle: other members will be added by the membership committee 18:23
particle: Tene volunteered to help review membership requests, and I've had a couple messages from non-committers interested in membership 18:24
particle allison: as have i
and a 'contribution' is left undefined in the bylaws
what defines a contribution? creating a trac ticket? doc patch provided via irc? 18:25
allison do we need a parrot-membership-committee mailing list for people to send those requests to? or is sending them to the general parrot-members list good enough?
particle well, we're going to have various committees 18:26
allison digging up the exact text defining contribution in the bylaws
particle tech-advisory-board, membership-committee, grants, etc
Coke I'll print it out and scan it in now.
allison "must have made at least two contributions to the project or a language implementation targeting 18:27
the project"
particle: an "accepted" contribution is critical 18:28
particle right. still leaves unanswered the definition of contribution
allison particle: spamming with useless patches doesn't count
GeJ Good morning everyone
particle yes, but tracking down folks who post two doc patches via irc will be tough
allison particle: a patch that has been applied certainly counts
particle: oh, we don't track them down
particle if courtesy is not properly given in the commit logs
allison particle: they have to apply for membership, and show us the contributions when they apply 18:29
particle: it's a push system, not a pull system
particle ok, so for the purpose of this vote, it's strictly committers?
allison particle: they also have the burden of finding 2 other members to recommend them
particle then we appoint a membership committee, and let them handle the rest 18:30
Coke I happen to have a copy of Acrobat Pro I can use; would you like me to convert that PDF into a form?
particle allison: we're stronger if we're larger. i'd like the membership committee to start by actively recruiting those who have contributed
Coke ah, mailing address. I think this is why I balked last time.
particle coke: that doesn't go public
allison particle: yes, that's sensible, since the membership committee should always be made up of members
coke: yes, particle's right, the mailing address doesn't even get copied into the spreadsheet 18:32
coke: but we are required by law to keep a record of the addresses of members (silly, but those sorts of requirements often are)
18:32 AndyA joined
allison particle: I take it you are volunteering to head up the membership committee? 18:33
particle allison: perhaps that belongs in a privacy statement
allison: yes
allison particle: excellent 18:34
particle are committers required to be members?
allison particle: no, membership is voluntary
purl okay, allison.
particle great
allison particle: but, you'll notice that the membership requirements are such that if someone has qualified for a commit-bit, they have what they need for membership 18:35
particle yes, indeed
ooh, i have to follow up with chris from linode 18:36
he offered us free services there
in exchange for a spot on our sponsors page
oh, and we should mention osuosl there 18:37
particle needs a more permanent todo list
18:38 flh joined
Coke allison, chromatic, particle: my CLA is in. Enjoy. =-) 18:39
particle great. jhorwitz will file it in the vault 18:41
allison Coke: vunderbar, thanks!
Coke I was hoping to hand it in in person. Ah well. 18:43
allison Coke: maybe we should have the next parrot developer summit in your home town 18:44
Coke heh. with my luck I'll be in the UK when that happens. =-)
though my home town (not my current town) has the mohegan sun in it; that would make for a nice summit. =-)
18:46 japhb joined, masak joined
Tene allison: are there plans for another PDS? 18:49
allison Tene: yes, but no specific dates or location yet 18:50
particle ...and we'll need sponsors 18:51
allison particle: speaking of which, we need to spend some time with our current sponsors 18:55
particle yes, we desperately do
allison particle: might be good to send you/Patrick up to speak with the devs up at ActiveState 18:56
particle happy to 18:57
19:02 zak_ joined
pmichaud I'd be glad to speak, yes. 19:25
19:32 AndyA joined 19:34 Theory joined
Tene I'm considering implementing this in Parrot, just for fun: hackety.org/potion/ 19:42
NotFound Tene: looks like forth on steroids 19:45
Coke I would prefer this: www.inform-fiction.org/I7/Inform%207.html
19:45 AndyA joined
Tene NotFound: kinda, yeah. 19:46
dalek cnum-dynpmcs: r95 | darbelo++ | trunk/t/add.t:
Remove two tests: I don't know what this is supposed to be testing, or why we
19:47
Tene Coke: that page really tickled my "Nice GUI libraries in Parrot" interest. 19:48
mberends pmichaud: possible pod error (because the examples die here with "invoke() not implemented in class 'PGE;Perl6Grammar;Compiler' " ) in parrot/library/PGE/Perl6Grammar.pir:22,25 $P1=pgc(grammar_source... should they possibly be $P1=pgc.'compile'(grammar_source... ? 19:49
Tene I've almost started writing bindings for the enlightenment libraries several times. 19:50
I always held off on the promise that ncigen would write them for me, but it was never able to parse the e headers properly.
pmichaud mberends: you're correct -- the pod is out of date. 19:54
mberends pmichaud: thanks, getting into this stuff slowly...
TimToady phone 20:00
20:11 brbrooks joined 20:23 iblechbot joined
Tene There are six files in runtime/parrot/include/ that are not being installed. 20:37
Can anyone confirm for me whether this is an issue or not?
cloneflags.pasm, for example.
20:37 Theory joined
allison Tene: there are several files we're intentionally not installing 20:40
Tene: don't recall off the top of my head if that's 6 files
Tene allison: from runtime/parrot/include? 20:41
NotFound cloneflags.pasm is used for example in examples/sdl/mandel.pir, so I suppose it must be installed.
Tene NotFound: I can confirm that it isn't installed.
allison NotFound: examples aren't installed
NotFound I don't think we must have examples that can't work in an installed parrot.
Tene without the constants defined in cloneflags, we can't use .'run'() on threads properly. 20:42
(that's broken anyway, but for other reasons)
allison NotFound: but if it's code that's only used for an example, it shouldn't be installed
NotFound: it probably shouldn't even be in the general 'include/' directory
NotFound: though, looking at the file, it doesn't look like it's specific to one example 20:44
NotFound allison: IMO if some thing not usable is used in an example, the example is wrong. 20:45
Unless the intention is to exemplify what to not do. 20:46
allison NotFound: it's fine for examples to build on what's in core parrot, supplying their own include files and such 20:47
Theory allison: ping! 20:48
allison Theory: pong
NotFound Then maybe we need a real_examples directory
Theory allison: Is there a term of art for the idea, frequently expressed by TimToady, that functions that do similar names should not be named too similarly.
allison Theory: "The Principle of Distinction" 20:50
Theory googles
allison Theory: stands in complement to "The Principle of Reuse"
Theory Interesting. Google turns up a bunch of military references. 20:51
also law
"Belligerents must distinguish between combatants and civilians."
chromatic "It's nice to tell the difference between your SO and an angry leopard." 20:52
dalek kudo: 468c021 | masak++ | (2 files):
[control.pir] take without gather now warns

block halted the program without explanation. This commit makes the condition non-fatal and adds a warning message. Tene++ for guidance.
allison Theory: it's basically a linguistic principle
Theory allison: Yeah. 20:53
allison Theory: the best example is a language where, say, b and p aren't considered different sounds
Theory I see a reference on Perl Monks…www.perlmonks.org/?displaytype=prin..._id=553487
allison: Yeah, I understand. I want to reference in a post I'm writing on new functions in pgTAP 20:54
Just want to point to a link
allison A more Larry-esque way to phrase it might be "different things should be different"
Theory Here we go: www.perl.com/pub/a/2003/06/25/perl6...tials.html
allison Theory: the reuse principle is "same things should be the same" and "similar things should be similar" 20:55
Theory yeah, that's how I phrased it on #perl6 when I was asking for the term there.
allison: Right. The second clause there is the one in opposition.
pity there's no id or a name in that article.
allison Theory: it's actually a chapter from Perl 6 and Parrot Essentials, which is freely available now 20:56
Theory oh yeah?
allison Theory: at least, it was contributed to TPF
Theory: ah, found it! svn.perl.org/perl6/doc/trunk/books/...ciples.pod 20:57
Theory Yay!
Think I might ref the ORA article, though, that POD isn't too reader-friendly. 20:58
allison Theory: yes, sensible
purl rumour has it sensible is usually inappropriate, yes :)
Theory Or, is that generated into HTML somewhere?
Should be.
chromatic I thought we had HTML generated somewhere.
allison we do for the Parrot chapters, but not for the Perl 6 chapters
Theory chromatic: You coming to the perl5 hackathon tomorrow?
Oh, why not???
chromatic I have a prior commitment.
Theory chromatic: Buffing your nails? Rearranging your sock drawer? 20:59
allison Theory: why not on the generated HTML? Largely just because no one's bothered to set it up.
Theory allison: Yeah 21:00
allison Theory: not sure where we would put it if we did. maybe rakudo.org?
Theory dev.perl.org/perl6/?
purl it has been said that dev.perl.org/perl6/ is not really clear on where to click for the most useful information, I suppose.
PerlJam allison: rakudo.org/documentation could use it. 21:02
allison Theory: aye, that'd make sense. The more code-related chapters are out-of-date, but the design (linguistic) principles are still sound
Theory whatever docs could be got out would surely be useful. 21:03
21:11 Whiteknight joined 21:25 eternaleye joined 21:29 eternaleye joined
flh eval.t uses "compreg 'PASM'": I guess I'd rather switch to PIR for quoted code also, right? 21:30
dalek ose: r27 | austin_h...@yahoo.com++ | trunk/src/ (3 files):
Added wishlist gadget
21:31
ose: r28 | austin_h...@yahoo.com++ | wiki/ZzzTestPage.wiki:
Created wiki page through web user interface.
21:36
Infinoid Whiteknight: Thanks for r39853 21:38
Whiteknight no problem. answer most of your questions?
Infinoid mark_sweep.c allocates PObjs from pools managed by alloc_resources.c, right?
21:38 bacek_ joined
Whiteknight no 21:38
alloc_resources are large pools for things like strings primarily
Infinoid string buffers or STRING structures or both? 21:39
Whiteknight mark_sweep.c provides some helper routines to mark and then sweep pools
the string buffers, not the string headers
Infinoid ok
so Small_Object_Pools are completely separate from Memory_Pools 21:40
(though I probably want to track both) 21:41
Whiteknight yes, completely separate
dalek ose: r29 | austin_h...@yahoo.com++ | wiki/ZzzTestPage.wiki:
Edited wiki page through web user interface.
Infinoid Thanks, that clears some things up
Whiteknight Small_Object_Pools hold headers and are completely homogenous. A single Small_ObjecT_Pool only holds objects of a specific size
Infinoid and has a nice object_size field :)
Whiteknight so there is one pool for PMCs, one pool for STRING headers, one pool for Stack_Chunk, etc
right 21:42
Tene I keep feeling choice overload whenever I think of working on something parrot-related. :(
Infinoid It also sounds like I want to avoid gc_ms.c and focus on alloc_resources.c
Tene: I tend to be a bit more focused than "parrot-related", because parrot is too big to fit in my brain all at once
PerlJam Tene: you could have the channel pick for you so that the choice is out of your hands :) 21:43
Infinoid relies heavily on virtual memory
Tene PerlJam: I've tried that; it never works. :P 21:45
chromatic Installation is our big priority at the moment.
dalek ose: r30 | austin_h...@yahoo.com++ | trunk/src/GoogleCode/gadget-issue_report.xml:
gadget fixes
21:51
ose: r31 | austin_h...@yahoo.com++ | wiki/ZzzTestPage.wiki:
Edited wiki page through web user interface.
21:51 Andy joined
bacek_ good morning 21:54
purl And good moroning to you, bacek_.
dalek ose: r32 | austin_h...@yahoo.com++ | trunk/src/GoogleCode/gadget-issue_report.xml:
gadget fixes
21:56
ose: r33 | austin_h...@yahoo.com++ | trunk/src/GoogleCode/gadget-issue_report.xml:
gadget fixes
21:59 bacek__ joined
Infinoid With the valgrind suppressions update in r39856, I can run through examples/pir/mandel.pir with no false hits at all (on amd64) 21:59
I suspect most or all of those will have to be re-added for x86-32 as well
dalek rrot: r39855 | Infinoid++ | trunk/t/pmc/capture.t:
[t] Apply capture.t_to_pir.patch from flh++ in TT #801.
rrot: r39856 | Infinoid++ | trunk/tools/dev/parrot.supp:
[cage] Add more valgrind suppressions.
bacek_ good morning 22:00
purl And good moroning to you, bacek_.
Infinoid rehai bacek_
bacek_ "parrot-members"? 22:01
Infinoid I got one of those too
dalek ose: r34 | austin_h...@yahoo.com++ | trunk/src/GoogleCode/gadget-issue_report.xml:
gadget fixes
ose: r35 | austin_h...@yahoo.com++ | wiki/ZzzTestPage.wiki:
Edited wiki page through web user interface.
22:02
PerlJam We're all mere feathers on the great parrot
PerlJam though some may be a beak or some claws too I guess
bacek_ ...which stay on 3 elephants and big turtle?
22:03 Whiteknight joined
Infinoid Preferably >=1 big turtles 22:03
dalek TT #801 closed by Infinoid++: Rewrite capture.t in PIR
bacek_ "Committee is beast with 6 or more legs and no brain" 22:04
dalek ose: r36 | austin_h...@yahoo.com++ | trunk/src/GoogleCode/gadget-issue_report.xml:
gadget fixes
22:07
22:18 skids joined
dalek cnum-dynpmcs: r96 | darbelo++ | trunk/src/pmc/decnumcontext.pmc:
Make {set,get}_clamp {take,return} and INTVAL.
22:29
Whiteknight Austin++ # Finaly got around to downloading and testing close
22:35 rg1 joined 22:36 Limbic_Region joined 22:38 bacek__ joined
bacek__ bah 22:38
Coke grumbles. changes to tcl's [exec] to allow dispatch to work are now causing hangs in t_tcl/exec.t 22:40
bacek__ Whiteknight: r39858 on keys_revamp branch is special for you.
dalek rrot: r39857 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
[pmc] Small cleanups in Hash

  - Consistently use cast functions.
22:41
cotto karma austin_h...@yahoo.com
purl austin_h...@yahoo.com has karma of 31
rrot: r39858 | bacek++ | branches/tt761_keys_revamp/src/pmc/hash.pmc:
[pmc] Workaround for premature GCing of kyes in Hash PMC.
rrot: r39859 | cotto++ | trunk/CREDITS:
[CREDITS] add a Google-mangled email alias for Austin Hastings
rrot: r39860 | cotto++ | trunk/compilers/pge/demo.pir:
[pge] fix the pge demo
cotto karma Austin 22:43
purl austin has karma of 8
cotto karma Austin_Hastings
purl austin_hastings has karma of 19
bacek_ Whiteknight: without workaround it consistently crashed on assert in "sanitify_string" during expand hash.
dalek kudo: 59d2b7a | jnthn++ | (5 files):
More work on bringing our traits support closer in line with S14 and STD.pm. This kills trait_auxiliary in favor of trait_mod, adds parsing and an implementation of will (just delegates to is) and parsing of hides too (not yet implemnted), so now we should parse all the trait mods that STD does.
22:46
kudo: 3d94ef4 | jnthn++ | :
Merge branch 'master' of git@github.com:rakudo/rakudo
rtcl: r517 | coke++ | wiki/SpecTestStatus.wiki:
Skip [exec] for now.
22:47
Tene I hope my parrot-dev mail isn't interpreted harshly by Austin Hastings.
I have a lot of trouble judging appropriate tone in email.
I really really don't want to turn him off of these questions. I'm excited to have someone else asking them. 22:48
chromatic I don't think he'll take it badly. He seems like a reasonable person. 22:49
Tene thanks. :) 22:50
Coke msg cotto - it would be nice if that demo.pir was moved to the examples and then tested with examples_tests. 22:51
purl Message for cotto stored.
Coke msg cotto (or just the latter bit.) 22:52
purl Message for cotto stored.
Coke Tene: since tcl's stuff lives in the top level tcl namespace, I presume you'd need to do something like ask for ::parrot::Tcl::foo::bar
so you have to know it's tcl before you get anywhere. 22:53
(where ::parrot is a magical namespace alias to the parrot root.)
cotto afk_coke, I thought about that but it's a repl demo and I'm not entirely sure how it works. 22:55
23:02 bruce joined
bruce Does anyone know if there has been any recent work on a browser plugin for parrot? 23:05
Whiteknight bacek_: I'm trying to wrap my head around this issue. What has changed?
bacek_ I use old string as key instead of COWed copy 23:06
Tene bruce: not recently, that I've heard of.
Whiteknight right, but why isn't the hash getting marked correctly?
that seems to be the root problem
bacek_ yes :) 23:07
You can checkout keys_revamp branch, uncomment old line and try to build it.
I consistently got assertion failure on compiling PGE.
But my GC-fu is weak 23:08
.. to catch root problem.
chromatic Hm, an 8.03% startup speedup by rearranging some code. Nice.
Whiteknight bacek_: so is that problem you found also a problem in trunk? Or is it just branch? 23:09
chromatic: what code did you rearrange?
bacek_ Whiteknight: I spotted it inn branch. But my gut's feeling that this is same failure as pmichaud's 23:10
chromatic build_call_sig().
Whiteknight oh okay
chromatic: I don't even see that in the repo 23:11
chromatic src/nci.c -- generated file 23:13
purl i guess generated file is here: kados.org/stuff/GetIt-Schema-GetItD...-MySQL.sql
Whiteknight ah, okay. That's why ack isn't finding it
bacek_ time to go 23:14
Andy ack will find it, just not if it hasn't been generated. :-)
cotto Andy, maybe you should add a feature to search generated code that hasn't been generated yet. 23:18
Andy The --dwimitf flag
do what I mean in the future
dalek rrot: r39861 | chromatic++ | trunk/tools/build/nativecall.pl:
[NCI] Made generated function build_call_func() attempt to use NCI to build

functions for every potential NCI signature when first loaded. This reduces startup time by 8.03% and reduces the number of PMCs generated on startup dramatically. The behavior is unchanged on builds which do not support JIT, though they may be slightly faster as well.
23:19
Infinoid chromatic++ # nice commit message
dalek cnum-dynpmcs: r97 | darbelo++ | trunk/src/pmc/dec (3 files):
Removed the ieee754_cmp METHOD from DecNum and added a flag to DecNumContext to

total ordering.
23:24
purl total ordering is probably "ļæ½NaN < ļæ½sNaN < ļæ½Infinity < ļæ½finites < ļæ½0 < +0 < +finites < +Infinity < +sNaN < +NaN"
cotto is suddenly hungry for some negative naan. 23:26
Whiteknight bacek_: so you're saying that the keys in hashes aren't getting marked?
Tene Mmm, naan.
Whiteknight has some naan in the freezer 23:27
darbelo wonders where naan fits in the order of things... 23:28
chromatic Almost 500 fewer PMCs allocated at startup. 23:29
cotto What kind of a relative drop is that? 23:33
chromatic 28%
purl 0.28
cotto Nice work.
chromatic 26.43% in practice; I was estimating before. 23:34
cotto Is that for a hello world? 23:36
chromatic Yes. 23:37
Let's see if there's another 2% lurking in there.
Yep. 23:38
Whiteknight chromatic++
23:40 bacek_ joined 23:41 patspam joined
chromatic Now to make the code smaller. 23:42
dalek rrot: r39862 | chromatic++ | trunk/tools/build/nativecall.pl:
[NCI] Removed the _XJIT_ prefix from JIT-generated call thunks. Avoiding the

up startup time by more than 2%.
23:45
chromatic ... and now src/nci.o is 93.66% smaller. 23:47
Whiteknight well that's quite impressive 23:49
cotto as in 6.33% of the previous size?
Whiteknight of course, I'm on amd64 with no JIT support, so I probably won't see any benefit
chromatic Except that one PCRE test fails and four NCI tests fail due to missing signatures.
libparrot.so ends up 6% smaller too. 23:53
We'll have to do more work to make the patch work, but it's a possibility.
nopaste.snit.ch/17086 23:54
23:59 abesapien joined
chromatic Ahh, src/jit/i386/jit_defs.c 23:59