Perl 6 - the future is here, just unevenly distributed

IRC log for #parrotsketch, 2008-09-16

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

All times shown according to UTC.

Time Nick Message
07:19 particle1 joined #parrotsketch
12:04 kid51 joined #parrotsketch
12:05 kid51 Pre-posting report, then off to $job
12:06 kid51 * Had a couple of Perl 5-ish tasks that I thought were delegatable to others, so I posted on the list.
12:06 kid51 * Got 6 responses, 5 from completely new people -- which > number of tasks I had!
12:07 kid51 * Balint Szilakszi studied smartlinks-related tickets -- which forced me to do likewise.
12:08 kid51 * As result of this and Moritz's comments, I think we can yank smartlinks code from the distro.
12:08 kid51 * What we have is undocumented and doesn't work.  Have proposed patch.
12:09 kid51 * Anyone who sees a role for that code in our distro should speak up now.
12:09 kid51 * pmichaud et al:  Do you have Rakudo tasks that could be delegated to people like B�lint?
12:09 kid51 * EOR
12:10 kid51 left #parrotsketch
13:32 davidfetter joined #parrotsketch
15:40 pmichaud joined #parrotsketch
15:44 PacoLinux joined #parrotsketch
16:10 Wknight8111 joined #parrotsketch
16:18 contingencyplan joined #parrotsketch
16:28 cotto_work joined #parrotsketch
16:33 isop joined #parrotsketch
16:37 barney joined #parrotsketch
17:10 kj joined #parrotsketch
17:39 jhorwitz joined #parrotsketch
18:12 kj I don't have internet access at home, and leaving office now, so this is my report:
18:12 kj * cleanups, documentation and optimized (a bit) of pirc
18:13 kj * played with the idea of converting pirc's data structures to PMCs, but think it wouldn't be as efficient
18:14 kj * thanks to moritz++ for providing me with access to a linux box to test pirc there.
18:14 kj .eor
18:20 NotFound joined #parrotsketch
18:25 jonathan joined #parrotsketch
18:30 chromatic joined #parrotsketch
18:30 chromatic Hello everyone.
18:30 allison joined #parrotsketch
18:30 Wknight8111 hello
18:30 moritz hi
18:30 jhorwitz yo
18:31 moritz (kid51 and kj pre-posted their reports)
18:31 NotFound H
18:31 barney hi
18:31 * allison waves
18:31 chromatic Alright, let's go in order.
18:31 chromatic allison?
18:31 rurban joined #parrotsketch
18:31 pmichaud yhere.
18:32 allison - Fixed a number of failing tests on the pdd17mmd branch. We're down to 2 failing tests on Linux and 6 failing tests on Mac OS X. Remaining test failures appear to be GC-related.
18:32 allison whoops, pdd27mmd
18:32 allison - Removed deprecated functions.
18:32 allison - Updated tests to match the new MMD semantics (no more n_*, signature of an MMD vtable function matches the vtable function)
18:32 allison - Will work on initial language testing next.
18:32 allison EOR
18:32 chromatic barney?
18:33 barney fixed a couple of codingstd glitches
18:33 barney .eor
18:33 chromatic I fixed a couple of bugs, and then I fixed a couple of problems on the MMD branch.
18:34 chromatic Most importantly I found a better workaround for the HLL mapping problem.
18:34 chromatic cotto_work?
18:34 cotto_work * briefly broke rakudo by "fixing" get_*_keyed_int on reizable*array
18:34 cotto_work * will try again after the release
18:35 cotto_work * also fixed a few bug and closed a few ticket
18:35 cotto_work * tried to remove pioctl from trunk, but that will have to wait until after the IO milestone
18:35 cotto_work .eor
18:35 chromatic japhb?
18:35 smash joined #parrotsketch
18:36 chromatic jhorwitz?
18:37 jhorwitz branched mod_parrot to simplify the HLL layer.  These layers (mod_perl6, PHP, etc.) are now first-class Apache modules and can manage their own server and directory configurations.  still needs work before merging back into trunk
18:37 jhorwitz EOR
18:37 chromatic jonathan?
18:37 jonathan * Spent my Rakudo day mostly fixing various little bugs here and there
18:37 jonathan * Also spent more time on the MMD grant
18:37 jonathan * Switched Rakudo over to using Perl6MultiSub PMC
18:37 jonathan * Gets us much closer to being what the Perl 6 spec asks for - we can now dispatch based upon roles and have refinement types as tie-breakers
18:37 jonathan * Good enough to pass all of current spectest_regression, plus a couple of extra tests that were TODO'd started to pass also
18:37 jonathan * However, some bugs; one of them is something that passes in the PIR tests for the PMC, but fails when doing something similar from Rakudo; need to investigate why.
18:37 jonathan * Badly behind on writing up Rakudo day - will try and fix that tonight/tomorrow.
18:37 jonathan EOR
18:37 chromatic moritz?
18:38 moritz * enabled parallel testing in rakudo (mostly let others do the work for me; works fine)
18:38 moritz * I think we should try to attract even more Perl 5 developers by handing out cage tasks that are easy to do without much parrot knowledge (like kid51++ did)
18:38 moritz * implement a few trivial parsing constructs (m/../, qw/.../) that enabled a few more tests
18:38 moritz * Somebody should really fix the svn server.
18:38 moritz .end
18:38 chromatic NotFound?
18:38 moritz s/implement/implemented/ actually
18:38 NotFound * Added command line options -I and -L
18:38 NotFound * fix some bugs
18:38 NotFound EOR
18:39 chromatic particle?
18:39 chromatic pmichaud?
18:39 pmichaud ** Rakudo spectest_regression: 153 files, 3370 passing tests
18:39 pmichaud == Release management
18:39 pmichaud : 0.7.1 release will happen a little later this afternoon
18:39 pmichaud : get any NEWS, PLATFORMS, etc. commits in soon
18:39 pmichaud : let me know if there are any release blockers
18:39 pmichaud == Overall
18:40 pmichaud : Been answering questions on IRC and email
18:40 pmichaud : Been provoking questions on p6l
18:40 pmichaud == PCT stuff
18:40 pmichaud : Added 'newclosure' as a valid :pirop for the PAST::Compiler
18:40 pmichaud : Added note about changing current behavior of P6object .new_class method
18:40 pmichaud == NQP stuff
18:40 pmichaud : Fixed a bug where it didn't handle null values from RPA properly
18:40 pmichaud == Rakudo stuff
18:40 pmichaud : Answered lots of Rakudo and Perl 6 questions
18:40 pmichaud : Fixed the .kv method on Mapping/Hash
18:40 pmichaud : Fixed 'defined' to be a named unary
18:40 pmichaud : Cleaned up the grammar somewhat
18:40 pmichaud : Fixed statement modifiers occurring after listops
18:40 pmichaud == Queue 5 items
18:40 pmichaud eor
18:40 chromatic rurban?
18:40 rurban * just moved from graz to mainz for a month. super-luxus flat, but no stable internet yet.
18:40 rurban * more work on pdd30_install: Now I have 5 layout suggestions 1a-c, 2a-b
18:40 rurban * work on make test with already installed shared libparrot
18:40 rurban * cygwin070patches up2date
18:40 rurban * no time for jvm, but plans for perl5 B::PIR
18:40 rurban EOR
18:41 chromatic smash?
18:41 smash no report
18:41 chromatic Tene, are you back yet?
18:41 Tene I am!
18:41 Tene Just barely.
18:41 Tene I implemented gather/take for rakudo
18:41 mberends joined #parrotsketch
18:42 Tene Little bit more work on cardinal, nothing interesting.
18:42 Tene I made a branch to implement pmichaud's exceptions api proposal.
18:42 Tene I proposed an ExceptionHandler enhancement on the list.
18:43 Tene I'd like feedback on both of those.
18:43 Tene That's probably all.
18:43 Tene .eor
18:43 moritz Wknight8111?
18:44 Wknight8111 *Worked on /docs/book a little bit
18:44 Wknight8111 *Got a pugs commit bit, going to be working on the Perl 6 essentials book in there
18:44 Wknight8111 *Applied for a Perl 6 microgrant to work on these two books
18:44 Wknight8111 *Refactored Parrot_PCCINVOKE and friends for the pdd27mmd branch
18:44 Wknight8111 *More refactoring to do for it still, hoping to unify some things
18:44 Wknight8111 EOR
18:44 chromatic Wknight8111?
18:44 chromatic Let's go to question time then.  I'll start: what do we need to finish before the release?
18:46 pmichaud you mean the 1.0 release
18:46 pmichaud ?
18:46 allison the 0.7.1 release, I'm guessing
18:46 chromatic 0.7.1
18:46 pmichaud oh.  I figured we'd just release with whatever we have today -- didn't know that we had any specific milestones
18:47 pmichaud I'll look for deprecation items and see if they're available for removal
18:47 chromatic I mostly meant "What do you need us to do to help you?"
18:47 pmichaud ahhhhh
18:47 pmichaud just the standard release sorts of things -- update PLATFORMS, NEWS, AUTHORS, etc.
18:48 smash i'll do the debian packages after release, i've been tring to keep them up to date
18:48 pmichaud I don't know of any specific blockers or things that need to be addressed
18:48 chromatic Okay, good.
18:48 chromatic Any other questions?
18:48 pmichaud (if I'm wrong about that, please tell me :-)
18:48 pmichaud I have a bunch of items
18:49 pmichaud #1:  How can I stringify a Float for use as a PIR literal such that
18:49 pmichaud we don't lose a ton of precision?  Related: Is C<get_repr> the correct
18:49 pmichaud opcode for this?
18:49 pmichaud currently the methods I have available seem to only provide about 6 or 7 digits of precision
18:50 allison seems like a format print where you choose the precision would be sensible
18:50 allison sprintf-like
18:50 pmichaud do we have such a beast?
18:50 allison hmmm...
18:50 pmichaud and how would I chose the precision such that it works for both things like .00000000000001    and 2.7E+34 ?
18:51 NotFound The precision wanted may depend on the C type FLOATVAL maps to.
18:51 allison there is an sprintf opcode in src/ops/string.ops
18:51 pmichaud yes, but what specifier should I use?
18:51 allison can't say how reliable it is yet
18:52 allison pmichaud: can you make that a ticket and I'll attach it to the Strings milestone?
18:52 Tene queue one question from me.
18:52 pmichaud allison: okay.  Rakudo number processing and some tests are blocking on this issue, though.
18:52 allison pmichaud: unless it's something you're blocking on right now
18:53 pmichaud go ahead with Tene's question, because I think it's actually my question #2 :-)
18:53 Tene It isn't.
18:53 pmichaud go ahead anyway :-)
18:53 Tene NO U FIRST
18:53 Tene Fine.
18:54 Tene Does returning from a throw_from_c ever actually make sense?  Is that something we need to support?
18:54 allison you mean resumable exceptions at the C level?
18:54 Tene Because the docs claim that we can continue at the level of a C instruction, but I don't think we can make a parrot continuation that does that.
18:54 Tene Right.
18:55 Tene At the very least, we might want to support automatically resuming non-fatal unhandled exceptions, which I think might be possible.
18:55 allison at the moment there's some code in place to prevent it from returning, it restarts the runloop instead
18:56 NotFound If the C stack is dropped, can't be restored by a continuation.
18:56 allison it is desirable, but may not be possible under the current set up
18:56 allison NotFound: the C stack isn't dropped, because the handler is always invoked with the current C stack in place
18:57 Tene Is that something that's worth me trying to investigate, then?
18:57 allison NotFound: the C stack is only dropped after the handler is finished
18:57 allison Tene: It's worth looking into it, but feel free to report that it's something we'll need to delay until 2.0
18:57 Tene Okay.
18:57 Tene Thanks.
18:57 chromatic pmichaud, #2/3?
18:57 Tene goto pmichaud
18:58 pmichaud #2 is related to Tene's :-P
18:58 chromatic longjmp pmichaud env
18:58 pmichaud in general, can we get some feedback on the exceptions proposals he and I have made?  We'd like to know if we can consider merging his branch into trunk.  (My messages were subject "throw oddities in pdd23")
18:58 pmichaud don't need feedback immediately (unless it's available), but didn't want it to be warnocked
18:59 Tene chromatic responded in #parrot, but if anyone else comments, that's great too.
18:59 pmichaud ah, I didn't see the #parrot response
18:59 pmichaud #3 is for allison:  In the pdd27mmd branch, does   C< add $P0, $P1 >  still do the
18:59 pmichaud same as before?
19:00 allison do you mean add_p_p?
19:00 pmichaud yes.
19:00 allison or add_p_p_p
19:00 pmichaud add_p_p
19:00 allison yes, no change there
19:00 pmichaud okay, good.
19:00 pmichaud last question from me
19:01 pmichaud this probably needs longer discussion, perhaps on list, but any initial reactions ("yes that's right" or "no way!") would be appreciated on this one
19:01 allison (I'll take a look at the throw proposals on the list)
19:01 pmichaud #4
19:01 pmichaud For rakudo, it appears as though we will have to implement arrays
19:01 pmichaud and hashes such that each element is a Scalar container that
19:01 pmichaud then references the corresponding value.  In other words, a
19:01 pmichaud (non-lazy) array of <n> values will require 2*n+1 gc-able elements.
19:01 pmichaud Comments?
19:02 allison so the Scalar container will be a pmc pointer to a scalar value?
19:02 Wknight8111 have fun with that :)
19:02 allison is this because of some additional metadata needed for scalars?
19:02 pmichaud allison: yes, and it delegates all method calls and vtable methods (except a few) to its value
19:02 pmichaud metadata is part of it, but primarily it's in order to get the value and reference semantics correct
19:02 allison hmmm... it sounds highly inefficient
19:03 pmichaud in PIR there doesn't seem to be a way for me to refer to an array element by reference
19:03 allison it's worth talking through the value and reference semantics to see if we can make it possible to do it with one PMC
19:03 pmichaud yes, it sounds inefficient to me also, which is why I've been trying to avoid it, but I think I'm at a dead-end
19:04 allison what do you mean by "refer to an array element by reference"?
19:04 NotFound pmichaud: returning a proxy in [ ] can be a way.
19:04 pmichaud sub  foo($x is ref) { ... };    my @a = 1, 2, 3;   foo(@a[1])
19:04 jonathan pmichaud: Maybe we can have a reference PMC that refers to an array element.
19:04 jonathan pmichaud: And only create it when the array is indexed into.
19:04 * particle shows up with no new status to report
19:04 pmichaud jonathan: I've thought about that, but that seems to just degenerate to having a Scalar for every element
19:05 jonathan Depends how you're using the array.
19:05 pmichaud I'd rather create the Scalar object once (for the array) than once-per-indexed-access
19:05 jonathan If you're iterating over it in a non-rw way, you'd probably never need to make any.
19:05 allison so that would pass an array element by reference, so changes to $x would modify the [1]th position in the array, but would not modify whatever element was originally in the array?
19:06 pmichaud allison:  partially, but I also need to know about any type constraints that are on the Array
19:06 pmichaud e.g., if I had done    my Int @a = 1,2,3;
19:06 Tene So, I saw mention on the list of some parrot developer conference, hosted by google?  What's likely to happen there?  Is there any vague plan, or just throw a bunch of parrot devs together and see what happens?
19:07 pmichaud also, it appears that Perl 6's value and reference semantics are dependent on values being immutable
19:07 allison Tene: it's specifically planning the final stages to the 1.0 release
19:07 pmichaud so, something as simple as   $x = @a[$y]   causes the Scalar $x to refer to the value in @a[$y]
19:07 pmichaud if we then increment @a[$y], then we have to re-bind it to a new value -- we can't just increment the value that's there (because $x is referring to it)
19:08 moritz pmichaud: no, that copies it
19:08 pmichaud moritz: see the discussion on p6l :-)
19:08 moritz pmichaud: it's most likely wrong anyway :/
19:08 rurban joined #parrotsketch
19:09 allison There are several ways to do it aside from adding a layer of indirection to every array element
19:09 pmichaud it does not cause the symbol $x to refer to @a[$y], it causes the container $x to refer to the value referenced by @a[$y]
19:09 allison largely, it seems to be a custom Array type
19:09 pmichaud part of the issue seems to be that once I do    set $P0, $P1[key]    there's not really a way for $P0 to keep its association with $P1
19:10 allison That could be fixed
19:10 allison add an additional attribute to the scalar types
19:10 Wknight8111 I don't see why $x = @a[$y] should be a reference, unless you were trying to extend lazy array semantics to scalars too
19:10 allison but, a scalar could be stored in multiple arrays at the same time
19:11 pmichaud I do know that I've been asking about this since at least 2005, but nobody seems to come up with any concrete answers   :-|
19:11 moritz Wknight8111: I don't think it actually is, but there's some confusion floating around that. However $x := @a[$y] does create a reference
19:11 Wknight8111 right, so the "=" should create a copy instead
19:11 pmichaud no, $x := @a[$y]  causes the symbol $x to bind to the container given by @a[$y]
19:11 allison pmichaud: well the semantics do seem rather odd
19:12 pmichaud allison: they're really just traditional perl semantics, afaict
19:12 allison perl 5 is much simpler
19:12 pmichaud (except for binding, yes, I agree.)
19:13 pmichaud so, how do I move this forward?
19:13 rurban btw: I had cygwin blockers for 0.7.1 but no ticket. just reports on irc
19:13 pmichaud rurban: are they still blockers -- i.e., should I hold the release?
19:14 rurban i don't have enough time now, and I can fix it afterwards also
19:14 allison pmichaud: I don't really have a good answer for you at the moment. if you have to go to a dual layer for scalars, do it, and we'll try to refactor it out later
19:14 rurban it's cygwin only I guess.
19:14 moritz pmichaud: I think that Darren's reply is the best so far, and it does say taht stuff is copied, but it's usually references that are copied
19:14 allison pmichaud: really, it'll probably take us a couple of passes on implementing the feature anyway, so might as well implement one that's intended as a throw-away
19:14 pmichaud moritz: "reference" is effectively the same as saying "scalar"
19:15 pmichaud moritz: i.e., a reference is an object that contains a pointer of some sort to another object
19:15 pmichaud moritz: which brings me back to where I started -- an array has to have a reference object for each element in addition to the value object (in order for Darren's reply to work in Parrot)
19:16 moritz pmichaud: I don't think it makes sense to discuss Perl 6 semantics in #ps...
19:16 rurban pmichaud: http://irclog.perlgeek.de/​parrot/2008-09-14#i_567329 src/string.c:2241: failed assertion '(s)->encoding' in loadlib (cygwin has no $ENV{LANG})
19:16 moritz pmichaud: and it's a much too convoluted topic to be settled here
19:16 pmichaud it does because I'm saying the Parrot model doesn't really support the semantics we need
19:16 allison moritz: well, we're discussing how to implement it in Parrot
19:16 moritz ok
19:17 pmichaud or, what I'm saying is that the only way I have found to implement Perl 6 semantics in Parrot is to have the extra layer of indirection, and that seems inefficient to me (and allison too)
19:17 pmichaud so that's a potential deficiency in Parrot at the moment that we have to figure out how to resolve.
19:17 allison could you do it with a special Scalar PMC that acts as both container and value?
19:17 pmichaud wouldn't it also have to have a type for the value?
19:18 pmichaud i.e., you mean I should have ScalarInt, ScalarNum, ScalarStr ?
19:18 allison well, perl 5 has only SV, that contains storage for all possible types
19:18 pmichaud yes, I know
19:19 allison and, being "typed" in perl 6 is not necessarily the same thing as a Parrot PMC type
19:19 pmichaud it might be possible to do it if Integer/Float/String could morph into a Scalar container (and vice-versa)
19:19 NotFound rurban: What is the relation between LANG and the encoding of a string?
19:19 pmichaud but it's not just Integer/Float/String, it's bascially anything that is an immutable type
19:20 rurban_ joined #parrotsketch
19:20 allison you'd probably have to handle the morphing externally, unless you're dealing with Perl6Integer/Perl6Float/Perl6String, etc
19:20 pmichaud there is an advantage to using the all-containers-as-scalars approach, however, and that is that simple assignment no longers involves making copies of objects (so we do get a gain in gc-able objects there)
19:21 pmichaud i.e., right now   $x = 'foo'   involves making a Str object for the constant 'foo' and then copying it into $x
19:21 pmichaud (and the copy involves cloning foo)
19:21 spinclad could you use a special Scalar PMC that references to the array (for type...) and the array cell, so when you aren't talking about it, it needn't be there?
19:21 pmichaud spinclad: possibly, but again, that degenerates to creating a PMC on every indexed access instead of once on first reference
19:21 rurban__ joined #parrotsketch
19:22 pmichaud I'd rather create it once at the beginning than once on every access
19:22 allison once on first reference is better than once on array creation (since many/most array elements will never be used in this fashion)
19:22 pmichaud I'm not talking about array creation
19:22 chromatic memoized on first reference
19:23 pmichaud Im saying once on first refernce
19:23 pmichaud i..e, having a PMC that references the array and index is not much better than creating the Scalar container the first time I have a keyed access
19:23 allison so, the first time an array element is used as a reference, it's element gets replaced by a Scalar that points to the original array element
19:23 allison that seems like a tolerable first stab at the problem
19:24 pmichaud yes, except we don't have any way of knowing "used as a reference"
19:24 pmichaud so it's really on first access
19:24 allison less tolerable
19:24 pmichaud there's not an opcode that tells me "get a reference" -- all I have is get_pmc_keyed
19:24 allison get_ref_keyed_int?
19:24 pmichaud since I don't know how that pmc will be used (i.e., if it will be modified), I have to assume it will be referenced
19:25 allison I'm not sure we have a general use for get_ref_keyed,
19:25 pmichaud note that everything I'm writing for arrays applies to hashes as well.
19:27 pmichaud (and yes, these are the same issues that led us to implement a 'copy' opcode late last year.  I'm now reaching the limitations of 'copy'.)
19:27 NotFound rurban: I don't see the road between not having LANG env var and a string lacking encondig.
19:27 allison ah.... this is that weird Perl semantics where modifying a variable that was stored in the array modifies the element in the array
19:27 rurban pmichaud: The encoding error came in the last four days, so I should find it by my own also. Another new language problem is src/pmc_freeze.c:814: failed assertion '(int)io->image->bufused >= 0'
19:27 pmichaud that's a part of it, yes.
19:27 allison but, isn't that what 'morph' was intended to implement?
19:27 rurban NotFound: Just wild uninformed guessing
19:28 allison that you keep the same container, but change the value it points to?
19:28 pmichaud yes, but morph was broken in that way
19:28 allison in what way?
19:28 pmichaud i.e., as morph is implemented, every type has to know how to morph itself into every other type
19:28 NotFound rurban: Can't you do a backtrace on cygwin?
19:28 pmichaud that's why we implemented 'copy'
19:28 allison yes, that is broken
19:28 pmichaud 'copy' keeps the same PMC but changes its value
19:29 rurban I can, but not now.
19:29 allison okay, well in order to implement a true generational gc we may have to add an extra layer of indirection to PMCs themselves, that may solve your problem
19:30 pmichaud it may.  my overall feeling is that parrot's current set of opcodes aren't sufficient to handle references in aggregates
19:30 allison (we can't currently ever move PMCs)
19:30 rurban indirect PMC++
19:30 rurban very important also for compating gc
19:30 spinclad (compacting)
19:30 allison pmichaud: that's certainly true, but the current set of opcodes are all that the current PMC implementation can support anyway
19:31 Wknight8111 gc covers more then just PMCs though, you would have to add similar indirection to strings and other pobjs too
19:31 allison Wknight: yes
19:31 pmichaud well, at one time I had played with an    assign_p_k_p opcode, to augment set_p_k_p
19:31 Wknight8111 not to mention objects that aren't isomorphic with pobjs, like PMC_EXT, which I've been trying to have managed
19:32 rurban pin-pointed PMC's on the other hand are nice to have for nci callbacks (gtk2 e.g.)
19:32 pmichaud right now the only operation we can perform on aggregates is "bind" and "lookup".  There's not a way to assign to an aggregate value.
19:32 pmichaud er, assign to an aggregate element
19:32 pmichaud (except via 'copy')
19:32 allison pmichaud: I'm happy to add the opcode, if you implement an aggregate type that uses it
19:32 allison pmichaud: it'll probably need additional vtable functions too
19:32 pmichaud yes, it might
19:33 pmichaud anyway, I'll give one last crack at trying to make things work within the current implementation
19:33 pmichaud (i.e., without the extra Scalar PMCs)
19:34 particle a patch to the pmc pdd is probably the first step for assign_*
19:34 pmichaud a proposed patch, perhaps.  But I'd prefer to see if it'll even work first.
19:34 particle yes, proposed patch, not commit.
19:34 pmichaud anyway, eoq for me  (#5 I'll take up on #parrot later)
19:38 jhorwitz left #parrotsketch
19:39 spinclad (chromatic is away? gavel?)
19:40 allison that's a wrap, thanks everybody!
19:40 pmichaud thanks, all
19:41 moritz ciao
19:42 chromatic Yep, thanks all.
19:42 pmichaud left #parrotsketch
19:42 chromatic left #parrotsketch
19:49 PacoLinux left #parrotsketch
19:52 rurban left #parrotsketch
19:53 mberends left #parrotsketch
19:55 Wknight8111 left #parrotsketch
20:01 cotto_work left #parrotsketch
21:07 NotFound left #parrotsketch
23:23 jonathan left #parrotsketch

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