Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-05-01

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 calin left #perl6
00:04 sorear True or false: Rakudo's move to git caused all but 2 core developers to quit in disgust.
00:06 patrickas can the answer to that be a junction ?
00:11 lue where was it before?
00:12 eternaleye lue: In the parrot repository under languages/ (SVN)
00:12 eternaleye sorear: I don't remember anyone ragequitting over the move to git
00:13 lue why would you quit *in disgust* ? git is a product of Linus Torvalds!
00:14 lue I say False
00:14 snarkyboojum as a new contributor it doesn't really matter which cvs is in use by a project, you just learn enough to contribute
00:14 snarkyboojum that's my experience anyway :)
00:15 redicaps joined #perl6
00:16 snarkyboojum I think pulling in new devs to a project or losing them is a function more of the project and the culture than the versioning tool used
00:16 wolverian joined #perl6
00:17 eternaleye +1
00:18 lue .oO(we switched to git more developers)
00:20 snarkyboojum the current debate on #parrot doesn't seem to be considering that, and anyway, both SVN and Git are comprehensive and effective versioning tools
00:20 snarkyboojum end rant :)
00:20 lue that seemed more like an observation than a rant :)
00:21 snarkyboojum lue: true :)
00:22 lue jnthn --rantify --target="snarkyboojum" --when="[17:20:16]"
00:26 lue darn, jnthn must be offline :)
00:32 diakopter sorear: who were the core developers prior to the move
00:33 diakopter sorear: oh; you don't know..?  /me backlogs http://irclog.perlgeek.de/parrot/today
00:35 diakopter heh.
00:36 astinus joined #perl6
00:41 sorear Synopsis clarification request: S09.  Do arrays allocate [1] and [0] when allocating [2]?  Do arrays with finite defined index sets allocate eagerly?  How is it possible to index an array with an infinite number of dimensions, when equality of infinite lists is Rice-hard?  Can individual array elements be tied or bound?  Is S09:718 a typo?
00:42 sorear How are slice expressions where the subscript evaluates to 0 or 1 element disambiguated from zen slices and index expressions, respectively?
00:42 lue rakudo: my @a= (3); @a[2]=3; say @a.perl
00:42 p6eval rakudo c4857a: OUTPUT«[3, Proxy.new(), 3]␤»
00:43 lue proxy? ō.o
00:43 sorear rakudo != spec
00:44 lue of course it doesn't. that's why people are developing it :D
00:46 lue std: rakudo == spec
00:46 p6eval std 30529: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix == instead at /tmp/Jexl3dHlBm line 1:␤------> [32mrakudo [33m⏏[31m== spec[0m␤Parse failed␤FAILED 00:01 110m␤»
00:49 sorear that error message could stand to be more awesome
00:49 diakopter std: ::rakudo == ::spec
00:49 p6eval std 30529: OUTPUT«ok 00:01 108m␤»
00:50 sorear ideally it should backtrack - list prefix operator cannot be used preceding an operator; did you mean rakudo() ?
00:50 sorear s:2nd/<?before "operator">/infix /
00:51 * lue (won't dare this, but) wonders if easter eggs in rakudo would be overlooked by every. body. who. contributes.
00:52 diakopter just kickban dalek temporarily :P
00:53 lue and anyone who questions/objects the kickban :)
00:57 eternaleye Simpler: Just wait until dalek hiccups next
00:57 eternaleye Happens every once in a while
00:57 k23z__ joined #perl6
01:00 * lue tries to open the OOP floodgates... but doesn't have op. :(
01:00 lue s/op/commit bit/
01:00 TimToady sorear: zen slices are syntactically empty, .[@empty] is never zen
01:01 TimToady allocate [1] and [0] on [2]=, yes, for some definition of allocate, but do the elements respond to :exists is a good question
01:02 TimToady I think index sets should give the appearance of having been allocated eagerly, probably
01:03 TimToady I didn't write much of that middle section; I get svn blamed because I just installed a huge patch from p6l folks.  :)
01:03 TimToady so I don't know if it is a typo
01:03 TimToady or about infinite dimensionalities; I hadn't thought we were doing hilbert spaces :)
01:04 TimToady for default arrays, elements may be bound, but not for native types
01:11 sorear TimToady: How does postcircumfix:<[ ]> know that the inside is syntactically empty?
01:11 sorear And what about @one-element-list?
01:12 TimToady a slice of one element is indistinguishable from a normal index
01:13 TimToady postcircumfix:<[ ]> (the operator) never sees the zen slice
01:13 sorear I thought slices generated things that act like arrays
01:13 TimToady postcurcumfix:sym<[ ]> asks the semilist if there were any statements inside
01:14 sorear ** is specced as meaning ||(* xx 1..*)
01:14 sorear an infinite number of *s
01:14 TimToady no, an *arbitrary* number of *s
01:15 TimToady presumably only works on an array of known dimensionality
01:15 sorear it's specced that way for creating arrays too
01:15 TimToady well, that may be undoable
01:16 TimToady and I'm certainly not interested in slowing down 6.0 over issues like that :)
01:16 TimToady I'd go as far as to say none of the ** stuff is needed for 6.0
01:19 TimToady on slices, .[@foo] is always taken as single dimensional; we have a Slicel type to indicate that there was a ; in there, so that we can distinguish a Slicel from a Parcel
01:20 TimToady so, .[@foo] gets a parcel, while .[@foo;] gets a slicel
01:20 TimToady and presumably a final ; like that is considered "zen"
01:29 pastiche joined #perl6
01:34 TimToady colomon: if we make CaptureCursor bindings ignore slurpies for the returned position, then your pairwise binding reduces (no pun intended) to -> map $a, *$b {...}
01:34 TimToady that is, slurpy parameters could be considered "lookahead"
01:34 TimToady er, s/-> map/map ->/
01:39 orafu joined #perl6
01:45 redicaps joined #perl6
01:47 pastiche A Perl6 idiom I've seen a couple times is this: `my Foo::Bar $fb .= new;`. Is that short for `my Foo::Bar $fb = $fb.new;`? And if so, how can that work, since you seemingly haven't yet instantiated the Foo::Bar to call `new()` on it?
01:49 sorear 1. Yes.
01:49 sorear 2. Every type has an undef value.  The undef value of a class type is considered to be the class itself, and supports a new method
01:49 sjohnson hello all
01:50 Minimiscience joined #perl6
01:50 sorear Hello
01:51 pastiche @sorear: then, shouldn't `my Foo::Bar $fb .= new;` instead be short for `my Foo::Bar $fb = Foo::Bar.new();`?
01:51 sorear No
01:51 sorear Or, yes
01:52 sorear Foo::Bar is the inital value of $fb if no initializer is given
01:52 JimmyZ joined #perl6
01:53 pastiche But, in the statement `my Foo::Bar $fb = $fb.new();`, it looks like $fb is not yet instantiated when you call `.new()` on it.
01:54 pastiche Can the syntax for making a new Foo::Bar object be broken up into 2 lines? What would that look like?
01:54 sorear my Foo::Bar $fb;
01:54 sorear $fb .=new;
01:54 sorear # equivalently
01:54 sorear my Foo::Bar $fb = Foo::Bar; # this is how you write undef in perl 6
01:54 sorear $fb .=new;
01:54 sorear # equivalently
01:55 sorear my Foo::Bar $fb;
01:55 sorear $fb = Foo::Bar.new;
01:56 pastiche @sorear: thank you.
01:57 sorear @?
01:59 Psyche^ joined #perl6
01:59 sjohnson aka at sorear:
01:59 sjohnson would be my guess
02:01 gfldex the @ in front of a nickname is forumspeak
02:01 gfldex very common in MMORPGS too
02:01 gfldex read: he is a rather jung lad :)
02:03 sorear mmm, Jung
02:04 sorear TimToady: There's some interesting potential for awesomeness in STD's parsing of <list prefix operator> <infix>
02:04 sorear i.e. sub_sub == 2
02:04 sorear STD currently diagnoses a zero-terms-in-a-row error
02:05 pastiche @sorear: I thought I was supposed to type `@sorear: ` and then my comment when directing a comment toward you.
02:06 sorear I see.
02:07 jnthn sorear: "True or false: Rakudo's move to git caused all but 2 core developers to quit in disgust." - er, wtf?
02:07 jnthn false but...huh.
02:07 diakopter jnthn's alive
02:08 jnthn yeah...
02:08 colomon Iceland!
02:08 jnthn Iceland brews some quite nice beer. :-)
02:08 jnthn The people are friendly.
02:08 sorear jnthn: that argument, minus some strawmanning, was used on #parrot a couple hours ago
02:08 jnthn sorear: And, uh, who on earth left?
02:08 diakopter jnthn: sorear was referring to #parrot .. yes
02:09 jnthn At the time we moved, the core developers were, er, me and Pm.
02:09 lue so it's TRUE!
02:09 * sorear awaits the compaints abount dBNPERL;
02:09 jnthn Yes, there were other folks contributing but...nobody I'd consider "core".
02:09 diakopter soft-core maybe
02:09 jnthn Anyway, I don't give a damm what #parrot do.
02:10 jnthn If they want to use svn, they can use it. If they want to use git, they can use it.
02:10 diakopter or they can debate it
02:10 * lue thinks of model of insides of Earth, only it's the insides of rakudo and the whole of perl6
02:10 nihiliad joined #perl6
02:10 jnthn I'll still, provided I have a commit bit, patch it either way.
02:11 sorear and without a commit bit it doesn't affect me either
02:11 jnthn diakopter: If the level of the debate is suggesting things about Rakudo development that have no basis in reality, well... :-/
02:13 fridim_ joined #perl6
02:13 lue last I checked, #parrot was about Parrot, not (directly at least) about Rakudo.
02:17 diakopter well.
02:17 diakopter a hand-dug one.
02:31 lue afk
02:38 chromatic joined #perl6
02:38 chromatic I find that summary of the dicussion on #parrot inaccurate.  jnthn or pmichaud or any other Rakudo committer during the Git switch, would you switch to Git again now, knowing what you know a year later?
02:42 * diakopter is jealous of chromatic's fios
02:43 diakopter er, envious
02:44 chromatic I don't recommend it; the choice is between Comcast or Verizon.
02:45 chromatic That's almost as bad as the choice between Comcast or Qwest.
02:45 diakopter my neighborhood has only Comcast & AT&T
02:46 eternaleye I'm currently on FiOS too, it's good for speed but crappy for reliability. I just want Google to play ISP.
02:47 sorear jnthn: That's not the level of the debate.  That's the worst thing that came up.  The rest was much tamer.
02:47 chromatic Reliability is good, except for when Verizon's DNS mysteriously fails.
02:48 eternaleye I just use 8.8.8.8 & 8.8.4.4
02:48 eternaleye So I can ignore those
02:48 eternaleye GoogDNS++
02:48 chromatic I have local DNS too, but apparently there's filtering.
02:49 eternaleye ick
02:50 eternaleye Main reason I switched away from verizon's DNS servers is that they redirect NXDOMAIN to their own (awful) page.
02:50 chromatic Yeah, that's why I switched too... except....
02:51 eternaleye Well, GoogDNS is global-anycast, and they specifically say they do no filtering
03:05 sorear rakudo: has $x
03:05 p6eval rakudo c4857a: OUTPUT«You can not add an attribute to a module; use a class or role␤current instr.: 'perl6;Perl6;Compiler;Module;attributes' pc 30043 (src/gen/package_pm.pir:625)␤»
03:13 diakopter rakudo: say $*CURRENT_MODULE; say 4
03:13 p6eval rakudo c4857a: OUTPUT«4␤»
03:13 diakopter rakudo: say 55 ~ $*CURRENT_MODULE; say 4
03:13 p6eval rakudo c4857a: OUTPUT«Contextual $*CURRENT_MODULE not found␤current instr.: 'perl6;Perl6Exception;throw' pc 14877 (src/builtins/Seq.pir:28)␤»
03:13 diakopter weird
03:14 diakopter I guess rakudo's 'say' still has some special-cased exception handling
03:19 pastiche left #perl6
03:25 Transformer joined #perl6
03:28 sorear might be worth bugging
03:29 diakopter I'm pretty sure masak has bugged that one to bugdeath
03:37 alester joined #perl6
03:43 * sorear is looking into macro implementation
03:49 diakopter o_O
03:49 diakopter in rakudo? or in STD :P
03:56 sorear rakudo
03:56 dalek csmeta: r232 | diakopter++ | trunk/Sprixel/Main.cs:
03:56 dalek csmeta: [perlesque] add -e 'eval code' option to Sprixel.exe
03:56 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=232
03:56 dalek csmeta: r233 | diakopter++ | trunk/Sprixel/Main.cs:
03:56 dalek csmeta: [perlesque] fix my (not 1, but 3!) off-by-one errors. :|
03:56 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=233
03:56 sorear but first I need to understand the spec well enough to figure out exactly what the bodies of macros are supposed to /do/ :/
03:59 sorear the obvious way is to treat the body of the macro as just a grammatical action
04:00 sorear running in a $/ topicalizer and returning a PAST::Node via make
04:01 diakopter I've slept since I last read that portion of the spec, so ... I'd be no help.
04:09 diakopter sorear: I think TimToady commented on macros here; you might search the irclogs
04:10 plobsing joined #perl6
04:12 meppl joined #perl6
04:32 nihiliad joined #perl6
04:38 gfx joined #perl6
05:02 kst` joined #perl6
05:03 ReiniUrban joined #perl6
05:12 lue .oO( dalek is gone. Time for that easter egg :) )
05:13 dalek joined #perl6
05:15 snarkyboojum joined #perl6
05:17 cj joined #perl6
05:29 sorear Why does ~~ have chain associativity?  It's not transitive
05:31 sorear What is the model of operator precence order?  The synopsis seems to imply a Stern-Brocot tree with the standard operators identified with the leaves of some truncation, but if I try really hard I can construe it to also mean a free preorder
05:33 fridim_ joined #perl6
05:39 redicaps left #perl6
05:44 lue goodnight moon
05:46 kaare joined #perl6
06:10 molaf joined #perl6
06:11 sorear diakopter: suprisingly enough, the thing on macros actually mostly makes sense
06:13 sorear Is anybody running an "anti-smoker", to find out if any spectests have started working and we forgot to unfudge them?
06:14 chromatic I forget the name of the program, but there's a test summary program which does exactly that.
06:15 sorear most test harnesses have a thingie for "unexpected successes"
06:15 sorear however, the fudger defeats that
06:15 chromatic tools/autounfudge.pl ?
06:15 sorear anything guarded by #?rakudo skip is- I'm blind
06:23 kokajxo joined #perl6
06:28 sorear next, to study the grammar
06:33 pmurias joined #perl6
06:42 diakopter pmurias: g'morning?
06:43 diakopter sleep&
06:50 truewar Good morning)
07:00 sorear Hello!
07:00 pmurias diakopter: g'morning
07:00 pmurias and g'night
07:06 truewar Could anybody introduce me to Perl6?
07:07 dalek joined #perl6
07:07 truewar I am mostly interested in Perl6 Roadmap
07:08 JimmyZ joined #perl6
07:14 sorear truewar, Perl6.  Perl6, truewar.
07:14 sorear if you want a better introduction we'll need to know more about you
07:15 sorear trying to explain Perl6 from first principles would take days (weeks?), but we can skip most of that depending on what you know
07:15 sorear are you a programmer and are you a Perl 5 programmer are the easiest questions
07:21 sorear joined #perl6
07:22 sjohnson truewar: perl6.org
07:22 sjohnson and you're done!
07:33 sorear rakudo: sub circumfix:<AA BB> { ... };  AA 2 BB;
07:33 p6eval rakudo c4857a: OUTPUT«error:imcc:syntax error, unexpected '\n'␤  in file 'EVAL_1' line 58␤Confused at line 11, near "AA 2 BB;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
07:33 sorear rakudo: sub circumfix:«AA BB» { ... };  AA 2 BB;
07:33 p6eval rakudo c4857a: OUTPUT«error:imcc:syntax error, unexpected '\n'␤  in file 'EVAL_1' line 58␤Confused at line 11, near "AA 2 BB;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
07:35 sorear huh, rakudo doesn't actually seem to implement scoping of operator definitions
07:35 sorear at all
07:35 sorear this makes things easier
07:41 sorear what exactly is a nibbler?
07:44 moritz_ it's a thing that transforms a grammar; or a parametric grammar; or some such :-)
07:44 moritz_ sorry, can't answer "exactly"
07:45 M_o_C joined #perl6
08:04 pugssvn r30530 | pmurias++ | [mildew] started rewriting m0ld using Regexp::Grammars
08:16 synth joined #perl6
08:18 snarkyboojum joined #perl6
08:40 pugssvn r30531 | moritz++ | [t/spec] fudge\e tests for rakudo
08:42 pugssvn r30532 | pmurias++ | [mildew] m0ld parses a simple call
08:46 moritz_ sorear: what's true is that after rakudo moved to git, the numbers of patches decreased, because the rakudo code base wasn't subject to parrot's codingstyle tests...
08:47 moritz_ sorear: and there were a bunch of people regularly fixing trailing whitespace in rakudo
08:47 moritz_ those people usually weren't given commit access to the rakudo repo on github
08:48 moritz_ so if you look at the bare numbers, yes, the numbers of commiters decreased - but the number of features or bug fixes didn't
08:52 Su-Shee joined #perl6
08:52 dalek joined #perl6
08:59 sorear Why does NQP's regex engine wrap the *source* string in a CodeString?
08:59 moritz_ because it allows easier search for line numbers, iirc
08:59 moritz_ but pmichaud said it was going to change
09:00 * sorear wonders why we don't just track lines in $*LINE in the .ws rule
09:03 wolverian joined #perl6
09:07 sorear reading the grammar for grammars is more than a little trippy
09:11 iblechbot joined #perl6
09:14 truewar1 joined #perl6
09:22 gurjeet joined #perl6
09:25 mberends joined #perl6
09:29 JimmyZ joined #perl6
09:32 Guest62733 Parrots runtime/parrot/library/Pg.pir seems to work, or at least t/library/pg.t runs OK.
09:32 Guest62733 Can I somwhow use Pg.pir from rakudo?
09:33 sorear yesish
09:33 sorear pir::load_library("pg.pir")
09:33 sorear er
09:33 sorear pir::load_bytecode("pg.pir")
09:34 Guest62733 will try try
09:34 sorear you'll then need to do some trickery with pir::get_root_global__PPS to import the symbols you want to use
09:35 sorear I guess my next project is to fix use :from<parrot> in Rakudo
09:35 sorear alpha: use Pg:from<parrot>;
09:35 p6eval alpha 30e0ed: OUTPUT«error loading libpq - loadlib failed␤in Main (file <unknown>, line <unknown>)␤»
09:39 * sorear now understands enough regex guts to at least *try* macros
09:39 Guest62733 sorear: Even if I just want to use it as a class?
09:40 sorear Guest62733: A class is just a kind of global
09:41 Guest62733 yeah, makes sense.
09:43 kokajxo joined #perl6
09:48 sorear TimToady: What is the rationale for invoking macros with the match object in self, instead of $/  ?
09:48 masak joined #perl6
09:48 masak ahooloi, lambdacamels, parrotcamels, and camelcamels.
09:49 sorear hello masak
09:50 masak what's new?
09:50 JimmyZ \0\o
09:51 * moritz_ writes a Perl 6 talk
09:51 * sorear tries to write a macro implementation
09:51 moritz_ any recommendations what I could use for my slides?
09:51 masak sorear: !
09:51 masak moritz_: what a general question?
09:51 masak s/\?/./
09:51 masak moritz_: what kind of talk is it?
09:51 moritz_ sorear: just a word of warning, I think pmichaud mentioned that he doesn't want macros before rakudo star
09:52 moritz_ masak: Perl 6 for a perl 5 perl mongers group
09:52 moritz_ I meant to ask about the technical side
09:52 moritz_ what kind of software to use for writing the talk
09:52 moritz_ I kinda started writing my own, but that seems very inefficient
09:52 * masak always ends up writing his own :P
09:57 envi^home joined #perl6
09:58 JimmyZ hugme: help
09:58 hugme JimmyZ: (add $who to $project | list projects | show $project | hug $nickname | tweet $twittername $message )
09:58 JimmyZ hugme: list projects
09:58 hugme JimmyZ: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web
10:00 JimmyZ p6c
10:02 masak moritz_: any chance we could add tardis and yapsi to that list?
10:02 moritz_ masak: take your chances, do it :-)
10:02 moritz_ hugme: add masak to hugme
10:02 hugme moritz_: ERROR: Can't add masak to hugme:  HTTP/1.1 401 Unauthorized
10:03 moritz_ ouch
10:03 moritz_ hugme: add masak to json
10:03 hugme moritz_: ERROR: Can't add masak to json:  HTTP/1.1 401 Unauthorized
10:03 moritz_ hugme: add masak to book
10:03 * hugme hugs masak. Welcome to book!
10:03 moritz_ ok, it's just my account that's b0rked
10:03 * masak is already welcome to book :)
10:03 masak mayhaps I'll send a patch...
10:04 moritz_ masak: I'll just fix hugme so that I can add you to hugme :-)
10:04 moritz_ masak: then you can push
10:04 masak :P
10:04 masak I'll prepare the commit in the meantime.
10:04 moritz_ hugme: reload
10:04 hugme moritz_: reloaded successfully
10:04 moritz_ hugme: add masak to hugme
10:04 * hugme hugs masak. Welcome to hugme!
10:05 moritz_ there you go
10:05 * masak hugs hugme. thank yoU!
10:05 moritz_ I had just changed my github password, which in turn changed the API token
10:05 JimmyZ hugme: hug masak
10:05 * hugme hugs masak
10:05 masak hugme has no README :P
10:05 moritz_ masak: you'll find projects.json pretty self-explanatory
10:05 masak hugme: hug 卓明亮
10:05 * hugme hugs 卓明亮 and blushes
10:05 masak :)
10:06 JimmyZ hugme: show rakudo
10:06 hugme JimmyZ: sorry, I don't know anything about 'rakudo'
10:06 JimmyZ hugme: show nqp-rx
10:06 hugme JimmyZ: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], colomon, jnthn, masak, moritz_, pmichaud. URL: http://github.com/perl6/nqp-rx/
10:06 moritz_ hugme doesn't know about CLAs
10:06 masak patches welcome :)
10:07 JimmyZ hugme: hug 麦高
10:07 * hugme hugs 麦高
10:08 masak :)
10:08 JimmyZ humge: why not blush?
10:08 masak she only blushes occasionally.
10:11 masak hugme: reload
10:11 hugme masak: reloaded successfully
10:11 masak hugme: list projects
10:11 hugme masak: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web
10:11 moritz_ hugme: reload
10:11 masak hm.
10:11 hugme moritz_: reloaded successfully
10:11 moritz_ hugme: list projects
10:11 hugme moritz_: I know about book, gge, hugme, ilbot, json, november, nqp-rx, nqpbook, perl6-examples, proto, pugs, rmp, svg-matchdumper, svg-plot, tardis, temporal-flux-perl6syn, tufte, web, yapsi
10:11 masak \o/
10:11 masak I was too quick.
10:12 moritz_ I still have to pull manually on feather2
10:12 moritz_ paranoia etc.
10:15 gurjeet joined #perl6
10:18 masak ah.
10:18 masak yes, keep it that way.
10:26 colomon I didn't know I had a commit bit on nqp-rx.  (Or had forgotten, at any rate.)
10:26 moritz_ colomon: you probably don't, unless you gave yourself one
10:27 sorear hugme's list is metacommitters
10:27 moritz_ colomon: it's the list of people who can add commiters, not he committers
10:27 moritz_ right, what sorear said
10:27 truewar1 Sorear, sorry.  was AFK
10:27 sorear don't apologize, we have logbuffers for a reason
10:27 colomon ah, that makes sense.
10:28 sorear I'm AFK 8-18 hours a day and never apologize about it
10:28 truewar1 I used PHP for 8 years. I also used Perl5 several times for small scritps: backup, creating hosting accounts etc.
10:29 truewar1 But now I have some reasons to choose other tahn PHP language for my projects.
10:30 truewar1 I read about Python and I even wanted to choose it and BAH!  found Perl6
10:30 truewar1 I read some tips about it, about objects model
10:30 truewar1 They are really nice
10:31 masak we like it too. :)
10:31 truewar1 Does it have any road map or something? What future waits for that project?
10:32 masak truewar1: maybe someone has told you this already, but current implementations (like Rakudo) are both quite far along and a bit bumpy still.
10:32 masak Truewar: http://github.com/rakudo/rakudo/blob/master/docs/ROADMAP
10:33 masak Truewar: the immediate future holds a promised distribution release called Rakudo Star.
10:33 jnthn Morning :-)
10:33 masak jnthn: \o/
10:33 jnthn And yes, it *is* still morning in Iceland!
10:33 moritz_ what time zone is iceland? GMT-2?
10:34 moritz_ ah, UTC
10:34 moritz_ just found it
10:34 masak that's my favorite time zone :)
10:35 JimmyZ joined #perl6
10:35 Truewar WHat kind of soft I need to use perl6 for web projects?
10:35 sorear hmm
10:35 masak Truewar: last year we developed something called Web.pm for exactly that purpose.
10:36 sorear Do I understand correctly that, while we parse a file, the Match objects retain *both* a full AST *and* the PAST?
10:36 masak but it's not done yet, and the best advice I have is to start small and be patient.
10:36 moritz_ sorear: yes
10:36 sorear I wonder if that accounts for much of our memory use when compiling the setting
10:37 masak Truewar: if you haven't done any Perl 6 before, it might be better to start with something non-web. the web parts are still full of frustration.
10:37 masak and I don't believe latest Rakudo does sockets yet.
10:38 jnthn masak: I'm pretty sure sockets are back since a while.
10:38 masak I sit corrected. sockets are back.
10:38 masak (whoever did that)++
10:39 jnthn I forget who, but yes. :-)
10:40 jnthn masak: Well, I like the timezone shift in that I could get up at a sensible time here, but it was like sleeping until midday back home.
10:40 Truewar %)
10:41 masak jnthn: there's a 'fun' surprise for you when you go back home, then... :P
10:41 jnthn masak: oh noes...
10:41 jnthn I should just do continual round-the-world trips.
10:42 masak then you'll inexplicably start to lose days instead :)
10:42 sorear trait_mod: stuff is only run at CHECK time?
10:43 sorear this will make the implementation of 'is parsed' somewhat awkward
10:44 masak I'm doing spectesting now in order to apply JimmyZ's patch. are the 9 fails in t/spec/S05-mass/properties-derived.rakudo known?
10:45 * moritz_ runs that file
10:45 moritz_ All tests successful.
10:45 jnthn sorear: We special case a few of them.
10:46 moritz_ masak: one of the properties- files had some tests that pass on some platforms, and fail on others
10:46 moritz_ masak: maybe somebody unfudged them because they were passing TODOs for them
10:46 masak ah.
10:46 jnthn sorear: But in general, yes.
10:46 moritz_ maye #?skip them this time
10:47 masak I've seen those failures before.
10:47 jnthn Min internets e kas.
10:47 masak I think I've added fudges for them once.
10:47 moritz_ *maybe
10:48 masak or not. the file hasn't been touched since August.
10:48 moritz_ then it's a new failure
10:48 moritz_ maybe related to nqp-rx updates?
10:50 sjn left #perl6
10:50 masak yeah...
10:50 masak this still feels horribly familiar.
10:50 * masak greps the irclogs
11:01 * jnthn goes for breakfast...to a place that serves Jack Daniels milkshakes.
11:01 * sorear has decided that the sanest way to implement macro foo is parsed(/bar/) { bazzle } is to notionally rewrite it into BEGIN { Perl6::Compiler.add_macro('foo', /bar/, sub ($/) { bazzle });
11:01 sorear }
11:08 * masak backlogs the #parrot discussion about git from last night, and is alarmed and dismayed by how out-of-touch some of the core Parrot people seem to be with Rakudo development
11:11 masak apart from the spectest failures in two properties- files in S05, I also had a few 'TODO passed' in t/spec/S14-roles/anonymous.rakudo and t/spec/S32-str/uc.rakudo
11:16 sorear rakudo: my $r = { $^a }
11:16 p6eval rakudo c4857a:  ( no output )
11:26 wknight8111 joined #perl6
11:28 M_o_C joined #perl6
11:46 JimmyZ good evening, #perl6
11:47 masak \o
11:48 masak JimmyZ: almost done spectesting your patch. looks godd so far.
11:49 JimmyZ masak: just a replace of substr :)
11:49 masak aye. I know. still, gotta be careful.
11:51 sorear ok, time to try it
11:52 * sorear builds stage1
11:56 dalek rakudo: 376196d | masak++ | src/glue/contextuals.pir:
11:56 dalek rakudo: [src/glue/contextuals.pir] s/concat/replace/
11:56 dalek rakudo: Patch courtesy of Zhuo Mingliang (JimmyZ++).
11:56 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/376196dffcd4fa8ea337d4be7c62f4593494c952
12:01 masak I should have written the name as hanzi as well... :)
12:07 sorear it compiles...
12:08 moritz_ masak: the passing TODO here are in properties-general, not properties-derived
12:09 moritz_ masak: and the one in S14-roles/anonymous are unreliable :(
12:09 masak yes, unreliable. that's what I got when I ran a second time and didn't get most of the failures and todo passes...
12:13 BrowserUk joined #perl6
12:14 masak from S12: 'If there is a C<self:sort> operator defined, that will be used.' yet S02 doesn't list 'self:' as a grammatical category. also, the whole thing is quite arbitrary. can we scratch this bit?
12:17 moritz_ +1
12:18 moritz_ custom sorting is done by overloading infix:<cmp>
12:19 masak last time I mentioned this to TimToady, he sounded like he was open to this particular darling being killed.
12:19 masak if a third person agrees, I'll wipe it from the spec.
12:20 * moritz_ counts: masak, TimToady, moritz_
12:20 masak :) I'll log back and see what he actually said.
12:21 arnsholt masak: Yeah, that was quite the debate on git/svn
12:24 * masak realizes from the irclog search results that he says 'sort' way to often :)
12:27 masak arnsholt: I'm glad they have the debate, but I'm sad to see some of them so disconnected from Rakudo development.
12:27 moritz_ #parrot?
12:30 masak yeah. the logs from around midnight. (slightly before and after)
12:30 sorear rakudo: sub infix:sym<@@> ($x, $y) { }
12:30 p6eval rakudo c4857a: OUTPUT«A method named '>' already exists in class 'Perl6;Grammar'. It may have been supplied by a role.␤current instr.: 'parrot;P6metaclass;add_method' pc 422 (runtime/parrot/library/P6object.pir:326)␤»
12:30 moritz_ masak: I didn't bother to backlog yet
12:30 * masak submits rakudobug
12:30 moritz_ masak: known already
12:30 masak ah, ok.
12:30 masak it did look familiar :)
12:37 BrowserUk left #perl6
12:55 moritz_ rakudo: sub swap($a is rw, $b is rw) { ($a, $b) = ($b, $a) }; swap(3, 4) # should that die?
12:55 p6eval rakudo c4857a:  ( no output )
12:55 moritz_ I'm quite sure it should :/
12:55 masak aye, me too.
12:56 * moritz_ predicts masak's next line
12:56 * masak does the thing that fulfills that prediction
12:58 moritz_ I have a nice example for named parameters for my talk
12:58 moritz_ but actually it's not the named paramters that are nice
12:58 moritz_ sub rectangle(:$width, :$height, :$char = 'X') {
12:58 moritz_ say $char x $width for ^$height;
12:58 moritz_ }
12:58 masak nice.
13:00 moritz_ I think $width and $height should be mandatory if they don't have a default
13:02 masak aye. seems the only sensible defaults are (1,1) or a pair of program-wide constants.
13:02 sorear rakudo: sub foo is bar { }
13:02 p6eval rakudo c4857a: OUTPUT«Could not find sub &chars␤current instr.: 'perl6;Signature;_block23798' pc 518026 (src/gen/core.pir:82346)␤»
13:04 masak o.O
13:15 masak rakudo: sub foo($a is rw) { $a = 5 }; foo(42)
13:15 p6eval rakudo c4857a: OUTPUT«Cannot assign to readonly value␤current instr.: '&die' pc 17391 (src/builtins/Junction.pir:410)␤»
13:15 masak rakudo: (1, 2) = 3, 4
13:15 p6eval rakudo c4857a:  ( no output )
13:16 masak ok, so it's the list assignment that doesn't pick up on non-rw values.
13:19 moritz_ ah, I remember that I've fudged some tests for that
13:25 gurjeet joined #perl6
13:26 rv2733 joined #perl6
13:29 BrowserUk joined #perl6
13:42 kokajxo joined #perl6
13:48 FreeStorm joined #perl6
13:51 FreeStorm left #perl6
13:57 finanalyst joined #perl6
13:58 finanalyst rakudo: my %h=<a b c> Z 1,2,3; for %h { .say }
13:58 p6eval rakudo c4857a: OUTPUT«a  1␤b      2␤c      3␤␤»
13:59 finanalyst alpha: my %h=<a b c> Z 1,2,3; for %h { .say }
13:59 p6eval alpha 30e0ed:  ( no output )
13:59 masak feels like alpha timed out there.
14:00 masak works locally here.
14:00 finanalyst masak: i think there should only be one CR not two in the rakudo output
14:00 masak yes, now I see it.
14:00 masak rakudo: my %h=<a b c> Z 1,2,3; say +%h
14:00 p6eval rakudo c4857a: OUTPUT«3␤»
14:00 masak odd.
14:01 finanalyst shall i report a bug?
14:01 masak please do.
14:01 finanalyst just checking first.
14:01 masak rakudo: my %h=<a b c> Z 1,2,3; for %h { say "!" }
14:01 p6eval rakudo c4857a: OUTPUT«!␤»
14:01 masak ah, there you go.
14:01 masak no bug :)
14:02 masak or, hm.
14:02 masak should a hash stringification end in a newline?
14:02 masak maybe not.
14:02 masak anyway, the difference is this:
14:03 masak rakudo: my %h = a => 1; say $a
14:03 p6eval rakudo c4857a: OUTPUT«Symbol '$a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
14:03 masak oops.
14:03 masak rakudo: my %h = a => 1; say %a
14:03 p6eval rakudo c4857a: OUTPUT«Symbol '%a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
14:03 masak erm.
14:03 masak rakudo: my %h = a => 1; say %h
14:03 p6eval rakudo c4857a: OUTPUT«a  1␤␤»
14:03 masak alpha: my %h = a => 1; say %h
14:03 p6eval alpha 30e0ed:  ( no output )
14:03 masak locally, 'a  1␤'.
14:04 finanalyst seems something wrong with alpha
14:05 masak with p6eval's alpha, yes.
14:05 finanalyst but i think i have used for %h loop before and it did not give an extra CR
14:05 finanalyst i dont understand why it should
14:06 masak alpha iterates over the pairs.
14:06 masak rakudo master doesn't.
14:06 finanalyst ah
14:06 masak that seems to be the difference.
14:07 masak so I'll change my mind again.
14:07 masak it's a bug :)
14:07 masak please submit.
14:07 finanalyst doing so
14:07 masak finanalyst++
14:09 isBEKaml joined #perl6
14:09 redicaps joined #perl6
14:09 k23z__ joined #perl6
14:10 finanalyst std: my %e = <a b c verbose> Z 1,2,3, 'yes'; for %e { .say } if %env<verbose> ~~ 'yes';
14:11 p6eval std 30532: OUTPUT«[31m===[0mSORRY![31m===[0m␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/OTEl6DO1b8 line 1:␤------> [32mverbose> Z 1,2,3, 'yes'; for %e { .say }[33m⏏[31m if %env<verbose> ~~ 'yes';[0m␤    expecting horizontal whitespace␤Parse failed␤FAILED
14:11 p6eval ..00:…
14:11 finanalyst std: my %e = <a b c verbose> Z 1,2,3, 'yes'; for %e { .say } if %e<verbose> ~~ 'yes';
14:11 p6eval std 30532: OUTPUT«[31m===[0mSORRY![31m===[0m␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/M1MnsD59gl line 1:␤------> [32mverbose> Z 1,2,3, 'yes'; for %e { .say }[33m⏏[31m if %e<verbose> ~~ 'yes';[0m␤    expecting horizontal whitespace␤Parse failed␤FAILED
14:11 p6eval ..00:02…
14:11 masak you can't put a statement-modifying anything after a block for loop.
14:11 masak that's, like, a category error or something.
14:12 masak statement-modifiers modify statements, not blocks.
14:12 finanalyst oh i see now
14:13 finanalyst std: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %env<verbose> ~~ 'yes' { for %e { .say } }
14:13 p6eval std 30532: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable %env is not predeclared at /tmp/sKcs96gWlO line 1:␤------> [32m <a b c verbose> Z 1,2,3, 'yes'; if %env[33m⏏[31m<verbose> ~~ 'yes' { for %e { .say } }[0m␤Check failed␤FAILED 00:02 109m␤»
14:13 finanalyst std: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %e<verbose> ~~ 'yes' { for %e { .say } }
14:13 p6eval std 30532: OUTPUT«ok 00:02 109m␤»
14:14 BrowserUk left #perl6
14:16 redicaps left #perl6
14:22 iblechbot joined #perl6
14:27 envi^home joined #perl6
14:34 fridim joined #perl6
14:39 moritz_ rakudo: my %e = <a b c verbose> Z 1,2,3, 'yes'; if %e<verbose> ~~ 'yes' { for %e { .say } }
14:39 TimToady sorear: we don't track $*LINE in <ws> because it would be *very* fragile, especially in the presence of grammar extensions that might match \n or \v or even .*? themselves.
14:39 p6eval rakudo c4857a: OUTPUT«a  1␤b      2␤c      3␤verbose   yes␤␤»
14:39 TimToady also, line numbers would be redundant when we're already tracking the current position in every Cursor
14:40 TimToady plus, you'd have to track how every different editor counts Unicode characters as lines; much easier to do that in one position-to-line mapping routine than spread across a grammar
14:41 TimToady for this reason I keep trying to encourage the parrotfolk to STOP TALKING ABOUT LINE NUMBERS!!!!
14:42 TimToady but they ignore me, for hysterical raisins :)
14:42 TimToady since the primary point of parrot, to begin with, was that I wasn't to be let near it.
14:42 moritz_ you talk about line numbers yourself :-)
14:42 TimToady well, but I'm a hypocrite
14:43 TimToady I wouldn't mind if they talk about line numbers if they also talked more about positions :)
14:44 TimToady well, it's not a make-or-break issue for parrot; and neither is git vs svn
14:52 masak indeed.
14:53 nihiliad joined #perl6
14:53 TimToady sorear: the macro is probably actually invoked with a Cursor in self, not a Match object; we didn't understand the difference when that spec was written
14:54 sorear the macro's parser, absolutely - it's a regex
14:55 sorear the body of the macro feels like an action method to me
14:55 TimToady and we should proably scrap 'is parsed' and make the inside regex code :)
14:55 sorear What.
14:55 sorear Where do I put my *code* then?
14:56 TimToady inside the regexes { make ... }
14:56 TimToady regex's
14:56 TimToady which, funny thing, returns an AST
14:56 TimToady just looking at the general solution here
14:56 TimToady we could still have sugar for old methody non-regex macros
14:57 TimToady may "macro" is not a sub-slot declarator, but a scope-slot declarator
14:57 TimToady macro regex vs macro method
14:58 dalek yapsi: 08364fc | masak++ | lib/Yapsi.pm:
14:58 dalek yapsi: [Yapsi.pm] added Yapsi::Environment
14:58 dalek yapsi: This enables passing an environment (containing all the lexical variables set
14:58 dalek yapsi: at runtime) into another compilation, allowing for such things as BEGIN time
14:58 dalek yapsi: and a REPL.
14:58 dalek yapsi: review: http://github.com/masak/yapsi/commit/08364fc2799256c050ffde8248484a6a22b5f557
14:58 moritz_ and eval!
14:58 masak hm, indeed.
14:58 TimToady well, just poking a method into the current grammar is not quite what macros do currently
14:59 masak moritz_: but blocks don't return values yet. so eval could only be used for side effects.
14:59 sorear TimToady: I still don't understand.  How can 'make' set the AST attribute of a match object that doesn't exist yet?
14:59 moritz_ masak: if you have side effects, you can cheat with as !return_value variable :-)
14:59 TimToady make sets the AST attribute that rides along with the returned Cursor
15:00 TimToady all grammar methods return Cursors, really
15:00 TimToady otherwise the next method wouldn't know what language it's in, or the current position
15:00 masak moritz_: yuck :)
15:01 TimToady our current macros actually fire off more at reducecheck time
15:02 TimToady or an infix, say, would not have its arguments yet
15:02 moritz_ it would have its arguments's AST, no?
15:02 TimToady no
15:02 TimToady <infix> only matches the infix operator itself
15:02 TimToady an infix can set a reducecheck that sees the infixes arguments
15:03 TimToady but that's called from within the operator precedence parser
15:03 TimToady so macro infix:<> really needs to run at that moment
15:04 sorear "Current" macros?
15:04 sorear Does that mean S06, or am I not being as pioneering as I think I am?
15:04 TimToady currently specced
15:04 TimToady nobody's implemented them yet
15:05 TimToady macros were the *last* thing on pugs's roadmap
15:07 TimToady but I've been mistakenly thinking that a user's "macro infix:<op>" translates directly to a grammar's "token infix:sym<op>", but that's not quite so
15:07 TimToady it needs that to parse the infix, but it needs something like a reducecheck to manage the arguments
15:08 plobsing joined #perl6
15:10 sorear I'm implementing reader macros, not tree macros
15:10 TimToady does that mean "textual" vs "hygienic"?
15:10 TimToady I'm not familiar with your terminology
15:11 sorear classic lisps have two kinds of macros
15:11 TimToady what are you planning to return, a string to be reparsed, or an AST
15:11 sorear reader macros are keyed on the lookahead character - ie they augment a protoregex - they parse (some stuff) and return an AST
15:12 TimToady and tree macros are for AST transformations?
15:12 sorear tree macros exist in ordinary lookup scopes and don't affect parsing at all, but are called later in translation to rewrite a subtree of the parse
15:12 gurjeet joined #perl6
15:13 TimToady well, lisp kinda has it easy in the parsing department, generally
15:14 kst joined #perl6
15:14 sorear yes
15:14 TimToady so I guess what I'm saying, in those terms, is that what the user thinks of as a simple macro has aspects of both reader macro and tree macro, to interact with OPP successfully
15:15 sorear I'm not concerning myself with anything like a reducecheck, I mean
15:15 TimToady reducecheck being a spot to call a tree macro, essentially
15:16 sorear good: I've gotten my macro system to stop crashing.  bad: it should be crashing in a different way, but isn't
15:16 TimToady well, I'm sayin' that to do successful reader macros in Perl 6, you probably have to be able to fire off a tree macro later, since the reader for infix is not supposed to look for arguments, to the first approximation
15:17 TimToady lisp gets around this by mostly not having infix operators :)
15:18 sorear \o/ MACROS WORK.
15:18 TimToady then I'll have to break them.  :)
15:19 TimToady we wouldn't want jnthn++ and pmichaud++ to feel like they're in an exclusive club now...
15:19 * moritz_ waits for a timtoadybug in rt
15:19 * TimToady has lots of bugs, but nobody's offering to debug them for me...
15:20 TimToady but \o/ too, FSDO \o/  :)
15:20 masak sorear: \o/
15:20 masak and this now works in a branch in Yapsi: http://gist.github.com/386409
15:21 masak \o/
15:21 masak walk &
15:21 dalek yapsi: a6ba93b | masak++ | yapsi:
15:21 dalek yapsi: [yapsi] make target really case-insensitive
15:21 dalek yapsi: Both uc and lc variants parsed before, but now both of them actually work.
15:21 dalek yapsi: review: http://github.com/masak/yapsi/commit/a6ba93ba0ef2fcf885662f69428d9f794264d4d4
15:22 sorear nqp: foo if 0;
15:23 p6eval nqp:  ( no output )
15:23 sorear nqp: foo if 1;
15:23 p6eval nqp:  ( no output )
15:23 moritz_ nqp: foo() if 1
15:23 p6eval nqp: OUTPUT«Could not find non-existent sub foo␤current instr.: '_block11' pc 0 (EVAL_1:6)␤»
15:23 TimToady sorear: how do your macros interact with grammatical categories?
15:24 sorear macros can be added to any protoregex in the rakudo grammar
15:24 sorear I've been testing with term:<foo>
15:24 TimToady e.g. can you do a '.WHAT' macro that is only recognized in postfix position?
15:24 sorear maybe
15:25 sorear it would have to go on dotty, I think
15:25 TimToady well, terms are easy, so that's a good place to start. :)
15:25 TimToady but even prefixes and postfixes have to worry about arguments, or at least provide some kind placeholders in the AST for them
15:26 TimToady maybe that's a viable approach, and a generic reducecheck just pokes the args into the right holes
15:26 justatheory joined #perl6
15:26 TimToady doesn't work if you want to examine/transform the arg ASTs though
15:27 sorear also, macros can't be defined in the setting
15:27 TimToady let me be clear that it is a good thing that you are working on this, even if it does cause spec changes :)
15:29 TimToady I haven't attempted macros in STD yet because I don't actually have a way to eval an AST yet, so your experience is certainly pioneering in that sense.
15:29 sorear nqp: sub foo (*@x) { say(+@x); }; foo("z", |(1 ?? <a b> !! <c>))
15:29 p6eval nqp: OUTPUT«3␤»
15:29 sorear nqp: sub foo (*@x) { say(+@x); }; foo("z", |(0 ?? <a b> !! <c>))
15:29 p6eval nqp: OUTPUT«flattened parameters must be a hash or array␤current instr.: '_block11' pc 0 (EVAL_1:5)␤»
15:29 sorear nqp: sub foo (*@x) { say(+@x); }; foo("z", |(0 ?? <a b> !! <c d e>))
15:29 p6eval nqp: OUTPUT«4␤»
15:30 sorear nqp: say(pir::typeof__SP(<>))
15:30 p6eval nqp: OUTPUT«String␤»
15:30 sorear nqp: say(pir::typeof__SP([]))
15:30 p6eval nqp: OUTPUT«ResizablePMCArray␤»
15:30 moritz_ TimToady++ # for mostly not using backticks Perl 6 - now can I delimit Perl 6 code with `...` in my custom slide show builder
15:32 arnsholt .u ā
15:32 phenny U+0101 LATIN SMALL LETTER A WITH MACRON (ā)
15:33 arnsholt .u ṇ
15:33 phenny U+1E47 LATIN SMALL LETTER N WITH DOT BELOW (ṇ)
15:40 masak sorear++ # pioneering macros
15:40 kst joined #perl6
15:40 moritz_ btw I'm developing my Perl 6 talk and the software to render it in parallel at http://github.com/moritz/perltalk
15:41 moritz_ (the talk is German, though)
15:43 masak looks cute.
15:44 masak the line `swap(my $x = 1, my $y = 3);` is way trippy :P
15:45 masak moritz_: mismatched { on line 145.
15:45 masak and copy-pasted to line 155.
15:47 moritz_ thanks
15:48 k23z__ joined #perl6
15:50 dju joined #perl6
15:57 sorear My current patch is only 76 insertions
15:58 * moritz_ always loves it when a patch is insertions-only
15:58 moritz_ it feels the software was extensible enough to allow adding features without removing or changing existing code
15:58 sorear I actually prefer deletion-only patches
15:58 moritz_ maybe it's a stupid sentiment
15:59 moritz_ sorear: well, those are even better, but rare :-)
15:59 sorear Especially when they fix bugs or add features
16:00 tri1 joined #perl6
16:07 pugssvn r30533 | lwall++ | [S12] delete self:sort darling
16:08 masak \o/
16:09 moritz_ another deletion-only patch (apart from updating that stupid Version marker)
16:11 dual joined #perl6
16:13 * masak uses $obj.*method() for the first time
16:19 sorear ok, I've screwed up scoping somewhere
16:20 sorear macro bodies cannot see the SETTING
16:20 diakopter oh; who fixed dalek to show yapsi
16:21 finanalyst rakudo: class A { has $.a; has $.b }; my A $x.=new(:a(2),:b(3)); say $x.^attributes
16:21 p6eval rakudo c4857a:  ( no output )
16:21 moritz_ that's not a long list.
16:21 finanalyst i am trying to list the attributes of a class
16:21 masak diakopter: you did... :)
16:22 finanalyst can any one help?
16:23 JimmyZ rakudo: Date.^attr.say;
16:23 p6eval rakudo c4857a: OUTPUT«Method 'attr' not found for invocant of class ''␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
16:23 moritz_ rakudo: say +Date.^attributes
16:23 p6eval rakudo c4857a: OUTPUT«12␤»
16:23 moritz_ rakudo: .say for Date.^attributes
16:23 JimmyZ rakudo: Date.^attributes.say;
16:23 p6eval rakudo c4857a: OUTPUT«Method 'say' not found for invocant of class 'Attribute'␤current instr.: '_block51' pc 373 (EVAL_1:152)␤»
16:23 p6eval rakudo c4857a:  ( no output )
16:24 moritz_ rakudo: say "$_" for Date.^attributes
16:24 p6eval rakudo c4857a: OUTPUT«get_string() not implemented in class 'Attribute'␤current instr.: '_block51' pc 373 (EVAL_1:152)␤»
16:24 JimmyZ rakudo: say ~Date.^attributes;
16:24 moritz_ rakudo: say $_.^methods for Date.^attributes
16:24 masak rakudo: class A { has $.a; has $.b }; A.^attributes>>.name.perl.say
16:24 p6eval rakudo c4857a: OUTPUT«get_string() not implemented in class 'Attribute'␤current instr.: 'perl6;Iterable;Str' pc 453043 (src/gen/core.pir:59265)␤»
16:24 p6eval rakudo c4857a: OUTPUT«Method 'methods' not found for invocant of class ''␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
16:24 p6eval rakudo c4857a: OUTPUT«("\$!a", "\$!b", "\$!a", "\$!b", "\$!a", "\$!b")␤»
16:24 masak finanalyst: that works.
16:24 moritz_ "works"
16:24 masak :)
16:24 moritz_ have you actually looked at the output?
16:25 JimmyZ rakudo: say Date.^attributes>>.name.say;
16:25 masak it's... interesting.
16:25 p6eval rakudo c4857a: OUTPUT«$!year$!month$!day$!daycount$!year$!month$!day$!daycount$!year$!month$!day$!daycount␤1␤»
16:25 sorear TimToady: One interesting question is, how should quasiquoting interact with parse-time side effects?
16:25 moritz_ oh, that looks much better
16:25 masak it's... comprehensive...
16:25 JimmyZ rakudo: say Date.^attributes>>.name.perl.say;
16:25 p6eval rakudo c4857a: OUTPUT«("\$!year", "\$!month", "\$!day", "\$!daycount", "\$!year", "\$!month", "\$!day", "\$!daycount", "\$!year", "\$!month", "\$!day", "\$!daycount")␤1␤»
16:25 sorear TimToady: I speak of stuff like 'has'
16:25 masak why does it repeat itself?
16:25 moritz_ no idea
16:25 masak can I report it? puhleeze?
16:26 moritz_ sure
16:26 masak \o/
16:26 * masak reports
16:26 JimmyZ rakudo: say +Date.^attributes;
16:26 p6eval rakudo c4857a: OUTPUT«12␤»
16:26 masak ...wrong by a factor of 3 or so... :P
16:26 JimmyZ rakudo: class A { has $.a; has $.b }; ++A.^attributes
16:26 p6eval rakudo c4857a: OUTPUT«Method 'succ' not found for invocant of class 'Parcel'␤current instr.: '&prefix:<++>' pc 555891 (src/gen/core.pir:95983)␤»
16:26 moritz_ but it's consistent with listing each thrice
16:26 JimmyZ rakudo: class A { has $.a; has $.b }; +A.^attributes
16:26 p6eval rakudo c4857a:  ( no output )
16:27 JimmyZ rakudo: class A { has $.a; has $.b }; +A.^attributes.say
16:27 p6eval rakudo c4857a: OUTPUT«Use of uninitalized value in numeric context␤»
16:27 JimmyZ rakudo: class A { has $.a; has $.b }; say +A.^attributes
16:27 p6eval rakudo c4857a: OUTPUT«6␤»
16:28 finanalyst suppose i instantiate a class, how do I get the current values of the attributes?
16:28 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say (new A).a
16:28 p6eval rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near ").a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:28 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say (new A)->a
16:28 p6eval rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near ")->a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:28 moritz_ finanalyst: by using an accessor
16:29 moritz_ finanalyst: obtaining the value via introspection is neither specced nor implemented
16:29 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say (new A()).a
16:29 p6eval rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:29 moritz_ rakudo++ # good error messag
16:29 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say (new A()).a()
16:29 p6eval rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).a()"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:29 TimToady sorear: just off the cuff, quasiquoted code has to be considered generic rather like a role body
16:30 masak finanalyst: what is it you're wanting to do?
16:30 moritz_ JimmyZ: did you bother to read the error message?
16:30 JimmyZ Yeah
16:30 finanalyst i want to see what the current variables of an instantiate class are
16:30 masak yeah, you said that.
16:30 masak why?
16:30 finanalyst tracing an error
16:31 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say (new A()).WHAT
16:31 p6eval rakudo c4857a: OUTPUT«Unsupported use of C++ constructor syntax; in Perl 6 please use method call syntax at line 11, near "()).WHAT"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
16:31 JimmyZ rakudo: class A { has $.a = 2; has $.b }; say A.WHAT
16:31 masak finanalyst: why do you need to do it with introspection, rather than manually?
16:31 finanalyst there are a lot of attributes and putting them in a list seems clunky
16:31 p6eval rakudo c4857a: OUTPUT«A()␤»
16:33 masak well, using the above .^attributes meta-method, compensating for the triple-bug, and then using eval somehow should work.
16:33 finanalyst rakudo: class B {has $.a; has $.b; has $c; method stat { for $.a, $.b, $.c { .say }}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat
16:33 p6eval rakudo c4857a: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
16:34 finanalyst rakudo: class B {has $.a; has $.b; has $c; method stat { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat
16:34 p6eval rakudo c4857a: OUTPUT«Method 'c' not found for invocant of class 'B'␤current instr.: 'perl6;B;stat' pc 444 (EVAL_1:180)␤»
16:35 finanalyst rakudo: class B {has $.a; has $.b; has $c; method stat() { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat
16:35 p6eval rakudo c4857a: OUTPUT«Method 'c' not found for invocant of class 'B'␤current instr.: 'perl6;B;stat' pc 444 (EVAL_1:180)␤»
16:35 masak missing dot on the $.c attr.
16:35 finanalyst rakudo: class B {has $.a; has $.b; has $.c; method stat() { for $.a, $.b, $.c { .say }}}; my B $x.=new(:a(1),:b(2),:c(3)); $x.stat
16:35 p6eval rakudo c4857a: OUTPUT«1␤2␤3␤»
16:35 masak maybe we should give people an allotted number of p6eval calls per day, so they'll check their spelling better. :P
16:36 finanalyst sory
16:36 finanalyst :)
16:36 masak no prob :)
16:36 christine joined #perl6
16:36 masak today I'm really pot calling kettle black saying that. :)
16:37 finanalyst well i was looking for a neater way of doing the .stat method
16:38 dalek book: 1b7c0ce | moritz++ | bin/book-to-latex:
16:38 dalek book: [latex] use T1 font encoding, without it Coke++ reported build errors on Mac OS X (ticket #1)
16:38 dalek book: review: http://github.com/perl6/book/commit/1b7c0ce277cede8b7d3cf94b3f164efc10217465
16:38 dalek book: 2fb5e20 | moritz++ | README:
16:38 dalek book: [README] document that you need the "bera" font to build the book
16:38 dalek book: review: http://github.com/perl6/book/commit/2fb5e204777f35849e264bb9ef2264ca5e062abd
16:38 masak rakudo: my $a = q[has $.a]; class A { eval($a) }; say A.^attributes # nope, that didn't work... :)
16:38 p6eval rakudo c4857a: OUTPUT«␤»
16:44 dalek book: db59e3e | Coke++ | src/preface.pod:
16:44 dalek book: monospace some items.
16:44 dalek book: review: http://github.com/perl6/book/commit/db59e3e7300f320c35036f5d7d56cbb11b6e33e3
16:44 dalek book: 0ea942a | Coke++ |  (2 files):
16:44 dalek book: Merge branch 'master' of github.com:perl6/book
16:44 dalek book: review: http://github.com/perl6/book/commit/0ea942a0771ae573622b2d904a7bc38f8ad9e524
16:46 masak snarkyboojum: ping
16:46 diakopter jnthn: Jack Daniels milkshake?
16:50 BrowserUk joined #perl6
16:51 p6eval joined #perl6
16:51 BrowserUk left #perl6
16:52 pmurias joined #perl6
16:52 pmurias diakopter: hi
16:53 diakopter hi
16:54 pmurias how difficult would it be to have access to lexicals by name in perlesque? would it cause a performance penalty?
16:55 diakopter how would that be done
16:56 diakopter I mean, how would it look in code
16:56 pmurias where are the lexicals stored in perlesque?
16:57 moritz_ my $foo = 3; my $var = 'foo'; say $::($var) # 3
16:57 moritz_ something like this=
16:57 diakopter oh
16:58 diakopter not too hard; basically it'd cause a case/switch to be emitted
16:58 diakopter switch/case I mean
16:58 diakopter sigh.
16:59 masak given/when :)
17:00 diakopter technically, neither; it's just a CIL "switch" statement, and there aren't "case" statements; it's just a bunch of conditions and gotos
17:00 diakopter actually for strings, it's not even a switch statement
17:00 diakopter only for a dense zero-indexed array of ints does it get transformed to a jump table
17:01 masak *nod*
17:03 pmurias diakopter: how should mildew determine where Sprixel is localted?
17:04 diakopter I dunno..
17:04 pmurias env variable could work on linux...
17:04 diakopter however it wants?  it could always svn co it if it's not there, like --gen-parrot except --gen-perlesque
17:05 sorear joined #perl6
17:05 diakopter obviously svn and mono are dependencies of that
17:05 JimmyZ rakudo: my $a; say $a[0]; say $a[0];
17:05 p6eval rakudo c4857a: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class ''␤current instr.: '!postcircumfix:<[ ]>' pc 10885 (src/builtins/Role.pir:73)␤»
17:05 JimmyZ rakudo: my Array $a; say $a[0]; say $a[0];
17:05 p6eval rakudo c4857a: OUTPUT«␤␤»
17:06 JimmyZ rakudo: my Array $a; say $a[3]; say $a[3];
17:06 p6eval rakudo c4857a: OUTPUT«␤␤»
17:06 JimmyZ rakudo: my Array $a; $a[3]; say $a[3];
17:06 p6eval rakudo c4857a: OUTPUT«␤»
17:06 JimmyZ rakudo: my Array $a; my $b = $a[3]; say $a[3];
17:06 p6eval rakudo c4857a: OUTPUT«␤»
17:06 diakopter rakudo: my Array of Array of Array $a; say $a[3]; say $a[3];
17:06 p6eval rakudo c4857a: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:07 diakopter rakudo: my Array of Array $a; say $a[3]; say $a[3];
17:07 p6eval rakudo c4857a: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'. Available candidates are:␤:(Mu : Int $i;; *%_)␤:(Mu : Block $b;; *%_)␤:(Mu : !whatever_dispatch_helper ;; *%_)␤␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:09 moritz_ rakudo: my Array @a; say @a[0]
17:09 p6eval rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)␤»
17:09 tri2 joined #perl6
17:13 diakopter phenny: tell pmurias I mean, since it takes less than 10 seconds to build Sprixel.exe .... --gen-perlesque would go quite quickly :)
17:13 phenny diakopter: I'll pass that on when pmurias is around.
17:14 JimmyZ rakudo: my Array $a = [1]; my $b = $a[3]; say $a[3];
17:14 p6eval rakudo c4857a: OUTPUT«␤»
17:15 JimmyZ rakudo: my Array @a = [1]; my $b = @a[3]; say @a[3];
17:15 p6eval rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)␤»
17:15 JimmyZ rakudo: my Array @a = [1]; my $b = @a[1]; say @a[1];
17:15 p6eval rakudo c4857a: OUTPUT«get_pmc_keyed() not implemented in class ''␤current instr.: 'perl6;Positional[::T];postcircumfix:<[ ]>' pc 10705 (src/metamodel/GrammarHOW.pir:41)␤»
17:15 masak hm.
17:16 JimmyZ parrot bug?
17:16 masak JimmyZ: when you do `my Array @a`, you get an Array typed as containing only Arrays.
17:16 JimmyZ rakudo: my Array $a = [1]; my $b = $a[3]; say $a[3];
17:16 p6eval rakudo c4857a: OUTPUT«␤»
17:16 masak that doesn't seem to be related to the error you get, though.
17:17 moritz_ masak: yes, the error should be a type mismatch
17:17 JimmyZ rakudo: my Array $a = [1]; my $b = $a[0]; say $a[0];
17:17 p6eval rakudo c4857a: OUTPUT«1␤»
17:17 JimmyZ rakudo: my Hash $a = [1]; my $b = $a[0]; say $a[0];
17:17 p6eval rakudo c4857a: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 17391 (src/builtins/Junction.pir:410)␤»
17:19 JimmyZ good ninght
17:20 tri1 joined #perl6
17:24 masak good night, 卓明亮!
17:34 tri1 joined #perl6
17:38 dalek yapsi: 830b6a2 | masak++ | lib/Yapsi.pm:
17:38 dalek yapsi: [Yapsi] expose the runtime state a bit more
17:38 dalek yapsi: This commit is explicitly tailored to expose the parts that Tardis will need
17:38 dalek yapsi: in order to register the state at each tick.
17:38 dalek yapsi: The four calls to self.*tick (beginning of program, after assignment, after
17:38 dalek yapsi: binding, after call to &say) are in a way arbitrary, but it's the best
17:38 dalek yapsi: guess we have right now as to what a debugger needs. The reason we use a
17:38 dalek yapsi: * rather than a ? in the call is so that many deriving classes will be able
17:38 dalek yapsi: to have their .tick method invoked. Will be interesting to see if that
17:38 dalek yapsi: distinction will actually be important to someone.
17:38 dalek yapsi: review: http://github.com/masak/yapsi/commit/830b6a2af2f6939e1bb98fb094a1c2b458c88cb9
17:38 masak phenny: tell snarkyboojum that Yapsi is now, finally, ready for Tardis. here's a proof-of-concept: http://gist.github.com/386512
17:38 phenny masak: I'll pass that on when snarkyboojum is around.
17:40 tri2 joined #perl6
17:45 tri1 joined #perl6
18:02 TiMBuS joined #perl6
18:04 finanalyst rakudo: my $s="a\tb\tc"; my @a= $s.split("\t")[1 .. *-1]; .say for @a
18:04 p6eval rakudo c4857a:  ( no output )
18:04 finanalyst alpha: my $s="a\tb\tc"; my @a= $s.split("\t")[1 .. *-1]; .say for @a
18:04 p6eval alpha 30e0ed: OUTPUT«b␤c␤»
18:13 mikehh_ joined #perl6
18:17 M_o_C joined #perl6
18:19 masak time to nom. will be back later tonight to release Yapsi. :)
18:36 sorear joined #perl6
18:41 Minimiscience joined #perl6
18:42 M_o_C joined #perl6
18:50 colomon finanalyst: I'm pretty sure [1 .. * - 1] is a non-starter.
18:51 finanalyst has it been eliminated from spec?
18:51 colomon was it ever in the spec?
18:51 finanalyst it used to work
18:52 finanalyst * in [] context was the same as +@
18:52 colomon still is, except it's not a context.
18:53 finanalyst although in most case +@array is possible, the problem occurs when you dont know the name of the array
18:53 colomon but I don't think you can combine that with a Range.
18:53 finanalyst 'context' in loose meaning of word
18:53 kst joined #perl6
18:53 colomon (I could be wrong, however.)
18:54 finanalyst I am not suggesting any design ideas. More a question of how to get the last element in an array
18:54 colomon I guess it could be possible that the whatever curry is somehow passed to the Range, but that sounds like a lot of magic.
18:54 colomon oh!
18:55 colomon I should have seen that right away, apologies.
18:55 colomon if you want to get everything but the first element, it's [1..*]
18:55 finanalyst you have lost me already
18:55 colomon except that doesn't work in master yet.
18:55 colomon if you just want to get the last element [*-1] should work.
18:56 finanalyst in alpha you could not use [1..*]
18:56 finanalyst may be [ 1 ..^ * ]
18:57 colomon [1..*] is correct, I'm pretty sure.
18:57 colomon There's two different uses of * overlapping here.
18:58 finanalyst alpha: my @x=1,2,3,4; .say for @x[1..*]
18:58 p6eval alpha 30e0ed: OUTPUT«2␤3␤4␤Use of uninitialized value␤␤»
18:58 finanalyst alpha: my @x=1,2,3,4; .say for @x[1..*-1]
18:58 p6eval alpha 30e0ed: OUTPUT«2␤3␤4␤»
18:59 finanalyst colomon: the uninitialised slot is why [ 1 .. *-1] is needed
18:59 colomon finanalyst: no
18:59 colomon alpha is wrong here.
18:59 finanalyst ah.
18:59 finanalyst much neater of course without -1
19:01 colomon basically (as I understand it) there are two different things going on here with *.
19:01 colomon when you say [*-1], what happens is it generates a block of code which looks something like -> $a { $a - 1 }
19:01 colomon then the [ ] passes in the length of the array as $a.
19:02 colomon but when you're doing slices [1..*] is supposed to mean, "give me all the elements starting with one and ending when we run out."
19:02 colomon likewise if you say [*], that just means "all the elements".
19:03 finanalyst so alpha got it wrong because it wasnt lazy?
19:03 colomon I think it was just an alpha bug
19:04 finanalyst thanx for the explanation
19:04 colomon I guess it is possible that [1 .. *-1] might automatically do the right thing.  But if it does, it's because 1 .. *-1 will somehow make a function that does -> $a { 1 .. ($a - 1) }
19:06 colomon alpha: my &a = 1 .. (*-1); say &a;
19:06 p6eval alpha 30e0ed: OUTPUT«!whatever_closure␤»
19:06 colomon ah.
19:06 colomon so it actually was doing the right thing there.  alpha++
19:07 pmurias joined #perl6
19:07 colomon alpha: my &a = 1 .. (*-1); say &a(10);
19:07 p6eval alpha 30e0ed: OUTPUT«123456789␤»
19:07 pmurias diakopter: rehi
19:07 phenny pmurias: 17:13Z <diakopter> tell pmurias I mean, since it takes less than 10 seconds to build Sprixel.exe .... --gen-perlesque would go quite quickly :)
19:07 diakopter pmurias: hi
19:07 diakopter pmurias: I'm fixing subs-as-variables, which already bitrotted
19:07 colomon finanalyst: but [1..*]  is supposed to work, definitely.
19:08 finanalyst but it doesnt yet
19:08 * colomon doesn't want to think about the level of complexity involved in getting 1 .. *-1 to automatically do the right thing...
19:08 pmurias diakopter: write some tests to make sure they won't bitrot again
19:16 diakopter pmurias: :P
19:18 diakopter sigh. I just realized I *must* do the per-callsite return-slot thing. :|
19:19 * diakopter gets to it.
19:24 BrowserUk joined #perl6
19:24 BrowserUk left #perl6
19:28 pugssvn r30534 | pmurias++ | [mildew] submolds in m0ld
19:28 pugssvn r30535 | pmurias++ | [mildew] m0ld supports comments and call with no arguments
19:28 pugssvn r30536 | pmurias++ | [mildew] -Bperlesque
19:30 pmurias diakopter: what could be interesting would be to see what does it take to get mildew to run on your box (perlesque backend only with SMOP etc.)
19:37 lue o hai! I was wondering if (other than the spec of course) there is a place where I can learn about P6 classes
19:38 lue I've read the spec, but something more tutorial-oriented would be nice :)
19:39 moritz_ lue: like, the book?
19:40 Minimiscience http://perlgeek.de/blog-en/perl-5-to-6/05-objects-and-classes.html and others on that site are the only Perl 6 class tutorials I know of.
19:40 lue what book? I've checked perl6.org, nothing _too_ useful there :)
19:40 moritz_ http://github.com/perl6/book/blob/master/src/classes-and-objects.pod
19:42 lue dankon!
19:42 mce_ro joined #perl6
19:43 diakopter pmurias: one change starting today is that every subroutines (named or anonymous) must declare each's return type up-front
19:43 diakopter (sorry :()
19:43 lue really, the part where I'm stumbling is the purpose of bless. I don't think I've ever had to use something like it in, say, Python 3. (I could be wrong of course)
19:47 lue from what I know, the purpose of bless() is to call that object's BUILD method. I still can't quite see why I'd want to use bless() though.
19:47 lue (I can post what I'm trying to do to lisppaste if that would help)
19:48 Su-Shee lue: the last perl 6 class I wrote didn't require blessing.
19:48 lue what would you use it for though?
19:48 Su-Shee I wouldn't. I use it in perl 5.
19:49 Su-Shee I didn't even know that there still _is_ bless.
19:49 lue what would you use bless for in P5 then? I know P5 hasn't got expansive class support.
19:49 pmurias diakopter: that's not a problem for me
19:50 Su-Shee lue: that you'll find in any perl book explained in detail. what are you asking exactly?
19:50 pmurias lue: MooseX::Declare is pretty good
19:51 diakopter Su-Shee: lue was trying to understand Perl 6 bless
19:51 diakopter oh.
19:51 Su-Shee diakopter: there still is a bless?
19:51 diakopter lue: yes :) nopaste your code please
19:51 moritz_ Su-Shee: yes
19:51 diakopter Su-Shee: apparently, according to http://github.com/perl6/book/blob/master/src/classes-and-objects.pod
19:51 bkeeler bless associates a reference with a package so that it knows where to find methods when you call them
19:51 moritz_ http://perlgeek.de/blog-en/perl-6/object-construction-and-initialization.html
19:52 Su-Shee ok, then I have absolutely no idea what bless in p6 is for.
19:52 lue it's Python code, and I'm trying to convert to P6. I need to know of classes first though (just a second)
19:52 bkeeler You roll your own constructors in P5, something like "sub new { my $package = shift; bless {} => $package }"
19:52 diakopter http://github.com/perl6/book/blob/master/src/classes-and-objects.pod  is confusing
19:52 moritz_ diakopter: how so?
19:52 diakopter "Perl 6 constructors actually create of the object themselves"
19:52 bkeeler It still exists in P6, but the metamodel provides a default constructor so you don't need to muck around with bless
19:53 diakopter moritz_: the Constructors section says "The example's constructor ..."
19:53 diakopter but I don't see a constructor in an example
19:54 diakopter oh.  I have to view it in raw :)
19:54 moritz_ diakopter: ah, github doesn't render PseudoPod very well
19:54 lisppaste3 lue pasted "Incomplete NES cpu class (python)" at http://paste.lisp.org/display/98645
19:54 diakopter moritz_: also, "is that rather than setting up state on a somehow
19:54 diakopter .. already magically created object"
19:54 diakopter ..
19:54 Su-Shee ok, I don't understand the explanation in the book as well.
19:54 Khisanth Su-Shee: but is there a damn()? :)
19:55 diakopter doesn't seem clear when there's a "self" keyword in the new method
19:55 lue there you are, that's it. :)
19:55 moritz_ did you find my blog post clearer?
19:55 Su-Shee lue: anyway. I've never needed a p6 bless until now as I didn't even know that it existed. I already abandoned bless mentally.
19:56 lue mortiz_: yes. As I said, it's really only bless() I was wondering about. Glad I probably won't need to use it :)
19:57 diakopter moritz_: no, not really
19:57 diakopter b/c "p6opaque" is not explained
19:57 moritz_ then I don't write diakopter-compatbile docs, it seems
19:58 sorear joined #perl6
19:58 Su-Shee I don't get it as well. I could use it, but I don't understand its usefulness and purpose.
19:59 diakopter I suspect that's not the problem.  I think the concepts are complicated.
19:59 * moritz_ doesn't understand all that confusion
20:00 moritz_ somehow new objects need to be created
20:00 moritz_ that's what bless does
20:00 diakopter can there be multiple new methods with different signatures?
20:00 moritz_ diakopter: sure - they can be multi methods
20:00 Su-Shee moritz_: I thought that's what I have new for which is builtin? why would I need bless then?
20:01 lue .oO(wow, looking back, I can't believe I wrote all that at one time: http://paste.lisp.org/display/98645)
20:01 diakopter how does one avoid parent class(es)' BUILD methods from also calling bless?
20:01 moritz_ diakopter: bless calls BUILD, not the other way round
20:01 TimToady BUILD methods never call bless
20:01 moritz_ diakopter: if a BULID method calls bless, it's b0rked
20:02 TimToady bless actually calls BUILDALL, which calls all appropriate BUILDs
20:02 TimToady similary for DESTROYALL
20:02 moritz_ ... as I explained in the blog post, if I remember correctly
20:02 TimToady *larly
20:03 diakopter ok; I couldn't make it past the opaque mention of p6opaque
20:03 moritz_ diakopter: how do you ever manage to read parts of the spec if you don's skip things you don't understand? :-)
20:03 diakopter where is bless' signature described
20:03 TimToady Khisanth: 'damn' is the name of the garbage collector
20:05 lue So, just plug in methods/submethods appropriately, and come back when it breaks? :)
20:05 diakopter moritz_: did you notice the book typo I quoted above?
20:05 TimToady S12:736
20:05 moritz_ diakopter: yes
20:05 moritz_ diakopter: I actually wanted to push a change, but forgot to enter the password
20:05 TimToady bbl &
20:07 masak joined #perl6
20:07 Su-Shee lue: a handful of accessors usally is nice as well. and then people like me are usally done with their classes. ;)
20:07 masak ahoy, perl6beings!
20:07 * masak enters Yapsi release engineering mode
20:07 lue ah yes, must allow people to touch my classes ;) [lookee at http://paste.lisp.org/display/98645 and see if there's any other advice you can give me]
20:08 lue masak: ohai!
20:08 masak olue!
20:08 * lue enters TARDIS anticipation mode
20:08 masak lue: did you see the proof-of-concept gist I pasted earlier?
20:09 lue yes, looked at it. that's why I'm suddenly interested in Yapsi ;)
20:10 masak Tardis has been the main driver of Yapsi development for the past month, just to get to this point :)
20:10 masak next month will probably be more sigmund-oriented.
20:11 lue Tardis will be the only interactive debugger I'll ever use. (I'm assuming it keeps the name then?)
20:12 masak yeah, I haven't seen any better name on the horizon :)
20:13 lue what does it stand for? I still like something along the lines of Time-Augmented Realistic Debugging In Style (or something of the sort)
20:14 masak lue: see the README.
20:17 masak lue: are you satisfied with the explanations you got about bless? otherwise I could have a go. I use bless quite often.
20:18 Su-Shee and me idiot thought the whole point was not to have doing bless anymore.. ;)
20:19 masak Su-Shee: in the common case, you don't.
20:19 moritz_ Su-Shee: having the object creation facility in bless and not new() makes it easy to hide the built-in new()
20:19 kst joined #perl6
20:19 masak programming is like an onion, it has layers. :)
20:20 lue check out my lisppaste and tell me if I would need it: http://paste.lisp.org/display/98645
20:20 dalek book: 8e36bf7 | moritz++ | src/classes-and-objects.pod:
20:20 dalek book: grammar fix pointed out by diakopter++
20:20 dalek book: review: http://github.com/perl6/book/commit/8e36bf7feb394b47ab89ed6a2bbc75cc16da0ecc
20:20 * masak checks
20:20 lue so, bless is to let everybody know your package exists and where it is.
20:21 Su-Shee moritz_: so far I already understood. I don't understand what's it good for. but I'm not the audience anyway.
20:21 masak lue: er, that's python, as far as I can see.
20:21 masak also, it triggered my tl;dr filter.
20:21 masak sorry. :/
20:21 Su-Shee lue: is that assembler in python? ;)
20:22 lue yes, it's python. I'm porting to Perl 6
20:23 lue that thing is the reason why I switched: refereneces (@a := @b) and switch statements
20:23 lue Su-Shee: it's a 2A03 cpu emulator :)
20:23 Su-Shee .oO(so essentially yes.. ;)
20:24 lue all the #NOTE WARNING CAUTION stuff is because kate highlights those kinds of words as bold red, and I wanted them to stand out.
20:25 lue .oO(Practical Emulation of Rudimentary Languages)
20:26 dalek yapsi: c92d82d | masak++ | README:
20:26 dalek yapsi: [README] updated
20:26 dalek yapsi: review: http://github.com/masak/yapsi/commit/c92d82defcb1145bbdedc2b124cf2343cd764941
20:26 colomon joined #perl6
20:29 stepnem joined #perl6
20:33 moritz_ rakudo: / \w+ ** \. /
20:33 p6eval rakudo c4857a: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Regex;P6Regex;Actions;_block554' pc 29649 (ext/nqp-rx/src/stage0/P6Regex-s0.pir:8431)␤»
20:34 moritz_ rakudo: / a+ +/
20:34 p6eval rakudo c4857a: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Regex;P6Regex;Actions;_block554' pc 29649 (ext/nqp-rx/src/stage0/P6Regex-s0.pir:8431)␤»
20:34 moritz_ masak: care to submit?
20:34 * masak submits rakudobug
20:34 moritz_ error while trying to produce an error message, it seems
20:34 masak how meta.
20:35 masak why does the first one try to produce an error message?
20:35 masak it looks alright to me.
20:35 moritz_ because it's a quantifier on a quantifier
20:35 masak ...and?
20:36 masak alpha: / \w+ ** \. /; say "alive"
20:36 p6eval alpha 30e0ed: OUTPUT«alive␤»
20:36 moritz_ std: / \w+ ** \. /
20:36 masak std: / \w+ ** \. /
20:36 p6eval std 30536: OUTPUT«[31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/qX02jGN3T7 line 1:␤------> [32m/ \w+ ** \. [33m⏏[31m/[0m␤Check failed␤FAILED 00:01 111m␤»
20:36 p6eval std 30536: OUTPUT«[31m===[0mSORRY![31m===[0m␤quantifier quantifies nothing at /tmp/Aj8Op1qPtv line 1:␤------> [32m/ \w+ ** \. [33m⏏[31m/[0m␤Check failed␤FAILED 00:01 108m␤»
20:36 * masak chooses not to believe STD in this case
20:36 masak a ** quantifier on a + quantifier is totally OK.
20:36 masak I've even used it at times.
20:37 masak the \w+ effectively produces a higher-order term, which can be quantified.
20:37 jnthn Evening hackathon! :-)
20:37 masak \o/
20:37 colomon I've got ten free minutes before I've got to start cooking dinner....
20:37 masak jnthn: Yapsi release imminent!
20:37 colomon :)
20:38 colomon \o/
20:38 pmurias TimToady: any ideas how a CPANised module should use STD?
20:38 dalek yapsi: b9ccde1 | masak++ | doc/ChangeLog:
20:38 dalek yapsi: [ChangeLog] added changes for May release
20:38 dalek yapsi: review: http://github.com/masak/yapsi/commit/b9ccde1f3baef7cbc927dd27db3614064fbd0c73
20:38 Su-Shee left #perl6
20:39 jnthn masak: Yay :-)
20:39 jnthn BTW, Iceland is awesome. :-)
20:39 colomon \o/
20:40 masak how was Eyafjallajökull?
20:40 jnthn I got a look at That Volcano (from a distance) today.
20:40 diakopter pmurias: depend on svn and check it out? :P
20:40 pmurias jnthn: what are you doing on Iceland?
20:40 jnthn pmurias: Relaxing, and occasionally doing Perl 6 things.
20:40 jnthn And drinking beer.
20:41 * lue remembers his favorite (american) morning radio show selling "I Hate Iceland" tshirts
20:41 jnthn Overall, just a week of fun. :-)
20:42 pmurias jnthn: did you meet with avar?
20:42 Guest62733 left #perl6
20:48 BrowserUk joined #perl6
20:55 BrowserUk left #perl6
21:01 orafu joined #perl6
21:04 wolverian joined #perl6
21:23 lue grr... You know that measurement of console screens back in ye olde days? 80xtwenty-something. I can remember 80, but what was the other dimension?
21:23 masak 25.
21:25 moritz_ 24
21:25 moritz_ well, depends I think
21:25 dalek yapsi: 9a0a096 | masak++ | doc/announce/2010.05:
21:25 dalek yapsi: [doc/announce/2010.05] added May announcement
21:25 dalek yapsi: review: http://github.com/masak/yapsi/commit/9a0a096537e65f9c0c084f49e9161e629302700e
21:25 lue I first got it from when the Infocom setup disks ask for your resolution :)
21:26 masak I'll be happy to receive comments on the release announcement.
21:26 masak will release in a few minutes. :)
21:26 * moritz_ reads
21:27 lue +Yapsi is an 'official and complete' Perl 6 release. It's official because we
21:27 lue 13
21:27 lue +have little labels with the word 'official' on them that we glue to each
21:27 lue 14
21:27 lue +download that takes off from github. (That much gluing takes a lot of work,
21:27 lue 15
21:27 lue +but we think of it as a community service.)
21:27 masak we do.
21:27 lue (sorry about the weird pasting) that's my favorite line :)
21:28 masak :)
21:28 * moritz_ likes the Schadenfreude
21:29 masak thought you would :)
21:29 moritz_ masak++
21:29 masak hokay, going into release mode, then.
21:29 lue that looks german and I can't understand it! (Schadenfreude)
21:29 masak lue: delight at the misery of others.
21:30 masak lue: 'Schade' means 'hurt', IIUC. 'freude' means 'joy'.
21:30 masak but IANAG.
21:30 lue they sounded familiar (but I was only in Germany until I was 4 or 5)
21:32 moritz_ actually Schaden = damage
21:32 masak ah.
21:33 masak wtf Yapsi 2010.04 109 downloads! o.O
21:33 masak no wonder we had to order more 'official' stickers.
21:34 moritz_ :-)
21:35 lue so Yapsi basically takes a shortcut while calling the turtle (er, rakudo) for some help on being an interpreter?
21:35 nadim joined #perl6
21:35 s1n masak: by complete, does yapsi pass tests?
21:35 masak s1n: yes. not spectests yet, though.
21:36 masak but we have tests.
21:36 s1n interesting
21:36 masak lue: if I understand you correctly, then no.
21:37 lue My metaphor was «trying» to say that Yapsi gets help from rakudo to be a perl6 interpreter written in perl6.
21:37 masak should a release announcement go to both p6c and p6l, or just the one?
21:37 masak lue: it does that, yes. and if anything deserves the eponym 'turtle' it's Yapsi.
21:37 * lue receives -3 Cape of Failed Metaphor
21:37 masak lue: you should try it; it's dazzlingly slow :)
21:38 lue more than rakudo? Imp(robable|ossible)!
21:38 s1n masak: does yapsi reuse rakudo's built-in's or does it provide its own?
21:38 wolverian masak: s/an server/a server/
21:39 masak s1n: depends what you mean. there's no way to do 'print' except with 'print', for example.
21:39 masak wolverian: thanks! saved at the last minute. :)
21:39 wolverian is the "SIC seceral" on purpose?
21:40 wolverian too punny to know. :)
21:40 masak good question. no :)
21:40 masak these fixes will go in post-release, since I've already uploaded the .tar.gz.
21:40 masak but I hadn't sent the announcement yet, so that will look right.
21:40 lue rakudo: say "\x26B0 is a coffin, \x26B1 is a funeral urn. Who'd thought those'd be in Unicode?"
21:40 p6eval rakudo c4857a: OUTPUT«⚰ is a coffin, ⚱ is a funeral urn. Who'd thought those'd be in Unicode?␤»
21:41 * masak goes with just p6c, like last time
21:41 s1n masak: does it reuse rakudo's List, for example, or did you write your own?
21:41 masak so far, neither.
21:41 s1n oh
21:41 masak it's complete, not finished :P
21:42 s1n lol
21:42 s1n fast and loose with that word
21:42 s1n i read "complete" as "feature complete"
21:43 masak it is feature complete.
21:43 masak ...for a very restricted set of features.
21:45 s1n i don't think that's a good choice of words, very misleading
21:47 masak hm. you might be right.
21:47 masak people might think it's actually complete...
21:47 masak ah well, announcement's away already. too late to change it. :)
21:49 masak s1n: tell you what. if people turn up and say they expected complete to mean 'complete', they'll get a full refund.
21:50 masak that way, we get both the branding *and* happy customers!
21:50 lue .oO(do they get to keep the «OFFICIAL» sticker, ABSOLUTELY FREE!?)
21:51 lue .oO(our gift to you!(?))
21:52 masak heh. chromatic already tweeted about Yapsi being 'official and complete' :)
21:53 masak and it's getting re-tweets. o.O
21:53 * masak hides
21:54 lue quick! use these array sigils as covers. If you need more, you can them from twitter!
21:54 lue can *get* them
21:55 donaldh joined #perl6
21:55 lue .rpg(masak receives +10 Blanket of Arrays)
21:56 s1n i'd rather have the Socket of Escape :)
21:57 * s1n is so glad to be done of coursework
21:57 masak lue: have I mentioned that I'm considering doing a one-month blog experiment this summer, implementing an adventure game in Perl 6?
21:57 wolverian masak: zorkesque?
21:57 lue yay! I was thinking of a text game about #perl6
21:58 lue Couldn't decide between P6 and Inform though :)
21:58 masak the idea is to take the successes of the Perl 6 Advent Calendar, and do a similar thing in the summer.
21:58 masak getting people involved and taking turns blogging, etc.
21:58 * lue gives masak +42 ^C
21:59 masak question is how to co-ordinate it, though. since things will build on each other in a way the Advent postings mostly didn't.
21:59 lue when would it start? I'd love to help with an adventure game.
21:59 masak probably needs a bit more up-front planning.
21:59 masak lue: it starts when someone creates a github repo for it :)
21:59 lue masak: if it weren't so slow for me, I'd recommend Bespin
21:59 pugssvn r30537 | jnthn++ | [t/spec] Tests for inheritance and role composition involving lexical roles/classes.
21:59 jnthn Meh, this connection sucks.
22:00 lue if you were thinking of 2+ editing the same file at the same time, that is.
22:00 lue ohai jnthn o/
22:00 masak lue: oh, cool. didn't know about that.
22:01 masak I don't do realtime multiplayer editing often enough.
22:02 lue I don't either, bespin is painfully slow for me :(
22:02 lue not painful, but not easy-to-use either
22:02 * lue gives jnthn +5 (ATK) T1 line
22:03 dalek rakudo: 78fb4ec | jonathan++ | src/Perl6/Actions.pm:
22:03 dalek rakudo: Fix inheritance and doing of lexical classes / roles.
22:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/78fb4ec90909b41f48632733b06159ac22e3d60d
22:03 dalek rakudo: db73c1f | jonathan++ | src/Perl6/Compiler/Package.pm:
22:03 dalek rakudo: Fix declaring multiple lexical classes in a given scope.
22:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/db73c1f5cab389eee4bd14d717452dbf6dc09d0c
22:04 masak lue: did you know about http://svn.pugscode.org/pugs/examples/adventure/adventure.pl ?
22:06 eternaleye lue: re bespin, there's always Gobby/Kobby/Infinote, or Wave, or the etherpad-based options @ http://etherpad.org/etherpadsites.html
22:07 eternaleye The former have the benefit of being native apps, whereas the latter two are AJAX
22:10 wolv joined #perl6
22:10 s1n masak: are you really in an optics phd program?
22:10 masak s1n: nope.
22:10 s1n oops
22:11 s1n moritz_
22:11 kfo_ joined #perl6
22:11 s1n (i always mix your names up lol)
22:13 lue no i did not, masak
22:13 masak I think at one point it worked in Rakudo.
22:14 dalek rakudo: a38bf7e | jonathan++ | docs/ROADMAP:
22:14 dalek rakudo: Lexical classes now essentially work and are tested. We'll no doubt find bugs, but I the bulk of the work is done, so move them to completed section of the ROADMAP.
22:14 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a38bf7e5f0e467593a5e60409550a9b7739f4b30
22:14 lue It looks OK, but methinks it could be better (of course)
22:15 masak indeed.
22:15 lue I like Inform for this kind of stuff, because it was _made_ for this kind of stuff.
22:15 masak still, one has to start somewhere, even with something ambitious.
22:16 jnthn That's a "must have" roadmap item knocked off. :-)
22:16 lue If you like, I could relearn Inform (again) and draft an idea for the game.
22:16 lue jnthn++ \o/ :D \o\ /o/ ba-da-da-daaa!
22:17 diakopter um, yay. :)
22:17 masak jnthn++
22:18 masak lue: sure. but I guess you are aware that I do plan to use Perl 6 as a platform, not Inform :)
22:18 lue oh, I read that as "The must have roadmap section knocked off"
22:18 jnthn lue: If only!
22:18 lue masak: of course, it's not much of PoC code if it weren't in P6 :)
22:19 lue I also have to feel like relearning Inform again. I always learn it for a bit, then forget everything,
22:19 lue it's worth it to just jump straight to P6.
22:19 masak the fact that Inform was made for this type of thing only means that we have to find an angle for the game such that Inform would be a bad fit, and Perl 6 a good one.
22:21 lue anything involving file IO is a good start :P
22:22 masak good to know.
22:22 masak and by that time, we might have binary IO...
22:22 dalek csmeta: r234 | diakopter++ | trunk/Sprixel/ (9 files):
22:22 dalek csmeta: [perlesque] redo a lot about sub declarations, named and anonymous, so that a
22:22 dalek csmeta: named sub can invoke itself (or return closures of states of itself).
22:22 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=234
22:22 lue (I guess online MUD type stuff is theoretically possible in Inform (last I checked), but P6 would obviously be better)
22:23 lue Inform can load modules and images and such, but I don't recall it ever opening any files you want, like the open() command.
22:23 diakopter and, once again, bugs in mono.
22:24 masak lue: hm. I'm reluctant to go in the MUD direction, at least as a first attempt.
22:24 masak a MUD is a bit too open-ended to work well as a tutorial.
22:25 lue yeah, well, just a thought :)
22:27 * lue checks up on inform7 to see what it's not good at
22:27 * jnthn will be hackathoning tomorrow :-)
22:28 eternaleye lue: masak: Maybe a roguelike? It would involve goodly amounts of file IO to remember and restore levels, and we could make a really neat run-length-encoding sub  ;D
22:28 masak eternaleye: interesting.
22:28 masak eternaleye: Tene++ has already started on one, I believe.
22:28 eternaleye Ooh, must see...
22:28 masak http://github.com/tene/cutegirls
22:28 lue .oO(nethack!)
22:29 eternaleye Hm, it's p5 with some perl6 in via modules
22:31 lue a programming language like Inform 7 seems right up TimToady's alley...
22:31 eternaleye Also, multiplayer may be complicating things too much - most roguelikes are single-player, and turn-based systems tend not to scale well with increased players (one walks away -> hang)
22:31 colomon joined #perl6
22:32 masak eternaleye: aye. I think single-player is a must.
22:32 dalek csmeta: r235 | diakopter++ | trunk/Sprixel/src/Grammar/Grammar.cs:
22:32 dalek csmeta: [perlesque] try to fix usage on mono.
22:32 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=235
22:33 eternaleye Well, since use :from<p5> is working now, we could use the p5 ncurses bindings
22:33 masak eternaleye: not sure what Tene's long-term plans were. maybe he intended to port it all to Perl 6 when possible.
22:33 eternaleye masak: Could be
22:33 * lue can't wait for the day you can use the qt libraries
22:33 eternaleye That would be very shiny indeed
22:35 plobsing joined #perl6
22:37 lue one idea would be to set up a system where you could download extra areas (a more dynamic game)
22:37 lue of course, that departs from your standard Infocom text game :)
22:44 masak maybe the place to start is to brainstorm over a 'conceptual design'... making the text-adventure game 'artwork' up front.
22:45 masak with a solid core idea, it's easier to build towards a goal.
22:45 lue agreed
22:48 lue I wonder when/where to brainstorm, though
22:48 masak needn't be complicated. some day we'll make ourselves a channel and start it. :)
22:48 masak not tonight, though.
22:49 nadim_ joined #perl6
22:55 lue of course not, a new doctor who comes on in a couple hours :P
22:55 masak :)
22:56 masak let's keep it in the back of our minds for some time.
23:00 * lue thinks of creating the #rakudodeathstar channel for things like #rs that aren't appropos for #rs
23:03 masak that's not a channel, it's a space station!
23:04 lue the IRC channel for the space station of course :)
23:06 sbp I love how the most recent change message for cutegirls is "A few minor visual improvements"
23:06 masak even cuter, in other words. :)
23:06 lue masak: of course, the perfect virtual representation of Rdie* would be a MUD ;)
23:11 patrickas joined #perl6
23:16 dalek csmeta: r236 | diakopter++ | trunk/Sprixel/ (5 files):
23:16 dalek csmeta: [perlesque] more fixes for mono, hopefully.
23:16 dalek csmeta: review: http://code.google.com/p/csmeta/source/detail?r=236
23:38 astrojp joined #perl6
23:50 wknight8111 joined #perl6

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

Perl 6 | Reference Documentation | Rakudo