Camelia, the Perl 6 bug

IRC log for #parrot, 2011-05-18

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:06 whiteknight how long is pprof2cg.pl supposed to take?
00:06 cotto_work It can be slow.
00:07 cotto_work That's the reason I want to implement direct valgrind profile output.
00:07 whiteknight awesome, pawesome
00:08 cotto_work kcachegrind doesn't display it well, but callgrind_annotate does ok
00:10 whiteknight what is callgrind_annotate
00:10 cotto_work it comes with valgrind, iirc
00:11 cotto_work it post-process callgrind output
00:11 tcurtis ~~
00:12 whiteknight hello tcurtis
00:13 tcurtis hello, whiteknight
00:14 whiteknight tcurtis: my tokenize library is just a hack-together now
00:16 whiteknight so if you have any specific requirements or ideas, let me know
00:16 baest left #parrot
00:19 tcurtis whiteknight: I'm not too fond of either limiting the data member of tokens to strings or of integer token type tags.
00:20 tcurtis The former is an aesthetic issue involving the division of labor between parser and lexer.
00:21 tcurtis The latter is because it seems like it may force more coupling between parser and lexer.
00:21 whiteknight the Token class I have was basically an afterthought to the tokenizer
00:22 whiteknight when I woke up this morning, the tokenizer was only returning bare strings
00:22 whiteknight so at least I have a wrapper class now that can hold metadata
00:23 whiteknight This also isn't quite intended to be a full, general-purpose lexer library, at least not yet
00:24 whiteknight it's all very prototypical, so I need to figure out where to take it from here
00:26 tcurtis One approach I've thought about is using isa as my way of distinguishing tokens, with a special class for tokens like '(' and such where you really just care about the character value.
00:27 whiteknight token subclasses is a fine idea, if the different token types have different behaviors
00:28 whiteknight it's trivial to use an abstract factory object to create multiple types of token
00:29 tcurtis Alternately, if you want Rosella's tokenizing library to just break the input up into tokens, without user-supplied semantic actions and such, a string type tag would be preferable to an integer one for me.
00:29 tcurtis Although, slower, no doubt.
00:30 whiteknight The whole Rosella mantra is to provide good, general functionality. So the default Rosella library probably won't be what you need out of the box, but all the bits will be subclassable
00:30 whiteknight all attributes are PMCs, so Token can easily have any arbitrary data attached to it
00:30 whiteknight it's just a matter of changing the signature on the constructor
00:32 whiteknight I could give Token a hash-like interface, and let you store arbitrary named metadata
00:32 tcurtis Okay. I'm going to just pick some convention and expect it. If it ends up differing from what Rosella adopts, I'll either figure out a way to make Rosella do what I want, or change what I want.
00:33 whiteknight the Rosella String library is early alpha. I'll take feedback and make changes
00:33 whiteknight the goal was to have any kind of basic tokenizer available, to help you get to the hard part of parsing
00:34 whiteknight I'm sure we'll have a "real" lexer around later
00:36 tcurtis Indeed. And it can have a fancy DSL parsed by a parser generated using my GSoC project with itself as a lexer.
00:36 * tcurtis laughs evilly.
00:36 tcurtis Not really evilly; just cyclically.
00:39 whiteknight I'm signing off for the night
00:39 whiteknight later
00:40 cotto_work 'night
00:40 whiteknight left #parrot
00:52 soh_cah_toa left #parrot
00:53 soh_cah_toa joined #parrot
01:01 soh_cah_toa left #parrot
01:09 jevin joined #parrot
01:37 dalek Heuristic branch merge: pushed 627 commits to parrot/tewk/select by cotto
01:38 cotto_work no karma?
01:41 cotto_work pmichaud: could you have the people interested in Select take a look at https://github.com/parrot/parrot/blob​/tewk%2Fselect/src/dynpmc/select.pmc ?  I'd like to know what they think about the interface.
01:41 * cotto_work afk
01:42 dukeleto cotto++ # bringing tewk/select back to life
02:16 lateau joined #parrot
02:35 davidfetter oh hai
02:37 lateau good morning parrot :)
02:38 PerlJam good evening lateau
02:43 kid51 joined #parrot
02:46 Andy joined #parrot
02:50 kid51 seen cygx
02:50 aloha Sorry, I haven't seen cygx.
02:53 dalek TT #1722 closed by jkeenan++: osx build failed caused by errant '\c'
02:53 dalek TT #1722: http://trac.parrot.org/parrot/ticket/1722
03:17 kid51 left #parrot
03:27 bubaflub joined #parrot
03:33 lateau left #parrot
03:43 bubaflub left #parrot
04:04 krunen left #parrot
04:05 krunen joined #parrot
04:06 PerlJam left #parrot
04:06 PerlJam joined #parrot
04:08 JimmyZ joined #parrot
04:08 JimmyZ left #parrot
04:09 JimmyZ joined #parrot
04:11 JimmyZ left #parrot
04:24 cotto ~~
05:01 cotto I'm finding that I'm not a fan of the Select dynpmc's interface.  Does anyone know of a language or library that has an intuitive select implementation?  Python's seems nice.
05:08 cotto pmichaud, ping
05:21 bacek_at_work cotto, ping.
05:21 cotto bacek_at_work, pong
05:21 cotto what's up?
05:21 bacek_at_work cotto, I've got beta invitation to dotCloud and going to deploy codespeed onto it.
05:22 bacek_at_work So we can have "canonical" way of submitting benchmarks
05:22 cotto bacek_at_work, cool
05:22 cotto bacek++
05:22 bacek_at_work (We can migrate it to OSL later if we want)
05:22 bacek_at_work Unfortunately I don't know python, wsgi, etc :)
05:23 cotto me neither, as far as wsgi
05:23 ShaneC joined #parrot
05:27 preflex left #parrot
05:27 Andy left #parrot
05:29 cotto bacek_at_work, I'm looking forward to seeing what codespeed can do.
05:30 preflex joined #parrot
05:47 dalek parrot: 0004e42 | petdance++ | / (65 files):
05:47 dalek parrot: Make the headerizer not propagate SHIMness to function declarations. The SHIMness of an argument is internal to the function, and outside functions should not know that the argument is unused.
05:47 dalek parrot: review: https://github.com/parrot/parrot/commit/0004e42d9c
05:48 ttbot Parrot 0004e42d i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/9597
05:50 davidfetter left #parrot
06:05 fperrad joined #parrot
06:15 fperrad_ joined #parrot
06:17 fperrad left #parrot
06:17 fperrad_ is now known as fperrad
06:20 he joined #parrot
06:23 woosley joined #parrot
06:33 UltraDM joined #parrot
06:55 cotto trac--
06:55 * cotto sleeps and dreams of github issues
06:58 KaeseEs in his house on git'hub, dead cotto lies dreaming
07:10 baest joined #parrot
07:13 dalek parrot/m0-prototype: 178b878 | dukeleto++ | t/m0/m0_assembler.t:
07:13 dalek parrot/m0-prototype: Add a test for a valid m0b file magic number
07:13 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/178b878bd6
07:23 dukeleto msg cotto must the variable table in M0 have indices in increasing order? If so, why have the indices at all?
07:23 aloha OK. I'll deliver the message.
07:29 KaeseEs bacek_at_work: didn't dotcloud hire miyagawa and start supporting psgi a while back? we might have more folks familiar with that due to the provenance of most parrot devs :v
07:29 bacek KaeseEs, they did. But codespeed is implemented in python.
07:33 KaeseEs my reading comprehension skills failed me :/
07:37 bacek aloha, codespeed?
07:37 aloha bacek: Search me, bub.
07:37 bacek aloha, codespeed is look at http://speed.pypy.org
07:37 aloha bacek: Okay.
07:37 bacek KaeseEs, ^^^
07:41 dukeleto msg cotto how badly do we want to support escaping double quotes in variable tables strings? Is it really necessary? Seems like a convenience for writing M0 by hand, which we shouldn't be catering to.
07:41 aloha OK. I'll deliver the message.
07:49 mj41 joined #parrot
07:51 rurban_ joined #parrot
07:51 dalek parrot/m0-prototype: 9147221 | dukeleto++ | src/m0/m0_assembler.pl:
07:51 dalek parrot/m0-prototype: Improve the parsing of M0 variable tables and the calculation of their bytecode segment length
07:51 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/9147221915
07:52 dukeleto 18 digits in a row in that SHA1. Must be my lucky day.
07:52 * dukeleto sleeps
07:52 rurban left #parrot
07:52 rurban_ is now known as rurban
07:57 moritz (10/16)**18
07:57 aloha 0.000211758236813575
07:58 moritz (10/16)**18 * (40 - 18 + 1)
07:58 aloha 0.00487043944671223
07:58 moritz half a percent chance... dukeleto++ just needs to commit more often :-)
08:12 bacek YAY!
08:12 bacek http://speedcenter.parrot.dotcloud.com/
08:12 bacek It works :)
08:18 moritz bacek: it's eternally "loading" for me
08:18 moritz (firefox 3.6)
08:19 bacek moritz, I know. I didn't setup DB behind yet :)
08:19 moritz bacek: heh, "works" always depends on context :-)
08:19 bacek moritz, of course. But before I had only 404s and 500s :)
08:21 tadzik yay, speedcenter
08:29 bacek tadzik, do you have time to play with it? Submitting of results looks pretty straight forward. I can give you admin access to console so you can create environments/projects/whatever
08:30 tadzik bacek: I shouldn't be having time for this, but I know I'll bootstrap some if you give me the access
08:30 tadzik aka I should be studying
08:37 bacek tadzik, privmsg :)
08:38 tadzik fun fun fun fun
09:04 gerd joined #parrot
09:07 gerd left #parrot
09:15 jjore_ left #parrot
09:26 contingencyplan left #parrot
09:37 dodathome joined #parrot
09:38 woosley left #parrot
09:50 eternaleye_ is now known as eternaleye
09:57 pjcj left #parrot
10:20 woosley joined #parrot
10:50 jjore joined #parrot
11:02 Psyche^ joined #parrot
11:07 Patterner left #parrot
11:07 Psyche^ is now known as Patterner
11:20 woosley left #parrot
11:25 lucian joined #parrot
11:26 jjore left #parrot
11:27 darbelo joined #parrot
11:32 xenoterracide poke particle
11:33 pjcj joined #parrot
11:38 mtk joined #parrot
11:42 jjore joined #parrot
11:47 mtk left #parrot
11:47 davidfetter joined #parrot
11:50 dalek website: lucian++ | HELO GSOC
11:50 dalek website: http://www.parrot.org/content/helo-gsoc
11:52 mtk joined #parrot
11:59 lucian dalek: also http://honeyweb.wordpress.​com/2011/05/18/helo-gsoc/
12:07 whiteknight joined #parrot
12:08 whiteknight left #parrot
12:08 whiteknight joined #parrot
12:19 davidfetter left #parrot
12:20 whiteknight good morning, #parrot
12:37 lucian whiteknight: finally wrote that blog post ...
12:45 whiteknight I've had it written but trapped in the queue
12:45 davidfetter joined #parrot
12:45 whiteknight my plan is to queue up several posts, so when I go a day or two without an idea I can post one that's already done
12:46 whiteknight but then I go a whole week without posting anything, then I get ideas, and things never leave my queue
12:54 atrodo down with queues!
12:55 bubaflub joined #parrot
12:59 dalek parrot: b7811d7 | fperrad++ | runtime/parrot/library/distutils.pir:
12:59 dalek parrot: [disutils] fix on Windows
12:59 dalek parrot: review: https://github.com/parrot/parrot/commit/b7811d7ec7
13:00 ttbot Parrot b7811d7e i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/9654
13:02 whiteknight wtf
13:08 whiteknight I have no idea what is wrong with that stupid macro
13:08 whiteknight I hate ASSERT_ARGS
13:08 bluescreen joined #parrot
13:39 JimmyZ joined #parrot
13:52 he left #parrot
14:02 alester joined #parrot
14:03 alester Hey, look!  I broke the build!
14:07 alester Aha, part of the headerizer is unhappy about ARGIN( SHIM () )
14:09 dngor left #parrot
14:09 dngor joined #parrot
14:13 dalek parrot: b3b7652 | petdance++ | / (8 files):
14:13 dalek parrot: make headerizer handle ARGIN(SHIM(...)) properly
14:13 dalek parrot: review: https://github.com/parrot/parrot/commit/b3b7652648
14:15 ttbot Parrot b3b76526 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/9708
14:29 whiteknight ttbot makes me angry
14:29 whiteknight how dare it point out our mistakes?
14:29 whiteknight like it's better than us
14:30 whiteknight I'd love to see ttbot try, if it thinks it can do better
14:31 atrodo whiteknight++
14:31 atrodo I agree.  ttbot is too smug.  we should jump him next time he comes in
14:36 alester well, shoot, I'll have to figure out later what the bummer is.
14:37 UltraDM left #parrot
14:37 theory joined #parrot
14:46 pmichaud cotto++ # review of Select PMC, thanks!
14:53 theory left #parrot
14:58 whiteknight http://www.complang.org/colm/
15:04 theory joined #parrot
15:13 dalek parrot: 6d1a1fc | petdance++ | / (8 files):
15:13 dalek parrot: ASSERT_ARGS_xxx macros have to use the shimmed var names
15:13 dalek parrot: review: https://github.com/parrot/parrot/commit/6d1a1fcf77
15:17 dukeleto ~~
15:18 alester yay, is fixed.
15:21 hercynium joined #parrot
15:42 dalek TT #2114 created by whiteknight++: getprop  op is strange
15:42 dalek TT #2114: http://trac.parrot.org/parrot/ticket/2114
15:43 dalek parrot: db11dcb | petdance++ | src/platform/generic/socket.c:
15:43 dalek parrot: We should be freeing cstring, not host
15:43 dalek parrot: review: https://github.com/parrot/parrot/commit/db11dcbfbb
15:44 alester That fix should fix the solid red 5 column in http://tt.taptinder.org/bu​ildstatus/parrot/master/4
15:52 rurban_ joined #parrot
15:53 rurban left #parrot
15:53 rurban_ is now known as rurban
16:00 alester It fixed PART of the problem.
16:03 cotto has someone responded to karsten on parrot-dev?
16:05 Tene whiteknight: I think I want to do 6model work tonight; let me know sometime today if there's anything specific you'd like from me, otherwise I'm going to start on the new pass of the ruby object model
16:06 tadzik Tene: how much of a priority is a Cardinal -> nqprx migration?
16:06 JimmyZ ->nqprx? not new nqp?
16:07 tadzik I don't think that matters much in this particular case, the point is the PGE->PCT migration
16:07 JimmyZ oh
16:07 tadzik I brought cardinal on nqprx to a stage where it compiles, but doesn't even run iirc
16:07 Tene tadzik: 1) nobody is relying on cardinal, and there's no organized plan for it, so the only priorities that matter are those of whomever is doing the work
16:07 tadzik haven't touched that branch ever since
16:08 tadzik Tene: ok
16:08 Tene 2) I thought that cardinal was already running on new nqp, but still using PGE instead of nqp grammars
16:08 tadzik hmm, probably
16:08 Tene 3) My personal top priority is getting a good object model in place; I haven't done any consideration of relative ordering of priorities after that
16:11 tadzik I see
16:11 cotto responded
16:12 Tene tadzik: does that answer your question?
16:12 tadzik Tene: yes
16:12 cotto petdance++ for fixing the build
16:13 alester I fixed the main build, but column 5 here http://tt.taptinder.org/bu​ildstatus/parrot/master/4 still needs love
16:13 alester Looks like he's running some native c++ compiler to BSD?
16:13 benabik joined #parrot
16:13 Tene tadzik: Personally, I'd expect to work on that after I'm done with object model stuff, and after that I'd start working on importing stdlib from one of the other ruby impls, like rubinius, which I think is the ruby-in-ruby one?
16:14 tadzik Tene: I think so, yes
16:15 Tene The big problem with re-using other ruby impl work is that they tend to rely on a complete object model even for basic shit like testing
16:16 Tene like, they use a testing library that requires monkey patching and shit, which isn't helpful for an implementation that's just starting
16:17 Tene so, not like the Perl 6 tests, which are designed to be gradually helpful.
16:18 Tene It makes sense, given the context, because they started out trying to test a fully-functional (by definition) impl, but it's inconvenient for me. :)
16:18 Tene afk commuting
16:19 whiteknight Tene: no, nothing specific. I'll follow along with your commits
16:20 whiteknight I'm very interested just to see what you're planning
16:21 dukeleto cotto: no one has replied, but I thought about it :)
16:21 dukeleto cotto: did you get my msg's from last night?
16:22 dalek parrot: 7be1a8d | petdance++ | src/platform/generic/sysmem.c:
16:22 dalek parrot: must pass a size_t pointer to sysctl, not a ulong. Also localized and consted the error message pointer
16:22 dalek parrot: review: https://github.com/parrot/parrot/commit/7be1a8debd
16:34 cotto_work ~~
16:35 cotto_work dukeleto: cotto thought that I'd have more tuits to respond. ;)
16:36 cotto_work dukeleto: the indicies in the variables table are to increase readability for humans.
16:37 whiteknight those silly humans
16:39 cotto_work dukeleto: if you want, you can say that the chunk name is anything between ".chunk " and the newline
16:39 cotto_work dukeleto: feel free to update the spec
16:43 Tene whiteknight: my plan is to first write a stub class with the same methods as ruby's Module class, and then start filling them in.
16:43 whiteknight Tene: okay, awesome plan. I'll be following the commit stream in earnest
16:43 dukeleto cotto_work: you misunderstood my question about quotes
16:44 dukeleto cotto_work: i am talking about double quoted strings in the variable table
16:44 cotto_work alester: apparently you fixed it
16:44 dukeleto cotto_work: i have already implemented allowing the escaping of double quotes, but just wanted to ask you if you were sure we wanted that
16:44 * cotto_work looks at the spec
16:44 alester yay me!
16:45 dukeleto cotto_work: also, we need to hammer out the exceptions section of the M0 spec
16:46 whiteknight alester++
16:46 alester Would like to know what compiler that is.
16:46 alester or maybe it's a config issue.
16:46 alester s/issue/difference/
16:48 mj41 left #parrot
16:49 cotto_work dukeleto: wrt double quotes, do you have an alternative?  What's there is just what seemed like a good idea at the time.
16:50 dalek winxed: r1009 | NotFound++ | trunk/winxedst1.winxed:
16:50 dalek winxed: more improvements in scope search, specially for namespace constants
16:50 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1009
16:54 dalek Rosella: 9f68dcb | Whiteknight++ | src/unstable/string/tokenizer/Token.winxed:
16:54 dalek Rosella: allow more dynamic storage of metadata in tokens, on suggestion from tcurtis++
16:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/9f68dcb7b8
16:54 dalek Rosella: 9e2db22 | Whiteknight++ | s (10 files):
16:54 dalek Rosella: rearrange some stuff in the prototype library. I honestly have no idea what I want to do with some of this stuff
16:54 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/9e2db22321
17:10 cotto_work dukeleto: exceptions are something I expect to will become clearer as we figure out how CPS and M0 intersect.
17:13 benabik cotto_work: Matt Might had an excellent article on using continuations for exception handling.  http://matt.might.net/articl​es/implementing-exceptions/
17:14 whiteknight I've said many times that our exceptions system needs a major revam
17:14 whiteknight revamp
17:14 whiteknight if M0 is the catalyst for that, all the better
17:14 whiteknight that's a case where we should be willing to throw the baby out with the bathwater
17:15 bluescreen left #parrot
17:16 bluescreen joined #parrot
17:18 atrodo Sometimes I get the feeling that whiteknight just wants to rewrite all of parrot
17:18 whiteknight that's not too far from the truth
17:19 whiteknight Many parts of Parrot are either very organic or very prototypical. We have a massive amount of technical debt because of that
17:20 whiteknight there are many places, exceptions is a great example, where a complete rewrite could help us in a number of ways
17:20 whiteknight better code, better encapsulation, better pluggability, more features for the user, etc
17:20 whiteknight right now the exceptions system is feature-bare. It doesn't offer what most people need, and the performance is horrid
17:27 dukeleto This is why Parrot needs t-shirts: http://yfrog.com/gy3kafbj
17:28 dukeleto And they have stickers, too: http://yfrog.com/h81oarsj
17:28 * dukeleto grumbles
17:28 tadzik . o O ( Parrotius, use Parrot )
17:29 tadzik I'd wear a simple white one with the "Speaks your language" logo
17:29 tadzik although that's not to truthish
17:31 lucian tadzik: or has ever seen a picture of the truth
17:31 tadzik I miss language interoperability
17:32 bluescreen left #parrot
17:32 tadzik even though I've seen it only in history books :)
17:32 lucian i've almost given up on the concept
17:32 bluescreen joined #parrot
17:32 lucian every implementation i've seen so far sucks (COM, XPCOM, titanium's thing, etc.)
17:33 lucian dbus and gobject-introspection are the only mildly reasonable ones
17:33 tadzik are we talking about the same thing?
17:34 lucian yeah, i guess
17:34 lucian it sucks in parrot too, as it is now
17:34 lucian i'm waiting to see if 6model does it better
17:38 lucian tadzik: even .net and jvm sort of suck at it :)
17:38 lucian it's sad
17:38 * tadzik once seen a Tene's blog post showing how Ruby and Perl6 interoperate
17:39 lucian whiteknight: about rewriting things, i've still been thinking about using something other than C
17:40 whiteknight lucian: for all of parrot?
17:40 lucian tadzik: yes, that was pretty cool. i haven't seen it scale, though
17:40 lucian whiteknight: not necessarily
17:40 Tene tadzik: That's something of a sore point for me; I'd be glad to talk to you about it in /msg if you'd like, but I don't want to spam the channel yet again about it.
17:40 lucian want to rewrite something? (exceptions) use something better
17:40 whiteknight Tene: spam away
17:40 * lucian nods
17:40 whiteknight Tene: we need to be reminded of things that aren't right
17:40 atrodo Tene> please do, i've yet to see the rant ;)
17:40 tadzik Tene: go ahead
17:41 whiteknight I'm still not entirely sure I know what the status of interop is, or why it's a problem
17:41 tadzik I think the problem is that the status is "not"
17:42 Tene atrodo: I put in a big pile of work to get HLL interop working, and nobody seemed to care.  I then spent the next six months or so repeatedly fixing HLL interop and updating all the languages to deal with other Parrot people breaking it, and I couldn't get anyone else to care.
17:42 lucian whiteknight: afaik, the status is that the interop point is 'Object', which sucks
17:42 whiteknight Tene: see, that's what I don't understand. What part of it is broken? How does it break?
17:42 Tene After the third?  fourth? time that HLL interop was broken and nobody else cared, I gave up.  That was... 2.5 years ago?  3 years ago?
17:43 whiteknight and more importantly, can we make tests to demonstrate when it is and is not broken?
17:43 lucian Tene: while i understand your frustration, i can understand why people keep breaking it
17:43 lucian Tene: it's because parrot's object system is useless, and in this case even worse than that
17:44 Tene whiteknight: there are bugs with the load_language opcode and .HLL PIR declaration, but the big issue is the interop API, primarily library loading.
17:44 * lucian should prepend more disclaimer acronyms
17:44 Tene lucian: object system doesn't have anything to do with it, actually.
17:44 lucian Tene: i see
17:44 sorear the logical conclusion here is that nobody but you actually wants HLL interop
17:44 sorear is this not correct?
17:45 lucian again guessing, it's possible that not having enough useful languages also contributes
17:45 Tene sorear: No, the logical conclusion is that nobody involved in parrot at the time valued HLL interop higher than their other work.
17:45 whiteknight Tene: okay, those are serious things. We should have tests for load_language and .HLL declaration in the test suite
17:45 whiteknight although, I imagine load_language is particularly hard to test
17:45 whiteknight we have NQP in the repo now. If we snapshotted winxed into the repo too, we could load_language between them
17:46 Tene whiteknight: the real solution, that I've been told dukeleto is working on, is HLL smoke testing.  Once we have a good HLL smoke tester running, we can have integration tests that do real HLL interop.
17:46 whiteknight although I don't think either of them use .HLL declarations by default
17:46 atrodo Tene> I can agree with that.  My experiences with load_language were less than enjoyable
17:46 whiteknight Tene: do you have any notes or recollection about what is broken with load_language?
17:47 dukeleto Tene: my plan is that jitterbug will be used to smoke HLL's. It needs a few more bugfixes before it is ready, but it is damn close
17:47 Tene whiteknight: What I remember is that there are at least two parts that both do shit with HLL namespaces, and they mangle case differently from each other
17:47 whiteknight oh great
17:47 whiteknight the Parrot policy on mangling case for HLLs is stupid
17:48 Tene or, one mangles case and the other doesn't?  or one is case-insensitive, one mangles case, and the other doesn't mangle and is case-insensitive?  or something.
17:48 whiteknight HLL developers should be able to case their namespaces however they want
17:48 dukeleto ... smokin' test suites, sippin' on gin and juice ...
17:48 whiteknight let's change that policy, and rip out all case mangling
17:48 whiteknight dance around a fire and yell "kaluu, kaleh!" at the sub
17:48 whiteknight sun
17:49 Tene whiteknight: I'd like that.  You'll need to update languages to ensure that their installed pbcs use the same case as their HLL namespace, etc.
17:49 whiteknight that's a small nit
17:49 Tene Sure.
17:49 Tene Oh, I think that compreg was involved too
17:49 whiteknight in reality, most of them are probably using lower-case right now as a matter of convention
17:50 Tene lower-case .pbc, title case HLL namespace, iirc.
17:50 Tene and then something mangles it to lowercase in some place, maybe?
17:52 whiteknight if that's all it is, that should be a relatively easy project to fix
17:53 tadzik that could be raised on #ps or PDS
17:53 contingencyplan joined #parrot
17:54 whiteknight I'll raise the issue next time I'm at #ps. In about 5 months
17:54 dukeleto whiteknight: arg!
17:54 dukeleto whiteknight: sucks that you can't make #ps
17:55 whiteknight it's the way the cookie crumbles
17:55 benabik left #parrot
17:56 lucian whiteknight: are you visiting mars or something?
17:56 whiteknight lucian:  #ps happens exactly during my commute. I can attend after daylight savings time
17:57 lucian ah, i see
17:57 whiteknight I post reports while I'm at work, then backlog when I get home.
17:59 lucian whiteknight: btw, about other languages
17:59 lucian i've shopped around a bit. apparently there are only three choices that work well with C
18:00 lucian 1) C++, 2) ooc 3) vala posix
18:00 lucian or perhaps 3.1), vala gobject
18:01 dalek parrot/m0-prototype: d73e836 | cotto++ | t/m0/hello.m0b:
18:01 dalek parrot/m0-prototype: add hand-assembled version of hello.m0
18:01 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/d73e836aac
18:03 whiteknight I can't imagine we move to ooc. or vala. We do prize at least a certain level of portability and ease of building
18:04 whiteknight besides perl, Parrot does try not to have too many prerequisites
18:04 whiteknight C++ is certainly always a choice, but I'm extremely weary of it
18:04 lucian left #parrot
18:05 Tene whiteknight: those are minor issues.  The big issue is an HLL interop API.  When I've said ever since dropping it was that I won't do any more work on it until there's sufficient infrastructure in place that I can feel confident that if it breaks, someone besides me will notice and care about fixing it, but I'm glad to talk at any length about design choices, how to implement, etc. with anyone intereste din working on it themselves.
18:05 lucian joined #parrot
18:05 lucian bah, someone restarted my router
18:05 whiteknight Tene: that's fair. You are right that the rest of the project needs to pick up some slack
18:05 lucian whiteknight: ooc is very immature, so certainly out of the picture
18:05 lucian vala's posix profile? i'm not sure
18:06 whiteknight does vala have enough of a presence on windows?
18:06 lucian vala posix works wherever C does
18:07 lucian vala glib/gobject may not work on some embedded devices, appears to work fine on windows though
18:07 lucian it does seem to me that quite a few of parrot's problems stem from either C or not using enough libraries
18:08 lucian but i wouldn't know whether vala posix is actually the right thing to use
18:08 lucian and using glib/gobject would certainly be controversial
18:09 whiteknight yes, I don't think we're willing to rely on glib/gobject right now
18:10 lucian so if glib is out of the picture, vala's position is a bit different
18:11 lucian it would have to be determined whether vala's posix profile is enough of an improvement over C
18:12 lucian which i don't know if it is
18:12 lucian but certainly use a threading library! not doing so is almost criminal :)
18:16 whiteknight I do like the idea about having gobject as an available, pluggable alternate object system. I've always liked that idea. But I don't think we can have that as the standard or the default
18:17 whiteknight lucian: I've been warm to the idea of using a threading library. The real question is which one to use
18:17 whiteknight plobsing suggests that we not use any by default, and allow the ecosystem to come up with pluggable variants
18:17 whiteknight I'm warming up to that point of view considerably
18:17 lucian so no threads at all?
18:17 whiteknight we definitely shouldn't brew anything ourselves
18:17 lucian but you still need to be thread-safe
18:17 whiteknight of course. Thread-safety is priority
18:18 lucian which often means using threading libs
18:18 whiteknight plobsing has been exploring that. He's working on a project to bring zeromq bindings to Parrot, and needs it for that purpose
18:18 lucian or a subset of their functionality
18:18 whiteknight lucian: the current idea is that we can use a locking abstraction where necessary, and fill in the details with multiple possible backends
18:18 whiteknight many libraries implement basic locks, and many of them do it interchagably well.
18:19 JimmyZ left #parrot
18:19 lucian uh, i don't like that idea
18:19 ShaneC left #parrot
18:19 lucian i think it's likely to produce another crappy threading/concurrency system
18:19 lucian and i don't see the benefit it brings
18:21 whiteknight what brings?
18:21 lucian pluggable lock/threading libs
18:22 whiteknight the benefit is that different languages need different semantics.
18:23 lucian sure, but parrot itself needs locks to be thread-safe
18:23 whiteknight Perl6 for instances needs light-weight autothreading capabilities for some of its list ops
18:23 whiteknight some languages need full heavy-weight threads, other stuff, etc
18:23 lucian yes, but which locks will parrot use?
18:24 whiteknight does it matter? a thread-safe lock is a lock
18:24 lucian sure it matters, there's all sorts
18:24 whiteknight what's most important for us to do is to limit the number of places where locks are necessary
18:24 lucian how will the threading block be chosen? at build-time?
18:24 lucian yes, that's a good goal
18:24 whiteknight lucian: if threading is implemented as a dynpmc, or through NCI, we load it in at runtime
18:25 whiteknight it's like how we do NCI now. you can load in a custom thunk builder at runtime
18:25 lucian hmm
18:25 whiteknight most of this idea is plobsing's and I'm sure I'm not doing justice to it
18:25 whiteknight like I said, what I care about most is how users use it
18:27 lucian hmm. users see what they're shown, i'm not particularly worried about that
18:28 lucian but parrot-the-vm needs locks of some sort, and a few other things. it seems a simple choice to me to just use posix threads
18:29 lucian or w/e other library developers prefer, which hides win32 weirdness
18:29 dalek parrot/m0-prototype: 98c720c | cotto++ | src/m0/m0_interp.pl:
18:29 dalek parrot/m0-prototype: stub out set_var enough to show that t/m0/hello.m0b is correct
18:29 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/98c720cbbd
18:29 whiteknight We definitely want concurrency details to be pluggable, because different HLLs and their libraries need different things
18:29 whiteknight the question is, does Parrot try to provide a default and then allow HLLs to override?
18:29 nopaste "cotto_work" at 192.168.1.3 pasted ""run" some M0 bytecode" (5 lines) at http://nopaste.snit.ch/46340
18:30 cotto_work dukeleto: ^
18:30 whiteknight or, is that the job of the VM at all? The platform and the libraries provide threading primitives, we should let users tap those directly
18:30 lucian whiteknight: will that work with two languages using two different threading libs at the same time?
18:30 whiteknight and then what does it look like when you can operate threading from the PIR level? What does the VM have to do to stay out of the way?
18:30 lucian i don't think they try to be compatible
18:31 whiteknight lucian: if the threading libraries are encapsulated in a series of objects and NCI functions, the choice of which functions to use is easy
18:31 lucian the way i see it, there are 3 types of "threading": OS processes, OS threads, user-level
18:31 whiteknight however, if Parrot makes one set of assumptions internally, and the user does something else at the PIR level, FAIL
18:31 lucian i don't see an advantage to having more than one way of interacting with OS threads, or processes
18:32 whiteknight I don't see an advantage to mandating "one true way" and forcing HLL authors to deal with the decisions I make on the point
18:32 whiteknight I don't know what all existing languages need, much less what future languages need
18:32 whiteknight and the libraries that people will want to come up with for those languages
18:33 bacek left #parrot
18:33 lucian i really don't see what other way there is to interact with OS threads
18:33 whiteknight The more decisions Parrot makes, the more hackjob workarounds our HLL devs are going to have to invent to get around them
18:33 lucian all languages that use OS threads target posix threads
18:33 whiteknight lucian: so then why are there so many threading libraries, if they all can only do the same things in the same ways?
18:33 lucian when it comes to user-level threads (green threads) then yes, parrot's choice matters
18:34 whiteknight the fact that we have so many options is an argument that it's not so simple
18:34 lucian whiteknight: language runtimes, platform specifics
18:34 whiteknight lucian: Even in the green thread case, there's no reason Parrot needs to provide that either, really.
18:34 whiteknight All Parrot needs to do is provide the mechanism to save and interrupt a current execution flow, and any library can build anything on top of that
18:34 lucian whiteknight: of course, i was just saying that's the only point where parrot's choice (or none) would matter at all
18:34 whiteknight right
18:35 lucian all OS threads are just OS threads
18:35 lucian the differences are either because of 1) os differences 2) language runtimes or 3) reinvented wheels (nspr vs apr)
18:36 dukeleto cotto_work: whoa, is that your interp running bytecode generated from my assembler?
18:36 cotto_work dukeleto: not quite
18:36 dukeleto cotto_work: fsvo "run"
18:36 lucian whiteknight: and all languages that use OS threads use pthreads at some level
18:36 dukeleto cotto_work: but you are using the bc generated by my assembler?
18:36 lucian (some reimplement their win32 threads, but many don't even do that)
18:37 cotto_work dukeleto: I used bytecode generated by t/m0/m0_bytecode_loading.t
18:37 lucian whiteknight: whatever languages do on top (or inside, or beside) OS threads is really a different issue entirely
18:37 cotto_work dukeleto: with the right number of ops and hand-hacked their values to be correct
18:38 cotto_work dukeleto: the code that the assembler generates doesn't have all the needed segments
18:39 dalek parrot: 4b9b5e1 | petdance++ | src/packfile/output.c:
18:39 dalek parrot: check encoding match before checking the entire string
18:39 dalek parrot: review: https://github.com/parrot/parrot/commit/4b9b5e1dec
18:39 dalek parrot: 734de09 | petdance++ | / (2 files):
18:39 dalek parrot: Update cursor argument annotation
18:39 dalek parrot: review: https://github.com/parrot/parrot/commit/734de092fb
18:39 dalek winxed: r1010 | NotFound++ | trunk/winxedst1.winxed:
18:39 dalek winxed: allow using constants in function level 'using'
18:39 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1010
18:40 dukeleto cotto_work: yes, i know :) But it is getting closer
18:40 dukeleto cotto_work: i would like to see what happens when you try to read my partial bc, tho
18:40 dukeleto cotto_work: in the name of science
18:40 cotto_work dukeleto: I already tried.  It spits out an lta error about not finding the right segment
18:41 dukeleto cotto_work: hokey dokey. The other segments will come soon.
18:42 nopaste "cotto_work" at 192.168.1.3 pasted "running generated M0 bytecode" (14 lines) at http://nopaste.snit.ch/46341
18:46 soh_cah_toa joined #parrot
18:50 whiteknight What we really need is a Parrot wrapper library for the github API
18:52 lucian whiteknight: no worries, there's a python one. talk to me in 2 months :)
18:57 darbelo_ joined #parrot
19:00 darbelo_ left #parrot
19:00 dalek winxed: r1011 | NotFound++ | trunk/t/advanced/10scope.t:
19:00 dalek winxed: test scope resolution for functions
19:00 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1011
19:01 darbelo left #parrot
19:01 NotFound whiteknight: take a look at this commit and enjoy.
19:02 whiteknight NotFound: I enjoy every winxed commit :)
19:02 whiteknight what does __FUNCTION__ return?
19:02 NotFound This one can explode your mind.
19:03 NotFound whiteknight: Full name of the function.
19:03 whiteknight oh, nice
19:03 whiteknight I'll have to use that in Rosella now
19:03 whiteknight Foo.foo calls foo in Foo namespace?
19:03 NotFound Is intended for diagnostics only, but I'm open to ideas.
19:03 tadzik I like "using extern Test.More plan, is;"
19:04 NotFound whiteknight: it searchs the scope. If Foo is an accesible namespace, yes.
19:04 NotFound Static binding, the horror.
19:04 whiteknight when does it search the scope? At runtime or at compile time?
19:05 NotFound Compile time.
19:05 whiteknight damn. so close
19:08 NotFound whiteknight: compile time is more necesary, runtime can already be done with parrot means.
19:09 whiteknight NotFound: my problem is that rosella uses many different files, so I can't call functions in other files directly
19:09 whiteknight it's really not that big a deal
19:10 whiteknight I'm obviously doing okay without it
19:10 ShaneC joined #parrot
19:11 NotFound whiteknight: well, in different files a runtime access is needed even if we knew the locations. The static binding uses :subid
19:11 whiteknight okay
19:11 whiteknight NotFound: all I really want is a nicer syntax for using remote functions
19:11 NotFound I'll add something, but it will not be so static anyway.
19:12 whiteknight having to use "using" every time clutters the code
19:12 NotFound Give me time ;)
19:12 whiteknight NotFound: Of course! I'm not impatient. This namespace lookup stuff will keep me busy for a long time :)
19:13 Coke left #parrot
19:13 Coke joined #parrot
19:15 benabik joined #parrot
19:16 benabik ~~
19:18 dodathome left #parrot
19:19 ShaneC left #parrot
19:20 dodathome joined #parrot
19:21 dalek winxed: r1012 | NotFound++ | trunk/pir/winxed_compiler.pir:
19:21 dalek winxed: update installable files - significant changes, cross your fingers
19:21 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1012
19:39 alester I thinkk I get an inordinate amount of happy out of hunting down stupid little C problems.
19:48 dalek Rosella: b58ca3f | Whiteknight++ | src/unstable/string/ (2 files):
19:48 dalek Rosella: rearrange the Tokenizer interface a little bit so we can more readily customize the behavior in subclasses. Add a token map, which can be used to map certain character strings to pre-defined tokens
19:48 dalek Rosella: review: https://github.com/Whiteknig​ht/Rosella/commit/b58ca3f02c
20:06 alester left #parrot
20:09 NotFound No NCI thunk available for signature `STRING (ptr, ptr)'
20:09 alester joined #parrot
20:09 NotFound So I can't use Parrot_str_from_platform_cstring fot nci
20:10 whiteknight hmm
20:16 NotFound The same for Parrot_str_new_init
20:17 * Coke_ skips review!
20:24 mj41 joined #parrot
20:25 whiteknight Add the thunk
20:28 jevin left #parrot
20:30 whiteknight left #parrot
20:40 lucian_ joined #parrot
20:42 lucian left #parrot
20:44 mj41 left #parrot
20:45 benabik left #parrot
20:45 dodathome left #parrot
20:52 wknight-phone joined #parrot
20:53 wknight-phone left #parrot
20:58 theory left #parrot
21:04 davidfetter left #parrot
21:05 bacek joined #parrot
21:05 tcurtis ~~
21:07 dalek winxed: r1013 | NotFound++ | trunk/examples/Mysql.winxed:
21:07 dalek winxed: upadte example Mysql to recent changes in parrot NCI
21:07 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1013
21:12 perlite_ joined #parrot
21:15 perlite left #parrot
21:15 perlite_ is now known as perlite
21:20 bluescreen left #parrot
21:27 fperrad left #parrot
21:28 dalek winxed: r1014 | NotFound++ | trunk/examples/Xlib.winxed:
21:28 dalek winxed: upadte example Xlib to recent changes in parrot NCI
21:28 dalek winxed: review: http://code.google.com/p/w​inxed/source/detail?r=1014
21:33 theory joined #parrot
21:36 benabik joined #parrot
21:41 theory_ joined #parrot
21:45 theory left #parrot
21:45 theory_ is now known as theory
21:46 dalek parrot/m0-prototype: ad540b2 | cotto++ | src/m0/m0_interp.pl:
21:46 dalek parrot/m0-prototype: make the m0 interp run hello.m0b less improperly
21:46 dalek parrot/m0-prototype: review: https://github.com/parrot/parrot/commit/ad540b2349
21:48 benabik left #parrot
21:53 bacek left #parrot
21:56 davidfetter joined #parrot
22:00 benabik joined #parrot
22:00 benabik left #parrot
22:04 whiteknight joined #parrot
22:04 bacek joined #parrot
22:12 pmichaud Latest benchmark results (with updated toolset): http://gist.github.com/979705
22:14 cotto_work pmichaud: nice to see that not getting worse (though I really want to see it go down)
22:14 alester left #parrot
22:15 cotto_work http://fuzz-box.blogspot.com/​2011/05/resign-patterns.html
22:20 pmichaud I chose this set of builds to see how much change is attributable to parrot and how much to rakudo
22:20 pmichaud so, the difference from 2011.04/3.3.0 to 2011.04/3.4.0 is parrot improvmenet
22:20 whiteknight needs more improvement
22:20 pmichaud the difference from rakudo-master-3.3.0 to rakudo-master is rakudo improvement
22:21 pmichaud er, wait
22:21 pmichaud wrong
22:21 pmichaud the difference from 2011.04/3.3.0 to rakudo-master-3.3.0 is rakudo improvement
22:21 pmichaud (since both are running on the same parrot)
22:21 pmichaud the difference from 2011.04/3.3.0 to rakudo-master is overall improvement -- what our users will see
22:22 pmichaud etc.
22:23 pmichaud you can see where 2011.04/3.3.0 (used in the star release) is generally less performant than the 2011.01 star release, and why we're looking for another star release soon :)
22:26 bubaflub left #parrot
22:32 whiteknight i'm going to valgrind it now, run it during dinner
22:51 cotto_work me too, but I'm not sure if core.pm will be done before I leave for the day
23:02 whiteknight blah, I just built the wrong version of Parrot
23:05 hercynium left #parrot
23:06 cotto_work ow
23:07 bacek_at_work ~~
23:08 whiteknight hello bacek_at_work
23:08 bacek_at_work aloha, whiteknight
23:08 whiteknight bacek_at_work: I'm valgrinding core.pm now. Any particular results you think I should look for?
23:10 whiteknight I *really* wish this compile had some kind of status information
23:10 whiteknight if it could print out the name of each function it compiles, that would be fantastic
23:11 bacek_at_work whiteknight, I'm usually look at "self" adn "total" columns in kcachegrind.
23:14 pmichaud benchmark results for plum:  http://gist.github.com/979705
23:15 pmichaud whiteknight: are you valgrinding core.pm?
23:15 whiteknight yes
23:15 pmichaud omg
23:15 whiteknight hence my desire for some kind of status printouts
23:15 pmichaud I think I'd start with something smaller
23:16 pmichaud that's why I used the opsc stuff to begin with :)
23:17 cotto_work whiteknight: if it printed anything out, you'd be tempted to stare at it instead of doing something useful
23:17 whiteknight cotto_work: I believe that is useful. If there are certain places where it is obviously hanging for a long time, that's suspect
23:17 whiteknight if things seem to pass by quickly, it's just a matter of volume
23:18 pmichaud I guess I don't mind instrumenting NQP to have a "print as compiled" function.  I guess it'd need to go to stderr
23:19 whiteknight it doesn't need to be everywhere, it can be a temporary thing on my machine only
23:19 pmichaud well, if it's useful one place, it's useful many
23:19 whiteknight I'm just very interesting in trying to figure out why the core.pm build takes so long
23:19 pmichaud lots of lines of code, I suspect
23:20 pmichaud oh, wait
23:20 pmichaud nqp doesn't compile core.pm
23:20 pmichaud rakudo does
23:20 whiteknight I suspect so too, but if we can find someplace that is inexplicably O(N^5), that would be interesting too
23:20 pmichaud so we'd have to put it into rakudo
23:21 pmichaud that would be a bit trickier, since it's not just one place that subs and methods get parsed/compiled
23:21 whiteknight ==7668== More than 1000 different errors detected.  I'm not reporting any more.
23:21 whiteknight ==7668== Final error counts will be inaccurate.  Go fix your program!
23:22 whiteknight stupid valgrind
23:23 GeJ_ joined #parrot
23:23 pmichaud anyway, it's a 7800 .pm file that is being compiled into 178K of PIR
23:23 pmichaud so, lots of memory use
23:24 whiteknight we seem to be accessing a lot of uninitialized memory locations
23:24 whiteknight that's worisome
23:24 pmichaud note: 7800 lines of .pm being compiled into 178K lines of .pir
23:25 pmichaud anyway, yes, there's a way to view progress, now that I think about it
23:25 pmichaud just a sec -- let me build an up-to-date rakudo and test
23:26 tty234 left #parrot
23:26 GeJ left #parrot
23:26 tty234 joined #parrot
23:27 whiteknight is core.pm monolithic, or does it include files?
23:27 pmichaud it's pretty monolithic, iirc
23:27 whiteknight okay, so monitoring use/require wouldn't be too informative
23:27 whiteknight I have to suspect that at least some of the grammar rules are less than optimal
23:28 whiteknight if we can find functions or blocks that take longer to compile than others, we might be able to target a search for the particular offenders
23:28 whiteknight or, find the parrot features which are used the most heavily in the slow parts
23:29 pmichaud pass the --parsetrace option to the perl6.pbc compiler
23:29 whiteknight git pull?
23:29 pmichaud no
23:29 whiteknight oh, it's in htere?
23:29 whiteknight there
23:29 pmichaud it's already built into Rakudo
23:29 pmichaud yes
23:29 pmichaud it's already in nqp-rx
23:29 pmichaud it will output a line every time it starts a new grammar rule
23:29 whiteknight okay, I'll do that after I'm done valgrinding
23:29 whiteknight so...somewhere after the heat death of the universe
23:29 pmichaud (warning: lots of output ahead)
23:30 whiteknight oh wow, that's a lot of output. Maybe even more than I need
23:30 whiteknight I might have to grep it
23:30 pmichaud if you just pipe that to gr... right
23:30 pmichaud for example, you could look for  "PASS *statement"  and you'll only see the lines where a statement has been successfully parsed
23:31 whiteknight oh, ok
23:31 pmichaud note that the trace output goes to stderr, though
23:31 kid51 joined #parrot
23:31 pmichaud so you may have to do a few tricks with pipelining
23:32 whiteknight which grammar rules are responsible for functions and methods?
23:32 whiteknight reading through Actions.pm is like reading a foreign language
23:33 pmichaud routine_declarator ought to be good enough
23:33 pmichaud it won't tell you *what* routine it's just finished, but you'd get a line everytime one was finished
23:33 pmichaud (it also reports the offset within the file in the debug output, so that gives an idea of progress)
23:35 pmichaud http://gist.github.com/979836   # example cmd + trace
23:35 pmichaud the timestamps also tell you time between parsing each routine
23:37 whiteknight ok
23:38 pmichaud a perlscript could parse the trace output and tell you the actual routine names
23:38 pmichaud the format of the trace line is:   timestamp   offset/line# result   rule
23:38 pmichaud so, the number after the slash is the number of lines processed
23:39 whiteknight ok
23:39 whiteknight that's extremely useful information
23:42 whiteknight ...I really wish I hadn't started valgrinding core.pm
23:42 whiteknight blah
23:42 pmichaud of course, one downside of using the trace is that we're then valgrinding the trace, too
23:43 pmichaud afk, dinner
23:43 whiteknight yeah, I don't have trace on right now
23:46 dalek parrot: a115d7c | (Gerd Pokorra)++ | lib/Parrot/Configure/Options/Conf.pm:
23:46 dalek parrot: update "perl Configure.pl --help" output
23:46 dalek parrot: review: https://github.com/parrot/parrot/commit/a115d7cdf8
23:50 rurban_ joined #parrot
23:52 dukeleto http://www.readmespot.com/question/o/​316146/virtual-machines-of-the-future
23:52 bacek left #parrot
23:52 rurban left #parrot
23:52 rurban_ is now known as rurban
23:56 cotto_work dukeleto: I guess it's official.  Time to rest on our laurels.
23:57 whiteknight no, our laurels are too crufty. I propose we deprecate and rewrite our laurels

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

Parrot | source cross referenced