Camelia, the Perl 6 bug

IRC log for #parrot, 2008-04-04

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:00 pmichaud the unofficial synopses are in pugs/docs/Perl6/Spec (iirc)
00:00 jonathan Thanks
00:00 pmichaud I'm being called away to dinner and to rebuild a (Lego) castle, so bbl
00:00 jonathan Want to have a copy on the laptop, for offline hacking.
00:00 jonathan ok, sleep here too, night.
00:03 muixirt2 joined #parrot
00:04 kid51 joined #parrot
00:24 mj41_ joined #parrot
00:27 rafl joined #parrot
00:32 Psyche^ joined #parrot
00:37 kid51 Coke ping
00:37 wknight8111 which do we use currently, PIRC or IMCC to parse PIR?
00:56 dalek r26732 | jkeenan++ | trunk:
00:56 dalek : Adjust test of conformance of PDDs to coding standards to account for HTTP addresses > 78 characters.
00:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26732
00:59 muixirt2 joined #parrot
01:12 wknight8111 actually it doesnt matter. I submitted a patch for IMCC and PIRC
01:26 cotto_work where are the 'provides' interfaces defined?
01:34 kid51 cotto_work:  Start here:  ./docs/pdds/pdd17_pmc.pod
01:35 cotto_work I did.  That tells me which interfaces exist, but isn't explicit about which VTABLE methods they guarantee.
01:36 kid51 Beyond that, I cannot say.  I merely grepped the repository.
01:37 cotto_work me too
01:37 cotto_work the problem is that none of those interface names are particularly unique
01:38 cotto_work I can make an educated guess, but I like having it spelled out
01:39 Coke SFAIK, that's not explicitly defined.
01:40 Coke If you don't find it, worth asking on list or opening a ticket.
01:40 Coke kid51: yes?
01:40 Coke kid51: I haven't had time to review the "(partially) remove revision patch" other than my previous comments.
01:43 dalek r26733 | jkeenan++ | trunk:
01:43 dalek : Slight refinement of formula for handling long, all HTTP lines.
01:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26733
01:43 kid51 Coke:  Okay, just note my most recent posting in that thread.  Thanks.
01:44 Coke hurm. I must have missed that commit.
01:44 Coke (that you refer to there)
01:44 dalek r26734 | jkeenan++ | trunk:
01:44 dalek : Bring PDD into better compliance with coding standards
01:44 dalek : (http://rt.perl.org/rt3/Tic​ket/Display.html?id=52054).
01:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26734
01:45 Infinoid if I want my %hash.keys() method to evaluate lazily, I suppose I should just return an Iterator object (or something similar), rather than hand-building a List object to return
01:45 kid51 Just posted an hour ago.  Problem is that since we last discussed this, others have been patching Parrot::Revision on assumption that we're keeping the git/svk stuff.  You'll have to make a call.
01:47 Coke looks like it was Infinoid doing some water treading until we rip it out. NBD.
01:47 Coke Plan is still to rip it all out.
01:47 Infinoid (rip it out)++
01:48 Coke medicine time, gentlemen.
01:49 Coke ->
02:26 pmichaud Infinoid: (lazy eval)  at the moment we're just doing eager evaluation and saving lazy eval for a bit later (when we have a better iterator interface for it)
02:26 pmichaud you're welcome to implement lazy eval if you want, though :-)
02:30 Infinoid bit over my head at the moment
02:31 Andy joined #parrot
02:33 Infinoid Method 'keys' not found for invocant of class 'Pair'
02:33 Infinoid funny, I thought it would be class 'Hash'.  oh well, start over.
02:39 Infinoid actually, hmm.  this is weird.
02:39 Infinoid my %hash = (a => 1, b => 2, c => 3, d => 4);
02:39 Infinoid say %hash.WHAT;
02:39 Infinoid says "Pair"
02:39 Infinoid without the assignment, it says "Hash"
02:41 particl1 joined #parrot
02:42 Infinoid should I add some 01-sanity tests for what I've done so far, or wait and hope this passes the relevant spectest once everything else is in place?
02:47 pmichaud we don't have the ability to create/initialize hashes from lists of pairs yet
02:48 pmichaud feel free to write the method, though.  :-)
02:50 dalek r26735 | infinoid++ | trunk:
02:50 dalek : [raduko] Implement %hash.keys()
02:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26735
02:51 pmichaud at some point rakudo, pct, and/or parrot will have to become smart enough to understand container types and value types
02:52 pmichaud the 01-sanity tests are intended to be the tests needed to get Test.pm running
02:52 pmichaud so if hash assignment isn't needed for the tests, it's probably not a 01-sanity test
02:52 dalek r26736 | infinoid++ | trunk:
02:52 dalek : [raduko] Implement %hash.values()
02:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26736
02:53 pmichaud also, it's "rakudo", not "raduko"  :-) :-)
02:53 Infinoid oops.  sorry about that
02:53 pmichaud raduko sounds like a new number-puzzle game :-)
02:53 Infinoid it would probably be drilled into my brain right now if the directory weren't still named "perl6"
02:55 Infinoid I wrote some tests for .keys and .values, but they weren't anything serious
02:55 Infinoid just enough to do the tests, without all the extra stuff we'd need to pass the spectest
02:56 Infinoid looking through the log, I can see I've been making that mistake a lot
03:04 pmichaud I think we probably need a 02-* directory somewhere for tests
03:05 Infinoid I haven't implemented anything yet which wasn't adequately covered (and then some) by the spectests
04:25 cotto_home there really should be a printf smart enough to deal with parrot strings
04:26 cotto_home and by "deal with" I mean "print"
04:27 Infinoid one of the nice things about writing your own printf is, you can roll your own format codes.  like %I for struct in_addrs, %P for PMCs...
04:28 cotto_home I'm right on the border of doing just that.
04:29 cotto_home in the short run it's easier to complain, but there may be some unexplored advantages in the "do it yourself, already" method
04:31 Infinoid I have an old implementation of printf I wrote years ago for a bios.  not sure it's useful in today's utf8-enabled world tho
04:34 nopaste "Infinoid" at 76.215.208.106 pasted "noidlibc's printf (releasing as public domain)" (349 lines) at http://nopaste.snit.ch/12615
04:37 Infinoid feel free to accuse me of being a bad influence.
04:37 cotto_home ok
04:37 cotto_home I'm hoping to reinvent a little bit less of the wheel
04:38 Infinoid :)
04:38 Infinoid well... glibc does have pluggable format strings, I think
04:39 cotto_home I was thinking about something closer to a wrapper around string_sprintf
04:39 cotto_home although pluggable format strings sound fascinating
04:39 cotto_home I sense several segfaults in my immediate future
04:40 Infinoid pluggable format strings are also gloriously non-portable
04:43 cotto_home I think I can do some macro silliness, but that's a cool trick with glibc.
04:45 Infinoid its been in there forever, but I've never seen anyone use it.
04:45 cotto_home Infinoid++
05:02 cotto_home finally, it works
05:05 tetragon joined #parrot
05:05 dalek r26737 | duff++ | trunk:
05:05 dalek : [rakudo] while/until statement modifiers
05:05 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26737
05:07 Infinoid pmichaud: as I mentioned earlier, I kept getting errors about keys/values not existing as methods on the Pair object.  I don't know whether those methods will be useful once parrot knows about container objects, but just in case, here's a patch.
05:07 nopaste "Infinoid" at 76.215.208.106 pasted "keys/values methods for Pair.pir" (23 lines) at http://nopaste.snit.ch/12616
05:08 * Infinoid wants to expose the Env singleton PMC as %*ENV
05:33 cotto_home crud.  I forgot what I was doing when I got annoyed by printf
05:37 cotto_home my stack sucks
05:39 Infinoid "but you should see the size of my heap"
05:40 cotto_home I can only assume that you're referring to your laundry
05:41 Infinoid or the pile of half-done projects
06:49 Psyche^ joined #parrot
07:37 iblechbot joined #parrot
07:38 pjcj joined #parrot
08:05 wknight8111 joined #parrot
08:08 integral joined #parrot
08:51 dalek r26738 | kjs++ | trunk:
08:51 dalek : [pdd29] add more stuff to pdd29
08:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26738
08:53 pjcj joined #parrot
09:16 dalek r26739 | kjs++ | trunk:
09:16 dalek : [pdd29] fix a small layout thing; add a bit to synopsis for actions; add some HLLCompiler API methods.
09:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26739
09:21 dalek r26740 | kjs++ | trunk:
09:21 dalek : [CREDITS] add a.k.a. and claim blame for some pct-based language updates
09:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26740
09:41 ruoso joined #parrot
09:50 dalek r26741 | fperrad++ | trunk:
09:50 dalek : [Lua]
09:50 dalek : - refactor (has_call_in_last_op)
09:50 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26741
11:03 kid51 joined #parrot
11:15 muixirt joined #parrot
11:57 iblechbot joined #parrot
12:15 kj joined #parrot
12:39 wknight8111 joined #parrot
12:49 skids joined #parrot
12:49 dalek r26742 | coke++ | trunk:
12:49 dalek : [docs] correct help
12:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26742
12:50 Psyche^ joined #parrot
13:19 mj41 joined #parrot
13:54 iblechbot joined #parrot
13:59 Andy joined #parrot
14:03 rdice joined #parrot
14:15 cognominal joined #parrot
14:36 dalek r26743 | fperrad++ | trunk:
14:36 dalek : [Lua]
14:36 dalek : - reorg tree
14:36 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26743
14:45 dalek r26744 | fperrad++ | trunk:
14:45 dalek : [Lua]
14:45 dalek : - update doc
14:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26744
14:56 GeJ joined #parrot
14:56 cotto_home Is there  generic way to figure out of a PMC is an aggregate from C?
14:57 cotto_home (I can use does('hash')||does('array'), but that's not particularly elegant)
14:58 * particl1 just booked tickets for yapc::na
14:58 particl1 !does(scalar)
14:58 cotto_home cool
14:58 particle is that more elegant? :)
14:58 cotto_home if it works ;)
14:58 particle actually, it's 'provides' now iirc
14:58 Tene Hm.  I need to decide if I'm going to yapc::na and schedule time off.
14:59 particle no, it's 'does'
14:59 particle cotto_home: see src/pmc/exporter.pmc, look at the globals method on line 246
15:02 jan joined #parrot
15:03 cotto_home so basically, does('hash')||does('array') is inelegant, but it's at least fairly certain to work
15:04 particle it will work.
15:04 particle as long as the pmclass declarations for the pmcs you're interested in use does
15:05 particle and they should. otherwise those pmc's aren't playing nice.
15:06 cotto_home it looks like !does('scalar') would also catch a library, but I think that can be safely ignored
15:10 peeps[work] joined #parrot
15:13 Coke given that does doesn't guarantee anything atm...
15:23 pjcj joined #parrot
16:00 teknomunk joined #parrot
16:14 PerlJam joined #parrot
16:21 Theory joined #parrot
16:22 sjansen joined #parrot
16:31 rdice joined #parrot
16:42 Tene As far as I can tell, NQP doesn't support return?
16:43 particle implicit return of last statement iirc
16:43 PerlJam what do you need return for?
16:44 Tene Ahh, covered in TODO.pod
16:45 particle that's what i should do next... implement return.
16:53 dalek r26745 | fperrad++ | trunk:
16:53 dalek : [docs]
16:53 dalek : fix make hmtl (broken since r26726)
16:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26745
17:00 * Tene playing with SDL in NQP.
17:25 barney joined #parrot
17:49 dalek r26746 | fperrad++ | trunk:
17:49 dalek : [Lua]
17:49 dalek : - refactor with Protomaker
17:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26746
18:22 Andy Things I enjoy: chromatic snarking on github
18:24 confound long walks on the beach
18:24 PerlJam s/on github//  # chromatic usually snarks well
18:27 dalek r26747 | fperrad++ | trunk:
18:27 dalek : [Lua]
18:27 dalek : - add random library
18:27 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26747
18:28 grim_fandango joined #parrot
18:30 dalek r26748 | bernhard++ | trunk:
18:30 dalek : Satisfy trailing_space.t
18:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26748
18:41 ambs joined #parrot
18:44 Andy Anyone looked at gold yet?
18:44 Andy http://google-opensource.blogspot.com/2008/0​4/gold-google-releases-new-and-improved.html
18:44 shorten Andy's url is at http://xrl.us/biwti
18:45 * ambs looks at gold
18:46 ambs sounds good
18:46 * Andy wonders how much of Parrot build time is linking.
18:47 particle i expect very little
18:47 particle <10%
18:47 Andy Interesting that it's  not separate that I can see
18:47 Andy seems only to be in binutils.
18:50 ruoso joined #parrot
19:14 Psyche^ joined #parrot
19:18 mfredrickson joined #parrot
19:54 dalek r26749 | coke++ | trunk:
19:54 dalek : [docs]
19:54 dalek : Fix PATH
19:54 dalek : Patch courtesy John Trammell
19:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=26749
19:55 Coke ... I am still waiting for that commit to come bac...
20:06 ambs_ joined #parrot
20:12 Coke never did come back. I had to kill it and cleanup. I blame kid51 for closing the svn ticket. :|
20:12 cotto_work Should a FixedPMCArray be accepting string indicies?
20:13 cotto_work atm they're being implicitly converted to int 0, which isn't exactly what one might expect
20:13 cotto_work er, ResizablePMCArray.
20:13 cotto_work probably several others too
20:14 pmichaud what about   $P0['123']  ?
20:14 pmichaud Is that converted to int 0 ?
20:14 Coke Honestly, I wouldn't want that to work.
20:14 cotto_work I'm thinking more like a['foo']
20:14 Coke yes, but pmichaud's case may be why that's in there.
20:14 pmichaud having 'foo' numify to 0 is very perlish
20:15 Coke which is why I don't want it. =-)
20:15 pmichaud you would prefer, say:   $S0 = '123'   $I0 = $S0    $P0[$I0]    ?
20:15 pmichaud doesn't that essentially do the same thing?
20:16 particle yes, but more slowly.
20:16 pmichaud if you're saying that perhaps RPA should throw an exception on a string key, I don't think I'd argue it too much
20:16 Coke I'd feel better about that. $P1['2e100'] = "boom"
20:16 cotto_work pmichaud, exactly the same thing, afaict
20:16 pmichaud well, $S0 = '2e100'   $I0 = $S0   $P0[$I0]   also results in "boom"
20:16 pmichaud cotyes, what I wrote is alexactly the same thing, but slower
20:17 Coke Someone can always provide that behavior in an HLL PMC.
20:17 pmichaud or disable it.  :-)
20:17 Coke True enough.
20:21 cotto_work I'd prefer to see more explosions by default
20:22 pmichaud as I said, I don't think I'd argue it too much.  At least not at this point, where it's not terribly important
20:22 pmichaud of more interest is the case of
20:22 pmichaud $P0 = new String;  $P0 = 'foo';   $P1 = array[$P0];
20:23 pmichaud in this case we're clearly going to numify $P0.  So there's a good argument we should do the same for string registers as well.
20:25 cotto_work where would be a good place to start fixing this?
20:26 pmichaud depends on what you mean by "fix"?
20:26 cotto_work that's true
20:27 pmichaud if you just want ResizablePMCArray to toss an exception when passed a string register or string constant as an index, then that's probably in src/pmc/resizablepmcarray.pmc
20:27 cotto_work my first instinct would be to die when a string doesn't represent a valid int
20:27 Theory joined #parrot
20:27 pmichaud if you want ResizablePMCArray to toss an exception when passed a PMC as an index (as opposed to numifying it), then PCT will probably have serious issues with that
20:28 cotto_work I want a more general behavior
20:28 cotto_work ResizablePMCArray just happened to be the Array type I was playing with at the time
20:29 pmichaud could do the same for the other array types, yes.
20:34 cout joined #parrot
20:36 cotto_work it looks like the easiest to make string_to_int explode, though I'm not sure if that would be an acceptable solution
20:37 cotto_work thoughts?
20:37 purl "I'm never here, I'm never here, I'm never here  /  never a bird, or a flower in the tree, or the pain of the respect thereof..."
20:37 cotto_work meh.  I guess it beats Warnock.
20:38 particle ->list please
20:38 pmichaud no, don't make string_to_int explode
20:38 pmichaud you mean you want to make   $I0 = $S0   stop working?
20:38 cotto_work depending on the contents of $S0
20:38 pmichaud I think that would be Really Bad.
20:38 particle extremely bad.
20:39 particle at the vm level, we know what we're doing when we write $I0 = $S0
20:39 cotto_work I figured it'd be something like that
20:39 pmichaud Parrot strings should always be able to numify.   If we want a string to explode when numified, then use a specialized string pmc for that
21:03 barney joined #parrot
21:04 iblechbot joined #parrot
21:19 rdice joined #parrot
21:26 IllvilJa joined #parrot
22:41 skids joined #parrot
22:52 Limbic_Region joined #parrot
23:25 kid51 joined #parrot

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

Parrot | source cross referenced