Devel: 0.6.1 | parrotcode.org/ | 696 new/open tix
Set by moderator on 12 May 2008.
japhb DietCoke: NODNOD. That's by far my biggest complaint with it. 00:27
PerlJam use git then 00:28
japhb particle: never got a response from #svk, giving up then
PerlJam: that depends on if git-svn can propset svn properties, which Infinoid said he couldn't get working 00:29
PerlJam: commuting now, I'll ping you again later on that point 00:30
00:31 wknight8111 joined 00:34 davidfetter joined 00:35 davidfetter left 00:42 kid51 joined
dalek r27511 | jkeenan++ | trunk: 00:44
: Applying modified version of patch submitted in
: rt.perl.org/rt3/Ticket/Display.html?id=54144 by Geoffrey Broadwell
: preventing SVN ID tags > 78 char in PDDs from causing failure of PDD coding
: standards tests.
diff: www.parrotvm.org/svn/parrot/revision?rev=27511
00:48 AndyA joined
kid51 Tene ping 00:50
Tene kid51: yes? 00:51
kid51 Re r27510: After I svn up, I'm getting no content in tools/util/dump_pbc.pl 00:52
[li11-226:parrot] 520 $ ll tools/util/dump_pbc.pl
-rw-r--r-- 1 jimk jimk 0 May 14 18:59 tools/util/dump_pbc.pl
Am I missing something?
Tene No, that was an accident.
That file was part of a diff that particle was evaluating and wanted me to convert for him.
I deleted the file, but forgot to svn del it.
kid51 k 00:53
00:54 zarchne joined 00:55 davidfetter joined 01:00 nopaste joined
Tene I get confused trying to deal with svn. 01:01
davidfetter doesn't everybody?
purl I know I do.
davidfetter wonders whether purl is referring to Repo Man 01:02
dalek r27512 | rgrjr++ | trunk: 01:03
: * src/packfile.c, include/parrot/packfile.h:
: + Change type of "action" args to do_1_sub_pragma and sub_pragma from
: "int" to "pbc_action_enum_t", because that's what they are. Also,
: make the doc for sub_pragma slightly more useful.
diff: www.parrotvm.org/svn/parrot/revision?rev=27512
Tene purl: cd repo man is he can go where I can't go
purl i haven't a clue, tene
01:03 japhb joined
japhb PerlJam: any info on the svn propset in git-svn question? 01:06
01:17 petdance joined
PerlJam japhb: I don't think you can propset with git-svn 01:19
you can list them and you can get individual properties 01:20
01:23 rdice_ joined
japhb PerlJam: dang. 01:33
(Because sometimes, four letter words really are the best) 01:34
tetragon What, like perl? 01:35
wknight8111 I say "perl" to the kids when I get angry 01:36
Eevee hey 01:38
perl you
japhb Oh, perl off
PerlJam hmm. 01:39
Eevee perl this, I'm out
japhb LOL
PerlJam "perlhole" fires off some odd neurons
japhb laughed so hard his wife asked if he was OK 01:40
Eevee (perl as profanity)++ 01:44
wknight8111 ...i've had those moments here too...
japhb And apropos to the platforms discussion from earlier, i98.photobucket.com/albums/l264/KiL..._vista.jpg 01:47
shorten japhb's url is at xrl.us/bkjvx
Eevee unix will pop a cap in yo ass
apparently
I've seen an extended version of that with some 10+ OSes
japhb yikes 01:48
tetragon notes that OS X 10.5 on Intel has been certified as Unix 01:49
japhb There's definitely humor therein 01:51
tetragon There are a few things I really should check on some time. Some commands, such as mktemp(1), behaved differently between PPC and Intel OS X 10.4. I'm not certain if that has been unified with 10.5. 01:55
Eevee wow, seriously? that's a bit tacky 01:56
pmichaud Perl is indeed a profane language. In what other language can we write +@$/<0>&&!$_ and expect it to parse and execute? ;-)
tetragon I encountered that while I was doing an early run of the Slony tests on Intel OS X
Eevee pmichaud: malbolge? 01:57
purl hmmm... malbolge is a language designed to be near impossible to program in. www.lscheffer.com/malbolge.html
pmichaud "Look ma! No alphabetics!"
use.perl.org/~pmichaud/journal/36420 # new article 01:58
afk # break
tetragon But does it use as many glyphs as APL? 01:59
Eevee "At its core, Parrot uses integer versus non-integer indexes to distinguish between array and hash accesses" -- does this imply Parrot can never use integers (and thus arbitrary objects) as hash keys? 02:00
02:01 kid51 joined
japhb OK, I finally figured out why Tene thought he checked in my dump_pbc.pl patch accidently, but my SVK doesn't see it ... he seems to have checked in the *existence* of the file (perhaps because of setting properties for it), but the trunk copy is empty, and the file modifications from my patch aren't there. 02:14
If you click on dump_pbc.pl in the listing at svn.perl.org/parrot/trunk/tools/util/ , you'll see it's empty.
So it appears that Tene's SVN misbehaved rather oddly. 02:15
02:16 Zaba joined 02:37 teknomunk joined 03:06 petdance joined
japhb OK, new hopefully win32-friendly version of dump_pmc.pl patch posted. 03:11
particle, Limbic_Region: please give it a try
03:32 particl1 joined 03:35 Zaba joined 03:55 particl1 left
pmichaud eevee: (integer accesses) -- it only makes a difference for aggregates that need to distinguish between array and hash accesses 03:59
i.e., in Perl 6 we can have both $x{'foo'} and $x[0] (i.e., $x has both a hash interface and an array interface)
for a normal hash, all keys work the same. 04:00
same for a normal array.
Eevee ah okay. that's a weird case so I guess there's not much better you can do
pmichaud for a type that needs both -- either the code calling the type needs to distinguish or the underlying type can distinguish
and parrot allows for both, but it just takes a bit of extra work
Eevee checks S09 04:01
oh cool, you can override what's allowed for both the keys and values in p6
pmichaud and there are already objects that do that
japhb Is there PIR syntax for calling a function using a fully qualified name? In other words, is there a way to avoid first doing a C<foo = get_global ['name','space'], 'foo'> before you can do C<foo(bar, baz)>? 04:02
pmichaud japhb: no.
japhb pmichaud: dang.
pmichaud even if there was such a PIR syntax, it would end up doing the equivalent of get_global.... foo(bar, baz)
japhb japhb's word for the day
Eevee bah, I have too many things going on at once; would like some time to dive into rakudo
haven't even found much time to play with the test suite 04:03
pmichaud even the existing foo(bar, baz) syntax is translated into a sequence of $P0 = find_name_not_null 'foo'; $P0(bar, baz);
japhb pmichaud: Oh, I don't mind it doing the work behind the scenes. I just wanted the sugar. 04:04
pmichaud then of course there is a question of... get_global or get_hll_global ? ;-)
japhb nodnod
fair enough
pmichaud afk for a while 04:05
04:13 AndyA joined 04:30 Psyche^ joined 04:47 Zaba joined
nopaste "japhb" at 76.191.190.8 pasted "Segfault trying to iterate over namespace" (32 lines) at nopaste.snit.ch/12970 04:57
05:16 Zaba joined
Tene Looks like parrot doesn't build on OpenBSD 05:54
06:00 uniejo joined 06:26 nopaste joined 06:35 allison joined 06:54 DietCoke joined
dalek r27513 | fperrad++ | trunk: 07:09
: [Lua]
: - add 2 TODO tests (upvalue implementation)
diff: www.parrotvm.org/svn/parrot/revision?rev=27513
07:26 Zaba joined 07:53 iblechbot joined 08:00 Psyche^ joined
dalek r27514 | chromatic++ | pdd25cx: 08:15
: [src] Changed real_exception() to Parrot_ex_throw_from_c().
diff: www.parrotvm.org/svn/parrot/revision?rev=27514
chromatic@wgz.org | Concurrency Tasks: 08:16
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
08:20 TonyC joined 08:22 masak joined 09:11 Zaba_ joined 09:17 Ademan_ joined 09:23 wknight8111 joined 09:46 tetragon joined 10:01 particl1 joined
dalek allison@perl.org | Bylaws: 10:08
link: www.perlfoundation.org/parrot/index.cgi?bylaws
10:10 wknight8111 joined 10:16 donaldh joined 10:20 ruoso joined 10:25 slightlyoff joined
dalek allison@perl.org | Bylaws: 10:52
link: www.perlfoundation.org/parrot/index.cgi?bylaws
11:05 mire joined 11:28 Zaba joined 11:31 dcat joined 12:16 dalek joined 12:17 Juerd joined
Juerd feather1 was out of memory. 12:18
feather.perl6.nl/~juerd/feather1.pe...ry-day.png 12:20
12:39 iblechbot joined 12:41 wolverian joined 12:47 Zaba_ joined 12:50 jonathan joined 13:19 pmichaud joined 13:20 AndyA joined
DietCoke Yay! we can once again send files with "configure.pl" in them without getting bounced by pm.org 13:29
s/files/emails/ 13:30
DOH no we can't.
13:32 leo joined
DietCoke leo: hey! 13:35
Zaba_ moin
leo Hi DietCoke, on diet now? 13:36
DietCoke dietcoke is coke-floats.blogspot.com/ 13:38
leo: yup. going well. 13:39
pmichaud PDD15 says: =item - Objects may have a custom vtable or use a class-wide vtable. 14:02
anyone know how to compose a custom vtable entry into an object? 14:03
or even where to start looking? 14:04
DietCoke hurm. I only know the syntax for how to do that to the class, not the object.
pmichaud runtime is okay for this 14:05
DietCoke I would look in the oo tests to see if it's there; if not, we may have 2 problems.
dalek particle | Bylaws: 14:06
link: www.perlfoundation.org/parrot/index.cgi?bylaws
pmichaud I'll just mail the list. 14:08
jonathan pmichaud: Certainly, do mail the list - I didn't even know that this bit was in the spec, and I was one of the folks who worked on it. 14:09
I always saw these things being done by cloning the class and passing a hash to clone with what you want to change (see clone op, clone_pmc vtable method in class) 14:10
And instantiating an object from that new class.
pmichaud I know that I had also asked about per-object role mixins, and Allison said that would be possible too but to wait until after the pdd17 pmc changes 14:12
jonathan OK, not entirely sure what she has in mind. 14:14
pmichaud Me either. We'll see what the list responds. :-)
jonathan I can't think of anything simple that wouldn't end up boiling down to what I just mention anyway.
pmichaud right. 14:15
jonathan Because an object depends on having some class object to tell it where to find it's "stuff"
pmichaud I'm planning to create a branch to re-work the protoobject implementations
jonathan OK. 14:16
pmichaud I'll likely call it "P6object" -- any (pardon the pun) objections? ;-)
jonathan No, please go ahead and work on this. 14:18
However, would be good for me to get a set of spectests for OO features that I expect to work arranged tomorrow.
pmichaud I'm planning that we'll end up with one base protoobject implementation for Rakudo, PCT, and PGE 14:19
jonathan So we can see what, if any, break as a result of the changes in the branch.
OK, sounds sensible - if they're protoobjects are going to look pretty much the same.
moritz jonathan: I submitted a few small spectests to the topics you mentioned the other day
btw rakudo has a parse failure for 'class a { .. };' 14:20
pmichaud (breaks) -- there will be a bit of refactoring involved, as I'm thinking the '!keyword_*' methods should be moved out of Object
moritz whereas 'class A { ... }' works ;)
jonathan moritz: Is your point here the semicolon of lack thereof?
Or capitalization? 14:21
purl i guess capitalization is the difference between 'helping my uncle Jack off a horse' and 'helping my uncle jack off a horse'
pmichaud or ... vs .. ?
jonathan EWWW!
moritz jonathan: capitilzation
not literal ...
14:22 NotFound joined
pmichaud Rakudo currently requires typenames to start with uppercase chars. 14:22
NotFound Hello.
moritz pmichaud: that explains it
purl Damn right it does.
DietCoke ponders starting a pool for an official weigh in at yapc. =-)
jonathan pmichaud: Is that part of the spec too? 14:23
pmichaud jonathan: it's a shortcut
otherwise it's difficult to distinguish 'Foo' from 'say'
jonathan :-)
DietCoke there is a guy working on my team in this office now that reminds me of Jim.
jonathan Oh yes, don't we have to build up a table of typenames and so forth as we go, so we know which are which?
moritz pmichaud: so upper case sub names don't work either? 14:24
pmichaud moritz: those might work, depending on how they're used
jonathan: I haven't looked at STD.pm lately -- I suspect it will (or has) evolved since I did the cheat.
moritz but it's amazing how much of the test suite actually works with that convention ;)
pmichaud istr that pugs did a similar cheat for a short period of time. 14:25
yes, <typename> does a check that the name is a valid type. So we'd need to register the valid typenames as part of the parse/compile/library load. 14:26
NotFound pmichaud: we have #45503 pending.
pmichaud NotFound: looking.
DietCoke NotFound: 45971 - that comment is associated with a -different- ticket in src/oo.c ; that ticket is the same error, but in a different file. 14:27
pmichaud NotFound: applying #45503. Thanks for the reminder. 14:28
DietCoke we should probably merge all the tickets that have that comment into a single ticket, update the RT pointers.
NotFound DietCoke: yes.
DietCoke NotFound: if you setup a bitcard id, I can make you a bugadmin. 14:29
Then you can merge tickets, close the ones that are trivially closable, etc. 14:30
NotFound I think I already have one... let me see.
DietCoke (when you go to RT, if you log in, you'll see "logged in as <>". That's what I need. 14:32
NotFound Yes, I have.
julian.notfound at gmail.com 14:33
DietCoke wozzit?
ok. Poof, you're a parrot bug admin. 14:34
NotFound Thanks :)
DietCoke thank YOU.
Anything that involves removing old comments; if you provide a small patch, that'll grease the wheels to get it gone. 14:35
14:36 mire joined
DietCoke in general when working on tickets, cc the mailing list. 14:36
NotFound I've already seen that is easy to forget that ;)
DietCoke I often forget, so you'll see two comments from me on the ticket, one to the ticket, one to the ticket and the mailing list. 14:37
NotFound++
14:38 jhorwitz joined
dalek r27515 | pmichaud++ | trunk: 14:48
: [core]:
: * Fix jit runcore with NULL string.
: * Patch courtesy NotFound++ (<julian.notfound at gmail.com>)
diff: www.parrotvm.org/svn/parrot/revision?rev=27515
NotFound To start, closed two of the tickets I commented on this morning.
pmichaud aha -- we're getting svn: MERGE request failed on '/parrot/trunk' 14:49
(again)
DietCoke please open a ticket on that.
(not with parrot, but with... svn-admin@perl.org ?)
pmichaud there was a ticket on it before 14:50
I'll try to re-open that one, or at least link to it.
DietCoke which was, I think, just closed.
pmichaud RT#45503 resolved -- NotFound++
DietCoke I don't have access to see the svn queue.
14:51 grim_fandango joined
NotFound DietCoke: regarding the "Get printable name" in #46091, the comment no longer exist in src/pmc/class.pmc, nor the RT number. 14:56
I think we killed it as part of dead code removal a few days ago, I will look at it. 14:57
14:57 Ademan joined
pmichaud It's now in src/oo.c (line 729) 14:58
(I just did "ack 46091".)
particle ack++
pmichaud karma ack? 14:59
purl ack has karma of 64
Andy what now?
purl The chalice contains human blood cursed in Death's name. The hooded figure kneeling beside you passes it to you and you have to drink. LOSE 3 HIT POINTS.
DietCoke pmichaud: ack or ack -a ? =-)
pmichaud DietCoke: ack.
DietCoke I find I have to use -a when working on the parrot project a lot, as things may move between parrot, perl, and c. Just curious. 15:00
pmichaud (RT#46091) out of curiosity, when would we come up with an instance of the name being "not printable"? 15:02
NotFound pmichaud: I think is has something to do with a NUL char used as separator, or something. 15:03
pmichaud ....but that's still "printable"
NotFound Some code already deleted mentioned escaping it.
Zaba ack++
particle the cowbell char isn't printable 15:04
pmichaud oh, I see. they want the name to be escaped.
so, isn't that simply 15:06
string_escape_string(VTABLE_get_string(interp, name)) ?
NotFound We can skip the issue by printing the "name" argument of the funcion, instead of that found in the class.
pmichaud it's already printing the name argument of the function
NotFound But is in the other exception. 15:07
Ah, no, you are right.
.sub test 15:12
$P1 = newclass "A\\n"
$P2 = newclass "A\\n"
.end
This shows the bahaviour undesired, I think. 15:13
Class 'A\\n' already registered! -> This is with string_escape_string added. 15:22
15:25 particl2 joined
pmichaud I'll go ahead and add string_escape_string. Good catch. 15:32
NotFound pmichaud: need interp as first param.
pmichaud thanks.
NotFound This with class name: "A\\000B" -> Class 'A\\x{0}B' already registered! 15:33
pmichaud that's correct.
NotFound I think so. 15:34
particle how do you know it's not A\\x{000B} ?
pmichaud it's a parrot doublequoted string, so \\000 is octal. 15:35
NotFound It's octal I thnk.
particle k
pmichaud running 'make test'
particle wonders if anyone has run fulltest lately 15:36
moritz I did about a week ago
all pass
dalek allison@perl.org | Concurrency Tasks: 15:37
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
dalek allison@perl.org | Concurrency Tasks: 15:40
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
15:46 allison joined 15:47 TimToady joined
dalek r27516 | pmichaud++ | trunk: 15:52
: [core]:
: * Properly escape/quote class name in "Class 'foo' already registered"
: exception.
: * Resolves RT#46091 (NotFound++)
diff: www.parrotvm.org/svn/parrot/revision?rev=27516
NotFound Hey, we must left something for the bug day ;) 15:53
particle i'll make more bugs, don't worry ;)
16:06 diakopter joined
pmichaud lunchtime. 16:12
purl lunchtime is up, so Im gonna be thinking more slowly now ;)
16:13 Theory joined 16:15 nopaste joined 16:31 allison joined 16:43 rdice joined
NotFound I'm checking #46895, incorrect recursion depth counting, and always give 1000 for me. 17:00
17:01 davidfetter joined 17:05 TimToady joined
DietCoke TimToady: hio. 17:13
DietCoke has sashimi for lunch today. Niiice.
davidfetter mmm...sashimi 17:14
NotFound Also, I can't locate the alluded TODO in the versions of src/embed.c around the ticket's date. 17:17
dalek r27517 | allison++ | pdd25cx: 17:18
: [pdd25cx] Exception enum names start with EXCEPTION_ or CONTROL_.
diff: www.parrotvm.org/svn/parrot/revision?rev=27517
17:26 wolv joined, sjansen joined
particle NotFound: re recursion depth counting... did you try alternate runcores? 17:28
NotFound particle: yes, and on several machines. 17:29
particle intriguing 17:30
NotFound With gcdebug takes loooon time, but works the same.
particle would like to be able to adjust recursion depth at runtime
(as a command-line option, not from within a running program) 17:31
NotFound particle: have you tried the removeparent patch? 17:32
particle no, haven't had a chance
i'm hip deep in sql at work atm
NotFound Stupid question: can a class addparent himself? 17:34
particle i hope not 17:35
DietCoke seems like something there should be a test for. 17:37
er, against.
NotFound Segmentation fault.
purl (Core dumped)
DietCoke ok, that's bad. =-)
particle Segmentation fault is a form of No :)
NotFound Loops in the hierarchy, in general.
A rude one. 17:38
japhb "No, BITCH." 17:39
NotFound backtrace shows a lot of recursion in Parrot_ComputeMRO_C3. I expected something like that. 17:41
Will do some work in this issue. 17:42
By the way, what's the meaning of that name? 17:44
particle method resolution order
17:44 ambs joined
NotFound Category 3? 17:44
particle c3 is a type of method resolution order 17:45
NotFound Ah, thanks.
17:46 purl joined
particle c3 is also www.python.org/2.3/mro.html 17:47
purl okay, particle.
particle c3 is also use.perl.org/~autrijus/journal/25768 17:48
purl okay, particle.
particle hee: www.flickr.com/photos/spiggycat/239...ool-dcist/ 17:51
shorten particle's url is at xrl.us/bjk42
17:57 barney joined 18:01 diakopter joined
japhb particle: can you test the newest version of the dump_pbc.pl patch? 18:03
18:03 wknight8111 joined
particle in a bit, yes 18:04
japhb particle: cool, thanks
pmichaud wonders how particle can do a test in only 1 on/off state.
particle quantum computing 18:05
Eevee california++
japhb Eevee: definitely
purl Absolutely!
japhb Even purl agrees 18:06
davidfetter o/` california // knows how to party o/`
Eevee well, I've seen what purl does when people go to bed
japhb heh
davidfetter unfortunately, i'm in utah at the moment
Eevee of course he'd agree
18:07 diakopter joined
dalek r27518 | pmichaud++ | p6metaclass: 18:17
: Create a branch for unifying p6-style protoobjects and metaclasses
: in Rakudo, PCT, and PGE.
diff: www.parrotvm.org/svn/parrot/revision?rev=27518
Tene davidfetter: where in UT? 18:24
davidfetter american fork
Tene I live in SLC, but I'm only there about a third of the time. 18:25
s/there/here/
davidfetter hrm. is there a perl mongers' group in (the surrounds of) SLC? 18:29
18:33 Ivatar joined
NotFound I have a problem with my attempt to prevent loops in class hierarchy, breaks at ../../parrot ../../runtime/parrot/library/PGE/Perl6Grammar.pbc --output=TGE/Parser.pir TGE/Parser.pg 18:40
DietCoke ambs++
ambs DietCoke, :-P 18:41
DietCoke is down a stone!
wknight8111 congratulations 18:42
purl Yes. Very well done. *clap*... *clap*... *clap*
ambs purl, quiet! 18:43
purl Too quiet.
Tene davidfetter: yes, they often meet right before plug.org/ iirc 18:45
davidfetter d'oh. i went to plug last night and hassled a mysql guy from the 2nd row 18:46
NotFound Loop in class hierarchy: 'Protomaker' is an ancestor of 'Protomaker'. ---> Can this be true? 18:48
pmichaud yes.
is it correct? no.
is it possible that it's happening? yes.
NotFound Ah, well.
DietCoke so it's possible NF's patch is right, but parrot is wrong? 18:49
pmichaud it's possible that Protomaker is creating some loops.
NotFound Maybe both are wrong.
pmichaud but since I'm reworking the code now (see branch created in r27518) I think we should let it live for a few days, or at least until the release. 18:50
DietCoke can always post the patch in progress on the ticket.
NotFound There is no ticket yet. 18:51
Eevee anyone running debian or ubuntu or other derivative, your keys are broken: isc.sans.org/diary.html 18:52
NotFound Urgh, I've edited the same version that has the removeparent patch, will try in another copy first. 18:53
Same result 18:57
nopaste? 18:58
purl nopaste is at nopaste.snit.ch/ (ask TonyC for new channels) or rafb.net/paste or paste.husk.org/ or poundperl.pastebin.com/ or paste.scsys.co.uk/ or don't bother me while I'm eating
nopaste "NotFound" at 213.96.228.50 pasted "Attempt to avoid loops in hierarchy" (42 lines) at nopaste.snit.ch/12974 19:00
ambs purl, seen merlyn 19:03
purl merlyn was last seen on #moose 55 days and 21 hours ago, saying: ... methodsandmessages.vox.com/library/...ltalk.html [Mar 20 15:09:20 2008]
davidfetter ambs, i saw him over on fleanode a couple of hours ago 19:05
ambs, as RandalSchwartz
ambs davidfetter, not important. I just want to ask what emacs does he uses under mac. At the moment I do not have a decent emacs running under leopard :( 19:06
NotFound imacs? ;) 19:07
ambs lol 19:09
NotFound++
NotFound More verbose version: Loop in class hierarchy while adding parent 'Protoobject': 'Protomaker' is an ancestor of 'Protomaker'. 19:13
pmichaud that seems odd. 19:16
NotFound The namespaces are included in parents list? 19:19
pmichaud do you get a backtrace when the exception occurrs? 19:23
*occurs 19:24
NotFound Yes. 19:25
pmichaud can you nopaste it?
NotFound Is at $P0 = subclass $P0, 'Protomaker'
One second... 19:26
purl i think one second is second is the duration of 9,192,631,770 periods of the radiation corresponding to the transition between the two hyperfine levels of the ground state of the caesium-133 atom.
nopaste "NotFound" at 213.96.228.50 pasted "loop in hierarchy" (37 lines) at nopaste.snit.ch/12975 19:28
19:30 cjfields joined
pmichaud from src/pmc/pmcproxy : 19:32
=item C<all_parents>
A cached array of ourself and all parent classes, in MRO order.
A ResizablePMCArray PMC is allocated during initialization,
and is populated with the current class.
NotFound ourself? 19:33
pmichaud a class is listed in its all_parents entry
same for class.pmc 19:35
so the fact that a class finds itself in 'all_parents' isn't exceptional to Parrot.
i.e., that's the normal state of things.
afk # pick up kids from school 19:36
NotFound So finding loops will be a lot more difficult.
pmichaud are we certain it's an error? 19:37
i.e., does it _need_ to be an error?
NotFound I'm uncertain about all.
My tests segfault, so completely correct is not.
To allow it, MRO must be fixed. 19:38
pmichaud how about this: check if the parent being added "isa" the current class 19:39
for example, if A is trying to add B as a parent, make sure that ! (B isa A)
and throw an exception if so.
gotta run or will be late
DietCoke fly you fool! 19:40
NotFound Yeah, VTABLE_isa_pmc seems to be the right thing, I will try. 19:42
pmichaud++
ambs what the heck :-S 19:43
DietCoke ambs:? 19:47
ambs DietCoke, complaining about gdb 19:48
can't print some variables after a sigseg
ambs coughs 19:52
/dev/sdb1 294G 279G 28K 100% /state/sanc1
NotFound I've discovered my fault: I was cheching own parents, instead of parents of the new parent. 19:56
But doing it thorugh isa is better, anyway. 19:57
pmichaud yes, no looping.
at least, no additional looping :-)
pmichaud considers asking his wife if the kids can walk themselves home from school yet. 19:58
NotFound And you can overload isa, in case you want to play bad games with inheritance.
But doing it can break MRO... mmm... problems. 19:59
Will try the loop way, just in case. 20:01
pmichaud I think using isa is the correct approach for now.
NotFound But I hate segfaults. 20:02
pmichaud presumably someone who is overloading isa will also be dealing with mro issues
I'm an advocate of using the simplest approach until a case for a more complex one is articulated. 20:03
NotFound The problem is that at MRO time is too late for check, even if we throw the parent table is already modified.
pmichaud so, you're saying to use a loop because someone might have overloaded vtable isa, and we want to enforce this "no matter what"? 20:05
NotFound I think that the virtual machine must never segfault, no matter how ugly is the code. 20:06
The bytecode executed, I mean.
pmichaud fair enough.
moritz should I try to pipe /dev/urandom to parrot to see if it segfaults? ;-) 20:07
NotFound moritz: too esasy to catch, unless you have infinite monkeys doing it.
moritz NotFound: I think the more realistic approach is to take working .pbc files and randomly modify some bits in it 20:08
ambs OT: on a 64b machine, the standard C types have different sizes?
moritz ambs: not guaranteed 20:09
NotFound moritz: some people do that with filesystem, to test fsck.
moritz I think the standard just says char <= short <= int <= long <= long long
and perhaps char < int < long long or something
NotFound moritz: no guarantee that char < int 20:10
moritz NotFound: ok, so it's even worse ;)
NotFound But lots of code assume it.
ambs then, the following question should be: is there any standard way to force types to have specific sizes, or should my configure code detect that? 20:13
do not know why, but I am afraid that you say I should detect that
NotFound ambs: you mean types for 16, 32 and 64 bits?
ambs NotFound, exactly 20:14
NotFound ambs: there are ways, but I think parrot does not assume a recent enough standard. 20:15
moritz I don't think you can even assume that they all exist on all architectures
that's not a parrot question, isn't it?
ambs NotFound, in fact, it is not for parrot, but as you probably delt with that :)
moritz++
NotFound Yes, with C99 you can test if they exist, and in that case use it.
moritz ambs: cd /usr/include && grep uint32 * 20:16
ambs hmms, ok, thanks :)
NotFound Look at stdint.h
moritz ambs: there should be some typedefs in most sane standard libs
otherwise: configure
purl well, configure is not broken
ambs thanks, folks 20:17
NotFound The loop approach works, doing make test 20:26
japhb (OT but asking here because you guys are the most likely ones I can think of to know the answer): I've taken ownership of a pile of ancient modules (dozens) that were all created by "editor inheritance" from each other. So now I want to find chunks of code that are still common to multiple modules (but not necessarily *all* of them), and factor them out. Is there any tool or module that's good for the search phase?
japhb idly wonders if the bioinformatics modules apply here 20:27
NotFound japhb: throw all of them, and rewrite from scratch ;) 20:30
japhb Last time I suggested that with part of the code base, both of my bosses nearly jumped across the table to dissuade me. 20:31
:-)
NotFound Some time ago I suggested that for a text editor that was part of an application. In the next version, they used MS-Word instead :D 20:32
japhb The logical part of the argument they made amounted to: "The Mozilla code base rewrite may have turned out OK, but WE CAN'T WAIT THAT LONG." 20:33
NotFound japhb: the counter argument is: cleaning a refactoring of a lot of ugly code can be longer. 20:34
s/a/and
That editor does such nice things as adding attributes literally. They added and substracted to bitfields. 20:37
You marked a block that contained some text in bold, converted it to bold, and other attribute changed in the text that was already bold. 20:39
confound japhb: what's the scope of the repeated code? 20:43
japhb: i.e. is it repeated subs or just ... repeated lines within subs willy-nilly?
20:45 donaldh joined
japhb confound: repeated lines of code. 20:46
and unfortunately, it's not always exact matches. An extra arg on a function here, a wrapped line from an overzealous text editor there ....
mj41 TapTinder will be back tomorrow morning. 20:47
confound japhb: you could solve the latter with perltidy
I mean, maybe something as crude as perltidy + md5sum (line-by-line) would help.
japhb confound: that's not a bad thought ...
confound I'm sure there are better solutions.
moritz search with google for "code detect duplicate lines" or "code similarity search" 20:48
japhb NotFound: I said something along those lines (refactoring can take even longer), and they responded "Yes, but the whole time you have working code, aware of all the special cases created over years, and that we can continue to make changes in while you refactor." 20:49
moritz: trying that ...
NotFound japhb: not a bad argument.
dalek r27519 | bernhard++ | trunk: 20:57
: [Plumhead PHC]
: Append ';' only in toplevel past:Stmts
diff: www.parrotvm.org/svn/parrot/revision?rev=27519
donaldh japhb: are you having problems with diff / merge ? 21:01
japhb donaldh: It's a matter of scale -- I need to find common snippets across dozens of modules, ranging in length from 100 lines to 10,000 21:03
O(n**2) pairwise diff will not cut it.
donaldh got you
that's a big fuzzy match problem
japhb yeah, that's why I had a notion that maybe the bioinformatics guys had solved it already. 21:04
"Find common or similar genes across N species' genomes"
davidfetter they tend to throw a lot of hardware at it and deal with the n**2 thing afaik
japhb :-/ 21:05
donaldh yep
japhb: do you have any heuristics for defining snippet length? 21:09
japhb I'm rolling that over in my head now. 21:10
donaldh the opposite of perltidy is to strip whitespace. Possibly even tokenize.
Then you can sort snippets into buckets of similar token chain length. 21:11
japhb donaldh: ooh, that's a nice trick
donaldh I have an unrelated question about namespaces 21:14
I am just learning about the parrot internals and read that all languages get their own toplevel namespace. 21:15
I played around with namespace_dump.pir to take a look. I load_bytecode 'languages/perl6/perl6.pbc' first. 21:16
NotFound Created ticket #54230 with the patch.
donaldh Is the Perl6 stuff supposed to be in the parrot namespace?
NotFound donaldh: I think Perl6 is an element of the set "all languages" ;) 21:19
japhb donaldh: every language gets a top level namespace, named after the language lowercased (so 'perl', 'python', 'apl', etc.); Parrot gets 'parrot', and as I recall people are supposed to stay out of the true root namespace. 21:20
The 'parrot' and 'perl' namespaces are on the same level, both direct children of the true root. 21:21
21:21 Theory joined
donaldh That's what I thought I read in the PDDs. 21:22
nopaste "donaldh" at 213.123.171.12 pasted "dump root namespace" (6 lines) at nopaste.snit.ch/12978 21:23
pmichaud Rakudo will eventually be in the 'perl6' namespace -- we just aren't there yet.
(or perhaps in the 'perl' namespace.)
donaldh Ah, okay.
pmichaud the issue is that we need to use some libraries that are in the 'parrot' namespace 21:24
(e.g., pge and pct)
and so we have to deal with importing/exporting symbols into the different hll namespaces
japhb beginning to wonder if 'Rakudo able to use libs in other namespaces' is the #1 most requested item 21:25
pmichaud it's not #1, but it's a bit up there
donaldh Yep. I was asking about that couple of days ago.
japhb I know at least 3-4 people have asked, just this week.
donaldh :)
japhb Although of more import to me is squashing the namespace segfault I found last night and RT'ed this morning 21:26
donaldh Does it require some fancy 'use' syntax in Perl6 ?
pmichaud ('use' syntax) we haven't decided that yet 21:27
NotFound Modules intended for usage from any language must have his own namespace?
japhb Long ago it was just 'use parrot:Foo::Bar;', but that got killed last year, IIRC
pmichaud it may end up being 'use Parrot;' followed by some other commands to import a library 21:28
NotFound Outside of the langauage they are written, I mean.
donaldh I thought i read some intertesting stuff in the Synopses. E.g. 'use Foo:from<parrot>' 21:29
pmichaud S11: The use statement allows an external language to be specified in addition to (or instead of) an authority, so that you can use modules from other languages. The from adverb also parses any additional parts as short-form arguments. For instance:
use Whiteness:from<perl5>:name<Acme::Bleach>:ver<1.12>:auth<cpan:DCONWAY>;
use Whiteness:from<perl5 Acme::Bleach 1.12 cpan:DCONWAY>; # same thing
japhb That feels a lot closer to "as complex as necessary" than "as simple as possible (and still work)" 21:31
pmichaud anyway, I'm working on the new protoobjects implementation right now in another window, so that'll be a big step towards getting us closer to importing non-p6 libraries :-)
donaldh During my namespace dumping games, I got a Null PMC access when trying to dump a PGE::Exp::Action 21:32
pmichaud it's possible, yes. 21:33
it's possible for PGE::Exp objects to have nulls in them
21:35 AndyA joined
japhb donaldh: have you found some way to get all symbols in a namespace? Using an iterator on the namespace segfaults ... 21:36
donaldh japhb: nopaste.snit.ch/12978 21:37
There is also examples/namespace/namespace_dump.pir 21:38
pmichaud I had a similar problem when attempting to iterate over LexPads
I thought I filed a ticket for it, but I can't find it now. 21:39
japhb donaldh: Hmmmm, that example might have the code I need 21:41
donaldh Only three languages are using the .HLL keyword 21:42
pmichaud (lexpads) -- not an rt ticket, just a message to parrot-porters
japhb Parrot's default namespaces have left the "export default list" functionality unimplemented. So now I have to implement it manually in PIR, bleah.
pmichaud Also, I have a feeling that the namespaces pdd needs updating.
japhb pmichaud: mayhaps 21:43
pmichaud i.e., that we should re-think the API. Parrot has evolved a lot since that was written.
so many things in the namespaces PDD probably shoudl change.
japhb nodnod
I just want a way to export a couple thousand OpenGL symbols to another namespace without either A) burdening the caller with a bunch of boilerplate, or B) needlessly creating extra GC-clogging lists of all OpenGL symbols, when that information is already available in the namespace itself. 21:45
donaldh That's a useful readout.
japhb which? 21:46
purl which is <noreply> or unwise :) or true of @array->sort
donaldh about the namespace PDD I mean.
japhb ag
er ah
donaldh I'm in 'discovery' mode at the moment. ;) 21:47
Tene purl: forget which
purl Tene: I forgot which
japhb HAH! Thanks, donaldh 21:48
donaldh ?
namespace walking?
japhb $P0 = shift iterator # Where iterator is iterating over a namespace
segfaults
purl No whammies!
japhb $S0 = shift iterator 21:49
works
pmichaud oh, because iterator is a hash
iterating on hashes has to be done with $S0 =
sorry, "because namespace is a hash"
japhb Segfaulting is the wrong way to disallow that. ;-)
pmichaud agreed. Tests welcomed. :-)
updating the rt ticket would work, too :-) 21:50
japhb I haven't spent much time in the test tree. Can you point me to an example of something that tests for segfault?
(rt ticket update) I was working on that. :-)
NotFound Someone has an example of a class trying to inherit from himself in an HLL? 21:51
pmichaud well, you don't want to test for segfault explicitly -- you want to test that shift_p_p does something reasonable when iterating over a hash
donaldh :)
japhb pmichaud: sure, but what's the boilerplate for guarding against the segfault so that further tests can continue? 21:52
NotFound Segfaulting is always wrong. 21:53
japhb NotFound: Um, I'm not sure if you meant to agree with us, or were disagreeing with something one of us said ...? 21:54
pmichaud agree. 21:55
(Not Found is saying that segfaulting is the wrong way to disallow...)
japhb OK, good. I thought so, but somehow it seemed odd timing.
NotFound I mean, there is no sense in testing explicitly for segfault, if it's segfaults is bad enough and all people know there is something very wrong. 21:56
No need for a good looking message.
pmichaud right. But we should have a test that shows that shift_p_p works when iterating on a namespace (or hash)
where "works" means "doesn't segfault". (It could throw an exception.)
but even better would be to get shift_p_p to work by returning a String PMC 21:57
NotFound Agree witht that.
So in the worst case you are testing for an exception, not for a segfault. 21:58
pmichaud right. But I think we should test for a working implementation.
it shouldn't be that difficult to implement. (caveat: the iterator code is pretty nasty.) 21:59
japhb NotFound: I was never suggesting to test directly for the segfault. Only to set up necessary protections so that a long 'make test' doesn't barf halfway through because it hits my test.
pmichaud japhb: if the test is written in perl (5), I think that's already in place.
japhb I just don't happen to know the local boilerplate, that's all.
pmichaud: OK
pmichaud i.e, each call to pir_output_is invokes a new Parrot instance. (That's part of the reason why testing is slow.) 22:00
japhb (shift_p_p returning String PMC) Is that plan that Parrot hashes will always only allow string keys? Because otherwise we may want to be returning a PMC anyway for generality.
NotFound japhb: it's reasonable, but maybe annoying a lot of people is the way to make sure the segfault is solved faster ;)
japhb pmichaud: ah, gotcha
NotFound: *chuckle*
pmichaud I don't know what Parrot hashes will do. Perl 6 hashes will require having non-string keys available. 22:01
NotFound Maybe the C++ way of iterate over pairs (key,value) is the way to go. 22:03
dalek r27520 | allison++ | pdd25cx: 22:08
: [pdd25cx] Rip out more of the old exception implementation, transition the
: Exception PMC to be more like the Task PMC, to better integrate with the
: concurrency scheduler.
diff: www.parrotvm.org/svn/parrot/revision?rev=27520
22:09 cjfields joined
japhb new ticket entered asking for PMC-keyed hashes 22:10
cjfields no smack talkin' the bioinformatics guys! 22:12
japhb cjfields: no smack talkin' here.
:-)
cjfields 8) - alright! 22:13
japhb ... and what made you think to pop in and say so? Felt a disturbance in the force? 22:14
cjfields Nope, just happened to pop in at the right time. 22:15
japhb imagines Real Programmer smack talk: "Yo mama thinks O(n**2) describes the growth of her butt each year!" 22:16
dalek r27521 | bernhard++ | trunk: 22:21
: [Plumhead PHC]
: Fiddle with indentation of generated NQP.
diff: www.parrotvm.org/svn/parrot/revision?rev=27521
22:28 Ademan joined
dalek r27522 | allison++ | pdd25cx: 22:33
: [pdd25cx] Delete now unused functions 'handle_exception' and 'create_exception'.
diff: www.parrotvm.org/svn/parrot/revision?rev=27522
r27523 | allison++ | trunk: 22:36
: [exceptions] Note additional deprecations of old exception functions.
diff: www.parrotvm.org/svn/parrot/revision?rev=27523
22:38 kid51 joined 22:40 PerlJam joined
dalek r27524 | bernhard++ | trunk: 22:42
: [Plumhead PHC]
: Simplify test for base64 encoded values.
diff: www.parrotvm.org/svn/parrot/revision?rev=27524
22:43 TonyC joined
dalek allison@perl.org | Concurrency Tasks: 22:45
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
dalek allison@perl.org | Concurrency Tasks:
link: www.perlfoundation.org/parrot/index...ency_tasks
shorten dalek's url is at xrl.us/bjqpy
22:51 nopaste joined 22:53 ruoso joined 23:16 nopaste joined
japhb When a PIR/PBC library is loaded, is there a way for the library to determine what namespace loaded it? 23:22
23:25 davidfetter joined 23:33 rotty joined, Theory joined
dalek r27525 | chromatic++ | pdd25cx: 23:37
: [PMC] Fixed attribute accessor generation for FLOATVAL PMC attributes.
diff: www.parrotvm.org/svn/parrot/revision?rev=27525
23:39 tetragon joined 23:40 rotty` joined
dalek r27526 | chromatic++ | trunk: 23:53
: [PMC] Plugged a memory leak in the Delegate PMC.
diff: www.parrotvm.org/svn/parrot/revision?rev=27526
23:53 Limbic_Region joined 23:57 teknomunk joined