Camelia, the Perl 6 bug

IRC log for #perl6, 2008-11-03

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:25 meppuru good night
00:43 wknight8111 joined #perl6
01:11 nacho_ joined #perl6
01:11 nacho__ joined #perl6
02:03 alc joined #perl6
02:57 rhesa joined #perl6
02:59 eternaleye joined #perl6
03:00 yahooooo3 joined #perl6
03:01 [particle]1 joined #perl6
03:01 jiing__ joined #perl6
03:01 tewk joined #perl6
03:17 aindilis joined #perl6
03:19 rintaro joined #perl6
03:24 lambdabot joined #perl6
03:36 alester joined #perl6
03:50 bacek__ joined #perl6
03:55 Psyche^ joined #perl6
04:18 eternaleye_ joined #perl6
04:19 aindilis joined #perl6
04:46 z80ASM joined #perl6
05:27 tewk_ joined #perl6
05:49 Bzek joined #perl6
06:59 iktome_ joined #perl6
07:00 adc_Penner joined #perl6
07:33 DarkAkorn joined #perl6
07:34 * DarkAkorn pokes moritz_
07:34 DarkAkorn him, or anyone else framiliar with the irclogbot around?
07:40 pbuetow joined #perl6
07:41 kanru joined #perl6
07:47 bacek_ joined #perl6
08:27 schmalbe joined #perl6
08:28 eternaleye_ joined #perl6
08:47 smtms joined #perl6
08:51 bacek joined #perl6
09:09 riffraff joined #perl6
09:17 masak joined #perl6
09:25 moritz_ @tell DarkAkorn just ask your question, and stay around long enough to see the answer ;)
09:25 lambdabot Consider it noted.
09:26 masak λ-bot! you're back!
09:28 tomyan joined #perl6
09:33 iblechbot joined #perl6
09:44 riffraff hi
09:44 masak y0
09:44 ejs joined #perl6
09:51 zamolxes joined #perl6
10:07 masak r32205 is responsible for the new, unfortunate junction behaviour.
10:08 masak it was created by bacek and committed by moritz_
10:08 moritz_ masak: feel free to revert it (and add a test case)
10:08 lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
10:09 masak its description is "Refactored Junction.pir.", which sounds about right
10:11 bacek masak: what the problem with junctions?
10:12 masak rakudo: say ("A" eq "A"|"B").perl
10:12 p6eval rakudo 32313: OUTPUT[any(Bool::True, Bool::False)␤]
10:12 masak that's the problem.
10:12 bacek masak: it's expected behaviour, AFAIU
10:13 masak bacek: then I'm not surprized that you broke rakudo :P
10:13 masak bacek: imagine that behaviour in an if statement
10:13 masak (which is exactly what happened in November)
10:13 bacek pugs: say ("A" eq "A"|"B").perl
10:13 p6eval pugs: OUTPUT[(Bool::False | Bool::True)␤]
10:13 moritz_ masak: that's fine, but it should correctly collaps in boolean context
10:13 masak ok, maybe
10:14 bacek we just need additional development for junctions ;)
10:14 masak is there a reason for it not to collapse earlier?
10:14 moritz_ perl6: say (? ("A" eq "A"|"B")).perl
10:14 p6eval rakudo 32313: OUTPUT[any(Bool::True, Bool::False)␤]
10:14 p6eval ..pugs: OUTPUT[(Bool::False | Bool::True)␤]
10:14 p6eval ..elf 22847: OUTPUT[0␤]
10:14 moritz_ masak: is there a reason to special-case some operators?
10:14 bacek afk # will backlog
10:15 masak moritz_: hm, maybe not.
10:17 masak people can collapse explicitly if they want to.
10:18 moritz_ that's the general idea of junctions, yes.
10:20 masak it's probable bacek's patch had other benefits that I'm not aware of
10:21 masak but the fact that it broke this spectest which I haven't written should be considered serious enough to revert it.
10:21 masak s/written/written yet/
10:21 * masak writes the spectest
10:32 rindolf joined #perl6
10:33 elmex joined #perl6
10:43 masak rakudo: say (?any(Bool::True, Bool::False)).perl
10:43 p6eval rakudo 32314: OUTPUT[any("1", "0")␤]
10:45 masak hm. something's still wrong. :/
10:48 moritz_ masak: did you re-open the ticket in which bacek's patch was?
10:49 masak no, I didn't see any ticket number.
10:49 masak still writing that test.
10:49 moritz_ my bad, I forgot to mention it in the commit message ;/
10:50 masak happens to the best :)
10:50 * masak looks forward to the near future when VCSes and RT systems will grow closer to each other and even more automatic
10:53 moritz_ a simple svn post-commit hook that scans for "closes RT #\d+" or "closes [perl #\d+]" and actually closes the ticket would b a start.
10:53 pugs_svn r22856 | masak++ | [S03-junctions/boolean-context.t] added test for collapsing of junctions in boolean context
10:53 masak moritz_: aye.
10:54 masak & lunch
10:58 moritz_ masak: it's http://rt.perl.org/rt3/Tic​ket/Display.html?id=60168
10:59 lambdabot Title: #60168: [TODO] handle Junction threading in dispatch code
11:03 penk joined #perl6
11:07 KidShenck joined #perl6
11:12 bacek perl6: say  ("A" eq "A"|"B").perl
11:12 p6eval elf 22847: OUTPUT[␤]
11:12 p6eval ..rakudo 32314: OUTPUT[Bool::True␤]
11:12 p6eval ..pugs: OUTPUT[(Bool::False | Bool::True)␤]
11:13 bacek masak: it's bad idea to commit test that wrong and uncommit patch that's right :-/
11:19 smg joined #perl6
11:21 bacek perl6: say ?(Bool::True|Bool::False)
11:21 p6eval pugs: OUTPUT[any(VBool False,VBool True)␤]
11:21 p6eval ..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
11:21 p6eval ..elf 22847: OUTPUT[1␤]
11:22 bacek perl6: if(Bool::True|Bool::False) { say "foo" } else { say "bar" }
11:22 p6eval elf 22847: OUTPUT[Parse error in: /tmp/0gn7I1EcOI␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: if(Bool::True|Bool::False) { s␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
11:22 p6eval ..STD_r...
11:22 p6eval ..pugs, rakudo 32314: OUTPUT[foo␤]
11:24 zamolxes joined #perl6
11:31 bacek perl6: say (Bool::True|Bool::False) eq 'Bool::False'
11:31 p6eval elf 22847: OUTPUT[␤]
11:32 p6eval ..pugs: OUTPUT[any(VBool False)␤]
11:32 p6eval ..rakudo 32314: OUTPUT[0␤]
11:32 bacek perl6: say (Bool::True|Bool::False) eq 'Bool::True'
11:32 p6eval elf 22847: OUTPUT[␤]
11:32 p6eval ..pugs: OUTPUT[any(VBool False)␤]
11:32 p6eval ..rakudo 32314: OUTPUT[0␤]
11:40 pugs_svn r22857 | bacek++ | Removing wrong test
11:40 bacek perl6: say ~(Bool::True|Bool::False)
11:41 p6eval pugs: OUTPUT[any(VStr "",VStr "1")␤]
11:41 p6eval ..rakudo 32314: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
11:41 p6eval ..elf 22847: OUTPUT[Bool::Vs}we␤]
11:44 bacek perl6: say ~((Bool::True|Bool::False) eq 'Bool::True')
11:44 p6eval elf 22847: OUTPUT[␤]
11:44 p6eval ..pugs: OUTPUT[any(VStr "")␤]
11:44 p6eval ..rakudo 32314: OUTPUT[0␤]
12:01 zamolxes_ joined #perl6
12:14 zamolxes joined #perl6
12:20 sri_kraih_ joined #perl6
12:22 Lorn joined #perl6
12:42 z80ASM joined #perl6
12:59 araujo joined #perl6
14:04 penk left #perl6
14:08 orafu joined #perl6
14:12 cognominal joined #perl6
14:19 orafu joined #perl6
14:45 pedrob joined #perl6
14:50 ejs joined #perl6
15:01 alester joined #perl6
15:09 Gothmog_ joined #perl6
15:11 ejs joined #perl6
15:11 sri_kraih_ joined #perl6
15:11 bacek joined #perl6
15:11 schmalbe joined #perl6
15:11 aindilis joined #perl6
15:11 lambdabot joined #perl6
15:11 yahooooo3 joined #perl6
15:11 szbalint joined #perl6
15:11 audreyt joined #perl6
15:11 alech joined #perl6
15:11 Maddingue joined #perl6
15:11 aindilis` joined #perl6
15:27 cognominal_ joined #perl6
15:35 aindilis` joined #perl6
15:35 ejs joined #perl6
15:35 sri_kraih_ joined #perl6
15:35 bacek joined #perl6
15:35 schmalbe joined #perl6
15:35 lambdabot joined #perl6
15:35 yahooooo3 joined #perl6
15:35 szbalint joined #perl6
15:35 audreyt joined #perl6
15:35 alech joined #perl6
15:35 Maddingue joined #perl6
15:49 [particle] joined #perl6
16:04 jhorwitz joined #perl6
16:11 TimToady Cute Trick of the Day: alias A and U to tryfile, and then just paste "svn up" output of t/ into the shell to syntax check all recent checkins  :)
16:13 moritz_ nice, but also needs an alias for UU (at least in general) ;)
16:14 TimToady could just teach tryfile to read stdin and throw away leading svn info, since tryfile can now handle multiple parses
16:16 moritz_ is that more efficient than starting multiple times?
16:16 moritz_ and if yes, is Moose to blame? ;)
16:18 pugs_svn r22858 | lwall++ | [tryfile] allow files specified by stdin, with knowledge of svn output
16:18 pugs_svn r22858 | lwall++ | [STD] don't need inaccurate $COMPILING::LINE anymore
16:19 TimToady Moose might be to blame for why it's leaking memory, which is the main problem with doing multiple parses in one process
16:20 TimToady but it saves recompiling 1.8mb of Perl 5 code each time (well, each time except the first...)
16:21 moritz_ decommute &
16:22 TimToady well, more like 2MB after you add in all the other modules
16:22 TimToady 1.8 millibits isn't very big on its own :)
16:23 masak joined #perl6
16:24 [particle] i wonder what the physical size of a bit is nowadays compared to 20 years ago
16:25 z80ASM joined #perl6
16:25 [particle] on magnetic storage, of course
16:31 hercynium joined #perl6
16:35 rindolf joined #perl6
16:38 meteorjay joined #perl6
16:51 Exodist joined #perl6
16:57 justatheory joined #perl6
17:04 justatheory joined #perl6
17:16 ruoso joined #perl6
17:33 zamolxes joined #perl6
17:34 ruoso Hello!
17:34 masak y0
17:36 * ruoso goes out for two days and have 600 emails to read... *sigh*
17:42 iktome joined #perl6
17:47 pedrob joined #perl6
17:56 jauaor joined #perl6
17:56 jauaor Hello
17:56 moritz_ hi
17:58 * jauaor just notices a new perl6 is coming to life for next year
17:58 jauaor book*
17:58 moritz_ which one?
17:58 * moritz_ didn't hear of anything
17:59 jauaor Beginning Perl 6
18:00 moritz_ by whom?
18:00 jauaor http://www.amazon.com/Beginning-Perl-Novice-​Professional/dp/1590598334/ref=sr_1_1?ie=UTF​8&amp;s=books&amp;qid=1225735083&amp;sr=1-1
18:00 lambdabot http://tinyurl.com/6xfvkr
18:00 adc_Penner joined #perl6
18:02 * moritz_ wonders if James Lee hangs out here occasionally, and if yes, under which nick
18:03 * ruoso admires brave people that publish a book hoping that we have a production-ready implementation in 3 months.
18:04 * [particle] expects that date will be revised
18:06 * jauaor just wonders if it is worthy buying considered the current state of the language
18:06 ruoso jauaor, the spec is fairly stable...
18:06 ruoso so it's probably a good buy
18:06 jauaor I see
18:07 ruoso it might be a little frustrating that not all features will be available yet
18:07 moritz_ heck, they can't even test 50% of their code examples
18:09 jauaor :-P
18:09 * jauaor will probably oder this one
18:12 pugs_svn r22859 | ruoso++ | [mildew] it seems viv is keeping ws in the ast now... so lets just ignore it..
18:16 ruoso is 'if' a topicalizer?
18:17 moritz_ ruoso: not unless you use 'if $expr -> $_ { .... }'
18:17 ruoso hmm... why would someone use '-> $_ ' if that is the default signature?
18:18 moritz_ it's not, I think
18:18 ruoso hmm... ok... it's actually '$_ is rw = $OUTER::_'
18:18 moritz_ otherwise {1;} would have arity 1
18:18 ruoso if it doesn't, it's wrong...
18:19 ruoso perl6: { $_.say }.("Hello World");
18:19 p6eval pugs, rakudo 32317: OUTPUT[Hello World␤]
18:19 p6eval ..elf 22847: OUTPUT[Parse error in: /tmp/Qmfo4ccnL4␤panic at line 1 column 10 (pos 10): Statement not terminated properly␤WHERE: { $_.say }.("Hello World");␤WHERE:          /\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:355:in `eat_terminator'␤  STD_red/std.rb:269:in `block in
18:19 p6eval ..statem...
18:19 ruoso pugs: { $_.say }.signature.arity;
18:19 p6eval pugs: OUTPUT[*** No such subroutine: "&arity"␤    at /tmp/qpTnDZBUAj line 1, column 1-27␤]
18:19 ruoso pugs: { $_.say }.signature.perl;
18:19 p6eval pugs: RESULT[":(\$_ is rw is ref)"]
18:19 scrottie joined #perl6
18:20 moritz_ afk
18:20 ruoso so, unless if EXPR POINTYBLOCK is a different statement_control
18:21 ruoso it should be consistent
18:21 ruoso either it is or it isn't a topicalizer
18:21 ruoso pugs: if "Hello World" { .say }
18:21 p6eval pugs: OUTPUT[␤]
18:21 ruoso rakudo: if "Hello World" { .say }
18:21 p6eval rakudo 32317: OUTPUT[␤]
18:21 ruoso ohkay...
18:21 ruoso it doesn't seem to be a topicalizer...
18:23 ruoso and it's probably better that way... otherwise for @foo { if .something { $_ is something different } }
18:26 ruoso @tell pmurias how do you keep track of which mold frame registers you use? should it just generate a random name for them and expect a later optimization that would consolidate the usage?
18:26 ruoso er... lambdabot?
18:28 lambdabot Consider it noted.
18:28 ruoso wow... 2 minutes delay
18:36 * ruoso having a hard time understanding how viv returns "if"
18:37 meppl joined #perl6
18:39 * ruoso wonders what is viv's xblock and pblock
18:41 [particle] pblock as in pointy block?
18:41 [particle] no idea, just guessing
18:44 azawawi joined #perl6
18:44 azawawi hi
18:46 ruoso [particle], the most interesting part is that a xblock contains both the if expr and the block to execute if the condition is met
18:46 ruoso the last being the so-called pblock
18:47 ruoso maybe it's something generic for statement_controls
18:47 ruoso I wonder if TimToady can shed some light...
18:51 rindolf joined #perl6
18:57 jferrero joined #perl6
19:03 PZt joined #perl6
19:09 ruoso hmmm... viv seems 'if True {...}' as 'if &True() {...}'
19:09 ruoso is that expected?
19:10 TimToady generically, Type() and Type arg are considered type coercions
19:11 TimToady possibly we should restrict it to () forms so that enum values don't look for a following arg
19:11 TimToady (but I thought I'd done that already...)
19:12 azawawi hi TimToady
19:12 ruoso hmm.. does that mean we need to have &True in the scope?
19:12 ruoso or is there some other magic here...
19:12 ruoso like trying to see if its a known type before trying to see if its a routine
19:12 ruoso s/its/it's/g
19:13 ruoso or maybe looking for a type after the lookup for the routine fails
19:14 TimToady but anyway, it's parsing them all as functions currently, whether or not there are arguments expected
19:15 ruoso you mean it depends on the runtime state...
19:15 TimToady a constant is just a non-stateful 0-ary function anyway
19:15 ruoso I might agree to that, but there's a difference in how things are handled in the lexical scope
19:16 ruoso does that mean that the types are also registered as a routine of the same name?
19:16 TimToady essentially, yes
19:16 TimToady Int() is a function call that converts to type Int
19:17 pbuetow joined #perl6
19:17 TimToady but Int $x is a two-terms-in-a-row error
19:17 TimToady because Int is a type
19:18 ruoso hmm... I suppose we're going to catch that error by the fact that Int() signature is empty
19:19 TimToady it's not empty
19:19 ruoso it's not?
19:19 ruoso what is it then?
19:19 TimToady Int($x) has to bind to something...
19:19 TimToady it won't bind to a 0-ary sig
19:19 ruoso hmm... Int($x) and Int $x are not going to be parsed the same way?
19:20 TimToady no, see token args
19:20 ruoso ok... compilation depending on the runtime state ...
19:21 TimToady the parsing of types has always depending on predeclaratoin
19:21 TimToady s/oi/io
19:21 ruoso isn't that going to make it really hard to split compilation from runtime?
19:22 TimToady declarations are not "run-time" in that sense
19:23 TimToady only in the sense that all declarations run stuff in the compiler
19:23 ruoso but potentially stuff in BEGIN will cause the same types of dependencies it does in p5
19:24 TimToady in theory, but not in practice
19:24 pugs_svn r22860 | ruoso++ | [mildew] starting the implementation of "if"
19:26 ruoso TimToady, Is that just because you said so? meaning that we assume doing that kind of thing in BEGIN is subject to breakage...
19:29 ruoso that actually makes sense...
19:29 ruoso that probably means that all values used in BEGIN should be serializable...
19:30 TimToady BEGIN is like eval, its use is indication that there is some more specific mechanism missing; p6 attempts to supply those missing mechanisms
19:31 ruoso ok... so that also probably means we're going to have a "shared library compilation" mechanism...
19:32 ruoso that includes dynamic linking of the dependencies...
19:33 TimToady importation is now defined in terms of aliasing from subpackages representing export tags, for instance
19:34 ruoso my question is really on how the compiler creates the "bytecode" (or whatever) that represents that comp_unit...
19:34 cognominal joined #perl6
19:34 ruoso does it assume you're going to discard any side-effects and just serialize the package ?
19:35 TimToady side-effects are not allowed in that sense
19:35 ruoso but can't really be prevented...
19:35 ruoso which mean that we can only ignore them
19:35 TimToady there's this wonderful word used by the Ada spec: "erroneous"
19:36 TimToady that which is erroneous is wrong, but the compiler is not required to check for it
19:36 TimToady just "don't do that"
19:37 ruoso ok... that brings us back to the "monkey patch" discussion
19:37 TimToady use one of the official polymorphism mechanisms instead
19:37 ruoso what happens if a module modifies a global package in BEGIN?
19:37 TJCRI joined #perl6
19:37 ruoso do we just ignore it and serialize only its own package?
19:37 TimToady then the global package is modified, oh well
19:37 ruoso right... in compile-time
19:38 ruoso but if that comp_unit is now compiled,
19:38 TimToady then the changes are likely lost
19:38 ruoso right...
19:38 ruoso so basically it serializes the package of that comp_unit
19:38 TimToady we don't rely on globals nearly as much as some people seem to think
19:39 TimToady globals are really only for the run-time
19:39 ruoso I know... I know...
19:39 TimToady nearly everything else is either defined lexically or polymorphically
19:39 ruoso my question is about what to do with the bad code
19:39 ruoso not how to write good code
19:40 TimToady the compiler is allowed to warn if it notices things that it knows are wrong
19:40 ruoso it also seems to me that this requires that all aliasing should not be definitive in compile time
19:40 ruoso it should be a symbolic link, not a hard link...
19:41 TimToady it's already that way for types within methods
19:41 TimToady they are treated virtually
19:41 ruoso right... but that applies for everything imported
19:41 AzureStone joined #perl6
19:41 ruoso not only types
19:41 ruoso otherwise we have a "static link"
19:41 TimToady has to be resolved at some point
19:42 ruoso it just can't be at compile time...
19:42 ruoso so we can draw the boundary of what's defined here
19:42 ruoso and what's defined outside
19:42 TimToady we typically import into lexical or package scope, not global
19:42 ruoso sure sure...
19:42 ruoso but even then...
19:43 ruoso if we're serializing the package... we have to serialize "a link to Foo", not recurse into serializing "Foo" itself
19:43 TimToady gotcha
19:45 TimToady so either we hard link at INIT time or at START time (first use)
19:45 TimToady or are you suggesting even later than that, as in OO?
19:47 ruoso well... maybe that's something for optimizers
19:47 ruoso we just assume it can only be done at INIT time onward
19:47 TimToady we're kinda trying to nail down module APIs by version so that they're not too terribly mutable
19:48 TimToady the decision of which version to compile against is likely made at compile time, so we know exactly what set of symbols are available
19:48 ruoso I wonder if we really want to make binary-depends like
19:49 ruoso because maintaining that requires a lot of effort
19:49 ruoso (as a sysadmin, I mean)
19:49 TimToady big shops already manage multiple versions, and want things to stay the same after they're nailed down
19:50 ruoso even if there isn't a versioned dependency in the source?
19:50 TimToady I'm saying we probably install a versioned dependency at compile time
19:50 ruoso I know... I'm just wondering if that's really a good idea...
19:51 TimToady we must at least record which version we compiled against
19:51 ruoso yes... recording is nice..
19:51 ruoso but enforcing might just require useless recompilations
19:51 TimToady the idea in p6 is that we never throw old versions away as long as anyone is using them
19:52 ruoso that's pretty much how Debian manages binary dependencies
19:52 TimToady there could be a mechanism for tweaking the dependency and testing without recompilation, I suppose
19:53 TimToady on the assumption the api/semantics didn't change drastically
19:53 * ruoso feels that we're going to end with a libtool-like versioning schema
19:53 TimToady or pragmatically make "use" compile to a range of allowed linkages
19:54 TimToady I'd rather track too much information and then simplify than to make the p5 mistake of not tracking enough information and then not having it when you want it
19:55 ruoso libtool versioning works by you saying the max version of the API you support, the min version of the API and the revision
19:55 * azawawi has found a solution to make redspans consume less memory... testing...
19:55 ruoso but that requires the maintainer of each library to be competent enough to understand when there's an ABI change...
19:56 ruoso and a lot of programmers doesn't realize when the ABI change...
19:56 ruoso and that's why we have so many segfaults in our world...
19:57 PerlJam ruoso: have you ever used ruby gems?
19:57 ruoso nope
19:57 * ruoso reading the user guide...
19:58 PerlJam When you install a gem, it keeps previous versions around unless you've asked to remove them.  This sounds quite a bit like what you guys are talking about for Perl 6
19:58 TimToady we allow version ranges in the "use", but I'm not sure the ranges are so valuable after compilation time; p6 wants to allow multiple versions of the same name to run at the same time anyway, so the only reason to force a version is to manage an exclusive resource
19:58 TimToady and generally you want to split out the versioning of that resource into its own module anyway
19:59 PerlJam I'm not sure how gems handle version freezing or when though
20:00 pedrob joined #perl6
20:01 ruoso TimToady, the problem is not the explicit versioned depends in "use"... but the amount of bad handling in the module versioning itself...
20:01 TimToady p6 considers all versions installed into "the library" to be frozen.  only your own personal modules are mutable
20:01 TimToady ruoso: "Doctor, it hurts when I do this..."
20:02 TimToady I think in the long run versioning has to be culturally enforced, though certainly tech can help or hinder that enforcement
20:02 ruoso if a module maintainer doesn't handle the "this module implements versions from A to B" correctly, it's simply going to break badly
20:02 REPLeffect joined #perl6
20:02 ruoso that's why I'm not sure enforcing versioning by default is a good idea
20:02 pugs_svn r22861 | azawawi++ | [redspans] trees are now stored as action refs thus consuming far less memory.
20:03 PerlJam ruoso: darwin will weed those out  :)
20:03 TimToady darwin and a shotgun...
20:03 ruoso or just give a lot of headache to sysadmins
20:03 ruoso I'm not saying I do know a better solution...
20:03 ruoso just trying to make it clear the problem....
20:04 ruoso maybe someone comes up with a good idea to solve that...
20:04 TimToady anyway, I think a good default is for the compiler to say, "I compiled against version X, so I want to run against version X if at all possible"
20:04 TimToady then it's the fault of whoever relaxes that policy :)
20:04 PerlJam TimToady: and how would they say "...and use a newer version if available"?
20:04 TimToady if we can give the module developer tools to measure divergence, maybe we can prevent some of the breakage
20:05 ruoso measuring divergence is something missing in C development, for instance
20:05 TimToady but I think they don't already use the tools they have *cough*TAP*cough*
20:06 TimToady maybe only allow people to check in a new version if there's an increase in Kwalitee  :)
20:06 ruoso a lot of people rely on the linux distros to do that job
20:07 ruoso and a linux distro will always prefer the newest release...
20:07 ruoso (newest stable release, I mean)
20:07 TimToady "You may not check this new version into the Standard Perl Library without adding at least one more test to your test suite."
20:08 ruoso maybe we could have a tool that imported into the application test suite the test suites of its dependencies in that version
20:08 ruoso then the test suite would test if the installed version still passes on that version's test suite
20:08 ruoso if it doesn't it probably isn't compatible
20:09 TimToady we may have to insist that linux distributions don't update the Standard Perl Library per se, but install individual modules that are then inserted (and remember forever) according to Perl Policy
20:09 TimToady *remembered
20:10 TimToady or at least until a GC run says that nothing on this machine uses the old version
20:10 PerlJam It's the OS theory of perl libraries ... ring 0 == Standard Perl Library, ring 1 == vendor specific stuff, ring 2 == user specific stuff
20:11 PerlJam (adjust the number as size of rings as appropriate)
20:11 PerlJam :-)
20:11 TimToady well, it's certainly the OS theory in the sense that once you install a system call with a particular api, you never remove that call
20:11 TimToady you might replace it with an emulation based on another call
20:12 PerlJam Even DOS dropped support for DOS 1.0 at some point.
20:12 * ruoso sees the number of debian binary packages in the stratosphere with CPAN6...
20:13 TimToady well, there's the likelihood of bundling of Perl distributions too
20:13 PerlJam ruoso: no, if the module is CGI (for instance), there's one binary that perhaps installs CGI 1.0 through CGI 4.5 or whatever
20:13 PerlJam :-)
20:13 ruoso TimToady, btw... have you ever seen the DistributionFormat proposal I started in the wiki?
20:14 TimToady nope, that's far too practical for me to think about  :)
20:14 ruoso PerlJam, yeah... maybe libcgi4.5-perl replaces libcgi1.0-perl
20:15 ruoso http://www.perlfoundation.org/pe​rl6/index.cgi?distributionformat
20:15 lambdabot Title: DistributionFormat / Perl 6
20:15 PerlJam maybe libcgi4.5-perl includes libcgi1.0-perl  (and then the binaries themselves just grow without bounds ;-)
20:15 ruoso heh..
20:15 pugs_svn r22862 | azawawi++ | [STD_syntax_highlight] less memory usage... now works in < 512M ulimits
20:18 * azawawi is generating another round of syntax highlighted htmls in far less memory... rx.t does not OOM
20:18 ruoso well... as long as we don't choose the Java way (which is to include every library used inside every application distribution), I'm fine
20:19 [particle] azawawi: is there a time tradeoff?
20:19 PerlJam ruoso: that should be an *option* I think.
20:19 ruoso I'd rather support "static linking"
20:19 azawawi [particle]: not much... used references instead of strings copies
20:19 PerlJam (but certainly not the default :)
20:19 [particle] ah, yes, references++
20:19 [particle] do you throw them away as you go?
20:20 azawawi Lesson of the day: Remember your 'references' ;-)
20:20 mberends_ joined #perl6
20:21 azawawi [particle]: nop atm since i need them for --full-html mode
20:24 azawawi [particle]: i think the main problem is that we were copying a lot of strings around vs arrays of hashed action name references for trees
20:28 * azawawi the ETOOMUCHTIME script processed 60 tests so far... which is way too fast than before
20:30 _Jedai_ joined #perl6
20:31 masak joined #perl6
20:31 azawawi hi masak
20:31 masak azawawi: hi
20:32 azawawi masak: im sorry i wasnt around; but the answer to your question is that did you 'make'? ;-)
20:32 masak azawawi: no, probably not
20:32 * masak tries that
20:33 azawawi masak: i think i should add a STD sanity check in ETOOMUCHTIME
20:34 masak aye.
20:34 masak and a friendly instruction to people who don't know they should run `make` :)
20:34 * masak found README
20:34 masak um. nvm.
20:35 masak azawawi: ok, so it turns out I don't have something called 'gimme5'
20:35 masak what do I do?
20:36 azawawi masak: svn update?
20:36 * masak svn updates
20:36 masak but you might have misunderstood me.
20:36 masak it can't find the executable
20:36 [particle] src/perl6/
20:36 azawawi r u in pugs/src/perl6?
20:36 masak aah...
20:37 masak hold on, that's not the problem
20:37 masak it looks for perl in /usr.local/bin/perl
20:37 masak s/\./\//
20:37 rdice joined #perl6
20:37 masak I should make a symlink from there
20:37 [particle] stop waving that sword around
20:38 [particle] you need 5.10 btw
20:38 azawawi 101 files and counting...
20:38 masak uh oh
20:39 * azawawi is going to cron automate it to run everyday on off-peak hours...
20:39 masak sorry, installing 5.10 is too big a chore for me right now.
20:39 masak I should be toying with November :)
20:39 [particle] then you need 6.0 ;?
20:39 [particle] ;)
20:40 azawawi how is November these days? Any new features? ;-)
20:40 masak [particle]: you have no idea how much I need 6.0 ;)
20:41 masak azawawi: November has been in a phase of constant buildup since YAPC in August
20:41 masak not many new features, but a more straightened-out and less hackish core
20:41 masak something to build from
20:41 azawawi does it have 3D wikis? ;-)
20:42 masak azawawi: no, is that a feature request? :P
20:42 azawawi lol
20:43 masak anyway, ask again by the end of this month. I've promised myself to fiddle a little with the project every day, so things are bound to happen.
20:43 masak today, for example, is Skin Monday!
20:44 azawawi anyway we could run parrot code on as3 flash?
20:45 pedrob joined #perl6
20:45 pedrob joined #perl6
20:52 masak bacek: re "test that's wrong and patch that's right": sorry :/ all I can say is that it looked right here. I was even careful enough to check that the test passed without your patch and failed with it. apparently I screwed up somewhere along the way.
20:58 bacek masak: it passed in rakudo because of bug in rakudo
20:58 bacek pugs: say ~(Bool::True|Bool::False)
20:58 masak bacek: now that's comedy.
20:58 p6eval pugs: OUTPUT[any(VStr "",VStr "1")␤]
20:59 bacek pugs: say (Bool::True|Bool::False) eq 'Bool::True'
20:59 p6eval pugs: OUTPUT[any(VBool False)␤]
20:59 bacek pugs: say (Bool::True|Bool::False).perl eq 'Bool::True'
20:59 p6eval pugs: OUTPUT[␤]
20:59 bacek pugs: say (Bool::True|Bool::False).perl
20:59 p6eval pugs: OUTPUT[(Bool::False | Bool::True)␤]
20:59 bacek masak: see?
21:00 masak bacek: I see, but I'm not sure I understand.
21:00 masak junctions make my brain try to hurt in several ways at once.
21:00 bacek ("A" eq "A"|"B").perl eq 'Bool::True'
21:00 bacek this is wrong
21:00 masak I believe you. why?
21:00 bacek It's not expected behavior
21:01 masak by me, it is.
21:01 masak sorry for being stubborn.
21:01 bacek because ("A" eq "A"|"B") is junction (True|False)
21:01 rhr should be ("A" eq "A"|"B") === Bool::True
21:01 masak bacek: yes.
21:01 masak bacek: I see what you mean now.
21:01 rhr bacek: no, comparison ops collapse junctions
21:02 bacek (True|False).perl can't be just 'Bool::True'
21:02 masak rhr: I have reason to believe they don't.
21:02 rhr no, testing the .perl is wrong
21:02 bacek pugs: say (Bool::True|Bool::False) === Bool::True
21:02 p6eval pugs: OUTPUT[any(VBool False,VBool True)␤]
21:03 bacek masak: anyway, why you need collapsing?
21:03 masak bacek: originally, because the lack of it made November fail
21:03 bacek masak: you did something wrong.
21:03 masak bacek: see the lower part of http://use.perl.org/~masak/journal/37787
21:03 lambdabot Title: Journal of masak (6289)
21:04 masak bacek: preferably the code linked from there, too
21:04 masak if that code was wrong, I'd very much like to know.
21:04 bacek perl6: if (Bool::True|Bool::False) { say "foo" } else { say "bar" }
21:04 p6eval elf 22847, pugs, rakudo 32319: OUTPUT[foo␤]
21:04 masak it worked until your patch got in
21:04 bacek this behavior wasn't changed by my patch
21:04 masak bacek: but it was.
21:05 bacek masak: prove it
21:05 masak bacek: have you read the code.
21:05 masak ?
21:05 bacek small code will be enough
21:05 bacek masak: whole November? no
21:05 masak bacek: http://github.com/viklund/november/t​ree/43ac68be3d1dc1959aebf78018694ea0​52cb092b/p6w/HTML__Template.pm#L40
21:05 masak bacek: it was linked from the blog post I just sent.
21:06 masak bacek: after your patch, it started dying with the error "Unrecognized directive: TMPL_VAR"
21:07 masak even though the test is for anything _except_ VAR, LOOP and IF
21:07 bacek perl6: say ('a' ne 'a'&'b')
21:07 p6eval elf 22847: OUTPUT[1␤]
21:07 p6eval ..rakudo 32319: OUTPUT[0␤]
21:07 p6eval ..pugs: OUTPUT[all(VBool False,VBool True)␤]
21:08 [particle] lovely.
21:08 masak :)
21:08 buu joined #perl6
21:08 spx2 joined #perl6
21:08 zostay joined #perl6
21:08 masak elf is definitely wrong here.
21:09 bacek rakudo is wrong too
21:09 bacek perl6: if (Bool::True&Bool::False) { say "foo" } else { say "bar" }
21:09 p6eval pugs: OUTPUT[bar␤]
21:09 p6eval ..elf 22847, rakudo 32319: OUTPUT[foo␤]
21:09 masak if pugs isn't right here, someone's have to explain it to me
21:10 masak s/'s/'ll/
21:10 bacek pugs right
21:10 TimToady comparisons do not collapse junctions--only boolean contexts collapse
21:10 masak rhr: told ya :)
21:10 bacek perl6: if ('a' ne 'a'&'b') { say "foo" } else { say "bar" }
21:10 p6eval pugs, rakudo 32319: OUTPUT[bar␤]
21:10 p6eval ..elf 22847: OUTPUT[foo␤]
21:11 masak elf--
21:11 masak bacek: I feel I lost my track here a bit. did I successfully prove to you that your patch broke our app?
21:12 bacek perl6: say ?(Bool::True&Bool::False)
21:12 p6eval rakudo 32319: OUTPUT[get_string() not implemented in class 'Junction'␤current instr.: 'print' pc 14833 (src/gen_builtins.pir:9120)␤]
21:12 p6eval ..elf 22847: OUTPUT[1␤]
21:12 p6eval ..pugs: OUTPUT[all(VBool False,VBool True)␤]
21:12 bacek masak: $ ../../parrot perl6.pbc -e 'if (Bool::True&Bool::False) { say "foo" } else { say "bar" }'
21:12 bacek foo
21:12 bacek it's on my version. So, answer is "not"
21:12 masak bacek: is that a yes? :)
21:13 masak ok.
21:13 bacek I'll check what the heck is in "if" statement. Because it is bug in "if".
21:13 masak bacek++ # solving the problem
21:15 bacek masak: you can add more tests in S03-junction. Something like 'ok (Bool::True|Bool::False)' and 'ok !(Bool::True&Bool::False)'
21:15 bacek this will be helpful.
21:15 masak bacek: will do.
21:16 bacek TimToady: what is expected value of '?(a&b)'? Junction or bare bool?
21:17 TimToady I suspect you should also check for the pugs problem--the ? should probably just return False, not all(True,False), since it's converting to Bool
21:18 TimToady hmm, I guess I just answered your question, kinda
21:18 bacek TimToady: indeed ;)
21:18 TimToady likewise true()
21:18 TimToady and !
21:18 TimToady and not()
21:19 bacek TimToady: what about ('a'|'b' eq 'b')?
21:21 TimToady it's okay for that to return (True|False), I think; however ! and not are tests for True, not tests for False
21:21 TimToady so not( 'a'|b' eq 'b') will always return False
21:22 bacek TimToady: ok. Sound reasonable.
21:22 TimToady not is the absence of truth, not the presence of falsehood
21:23 [particle] what is the sound of one op negating?
21:23 TimToady so if you know that 'a'|b' eq 'b' is in a boolean context, you can short circuit as soon as you've found a true
21:23 bacek masak: I found why "old" junctions works as you expected. Even error
21:23 delrico joined #perl6
21:24 masak bacek: errors seem to be the theme of the day.
21:24 bacek masak: I'll fix it later today.
21:24 bacek afk # wake up kids for the school
21:24 TimToady which gives the appearance that 'eq' is resolving it, even though it's really the boolean context
21:25 TimToady note that '(...) === Bool::True' is not itself a boolean context
21:26 TimToady so you can still test ('a'|'b' eq 'b') === False and get a true result
21:27 TimToady on the other hand, true('a'|'b' eq 'b') === False will be false
21:27 masak I wish that would be enough for people to stop writing '=== True' when they mean ''. sadly, I don't think it will be.
21:27 pasteling "azawawi" at 212.38.145.15 pasted "ETOOMUCHTIME sample output [it is fast ;-)]" (2298 lines, 77.9K) at http://sial.org/pbot/33025
21:27 masak azawawi++
21:28 TimToady maybe if we start carping about "Useless use of === True"  :)
21:29 masak TimToady: yes, please do. and threaten to name names. :)
21:29 azawawi TimToady: Finally, rx.t didnt OOM when ulimited ;-) http://feather.perl6.nl/~azaw​awi/html2/S05-mass/rx.t.html
21:29 lambdabot Title: ../../t/spec/S05-mass/rx.t
21:29 masak azawawi: do "Failed tests" here mean that those files don't pass STD?
21:30 azawawi masak: yeah, you can check the error on link...
21:30 TimToady hmm, last I checked everything in t/ passed
21:30 mberends_ joined #perl6
21:30 masak azawawi: since it's now fast, maybe you should change the script's intro message :)
21:30 masak and perhaps the name.
21:30 azawawi masak: it is not fast enough ;-)
21:31 masak azawawi: good attitude.
21:31 azawawi TimToady: some fail like http://feather.perl6.nl/~azawawi/html​2/S02-builtin_data_types/enum.t.html
21:31 lambdabot Title: Error, http://tinyurl.com/5kqtro
21:33 azawawi TimToady: i get that "Malformed UTF-8 character" error on STD.pm on feather1
21:33 nacho_ joined #perl6
21:33 TimToady you probably need to install     $src_text = Encode::decode('utf8', read_file($file) );
21:33 TimToady somewhere like I did in STD_syntax_highlight
21:34 azawawi it is already there... strange
21:35 TimToady are you rereading the file somewhere else?
21:35 azawawi parseFile($file,...)
21:35 TimToady that already does it too
21:36 ab5tract joined #perl6
21:36 TimToady in fact, these days Cursor carries both a utf-8 encoded string and an equivalent integer array from unpack("U*"...)
21:37 TimToady since I'm in the process of switching over to an NFGish model for the lexer
21:37 TimToady and I plan to do away with TRE by use of integer tries and such
21:38 pasteling "azawawi" at 212.38.145.15 pasted "STD_syntax_highlight "Malformed UTF-8 character" with STD.pm" (9 lines, 458B) at http://sial.org/pbot/33026
21:39 azawawi TimToady: could u try that command on your laptop?
21:40 azawawi it croaks after 14secs on feather1
21:40 TimToady what does "file STD.pm" say on your machine
21:41 azawawi STD.pm: UTF-8 Unicode English text
21:43 TimToady that's fine.  my command is still running without complaint
21:43 azawawi hmmm, then something here is broken... rm -rf perl6; svn update; nice make...
21:45 TimToady finished, but the html files are in latin-1, not utf-8
21:46 moritz_ probably missin a 'bindmode $out, ":utf8"' somewhere
21:47 azawawi moritz_: hi
21:47 * moritz_ waves vaguely to the channel and to azawawi
21:47 azawawi TimToady: same thing, after doing all that...
21:48 * azawawi wonders why this is happening only to his feather1 acct
21:50 pugs_svn r22863 | azawawi++ | [STD_syntax_highlight] updated comments
21:51 TimToady /usr/local/bin/perl -v
21:51 azawawi This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
21:57 TimToady maybe some difference in File::Slurp?
21:57 moritz_ it works for me, also on feather1
21:59 TimToady are you running under a strange locale?
22:00 * azawawi is checking it
22:01 TimToady the "locale" command should say
22:01 ryanc joined #perl6
22:02 pasteling "azawawi" at 212.38.145.15 pasted "locale output" (15 lines, 263B) at http://sial.org/pbot/33028
22:02 TimToady that's probably the problem
22:02 TimToady you need a .UTF-8 locale
22:03 moritz_ why? I mean the normal Unicode stuff isn't locale dependent, is it?
22:03 iblechbot joined #perl6
22:03 TimToady speaking as a cultural imperialist, I'm in en_US.UTF-8
22:03 azawawi moritz_: what does 'locale' say at your feather1 acct?
22:04 TimToady who knows what the C library pays attention to...
22:04 moritz_ azawawi: it's all en_US.UTF-8
22:04 azawawi moritz_: interesting
22:04 TimToady but POSIX locale is notably UTF-8 hostile
22:04 TimToady iirc
22:05 azawawi the question is how did that happen? ;-)
22:05 moritz_ did you ever set the locale?
22:05 azawawi nop
22:05 moritz_ the it happened because it's the default ;)
22:06 TimToady my .bashrc contains: LANG=en_US.UTF-8
22:06 moritz_ echo 'export LANG=en_US.UTF-8' >> .bashrc
22:06 azawawi cool then we need a sanity check ;-)
22:07 TimToady it's not clear that sanity has much to do with unicode...
22:07 moritz_ lol
22:07 * azawawi testing it...
22:07 TimToady 'course, he didn't say which boolean sense
22:19 pugs_svn r22864 | azawawi++ | [STD_syntax_highlight] :utf8 output
22:20 azawawi perfect... it works, TimToady++, moritz_++
22:21 azawawi so should we check for this weird case or not?
22:21 * azawawi is running ansi,simple/full htmls for STD.pm...
22:22 TimToady maybe we should just force a utf8 locale if the current locale isn't, since p6 requires unicode
22:23 * TimToady now wonders what POSIX.UTF-8 would do...
22:24 TimToady probably form a miniature black hole...
22:24 TimToady lunch &
22:26 azawawi im glad this is solved... no more OOMs, less memory footprint, and faster than before [next step a cron job]
22:28 * azawawi says 'time STD_syntax_highlight STD.pm' => real: 5m24.346s, user: 2m45.162s, sys: 1m21.769s
22:31 azawawi Done... enjoy. http://feather.perl6.nl/~azawawi/STD.pm/
22:31 lambdabot Title: Index of /~azawawi/STD.pm
22:31 azawawi moritz_: any ideas on other output formats?
22:33 moritz_ azawawi: just an option to omit HTML header + footer (for inline inclusion in other HTML files)
22:34 azawawi moritz_: you mean only no <html><head>s ?
22:34 [particle] ability to specify alternate css file :)
22:34 azawawi [particle]: you can do that with --clean-html
22:35 [particle] azawawi++
22:35 moritz_ azawawi: and no <body>
22:36 azawawi moritz_: and no css?
22:36 moritz_ azawawi: and no css
22:36 [particle] that'd be my guess, no css
22:36 [particle] that's one step closer to proper integration with smartlinked spec
22:37 * moritz_ mostly wants it for the code examples on perlgeek.de and perl-6.de
22:38 azawawi --moritz-mode ?
22:38 azawawi ;-)
22:38 [particle] --html-snippet maybe?
22:38 moritz_ --no-skeleton ?
22:39 azawawi --inline-html?
22:39 [particle] i wonder what the output would look like in yaml
22:39 moritz_ pretty boring, probably ;)
22:40 azawawi does not make sense to generate a YAML from a syntax highlighter ;-)
22:41 [particle] it does if you want to generate html or pdf or ansi etc
22:41 [particle] but, only if you want to serialize the intermediate data
22:43 * azawawi is working on --no-skeleton switch
22:43 masak ang, Cmd-Q is far too similar to Cmd-Tab... :/
22:44 masak (luckily, just like Jesus, Firefox saves)
22:44 azawawi oops, it is 12:43AM here... gonna sleep to go work &.. postponing tasks for tomorrow...
22:46 * azawawi sleep.. cya &
22:47 [particle] syntax: [ !scope_declarator 'my', !ws ' ', !sigil '$', !variable 'foo', ... ]
22:49 [particle] hrmm, methinks the green should be tied to 'ident' and not 'variable' in the css
22:49 [particle] param_vars don't show up properly otherwise
22:59 avar joined #perl6
23:00 masak perl6: my $a = 7.8; $a .= int; say $a
23:00 p6eval pugs, rakudo 32323: OUTPUT[7␤]
23:00 p6eval ..elf 22847: OUTPUT[Use of uninitialized value $_ in int at (eval 119) line 4.␤Undefined subroutine &GLOBAL::infix__46_61 called at (eval 119) line 4.␤ at ./elf_f line 3861␤]
23:00 masak approximately how long has rakudo had dotty methods?
23:00 moritz_ all methods are dotty, aren't they? ;)
23:01 masak moritz_: no, not really :)
23:01 moritz_ or do you mean mutators?
23:01 moritz_ or with $_ as default?
23:01 masak I mean the '.= method' syntax
23:01 masak ...and its corresponding semantics
23:02 moritz_ quite long I think, because that was needed for the protoobject based OO model
23:02 moritz_ which jonathan implemented shortly be fore teh German Perl Workshop, so probably March.
23:03 masak wonder what I meant by "We miss long dots, heredocs, and dot-assignment a bit." in my blog post about Rakudo stuff in August then.
23:03 Limbic_Region joined #perl6
23:04 moritz_ long dots are $obj\         .method, right?
23:04 masak yes. we have them too, nowadays.
23:04 masak perl6: say $_\     .perl
23:04 p6eval rakudo 32323: OUTPUT[undef␤]
23:04 p6eval ..pugs: OUTPUT[\undef␤]
23:04 p6eval ..elf 22847: OUTPUT[Parse error in: /tmp/OZqmmxEFs6␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say $_\     .perl␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
23:04 p6eval ..STD_red/std.rb:210...
23:04 moritz_ masak: but for example the parsing for .[] subscripts is pretty new
23:06 spx2_ joined #perl6
23:06 [particle] well, if you're coming from perl 5 and implementing perl 6, it's not natural that @a[] is sugar for @a.[]
23:06 [particle] so, .[] et al were likely just missed
23:07 [particle] masak: can you use =<> in rakudo now?
23:07 masak [particle]: hold on.
23:07 moritz_ if you implement Perl 6, you'd better know that @a[] is really a method call ;)
23:07 masak [particle]: no.
23:08 masak [particle]: I mean, it parses. but it doesn't work.
23:08 [particle] rats.
23:08 masak there's a ticket about it somewhere.
23:08 masak [particle]: aye.
23:08 [particle] ah, ok
23:08 [particle] well, allison's been working on the io branch, i should check it out
23:08 [particle] i have -n cmdline implemented, but it doesn't work due to =<> not working
23:09 [particle] so i'll just hold that patch in reserve
23:09 [particle] and i won't bother with -p for now
23:09 masak [particle]: ah, [perl #58524]
23:24 masak [particle]: I look forward to -n and -p. will this still work with your patch? perl -ne '} print "$.\n"; {'
23:25 masak (disregarding the fact that $. might be renamed in Perl 6. I mean the principle itself)
23:26 masak (and no, I don't know whether I really want a yes or a no as an answer to that question)
23:35 bacek_ joined #perl6
23:39 avar joined #perl6
23:44 pedrob joined #perl6
23:44 smg joined #perl6
23:44 wknight8111 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs