Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-11-13

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:00 diakopter oh the gaieté
00:00 TimToady If this is Friday it mustn't be Paris.
00:00 * masak read "gaieté" as "happysummer"
00:02 * TimToady reads it as 賀意得手
00:03 sorear 1/4, not bad
00:03 TimToady "congratulatory feeling strong point"
00:03 TimToady rakudo: say 1/4 ~~ 0 ^..^ 1
00:03 p6eval rakudo c548b8: OUTPUT«Bool::True␤»
00:04 TimToady rakudo: say 1/4 ~~ 0 ^1
00:04 p6eval rakudo c548b8: OUTPUT«Bool::False␤»
00:05 TimToady ooh
00:05 TimToady wait
00:05 TimToady rakudo: say 1/4 ~~ ^1
00:05 p6eval rakudo c548b8: OUTPUT«Bool::True␤»
00:05 TimToady nm
00:06 TobiO|ref joined #perl6
00:07 TimToady decommuting &
00:09 masak phenny: "賀意得手"?
00:09 phenny masak: "Congratulatory feeling forte" (ja to en, translate.google.com)
00:09 tadzik hmm, anyone with parrotgit having problems with running the REPL?
00:09 tadzik Method 'stdhandle' not found for invocant of class 'ParrotInterpreter'
00:11 lue Hooray! I'm getting things working!
00:11 ilogger2 left #perl6
00:11 araujo joined #perl6
00:12 * lue &
00:13 mindos1 rakudo: say <H l o W r d> Z <e l _ o l !>;
00:13 p6eval rakudo c548b8: OUTPUT«Hello_World!␤»
00:13 masak mindos1++
00:13 mindos1 lol
00:14 masak phenny: "具体万岁!"?
00:14 phenny masak: "Long live concrete!" (zh-CN to en, translate.google.com)
00:14 MayDaniel left #perl6
00:15 ash_ joined #perl6
00:17 tadzik wesnoth anyone? :)
00:18 masak tadzik: Perl 6 is my MMORPG.
00:19 tadzik masak: mine to, but I like some boardgame-like strategies sometimes
00:19 masak tadzik: I'm partial to abstract board games, especially connection games.
00:19 masak hence, for example, Druid.
00:23 ilogger2 joined #perl6
00:28 mindos1 rakudo: say 20.rand.Int + 1;
00:28 p6eval rakudo c548b8: OUTPUT«2␤»
00:29 tadzik rakudo: (1..20).pick.say
00:29 p6eval rakudo c548b8: OUTPUT«9␤»
00:29 TobiO|ref is now known as TobiO
00:29 masak tadzik++ # beat me to it
00:29 tadzik :)
00:29 tadzik speedkarma
00:29 Trashlord joined #perl6
00:32 mindos1 rakudo: say (1..30).pick min(20);
00:32 p6eval rakudo c548b8: OUTPUT«17␤»
00:32 mindos1 a cheat one...
00:33 mindos1 Can't use .max yet ?
00:33 tadzik now how does that work?
00:33 masak std: say (1..30).pick min(20);
00:33 p6eval std a194beb: OUTPUT«ok 00:01 121m␤»
00:33 masak o.O
00:34 jnthn ...huh.
00:34 * masak scratches head
00:34 tadzik hmm
00:34 tadzik rakudo: say 5 min 7
00:34 ilogger2 left #perl6
00:34 p6eval rakudo c548b8: OUTPUT«5␤»
00:34 tadzik rakudo: say 5 min(7)
00:34 masak jnthn++ figured it out :)
00:34 p6eval rakudo c548b8: OUTPUT«5␤»
00:34 masak infix:<min> :)
00:34 jnthn hehe
00:35 jnthn that's sick
00:35 jnthn :)
00:35 jnthn I'm a tad surprised it's not ttfn
00:35 jnthn er
00:35 jnthn ttiar
00:35 masak shouldn't stuff(...) always mean function call?
00:35 masak I thought we were quite strict about that.
00:35 diakopter std is, I think
00:36 sorear masak: only in term state
00:36 sorear 5 min(7) parses min in infix state
00:36 masak aye.
00:36 sorear besides, function calls are illegal infixes
00:36 masak ok, I buy that. reluctantly.
00:36 jnthn He REALLY doesn't look like he wants to pay
00:36 jnthn ;-)
00:37 masak so, an infix operator walks into a bar...
00:37 jnthn ouch.
00:37 jnthn I thought that was a gymnast too? ;)
00:37 masak infix:<drunkengymnast>
00:38 Eevee left #perl6
00:40 ilogger2 joined #perl6
00:43 shortcircuit Hm.
00:43 shortcircuit Risottocode. Sounds tasty.
00:43 shortcircuit Fiancee is making torellini right now.
00:43 Eevee joined #perl6
00:49 thundergnat joined #perl6
00:49 bluescreen joined #perl6
00:50 bluescreen is now known as Guest61435
00:51 thundergnat Are lookaround assertions in .subst methods supported / implemented?
00:52 masak nqp-rx doesn't have <?after...> yet.
00:52 mindos1 std: say 5 min 7
00:52 p6eval std a194beb: OUTPUT«ok 00:01 120m␤»
00:52 masak but <?before> should work.
00:52 thundergnat Bummer. I was trying to do <?after>.
00:52 mindos1 std: say 5+1
00:52 p6eval std a194beb: OUTPUT«ok 00:01 120m␤»
00:53 mindos1 std: say 5
00:53 p6eval std a194beb: OUTPUT«ok 00:01 118m␤»
00:53 masak thundergnat: if you're desperate, you might look how Yapsi emulates <?after>.
00:53 tadzik std: say 'ok 00:01 120m'
00:53 p6eval std a194beb: OUTPUT«ok 00:01 119m␤»
00:53 tadzik dang :/
00:54 thundergnat masak As a half-assed measure I'm just capturing and re-adding a term in, but it bothers me to do that.
00:56 masak thundergnat: yes, workarounds are almost by definition LTA.
00:56 ilogger2 left #perl6
00:56 tadzik anyway, anyone on parrotgit alredy?
00:59 ilogger2 joined #perl6
00:59 diakopter is that a BBS or something?
01:00 icwiener_ left #perl6
01:00 tadzik nah, it's a Rakudo branch using Parrot from git
01:00 tadzik moritz's alredy gone, and my REPL is broken for some reason
01:01 dalek 6model: d5f0591 | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
01:01 dalek 6model: [dotnet] Implement pasttype def_or.
01:01 dalek 6model: review: https://github.com/jnthn/6model/commit/d​5f0591ebba5a9d3012c84cc2f2e7a9cc3fa2a4e
01:01 dalek 6model: 320a588 | jonathan++ | t/nqp/12-logical.t:
01:01 dalek 6model: [t] We now pass 12-logical.t.
01:01 dalek 6model: review: https://github.com/jnthn/6model/commit/3​20a588e280582743994df4406c3ca978839d520
01:09 dalek 6model: ac286b6 | masak++ | t/nqp/11-subs.t:
01:09 dalek 6model: [t/nqp/11-subs.t] added
01:09 dalek 6model:
01:09 dalek 6model: Needed to SKIP one test, because we don't have 'our' subs yet.
01:09 dalek 6model: review: https://github.com/jnthn/6model/commit/a​c286b699b904a0f450908e9a71225d45771e6bb
01:09 masak \o/
01:10 masak I'm officially a 6model contributor!
01:10 ilogger2 left #perl6
01:11 jnthn masak++
01:11 tadzik yay
01:13 ilogger2 joined #perl6
01:13 diakopter nice
01:19 dalek 6model: 382a1ea | masak++ | t/nqp/27-self.t:
01:19 dalek 6model: [t/nqp/27-self.t] added
01:19 dalek 6model:
01:19 dalek 6model: Needed to SKIP two tests, because we don't do 'for' loops yet.
01:19 dalek 6model: review: https://github.com/jnthn/6model/commit/3​82a1eadf05f7005150f6d47afefa1cc8fb5371c
01:23 TobiO left #perl6
01:25 ch3ck3r joined #perl6
01:28 toebu_ left #perl6
01:28 masak nqp-rx: my $a := 42; say($a)
01:28 masak nqp: my $a := 42; say($a)
01:28 p6eval nqp: OUTPUT«42␤»
01:28 ch3ck left #perl6
01:28 masak nqp: my $a := 42; my $b := $a; $a++; say($b)
01:28 p6eval nqp: OUTPUT«43␤»
01:29 masak ouch :/
01:29 masak pmichaud_: please remove postfix:<++> from nqp.
01:29 masak it doesn't belong there.
01:34 sorear nqp: 42++; say("Alive")
01:34 p6eval nqp: OUTPUT«Alive␤»
01:34 dalek 6model: 24884a9 | masak++ | t/nqp/39-pointy.t:
01:34 dalek 6model: [t/nqp/39-pointy.t] added
01:34 dalek 6model:
01:34 dalek 6model: - Replaced all postfix:<++> with ($x := $x + 1)
01:34 dalek 6model:
01:34 dalek 6model: - Needed to SKIP two tests because we don't do argument defaults yet.
01:34 dalek 6model:
01:34 dalek 6model: - Needed to SKIP three tests because we don't do 'for' loops yet.
01:34 dalek 6model: review: https://github.com/jnthn/6model/commit/2​4884a9d47d23c347fd9e5b8cedc6ee821d44293
01:34 [Coke] ... why remove features from NQP??
01:35 jnthn [Coke]: Because ++ without an assignment model makes no sense semantically.
01:36 masak not only does it make no sense, it's outright harmful.
01:36 jnthn [Coke]: The way it's done in nqp-rx is a hack, and worse one that breaks if we actually build a constant table for constants rather than create a new PMC for each constant.
01:36 jnthn Plus the example masak++ pointed out earlier.
01:37 masak [Coke]: imagine the subtle bugs caused by the spooky action-at-a-distance effect I showed above.
01:37 masak in a larger program, they might be difficult to spot.
01:37 sorear don't imagine, just ask a fortran programmer
01:37 masak right.
01:38 thundergnat left #perl6
01:41 mikehh left #perl6
01:57 flatwhatson_ joined #perl6
01:59 envi joined #perl6
02:01 dalek 6model: 355ceac | masak++ | t/nqp/53-multi-method.t:
02:01 dalek 6model: [t/nqp/53-multi-method.t] added
02:01 dalek 6model:
02:01 dalek 6model: This one doesn't come from nqp-rx. It tests various aspects of
02:01 dalek 6model: proto and multi methods.
02:01 dalek 6model: review: https://github.com/jnthn/6model/commit/3​55ceac65f1793e52aaeca4e09e9d2ef2fe09bfb
02:01 meppl left #perl6
02:01 masak zzz &
02:04 dalek 6model: 784b227 | jonathan++ | dotnet/ (5 files):
02:04 dalek 6model: [dotnet] Implement slurpy array and hash parameters.
02:04 dalek 6model: review: https://github.com/jnthn/6model/commit/7​84b2278cacb37469846839a50135a5bc0dab291
02:10 masak left #perl6
02:20 cdarroch left #perl6
02:29 ch3ck3r left #perl6
02:37 molaf_ joined #perl6
02:40 molaf left #perl6
02:56 ash_ left #perl6
02:57 takadonet joined #perl6
02:57 takadonet hey all
02:58 takadonet where in the spec does it describe  perl 5 :'eval' ?
02:59 Guest61435 left #perl6
03:00 takadonet jnthn: you alive good sir?
03:01 risou joined #perl6
03:02 Guest61435 joined #perl6
03:08 sorear if jnthn is dead we're all screwed
03:08 araujo left #perl6
03:10 * TimToady wonders if masak++ done him in
03:14 araujo joined #perl6
03:16 risou left #perl6
03:18 takadonet i got a good chuck of text-tabs+wrap working!!
03:18 takadonet https://github.com/Takadonet/Text-Tabs-Wrap/
03:18 takadonet I want to see if I can get the rest of the test passing by the end of the weekend!
03:19 lue ohai again o/
03:19 takadonet lue: hey
03:24 colomon \o/
03:32 dalek niecza: 2484b4a | sorear++ | / (8 files):
03:32 dalek niecza: Add a JSYNC dumper
03:32 dalek niecza: review: https://github.com/sorear/niecza/commit/​2484b4a37abbc8178251e7e44b67aedd868bca9d
03:44 PerlPilot joined #perl6
03:47 PerlJam left #perl6
03:48 lue what's the secret organization of the directories for projects using ufo?
03:49 lue [or is ufo so good it can DWIM no matter what layout?]
03:50 Chillance left #perl6
03:54 PerlJam joined #perl6
03:56 PerlPilot left #perl6
04:04 araujo left #perl6
04:11 takadonet left #perl6
04:11 takadonet joined #perl6
04:11 takadonet stupid laptop
04:35 flatwhatson_ left #perl6
04:40 ggoebel left #perl6
04:44 demond joined #perl6
04:51 demond left #perl6
05:05 seb_est_la joined #perl6
05:23 whiteknight left #perl6
05:24 rgrau left #perl6
05:26 seb_est_la left #perl6
05:49 takadonet rakudo: 'long string here' !~~ m:c/^\s*$/; say $/.to;
05:49 p6eval rakudo c548b8: OUTPUT«-3␤»
05:49 takadonet why is it -3?
05:53 sorear at some point pmichaud++ decided that non-matches should respond to .to with a negative number
05:53 sorear I need to find out why at some point
05:53 sorear niecza doesn't have non-matches at all; failing matches return Any
05:55 takadonet hmm that going to confuse me i think
05:55 araujo joined #perl6
05:55 araujo left #perl6
05:55 araujo joined #perl6
06:40 takadonet left #perl6
07:22 justatheory left #perl6
07:26 toebu_ joined #perl6
07:30 kjeldahl joined #perl6
07:42 sidek left #perl6
07:44 sidek joined #perl6
07:55 _kaare joined #perl6
08:09 sftp left #perl6
08:09 sftp joined #perl6
08:15 mj41 joined #perl6
08:18 lidden left #perl6
08:26 kanishka joined #perl6
08:29 moritz_ good morning
08:30 sorear hi
08:35 toebu_ left #perl6
08:50 envi left #perl6
08:53 Trashlord left #perl6
08:54 envi joined #perl6
08:54 meppl joined #perl6
08:58 proller left #perl6
09:03 wamba joined #perl6
09:19 jlaire left #perl6
09:19 perigrin left #perl6
09:20 perigrin joined #perl6
09:24 mgrabovsky joined #perl6
09:26 mgrabovsky left #perl6
09:48 Woodi joined #perl6
09:57 mavrc joined #perl6
10:16 gavv\w left #perl6
10:21 jlaire joined #perl6
10:23 kjeldahl left #perl6
10:29 masonkramer left #perl6
10:29 masonkramer joined #perl6
10:32 sorear I want to tell Ben Goldberg "Working code or shut up."
10:32 sorear I suppose this would be out of line.
10:35 flatwhatson_ joined #perl6
10:35 masak joined #perl6
10:35 masak o/
10:36 moritz_ \o
10:37 masak lue: ufo is so good it can DWIM no matter what layout.
10:37 tadzik |o
10:37 ggoebel joined #perl6
10:38 jnthn sorear, TimToady: I'm glad to report that I'm alive and well. masak++ was kind enough to refrain from doing me in, even if I may deserve it for some pun or other...
10:38 masak +1
10:39 jnthn :p
10:40 masak let's just say it would be very untactical of anyone at this juncture to do Rakudo core developers in.
10:41 icwiener joined #perl6
10:49 jnthn Awesome, that means I can keep punning without fear of punctual punishment.
10:55 masak yes, you're safe.
10:55 masak as long as you keep producing runnable code.
10:55 jnthn :P
10:56 jnthn Maybe to help us wake up properly we should design nqp.net's iterator model...
10:56 masak :)
11:10 seb_est_la joined #perl6
11:10 masak seb_est_la: hello! :)
11:11 seb_est_la good morning
11:12 masak rakudo: say "al_tse_bes sgniteerg".flip
11:12 p6eval rakudo c548b8: OUTPUT«greetings seb_est_la␤»
11:13 masak .u ц
11:13 phenny U+0446 CYRILLIC SMALL LETTER TSE (ц)
11:15 tadzik do we have AUTOLOAD subs/methods in Perl 6?
11:17 masak tadzik: yes. see CANDO in S10.
11:19 tadzik Thanks. I thought about porting Git::Wrapper as someone suggested
11:20 masak let us know how that goes.
11:21 tadzik the Perl 5 code is actually very nice, and it's tempting to just rewrite it in Perl 6
11:21 tadzik we only don't have those IPC::BLah stuff
11:24 masak pro tip: start small. get result early. build successively upwards.
11:25 tadzik sure
11:34 xinming joined #perl6
11:57 MayDaniel joined #perl6
12:06 masak it's too quiet today.
12:06 masak so, should I just go ahead and remove S16?
12:06 * masak puts on an evil grin
12:09 colomon masak++
12:10 nymacro joined #perl6
12:10 masak of course, it'd be better if, instead of removing it outright, we could put in two of three sentences about what we want instead.
12:11 colomon masak: does pls now work?
12:12 masak colomon: hm. well, I fixed the model, but I'll still need to patch the application. thanks for reminding me.
12:12 masak what's the prototypical project with a dependency or two?
12:13 * colomon ....
12:13 masak svg-plot looks fine.
12:13 masak it depends on svg.
12:14 * masak tries it
12:14 tadzik neutro is fine. It has deps, and it has scripts
12:14 tadzik I recently got an idea to create fakeexecutables out of bin/ scripts, instead of just copying them
12:15 masak no please no
12:16 tadzik why not?
12:18 tadzik it's Parrot-dependant, but we're Parrot-dependant anyway atm
12:18 masak because it complicates things and makes them brittle without adding any particular benefit?
12:19 masak anyway. it's your project. you've done good things with it so far. of course you should try fakecutables if you want.
12:20 tadzik I guess it boosts the startup speed a bit. I sure drawback is that it gets outdated and not-working after some upgrades
12:21 masak hm, seems proof-of-concept has bitrotted after github's https transition.
12:21 masak fixing.
12:21 tadzik but that's ok, compiling scripts to PIR is broken anyway :)
12:22 masak it is.
12:22 masak I was going to blog about this; what struck my about the merlyn/pmichaud interview is how much PCT/Rakudo development in the past years have been a slow but steady escape from the clutches of PIR.
12:24 MayDaniel left #perl6
12:24 tadzik nqp is the alternative here? It's basically sugar over PIR now (jnthn is making it target multiple backends, no?) and it's significantly slower... then again, 6model is a blessing :)
12:25 jnthn tadzik: Once I make attribute lookups happen by index not name, that'll be an optimization unavailable to PIR code.
12:25 tadzik that'll be a huge thing indeed
12:25 masak a lot of advances is programming languages could be dismissed as "basically sugar" over some older, more primitive thing.
12:26 tadzik python is using name lookup too, no?
12:26 jnthn So at least there NQP will catch up / beat PIR on taht particular factor.
12:26 jnthn In general, I suspect writing PIR to work with 6model will be not that much fun.
12:26 jnthn I'm not designing it for that really.
12:26 xiaomo joined #perl6
12:27 masak hm, proof-of-concept has bitrotted in that ecosystem no longer stores things as JSON. (I'm all for that development, by the way. simplifications like that are rare and should be treasured.)
12:27 tadzik so Pir/Parrot is not going to be the main Rakudo backend anymore?
12:27 jnthn tadzik: Well, nqp and Rakudo will move away from using the default Parrot object model.
12:28 jnthn tadzik: As to which backend people prefer once we have more than one of them, well, that's down to the userbase. :)
12:28 jnthn I'll hack on what people are most wanting/using, I expect. With some mix-in of what's -Ofun.
12:28 orafu left #perl6
12:28 orafu joined #perl6
12:28 jnthn In general, NQP is going to become more Perl 6-y and less Parrot-y though, even atop of Parrot.
12:29 tadzik mhm
12:29 jnthn (I'm aware some Parrot folks may want to hang on to having something like it that's just Parrot sugar. That's fine. That's what forking is for.)
12:33 * masak .oO( Not Quite Parrot )
12:33 tadzik :)
12:33 tadzik jnthn: what's wrong with PIR and Parrot?
12:33 masak PIR was never meant to be an implementation language.
12:34 masak it's something of an historical accident that there's so much manually crafter PIR code around.
12:34 masak s/crafter/crafted/
12:35 tadzik so everyone's waiting for Lorito?
12:35 seb_est_la left #perl6
12:35 jnthn tadzik: Part of the issue is the object model in Parrot is purely aimed at dynamic languages and doesn't really give me a great deal of meta-programming possibilities.
12:36 tadzik I see
12:36 jnthn It - and PIR - thinks about everything in terms of strings. When actually we want to try and resolve things to indexed lookups in some places, for example.
12:36 masak meta-programming?
12:36 jnthn masak: e.g. meta-model bits
12:37 masak in other words, MOP.
12:37 jnthn masak: e.g. a class has a meta-object that's just a plain old object
12:37 jnthn Right
12:37 masak I'm not sure I've heard anyone within the Parrot project ever describing a MOP as a priority for Parrot.
12:38 masak it definitely wouldn't have been even on the radar before Moose.
12:38 jnthn To be fair, it takes a while to understand _why_ it matters.
12:38 masak funny how these things work out.
12:38 jnthn And it was during the Pugs project that the real importance of it really started to be understood.
12:38 masak right.
12:38 masak all steps on the way are built on feedback from prior steps.
12:39 hardik joined #perl6
12:39 hardik hello
12:40 masak hardik: hi!
12:40 masak rakudo: say "greetings, hardik".uc
12:40 p6eval rakudo c548b8: OUTPUT«GREETINGS, HARDIK␤»
12:40 hardik I am perl developer and I would like to contruibute in Perl6
12:40 jnthn THAT WAS LOUD :p
12:40 jnthn \o/
12:40 tadzik great!
12:40 hardik but i don't know how to start
12:41 masak hardik: that's a very common situation. what do you like to do?
12:41 hardik Basically I am programmer so i would like to contribute in programming
12:42 masak we have a lot of application code that needs writing.
12:42 mila_ joined #perl6
12:42 masak basically, every time someone writes a mid-sized program in Rakudo, things improve in various ways.
12:42 tadzik hardik: do you happen to know Perl 6?
12:43 masak so you could contribute simply by finding/creating a project and writing Perl 6 code.
12:43 hardik No I am fresh to perl 6
12:43 hardik I know perl 5 very well
12:43 tadzik we have a module database which is quite poor compared to CPAN, and every module added is a good contibution to Perl 6, and potentially reveals bugs/LTA things
12:44 masak hardik: have you taken a look at the synopses? a good start is usually to read a small bit of them, and then do some small bit of coding based on that.
12:44 * masak exemplifies with a .wrap example
12:44 hardik OK
12:44 tadzik hardik: you'd probably like the Perl 5 to 6 series of articles
12:45 masak rakudo: sub foo { say "is quite" }; &foo.wrap: { say "this"; callsame; say "cool" }; foo
12:45 p6eval rakudo c548b8: OUTPUT«this␤is quite␤cool␤»
12:45 hardik OK I understand
12:46 masak hardik: and if you experiment with p6eval like that, you'll get excellent feedback from the people here on the channel.
12:46 masak as far as I know, that's the quickest way to learn and get involved.
12:46 masak ymmv
12:46 hardik Thats perfect
12:46 hardik Let me start will that
12:47 masak above all, have fun :) we encourage play and playfulness.
12:47 hardik :)
12:49 tadzik hardik: http://perlgeek.de/en/article/5-to-6 was useful to me
12:49 masak rakudo: sub ha {}; for ^10 { &foo.wrap: ({ print "ha"; nextsame }, { print "HA"; nextsame }, { print "ho-hoo"; nextsame }, { print "haa"; nextsame }).pick }; ha
12:49 p6eval rakudo c548b8: OUTPUT«Could not find sub &foo␤  in <anon> at line 22:/tmp/BgIfIPsB2j␤  in main program body at line 1␤»
12:49 masak rakudo: sub ha {}; for ^10 { &ha.wrap: ({ print "ha"; nextsame }, { print "HA"; nextsame }, { print "ho-hoo"; nextsame }, { print "haa"; nextsame }).pick }; ha
12:49 p6eval rakudo c548b8: OUTPUT«Could not find sub &print␤  in <anon> at line 22:/tmp/E9MXUHkHCw␤  in main program body at line 1␤»
12:49 masak oh right.
12:50 tadzik it's this funny bug again?>
12:50 masak rakudo: our &_print = &print; { sub ha {}; for ^10 { &ha.wrap: ({ _print "ha"; nextsame }, { _print "HA"; nextsame }, { _print "ho-hoo"; nextsame }, { _print "haa"; nextsame }).pick }; ha
12:50 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
12:50 masak :/
12:51 hardik nice It will really help me out to start with perl6
12:51 masak rakudo: our &_print = &print; sub ha {}; for ^10 { &ha.wrap: ({ _print "ha"; nextsame }, { _print "HA"; nextsame }, { _print "ho-hoo"; nextsame }, { _print "haa"; nextsame }).pick }; ha
12:51 p6eval rakudo c548b8: OUTPUT«haho-hoohahaahaaho-hoohaaHAHAha»
12:51 masak :D
12:53 tadzik hardik: the book is also awesome
12:54 masak is it bad style for a role to call methods not defined in the role, but in the class the role is to be mixed into?
12:54 hardik Really!!
12:54 Axius joined #perl6
12:55 masak oh, you've read the book?
12:55 jnthn masak: Not really
12:55 jnthn (more)
12:55 jnthn masak: Nice though we don't quite handle it yet is to write stub methods in your role
12:55 jnthn Those then get treated is requirements
12:55 jnthn So you get compile time checking that, after composition, those methods exist.
12:55 masak ooh
12:55 jnthn (e.g. are provided by the class or another role)
12:56 masak yeah, that's the missing piece of that puzzle.
12:56 jnthn The original traits paper had an explicit way to do this
12:56 jnthn Perl 6 just roles stubs into it
12:56 masak I have the original traits paper open in a browser tab :)
12:56 jnthn Oh, I think we discussed that maybe you write !!! in the body to require
12:56 jnthn ??? to warn
12:56 jnthn ... is like "meh, just fail at runtime"
12:56 jnthn :)
12:56 masak nodnod
13:00 dalek 6model: 08510b7 | jonathan++ | common/NQP/NQPSetting.pm:
13:00 dalek 6model: [common] Add an NQPMapIter that just knows how to eagerly reify a list and a .map that returns it for lists and arrays.
13:00 dalek 6model: review: https://github.com/jnthn/6model/commit/0​8510b7d5134966657935cf419ffd1e8cb1311be
13:00 dalek 6model: ec09403 | jonathan++ | dotnet/compiler/Actions.pm:
13:00 dalek 6model: [dotnet] Compile for to $expr.map($block).eager rather the for pasttype for the time being.
13:00 dalek 6model: review: https://github.com/jnthn/6model/commit/e​c09403e351c87c44073ebe128e533f86ac51db7
13:00 dalek 6model: f186018 | jonathan++ | t/nqp/ (2 files):
13:00 dalek 6model: [t] We now pass 15-list.t and 37-slurpy.t.
13:00 dalek 6model: review: https://github.com/jnthn/6model/commit/f​186018175676570dfc6820809c3f4de006a1ada
13:02 masak the more I think about nqp, the more it makes sense as a "minimal/core Perl 6" that can then be used to build the rest of Perl 6.
13:02 nymacro left #perl6
13:04 Trashlord joined #perl6
13:04 mila_ left #perl6
13:04 mila_ joined #perl6
13:07 tadzik I thought that's the idea
13:07 tadzik Rakudo is/was bootstraped with nqp, right?
13:08 masak yes.
13:09 tadzik and now it's just pbc/pir? So if we lost it, we'll have to bootstrap it again? :)
13:09 masak but I'm starting to think it's not just a nice way to break down the problem, but sort of sane design-wise as well. it gets you thinking about which things are fundamental.
13:10 jnthn tadzik: No, the PIR we have is generated from the NQP
13:10 jnthn tadzik: We'll still compile down to PIR/PBC
13:10 jnthn It's just that NQP will use 6model, but Parrot's Object/Class PMCs, and a similar story for multi-dispatch I guess.
13:10 jnthn See the nom branch of nqp-rx for the work so far
13:14 whiteknight joined #perl6
13:14 [Coke] left #perl6
13:14 [Coke] joined #perl6
13:15 tadzik jnthn: that's nqp with 6model?
13:19 Axius left #perl6
13:23 Patterner left #perl6
13:30 MayDaniel joined #perl6
13:34 tadzik masak: #225 in poc looks a bit broken: http://wklej.org/id/418167/
13:34 [Sec] left #perl6
13:34 Psyche^ joined #perl6
13:34 Psyche^ is now known as Patterner
13:39 tadzik nah, old Term-Ansicolor author haven't yet respond to my 3-months-old message
13:39 tadzik masak: how about poc using Module::Tools? They contain a few fixed bugs alredy, no sense in duplicating efforts
13:44 tadzik (just fixed one)
13:53 colomon oh noes, ABC fails?
13:54 tadzik nah, its po
13:54 tadzik * poc
13:55 colomon what is proof-of-concept?  new version of proto?  I feel like I blinked and missed something...
13:55 tadzik yeah, new module installer using Pls
13:58 tadzik strange. I removed quite a significant statement from Module::Build and not only it didn't break neutro, it also fixed proof-of-concept
13:58 tadzik oh, it did break neutro
14:05 xiaomo left #perl6
14:06 tadzik oh, too much brokeness
14:06 * tadzik retires
14:28 wamba left #perl6
14:36 timbunce joined #perl6
14:40 [Coke] left #perl6
14:41 tadzik suddenly, the conversation died :(
14:42 colomon you retired!
14:50 tadzik for today's Module-Mangling, don't worry :)
14:56 wamba joined #perl6
15:04 tadzik rakudo: {a => 1}.flip.perl.say
15:04 p6eval rakudo c548b8: OUTPUT«"\n1\ta"␤»
15:04 tadzik oh?
15:05 Trashlord left #perl6
15:07 Trashlord joined #perl6
15:07 tadzik rakudo: {a => 1}.invert.perl.say
15:07 p6eval rakudo c548b8: OUTPUT«(1 => "a")␤»
15:07 tadzik right
15:16 _kaare left #perl6
15:18 timbunce left #perl6
15:18 Chillance joined #perl6
15:18 Axius joined #perl6
15:19 jnthn tadzik: yes
15:20 tadzik jnthn: nice. Does it work, like now, can be tested or such?
15:20 jnthn sorta :)
15:20 jnthn tadzik: It's a work in progress.
15:21 jnthn tadzik: It's blocked on HLL::Compiler's inheritance from PCT::HllCompiler
15:21 jnthn tadzik: But could be unblocked by removing the inheritance and then copying the required methods from PCT::HLLCompiler into HLL::Compiler
15:22 jnthn If anything, just wrapping the PIR in NQP method bodies, though of course a translation to NQP is nicer. :)
15:22 jnthn Anyway, Pm was going to do it, but is suffering a tuit deficit.
15:22 jnthn So now it's probably for me or anyone else who is interested ;)
15:22 masak tadzik: I'll definitely look into Module::Tools. thanks for the pointer.
15:23 jnthn I hope it's not a null one. :)
15:23 colomon jnthn: if you think you can explain what is needed, I'd be willing to take a stab when I have tuits
15:23 Chillance left #perl6
15:24 tadzik masak: just fixing them a bit. path-to-module-name and name-to-module-path act quite funny when the directory we're building in is not .
15:24 tadzik https://github.com/tadzik/per​l6-Module-Tools/commit/1f3c0 actually
15:24 tadzik with this change, it should be able to cooperate with poc
15:25 takadonet joined #perl6
15:25 takadonet hey all
15:25 tadzik hey takadonet
15:26 takadonet tadzik: how are u sir?
15:26 masak takadonet: \o
15:26 tadzik takadonet: oh nice
15:26 takadonet masak: getting there: https://github.com/Takadonet/Text-Tabs-Wrap
15:26 tadzik takadonet: fixing mine and masak++'s module installers simultanously :)
15:26 jnthn colomon: 1) check out nom branch of nqp-rx. 2) Locate HLL::Compiler source (it's an NQP source file). 3) Remove 'is PCT::HLLCompiler'. 4) Stuff epicly breaks. 5) Copy methods from the PCT HLLCompiler (in PIR, in the Parrot repo, somewhere in compilers/pct/) into the NQP HLL::Compiler.
15:26 takadonet ???
15:26 jnthn (Until there's enough stuff to work. :))
15:26 masak "there are also Perl 6 developers" -- wonder which ones. http://twitter.com/davidsl​v/status/3462056384659456
15:27 takadonet sorry I misunderstood
15:27 tadzik masak: > PERL6LIB=lib:$PERL6LIB ./proof-of-concept ABC
15:27 tadzik ABC installed.
15:27 takadonet masak: do you always monitor twitter for perl 6 stuff?
15:27 tadzik should've been more verbose, no? And I touched only the build role
15:28 tadzik ah, maybe it's alredy installed
15:28 masak tadzik: live filters.
15:28 masak oops, that was meant for takadonet.
15:28 masak tab completion fail.
15:28 tadzik masak: did pls install Acme::Meow?
15:29 tadzik for it no does
15:29 masak tadzik: proof-of-concept definitely shouldn't need a PERL6LIB set externally.
15:29 masak that's part of the reason for having an installer, that it handles that stuff for you.
15:29 tadzik masak: well, you have to have your lib/App/Pls.pm in PERL6LIB, no?
15:30 tadzik and I have to add my original PERL6LIB so it sees Module::BUild
15:30 masak that's part of why I don't want dependencies.
15:30 tadzik alright success! ABC wasn't building, and it's building now
15:30 masak I guess pls will have to bootstrap so that it puts itself in ~/.perl6/lib
15:31 tadzik that's what neutro does
15:31 whiteknight left #perl6
15:31 masak excellent.
15:31 tadzik masak: lolifixed proof-of-concept
15:31 masak :)
15:31 tadzik It's just a bit more verbose and a bit less error-reporting than it was, but it works and it's a matter of wrapping around Module::Build somehow
15:31 hax joined #perl6
15:32 masak "a bit more verbose" is a non-starter, though.
15:32 tadzik http://wklej.org/id/418251/
15:32 takadonet cannot find in the spec where you can export variables from a module
15:32 tadzik I just added :v to build to see what's happening
15:32 masak ok, so I can just remove it, then?
15:32 tadzik . o O ( perl6-App-FatPacker )
15:33 masak how will I know if Module::Build::build fails?
15:33 tadzik masak: well,you have to try around it to check if it worked
15:33 tadzik hold on
15:33 tadzik https://github.com/tadzik/neut​ro/blob/master/bin/neutro#L71
15:33 tadzik like here
15:33 masak I think I'll pull in your change. and put Module::Build in pls's lib/, I guess.
15:34 tadzik I can push it myself, but I have to write it first :)\
15:34 masak tadzik: sure, if you want.
15:34 colomon jnthn++  # will start to look at this as soon as I finish attempting to convince Newfoundland musicians to come visit Michigan.  ;)
15:34 hax left #perl6
15:34 tadzik masak: I'll mess around a bit then
15:34 masak tadzik: I won't guarantee I won't push commits in the meantime :)
15:35 masak but it's git, so should be fine.
15:35 hax joined #perl6
15:35 tadzik masak: the first problem is: Module::Tools spit out output only when given a :v, and poc has a run-logged to run commands. There's trouble redirecting the output now
15:36 masak hm :(
15:37 tadzik also, prove can't be silenced completely, so it always spits out something
15:38 cls_bsd joined #perl6
15:42 masak > /dev/null
15:42 tadzik I wanted to avoid that due to portability issues
15:42 ash__ joined #perl6
15:42 masak I want something that works well on at least one platform.
15:42 tadzik it was meant to run on windows too, yet I never found anyone to test it on it
15:43 tadzik well, it works at least on Linux and MacOS
15:43 masak lack of garbage output is one of the original goals of both proto and pls.
15:43 tadzik I think I may have found a RakudoBug
15:44 masak do share.
15:44 tadzik proof-of-concept uses Module::Install which uses File::Mkdir, but when Module::Install uses mkdir :p everything dies due to additional parameter :p, so like File::Mkdir didn't get imported
15:45 tadzik I'll push the change to some branch so you can see/investigate for yourself
15:46 tadzik interesting that it isn't a problem for neutro nor for mbuild
15:46 masak sounds tricky.
15:47 tadzik oh, and Module::Tests seems to have some issues with dirs different than '.'. Worked on Math-Model, didn't on ABC
15:47 masak std: sub foo(Str $s where "OH HAI" --> Int) {}
15:47 p6eval std a194beb: OUTPUT«Potential difficulties:␤  $s is declared but not used at /tmp/pnJU99mW37 line 1:␤------> [32msub foo(Str [33m⏏[31m$s where "OH HAI" --> Int) {}[0m␤ok 00:01 122m␤»
15:47 masak std: sub foo(Str $s where "OH HAI" --> Int) { $s }
15:47 p6eval std a194beb: OUTPUT«ok 00:01 122m␤»
15:48 _kaare joined #perl6
15:48 masak rakudo: sub foo(Str $s --> Int) {}; sub foo(Str $s where "OH HAI") {}; sub foo(Str $s where "OH HAI" --> Int) {}
15:48 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Can not re-declare sub &foo without declaring it multi at line 22, near "; sub foo("␤»
15:48 masak rakudo: sub foo(Str $s --> Int) {}; sub bar(Str $s where "OH HAI") {}; sub baz(Str $s where "OH HAI" --> Int) {}
15:48 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Missing block at line 22, near "-> Int) {}"␤»
15:48 masak STD handles --> after a 'where' block. Rakudo doesn't.
15:48 * masak submits rakudobug
15:49 jnthn rakudo: sub foo(Str $s where "OH HAI" --> Int) { $s }
15:49 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Missing block at line 22, near "-> Int) { "␤»
15:52 tadzik masak: https://github.com/masak/proto/commit/09bf50
15:52 tadzik masak: it can install Acme::Meow and Math::Model I think, there are some issues with tests on ABC
15:53 Axius left #perl6
15:53 hax left #perl6
15:54 Axius joined #perl6
15:54 colomon which version of ABC?
15:55 tadzik master
15:55 colomon there are two ABC repos, if you're in the wrong one you're likely to have issues.
15:55 tadzik colomon: it has problems with opening the files in tests, probably because it isn't run from the directory your tests expect
15:55 colomon ah, okay.
15:55 masak there are two ABC repos? why?
15:56 colomon fork, the old one hasn't seen any development in some time.
15:57 masak oh, right.
16:00 colomon was worried that the proto list of modules might not be updated to the fork.
16:01 masak there's no longer a "proto list of modules".
16:01 masak there's the ecosystem list.
16:01 masak and you should have commit bit to that one.
16:03 colomon yes, I do, and the ecosystem list is up-to-date.
16:05 justatheory joined #perl6
16:05 masak phenny: "kan jag bara skriva slumpmässig skit och få den översatt? det här måste vara framtiden!"?
16:05 phenny masak: "I can just write random crap and have it translated? This must be the future!" (sv to en, translate.google.com)
16:05 masak \o/
16:06 takadonet wow
16:07 jnthn phenny: "My hovercraft is full of eels"
16:07 jnthn phenny: "My hovercraft is full of eels"?
16:07 phenny jnthn: Language guessing failed, so try suggesting one!
16:07 masak jnthn: what language *is* that? :P
16:07 jnthn Dirty hungarian, no? :P
16:07 masak British?
16:07 masak nice try, islander!
16:07 jnthn I never had opportunity to talk dirty to a Hungarian though. :P
16:08 takadonet phenny: "Pourqoui tu fais cela"?
16:08 phenny takadonet: "Interval so you do that" (fr to en, translate.google.com)
16:08 takadonet ... not exactly what i said but good enough
16:09 masak phenny: "lol je suis canadien"?
16:09 phenny masak: "lol I am Canadian" (fr to en, translate.google.com)
16:09 jnthn phenny: "my máme čas"?
16:09 phenny jnthn: "we have time" (sk to en, translate.google.com)
16:10 masak phenny: "quid pro quo"?
16:10 phenny masak: "quid pro quo" (fr to en, translate.google.com)
16:10 masak dang :)
16:11 masak phenny: "hein"?
16:11 phenny masak: "eh" (fr to en, translate.google.com)
16:11 jnthn phenny: "I can haz cheezburger? kplzthnxbai"?
16:11 phenny jnthn: The qu to en translation failed, sorry!
16:12 masak phenny: "est qu'un tournevis sonique vous avez dans votre poche, ou vous êtes simplement heureux de me voir?"?
16:12 phenny masak: "is a sonic screwdriver you have in your pocket or are you just happy to see me?" (fr to en, translate.google.com)
16:12 patspam joined #perl6
16:12 jnthn ..."screw"driver... :P
16:13 masak jnthn: you need to watch more Doctor Who :)
16:13 jnthn Who?
16:13 takadonet so ya....
16:13 tadzik phenny: "powinieneś oglądać więcej Doctor Who :)"?
16:13 phenny tadzik: "You should watch more Doctor Who:)" (pl to en, translate.google.com)
16:14 tadzik nice
16:14 masak phenny: "trop de hors-sujet?"?
16:14 phenny masak: "too off-topic?" (fr to en, translate.google.com)
16:14 masak :)
16:14 tadzik phenny: "ani trochę"?
16:14 phenny tadzik: "or some" (pl to en, translate.google.com)
16:14 mindos1 masak : Thanks. You guys are really miracle-maker.
16:14 tadzik :(
16:15 tadzik phenny: "nie, wcale"?
16:15 phenny tadzik: "not at all" (pl to en, translate.google.com)
16:15 masak mindos1: thanks for what? goofing off?
16:15 Chillance joined #perl6
16:17 tadzik phenny: "quidquid latine dictum sit, altum videtur"?
16:17 phenny tadzik: The la to en translation failed, sorry!
16:18 masak that's true, though.
16:18 tadzik yep
16:19 masak tadzik: did you take Latin in school?
16:24 masak rakudo: say elems 1, 2, 3
16:24 p6eval rakudo c548b8: OUTPUT«3␤»
16:24 masak \o/
16:27 silug left #perl6
16:28 tadzik masak: nope
16:28 tadzik masak: it's the only sentence I know, besides a few from Asterix
16:30 masak Asterix++
16:31 tadzik phenny: "Ale głupi ci Rzymianie"?
16:31 phenny tadzik: "But those stupid Romans" (pl to en, translate.google.com)
16:33 masak rakudo: say "foo foo bar foo bar".trans( ["foo" => "one"], ["bar" => "two"])
16:33 p6eval rakudo c548b8: OUTPUT«foo       one.perl is not a Pair␤  in <anon> at line 2344:CORE.setting␤  in 'Cool::trans' at line 1␤  in main program body at line 22:/tmp/KFpN_QzIip␤»
16:33 masak huh?
16:34 jnthn wtf...
16:34 jnthn :)
16:34 jnthn I blame the last person who patched trans. ;)
16:34 masak I'm innocent. :)
16:34 masak didn't touch that line.
16:34 masak as far as I'm concerned, it never worked.
16:34 tadzik star: say "foo foo bar foo bar".trans( ["foo" => "one"], ["bar" => "two"])
16:34 p6eval star 2010.09:  ( no output )
16:34 masak it did .perl in interpolation, but had no parens.
16:34 Woodi left #perl6
16:35 * masak recompiles locally and tries again
16:36 ggoebel left #perl6
16:38 masak std: sub foo { ['a', 'b' 'c'] }
16:38 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/FQULxUMKtY line 1:␤------> [32msub foo { ['a', 'b' [33m⏏[31m'c'] }[0m␤    expecting any of:␤  bracketed infix␤        infix or meta-infix␤    statement modifier loop␤Parse failed␤FAILED 00:01 121m␤»
16:38 masak rakudo: sub foo { ['a', 'b' 'c'] }
16:38 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Unable to parse blockoid, couldn't find final '}' at line 22␤»
16:38 * masak submits LTA rakudobug
16:38 ash__ rakudo: say $*PERL<version>
16:38 p6eval rakudo c548b8: OUTPUT«2010.10-21-gc548b87␤»
16:38 ash__ rakudo: say $?PERL.version
16:38 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Symbol '$?PERL' not predeclared in <anonymous> (/tmp/0JeYsoEooC:22)␤»
16:39 ash__ S28 has a mistake i think
16:39 ash__ or $?PERL isn't right
16:39 dalek 6model: 826917e | jonathan++ | dotnet/compiler/ROADMAP.txt:
16:39 dalek 6model: [dotnet] Remove a couple of completed ROADMAP items.
16:39 dalek 6model: review: https://github.com/jnthn/6model/commit/8​26917e51987670e3940f722a8b707bb155ed3a1
16:39 dalek 6model: 4f8333c | jonathan++ | dotnet/compiler/ (2 files):
16:39 dalek 6model: [dotnet] Get JnthnNQP able to parse and compile explicit invocants in method signatures.
16:39 dalek 6model: review: https://github.com/jnthn/6model/commit/4​f8333c31f06ba94c92b00c1b21e336cc9a285f5
16:39 dalek 6model: 14e2274 | jonathan++ | dotnet/compiler/PAST2DNSTCompiler.pm:
16:39 dalek 6model: [dotnet] Tweak initialization ordering; build constants table a bit earlier on.
16:39 dalek 6model: review: https://github.com/jnthn/6model/commit/1​4e2274f361c2c56a104e4fc43d56feac0cc5b2c
16:39 dalek 6model: 8f4d667 | jonathan++ | common/NQP/P6Objects.pm:
16:39 dalek 6model: [common] Add a multi method Str(Mu:U $self:) { ... } to Mu so type objects can stringify. Finally! \o/
16:39 dalek 6model: review: https://github.com/jnthn/6model/commit/8​f4d667f489e8c1a5720731c8e62a86f472275ef
16:39 masak ash__: both are right, AFAIK.
16:39 ash__ oh
16:39 masak ash__: $?PERL is the Perl compiler.
16:39 ash__ so you can do $*PERL or $?PERL ?
16:39 masak ash__: $*PERL is the Perl runtime.
16:39 masak it makes sense, I promise :P
16:39 ash__ hmm okay
16:40 ash__ then, is $? not working right?
16:40 ash__ rakudo: $?PERL.version
16:40 masak we don't have much of $?
16:40 p6eval rakudo c548b8: OUTPUT«===SORRY!===␤Symbol '$?PERL' not predeclared in <anonymous> (/tmp/yCFPdOapBd:22)␤»
16:40 ash__ okay
16:40 jnthn nah, do not haz.
16:40 masak generally, we don't have much of compiler-time goodness.
16:40 masak s/compiler/compile/
16:41 hax joined #perl6
16:41 ash__ jnthn, i am blatantly coping you btw, trying to see if i can use your Perl 2 C# compiler to get a parser for nqp
16:42 jnthn :)
16:42 Axius left #perl6
16:42 jnthn Nice to be working on soemthing people find worth copying. :)
16:42 ash__ after digging through your code, PAST and POST make a lot more sense
16:45 ash__ hmm, wonder why the $*PID of parrot is always 0 for os x
16:47 Trashlord left #perl6
16:47 masak ash__: if you find out, you're eligible to comment on an RT ticket. :)
16:49 Trashlord joined #perl6
16:49 mindos1 masak: Replied to the greeting message. :P
16:50 mindos1 It seems I can start from migrating CPAN modules.
16:51 mila__ joined #perl6
16:52 masak start small. Perl 6 is a bit different to Perl 5, and it's easy to get in over one's head.
16:53 masak I know I did, many years ago when I began.
16:53 ch3ck joined #perl6
16:53 masak I was going to port Getopt::Long, line by line.
16:54 masak that must have been before Perl 6 has MAIN, because after that it wouldn't have made that much sense.
16:54 moritz_ instead of just using sub MAIN :-)
16:54 masak s/has/had/
16:54 mila_ left #perl6
16:58 mindos1 I got the idea.
16:58 masak oh. my point was that I never finished the Getopt::Long portage. I got stuck in a sea of regexps.
16:59 masak and I didn't have a TDD habit back then, so I had no way of orienting myself.
16:59 mindos1 I meant, the idea of ``start small''
17:01 masak I think being motivated to reach some goal or other is the important part. I don't think I was particularly motivated to actually finish porting Getopt::Long. it was just a random way to try to contribute.
17:02 dalek rakudo: 015d77b | masak++ | src/core/Cool-str.pm:
17:02 dalek rakudo: [Cool-str.pm] improved error reporting
17:02 dalek rakudo:
17:02 dalek rakudo: There was a () missing on a .perl in an interpolation. This can
17:02 dalek rakudo: never have worked properly. Does now.
17:02 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/​015d77b6bee35955d66a35f9e45e16c15c91b7b0
17:04 mindos1 masak: I have tried to find some place to start doing something, otherwise never start.
17:05 masak mindos1: are you a student? or employed? what do you do for a living?
17:05 mindos1 s/start/get started./
17:06 mindos1 masak : I am currently employed as a programmer.
17:06 masak mindos1: and do you write Perl 5 scripts to solve problems at work?
17:07 tylercurtis joined #perl6
17:07 mindos1 masak : Sometimes, very simple ones.
17:07 masak then maybe that's a good place to start with Perl 6 as well.
17:07 masak it's a way to put yourself into the picture, and make Perl 6 directly relevant to what you're already doing.
17:09 sylwek joined #perl6
17:10 sylwek left #perl6
17:10 Woodi joined #perl6
17:16 mindos1 masak : I will try to rewrite scripts in Perl6. Though it's a good starting point, but the intersection is quite small.
17:16 laler joined #perl6
17:16 jferrero joined #perl6
17:17 masak mindos1: yes. do keep us updated.
17:20 mindos1 Then I have chance to built rakudo on windows. :P
17:20 takadonet mindos1: jnth hacks rakudo on a windows machine
17:21 jferrero left #perl6
17:22 mindos1 masak: It's here, right? http://sourceforge.net/projects/parrotwin32/files/
17:23 masak mindos1: jnthn will know.
17:23 Bzek_ left #perl6
17:24 jnthn I think they work if you install them in the right place
17:24 jnthn Otherwise, easiest toolchain for building it is the MS VC++ + ActivePerl
17:24 jnthn Or at least, that's what I do it with :)
17:25 Bzek joined #perl6
17:25 mindos1 jnthn : Thanks. I will try when I get reach to Windows.
17:26 jferrero joined #perl6
17:43 jferrero left #perl6
17:43 jferrero1 joined #perl6
17:52 jferrero1 left #perl6
17:59 Trashlord left #perl6
18:00 Trashlord joined #perl6
18:02 dalek 6model: ca07d19 | jonathan++ | dotnet/runtime/ (4 files):
18:02 dalek 6model: [dotnet] A little refactor to s-table to avoid having to do so many calls through lambdas; instead we only do that if dispatch/invocation is specialized in some way and mov ethe common path into a plain old method, which the runtime can better optimize.
18:02 dalek 6model: review: https://github.com/jnthn/6model/commit/c​a07d19736039b651e50a99001c1854aace68a31
18:02 dalek 6model: f43762d | jonathan++ | dotnet/runtime/Metamodel/SharedTable.cs:
18:02 dalek 6model: [dotnet] Start to stub in some type check and type-check cache support.
18:02 dalek 6model: review: https://github.com/jnthn/6model/commit/f​43762d09ac7b249e1eb3b6495dd5a1209943172
18:04 laler left #perl6
18:06 masak rakudo: my $a = *; $a = "foo"; say $a
18:06 p6eval rakudo c548b8: OUTPUT«Whatever()<0x7d4de48>␤»
18:06 * masak submits rakudobug
18:12 takadonet when is pmichaud coming back?
18:13 jnthn takadonet: Hard to know when he'll have loads of tuits, I suspect. I got to talk with hime a little a few days ago.
18:14 jnthn *him
18:14 rgrau joined #perl6
18:14 jnthn Hopefully soonish...I miss pmichaud++'s company and hacking.
18:15 * masak misses pmichaud++ too
18:16 sftp left #perl6
18:17 sftp joined #perl6
18:21 Eevee left #perl6
18:21 masak nom &
18:26 Eevee joined #perl6
18:36 silug joined #perl6
18:42 molaf_ left #perl6
18:44 ash_ joined #perl6
18:45 uniejo joined #perl6
18:46 ash__ left #perl6
18:47 Trashlord left #perl6
18:50 uniejo left #perl6
18:51 Trashlord joined #perl6
19:02 tylercurtis left #perl6
19:42 sftp_ joined #perl6
19:42 tadzik yay, time to merge parrotgit
19:42 sftp left #perl6
19:42 colomon \o/
19:44 tadzik phenny: "awe"?
19:44 phenny tadzik: Language guessing failed, so try suggesting one!
19:44 tadzik bah
19:46 Trashlord left #perl6
19:48 Trashlord joined #perl6
19:52 snearch joined #perl6
19:53 tadzik http://gil.di.uminho.pt/use​rs/smash/rakudo-bench.html -- maybe primes should be moved to Heavy Scripts
19:58 sorear good * #perl6
19:58 colomon \o
19:59 colomon tadzik: that's where they belong, for sure.  but I thought smash was automatically sorting them...
20:02 sorear ash_: as a general rule, if $?FOO is not implemented specially (and very few of them are - $?POSITION comes to mind), it is treated as BEGIN { $*FOO }
20:02 sorear ie it picks up the version of $*FOO visible to the compiler
20:03 sorear (how this works if your compiler isn't written in Perl 6 has never been established)
20:11 wamba left #perl6
20:15 ggoebel joined #perl6
20:21 tadzik hello sorear
20:23 sorear hello tadzik
20:26 kanishka left #perl6
20:30 dju left #perl6
20:56 patspam left #perl6
21:03 takadonet hey all
21:04 tadzik o/
21:04 takadonet tadzik: how's your perl 6 coming along?
21:06 tadzik takadonet: cool. Fixed few things in Module::Tools and... made Pls work on Module::Tools!
21:06 takadonet tadzik: nice url?
21:07 tadzik takadonet: of what?
21:07 takadonet tadzik: of the code? :)
21:07 takadonet s /\?//
21:07 tadzik :) https://github.com/tadzik/perl6-Module-Tools and https://github.com/masak/proto/tree/module-tools
21:08 takadonet thanks
21:09 colomon tadzik++
21:09 takadonet indeed tadzik++
21:15 tadzik oh :)
21:16 tadzik I feel split()ed, every time I help pls, neutro becomes more and more obsolete :P
21:17 tadzik but it was its destiny after all :,)
21:18 tadzik we'll probably all feel this way when we will be contributing to Perl 7
21:26 moritz_ any objections to merging the parrotgit branch?
21:26 flussence will I have to fix my nightly compile cronjob for that?
21:27 moritz_ depends on your compile cronjob
21:27 moritz_ you might need to   rm -rf parrot/
21:27 moritz_ once
21:27 flussence all it does right now is blow away everything anyway
21:28 moritz_ :-)
21:28 xinming left #perl6
21:28 flussence I suppose I can change that part to "git clean -dfx"...
21:29 * masak and jnthn back from nom
21:29 colomon \o/
21:29 colomon good noms?
21:29 takadonet what is noms?
21:30 jnthn Very good noms.
21:30 jnthn takadonet: It's a completely innocent concept!
21:30 tadzik takadonet: tip: nom nom nom
21:30 takadonet ....
21:30 takadonet ok
21:31 takadonet in other news passing more tests!
21:31 tadzik .u …
21:31 phenny U+2026 HORIZONTAL ELLIPSIS (…)
21:31 tadzik uhm, I thought that's THREE DOTS
21:33 dalek rakudo: 3aa3c21 | moritz++ | build/gen_parrot.pl:
21:33 dalek rakudo: use git instead of svn in gen_parrot.pl (incomplete)
21:33 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/​3aa3c2143f8e84733f1e80edaf18fdcd4aaafb53
21:33 dalek rakudo: f0f2d33 | moritz++ | build/PARROT_REVISION:
21:33 dalek rakudo: bump PARROT_REVISION to something that can report a git-describe-ish revision
21:33 dalek rakudo:
21:33 dalek rakudo: note that that's currently from a parrot branch (git_describe), so that parrot
21:33 dalek rakudo: branch must be merged before we merge this rakudo branch
21:33 dalek rakudo: review: https://github.com/rakudo/rakudo/commit/​f0f2d33cb4726b1ecd30cc2f8d2296eb8a7a2f22
21:33 dalek left #perl6
21:34 dalek joined #perl6
21:35 rgrau left #perl6
21:35 takadonet http://blog.laufeyjarson.c​om/2010/11/ugly-old-perl/ I don't like this guys solutions to 'Ugly old perl'
21:35 dukeleto moritz_: i have a bug in my git describe code for parrot. the cache is not updating
21:37 masak takadonet: here's an explanation of "nom": http://knowyourmeme.com/memes/om-nom-nom-nom
21:38 moritz_ dukeleto: noted
21:38 moritz_ dukeleto: thank you anyway for implementing it in the first place
21:38 takadonet masak: for some reason I completely forgot what it was
21:38 takadonet hacking on Perl 6 does that sometimes
21:38 dukeleto moritz_: will hopefully have a fix soon
21:38 Tene .u ⋯
21:38 phenny U+22EF MIDLINE HORIZONTAL ELLIPSIS (⋯)
21:38 Tene .u ⋮
21:38 phenny U+22EE VERTICAL ELLIPSIS (⋮)
21:40 masak .u ⋱
21:40 phenny U+22F1 DOWN RIGHT DIAGONAL ELLIPSIS (⋱)
21:42 colomon moritz_: reading your e-mail to p6l made me wonder... what happens to functions which take array arguments?
21:44 diakopter Jon Lang's reply makes the most sense to me. What is a "binding" without a container?
21:46 colomon diakopter: think I'm inclined to agree with that as well.
21:47 colomon I'm just trying to take a step back, and consider what happens when you try to use packed arrays with the rest of p6.
21:48 * diakopter is looking the other direction, from packed arrays toward the container(ick)iness
21:48 jnthn The good news about NQP is that it has no containers. :)
21:49 jnthn Oh, apart from arrays and hashes...
21:49 jnthn :-)
21:49 jnthn But it also has no binding. :)
21:49 masak \o/
21:49 diakopter and yet.. it uses :=
21:49 jnthn Perl 6, otoh... :)
21:49 jnthn crap!
21:49 jnthn It has no *assignment*.
21:49 jnthn The Cobra was REALLY good at the Indian restaurant...
21:49 masak good. assignment is evit.
21:49 masak s/evit/evil/
21:49 sorear it's Jon Lang
21:49 sorear I have him mentally killfiled
21:50 diakopter :|
21:50 masak oh. harsh.
21:51 diakopter jnthn: but.. how does nqp have binding without containers?
21:51 TimToady I agree with Jon, actually.  It should be assignment, not binding, since it's value semantics
21:51 * diakopter exhales in relief
21:52 sorear TimToady: what does @a[0] return?
21:52 jnthn TimToady: I agree it's right in a touchy feely wya.
21:52 jnthn TimToady: But that doesn't help me for implementing it.
21:53 * masak blinks and tries to think of something easier
21:53 jnthn The phrase "no way to bind a variable directly to a value" doesn't make any sense to me.
21:54 sorear well, the problem is that @a[0] has to return a container object which aliases the first slot of the compact storage
21:54 jnthn sorear: Well, that's one way
21:54 jnthn Apart from then we have to create an object
21:54 jnthn For every single assignment
21:54 sorear compact arrays are all about speed; requiring them to be implemented using ties is nonsense
21:54 jnthn And throw it away again.
21:54 jnthn So we'll end up saying "you can do assignment but use binding if you want it to be fast" under that model.
21:54 dukeleto moritz_: the but with the sha/git_describe cache not getting cleaned up was fixed, but there may still be more bugs
21:55 dukeleto s/but/parrot bug/
21:55 sorear And, IMHO, it's better just to forbid assignment
21:55 sorear since it'll be a royal pain to code and serve no purpose other than misleading newbies
21:55 sorear who will use it, not realizing they've shot themselves in the foot
21:55 TimToady I completely disagree.  binding is aliasing.
21:55 sorear so we'll need a warning to tell people not to use it, which is even more code
21:55 TimToady not copying
21:56 sorear it's more like ::=
21:56 TimToady it's binding that should fail
21:56 sorear it creates an alias to the underlying value
21:56 jnthn TimToady: Can you explain *why*?
21:56 sorear and since it's an alias, assignment fails
21:57 jnthn TimToady: I would much prefer it be that assignment is the right answer here.
21:57 jnthn TimToady: I'm struggling with the model.
21:57 * diakopter wants to explain my understanding, but waits
21:57 TimToady if you copy a value, as you must, then =:= cannot possible be true, since you have two different containers afterwards
21:58 TimToady you have to treat the lvalue as a C-style lvalue to get low-level assignment
21:58 TimToady which means it's just a pointer to raw (albeit typed) memory
21:59 TimToady binding is copying the location of the rvlaue, not the rvalue itself
22:00 TimToady I'm gonna have to run off in a bit, so I'll let diakopter take over :P
22:00 jnthn :P
22:00 diakopter egads
22:01 masak well? we're waiting.
22:01 TimToady bbl &
22:01 diakopter jnthn: in terms of implementation (on, say, CLR), I think of a  my int @a  as having the same value vs. reference semantics as the CLR model's
22:02 diakopter (as compared to a  my Int @b  or a  my @c  )
22:02 jnthn Well, the way it works there is that you have a bunch of pointers rather than a bunch of values, I guess.
22:02 diakopter for which
22:02 diakopter a, b, or c
22:03 jnthn a is bunch of values, b and c it's full of references.
22:03 sorear it's possible to implement @a[0] = ... in the optimizer, sure
22:03 sorear but I don't buy that
22:04 sorear the optimizer shouldn't be needed to take advantage of low-level code
22:04 diakopter sorear: hang on..
22:04 jnthn Do we agree taht @a[0] = ... (pre-optimization anyway) is really &infix:<=>(@a[0], ...)
22:04 jnthn ?
22:04 sorear jnthn: yes
22:05 crythias joined #perl6
22:05 moritz_ yes
22:05 masak yes
22:05 diakopter jnthn: sec..
22:05 jnthn OK. So @a[0] when evaluated has to return something that can be used as a container.
22:06 jnthn (if we want @a[0] to be assignable)
22:06 jnthn diakopter: go ahead
22:07 moritz_ well, if we want to use it on the LHS of a binding operator, it has to return something you can bind to
22:07 moritz_ can you bind to a native int?
22:07 diakopter jnthn: @a[0] = 4; # passed to  &infix:<=>(@a[0], 4)  as  CLR "ref" (equiv), right?
22:08 diakopter jnthn: sorry, not "ref", I mean that the values in @a aren't copied, the address of @a is sent.
22:08 jnthn diakopter: I wasn't seeing it as a ref equiv...
22:09 jnthn diakopter: It's just passed using normal Perl 6 semantics (e.g. signature binding)
22:09 sorear There is no &infix:<:=>
22:09 jnthn So yes, what's passed is whatever @a[0] produces
22:09 jnthn sorear: You consider &infix:<:=> as purely syntactic?
22:09 sorear yes
22:10 diakopter jnthn: in that case, I disagree with that
22:10 jnthn sorear: I'm inclined to agree on that.
22:10 sorear diakopter: You can't use CLR refs like that
22:10 jnthn sorear: Otherwise - as I think you've pointed out before - an extra level of indirection is needed.
22:10 moritz_ rakudo: say &infix:<:=>.WHAT
22:10 diakopter sorear: then I've miscommunicated.
22:10 p6eval rakudo 015d77: OUTPUT«Multi()␤»
22:10 jnthn moritz_: Aye, but Rakudo's binding is kinda wrong.
22:10 sorear diakopter: it
22:11 diakopter then there is no such thing as a compact array
22:11 masak jnthn: I thought an extra level of indirection *was* needed.
22:11 diakopter what's compact about an array of containers
22:11 sorear diakopter: it's because of CPS; CLR references can only live on the true stack and can't be saved in a coroutine
22:11 jnthn diakopter: I think it's a given that that compact arrays can't be arrays of containers.
22:11 diakopter sorear: I've miscommunicated; you're speaking about things that have nothing to do with what I'm talking about.
22:12 jnthn diakopter: I started the thread because I'm struggling to unify that and my current grasp (or lack thereof :-)) on assignment.
22:12 diakopter jnthn: my point is is then that you're saying compact arrays can't exist.
22:12 jnthn diakopter: Well, or that storage to them involves creating a fake container.
22:12 jnthn e.g. an on demend container that writes to the right memory location
22:13 * diakopter sees no distinction
22:13 jnthn But I fear that'll get pricey in terms of execution time / temporary objects.
22:13 jnthn diakopter: The distinction is what your long-term storage looks like. The "on-demand container" can get GC'd immediately
22:13 jnthn I'd hope there could be a way to optimize it away too.
22:13 sorear Any Perl 6 design that requires more layers of indirection than the corresponding Perl 5 is automatically wrong
22:14 masak huh?
22:14 moritz_ sorear: so having a meta object model built in is wrong?
22:14 * diakopter is thankful these large, tangly issues are [re-]surfacing
22:14 jnthn But I'd kinda prefer something that didn't rely on smart optimizations to have a shot at being efficient. Maybe I need to just cope with that though...
22:15 silug left #perl6
22:15 diakopter my contention is that the synopsis insists on having compact, fast arrays
22:15 masak aye.
22:15 jnthn Well, it certaily says compact. ;)
22:15 masak :)
22:15 sorear moritz_: Perl 5 has a MOP; Class::MOP is just a better API
22:16 jnthn But yes, speed matters.
22:16 masak sorear: when you say that Perl 5 has a MOP, which part in particular are you referring to? the blessed hashes?
22:16 diakopter compact, meaning the value is stored in them.
22:16 jnthn Right.
22:16 diakopter otherwise they are no different from non-compact.
22:16 lue ohai o/
22:16 masak lue: \o
22:17 diakopter jnthn: perhaps I see another way to explain  @a[0] = 4;  (more)
22:18 diakopter compiler knows @a is an array of natives, so it sends it to &infix:<=>() as something other than what you said above
22:19 jnthn diakopter: That's perhaps fine for the case where it knows, but it might not know.
22:19 jnthn my int @x; sub foo(@y) { ... }; foo(@x);
22:20 diakopter ok..?
22:20 masak or, put differently, dynamic method dispatch doesn't square with static special-treating of some of the method calls.
22:20 jnthn diakopter: IIUC you're suggesting a compile-time transformation.
22:20 jnthn diakopter: In the case above, @y is not know to be a natively typed array.
22:20 diakopter ah, yes, ok.
22:21 diakopter masak: yes, I see.
22:21 lue I assume the magic behind ufo is that things in [project]/lib get put in ~/.perl6/lib and so on?
22:21 diakopter in that case, it's "=" that must be treated specially
22:21 masak lue: nope.
22:21 diakopter (to bypass infix:<=>)
22:22 diakopter (and as a precondition, require that the array be a native one, check for it, and error if it's not)
22:22 lue [or is it just that good?]
22:23 rgrau joined #perl6
22:23 tadzik lue: it's generating the makefile so you can make/make test/make install
22:23 masak lue: ufo doesn't in itself copy files. ufo analyzes your project directory structure and creates a Makefile.
22:23 masak lue: the Makefile contains instructions for installing things, that is, putting them in ~/.perl6/lib
22:24 jnthn diakopter: I suspect there will be too many cases where we just can't know whether we have native or not to make a good guess.
22:24 diakopter I mean, check at runtime.
22:24 diakopter for any lvalue that ends in a [...]
22:24 diakopter =
22:24 jnthn Ah...
22:24 lue Hm. I'll play with ufo until the Makefile I get makes sense.
22:24 * jnthn ponders that one
22:24 diakopter (for the ones not determinable statically)
22:25 masak lue: there's only one way to run ufo. you just run it, and it gives you a Makefile.
22:25 masak lue: if that doesn't work for you, I'd be happy to take a bug report.
22:27 lue .oO(I can't seem to get what I mean to my fingers. hmmm...)
22:27 lue s/ufo/the project layout/
22:27 diakopter jnthn: obviously for loops & recursions, marking the types of variables will ALWAYS help Perl 6's performance tremendously, especially native ones, so it'll be HIGHLY recommended. :)
22:28 tadzik lue: there is a blag toast you may want to read
22:28 diakopter (to those who are writing loops and recursions)
22:28 tadzik lue: http://ttjjss.wordpress.com/2010/08/09​/so-you-want-to-write-a-perl-6-module/
22:28 masak lue: if you have any questions about how the project layout is "supposed" to look, I can probably give answers pretty quickly. and read tadzik++'s blag toast.
22:28 sorear you need to make up your mind quickly, otherwise I'll just ignore you and use my implementor's privelege to force my int $foo ::= 5 on the world
22:29 tadzik does anyone happen to own a hakama?
22:29 masonkramer left #perl6
22:29 masonkramer joined #perl6
22:29 diakopter what does ::= mean
22:31 sorear bind variable to read only value
22:31 diakopter ah
22:31 diakopter how does that help?
22:31 diakopter (I'm not doubting; I'm wondering)
22:32 jnthn diakopter: Yes, a model where adding type annotations allows more efficient code gen sits well with me.
22:32 sorear pugs: my $x; $x ::= 5; $x = 2
22:32 p6eval pugs: OUTPUT«*** Can't modify constant item: VInt 5␤    at /tmp/v4ypd9NPdk line 1, column 18 - line 2, column 1␤»
22:32 sorear it makes very clear that following assignment won't work
22:32 sorear and eliminates aliasing concerns
22:33 diakopter how does that help with native array slots
22:33 jnthn diakopter: Maybe that's the answer. If you didn't tell Perl 6 enough that it can generate more optimal code for @x[0] = 5, it will fall back to the "I made you a container" thing. That's much nicer.
22:34 jnthn Saying "add type annotations to improve performance" is much nicer than "use binding not assignment to improve performance".
22:34 moritz_ where does the coercion in @x[0] = 5 happen?
22:34 jnthn moritz_: I expect it's just an unboxing, not a coercion.
22:35 jnthn moritz_: I've carefully kept those two separated out in 6model so far.
22:35 jnthn So @x[0] if @x was declared as int can have Int assigned to it just fine, but not Num. You'd have to coerce yourself in that case.
22:36 jnthn Just as you would for assigning a Num to a my Int @foo array.
22:37 jnthn I'm starting to feel something implementable forming in my head. :)
22:37 diakopter (yay)
22:39 sorear yes, this is implementable
22:39 sorear jnthn++
22:39 jnthn diakopter++, sorear++, TimToady++, moritz_++, masak++ # hope I didn't miss anyone :)
22:39 masak you're welcome :)
22:39 hardik left #perl6
22:39 jnthn oh, jlang++ from the mailing list too :)
22:39 tadzik *a hand with a cookie comes from outside the stage*
22:40 masak tadzik: that was weird. never do that again.
22:40 jnthn tadzik: You just made myself and masak glad we weren't drinking anything at the time you said that... :P
22:40 diakopter lol
22:40 sorear never give N !%% M cookies to M people
22:40 tadzik :)
22:40 sorear unless you're a sociology grad student and want to start a fight
22:40 masak tadzik: it was like something out of Twin Peaks.
22:42 * lue somewhat hopes someone'll be able to summarize what just happened to the language in a blag toast. Or be able to find the starting point of it all.
22:43 tadzik hm?
22:43 tadzik oh, you mean my "You" habit?
22:43 diakopter How is Consensus formed?
22:44 lue no, I meant the discussion above ^^^. [ tadzik: your You practice made me feel important. No need to address that :) ]
22:45 masak diakopter: they need to do way instain disagreement.
22:45 jnthn diakopter: When nobody can fright back!
22:45 masak who kill their consensus, who can't even frigth back?
22:46 tadzik lue: very little men...
22:46 tadzik phenny: "doceniać"?
22:46 phenny tadzik: "appreciate" (pl to en, translate.google.com)
22:46 tadzik ...appreciated that :)
22:47 lue .oO(consensus is formed when everybody who disagrees is too tired to fight it anymore. How I sometimes wish that would happen in the US gov't.)
22:47 jnthn lue: Elect older people. ;)
22:48 masak std: 1, 2, 3, given 4
22:48 p6eval std a194beb: OUTPUT«ok 00:01 120m␤»
22:48 masak rakudo: 1, 2, 3, given 4
22:48 p6eval rakudo 015d77: OUTPUT«Could not find sub &given␤  in main program body at line 22:/tmp/ipNXhbYj50␤»
22:48 masak which one's right, STD or Rakudo?
22:48 * masak submits rakudobug
22:50 jnthn rakudo: 42 given 5
22:50 p6eval rakudo 015d77:  ( no output )
22:50 sorear rakudo: 1,
22:50 p6eval rakudo 015d77:  ( no output )
22:50 jnthn std: given 4
22:51 p6eval std a194beb: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing block at /tmp/EMboWECD4L line 1 (EOF):␤------> [32mgiven 4[33m⏏[31m<EOL>[0m␤Parse failed␤FAILED 00:01 118m␤»
22:51 jnthn std: 1, given 4
22:51 p6eval std a194beb: OUTPUT«ok 00:01 120m␤»
22:51 sorear looks like rakudo is missing terminator:sym<given>
22:51 jnthn Ah
22:55 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34"); say $/<B><E> # how would I accomplish this?
22:55 p6eval rakudo 015d77: OUTPUT«Method 'TOP' not found for invocant of class ''␤  in 'Grammar::parse' at line 6043:CORE.setting␤  in main program body at line 22:/tmp/SMf6yaxbRy␤»
22:55 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); say $/<B><E>
22:55 p6eval rakudo 015d77: OUTPUT«Any()␤»
22:57 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); say ($/<B> ~~ A.C)
22:57 p6eval rakudo 015d77: OUTPUT«Type objects are abstract and have no attributes, but you tried to access &!regex␤  in 'A::C' at line 22:/tmp/aePazrMOlL␤  in main program body at line 22:/tmp/aePazrMOlL␤»
22:57 whiteknight joined #perl6
22:57 sorear niecza: grammar A { token TOP { < c d > ( \d+ ) } }; say A.parse("c34").[0]
22:57 p6eval niecza 2484b4a: OUTPUT«Unhandled exception: Unable to resolve method say in class Match␤  at  line 223 (SAFE say @ 6)␤  at  line 1 (MAIN mainline @ 4)␤  at  line 954 (SAFE G818ANONC @ 5)␤  at  line 954 (SAFE module-SAFE @ 28)␤  at  line 954 (SAFE mainline @ 1)␤  at  line 0 (boot @ 1)␤  at  line 0
22:57 p6eval ..(ExitRu…
22:57 sorear niecza: grammar A { token TOP { < c d > ( \d+ ) } }; say ~A.parse("c34").[0]
22:57 p6eval niecza 2484b4a: OUTPUT«34␤»
22:59 sorear masak: is there any pattern to whether you want to be identified as Carl Mäsak or Carl Masak?
22:59 masak sorear: no; it depends mostly on whether I think the context will withstand the umlauts.
23:00 masak sorear: in IRC, feel more like my nick 'masak' than my last name Mäsak.
23:00 masak s/feel/I feel/
23:00 sorear there was a bit of confusion the other day on which name to use for you in - I think it was parrotgit
23:01 sorear but never Maesak :)
23:01 masak preferably not.
23:02 Alias joined #perl6
23:02 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); say $/($/.keys[0])<E>
23:02 p6eval rakudo 015d77: OUTPUT«invoke() not implemented in class 'Capture'␤  in main program body at line 22:/tmp/TSqsxtFlIv␤»
23:03 lue curses, I thought that'd work.
23:04 sorear masak: has the rakudobug been filed yet?
23:04 sorear digging deeper, it looks like the problem is in HLL::Grammar.nulltermish
23:04 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); $a = $/.keys[0]; say $/($a)<E>
23:04 * masak files rakudobug
23:04 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/tQJiXgbDIu:22)␤»
23:04 sorear which doesn't check <?terminator>
23:04 masak sorear++
23:06 snearch left #perl6
23:09 ilogger2 left #perl6
23:09 simon_ joined #perl6
23:19 dalek 6model: 331ac1e | jonathan++ | dotnet/runtime/R (3 files):
23:19 dalek 6model: [dotnet] Rename an ops file to be more indicative of what's in it.
23:19 dalek 6model: review: https://github.com/jnthn/6model/commit/3​31ac1e9041a1a4fd49ebb5294f53eca503b1a27
23:19 dalek 6model: 1b35786 | jonathan++ | dotnet/runtime/Runtime/Ops/Metamodel.cs:
23:19 dalek 6model: [dotnet] Add a couple of ops related to type checks and publishing a type check cache.
23:19 dalek 6model: review: https://github.com/jnthn/6model/commit/1​b3578614bea685aaa9bfd42bd6f39d35fd870ce
23:19 dalek 6model: 346bb02 | jonathan++ | dotnet/runtime/Metamodel/Kno​wHOW/KnowHOWBootstrapper.cs:
23:19 dalek 6model: [dotnet] Implement type_check in KnowHOW's HOW.
23:19 dalek 6model: review: https://github.com/jnthn/6model/commit/3​46bb021d687c41ed828fd0f7fe8b8b2daca59c0
23:19 dalek 6model: e2fc32f | jonathan++ | common/NQP/NQPSetting.pm:
23:19 dalek 6model: [common] Implement type_check and publish a type cache in NQPClassHOW.
23:19 dalek 6model: review: https://github.com/jnthn/6model/commit/e​2fc32fd0813cb0289b08ccd5ec6fdbcccd2016a
23:19 dalek 6model: b3ee2e7 | jonathan++ | common/NQP/P6Objects.pm:
23:19 dalek 6model: [common] Implement ACCEPTS in Mu, for Mu:U.
23:19 dalek 6model: review: https://github.com/jnthn/6model/commit/b​3ee2e733bcc334e4096d8f644a872efd500cb72
23:20 takadonet left #perl6
23:21 masak sorear: lue's evaluation is in fact not a bug. lue did $/(...), trying to invoke the Match object.
23:21 * masak unsubmits rakudobug
23:22 dalek 6model: d83bc87 | jonathan++ | dotnet/runtime/Runtime/ (2 files):
23:22 dalek 6model: [dotnet] Update multi-dispatch to use the real type-checking, so the ACCEPTS committed actually works.
23:22 dalek 6model: review: https://github.com/jnthn/6model/commit/d​83bc87119d8bd9129406f7eb12efa072f6c740f
23:23 masak sorear: or maybe you were referring to some thing before that point that I missed?
23:24 lue I thought <> meant () but with quoting, like it does everywhere else. [e.g. <hi> and ('hi')]
23:24 masak lue: .() means function call. .{} (hash access) is what you really wanted.
23:25 masak blog post! http://strangelyconsistent.org/bl​og/november-13-2010-burning-tuits
23:25 jnthn Oh, *that's* what the burning smell was.
23:27 masak jnthn: :)
23:27 tadzik what's Shrudlu?
23:27 tadzik s/u//
23:27 ilogger2 joined #perl6
23:29 tadzik oh, that's duckduckgoable
23:30 _kaare left #perl6
23:30 sorear tadzik: ETAOIN SHRDLU
23:30 sorear masak: I was referring to the 1, 2, 3, given 4
23:30 kanishka joined #perl6
23:31 masak oh. checking.
23:31 masak (so many bugs, hard to keep track)
23:31 masak no, didn't submit that one yet.
23:31 masak do you have any last words?
23:31 masak so to speak.
23:31 diakopter hee
23:32 flussence here's my revised nightly cron thing, in case anyone wants to borrow/criticise it: https://gist.github.com/675745
23:32 simon_ left #perl6
23:33 flussence (there's probably a hidden bash thing that makes commands autodie instead of that mess...)
23:33 masak tadzik: http://hci.stanford.edu/~winograd/shrdlu/
23:34 tadzik yeah, found it
23:34 masak cool, eh?
23:34 tadzik yeah
23:34 masak I first read about it in GEB.
23:34 tadzik I think the Thank You - You're welcome part should be fairly easy to implement :)
23:34 masak I find it odd and fascinating that there's exactly one such project, and that it's from the early 1970s.
23:34 lue using the grammar I used above, trying    A.parse("c34", :rule[0]); say $/{$/.keys[0]}<E>    failed.
23:35 masak p6eval or it didn't happen :)
23:35 patrickas joined #perl6
23:35 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); $a = $/.keys[0]; say $/{$a}<E>
23:35 masak patrickas! \o/
23:35 p6eval rakudo 015d77: OUTPUT«===SORRY!===␤Symbol '$a' not predeclared in <anonymous> (/tmp/y54iJ6iQdJ:22)␤»
23:35 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); my $a = $/.keys[0]; say $/{$a}<E>
23:36 p6eval rakudo 015d77: OUTPUT«34␤»
23:36 patrickas LOLITSMASAK !
23:36 lue rakudo: grammar A { regex B { <C>|<D> }; regex C { c<E> }; regex D { d<E> }; regex E { \d+ }}; A.parse("c34", :rule<B>); say $/{$/.keys[0]}<E>
23:36 p6eval rakudo 015d77: OUTPUT«34␤»
23:36 tadzik It's a bug! No, it's a feature! No, it's a masak's report!
23:37 masak seems to work fine.
23:40 lue Once again, something incomprehensible went wrong locally the first time [copy'n'pasting what I just p6eval'd into my local copy worked fine. Hmm. :/]
23:40 * masak stamps, scowling, on a piece of paper
23:40 masak next!
23:41 patrickas masak: I solved two of the three issues we were having with closure ... but I'm pretty sure you'd want to poke your eyes out when you'll see the solution for not calling the closure block :-)
23:41 masak patrickas: sounds interesting.
23:41 masak (and awful, but still interesting)
23:41 * jnthn puts on glasses to look at it
23:42 patrickas hehehe let me clean up and push somewhere
23:44 tadzik btw guys, anyone pulled and recompiled recently?
23:44 masak sorear: I now managed to piece together all your antecedents, so the final bug turned out to be quite informative. thank you.
23:44 masak s/bug/bug report/
23:45 * lue hopes to finish a semi-usable Pod document viewer by the end of the day
23:45 masak lue: and you'll put it on github, I hope?
23:45 masak (or equivalent)
23:45 ash_ left #perl6
23:46 ash_ joined #perl6
23:46 tadzik lue: for Perl6?
23:49 lue masak: of course! tadzik: of course! [it's standalone though]
23:50 masak lue: looking forward to having a look at it. release early and often.
23:50 lue I just don't want to release something that won't run, that's all.
23:51 lue s/run/do its intended purpose to some extent/
23:54 takadonet joined #perl6
23:57 masak lue: 'course. it's about the smallest possible working product.
23:58 sorear flussence: set -e
23:58 sorear help set

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

Perl 6 | Reference Documentation | Rakudo