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