Camelia, the Perl 6 bug

IRC log for #parrot, 2008-05-15

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced