Parrot 2.6.0 | parrot.org Log: irclog.perlgeek.de/parrot/today | Nopaste: nopaste.snit.ch:8001 | fix 'make html' (talk to Coke), update tutorial (talk to tcurtis)
Set by moderator on 21 July 2010.
dalek rrot: r48243 | pmichaud++ | trunk/runtime/parrot/library/P6object.pir:
Revert "Avoid creating a PMC here, rely on autoboxing instead."

  .ACCEPTS here is supposed to always return a boolean value;
this causes it to return an integer instead. Rakudo fails t/spec/S02-builtin_data_types/bool.t unless this commit is reverted.
00:03
00:15 preflex joined
whiteknight where is the source for P6metaclass? 00:33
nevermind, I think I found it in P6object.pir 00:34
jnthn whiteknight: Yeah, ti's in there.
whiteknight: Looking for anything in particular? 00:35
whiteknight jnthn: I'm getting a very vague error "Parent isn't a class" in P6metaclass.add_parent, but it doesn't give me any information about what Parent is, or which class it is trying to modify so I can track down where the error is happening
so I might beef up that error message a bit 00:36
jnthn whiteknight: I think that may be thrown from Class.pmc, but my memory of that lot is a tad hazy.
dalek izkost: f978c3b | (Tadeusz Sośnierz)++ | build/Makefile.in:
Added Q&D DESTDIR support
chromatic Class.pmc sounds like the culprit.
whiteknight yeah, that's what it's looking like from here
jnthn Kill it with fire! 00:37
Oh, wait...
whiteknight okay, that's better. I'm much more comfortable messing with the C code than the P6metaclass code
Okay, this is odd. NQP is attempting to add Null as a Parent of one of my classes which doesn't have any parent types specified 01:13
so that makes me happy
my definition for it is a vanilla "class Program;" and I get that error 01:15
01:20 rurban_ joined 01:45 contingencyplan joined
whiteknight in P6, what's the syntax for accessing a field? 01:46
if my class "has $!foo", do I access it as "self.$!foo"? 01:47
or "$!self.foo" in a more PHP style?
...or something else entirely?
sorear you access it simply as $!foo 01:48
whiteknight okay. How do I do it for something that isn't self?
sorear I don't beleive you can. 02:07
Best to ask in #perl6 for that
whiteknight okay, I'll do it tomorrow. Thanks sorear++ 02:12
GeJ whiteknight: I believe the ! twigil is to mark the attribute private.
dammit!
02:12 TiMBuS joined
GeJ clock ? 02:12
purl GeJ: LAX: Sat 7:12pm PDT / CHI: Sat 9:12pm CDT / NYC: Sat 10:12pm EDT / LON: Sun 3:12am BST / BER: Sun 4:12am CEST / IND: Sun 7:42am IST / TOK: Sun 11:12am JST / SYD: Sun 12:12pm EST /
dalek kapo: 9ab2c72 | whiteknight++ | s (7 files):
a few fixes and changes. I think if I refocus my efforts on making the method injection work, I can get much of this code working again
02:16
kapo: ac16da8 | whiteknight++ | src/ (2 files):
some fixes to the build
kapo: a140f5d | whiteknight++ | src/ (3 files):
fix a few more things. Runtime failure with null pmc in invoke() during the common-methods stuff
kapo: 1ff6cd4 | whiteknight++ | src/Pmc/common-methods.nqp:
I think I've fixed the method injection mechanism for the Common methods.
kapo: 16992dd | whiteknight++ | src/ (18 files):
slightly more progress
kapo: 4f6d3c4 | whiteknight++ | (13 files):
some more progress. All the initialization routines run and I can get some of the test programs (notably t/Program.nqp) to start, but things go badly inside UnitTest::Loader, which I haven't tracked down yet
02:42 janus joined 03:55 snarkyboojum joined 04:23 LoganLK joined 04:35 chromatic joined 04:39 plobsing joined 04:56 petdance joined 05:40 leprevost joined
dalek TT #1723 created by pmichaud++: [bug] linked lists result in segfaults 06:27
TT #1723: trac.parrot.org/parrot/ticket/1723
chromatic Guess: recursive GC blows the stack. 06:31
sorear You're only now figuring this out? 06:32
chromatic If you have an algorithm to diagnose tickets before someone files them, I'm listening! 06:37
sorear Well, people have complained about the issue before the ticket was filed 06:38
Most recently irclog.perlgeek.de/perl6/2010-07-29#i_2630063
pmichaud I think it's fair to say that some of us do not read every line of every channel. 06:39
dalek rrot: r48244 | pmichaud++ | trunk/t/library/p6object.t:
[p6object]: Add tests that .ACCEPTS return a boolean result.
06:40
rrot: r48245 | pmichaud++ | trunk/runtime/parrot/library/P6object.pir:
[p6object]: Use pre-allocated true/false Boolean values for .ACCEPTS results; this should get a comparable speedup to r48242 (avoiding creating a new PMC) while preserving bool semantics.
chromatic pmichaud, we're probably going to have to stall that ticket until we can land a GC which doesn't recurse in C. 06:41
pmichaud chromatic: fair enough. I figured it was worth filing the ticket so the parrot folks knew about the issue (and it could be prioritized appropriately)
also to provide a baseline test case 06:42
chromatic Definitely a good test case.
pmichaud seems like it wouldn't be too hard to write a non-recursive version, though. 06:44
(might need a very large block of memory to store some PMC addresses; otoh, the maximum size of the block is likely knowable also)
chromatic Sweep-free can be non-recursive. 06:45
pmichaud oh, I get it. the recursion is in the mark phase.
chromatic I *think* bacek said the modified GC we didn't land for 2.6 was or could easily be non-recursive.
I could take the GC book upstairs to read before I sleep... but I won't. I commented on the ticket instead. 06:48
pmichaud works for me 06:54
07:02 snarkyboojum joined 07:19 fperrad joined 07:22 snarkyboojum left 07:39 bacek joined 07:41 robin-gvx joined 08:06 tommyd joined 08:12 [1]Casan joined 08:22 bacek joined
cxreg is lorito still entirely theoretical? 08:26
sorear lorito is still entirely nebulous 09:00
cxreg seems like a good idea, but smells like the deep end of the pool :) 09:09
09:10 alin joined
cotto cxreg, it's in the early planning and prototyping stage 09:16
cxreg i was reading the wiki pages, wasnt sure if anything was implemented yet
cotto a couple experimental prototypes exist but neither is far along enough to be called anything like "official" 09:17
lorito?
purl well, lorito is "little parrot" in spanish or xkcd.org/707/ or github.com/atrodo/lorito or trac.parrot.org/parrot/wiki/Lorito or github.com/ekiru/yalp-asm
cxreg github? o_O do i smell a parrot git migration?
cotto It's in the works, but it's only a coincidence that the Lorito prototypes live there 09:19
cxreg fair enough
.oO(I wonder how that GSoC git-svn improvement dealy is going?)
cotto I'm glad to say that a git migration is pretty certain at this point.
the schedule isn't
09:20 rurban_ joined
sorear atrodo and tcurtis are both git fans 09:20
cxreg it's quite the popular thing to do these days, fedora just did it and postgres is about to
sorear so it's no wonder that their semi-private not-branch parrot stuff is hosted on git
cxreg right
sorear mono did it last week
that git clone pulled down 200MB of packfiles, quite some migration... 09:21
cxreg heh
dalek tracwiki: v16 | cotto++ | LoritoDesignQuestions 09:30
tracwiki: minor fixes
tracwiki: trac.parrot.org/parrot/wiki/LoritoD...ction=diff
cxreg (trac's highlighting)++ 09:32
cotto it's handy for changes like that 09:35
dalek tracwiki: v1 | cotto++ | NewObjectModel 09:47
tracwiki: excerpts from #parrot
tracwiki: trac.parrot.org/parrot/wiki/NewObje...ction=diff
10:01 lucian joined 10:31 whiteknight joined 11:17 preflex joined 11:22 ocharles joined, hudnix joined
ocharles Hi, from what I can see Rakudo* doesn't have a "getprotobyname" sub, and I want to add that - so I think I need to implement getprotobyname in Parrot first - does that sound right? 11:23
11:31 gbacon joined 11:34 azawawi joined
azawawi hi 11:34
purl que tal, azawawi.
azawawi any idea how to debug a silently failed loadlib opcode?
11:43 azawawi left 11:44 rurban joined
rurban I just released parrot-2.0.6 for cygwin (waited to test rakudo-star) 12:08
ocharles Hrm, so I'm hacking on this getprotobyname thing. getprotobyname returns a struct - so I guess I need a pmc to represent the struct. Unlike sockaddr_in (which I'm basing this on), calling getprotobyname creates the structure, so does this mean by init() method doesn't need to do anything really? 12:18
My understanding atm is that I'd do *protoent = Parrot_pmc_new(...), then later call set_pointer on this protent object (how to do that is my next challenge :)) 12:20
12:24 jsut_ joined
ocharles \\o/ patch done, where should I submit it? 13:06
13:09 kid51 joined
ocharles nvm, doc/submissions is clear - sorry 13:13
13:17 ambs joined
dalek TT #1724 created by ocharles++: Add getprotobyname to Socket PMCs 13:20
TT #1724: trac.parrot.org/parrot/ticket/1724
13:27 tommyd joined 13:48 lucian joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#35206), fulltest) at r48245 - Ubuntu 10.04 i386 (g++) 14:08
t/op/exit.t - TODO passed: 6 in testf
why the exit op should exhibit different behaviour with (pasm) to in the fast core on i386 platform is a mystery to me, (it does not on amd64 platform) 14:18
s/to in/with/ 14:20
14:25 clinton joined
ambs TPF Grant Proposals are there waiting for your comments: news.perlfoundation.org/2010/08/201...l-for.html 14:27
14:33 jan joined
ocharles How do I get my dynoplib into parrot? I've added it to dynoplib/Rules.in, reconfigured and everything, but it still doesn't get into my builds... 14:34
aha, it has to go in src/dynoplib/Defines.in too 14:37
15:09 snarkyboojum joined
mikehh kid51: ping 15:12
15:20 jsut joined
kid51 msg bacek You should probably comment on news.perlfoundation.org/2010/08/201...l-6-b.html 15:42
purl Message for bacek stored.
kid51 mikehh pong
mikehh kid51: regarding missing pod - I ran make headerizer yesterday and it reports quite a few functions missing pod (not tested in codetest?) 15:48
thought it might solve a problem with the g++ build (didn't it was something else) but I did notice that it reported a lot of missing pod 15:52
in things like bigint etc IIRC 15:54
kid51 mikehh: Have to be afk for a while. Can you send email? Or post to list? Thanks. 15:56
mikehh kid51: 'k - have to re-boot as well - brb 15:57
pmichaud part of me would be very disappointed to see tpf fund that grant.
it would mean the translator is paid more than the original book authors. 15:58
kid51 pmichaud: That's certainly a valid point. I think the question for this grant -- and, really, for all TPF grants -- is: Would it work as seed money for accomplishing some larger Perl objective? 16:18
16:35 tommyd joined 16:38 mikehh joined 16:39 tcurtis joined
tcurtis Good morning, #parrot. 16:39
16:48 theory joined 16:53 macroron joined
tcurtis Hmm... why don't the GC benchmarks in examples/benchmarks work in gc_massacre branch? All the data except for time is 0... 16:56
17:05 ambs joined 17:19 kid51 joined 17:20 rurban_ joined 17:48 eternaleye joined
dalek TT #1725 created by jkeenan++: tools/build/headerizer.pl: documentation is confusing 18:00
TT #1725: trac.parrot.org/parrot/ticket/1725
mikehh kid51: I have been quite confused by make headerizer oftem 18:06
often 18:07
kid51 Yeah, when I called perldoc I thought I was seeing double
Let me ask a related question 18:08
... which is probably a perl 5 misunderstanding on my part ...
ambs is there any place where we can send suggestiong for the perl6-book? (like, something that is not easy to understand as it wasn't explained before) 18:09
kid51 When I call: find . -type f -name '*.o' | cat | perl tools/build/headerizer.pl
... why do I get: No files specified. at tools/build/headerizer.pl line 314. ??
Have I not specified the files to use?
ambs: I think that would be the Rakudo folks' call (even if they're many of the same people as Parrot folks) 18:10
You could ask in #perl6 on freenode. Probabaly either to rakudobug@perl.org or to perl6-compilers list. 18:11
my guesses
mikehh kid51: you either need to run make hgeaderizer (which specifies the files) or give a list of files to headerizer.pl 18:12
ambs hmms, freenode? why not irc.perl :-| oh dear
mikehh headerizer
purl i guess headerizer is a big jerk. If I format function headers wrong it just ignores them and doesn't even tell me it's doing so.
kid51 has only begun to hang out on freenode #perl6 since Rakudo* came out, so is not very familiar with Rakudo SOPs
mikehh kid51: running make headerizer gives a whold bunch of files missing POD, mostly .pmc files, one .y and 3 .c from compilers/pirc/src 18:13
kid51 mikehh: Well, then that's another point that needs clarifying in the headerizer.pl docs.
'make headerizer' does not appear in headerizer.pl's docs 18:14
mikehh kid51: just a make target to run headerizer.pl :-}
kid51: it needs to be run when there are api type changes - it generates .h files from the .c and .pmc 18:15
kid51 mikehh: t/codingstd/c_function_docs.t as yet only measures .c and .h files for POD. 18:16
An inline comment explicitly disavows .ops and .pmc "for now"
mikehh kid51: yes - we need to add to the test or have another test for .pmc files
kid51: and probably the ops as well (those definately would need documentation) 18:17
kid51 So, IIUYC, we need both documentation in these .pmc files, but we also need a test for the presence of such documentation -- correct? 18:18
mikehh kid51: I think so yes, I was quite shocked looking at the output of make headerizer and seeing missing POD :-} 18:19
kid51 runs 'make headerizer' for the first time ever 18:20
mikehh kid51: it's mostl;y.pmc files
mostly
kid51 hmm, I see what you mean 18:21
mikehh kid51: and from what I checked it is valid
kid51 pauses to commit on a different issue
mikehh kid51: I do do a svn diff to make sure it hasn't changed anything :-} 18:22
18:25 theory joined
dalek rrot: r48246 | jkeenan++ | trunk (3 files):
Make sure tools/dev/pprof2cg.pl gets installed -- but not as an executable.
18:26
kid51 okay, that's done 18:29
mikehh: Can you open a TT for this? Or maybe two: one to write the POD; one to extend c_function_docs.t to cover these files? 18:30
mikehh kid51: 'k will do (one to start with anyway) 18:31
kid51 Thanks. afk 18:32
dalek TT #1726 created by mikehh++: Missing POD in .pmc files (and a couple of others) 19:07
TT #1726: trac.parrot.org/parrot/ticket/1726
kid51 mikehh: What is a '.y' file supposed to be? 19:18
Austin yacc grammar
(or bison)
Probably looks like C, with some weird crap at the top and a bunch of percent signs 19:19
kid51 So it appears that headerizer.pl has some way of identifying whether functions in .pmc files have POD or not. 19:21
Austin Sure. All the checks for correctly formatted comments rely on it. 19:23
whiteknight: ping
See $_PARROT/lib/Parrot/Docs/File.pm 19:25
Sorry
kid51: See $_PARROT/lib/Parrot/Docs/File.pm
kid51 Thanks. 19:26
Austin There's a sub called "check_pod"
19:32 wtgee joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#35212), fulltest) at r48246 - Ubuntu 10.04 amd64 (g++ with --optimize) 19:45
20:29 eternaleye joined 20:37 eternaleye_ joined 20:50 tommyd joined 21:21 plobsing joined 22:11 chromatic joined 22:25 jsut_ joined
cxreg heh 23:32
parrot_split_path_ext appears to be "stemming" libgtk-x11-2.0 and then failing to load it
whiteknight Austin: pong 23:35
Austin Whiteknight!!
purl whiteknight is mailto:wknight8111@gmail.com or the grand master funk or wknight8111.blogspot.com/
whiteknight Austin!
Austin purl, i hayte you
purl Austin: i'm not following you...
Austin purl, i hate you
purl Austin: huh?
Austin Bummer
Dude, what have you done to Kakapo?
whiteknight ...broke it? 23:36
Austin shrugs.
I'm asking - that wasn't a rhetorical device.
whiteknight everything I've been doing was on my github branch though
oh, so this isn't an accusatory "wtf were you thinking?" kind of thing?
Austin Have you been following the design stuff for Lorito? 23:37
whiteknight yeah, as well as I am able
Austin If I ever want to scream "wtf were you thinking" it won't be at you.
:)
Anyway, you keep making noises like you're not having *any* of the problems I'm having... 23:38
whiteknight and you keep making noises like you're having all sorts of problems I'm not having
Austin I guess 23:39
whiteknight what problems are you having?
Austin All the pmc method stuff doesn't work. 23:40
How did you get around that?
whiteknight I have found a few problems as I've looked. The ordering of class definition code and stuff seems to be happening at a different time, screwing up all the initload stuff 23:41
the export stuff also seems broken with namespace/methods being changed, so I've been removing it instead of trying to fix it with Tene's patch like I should
it also seems like NQP has proper has... syntax now, instead of using the has() method 23:42
Austin Wow.
The very first of those problems has been a total showstopper for me.
whiteknight I've also added "fixed" install_method() mechanisms into Array and common-methods, which seems to do proper method injection now 23:43
Austin I'm wading through the initload stuff, slowly but very slowly.
Okay. I fixed that, too.
whiteknight I didn't even try to fix it, mostly because I didn't really understand it and I didn't take the time to map out all the dependencies
Austin The has thing is a yes/no situation, or at least it was.
There's "has foo" and "has( <foo> )" and they're subtly different. 23:44
whiteknight but, since most of the initload stuff was using export/using/has, which I was removing anyway, I just removed all the initload stuff entirely
Austin Heh.
Okay.
whiteknight the has(<foo>) didn't seem to work
Austin I haven't got there yet.
whiteknight causes a runtime error for me any time I tried
Austin So I won't comment. But it probably can't work unless you get the other stuff working.
(All the initload crap)
The difference is important primarily in that "has()" can actually "fix" things, instead of just declaring them. 23:45
That is, "has( 'foo' )" will actually go in and force an attribute named 'foo', and create accessors, and so forth.
whiteknight okay 23:46
Austin Which made it good for fixing up things that should have been done right, but weren't.
whiteknight there's a bunch I didn't understand about Kakapo, and a whole hell of a lot that I don't know about P6object/P6metaclass/etc. Anything I don't understand I've been basically ignoring or removing so I can get to problems I do understand
not exactly the textbook way to debug a complex system, but whatever
Austin While "has foo;" is nqp syntax, and tells nqp to generate the attribute declaration and so forth. So if you're coding a new class, you use "has foo" but if you're trying to fix up something coded in pir or whatever, you may have to use "has()" 23:47
whiteknight okay. where is has() defined?
Austin I saw you asking about how to access $other.attribute last night. Did you ever get that?
whiteknight the answer I got was "might not be possible"
which I think is plausible in a dynamic language (I can't be bothered to look through the synopses to try and find the answer myself) 23:48
Austin Well, there wasn't a syntax for it - IDK if that's still true. So you'd call "get_attribute" in pir. 23:49
whiteknight I figured. Unlike a strongly-typed language, you can't ever really know that $other is a member of the current class
Austin Or you'd use has(), and/or auto_accessors.
It's not an excusable omission. Don't try to justify it. It's just not there yet. 23:50
Hell, it may be there by now.
$foo.att
or something.
Anyway, all your changes are on the 'master' branch on github, yes? 23:52
fyi: has() is in src/classes/p6metaclass.nqp or p6object, can't remember which.
But in classes/
whiteknight yeah, only have that one branch I think
Austin: ah, okay. So I probably haven't fixed injecting has() into the root namespace, which is why it wasn't working like I expected 23:53
Austin I checked tene's patch, and it seems to do what he suggested it would.
whiteknight Off topic, have you ever seen the comic "Basic Instructions"? The guy in that comic reminds me of you
Austin That said, I didn't actually test if code with :nsentry on the sub methods was more or less good - I know there's a crapload of subs that should be declared 'our' but have nothing right now. 23:54
Basic Instructions? Not that I recall.
whiteknight basicinstructions.net/ It's hit-or-miss, but the guy does remind me of you 23:55
chromatic Half Austin, half Coke.
Austin I'll be the bald guy with the goatee. Which half is Coke? 23:56
whiteknight uh, the crazy sexual-harasser?
is Coke bald too? 23:57
I've never met him in person
Austin I DON'T WANT TO KNOW!!!
Tene I don't actually know how to import nqp from the repo into parrot. 23:58
I expect there's documentation somewhere, but I haven' tlooked.
23:58 Psyche^ joined
Austin I think you just copy <something> into the appropriate ext/ dir in parrot. 23:58
But it could be all svn'ed up 23:59
jnthn make boostrap-files in nqp or some such
Austin LOL
jnthn And then copy the stage0 directory
(the pir files in it)