Camelia, the Perl 6 bug

IRC log for #parrot, 2010-04-03

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 Austin Coke: it thinks it's seeing a nested closure
00:01 Austin Use '{'
00:01 Austin single quotes
00:01 purl single quotes are always right slanted like '
00:02 kid51 mikehh ping
00:04 Coke Austin: ok. once I get back to NQP-only, I'll remember that. Thanks. =-)
00:04 Austin :)
00:04 nopaste "kid51" at 70.85.31.226 pasted "Patch to exempt files with '#! parrot-nqp' shebang lines from being classified as PIR files for the purpose of codingstd tests." (13 lines) at http://nopaste.snit.ch/20167
00:05 kid51 Currently, the recently contributed file t/profiling/profiling.t is causing a failure in t/codingstd/pir_code_coda.t
00:05 kid51 profiling.t has a perl6 coda, but its shebang line is currently causing it to be classified as PIR ...
00:06 kid51 ... and since it lacks a *pir* coda, it fails that codingstd test
00:06 Coke what's checking the shebang line?
00:06 kid51 I suppose the ideal solution would be a codingstd test for perl6 codas, but for now, a little patch to lib/Parrot/Distribution.pm should suffice.
00:07 Coke kid51: is it just defaulting to PIR since it can't match the shebang?
00:08 kid51 Coke:  No.  The code in Parrot::Distribution just checks for the *start* of the shebang line.
00:08 kid51 So anything with #!\s*parrot matches ... including parrot-nqp
00:09 kid51 I could find only one other file in the distro with a parrot-nqp shebang line, but since it's not a test (.t) file, it's not scanned during the test.
00:09 * kid51 is agnostic as to whether we *should* have parrot-nqp files in the distro.
00:10 Coke Yah, that's going to happen more and more.
00:10 kid51 My patch will shut up the immediate problem.
00:11 kid51 But over the long haul we probably need to define coding standards for files written in various forms of NQP, perl6, etc.
00:11 kid51 Comments?
00:11 purl Comments are lying. next_for_GC *is* the GC marking mechanism right now
00:16 chromatic I'm still not clear what problem the codas attempt to solve.
00:18 darbelo Who said there was a problem in the first place?
00:19 Austin vim wankery
00:19 Coke Austin: and emacs.
00:20 chromatic I'd like to think that precious volunteer time and effort should go toward solving useful problems.
00:20 Austin I thought the emacs cruft went at the top
00:20 darbelo vim adn emacs are big boys, they can handle it without the hand holding.
00:21 Coke chromatic: I certainly wouldn't expend much effort on them, no.
00:21 Coke but theoretically they are helpful in adhering to coding standards.
00:21 Coke (tab vs. spaces, line length). Now, I'm not willing to argue that /those/ are worth enforcing, though. =-)
00:22 kid51 The merits of the codas in general and the test for codas in particular can be debated on list.
00:22 kid51 Can I ask for focus on this particular little problem?
00:24 chromatic Anchor the regex in Parrot::Distribution to end-of-line?
00:24 kid51 You would recommend that to the negative-lookahead because .... ?
00:25 Austin Make it a \b = word break?
00:25 Coke chromatic: can't be end of line, has to deal with args, methinks.
00:25 chromatic Because who knows what other parrot-* utilities will show up in #! lines in the future.
00:25 Coke parrot($|\s)
00:26 chromatic \b would work for everything of the form parrot-*
00:27 chromatic Another idea is /parrot-?(\S)\s/, where you use the capture as a key into a hash of types.
00:27 chromatic The ending of that regex is wrong (arguments versus $), but you get the idea.
00:29 kid51 Hmm:  Simply:  parrot\b   doesn't work.
00:29 kid51 i.e., it doesn't exclude parrot-nqp from list of PIR files to be checked by that test
00:30 Austin Ah, right
00:30 kid51 The immediate goal is to say:  parrot-nqp is not PIR
00:30 Austin Because - is a non-word
00:31 Austin \s|$
00:31 Austin ?
00:31 chromatic (?:\s|$) should work in that case, if all you want to do is exclude parrot-nqp.
00:33 kid51 Yes, that works.
00:33 kid51 I'll run make codetest to exclude possibility that that borks something else, then apply.  Thanks.
00:37 mikehh kid51: pong (sorry was distracted)
00:39 mikehh kid51: there are a bunch in some of the branches - eg ops_pct
00:43 mikehh kid51: another problem in the ops_pct branch is that parrot_nqp files get attacked by perl_critic which should ignore them
00:44 mikehh and also nqp_rx files use perl6 pod not perl5 pod which also causes problems
00:44 kid51 mikehh:  Could you do a write-up of these problems and post to list?
00:46 mikehh I really meant to before, but $work has been intrudin' I should have some time over the next couple of days
00:47 kid51 I suspect a lot of problems in that branch are due to its age.
00:47 mikehh at the moment I have hopefully fixed a client;s problem, but it isd nearly 2am here and I think I need some sleep :-}
00:47 kid51 I tried to diff it against trunk more than a week ago.  The diff was enormous ... which I attributed to its age.
00:48 kid51 mikehh:  Sleep!
00:49 mikehh kid51: it was pretty good a couple of weeks ago - but I haven't look this week
00:50 mikehh kid51: mostly codetest problems left - nearly all related to nqp files
00:50 mikehh anyway mest take a break
00:50 walter joined #parrot
00:51 Coke the shebang fix might help there.
00:58 dalek parrot: r45389 | jkeenan++ | trunk/lib/Parrot/Distribution.pm:
00:58 dalek parrot: Exclude files with '#! parrot-nqp' shebang lines from list of files reported
00:58 dalek parrot: as PIR and therefore subjected to PIR coda codingstd test.
00:58 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45389/
01:08 jan joined #parrot
01:15 dalek rakudo: 13a7610 | (Solomon Foster)++ | t/spectest.data:
01:15 dalek rakudo: Turn on S03-metaops/reduce.t.
01:15 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​3a761062ab14e1b4a92b756242e8c9ce13445d9
01:33 dngor_ joined #parrot
01:41 dngor joined #parrot
01:48 dngor_ joined #parrot
01:55 Psyche^ joined #parrot
01:56 Mokurai joined #parrot
01:57 Mokurai joined #parrot
02:01 dalek rakudo: ed9deae | jonathan++ | src/Perl6/Grammar.pm:
02:01 dalek rakudo: Enforce zone constraints in signatures, so we can't end up with requireds after variadics, etc.
02:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​d9deae4009b870b61482c6a15cd26fe0cb6441a
02:01 dalek rakudo: 16273e1 | jonathan++ | t/spectest.data:
02:01 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
02:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​6273e1968e728b265f4e059dbd3ab01c1273697
02:24 Austin Without mentioning any names, I'm reading this Pragmatic series book about parsing, and I swear every time I read this guy's source it deepens my conviction that academics can't code.
02:30 kid51 What do you find objectionable in his code?
02:30 Austin A slew of things.
02:30 Austin For example, 1 letter global variables.
02:30 Austin 'p'
02:30 kid51 Ugh!  Doubly offensive!
02:31 dalek rakudo: e50ff8c | (Solomon Foster)++ | src/core/metaops.pm:
02:31 dalek rakudo: Refactor the reducewith code a tad (could still use more) and extend triangle mode to chaining mode.
02:31 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​50ff8cb3400da8872b241f479c09ce7a7c89871
02:31 Austin Or, his "scope" class that has a "get containing scope" method.
02:31 Austin Because, of course, every scope has a containing scope, and it has exactly one.
02:32 Austin This isn't the first of his books I've read - my grudge has taken a while to develop.
02:33 Austin But it's an academic thing. I think they all get that way.
02:33 kid51 (Assuming we're talking about the same book,) at least the subject matter is relevant to Parrot.
02:33 Austin Essentially, "my whole career is built around this algorithm" which leads to "I don't need to provide clear names for myself."
02:34 Austin But it also leads to "if you take the time to learn my stuff, you should be my grad student/slave"
02:34 Austin So maybe from an economic viewpoint, they're dis-incentivized to write good code...
02:35 Austin Or maybe they've never had a boss or tech lead stick a boot up their ass and say, "Write better code, jackass."
02:35 * Austin shrugs.
02:37 Austin Part of the benefit of open source may be that a huge volume of n00b questions go away if you write clearly.
02:39 Austin Whoa.
02:40 Austin As far as I can tell, the "name" vtable is only called from the typeof opcode. Is this right?
02:43 chromatic That doesn't sound right, no.
02:47 dalek tracwiki: v4 | Austin_Hastings++ | Parrot%20Dictionary
02:47 dalek tracwiki: Added 'name' vtable entry.
02:47 dalek tracwiki: http://trac.parrot.org/parrot/wiki/Parro​t%20Dictionary?version=4&action=diff
02:49 Austin Well, extend_vtable.c calls it (essentially providing an API for it), multidispatch.c calls it for printing a debug message, various pmc types call it (bignum, bigint, capture(SELF), default) all in a diagnostic context.
02:49 Austin But that seems about it.
02:51 * kid51 must sleep
02:51 purl $kid51->sleep(8 * 3600);
02:52 * Austin sings, "Well ce soir, for a change, it will all be made clear..."
02:54 janus joined #parrot
02:55 lucian joined #parrot
03:02 darbelo My irssi said "Day changed to 03 Apr 2010"
03:02 darbelo That translates to "The proposal gets mailed after I sleep"
03:03 darbelo See y'all tomor^W later today.
03:58 sorear What's the best way to present a hash interface to Parrot with the restriction that you can only have 1 active iterator at a time?
04:03 Austin Put a guard in the get_iterator (see 'iter' opcode) vtable function?
04:11 Austin Hmm.. somehow I expected that writing a method called 7   test_resolve()    would be more complicated...
04:16 Andy joined #parrot
04:22 Mokurai1 joined #parrot
04:23 Mokurai joined #parrot
04:43 sorear Austin: The guard can't know if other iterators are live...
04:43 sorear and it can't detect the case where the native interface is also used
04:44 Austin Then make the iterator a singleton, I guess.
04:58 Austin Boy, it's really irritating when the test case uncovers a bug and I waste a bunch of time looking for the problem with the testcase...
05:03 cognominal joined #parrot
05:07 dalek parrot: r45390 | petdance++ | trunk/src/pmc (2 files):
05:07 dalek parrot: consting and removed old history
05:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45390/
05:07 dalek parrot: r45391 | petdance++ | trunk/src/gc (3 files):
05:07 dalek parrot: removing unused args from static funcs
05:07 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45391/
05:42 sorear Austin: How do singletons work?
05:42 Austin ?
05:43 Austin A singleton is a class with only one instance.
05:43 sorear That's what a singleton /is/
05:43 Austin Yeah.
05:43 Austin How you implement it is up to you.
05:43 sorear I want to know how they work in Parrot
05:43 sorear oh, up to me
05:44 Austin Yeah. There's a 'singleton' keyword in the pmc stuff, but I don't think it does anything.
05:54 cotto There's some oddness in how singleton PMCs work.  I remember that darbelo ran into a bit of it last gsoc.
05:56 sorear the really extra special horrible thing about p5 hash iterators is they don't even check errors
05:56 sorear if you iterate through a hash, and somewhere higher up on the call chain an iteration is ongoing, the higher iteration will see a false end of iteration
06:10 iblechbot joined #parrot
06:16 Austin sorear: Why is this any kind of issue? Aren't you just proxying for the p5 object and passing everything through?
06:17 sorear Austin: Because I want to shield Parrot code from the bad design of p5
06:17 Austin That's probably a mistake.
06:18 Austin Let the suckage shine through. At least that way, all the #parrot guys can point at it and say, "That one isn't our fault!"
06:27 Coke git++
06:35 particle joined #parrot
06:44 dalek tracwiki: v162 | sophi++ | WikiStart
06:44 dalek tracwiki: http://trac.parrot.org/parrot/wiki/W​ikiStart?version=162&action=diff
06:49 Coke Austin: what's your TZ?
06:49 purl your TZ is EST5EDT or canonically -0500 modulo daylight savings
06:49 Austin ^^
06:50 Coke you're up as late as I am. =-)
06:50 Coke I have some crappy but functional NQP I'm about to commit..
06:50 Austin Woo-hoo.
06:50 Austin lreplace?
06:51 Coke TclList's get_string
06:51 Austin Ah, right.
06:55 Coke feel free to clean it up a bit.
06:56 Coke pushed.
06:56 dalek partcl-nqp: 3749f5a | Coke++ | src/ (2 files):
06:56 dalek partcl-nqp: Convert TclList's 'get_string' vtable from PIR to NQP
06:56 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/3749f5a1873fb3c57f3815be8254f6328908e3da
06:58 Austin mmm..149 deleted
06:59 Austin That's what we like to see..
06:59 Coke yah, but I added 100 back in. =-)
07:00 Coke Can probably make that more idiomatic.
07:00 Austin Heh... my $self := self
07:00 Austin You know this is going to be good...
07:00 Coke ah. that can probably go.
07:00 Coke that was so that I could get at self inside the Q:PIR {} that's not there anymore.
07:00 Austin Oh.
07:01 Coke ISTR the find_lex didn't work on 'self'
07:01 Austin FYI, 'self' is a lexical - you can just do "find_lex 'self'"
07:01 Coke There were issues. Could have been something else.
07:02 Coke anyway, it's in NQP now, make test doesn't fail anything new, so I'm -> zzz. Have fun if you like. =-)
07:03 Coke (otherwise I'll clean it up tomorrow)
07:03 Austin g'night
07:20 dalek parrot: r45392 | petdance++ | trunk (3 files):
07:20 dalek parrot: shimming up more dummy arguments
07:20 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45392/
08:45 mib_iz4cn1 joined #parrot
08:51 riffraff joined #parrot
10:01 dalek rakudo: d906f51 | (Solomon Foster)++ | src/core/metaops.pm:
10:01 dalek rakudo: Add generic version of reducewith that treats its argument as a list, to allow the [+] 1 case to work.
10:01 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​906f517613ba839cb6a0db6fc23629ddbd4551d
10:23 TiMBuS joined #parrot
10:25 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32985), fulltest) at r45392 - Ubuntu 9.10 amd64 (g++ with --optimize)
10:46 payload joined #parrot
10:46 payload joined #parrot
10:48 payload joined #parrot
10:49 payload joined #parrot
10:54 Whiteknight joined #parrot
11:04 dalek rakudo: 020a6a3 | (Solomon Foster)++ | src/core/metaops.pm:
11:04 dalek rakudo: Change reducewith triangle case to lazily return values.
11:04 purl dalek: that doesn't look right
11:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/0​20a6a30632a2aef35001a14e75b9e2e31629f8e
11:05 Whiteknight good morning, #parrot
11:28 payload joined #parrot
12:09 payload joined #parrot
12:19 ruoso joined #parrot
12:34 kid51 joined #parrot
13:11 dalek parrot: r45393 | NotFound++ | trunk/src/pmc/callcontext.pmc:
13:11 dalek parrot: use init_int in get_named_names
13:11 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45393/
13:14 lucian joined #parrot
13:14 leprevost joined #parrot
13:25 Coke colomon?
13:33 Coke colomon is Solomon Foster
13:33 Coke ... wtf. svn still hasn't come back.
13:33 Coke ww.
13:37 Whiteknight ?
13:37 Coke ww = wrong window
13:38 Coke (different svn repo)
13:40 Coke here's some parrot fun - get the latest partcl-nqp, latest parrot; build partcl, then ./partcl t/cmd_incr.t - it will occasionally fail due to, I think, hashing order.
13:44 dalek partcl-nqp: 93eaba7 | Coke++ | src/TclList.pm:
13:44 dalek partcl-nqp: remove unused var. combine some similar if paths.
13:44 dalek partcl-nqp: review: http://github.com/partcl/partcl-nqp/commit​/93eaba7649609d39910cddad30b9a7486807ff7e
14:02 Mokurai joined #parrot
14:12 dngor joined #parrot
14:17 tetragon joined #parrot
14:31 cognominal joined #parrot
14:52 fperrad joined #parrot
15:06 fperrad_ joined #parrot
15:06 riffraff joined #parrot
15:16 dngor_ joined #parrot
15:58 theory joined #parrot
16:01 Austin joined #parrot
16:19 arnsholt joined #parrot
16:20 arnsholt For PAST nodes that take a value, is there a way I can tell them that they should take a null PMC value?
16:44 Austin arnsholt: I doubt it.
16:45 arnsholt Right
16:46 arnsholt Here have a patch: http://paste.lisp.org/display/97274
16:46 arnsholt NQP ignores bare returns, and I set out in an attempt to make them work. That patch is what I've managed to do
16:47 arnsholt Essentially, looking up a global undef in the empty namespace and returning that. Works as long as noone defines a function called undef...
16:47 Austin Heh.
16:47 arnsholt Any ideas how it can be made better?
16:48 Austin Autoviv an Undef pmc?
16:48 arnsholt Should work, I suppose. How do I do that? =)
16:49 Austin PAST::Val with autoviv
16:49 Austin Or maybe just 'returns'. Bide..
16:49 darbelo joined #parrot
16:50 Austin Maybe PAST::Val.new( :returns('Undef') )
16:53 arnsholt Hmm. Complains about missing :value attribute
16:54 arnsholt Setting an empty :value() makes it return an actual value
16:54 Austin Really?
16:54 Austin It ignores the 'returns' setting?
16:55 arnsholt Looks like. say(foo()) prints out 0, at any rate (where foo() just does a bare return)
16:56 Austin Yeah, but what's the generated pir like?
16:56 arnsholt D'oh. Should've figured that one out
16:56 Austin If you're doing say(foo()), you're already doing something wrong - since a "return ;" implies no value.
16:57 Austin And like any other CPU, parrot may well just pull stuff out of a register
16:57 arnsholt Yah
16:57 Austin (Although it really ought to die)
16:57 arnsholt Yeah, that was my intuition
16:58 arnsholt But it looks like it's working, actually
16:58 arnsholt The code says .return (), which I suppose is interpreted as an empty list
16:58 Austin For some value of list, yest.
16:58 Austin *yes
16:58 arnsholt Except I'm reading the code wrong
16:58 Austin In this case, the list is of values to return.
16:59 Austin Seems like a winner.
16:59 Austin And it's one of my TT's, to boot.
16:59 arnsholt NQP does returns and the like with exceptions. It really is setting the return value to 0, looks like
17:00 arnsholt assign $P17, 0 # Where $P17 holds the return value stored in the control exception
17:00 Austin Okay.
17:01 Austin That's acceptable, I guess.
17:01 Austin TT#1464
17:02 arnsholt Oh, there it is
17:03 arnsholt And it's not just in nested blocks. sub foo() { return; return 42; } will return 42
17:03 arnsholt The bare return is interpreted as lookup of a hll_global named return
17:03 Austin yeah
17:03 Austin Because the parser knows that the return keyword takes an argument.
17:04 arnsholt Yup
17:04 arnsholt return is a prefix operator, in fact
17:05 Austin Okay, *that's* weird.
17:05 arnsholt A bit I suppose. But it's mainly a convenience I think
17:06 Austin For whom?
17:06 purl for thee!
17:06 arnsholt Heh. For the implementer, I'd guess
17:09 patspam joined #parrot
17:14 darbelo joined #parrot
17:24 Austin Here's a behavioral item that p6 apparently missed: attribute classes.
17:25 Austin (Not sure that's the right name for it.)
17:26 Austin Basically, if I have an attribute, "name" and it has a certain set of supported behaviors (get_name, set_name, etc); and then I have a different attribute, "type", which also has supported behaviors (get_type, set_type).
17:26 Austin How can I automate that?
17:27 arnsholt I've no idea. You should ask #perl6
17:27 Austin I know that C# has some limited support for this, but what I'm thinking about is a formalism. Is there some way that I can specify "go and implement SimpleScalarAttribute semantics for 'name' and 'type'" without having to copy/paste/replace?
17:27 arnsholt They usually know =)
17:28 Austin I think I already do know. (You can't.) And I'm more concerned about nqp than perl6.
17:29 Austin But it's worth a shot.
17:31 Austin Only 2 users on #perl6 ? Am I on the right server?
17:32 arnsholt #perl6 is on freenode
17:33 Austin joined #parrot
17:34 hicx174 joined #parrot
17:34 Austin joined #parrot
17:38 Austin This still work?
17:38 Austin I guess so.
17:39 darbelo FSVO "This"
17:40 darbelo opbots trust Austin
17:40 slavorg Ok
17:40 slavorgn But I don't trust you there, darbelo
17:41 Austin Heh
17:41 Austin What's the difference between org and orgn?
17:41 darbelo orgn doesn't trust me?
17:47 hicx174 joined #parrot
18:05 dngor joined #parrot
18:06 Austin opbots trust darbelo
18:06 slavorg But I already trust darbelo
18:06 slavorgn But I don't trust you there, Austin
18:06 Austin Heh
18:06 Austin orgn doesn't trust many...
18:06 Austin slavorgn++
18:08 Whiteknight joined #parrot
18:10 cotto opbots trust darbelo
18:10 slavorg But I already trust darbelo
18:10 slavorgn Ok
18:10 cotto phenomenal cosmic power
18:11 darbelo (phenomenal cosmic power)++
18:17 Austin Apparently, the thing that will let me do the thing I want is a "trait"
18:17 Austin Which is implemented as a role.
18:22 Austin Something like "does Accessor" where Accessor (or a sub-{class,role}) implements the 'does' method to edit either the attribute or the class.
18:23 Whiteknight good afternoon, #parrot
18:23 Austin Hello, Whiteknight
18:23 Whiteknight hello  Austin
18:24 Austin So if I say "has $!foo" that implies that there's an Attribute role out there, with multi sub trait_mod:<has>($declarand) {...]
18:25 Austin Then I could either say "has $!foo is <<some kind of accessor class>>"
18:25 Austin Or "has $!foo;  <<accessor-method>> $!foo <<details>>"
18:25 Austin Or "<<has-accessor-type>> foo;"
18:26 Austin seen pmichaud?
18:26 purl pmichaud was last seen on #parrot 7 days, 21 hours, 56 minutes and 50 seconds ago, saying: Austin: I haven't had any experiences like what you describe.  [Mar 26 20:29:55 2010]
18:26 davidfetter joined #parrot
18:27 Austin Woo-hoo! The new insurance forms are here!
18:27 Austin And cable straps!
18:27 Austin *cable straps!*
18:27 * Austin heads for the basement...
18:29 Austin Hmm
18:29 Austin What's a good method name for "go modify the namespace of this class in whatever way is appropriate for you?"
18:30 Austin Install?
18:30 purl Install is probably extremely finicky...i ended up using the RPM, but of course that is just pure trash...I am through with postgres!!!
18:31 Austin Actually, it's a role. So "compose" but with a parameter. Woot.
18:31 Austin Actually, COMPOSE since it's magic.
18:32 Austin Which makes roles into just another (meta) class. Yikes.
18:33 Austin Hey, Whiteknight, do you feel like rewriting all the PMC types for me?
18:33 Whiteknight Austin: yeah, sure. I
18:33 Whiteknight 've got 20 mintues free tonight
18:33 Austin Man, you rock.
18:34 Austin Here's the thing. I started to say this before, but got distracted.
18:34 Austin All the PMCs are currently built on a prototype-based approach.
18:34 Austin A PMC, as seen in *.pmc, shows what an object would look like.
18:34 Austin I think they should be class/object based.
18:35 Whiteknight No argument there
18:35 Austin That is, pmc types become classes (instances of Class.pmc), and they manage the vtables and whatnot for their objects.
18:35 Whiteknight finding a way to do it that isn't performance shittacular is a problem
18:35 Austin Nope.
18:35 Austin 0 performance cose.
18:35 Austin *cost
18:35 Whiteknight nope to the is-ope?
18:35 Austin The vtable for a foo pmc object would still be the same.
18:36 Austin But the Foo namespace would have a class backing it up.
18:36 Austin And thus, no more pmcproxy.
18:37 Austin That's the first 20 minutes.
18:37 Whiteknight okay, what does this magical backing class look like? What does it do that PMCProxy does not?
18:37 Austin It looks a lot like class.pmc.
18:38 Austin Or an instance thereof.
18:38 Austin And it *is* a class, so pmcproxy is no longer needed.
18:39 darbelo Make all C PMCs extend class?
18:39 Austin Essentially, yes.
18:39 Austin Except for maybe three.
18:39 particle1 joined #parrot
18:40 darbelo I doubt it'll be that easy. I'dbe delightedto be proven wrong ;)
18:40 Austin (Object, Class, and one more, to be named later)
18:40 Austin Of course not - after all, there's a bajillion places where the encapsulation gets violated..
18:40 payload1 joined #parrot
18:41 Austin What I need is a grad student.
18:41 Austin Someone who will do what I ask them without getting paid...
18:41 * Austin needs tenure...
18:42 kid51 joined #parrot
18:42 darbelo You could try selling it as a Summer of code Project...
18:42 payload joined #parrot
18:42 Austin Nah. This would be a full-time thing.
18:42 Austin I'm not going to run out of ideas in August.
18:43 Austin Is there a Google "Year of Drudgery" program?
18:43 darbelo Not that I know of.
18:43 darbelo Let me know if you find one.
18:43 Austin Dear Google, ...
18:44 Austin Find some third-world hacker, convince him that 419 scams aren't making much of a living, and move him into my basement.
18:44 Austin (While you're down there, install these cable straps!)
18:44 Austin Once a month I'll send him to the strip club with $50...
18:45 Austin Feed him rice and Mountain Dew...
18:45 Austin Okay, back to kakapo
18:45 darbelo Feed him once a month?
18:46 darbelo You cheap bastard.
18:47 chromatic joined #parrot
18:47 dukeleto Austin: i don't find jokes about "third-world hackers" that funny
18:48 Austin Why is that, Duke?
18:48 Austin (Please don't tell me you're a grad student...)
18:51 Austin Aww, man.
18:51 Austin Suddenly I need P6metarole?
18:51 dukeleto Austin: i was a grad student in a past life
18:52 Austin dukeleto: Were you a CS grad student?
18:52 dukeleto Austin: i am not *that* stupid
18:52 Austin :)
18:52 Austin Chem-E?
18:52 dukeleto Austin: good old Mathematics
18:52 Austin Ah.
18:53 Austin "Here, boy. Fill out this proof for me..."
18:55 dukeleto Austin: i know that you meant no harm with your joke, but many GSoC students apply from what you call "third-world" countries. I find the insinuation that you can treat people from these countries in a degrading way offensive.
18:55 dukeleto Austin: and many people read these logs.
18:57 dukeleto Austin: i was more into finding exact analytic solutions to nonlinear hyperbolic partial differential equations, and not so much concerned with epsilon-delta proofs
19:02 kid51 Austin:  I second dukeleto.  You wouldn't last 20 minutes at my $job with remarks like that.
19:03 Austin You lucked out, then, duke. When I was in school, I took some grad level courses, and it was clear that a bunch of my classmates were being used as connect-the-dots drudges by the math profs.
19:05 Austin (One of the reasons I got out of the program..)
19:05 dukeleto Austin: i got treated like shit in grad school, too. You are not special in that respect. I think it is pretty much universal
19:06 dukeleto Austin: i escaped grad school early as well.
19:07 dukeleto Austin: my original thesis advisor, to make me feel better, told me stories about "the old days." Where you would get put in a closet with a chair, table, a single lightbulb and a pencil. And no pencil sharpner.
19:07 Austin Heh
19:08 dukeleto Austin: i ended up firing him and got a new advisor :)
19:09 Whiteknight I fired my first advisor too
19:09 Whiteknight it was pretty liberating, though my first advisor never spoke to me again
19:09 dukeleto Whiteknight++
19:10 dalek rakudo: 1935270 | moritz++ | t/spectest.data:
19:10 dalek rakudo: we now pass catch.t
19:10 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​935270ae31e85f7dbc6846b4da808920114acbc
19:10 dukeleto Whiteknight: i did one better, and fired my first advisor and chose his ex-post-doc. They were on a no-speaking-arrangment, but they both had to go to my defense. I had to be the middleman because they would not talk directly to each other.
19:10 Whiteknight my first advisor wanted me to write up a weekly, multi-page status report. And if the status report wasn't long or detailed enough, I would have to rewrite it
19:11 dukeleto Whiteknight: they also had offices directly next to each other. Pretty epicly awesome.
19:11 Whiteknight I spent so much time writing and rewriting status reports that I was never able to improve my status
19:11 Whiteknight dukeleto: sounds like a bad sitcom
19:11 dukeleto Whiteknight: it was a really bad sitcom
19:11 Austin (And to any Google Year of Drudgery applicants reading these logs: I apologize if my comments offended you in any way, and for implying, to any extent, that your experiences in the Year of Drudgery program or with other US corporate or public outreach programs will be anything other than unicorns and daisies.)
19:12 Austin Heh
19:12 Austin So you had to walk from the left end instead of the right end of the hallway?
19:12 Austin Or were the doors always closed?
19:13 dukeleto Austin: mostly closed doors and lots of awkwardness
19:13 dukeleto Austin: i think we might want to run with the "Parrot Year of Drudgery" concept. Could be a winner ;)
19:13 Austin Sadly, no funding.
19:14 Austin If this was 2000...
19:14 Austin We could just do an IPO
19:14 Austin Perfume.com!
19:14 Austin Powered by parrot!
19:14 Austin The internet is ripe for scent-based commerce...
19:14 chromatic It worked for Ruby.
19:15 Austin :)
19:15 dukeleto Austin: we can just pay in "Parrot dollars", which can be traded in for karma.
19:16 Austin Heh
19:16 chromatic http://rubysoc.org/ sponsored by Axe Body Spray
19:16 Whiteknight 30 parrot dollars = 1 karma
19:16 Whiteknight 10,000 karma = half a donut
19:16 Austin Yikes.
19:16 Whiteknight and for those exchange rates, it better be glazed or boston creme
19:16 Austin $100,000 = 20 interns?
19:17 Austin Hmm
19:17 Austin $20k/year.
19:17 Austin I could do that.
19:18 Austin That's $8,000 in property taxes and health insurance, and $1k/month for internet and strippers...
19:19 darbelo Dude, I could finnace my presidential campaign with that.
19:19 Austin President of what?
19:19 Austin PaFo?
19:19 purl it has been said that PaFo is the only entity that owns the *entire* work, so it's the only entity that can distribute Parrot or the parrot foundation
19:20 Austin Heh
19:20 Austin "Chargify: You Build. We Bill."
19:20 davidfetter joined #parrot
19:20 Austin Sounds like my municipal government.
19:24 Austin Oh, woot. That's for two months.
19:24 Austin So $30k/year.
19:24 Austin Anyone want to cough up $30k for Kakapo?
19:29 Whiteknight no
19:29 Whiteknight :)
19:30 Austin Yeah, that's the problem.
19:33 Whiteknight of course, nobody would want to donate any money to Matrixy, Parrot-Linear-Algebra, or Parrot-DataStructures either
19:33 Whiteknight so don't feel bad
19:33 darbelo I got paid for decnum-dynpmcs ;)
19:33 darbelo Suckers.
19:33 cotto and I got a shirt
19:34 cotto ha
19:34 * Austin glares at darbelo...
19:34 darbelo Not my fault you graduated, dude.
19:34 Austin opbots disrespect cotto
19:35 Austin Man, that trick never works...
19:35 Whiteknight purl disrespect cotto
19:35 purl Whiteknight: excuse me?
19:35 Whiteknight damnit
19:35 darbelo Disrespect is purl's domain.
19:36 Austin Another feature requirement..
19:36 darbelo The opbots know better than to mess with her.
19:38 Austin For a 'role', what is the analogous term to 'parent' for a class?
19:38 Austin That is, a class may have one or more parent classes. A role may compose one or more ____ roles ?
19:39 Austin composant? composing? composed? parent? ancestor?
19:41 chromatic (null)
19:42 chromatic There is no analogous term.
19:42 Austin And yet I need one.
19:42 Austin To give a name to the optional parameter...
19:42 Austin P6metarole.register('NewRole', :roles(a, b, c)) ?
19:43 Austin wfm
19:58 joeri joined #parrot
19:59 sorear Austin: re. #perl6: Check out MooseX::FollowPBP on CPAN
19:59 sorear Austin: it hasn't been backported to 'real' Perl6 yet, I don't think any Perl6 implementation covers enough of the metamodel (yet!)
20:04 dalek parrot: r45394 | mikehh++ | trunk/config/gen/makefiles/root.in:
20:04 dalek parrot: add runtime/parrot/library/ProfTest/*.pbc files to be cleaned
20:04 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45394/
20:22 dngor joined #parrot
20:26 kid51 joined #parrot
20:48 mikehh kid51: how do you get svn status to ignore generated files
20:49 chromatic I thought someone fixed the CSS in Trac so that the coloring of diffs was visible.
20:55 mikehh chromatic: does for me
20:55 chromatic Pink and pale green don't work for me.
20:55 mikehh 'k
20:58 mikehh when I do an svn status before cleaning I get all the runtime/parrot/library/ProfTest/*.pir and *.pbc files (8 of them) displayed with a ? - how do I prevent this
21:00 mikehh they are generated by make
21:00 kid51 mikehh:  You have to set the svn:ignore property in the directory where those files are generated.
21:01 Whiteknight chromatic: it's my experience that most software isn't built with the "differently-seeing" in mind
21:01 kid51 I always have to RTFM to find out the exact syntax
21:01 kid51 I know it's some variant of 'svn propedit'
21:01 chromatic Any software that requires me to patch my retinas with rat stem cells is broken.
21:02 mikehh ah - in the directory - I tried from the parrot base directory
21:02 mikehh withe the <PATH>
21:02 mikehh let me do that
21:04 Whiteknight chromatic: we had a huge problem at my work, a contractor setup some of the manufacturing software to turn green on success, red on failure, and with absolutely no textual status indication
21:04 Whiteknight needless to say, hilarity ensued when we shipped a number of units which failed testing, but the testers didn't know it
21:04 Whiteknight doesn't help that the instructions said "When the tool is successful, it looks like this:"
21:05 mikehh kid51: it informs me the file is not under version control
21:06 mikehh do you have to add it then ignore it
21:07 mikehh damnit I have done this before but not recently
21:08 mikehh too much git :-{
21:09 Austin mikehh: The operation is on the directory, not files. If the directory is not under vc, then ignore the entire directory from a higher-level dir that is under vc
21:10 Austin svn propset svn:ignore "ProfTest" runtime/parrot/library
21:10 Austin or
21:10 Austin svn propset svn:ignore "*" runtime/parrot/library/ProfTest
21:10 Austin if that works
21:10 cotto I think you'll want *.pir and *.pbc
21:11 mikehh 4 files in the directory - *.nqp ARE under version control - the *.pir and .pbc files are generated from them
21:14 Austin Man, if there is anything more annoying than getting your wire measured out, running it, strapping it down, and then coming up a couple of inches short, I hope I don't find out what it is until tomorrow. :(
21:15 Austin If the directory has files under vc, then the directory is under vc. So:
21:15 Austin svn propset svn:ignore '*.pir\n*.pbc" runtime/parrot/library/ProfTest
21:16 Whiteknight Austin: Almost any time I need wire I measure it, measure it again, and then take an extra armlength or two before I cut
21:16 Whiteknight you can always cut shorter, you can never cut longer
21:16 Austin Whiteknight: Yeah, me too.
21:16 Austin Which is what makes it so annoying.
21:16 Austin Except that I didn't cut.
21:16 Austin I just had to inchworm four inches of wire through umpty-ump cable straps.
21:17 Austin Each one of which is apparently surrounded by self-guided intelligent dust that aims for my eyes and nose..
21:18 Austin But, on the plus side, the basement is now wired for surround sound.
21:19 Austin And thanks to the miracle of wireless USB, I can now *crank* my itunes...
21:19 Austin (while simultaneously printing in the background. woot)
21:20 Austin sorear: Thanks for the moosex pointer.
21:20 Austin Heh, say that three times fast...
21:24 kid51 mikehh:  If you haven't gotten it yet, consult:  http://svnbook.red-bean.com/en/1.1/ch07s02.html about halfway down the page
21:33 kid51 I think I've got it.  Doing a commit.
21:34 darbelo Hm. How bad would it be to make the global NFG grapheme table a PMC?
21:34 kid51 mikehh:  See if r 45395 works for you.
21:35 darbelo Wait, can I even instantiate PMCs that early in the game?
21:35 Austin Heh
21:35 Austin Just look them up by name..
21:35 Austin All you need is a string..
21:35 Austin :)
21:36 kid51 Better still:  r45396
21:36 darbelo I guess I'll be fine so long as nobody passes a russified servo-croat option on the command line ;)
21:37 kid51 ... wherein I say, "SVN: ignore all .pbc files in this directory."
21:37 Austin Careful, darbelo. Ignore the croats at your peril..
21:38 darbelo Have I mentioned that unicode sucks?
21:39 sorear Would you prefer ISO-2022?
21:39 darbelo But the alternatives suck workse.
21:40 darbelo If only we could encode all of the characters in the world in a byte...
21:41 Austin We just need to make more movies..
21:41 Austin Eventually, English takes over and everything fits < 0x7f
21:42 darbelo You'll pry
21:42 Austin pry?
21:42 darbelo 'LATIN CAPITAL LETTER N WITH TILDE' from the Real Academia's dead hands boy.
21:43 dalek parrot: r45395 | jkeenan++ | trunk/runtime/parrot/library/ProfTest:
21:43 dalek parrot: Set svn:ignore on 4 generated files in runtime/parrot/library/ProfTest/.
21:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45395/
21:43 dalek parrot: r45396 | jkeenan++ | trunk/runtime/parrot/library/ProfTest:
21:43 dalek parrot: Modify the svn:ignore property on runtime/parrot/library/ProfTest/ to specify pattern:  *.pbc.
21:43 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45396/
21:50 Austin Heh
21:50 Austin darbelo++
21:50 Austin "cold dead fingers"
21:50 darbelo Yeah, those.
21:50 purl yeah, those are sweet.
21:50 darbelo My English isn't all here today.
21:51 darbelo Also, you need to wait for the last generation of non-ascii named people to die off.
21:52 darbelo Oh, and the extintion of the argentinian Ñandú, among others ;)
21:52 cotto There's a more proactive approach, though I wouldn't recommend it.
21:52 darbelo My name is all ascii. I'm not worried.
21:53 cotto I'm safe for now, but what if I decide to spell my name with a dotless i?
21:54 darbelo Then you're asking for it.
21:55 Austin Just use a 1 instead
21:56 darbelo Oh, and stay clear of ligatures too. Those are rather high on my hate list.
21:56 * NotFound_gf is Julián, with &aacute;
21:57 NotFound_gf Sounds much better that the lame 'Julian' english.
21:57 darbelo You mean 'LATIN SMALL LETTER A WITH ACUTE', but I agree ;)
21:58 NotFound_gf I'm thinking about implementing the html encoding in parrot, just to make worse the multibyte charecter thing.
22:02 chromatic You do that and we'll take away your birthday, or give you extras.
22:04 mikehh kid51: it needs to be a newline separated list with *.pir and *pbc
22:04 dalek rakudo: 93fa3d5 | jonathan++ | src/Perl6/ (2 files):
22:04 dalek rakudo: Implement interpolation of method calls, array indexing and hash indexing in strings. Needs a workaround due to <after> being NYI.
22:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/9​3fa3d5561df1122a32c3b6d985dc75394ad4d84
22:04 dalek rakudo: 84fcbbc | jonathan++ | t/spectest.data:
22:04 dalek rakudo: Merge branch 'master' of github.com:rakudo/rakudo
22:04 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/8​4fcbbc6446b4df4cbf37a21d3079bb146073d5b
22:05 cotto Mmmm.  More birthday cakes.
22:07 snarkyboojum joined #parrot
22:12 kid51 mikehh:  Are any *.pir files in that directory generated as well (and therefore need to be ignored).
22:12 kid51 ?
22:13 kid51 If so, you can try that out yourself:  svn pe svn:ignore  runtime/parrot/library/ProfTest/
22:14 kid51 As a former typographer ...
22:14 * kid51 has a special fondness for ligatures and dotless i's.
22:15 darbelo I like how they look. Not how they encode.
22:15 darbelo I feel like it's trying to encode *kerning* into plain text.
22:16 dalek parrot: r45397 | mikehh++ | trunk/runtime/parrot/library/ProfTest:
22:16 dalek parrot: set svn:ignore to +.pir and +.pbc on runtime/parrot/library/ProfTest
22:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45397/
22:16 dalek parrot: r45398 | mikehh++ | trunk/MANIFEST.SKIP:
22:16 dalek parrot: regenerate MANIFEST.SKIP
22:16 dalek parrot: review: http://trac.parrot.org/parrot/changeset/45398/
22:16 darbelo But what the hell do I know about that? I like typing in fixed width fonts.
22:18 * kid51 remembers the days when typewriters *only* had fixed-width fonts
22:18 * darbelo learned to type on a Remington.
22:19 kid51 Several weeks ago, after a repair on this iBook nearly killed it, I had to reboot from disk and type the dreaded letters:  fsck.
22:19 kid51 Since I didn't know whether my computer would ever boot again, I had to write down the output of fsck.
22:20 kid51 I got out an Olympia typewriter that my grandfather bought in 1947 and typed it up.
22:22 darbelo Ironically, I still have that remington, But it's 'N' broke a long time ago, so the last time I used it I had to type 'Ñ's and erase the '~' part ;)
22:29 mikehh kid51: there are 4 *.nqp files in the directory which generate the *.pir which is used to generate the *.pbc files
22:29 mikehh it seems to be ok now
22:31 kid51 mikehh:  Confirmed.
22:32 mikehh I know I have done this before - I just couldn't remember how it was done
22:33 * mikehh I think my mind is going ... going  ... going - never mind
22:44 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32992), fulltest) at r45398 - Ubuntu 9.10 amd64 (gcc with --optimize)
22:50 sorear darbelo: A while ago, TimToady proposed implementing NFG as an array of rationals.. did you see that, and has it been rejected?
22:50 dalek rakudo: cd0c7cf | jonathan++ | src/Perl6/ (2 files):
22:50 dalek rakudo: Fix up quote mod checks for array and hash interpolations, and implement function call interpolation too.
22:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/c​d0c7cf8c60018547f5d2765ba364a8dda89dc99
22:51 darbelo sorear: Nopes, never saw that.
22:51 darbelo Sounds interesting.
22:53 sorear A single pure character is represented by its integer codepoint
22:53 sorear a composed character is a dyadic rational which encodes the component sequence in canonical order in its binary expansion
22:54 darbelo Have link? Google isn't finding me anything useful.
22:54 sorear this avoids all use of a global registry, preventing associated DOSes, and happens to preserve lexicographic ordering
22:54 sorear http://irclog.perlgeek.de/​perl6/2010-03-13#i_2098502
22:55 darbelo sorear: You can have more than one combining character attached to a letter.
22:55 darbelo But I guess I'll go read the irclog ;)
22:55 sorear darbelo: a dyadic rational can have more than 21 bits after the binary point
22:55 sorear obviously a RPA of Rats would be prohibitively expensive; encoding (into a bytestring or other format) is left for the implementor
22:56 lucian joined #parrot
23:00 darbelo rat64? And I was worrying that encoding into a 32-bit-wide integer was too memory intensive ;)
23:12 dngor joined #parrot
23:19 sorear darbelo: BigRat more like it
23:22 darbelo That is starting to slide into prohibitively expensive territory.
23:23 sorear 15:55 < sorear> obviously a RPA of Rats would be prohibitively expensive;  encoding (into a bytestring or other format) is left for the  implementor
23:23 sorear we could even use UTF-8 with base + combiners in order
23:24 sorear array of rat is a nice clean semantic view
23:25 darbelo True. Preserving lexicographic ordering *is* a nice feature.
23:30 darbelo But that starts to diverge from the path to encoding unification. Which is where I think parrot should go.
23:34 Whiteknight darbelo: Maybe consider lazily converting to The One Format inside hashes only?
23:35 Whiteknight darbelo: impressive application
23:36 darbelo To be honest, I recycled last year's formarring. And dukeleto++ was a huge help getting thatone into shape.
23:38 darbelo I also decided to schedule like an optimist ;)
23:38 Whiteknight well, it is impressive
23:39 Whiteknight it's one of the few big projects specified in the PDDs that has never even been prototyped
23:42 darbelo Yeah. You'll also notice that I never mention the merge back into trunk. I'm aiming for prototype. If it's megeble, even better ;)
23:43 Whiteknight megeble anything like vegemite?
23:43 darbelo Merge-able.
23:44 darbelo My typing isn't all it used to be...
23:46 Whiteknight :)
23:48 * sorear ponders the possible value of character encodings that aren't monoid isomorphisms
23:48 sorear er.  homomorphisms
23:53 * Whiteknight is able to put together only a very fuzzy understanding of "monoid homomorphisms"
23:54 * Whiteknight needs to finish reading "The Little Schemer"
23:57 chromatic joined #parrot
23:58 Whiteknight http://james-iry.blogspot.com/2009/05/​brief-incomplete-and-mostly-wrong.html
23:58 Whiteknight that's one of my favorite blog posts ever. So many gem quotes
23:58 Whiteknight "It is a syntax error to program FORTRAN while not wearing a blue tie"
23:59 Whiteknight "Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix."
23:59 Whiteknight that's a quote chromatic can appreciate

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

Parrot | source cross referenced