#parrot Parrot 2.2.0 "Like Clockwork" Released! | parrot.org/ | Channel log: irclog.perlgeek.de/parrot/today | Improve Rakudo rx and buildtime performance | Fix HLL bugs (TT #389, #1040) | Prioritize Rakudo Needs and roadmap items
Set by moderator on 30 March 2010.
Austin Coke: it thinks it's seeing a nested closure 00:01
Use '{'
single quotes
purl single quotes are always right slanted like '
kid51 mikehh ping 00:02
Coke Austin: ok. once I get back to NQP-only, I'll remember that. Thanks. =-) 00:04
Austin :)
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 nopaste.snit.ch/20167
kid51 Currently, the recently contributed file t/profiling/profiling.t is causing a failure in t/codingstd/pir_code_coda.t 00:05
profiling.t has a perl6 coda, but its shebang line is currently causing it to be classified as PIR ...
... and since it lacks a *pir* coda, it fails that codingstd test 00:06
Coke what's checking the shebang line?
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.
Coke kid51: is it just defaulting to PIR since it can't match the shebang? 00:07
kid51 Coke: No. The code in Parrot::Distribution just checks for the *start* of the shebang line. 00:08
So anything with #!\\s*parrot matches ... including parrot-nqp
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.
Coke Yah, that's going to happen more and more. 00:10
kid51 My patch will shut up the immediate problem.
But over the long haul we probably need to define coding standards for files written in various forms of NQP, perl6, etc. 00:11
Comments?
purl Comments are lying. next_for_GC *is* the GC marking mechanism right now
chromatic I'm still not clear what problem the codas attempt to solve. 00:16
darbelo Who said there was a problem in the first place? 00:18
Austin vim wankery 00:19
Coke Austin: and emacs.
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
darbelo vim adn emacs are big boys, they can handle it without the hand holding.
Coke chromatic: I certainly wouldn't expend much effort on them, no. 00:21
but theoretically they are helpful in adhering to coding standards.
(tab vs. spaces, line length). Now, I'm not willing to argue that /those/ are worth enforcing, though. =-)
kid51 The merits of the codas in general and the test for codas in particular can be debated on list. 00:22
Can I ask for focus on this particular little problem?
chromatic Anchor the regex in Parrot::Distribution to end-of-line? 00:24
kid51 You would recommend that to the negative-lookahead because .... ?
Austin Make it a \\b = word break? 00:25
Coke chromatic: can't be end of line, has to deal with args, methinks.
chromatic Because who knows what other parrot-* utilities will show up in #! lines in the future.
Coke parrot($|\\s)
chromatic \\b would work for everything of the form parrot-* 00:26
Another idea is /parrot-?(\\S)\\s/, where you use the capture as a key into a hash of types. 00:27
The ending of that regex is wrong (arguments versus $), but you get the idea.
kid51 Hmm: Simply: parrot\\b doesn't work. 00:29
i.e., it doesn't exclude parrot-nqp from list of PIR files to be checked by that test
Austin Ah, right 00:30
kid51 The immediate goal is to say: parrot-nqp is not PIR
Austin Because - is a non-word
\\s|$ 00:31
?
chromatic (?:\\s|$) should work in that case, if all you want to do is exclude parrot-nqp.
kid51 Yes, that works. 00:33
I'll run make codetest to exclude possibility that that borks something else, then apply. Thanks.
mikehh kid51: pong (sorry was distracted) 00:37
kid51: there are a bunch in some of the branches - eg ops_pct 00:39
kid51: another problem in the ops_pct branch is that parrot_nqp files get attacked by perl_critic which should ignore them 00:43
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?
mikehh I really meant to before, but $work has been intrudin' I should have some time over the next couple of days 00:46
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 :-}
kid51 I tried to diff it against trunk more than a week ago. The diff was enormous ... which I attributed to its age.
mikehh: Sleep! 00:48
mikehh kid51: it was pretty good a couple of weeks ago - but I haven't look this week 00:49
kid51: mostly codetest problems left - nearly all related to nqp files 00:50
anyway mest take a break
00:50 walter joined
Coke the shebang fix might help there. 00:51
dalek rrot: r45389 | jkeenan++ | trunk/lib/Parrot/Distribution.pm:
Exclude files with '#! parrot-nqp' shebang lines from list of files reported
00:58
01:08 jan joined
dalek kudo: 13a7610 | (Solomon Foster)++ | t/spectest.data:
Turn on S03-metaops/reduce.t.
01:15
01:33 dngor_ joined 01:41 dngor joined 01:48 dngor_ joined 01:55 Psyche^ joined 01:56 Mokurai joined 01:57 Mokurai joined
dalek kudo: ed9deae | jonathan++ | src/Perl6/Grammar.pm:
Enforce zone constraints in signatures, so we can't end up with requireds after variadics, etc.
02:01
kudo: 16273e1 | jonathan++ | t/spectest.data:
Merge branch 'master' of github.com:rakudo/rakudo
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:24
kid51 What do you find objectionable in his code? 02:30
Austin A slew of things.
For example, 1 letter global variables.
'p'
kid51 Ugh! Doubly offensive!
dalek kudo: e50ff8c | (Solomon Foster)++ | src/core/metaops.pm:
Refactor the reducewith code a tad (could still use more) and extend triangle mode to chaining mode.
02:31
Austin Or, his "scope" class that has a "get containing scope" method.
Because, of course, every scope has a containing scope, and it has exactly one.
This isn't the first of his books I've read - my grudge has taken a while to develop. 02:32
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.
Austin Essentially, "my whole career is built around this algorithm" which leads to "I don't need to provide clear names for myself."
But it also leads to "if you take the time to learn my stuff, you should be my grad student/slave" 02:34
So maybe from an economic viewpoint, they're dis-incentivized to write good code...
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.
Part of the benefit of open source may be that a huge volume of n00b questions go away if you write clearly. 02:37
Whoa. 02:39
As far as I can tell, the "name" vtable is only called from the typeof opcode. Is this right? 02:40
chromatic That doesn't sound right, no. 02:43
dalek tracwiki: v4 | Austin_Hastings++ | Parrot%20Dictionary 02:47
tracwiki: Added 'name' vtable entry.
tracwiki: trac.parrot.org/parrot/wiki/Parrot%...ction=diff
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
But that seems about it.
kid51 must sleep 02:51
purl $kid51->sleep(8 * 3600);
Austin sings, "Well ce soir, for a change, it will all be made clear..." 02:52
02:54 janus joined 02:55 lucian joined
darbelo My irssi said "Day changed to 03 Apr 2010" 03:02
That translates to "The proposal gets mailed after I sleep"
See y'all tomor^W later today. 03:03
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? 03:58
Austin Put a guard in the get_iterator (see 'iter' opcode) vtable function? 04:03
Hmm.. somehow I expected that writing a method called 7 test_resolve() would be more complicated... 04:11
04:16 Andy joined 04:22 Mokurai1 joined 04:23 Mokurai joined
sorear Austin: The guard can't know if other iterators are live... 04:43
and it can't detect the case where the native interface is also used
Austin Then make the iterator a singleton, I guess. 04:44
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... 04:58
05:03 cognominal joined
dalek rrot: r45390 | petdance++ | trunk/src/pmc (2 files):
consting and removed old history
05:07
rrot: r45391 | petdance++ | trunk/src/gc (3 files):
removing unused args from static funcs
sorear Austin: How do singletons work? 05:42
Austin ?
A singleton is a class with only one instance. 05:43
sorear That's what a singleton /is/
Austin Yeah.
How you implement it is up to you.
sorear I want to know how they work in Parrot
oh, up to me
Austin Yeah. There's a 'singleton' keyword in the pmc stuff, but I don't think it does anything. 05:44
cotto There's some oddness in how singleton PMCs work. I remember that darbelo ran into a bit of it last gsoc. 05:54
sorear the really extra special horrible thing about p5 hash iterators is they don't even check errors 05:56
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
Austin sorear: Why is this any kind of issue? Aren't you just proxying for the p5 object and passing everything through? 06:16
sorear Austin: Because I want to shield Parrot code from the bad design of p5 06:17
Austin That's probably a mistake.
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:18
Coke git++ 06:27
06:35 particle joined
dalek tracwiki: v162 | sophi++ | WikiStart 06:44
tracwiki: trac.parrot.org/parrot/wiki/WikiSta...ction=diff
Coke Austin: what's your TZ? 06:49
purl your TZ is EST5EDT or canonically -0500 modulo daylight savings
Austin ^^
Coke you're up as late as I am. =-) 06:50
I have some crappy but functional NQP I'm about to commit..
Austin Woo-hoo.
lreplace?
Coke TclList's get_string 06:51
Austin Ah, right.
Coke feel free to clean it up a bit. 06:55
pushed. 06:56
dalek rtcl-nqp: 3749f5a | Coke++ | src/ (2 files):
Convert TclList's 'get_string' vtable from PIR to NQP
Austin mmm..149 deleted 06:58
That's what we like to see.. 06:59
Coke yah, but I added 100 back in. =-)
Can probably make that more idiomatic. 07:00
Austin Heh... my $self := self
You know this is going to be good...
Coke ah. that can probably go.
that was so that I could get at self inside the Q:PIR {} that's not there anymore.
Austin Oh.
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'"
Coke There were issues. Could have been something else.
anyway, it's in NQP now, make test doesn't fail anything new, so I'm -> zzz. Have fun if you like. =-) 07:02
(otherwise I'll clean it up tomorrow) 07:03
Austin g'night
dalek rrot: r45392 | petdance++ | trunk (3 files):
shimming up more dummy arguments
07:20
08:45 mib_iz4cn1 joined 08:51 riffraff joined
dalek kudo: d906f51 | (Solomon Foster)++ | src/core/metaops.pm:
Add generic version of reducewith that treats its argument as a list, to allow the [+] 1 case to work.
10:01
10:23 TiMBuS joined
mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32985), fulltest) at r45392 - Ubuntu 9.10 amd64 (g++ with --optimize) 10:25
10:46 payload joined 10:48 payload joined 10:49 payload joined 10:54 Whiteknight joined
dalek kudo: 020a6a3 | (Solomon Foster)++ | src/core/metaops.pm:
Change reducewith triangle case to lazily return values.
11:04
purl dalek: that doesn't look right
Whiteknight good morning, #parrot 11:05
11:28 payload joined 12:09 payload joined 12:19 ruoso joined 12:34 kid51 joined
dalek rrot: r45393 | NotFound++ | trunk/src/pmc/callcontext.pmc:
use init_int in get_named_names
13:11
13:14 lucian joined, leprevost joined
Coke colomon? 13:25
colomon is Solomon Foster 13:33
... wtf. svn still hasn't come back.
ww.
Whiteknight ? 13:37
Coke ww = wrong window
(different svn repo) 13:38
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:40
dalek rtcl-nqp: 93eaba7 | Coke++ | src/TclList.pm:
remove unused var. combine some similar if paths.
13:44
14:02 Mokurai joined 14:12 dngor joined 14:17 tetragon joined 14:31 cognominal joined 14:52 fperrad joined 15:06 fperrad_ joined, riffraff joined 15:16 dngor_ joined 15:58 theory joined 16:01 Austin joined 16:19 arnsholt joined
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:20
Austin arnsholt: I doubt it. 16:44
arnsholt Right 16:45
Here have a patch: paste.lisp.org/display/97274 16:46
NQP ignores bare returns, and I set out in an attempt to make them work. That patch is what I've managed to do
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.
arnsholt Any ideas how it can be made better?
Austin Autoviv an Undef pmc? 16:48
arnsholt Should work, I suppose. How do I do that? =)
Austin PAST::Val with autoviv 16:49
Or maybe just 'returns'. Bide..
16:49 darbelo joined
Austin Maybe PAST::Val.new( :returns('Undef') ) 16:50
arnsholt Hmm. Complains about missing :value attribute 16:53
Setting an empty :value() makes it return an actual value 16:54
Austin Really?
It ignores the 'returns' setting?
arnsholt Looks like. say(foo()) prints out 0, at any rate (where foo() just does a bare return) 16:55
Austin Yeah, but what's the generated pir like? 16:56
arnsholt D'oh. Should've figured that one out
Austin If you're doing say(foo()), you're already doing something wrong - since a "return ;" implies no value.
And like any other CPU, parrot may well just pull stuff out of a register 16:57
arnsholt Yah
Austin (Although it really ought to die)
arnsholt Yeah, that was my intuition
But it looks like it's working, actually 16:58
The code says .return (), which I suppose is interpreted as an empty list
Austin For some value of list, yest.
*yes
arnsholt Except I'm reading the code wrong
Austin In this case, the list is of values to return.
Seems like a winner. 16:59
And it's one of my TT's, to boot.
arnsholt NQP does returns and the like with exceptions. It really is setting the return value to 0, looks like
assign $P17, 0 # Where $P17 holds the return value stored in the control exception 17:00
Austin Okay.
That's acceptable, I guess. 17:01
TT#1464
arnsholt Oh, there it is 17:02
And it's not just in nested blocks. sub foo() { return; return 42; } will return 42 17:03
The bare return is interpreted as lookup of a hll_global named return
Austin yeah
Because the parser knows that the return keyword takes an argument.
arnsholt Yup 17:04
return is a prefix operator, in fact
Austin Okay, *that's* weird. 17:05
arnsholt A bit I suppose. But it's mainly a convenience I think
Austin For whom? 17:06
purl for thee!
arnsholt Heh. For the implementer, I'd guess
17:09 patspam joined 17:14 darbelo joined
Austin Here's a behavioral item that p6 apparently missed: attribute classes. 17:24
(Not sure that's the right name for it.) 17:25
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
How can I automate that?
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?
arnsholt They usually know =)
Austin I think I already do know. (You can't.) And I'm more concerned about nqp than perl6. 17:28
But it's worth a shot. 17:29
Only 2 users on #perl6 ? Am I on the right server? 17:31
arnsholt #perl6 is on freenode 17:32
17:33 Austin joined 17:34 hicx174 joined, Austin joined
Austin This still work? 17:38
I guess so.
darbelo FSVO "This" 17:39
opbots trust Austin 17:40
slavorg Ok
slavorgn But I don't trust you there, darbelo
Austin Heh 17:41
What's the difference between org and orgn?
darbelo orgn doesn't trust me?
17:47 hicx174 joined 18:05 dngor joined
Austin opbots trust darbelo 18:06
slavorg But I already trust darbelo
slavorgn But I don't trust you there, Austin
Austin Heh
orgn doesn't trust many...
slavorgn++
18:08 Whiteknight joined
cotto opbots trust darbelo 18:10
slavorg But I already trust darbelo
slavorgn Ok
cotto phenomenal cosmic power
darbelo (phenomenal cosmic power)++ 18:11
Austin Apparently, the thing that will let me do the thing I want is a "trait" 18:17
Which is implemented as a role.
Something like "does Accessor" where Accessor (or a sub-{class,role}) implements the 'does' method to edit either the attribute or the class. 18:22
Whiteknight good afternoon, #parrot 18:23
Austin Hello, Whiteknight
Whiteknight hello Austin
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:24
Then I could either say "has $!foo is <<some kind of accessor class>>" 18:25
Or "has $!foo; <<accessor-method>> $!foo <<details>>"
Or "<<has-accessor-type>> foo;"
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
Austin Woo-hoo! The new insurance forms are here! 18:27
And cable straps!
*cable straps!*
Austin heads for the basement...
Hmm 18:29
What's a good method name for "go modify the namespace of this class in whatever way is appropriate for you?"
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!!!
Austin Actually, it's a role. So "compose" but with a parameter. Woot. 18:31
Actually, COMPOSE since it's magic.
Which makes roles into just another (meta) class. Yikes. 18:32
Hey, Whiteknight, do you feel like rewriting all the PMC types for me? 18:33
Whiteknight Austin: yeah, sure. I
've got 20 mintues free tonight
Austin Man, you rock.
Here's the thing. I started to say this before, but got distracted. 18:34
All the PMCs are currently built on a prototype-based approach.
A PMC, as seen in *.pmc, shows what an object would look like.
I think they should be class/object based.
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.
Whiteknight finding a way to do it that isn't performance shittacular is a problem
Austin Nope.
0 performance cose.
*cost
Whiteknight nope to the is-ope?
Austin The vtable for a foo pmc object would still be the same.
But the Foo namespace would have a class backing it up. 18:36
And thus, no more pmcproxy.
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?
Austin It looks a lot like class.pmc.
Or an instance thereof. 18:38
And it *is* a class, so pmcproxy is no longer needed.
darbelo Make all C PMCs extend class? 18:39
Austin Essentially, yes.
Except for maybe three.
18:39 particle1 joined
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)
Of course not - after all, there's a bajillion places where the encapsulation gets violated..
18:40 payload1 joined
Austin What I need is a grad student. 18:41
Someone who will do what I ask them without getting paid...
Austin needs tenure...
18:42 kid51 joined
darbelo You could try selling it as a Summer of code Project... 18:42
18:42 payload joined
Austin Nah. This would be a full-time thing. 18:42
I'm not going to run out of ideas in August.
Is there a Google "Year of Drudgery" program? 18:43
darbelo Not that I know of.
Let me know if you find one.
Austin Dear Google, ...
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
(While you're down there, install these cable straps!)
Once a month I'll send him to the strip club with $50...
Feed him rice and Mountain Dew... 18:45
Okay, back to kakapo
darbelo Feed him once a month?
You cheap bastard. 18:46
18:47 chromatic joined
dukeleto Austin: i don't find jokes about "third-world hackers" that funny 18:47
Austin Why is that, Duke? 18:48
(Please don't tell me you're a grad student...)
Aww, man. 18:51
Suddenly I need P6metarole?
dukeleto Austin: i was a grad student in a past life
Austin dukeleto: Were you a CS grad student? 18:52
dukeleto Austin: i am not *that* stupid
Austin :)
Chem-E?
dukeleto Austin: good old Mathematics
Austin Ah.
"Here, boy. Fill out this proof for me..." 18:53
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
Austin: and many people read these logs.
Austin: i was more into finding exact analytic solutions to nonlinear hyperbolic partial differential equations, and not so much concerned with epsilon-delta proofs 18:57
kid51 Austin: I second dukeleto. You wouldn't last 20 minutes at my $job with remarks like that. 19:02
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:03
(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
Austin: i escaped grad school early as well. 19:06
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
dukeleto Austin: i ended up firing him and got a new advisor :) 19:08
Whiteknight I fired my first advisor too 19:09
it was pretty liberating, though my first advisor never spoke to me again
dukeleto Whiteknight++
dalek kudo: 1935270 | moritz++ | t/spectest.data:
we now pass catch.t
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.
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
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
dukeleto: sounds like a bad sitcom
dukeleto Whiteknight: it was a really bad sitcom
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.)
Heh 19:12
So you had to walk from the left end instead of the right end of the hallway?
Or were the doors always closed?
dukeleto Austin: mostly closed doors and lots of awkwardness 19:13
Austin: i think we might want to run with the "Parrot Year of Drudgery" concept. Could be a winner ;)
Austin Sadly, no funding.
If this was 2000... 19:14
We could just do an IPO
Perfume.com!
Powered by parrot!
The internet is ripe for scent-based commerce...
chromatic It worked for Ruby.
Austin :) 19:15
dukeleto Austin: we can just pay in "Parrot dollars", which can be traded in for karma.
Austin Heh 19:16
chromatic rubysoc.org/ sponsored by Axe Body Spray
Whiteknight 30 parrot dollars = 1 karma
10,000 karma = half a donut
Austin Yikes.
Whiteknight and for those exchange rates, it better be glazed or boston creme
Austin $100,000 = 20 interns?
Hmm 19:17
$20k/year.
I could do that.
That's $8,000 in property taxes and health insurance, and $1k/month for internet and strippers... 19:18
darbelo Dude, I could finnace my presidential campaign with that. 19:19
Austin President of what?
PaFo?
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
Austin Heh 19:20
"Chargify: You Build. We Bill."
19:20 davidfetter joined
Austin Sounds like my municipal government. 19:20
Oh, woot. That's for two months. 19:24
So $30k/year.
Anyone want to cough up $30k for Kakapo?
Whiteknight no 19:29
:)
Austin Yeah, that's the problem. 19:30
Whiteknight of course, nobody would want to donate any money to Matrixy, Parrot-Linear-Algebra, or Parrot-DataStructures either 19:33
so don't feel bad
darbelo I got paid for decnum-dynpmcs ;)
Suckers.
cotto and I got a shirt
ha 19:34
Austin glares at darbelo...
darbelo Not my fault you graduated, dude.
Austin opbots disrespect cotto
Man, that trick never works... 19:35
Whiteknight purl disrespect cotto
purl Whiteknight: excuse me?
Whiteknight damnit
darbelo Disrespect is purl's domain.
Austin Another feature requirement.. 19:36
darbelo The opbots know better than to mess with her.
Austin For a 'role', what is the analogous term to 'parent' for a class? 19:38
That is, a class may have one or more parent classes. A role may compose one or more ____ roles ?
composant? composing? composed? parent? ancestor? 19:39
chromatic (null) 19:41
There is no analogous term. 19:42
Austin And yet I need one.
To give a name to the optional parameter...
P6metarole.register('NewRole', :roles(a, b, c)) ?
wfm 19:43
19:58 joeri joined
sorear Austin: re. #perl6: Check out MooseX::FollowPBP on CPAN 19:59
Austin: it hasn't been backported to 'real' Perl6 yet, I don't think any Perl6 implementation covers enough of the metamodel (yet!)
dalek rrot: r45394 | mikehh++ | trunk/config/gen/makefiles/root.in:
add runtime/parrot/library/ProfTest/*.pbc files to be cleaned
20:04
20:22 dngor joined 20:26 kid51 joined
mikehh kid51: how do you get svn status to ignore generated files 20:48
chromatic I thought someone fixed the CSS in Trac so that the coloring of diffs was visible. 20:49
mikehh chromatic: does for me 20:55
chromatic Pink and pale green don't work for me.
mikehh 'k
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 20:58
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.
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
I know it's some variant of 'svn propedit'
chromatic Any software that requires me to patch my retinas with rat stem cells is broken.
mikehh ah - in the directory - I tried from the parrot base directory 21:02
withe the <PATH>
let me do that
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
needless to say, hilarity ensued when we shipped a number of units which failed testing, but the testers didn't know it
doesn't help that the instructions said "When the tool is successful, it looks like this:"
mikehh kid51: it informs me the file is not under version control 21:05
do you have to add it then ignore it 21:06
damnit I have done this before but not recently 21:07
too much git :-{ 21:08
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:09
svn propset svn:ignore "ProfTest" runtime/parrot/library 21:10
or
svn propset svn:ignore "*" runtime/parrot/library/ProfTest
if that works
cotto I think you'll want *.pir and *.pbc
mikehh 4 files in the directory - *.nqp ARE under version control - the *.pir and .pbc files are generated from them 21:11
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:14
If the directory has files under vc, then the directory is under vc. So: 21:15
svn propset svn:ignore '*.pir\\n*.pbc" runtime/parrot/library/ProfTest
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
you can always cut shorter, you can never cut longer
Austin Whiteknight: Yeah, me too.
Which is what makes it so annoying.
Except that I didn't cut.
I just had to inchworm four inches of wire through umpty-ump cable straps.
Each one of which is apparently surrounded by self-guided intelligent dust that aims for my eyes and nose.. 21:17
But, on the plus side, the basement is now wired for surround sound. 21:18
And thanks to the miracle of wireless USB, I can now *crank* my itunes... 21:19
(while simultaneously printing in the background. woot)
sorear: Thanks for the moosex pointer. 21:20
Heh, say that three times fast...
kid51 mikehh: If you haven't gotten it yet, consult: svnbook.red-bean.com/en/1.1/ch07s02.html about halfway down the page 21:24
I think I've got it. Doing a commit. 21:33
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.
darbelo Wait, can I even instantiate PMCs that early in the game? 21:35
Austin Heh
Just look them up by name..
All you need is a string..
:)
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 ;)
kid51 ... wherein I say, "SVN: ignore all .pbc files in this directory." 21:37
Austin Careful, darbelo. Ignore the croats at your peril..
darbelo Have I mentioned that unicode sucks? 21:38
sorear Would you prefer ISO-2022? 21:39
darbelo But the alternatives suck workse.
If only we could encode all of the characters in the world in a byte... 21:40
Austin We just need to make more movies.. 21:41
Eventually, English takes over and everything fits < 0x7f
darbelo You'll pry 21:42
Austin pry?
darbelo 'LATIN CAPITAL LETTER N WITH TILDE' from the Real Academia's dead hands boy.
dalek rrot: r45395 | jkeenan++ | trunk/runtime/parrot/library/ProfTest:
Set svn:ignore on 4 generated files in runtime/parrot/library/ProfTest/.
21:43
rrot: r45396 | jkeenan++ | trunk/runtime/parrot/library/ProfTest:
Modify the svn:ignore property on runtime/parrot/library/ProfTest/ to specify pattern: *.pbc.
Austin Heh 21:50
darbelo++
"cold dead fingers"
darbelo Yeah, those.
purl yeah, those are sweet.
darbelo My English isn't all here today.
Also, you need to wait for the last generation of non-ascii named people to die off. 21:51
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.
darbelo My name is all ascii. I'm not worried.
cotto I'm safe for now, but what if I decide to spell my name with a dotless i? 21:53
darbelo Then you're asking for it. 21:54
Austin Just use a 1 instead 21:55
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;
Sounds much better that the lame 'Julian' english. 21:57
darbelo You mean 'LATIN SMALL LETTER A WITH ACUTE', but I agree ;)
NotFound_gf I'm thinking about implementing the html encoding in parrot, just to make worse the multibyte charecter thing. 21:58
chromatic You do that and we'll take away your birthday, or give you extras. 22:02
mikehh kid51: it needs to be a newline separated list with *.pir and *pbc 22:04
dalek kudo: 93fa3d5 | jonathan++ | src/Perl6/ (2 files):
Implement interpolation of method calls, array indexing and hash indexing in strings. Needs a workaround due to <after> being NYI.
kudo: 84fcbbc | jonathan++ | t/spectest.data:
Merge branch 'master' of github.com:rakudo/rakudo
cotto Mmmm. More birthday cakes. 22:05
22:07 snarkyboojum joined
kid51 mikehh: Are any *.pir files in that directory generated as well (and therefore need to be ignored). 22:12
?
If so, you can try that out yourself: svn pe svn:ignore runtime/parrot/library/ProfTest/ 22:13
As a former typographer ... 22:14
kid51 has a special fondness for ligatures and dotless i's.
darbelo I like how they look. Not how they encode. 22:15
I feel like it's trying to encode *kerning* into plain text.
dalek rrot: r45397 | mikehh++ | trunk/runtime/parrot/library/ProfTest:
set svn:ignore to +.pir and +.pbc on runtime/parrot/library/ProfTest
22:16
rrot: r45398 | mikehh++ | trunk/MANIFEST.SKIP:
regenerate MANIFEST.SKIP
darbelo But what the hell do I know about that? I like typing in fixed width fonts.
kid51 remembers the days when typewriters *only* had fixed-width fonts 22:18
darbelo learned to type on a Remington.
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
Since I didn't know whether my computer would ever boot again, I had to write down the output of fsck.
I got out an Olympia typewriter that my grandfather bought in 1947 and typed it up. 22:20
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:22
mikehh kid51: there are 4 *.nqp files in the directory which generate the *.pir which is used to generate the *.pbc files 22:29
it seems to be ok now
kid51 mikehh: Confirmed. 22:31
mikehh I know I have done this before - I just couldn't remember how it was done 22:32
mikehh I think my mind is going ... going ... going - never mind 22:33
All tests PASS (pre/post-config, make corevm/make coretest, smoke (#32992), fulltest) at r45398 - Ubuntu 9.10 amd64 (gcc with --optimize) 22:44
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 kudo: cd0c7cf | jonathan++ | src/Perl6/ (2 files):
Fix up quote mod checks for array and hash interpolations, and implement function call interpolation too.
darbelo sorear: Nopes, never saw that. 22:51
Sounds interesting.
sorear A single pure character is represented by its integer codepoint 22:53
a composed character is a dyadic rational which encodes the component sequence in canonical order in its binary expansion
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
irclog.perlgeek.de/perl6/2010-03-13#i_2098502
darbelo sorear: You can have more than one combining character attached to a letter. 22:55
But I guess I'll go read the irclog ;)
sorear darbelo: a dyadic rational can have more than 21 bits after the binary point
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
darbelo rat64? And I was worrying that encoding into a 32-bit-wide integer was too memory intensive ;) 23:00
23:12 dngor joined
sorear darbelo: BigRat more like it 23:19
darbelo That is starting to slide into prohibitively expensive territory. 23:22
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
we could even use UTF-8 with base + combiners in order
array of rat is a nice clean semantic view 23:24
darbelo True. Preserving lexicographic ordering *is* a nice feature. 23:25
But that starts to diverge from the path to encoding unification. Which is where I think parrot should go. 23:30
Whiteknight darbelo: Maybe consider lazily converting to The One Format inside hashes only? 23:34
darbelo: impressive application 23:35
darbelo To be honest, I recycled last year's formarring. And dukeleto++ was a huge help getting thatone into shape. 23:36
I also decided to schedule like an optimist ;) 23:38
Whiteknight well, it is impressive
it's one of the few big projects specified in the PDDs that has never even been prototyped 23:39
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:42
Whiteknight megeble anything like vegemite? 23:43
darbelo Merge-able.
My typing isn't all it used to be... 23:44
Whiteknight :) 23:46
sorear ponders the possible value of character encodings that aren't monoid isomorphisms 23:48
er. homomorphisms
Whiteknight is able to put together only a very fuzzy understanding of "monoid homomorphisms" 23:53
Whiteknight needs to finish reading "The Little Schemer" 23:54
23:57 chromatic joined
Whiteknight james-iry.blogspot.com/2009/05/brie...wrong.html 23:58
that's one of my favorite blog posts ever. So many gem quotes
"It is a syntax error to program FORTRAN while not wearing a blue tie"
"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
that's a quote chromatic can appreciate