Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2013-03-04

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:17 raiph https://gist.github.com/raiph/5079034 # Covering gap in #perl6 IRC log 3/2/2013 noon thru 3/3/2013 7am
00:17 diakopter welcome back!
00:18 raiph er, did timestamps timezone change? anyhoo, covering the gap, whatever it was!
00:21 raiph heh. was that welcome back addressed to me? like i'm the backup logging bot? :O
00:21 diakopter XD
00:22 Vlavv_ joined #perl6
00:23 adu_ joined #perl6
00:35 labster hey, how do I get p6eval to run a gist?
00:35 labster This is currently not working for me: https://gist.github.com/labster/5079077
00:38 geekosaur how "not working"?
00:38 geekosaur nr: https://gist.github.com/labster/5079077
00:39 p6eval rakudo 87ad7c: OUTPUT«[31m===[0mSORRY![31m===[0m�Undeclared routine:�    bar used at line 7. Did you mean '&bag'?��»
00:39 p6eval ..niecza v24-26-g713c785: OUTPUT«Potential difficulties:�  &foo is declared but not used at /tmp/XXMBNk_5Ix line 3:�------> [32msub foo [33m�[31m{[0m��»
00:39 geekosaur huh
00:39 labster niecza is okay... but bar is declared in the first line
00:39 geekosaur paging rakudo experts...
00:39 labster if I add a semicolon after the function, it works.
00:40 diakopter ah yes. known bug.
00:41 labster oh well, extra semicolons for me. ;)
00:43 quester joined #perl6
00:46 * geekosaur wondered if it was that but did not know if it was fixed or not...
00:47 sorear which bug is it?
00:48 sorear oh, it's stuck in infix mode after the sub, so it's parsed as (sub ...) % bar(...)
00:55 anuby joined #perl6
01:17 hypolin joined #perl6
01:35 diakopter r: sub { }␤ ~~ sub { }
01:35 p6eval rakudo 87ad7c:  ( no output )
01:36 diakopter n: sub { }␤ ~~ sub { }
01:36 p6eval niecza v24-26-g713c785: OUTPUT«[31m===[0mSORRY![31m===[0m��Expecting a term, but found either infix ~~ or redundant prefix ~�  (to suppress this message, please use space between ~ ~) at /tmp/bbpc7OIKsr line 2:�------> [32m ~~[33m�[31m sub { }[0m��Parse failed��»…
01:46 Eddward joined #perl6
01:48 dayangkun joined #perl6
01:54 daudibaldr joined #perl6
02:11 daudibaldr joined #perl6
02:24 sqirrel_ joined #perl6
02:33 lustlife joined #perl6
03:17 orafu joined #perl6
03:36 quester left #perl6
04:01 kaleem joined #perl6
04:35 Tedd1^ joined #perl6
04:59 census joined #perl6
04:59 preflex joined #perl6
05:00 xinming joined #perl6
05:07 ElDiabolo joined #perl6
05:12 REPLeffect joined #perl6
05:24 hypolin joined #perl6
05:32 census_ joined #perl6
05:33 census joined #perl6
05:33 census Oy . . I got disconnected . ..
05:34 census As soon as I posted that link too.
05:34 census sorry
05:34 census Oops.
05:38 sorear ?
05:44 dayangkun joined #perl6
05:47 hypolin joined #perl6
05:49 grondilu r: say 1 + my $x = 2
05:49 p6eval rakudo 87ad7c: OUTPUT«3␤»
05:49 TimToady initialization attaches to the declarator tighter than normal assignment
05:49 phenny TimToady: 03 Mar 08:18Z <FROGGS> tell TimToady see https://gist.github.com/FROGGS/281ee5b2ed5563b5ccb6
05:49 TimToady that's one reason we call it pseudoassigment
05:50 TimToady it's one of those precedence dropper things kinda like $ in Haskell
05:50 TimToady or like any listop
05:51 grondilu yeah that's fine, but I got a suprised when I tried to write this in perl5.
05:51 TimToady though it's only dropping precedence here enough to get things up to the next comma
05:51 TimToady yes, P5 has a different idea about that
05:51 grondilu it's very intuitive in perl6, but a bit silly in perl5, imho.
05:52 TimToady well, p5 didn't not have a well-thought-out sense of the notion of declarators
05:53 TimToady or even of declarations, for that matter
05:55 TimToady but if I hadn't misdesigned Perl's 1-5 I would never have had the opportunity to design Perl 6, so I can't speak too ill of it. :)
05:58 grondilu indeed
06:28 diakopter programming language with emoji as the character set
06:50 drKreso joined #perl6
07:02 wk joined #perl6
07:11 xinming joined #perl6
07:14 sqirrel joined #perl6
07:22 sftp joined #perl6
07:40 ElDiabolo joined #perl6
07:41 ObseLeTe joined #perl6
07:45 FROGGS joined #perl6
07:46 SamuraiJack joined #perl6
08:06 Rix joined #perl6
08:31 anuby joined #perl6
08:36 drKreso left #perl6
08:38 daxim joined #perl6
08:50 ElDiabolo joined #perl6
08:55 masak goooood morning, #perl6etnam!
08:56 census good morning!!!! :)
08:56 census all quiet in #perl6 these last few hours :(
08:56 ObseLeTe joined #perl6
08:57 masak early in Europe; late in the States. :)
09:01 Khisanth joined #perl6
09:03 masak r: sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }; say hms(DateTime.now)
09:03 p6eval rakudo 87ad7c: OUTPUT«10:03:05␤»
09:03 masak r: sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }; say hms(DateTime.now(:timezone(-9)))
09:03 p6eval rakudo 87ad7c: OUTPUT«09:03:12␤»
09:03 * masak submits rakudobug
09:03 masak oh!
09:04 masak I'm assuming timezone is hours, but it's something else, right? :)
09:05 * masak reads S32/Temporal
09:05 kresike joined #perl6
09:05 kresike hello all you happy perl6 people
09:06 masak kresike! \o/
09:07 tadzik hey hey hey
09:07 kresike masak, tadzik o/
09:07 daxim is there a 3d model of camelia?
09:07 masak "C<:timezone> is a callable object that takes a C<DateTime> to convert and a C<Bool> that specifies the direction of the conversion: to UTC if true, from UTC if false."
09:07 masak two things. first: huh?
09:07 Guest43330 joined #perl6
09:07 masak second: does this feel like a poor man's enum to someone else?
09:07 masak the C<Bool> thing.
09:09 moritz we already have a fitting enum, no?
09:09 moritz nr: say 'a' cmp 'b'
09:09 p6eval rakudo 87ad7c, niecza v24-26-g713c785: OUTPUT«Increase␤»
09:09 masak r: sub hms($_) { sprintf "%02d:%02d:%02d", .hour, .minute, .second }; say hms(DateTime.now(:timezone<-0900>))
09:09 p6eval rakudo 87ad7c: OUTPUT«08:54:34␤»
09:09 masak clearly this is wrong.
09:09 arnsholt masak: Wat? That sounds really weird
09:09 moritz but yes, "huh" is a good summary
09:10 masak it's not 08:54 on the west coast of the US right now.
09:10 masak so the rakudobug stands.
09:10 sorear I can confirm that :D
09:10 masak I'd also venture to suggest that :timezone(-9) should be forbidden as a format.
09:10 sorear o/ masak
09:10 masak it should be a string, and it should be "+nnnn", "-nnnn", or "Z".
09:10 masak sorear: \o
09:11 masak so nice to be back :)
09:11 sorear also, it's -0800, not -0900
09:11 arnsholt Heh, true
09:11 sorear summer time doesn't start for another week or so
09:11 masak sorear: oh!
09:11 masak my point still stands, though. :)
09:11 arnsholt It is -9 from CET though =D
09:11 sorear or is summer time -0700, I forget
09:11 masak yes, should be.
09:12 sorear stupid timezones, can't we all just use UTC
09:12 masak arnsholt: ah, that's it :)
09:12 arnsholt Summer time in a week sounds really weird, though. We've still got loads of snow =)
09:12 sorear especially these confusing discontinuous non-invertable timezones
09:13 moritz arnsholt: it's melting fast here :-)
09:13 sorear it is _wrong_ for a single yyyy mm dd hh mm ss to correspond to any number other than 1 of physical instants
09:13 moritz how long is a physical instant? :-)
09:13 masak arnsholt: http://www.africafornorway.no/
09:14 sorear (also, here at 32 north and << 1km altitude, ... I have never seen snowfall in my life)
09:14 masak sorear: wow.
09:15 arnsholt Heh. I'm at almost 60 degrees north and sea level
09:15 huf -0900 doesnt specify the timezone though...
09:15 masak moritz: no, Increase is not fitting, because this enum is meant to convey "from UTC" or "to UTC", ether of which may be either increasing or decreasing depending on which side of Greenwich you happen to be.
09:16 masak huf: troo, should be named :offset
09:16 masak bozhe moy, time is difficult!
09:16 huf masak: it's not a particularly useful thing to construct a timezone from due to dst rules.
09:16 sorear and if you're around UTC-1200 or UTC+1200, it can flip by 24h depending on the whims of local politicians
09:17 masak huf: cf discussion on how much logic to include in S32/Temporal.
09:17 masak huf: I'm fine with someone adding all the world's timezone handling in there. that person should volunteer to do the work, though. and to maintain it.
09:18 sorear masak: we can outsource the ongoing data collection process - just need to make it read zoneinfo files
09:18 masak that's good news.
09:18 masak the syncing needs to be part of the release process, just like leap seconds are.
09:19 masak actually, this feels like one of those changes that should be prototyped in Rakudo/Niecza before going into spec.
09:27 fhelmberger joined #perl6
09:29 dakkar joined #perl6
09:35 masak I also submat a specbug for the "poor man's enum" thing.
09:35 moritz it feels to me like the timezone data stuff belongs into a module, not the language
09:35 moritz you don't generally want to upgrade to a newer compiler release just to get the updated timezone data
09:36 nwc10 agree. How would you like it if you needed to upgrade from (say) Python 2.7 to Python 3.3 to get bug fixes to your timezone data?
09:37 nwc10 (note, I do not specifically know if Python ships *timezone* data. But I believe that it does ship some data in core, that goes stale, and has no "dual life" way to be updates)
09:38 masak agree.
09:39 moritz (and iirc that was the result from previous discussions on the topic as well)
09:40 moritz and maybe the "timezone as a callback" thing was to actually make that possible
09:40 moritz not sure if it's the best way, but it doesn't seem implausible in this context
09:50 benabik joined #perl6
09:52 masak I haven't gone back and git-blame'd.
09:52 masak I should really be doing $dayjob now. :)
09:54 moritz have the appropriate amount of fun :-)
10:05 odoacre joined #perl6
10:06 * masak will :)
10:11 * moritz had a major release/rollout at $work yesterday, and is now fixing the fallout
10:11 moritz so far not nearly as much as I feared
10:11 moritz though we had some weird problems during the release itself, which required some nasty hotfixes
10:12 masak anything that can be mitigated/prevented in the future?
10:12 moritz and none of us (2 programmers, one admin) understands what was wrong, nor why it doesn't happen in the staging environment
10:12 moritz masak: hard to tell
10:13 moritz it's web server code run as fastcgi
10:13 moritz and it created an LWP::UserAgent in the mainline of the module, and used it in a sub
10:13 moritz worked fine in dev
10:13 moritz worked fine in staging
10:14 moritz blew up in prod with a *very* weird error message ('syntax error in eval 123 line 1, near "="')
10:14 moritz and the line that blew up was $UA->request($http_request_object)
10:14 moritz and all attempts to get a backtrace (with SIG{__DIE__} = \&Carp::confess, and Carp::Always) failed
10:15 moritz I "fixed" it by moving the creation of the UA into the sub itself
10:15 moritz which was more on a hunch than understanding what went on
10:15 moritz and after 2 hours of futile debugging
10:16 masak weird :/
10:18 trexy left #perl6
10:19 * FROGGS .oO( use Switch; ? )
10:20 moritz FROGGS: no
10:21 FROGGS I hope nobody does that in production
10:21 moritz we use perl 5.14 in production, no need for 'use Switch;' :-)
10:23 FROGGS that's sane :o)
10:24 Juerd I'll use 5.14 in production when Debian stable has it.
10:25 Juerd Had to un-smartmatch some code recently. Not a pretty sight.
10:26 FROGGS well, we have a 5.14 too, but we are basically using 5.10 features only
10:27 moritz Juerd: we're using wheezy in production right now :-)
10:27 FROGGS given/when at some places, but not smart matching for example
10:27 moritz FROGGS: 'when' does smart matching
10:27 FROGGS (ubuntu 12.04 LTS)
10:40 breinbaa1 left #perl6
10:42 breinbaas joined #perl6
10:46 labster left #perl6
10:47 ObseLeTe joined #perl6
11:12 grondilu joined #perl6
11:17 woosley1 joined #perl6
11:33 Vlavv_ joined #perl6
11:57 daxim is there a 3d model of camelia?   # warnocked earlier today
12:01 masak not that I know.
12:01 masak butterflies are 2d, right? :P
12:05 Ulti we need a perl6 phone OS with camelia fluttering as the boot loader animation
12:26 * masak .oO( we need working DESTROY submethods before we get a Perl 6 phone OS )
12:28 moritz otherwise we can't remotely destroy the phones? :-)
12:31 masak very important.
12:32 masak in the Bad Singularity scenarios, mobile phones are the first devices to turn against their masters.
12:32 moritz it's already happening, if you believe disgruntled users :-)
12:33 * masak .oO( the Singularity is already here, it's just unevenly distributed )
12:34 daxim its habbening
12:37 kaleem joined #perl6
12:38 arnsholt Have we accumulated some kind of JAP6H list yet?
12:40 masak not that I know.
12:40 masak oh! I vaguely remember something from the Pugs days.
12:40 masak r: say "Just another Perl 6 hacker"
12:40 p6eval rakudo 87ad7c: OUTPUT«Just another Perl 6 hacker␤»
12:41 arnsholt Heh, there's always that one
12:41 arnsholt Or "Just another Perl 6 hacker".say
12:41 masak r: say flip "rekcah 6 lreP rehtona tsuJ"
12:41 p6eval rakudo 87ad7c: OUTPUT«Just another Perl 6 hacker␤»
12:44 * moritz registers his starry obfu
12:44 arnsholt r: role W[$s] { method q { say $s; nextsame } }; ([but] class {}, W["hacker"], W["Perl6"], W["another"], W["Just"]).q
12:45 p6eval rakudo 87ad7c: OUTPUT«Just␤another␤Perl6␤hacker␤»
12:45 arnsholt That's my current sigline (stolen from masak++), but it's a bit long and I'm looking for something new =)
12:46 FROGGS I was thinking about grammar actions acting on a character range as input... maybe will do that today
12:46 moritz r: role W[$s] { method q { say $s; nextsame } }; ([but] {}, W["hacker"], W["Perl6"], W["another"], W["Just"]).q
12:46 p6eval rakudo 87ad7c: OUTPUT«Just␤another␤Perl6␤hacker␤»
12:47 moritz arnsholt: the 'class' is redundant
12:48 arnsholt Ooh, neat
12:50 pmurias joined #perl6
12:57 grondilu r: say 3.14.WHAT
12:58 p6eval rakudo 87ad7c: OUTPUT«(Rat)␤»
12:58 grondilu r: say <1/3>.WHAT
12:58 p6eval rakudo 87ad7c: OUTPUT«(Str)␤»
12:58 grondilu ,: say <1/3>.WHAT
12:58 grondilu n: say <1/3>.WHAT
12:58 p6eval niecza v24-26-g713c785: OUTPUT«(Rat)␤»
12:59 grondilu btw what's with these parenthesis?
12:59 grondilu rn:  say 1.WHAT
12:59 p6eval rakudo 87ad7c, niecza v24-26-g713c785: OUTPUT«(Int)␤»
12:59 grondilu rn:  say Int.WHAT
12:59 p6eval rakudo 87ad7c, niecza v24-26-g713c785: OUTPUT«(Int)␤»
12:59 masak yeah, WHAT's up with that? :)
12:59 masak did you do something while I was away? :P
13:00 FROGGS grondilu: that's how type objects are displayed now
13:00 * masak haven't backlogged properly yet
13:00 masak hasn't*
13:00 grondilu FROGGS: ok.
13:00 * moritz was just about to comment that he appreciates masak's use of the plural for his clone conglommerate
13:00 * masak had the same thought!
13:00 masak clonal "we".
13:04 not_gerd joined #perl6
13:04 not_gerd o/
13:05 grondilu r: say 3e-4 * 150e6
13:05 p6eval rakudo 87ad7c: OUTPUT«45000␤»
13:05 masak not_gerd! \o/
13:05 not_gerd [Coke]: did you figure out your NQP build failures
13:06 * not_gerd suspects rurban's path cleanups are to blame
13:07 not_gerd as nqp doesn't come with -L or -X options, you might need to nuke your installation if you want to reuse a --prefix
13:08 rindolf joined #perl6
13:11 ggoebel_ joined #perl6
13:11 not_gerd I also wrote some code to pretty-print .perl output: https://gist.github.com/gerdr/5082124
13:12 not_gerd not wuite sure if the quoting stuff is right, but works for my use case
13:13 dayangkun joined #perl6
13:13 sqirrel joined #perl6
13:13 toebu joined #perl6
13:14 FROGGS not_gerd: .perl for arrays and the like?
13:14 not_gerd phenny: tell Rotwang if you're still looking for a way to pretty-print .perl output, here's what I'm using: https://gist.github.com/gerdr/5082124
13:14 phenny not_gerd: I'll pass that on when Rotwang is around.
13:15 not_gerd FROGGS: I use it to output an AST with custom classes for nodes
13:15 not_gerd it's rather dumb - just looks for parens, double quotes and commas
13:16 FROGGS ahh, okay
13:28 Rix joined #perl6
13:29 not_gerd is there a reason why there are .hash and .Array methods, but not .array or .Hash?
13:30 [Coke] not_gerd: I did not figure out my failures, no. only happens with rakudo-using nqp (which is targetting a specific install dir, yes), not standalone nqp.
13:34 clkao win 44
13:35 not_gerd [Coke]: my guess is that after rurban's lib dir cleanups, the nqp frontend needs the equivalent of parrot's -L and -X flags
13:35 not_gerd workaround is to just nuke the install dir
13:37 daniel-s joined #perl6
13:44 SmokeMachine joined #perl6
13:47 [Coke] ... that's horrible.
13:47 [Coke] (I'm trying to replace the install dir. but if it fails, I want the old one to still exist so I can keep using it. ;)
13:47 [Coke] I will try it out, though, thanks.
13:47 diakopter rename install temporarily?
13:47 arnsholt [Coke]: mv install/ install.bak I guess?
13:48 diakopter (or copy)
13:48 [Coke] yes. that still breaks "perl6 foo" while I'm building.
13:49 bapa joined #perl6
13:53 census joined #perl6
13:57 pmichaud good morning, #perl6
13:57 colomon \o
13:58 [Coke] morning, pmichaud
13:59 Eddward joined #perl6
14:00 moritz good am, pm
14:00 masak pmichaud! \o/
14:04 drKreso joined #perl6
14:06 [Coke] not_gerd: I'm into the building rakudo stage, so I think I've already gotten further than before. danke.
14:06 [Coke] wonder why it's only showing up now. (looks like rakudo pick an nqp that picked a parrot of 4.10)
14:08 [Coke] not_gerd++
14:11 PacoAir joined #perl6
14:13 * masak finds http://www.dagolden.com/index.php/1913/is-perl-6-pointless-hopeless-or-just-not-done/
14:15 [Coke] Whoa! we've been working on this since 1913??
14:15 slavik1 joined #perl6
14:15 diakopter [Coke]: at least..
14:15 masak "We won't know if Perl 6 is pointless until we have it" -- then please download it and try it.
14:15 bapa joined #perl6
14:16 masak though, noted, he says in an update he means "production-ready Perl 6".
14:16 masak thing is, we *need* people who are prepared to download and try Perl 6 before it's production-ready.
14:17 masak the polish comes from sandpapering against willing early adopters.
14:18 colomon yes
14:18 nwc10 to the pain!
14:20 drKreso left #perl6
14:22 masak the comments on that article are insightful, on topic, and interesting.
14:22 slavik1 joined #perl6
14:24 moritz aye
14:25 moritz for the record: I *want* Perl 6 to be a successor to Perl 5. I just don't say it out loud usually, because then people will think Perl 6 is a natural succession to Perl 5, which it is not.
14:25 moritz s/a successor/the successor/
14:26 moritz and I don't see much hope for it being the natural upgrade path
14:26 moritz but I'd still very much like it if were the case
14:26 Psyche^ joined #perl6
14:27 hoelzro I think Perl 6 has a bit of a chicken and egg issue
14:28 FROGGS so let's chicken!
14:28 moritz let's egg!
14:28 FROGGS :o)
14:28 nwc10 Perl 5 is never going to have performant concurrency
14:28 nwc10 and it's never going to do Unicode at the grapheme level well
14:28 kaare__ joined #perl6
14:29 moritz s/at the grapheme//
14:29 pmichaud From the comments:  "There is intentionally not a drive to ship."   WTF?
14:29 FROGGS right, you cant fix everything without braking something
14:29 nwc10 you can ship too early if you want
14:29 nwc10 Parrot did that
14:29 moritz yes, it has awesome Unicode support, iff you are able to keep track of which strings are, well, strings, and which are buffers
14:30 nwc10 moritz: tchrist's talk at OSCON suggested that Perl 5 actually did Unicode quite a bit better than most other things
14:30 moritz which means, in reality, usually not
14:30 moritz nwc10: yes, see my "iff..."
14:30 nwc10 aha yes righto
14:30 bapa joined #perl6
14:30 colomon pmichaud: I interpreted that as meaning we're not setting deadlines, etc.
14:30 pmichaud colomon: deadlines for what, though?
14:31 nwc10 anyway, assuming that both those features become progressively more important to progressively more people
14:31 nwc10 then there's more pull to Perl 6 from Perl 5
14:31 colomon pmichaud: that magic moment when p6 replaces p5.  Or something.
14:31 FROGGS agenda 2020?
14:31 FROGGS I dont wanna replace perl 5
14:32 FROGGS and dont wanna have it replaced
14:32 colomon pmichaud: my take is that we're actually about six months out from being really useful.  probably still years out from replacing perl 5, if that ever happens.
14:32 pmichaud colomon: it's the "or something" part that bugs me.  Lots of people say "they don't set targets" but then leave the "target" aspect vague and unspecified.
14:32 nwc10 FROGGS: it's open source. No-one can prevent you from using it
14:32 nwc10 but you may get to the point where no-one wants to keep supporting it
14:33 colomon pmichaud: but p5 guys are (probably rightly given the history) skeptical, so I reckon the best thing to do is shut up and work towards an awesome p6.
14:33 FROGGS nwc10: right, and even in 10 years might be cases were perl 5 fits a special need better then perl 6 or something else
14:33 nwc10 much like no-one can stop anyone from using Python 2.7 forever
14:33 nwc10 but the core Python devs might have given up fixing it 10 years from now
14:33 nwc10 heck, people can still use Perl 4 if they want
14:33 FROGGS that's evolution, and that will happen to perl 5 too
14:33 nwc10 I have a copy on my mac
14:34 * colomon doesn't mean "rightly", he means "justifiably" -- p6 has taken way too long.
14:34 FROGGS IMO it is just to late to do the right marketing
14:34 * colomon also didn't mean for pmichaud in particular to shut up and work, but for colomon to shut up and all of u to work.
14:34 colomon *us
14:35 pmichaud colomon: I just wish there was some clarity on what is meant by "production ready".
14:35 nwc10 has it? PyPy is 10
14:35 nwc10 Rakudo's earliest commit is just less than 7 years ago
14:35 colomon pmichaud: but there isn't clarity, and there probably never will be.  :(
14:36 FROGGS for me one missing feature for "production ready" is just speed, I can write modules so that doesnt matter
14:36 pmichaud more to the point, I wish that people who say "production ready" would define what they mean by that term; i.e., to identify exactly what things are missing to become production ready.
14:37 FROGGS that's why I say that I will start using perl 6 at work within this year
14:37 pmichaud FROGGS: right, I have several people who say that "production ready" for them means "faster than current releases".  I'm fine with that, and we're clearly working on that pretty diligently.
14:37 FROGGS pmichaud: we have a perl6-most-wanted for taht
14:37 * not_gerd wants faster parsing (at least an order of magnitude) or automatic precompilation
14:37 brrt joined #perl6
14:38 * colomon spent a good bit of his weekend adding features to a 2000+ line p6 program that he uses to accomplish useful things all the time.
14:38 pmichaud dagolden's article says "the Perl 6 team isn't working towards production ready", so it's clear that he means something other than "faster"
14:38 sorear who invented the production ready meme anyway, and can we strangle them?
14:38 hoelzro I should convert the stupid little webservice I wrote last weekend to Perl 6
14:39 PerlJam good morning sixers
14:39 sorear it's like they tried to invent a way to make people be even more unhelpful than usual
14:39 colomon well, in context I suspect there's an implicit "to replace p5" in dagolden's arguments
14:39 * PerlJam reads scrollback
14:39 pmichaud "to replace p5" is something that happens by adopters, not developers.
14:39 colomon and I don't think any of us are actively working toward that goal at the moment.
14:40 colomon you know, the old "p6 will be completely p5 backward compatible" thing.
14:40 * PerlJam reads dagolden's article ...
14:41 nwc10 I think that it's things like when rjbs tried to port his z-Machine parser to Rakudo, it turned out that the arguments to seek were transposed internaly.
14:41 nwc10 There are a lot of little rough edges, surprises and gotchas, which haven't yet been found and polished off
14:41 hoelzro and users need to use Rakudo to find them =)
14:41 colomon nwc10: absolutely.  pretty much every time sometime tries something serious with p6, bugs are found.  That's why we need more people trying!
14:42 nwc10 on, and I agree with that, for that reason
14:42 pmichaud assuming it's rough edges, are we not working diligently enough on that?
14:42 nwc10 but I can't see it yet being a rational business decision to use Rakudo for something. Because you wouldn't hit those problems on (say) perl 5
14:43 nwc10 pmichaud: *I* think that you (plural) are
14:43 nwc10 but it's the point where it needs lots of happy volunteers to find problems and help fix them
14:43 PerlJam re: "production ready", perhaps it's just in the absense of a good definition, everybody fills in there own.  So, the task for us would be to provide our own definitions.  At least that way we can get people talking about the same thing when they say "production ready"
14:43 PerlJam (okay, that's extremely optimistic  :-)
14:43 pmichaud I agree that in many cases it's not a rational business decision to use Rakudo/Perl 6.  But one of the central points of dagolden's article (and the comments) is that the Perl 6 team isn't even trying
14:43 colomon pmichaud: I certainly think current progress is phenomenal.
14:44 masak if people think "production-ready Perl 6" means "the moment when Perl 6 magically replaces Perl 5", then we are fucked.
14:45 nwc10 pmichaud: Which I don't think is valid. The Perl 6 team are trying to get there. It's just not obvious to outsiders why the route taken was chosen (or discovered), why it's long, and how near the end is
14:45 diakopter eh
14:45 pmichaud Out of curiosity, has dagolden participated in any p6 discussions or engaged with any p6 folk?
14:45 nwc10 not directly to my knowledge
14:45 masak good question. I kinda recognize the guy, but I don't recall talking to him.
14:46 colomon I know him reasonably well, but have had minimal interactions with him for the last decade.
14:46 nwc10 I've met him at least once. He's a nice chap, and he cares.
14:46 masak as someone who has not engaged with the p6 community, he is surprisingly spot-on.
14:46 colomon what nwc10 said
14:47 masak I don't think we're near the end. I don't think anyone has defined "the end" clearly enough for us to talk about being near it.
14:47 * colomon assumed the David Golden he knew must be different from the perl David Golden for several years....
14:47 pmichaud I'm not questioning motives, so much as "here's another person talking about Perl 6 without having bothered to find out what we're actually doing"
14:47 diakopter http://www.dagolden.com/index.php/947/thoughts-on-perl-6-hype-and-backlash/
14:48 diakopter http://www.dagolden.com/index.php/1492/counterfactual-perl/
14:48 colomon pmichaud: I would assume he has a pretty decent idea of what is going on.
14:49 colomon though looking again I think he's made a fundamental error in his logic.
14:49 masak dagolden++ # those posts
14:51 colomon pmichaud: if you look at how dagolden's framed his points, he definitely is looking for p6 to replace p5 completely.  "p6 is pointless" == "long term p5 maintenance is still needed".
14:53 diakopter once we have near-perfect p5 interop, the whole discussion will change radically
14:53 am0c joined #perl6
14:54 pmichaud diakopter: "once we have near-perfect p5 interop"... afaict, that's not a goal.  That wasn't the impression I got from PRS.
14:54 pmichaud p5 interop, yes, which will require an evolution of p5 (cpan) as well as p6.  But not "near-perfect p5 interop".
14:55 diakopter we'll see
14:55 lizmat indeed, any p5 interop that wouldn't need the classic Perl 5 runtime, would be great
14:55 lizmat otherwise we would be forced to continue maintaining perl 5 for as long as we will perl 6
14:55 pmichaud colomon: I think the statement "We won't know if Perl 6 is hopeless or just not done until the Perl 6 implementors ship a real production release" is the one I find most troubling.
14:56 lizmat when people ask me: "when is Perl 6 ready", I counter ask them "is Perl 5 ready?"
14:56 pmichaud Because in the context of that statement, dagolden is correct that we're not making efforts to ship whatever he calls a "real production release", whatever that is.
14:56 lizmat if so: then we can close p5p and have everybody work on Perl 6
14:57 lizmat if not: why are you using a language in production that isn't ready?
14:57 FROGGS :o)
14:57 diakopter ehh.. something can be ready but need maintenance
14:57 PerlJam lizmat: that only works on Perl people :)
14:57 colomon pmichaud: yes, I think the logic error he's making is the assumption that either p6 can completely replace p5 soon or p6 is hopeless.
14:57 masak any p5 interop that doesn't need the classic Perl 5 runtime will be a lot of work.
14:57 masak how's moe coming along? :)
14:58 * masak heads over there to ask
14:58 lizmat diakopter: I wouldn't call subroutine signatures in p5 "maintenance"
14:58 pmichaud diakopter: I think recent p5 discussion indicates that much of the p5 community doesn't believe that p5 is "done" or that its issues can be solved by simple "maintenance".
14:58 moritz lizmat: are those actually happening?
14:59 diakopter lizmat: I think it's myopic to think that "have everyone on p5p work on Perl 6" is anywhere near feasible or possible; who would enforce it, and how?
14:59 lizmat moritz: as far as I know, yes
14:59 * hoelzro cheers
14:59 * moritz dearly hopes that's true
14:59 masak diakopter: it's kinda interesting to try to picture what would be needed to make p5p work on Perl 6.
15:00 lizmat diakopter: I know, it's absurd. but so is the question: when is Perl 6 ready
15:00 diakopter pmichaud: oh. I suspect that perspective will change this year
15:00 diakopter lizmat: no, it's not. Something can be evaluated for whether it's ready for particular purposes/uses.
15:00 pmichaud diakopter: ...which perspective?
15:00 masak the outside of the echo chamber will always suck news through a very thin straw, such that the best we can hope for is questions such as "when is Perl 6 ready?"
15:00 diakopter pmichaud: the one you just mentioned to me?
15:01 pmichaud diakopter: you think that p5 folks will decide that it's "done" after all?
15:01 diakopter p5 community not believing p5 is done etc
15:01 PerlJam masak: aye, and we should give them a way to think about that that suits our needs.
15:01 masak yes. yes yes yes.
15:01 masak this. yes.
15:02 diakopter sure, once feasibility of usable and useful Perl 6 is demonstrated, including clear/easy migration/coexistence path
15:02 masak "Chirstmas!" is kind of a frivolous, unsatisfying answer.
15:02 masak "When it's ready" is less frivolous, but kinda feels like saying "not soon".
15:03 diakopter pmichaud: I fully agree that using "production ready" without qualification/specification isn't helpful
15:03 brrt how about we set real 'production ready' goals for some job
15:03 pmichaud I think I'm a bit skeptical that p5 folks will quickly move to p6.
15:03 brrt production ready for… writing a web server
15:03 brrt well, servers in general
15:03 PerlJam If we start talking about "levels of production readiness" or something and said things like "level 0 is where we're at", "level 1 is fast", "level 2 has a cpan-a-like", "level 3 has perl 5 interop"  etc.   That would give other people a way to think about the "readiness" of Perl 6 and a way for us to communicate its "readiness"
15:03 diakopter heh
15:03 masak brrt: yeah.
15:04 masak brrt: a page, like the compiler comparison chart.
15:04 masak brrt: but with "production ready for X" things.
15:04 brrt yeah
15:04 brrt with real examples, preferably
15:04 masak yeah.
15:04 masak web server, blogging app, IRC logger...
15:04 moritz PerlJam: that sounds more usful than what we usually produce as answers
15:05 diakopter we'll have level 1 and 3 this year; 2 isn't necessary; we can use atop existing cpan for the time being
15:05 brrt thats doable
15:05 masak PerlJam: I like that.
15:05 pmichaud PerlJam++
15:05 * lizmat afk
15:05 pmichaud one of the levels might want to be "declaration of 6.0.0 spec"
15:05 diakopter definitely
15:05 moritz or maybe instead of numbering the levels, we could do it like the features matrix
15:05 brrt hmm
15:05 pmurias joined #perl6
15:05 PerlJam diakopter: even if level 2 isn't necessary, it's a question people ask, so we can just say "use existing CPAN, done."  :)
15:05 brrt i disagree pmichaud
15:05 masak moritz: +1
15:06 brrt the spec should be able to change
15:06 moritz because we don't know in which order we'll get the stuff
15:06 pmichaud brrt: that's why it's a versioned spec
15:06 brrt fair enough
15:06 masak moritz: and the order doesn't really matter.
15:06 diakopter brrt: it'll evolve, but @Larry wants point-in-time freezings
15:06 pmichaud features matrix ++
15:06 PerlJam moritz++ whatever works! :)
15:06 masak level 3 is always better than level 2, no matter which goal we just passed.
15:06 pmichaud more to the point, the external community wants a frozen spec
15:07 tadzik maybe we need more red spots in the feature matrix
15:07 masak that, too.
15:07 tadzik it's very precise where we're green, but then it says "threads", red
15:07 masak today's community challenge: make a production matrix!
15:07 brrt blegh, threads
15:07 masak publish it.
15:07 brrt here's a thought
15:07 brrt we could /not/ solve threads for a few more years
15:08 brrt then reap of the work everybody has done by that time
15:08 masak heh.
15:08 diakopter "... . ... ......."
15:08 moritz brrt: we've been doing that for two decades now
15:08 moritz brrt: IMHO it's time to stop that, and start to actually implement shit
15:09 brrt hmm
15:09 brrt thats fair
15:09 pmichaud (1) find an application that benefits heavily from threading
15:09 pmichaud (2) start prototyping
15:09 TimToady .oO(apache3)
15:10 bluescreen10 joined #perl6
15:10 pmichaud fwiw, niecza++ already has "green" for "Basic threads" in the concurrency matrix.  :)
15:11 TimToady n: async { say "foo" }; async { say "bar" }; say "baz"  # this is basic to me
15:11 * PerlJam has no clue what "basic threads" means or how to differentiate "advanced threads"
15:11 p6eval niecza v24-26-g713c785: OUTPUT«[31m===[0mSORRY![31m===[0m��Action method statement_prefix:async not yet implemented at /tmp/cMwC0zA46u line 1:�------> [32masync { say "foo" }[33m�[31m; async { say "bar" }; say "baz"  # this[0m��Action method statement_prefix:async not yet implem…
15:11 pmichaud We should add 'async' to the matrix, then.
15:11 SunilJoshi joined #perl6
15:11 TimToady pugs: async { say "foo" }; async { say "bar" }; say "baz"  # this is basic to me
15:11 p6eval pugs: OUTPUT«foo␤bar␤baz␤»
15:11 PerlJam TimToady++ it's like you were reading my mind  :)
15:12 pmichaud (adding more red to features matrix)   "Loop labels" doesn't seem to be there, either.
15:12 TimToady pugs: async { sleep 2; say "foo" }; async { sleep 1; say "bar" }; say "baz"  # this is basic to me
15:12 p6eval pugs: OUTPUT«baz␤»
15:12 TimToady hmm
15:12 takadonet joined #perl6
15:12 takadonet morning all
15:12 TimToady pugs: async { sleep 2; say "foo" }; async { sleep 1; say "bar" }; say "baz"; sleep 3; # this is basic to me
15:12 p6eval pugs: OUTPUT«baz␤*** Unsafe function 'sleep' called under safe mode␤    at /tmp/ZjJnVZanxJ line 1, column 72-79␤»
15:13 TimToady hah
15:13 masak sleep; so unsafe.
15:13 TimToady sleeping is unsafe; you heard it here first
15:13 * pmichaud adds some entries to features matrix.
15:14 diakopter pmichaud: atomic { } too
15:14 PerlJam that's the whole premise of Nightmare on Elm Street.  I think I heard it there first :)
15:15 TimToady errands, back in a couple &
15:15 moritz https://gist.github.com/moritz/5082925 # the production readiness indicators that a quick brainstorm produced
15:16 masak moritz++
15:16 tadzik can we figure out the percentage of spec that's implemented?
15:16 tadzik so we can say "it's ready in 70%". People like numbers
15:16 tadzik "I don't know. Does it fill your usecase" is not a number
15:16 masak moritz: I'd like to see more of a focus on actual, deployed applications.
15:16 masak moritz: even that list of desirables is a bit abstract.
15:17 masak "concurrency". Pugs has that.
15:17 moritz tadzik: not in any scientifically sound way, but I guess we'll have to come up with some
15:17 PerlJam tadzik: that could backfire I think.  "Why would I use it at 70%?  I think I'll wait until it's at 95% or better"   but we want people to use it.
15:17 tadzik . o O ( 66 Perl 6 Milestones )
15:17 tadzik PerlJam: I'd better have them "I'll wait" than disappointed
15:17 bluescreen100 joined #perl6
15:17 tadzik disappointed people will come back even later, and will troll on reddit in the meantime
15:17 moritz masak: how would a list with actual, deployed applications look like?
15:17 hoelzro I've been wanting to work on deployment in major free OSes
15:18 hoelzro I have a package I maintain for Arch Linux
15:18 hoelzro and porting it to DEB/RPM should be easy
15:18 tadzik I'm glad you think that :)
15:18 hoelzro I'm not sure if there should be separate packages for Rakudo/Rakudo Star
15:18 tadzik I've been maintaining packages for CRUX, Arch, even Gentoo, but .deb always turned out to be a huge PITA
15:18 hoelzro well, I mean to say I wonder if Rakudo Star should depend on or conflict with Rakudo itself
15:18 hoelzro tadzik: you have your own arch pacakge?
15:19 pmurias tadzik: re percentage of spec, isn't the current amount enough for production and what's missing is speed and access to libraries?
15:19 tadzik hoelzro: I used to
15:19 tadzik I'm not using arch for some time now
15:19 colomon pmurias: also the ability to handle big data.  (at least, whenever I try I run out of memory distressingly quickly)
15:19 tadzik pmurias: maybe. Maybe we need some sort of a different number, not "the spec fulfillment"
15:20 tadzik 66 P6 milestones, now doesn't that sound marketing-friendly? :)_
15:20 hoelzro I should probably publish my Arch package
15:20 pmichaud Yes, I'd like to disassociate "spec" and "done-ness"
15:20 tadzik then we can say that we've already done 60 of them
15:20 moritz right, "spec fulfilllment" is a terrible metric
15:20 masak moritz: that's what I liked about the idea. "production-ready for web apps" means that there's a web app deployed somewhere in production.
15:20 * colomon still thinks the best PR is just to have the damn thing working.  :)
15:20 moritz mostly because the spec is so ambitious
15:20 PerlJam colomon: But it /is/ working.  Clearly that's not enough.
15:20 hoelzro I think that packaging and modules are the most important parts
15:21 not_gerd bye, #perl6
15:21 not_gerd left #perl6
15:23 takadonet PerlJam: It works but not well enough for people needs
15:23 pmurias colomon: re big data? you mean having the data structures be memory efficient or explicit support for things like gigantic amounts of floats?
15:23 dalek features: 4fd9b51 | pmichaud++ | features.json:
15:23 dalek features: Add "labeled loops", "async", and "is atomic" to the features matrix.
15:23 dalek features: review: https://github.com/perl6/features/commit/4fd9b51777
15:24 colomon pmurias: I mean I've got a lovely STEP file format parser running under Rakudo.  My machine has 8 gigs of RAM, but I run out parsing a 4meg STEP file.
15:25 colomon Rakudo's memory performance is *terrible* right now.  (Hopefully the JVM port will be a drastic improvement.)
15:27 masak takadonet: where "well enough" mostly means "fast enough", I think.
15:28 PerlJam If I were to order my wishes for Rakudo, speed would be the #1 wish.
15:29 colomon speed++
15:29 brrt stability
15:29 moritz brrt: what kind of stability?
15:29 * colomon suspects speed and memory usage are very intertwined.
15:29 brrt you should be able to start up a perl6 job
15:29 brrt and have it run in the background
15:30 brrt and not look at it
15:30 moritz ok
15:30 brrt and have it running five months later
15:30 moritz (there are other definitions of stability, like stability between releases)
15:30 brrt yes, sure, and that is important too, but that comes with inertia, which comes with heavy use
15:31 brrt perl6 is 'unstable' in that sense /because/ very few people use it, not the other way arround
15:32 colomon what's stopping us from porting the IRC logger to Rakudo?  ;)
15:32 brrt well, i for one don't believe it will run for a month
15:32 brrt i don't believe it will run for a week
15:33 moritz colomon: tuits, mostly
15:33 sizz_ joined #perl6
15:33 brrt but then again, testing it and figuring it out why, that would be an awesome thing, and more importantly it would 'prove' p6
15:33 PerlJam reality trumps belief every time  :)
15:33 PerlJam moritz: Sounds like a good project for a YAPC::NA hackathon methinks.
15:34 moritz PerlJam: then I should probably hurry up with publishing with what I've written so far :-)
15:34 moritz so that others can work on it
15:39 pmichaud I'm afk and erranding again
15:40 brrt you know what would've been cool for perl6?
15:40 brrt a module for apache
15:40 diakopter there was mod_parrot long ago
15:41 brrt https://github.com/bdw/mod_parrot/ ;-)
15:41 moritz brrt: didn't you work on something like that for gsoc?
15:41 brrt i did
15:41 brrt and it  broke because of the IO thing
15:41 brrt and whenever i do have tuits, i'm still planning to fix that
15:42 diakopter brrt: actually I was referring to a much older one
15:42 brrt i know
15:42 brrt :-)
15:42 brrt and it is Really Dead
15:43 diakopter (I hadn't seen this newer one)
15:43 brrt well, it works sort-of
15:44 arnsholt brrt: On my list of things to do is bindings to Mongrel2 via ZMQ. Not quite mod_rakudo, but similar
15:44 brrt but it cannot load either rakudo or even nqp because of all sorts of silly details
15:44 brrt what is mongrel2?
15:44 arnsholt Language agnostic webserver
15:44 pmurias brrt: once rakudo is ported to the jvm couldn't we use some java technology for that?
15:44 diakopter notification popup thingie?
15:44 diakopter oh that's growl
15:45 arnsholt It communicates with the code that handles requests via ZMQ, so it does all the heavy lifting of parsing and generating headers and passes the data as JSON
15:45 slavik1 joined #perl6
15:45 masak ISTR November worked with the old mod_parrot (or was it 'mod_perl6') at some point.
15:45 arnsholt http://mongrel2.org/
15:46 brrt pmurias, yeah sure, jvm is pretty stable
15:47 brrt the thing that any mod_perl6 will have to face is that there is a nontrivial barrier between rakudo and parrot
15:48 brrt in the form of 6model, all sort of dynamic ops, etc
15:48 nwc10 unless you measure it by number of upgrades needed due to CVEs
15:48 brrt and /in theory/ this could be made to work
15:48 brrt but nobody had the tuits to do it
15:51 pmurias if we are moving of parrot isn't it a bit of wasted effort to work on that?
15:51 pmurias s/of/off/
15:51 Khisanth joined #perl6
15:52 nwc10 I thought that the plan is "all your VM are belong to us" (in the long term), so it's assimilate JVM too. And then ...
15:52 nwc10 and not conceding any territory back
15:52 brrt pmurias, notwithstanding the efforts of jnthn++ (and presumably others) for a jvm port
15:52 dalek rakudo-js: ac1aa68 | (Pawel Murias)++ | runtime.js:
15:52 dalek rakudo-js: Remove leftover.
15:52 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/ac1aa68c39
15:52 dalek rakudo-js: b905e9e | (Pawel Murias)++ | runtime (2 files):
15:52 dalek rakudo-js: Move object deserialization code to a seperate module.
15:52 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/b905e9e63e
15:52 brrt i don't think perl6 will solely ever run on jvm
15:52 nwc10 me neither
15:53 nwc10 pmurias seems to be intent on getting it working in JS
15:53 nwc10 and I suspect that .NET is a logical thing for NQP to attack once it has the JVM conquered
15:54 brrt personally, i also think there is space for parrot
15:54 brrt or whatever will replace it
15:55 nwc10 something with non-sucky startup time would be welcome
15:56 nwc10 parrot certainly demolishes the JVM on that
15:56 p6eval joined #perl6
15:57 moritz r: say 'welcome back'
15:57 FROGGS r: say 'something at all'
15:57 p6eval rakudo 87ad7c: OUTPUT«welcome back␤»
15:57 dpk joined #perl6
15:57 moritz be patient
15:57 p6eval rakudo 87ad7c: OUTPUT«something at all␤»
15:57 FROGGS :o)
15:57 diakopter nqp-jvm: say(5)
15:57 moritz first execution is always slow
15:57 p6eval nqp-jvm: OUTPUT«5␤»
15:57 moritz \o/
15:57 moritz diakopter++
15:57 nwc10 \o/
15:58 FROGGS cool!
15:58 diakopter let the microbenchmarking commence
15:58 FROGGS nqp-jvm: say("abc123def" ~~ /<[\w]-[a\D]>+/)
15:58 p6eval nqp-jvm: OUTPUT«123␤»
15:58 masak diakopter++
15:58 FROGGS nqp-jvm: say("abc123def" ~~ /<[\w]-[a\d]>+/)
15:58 p6eval nqp-jvm: OUTPUT«bc␤»
15:58 FROGGS nice
16:00 masak I should probably use &shell instead of &run in my program, but...
16:00 masak ...when I use &run, there's no indication at all that things go wrong. no error. nothing.
16:00 masak like 'run("echo hi")'
16:01 diakopter btw that's oracle jvm 32-bit latest
16:01 nwc10 how many days old is their latest?
16:05 diakopter uhh
16:05 diakopter hrm, it appears this is nowhere near the latest
16:07 thou joined #perl6
16:07 diakopter how in the world.... I could have sworn I downloaded the latest
16:10 dalek rakudo-js: 423c4b7 | (Pawel Murias)++ | runtime (3 files):
16:10 dalek rakudo-js: Move the object representation to a seperate module.
16:10 dalek rakudo-js: review: https://github.com/pmurias/rakudo-js/commit/423c4b7271
16:12 diakopter nwc10: apparently 7 update 15 was released 2-3 days ago
16:14 diakopter uhh
16:14 diakopter wtf
16:17 nwc10 which is consistent with http://java-0day.com/
16:18 brrt left #perl6
16:19 nwc10 whereas your Perl 5 security update is piping hot *today*
16:21 diakopter nqpjvm: 1
16:21 diakopter nqp-jvm: 1
16:21 p6eval nqp-jvm:  ( no output )
16:21 diakopter nqp-jvm: 1
16:21 p6eval nqp-jvm:  ( no output )
16:21 diakopter nqp-jvm: 1
16:21 p6eval nqp-jvm:  ( no output )
16:22 cogno joined #perl6
16:23 masak j: 1
16:23 masak aww :)
16:23 mberends joined #perl6
16:29 masak "On failure to execute, the routines C<fail()>." -- so, since I use &run in sink context, it should blow up, right?
16:29 * masak submits rakudobug
16:31 dpk left #perl6
16:39 diakopter ok, *now* it's running the latest java
16:41 dpk joined #perl6
16:42 masak :)
16:45 kresike bye folks
16:49 REPLeffect joined #perl6
17:08 [Coke] nqp-jvm: say "hello world?"
17:08 p6eval nqp-jvm: OUTPUT«Confused at line 2, near "say \"hello"␤  in panic␤  in comp_unit␤  in TOP␤  in parse␤  in parse␤  in <anon>␤  in compile␤  in eval␤  in evalfiles␤  in command_eval␤  in command_line␤  in MAIN␤  in <anon>␤  in <anon>»
17:08 tadzik nqp
17:09 [Coke] nqp-jvm: say("hello world?"); # right, not rakudo yet.
17:09 p6eval nqp-jvm: OUTPUT«hello world?␤»
17:09 [Coke] is that CC or direct?
17:11 masak still CC AFAIK.
17:11 masak ...but I've been gone for a week ;)
17:13 sorear i tend to imagine that 'nqp-jvm: say 1' will never work
17:13 sorear it should stay compatbile with nqp
17:13 sorear nqp: say "hello world?"
17:13 p6eval nqp: OUTPUT«Confused at line 2, near "say \"hello"␤current instr.: 'panic' pc 14698 (src/stage2/gen/NQPHLL.pir:5229) (src/stage2/gen/NQPHLL.pm:278)␤»
17:14 * _sri thinks perl6 will be considered "production ready" by the perl5 community once it can do everything perl5 (without cpan) can do equally fast
17:14 masak _sri: I'd settle for a 10x slowdown.
17:14 masak on average.
17:14 [Coke] Aye. wasn't trying to imply it should work, just been a while since I've had to write NQP.
17:14 [Coke] jnthn: I am getting failures in 'make nqptest' for nqp-jvm
17:14 PerlJam sri: Perl 5 was slower than Perl 4 when it became "production ready"  :)
17:15 PerlJam (of course, it had more features, so the the slow down was accepted)
17:15 [Coke] https://gist.github.com/coke/5083824
17:15 arlinius joined #perl6
17:15 _sri PerlJam: i doubt many folks would accept a 10x slowdown of there aren't huge advantages
17:15 _sri s/o/i/
17:16 PerlJam I don't think I'd be happy with a 10x slowdown.
17:16 [Coke] and make selftest seems to be missing a prereq.
17:16 PerlJam 2x wouldn't be so bad though
17:17 PerlJam But it'd be an apples/oranges comparison anyway.
17:17 masak I'd accept a 10x slowdown any day.
17:17 masak especially if I could see that years of optimization would bring be closer to 1x.
17:18 masak me*
17:18 PerlJam masak: I "accept" the slowness now, but I'm not happy about it.
17:18 masak a stable, bug-free, 10x slower Rakudo with all the features I use every day. I could use that for almost anything.
17:19 SamuraiJack joined #perl6
17:19 TimToady actually 5 was faster than 4 for many tasks at the beginning, at least until we added in threading and such
17:19 masak PerlJam: well, "accept" is the word I mean. I'd take it, because Perl 6 has features I prefer over Perl 5.
17:20 benabik joined #perl6
17:20 sorear this does not suprise me, you did after all switch from a tree interpreter to threaded code
17:20 TimToady that was the main reason
17:20 PerlJam TimToady: I distinctly remember worrying because some time calculations and such that I was doing with Perl 4 were quite a bit slower with Perl 5.  I ran all sorts of timing comparisons for the code I was concerned with.
17:21 TimToady well, it was certainly task dependent
17:21 sorear p6 with proper bytecoding and potential jit options could be faster, although there's a lot of hot-path featurism to overcome
17:21 TimToady and p5 never did reimplement p4's switch optimizaiton
17:21 TimToady (that I know of)
17:21 TimToady hopefully most of that featurism can be dealt with lexically
17:22 TimToady but yeah, p6 is much more dependent on having a spectacular optimizer
17:23 TimToady and puts more weight onto application-level analysis than I know you're comfy with :)
17:23 FROGGS joined #perl6
17:23 sorear if we're really going to be spectacular it needs to be a profile-directed dynamic optimizer
17:23 masak agreed.
17:23 masak cf v8
17:24 TimToady well, any guarantee from CHECK time is also good after that :)
17:24 sorear inline caches are going to be a huge win for p6, imo
17:24 TimToady that was always the plan
17:25 TimToady the difficult part is keeping track of the identity of captures vs signatures
17:25 TimToady type-identity, I should say
17:26 sorear I think that's pretty surmountable.
17:26 TimToady that's one of the things I've been comfy with handwaving :)
17:26 TimToady on accounta I can think of ways to do it
17:27 sorear rakudo has a way of handling that that I think is pretty viable
17:28 TimToady .oO("The mathematician wakes up, sees the fire, the bucket, and the faucet, declares 'It can be proven,' and falls back asleep.")
17:28 masak mathematicians can't prove things to save their life.
17:28 Chillance joined #perl6
17:34 cognominal joined #perl6
17:34 zby_home_ joined #perl6
17:40 colomon masak: but they *can* prove things for fun, and what's more important?
17:40 masak -Osaveyourlife
17:46 TimToady .oO(The mathematician's spouse comes in, sees the situation, says 'Here we go again,' and puts out the fire.)
17:47 tadzik uh-oh
17:47 tadzik did someone break JSON::Tiny?
17:47 TimToady what, it got big suddenly?
17:47 PerlJam .oO( JSON::Pieces? )
17:47 tadzik yeah, full of fat test failures :)
17:48 benabik Perhaps more JSON::Tiny::Pieces
17:50 constantined left #perl6
17:53 tadzik r: role A::B { method run(A::C $) { !!! } } # LTA error message
17:53 p6eval rakudo 87ad7c: OUTPUT«===SORRY!===␤Cannot type check against type variable $?CLASS␤»
17:55 FROGGS r: role A::B { method run(A::C $a) { } } # LTA error message
17:55 p6eval rakudo 87ad7c: OUTPUT«===SORRY!===␤Cannot type check against type variable $?CLASS␤»
17:56 FROGGS std: role A::B { method run(A::C $a) { } }
17:56 p6eval std 52fe6d2: OUTPUT«[31m===[0mSORRY![31m===[0m�In parameter declaration, typename 'A::C' must be predeclared (or marked as declarative with :: prefix) at /tmp/MLYVpiJfdC line 1:�------> [32mrole A::B { method run(A::C[33m�[31m $a) { } }[0m�Parse failed�FAILED 00:00 43m�»…
17:56 FROGGS n: role A::B { method run(A::C $a) { } }
17:56 p6eval niecza v24-26-g713c785: OUTPUT«[31m===[0mSORRY![31m===[0m��In parameter declaration, typename 'A::C' must be predeclared (or marked as declarative with :: prefix) at /tmp/j9oEvhF_0K line 1:�------> [32mrole A::B { method run(A::C[33m�[31m $a) { } }[0m��Parse failed��»…
17:57 * grondilu failed to rebootstrap panda :(
17:58 tadzik grondilu: yeah, same here
17:58 tadzik JSON is broken
17:59 * FROGGS wonders what does that
18:00 masak tadzik: want me to rakudobug-submit?
18:00 masak (the LTA error message)
18:01 grondilu my error message fyi:  http://paste.siduction.org/20130304180101
18:02 cognominal joined #perl6
18:03 tadzik masak: would be great
18:03 * masak submits rakudobug
18:04 tadzik grondilu: yep, that matches mine
18:04 tadzik we _do_ need that module smoketester
18:04 tadzik it would then whine on the irc "FROOOOGGS, you brokes it"
18:04 masak r: role A::B { method x(A $) {} }
18:04 p6eval rakudo 87ad7c: OUTPUT«[31m===[0mSORRY![31m===[0m�Type A cannot be used as a nominal type on a parameter�at /tmp/lwVYy3lbHA:1�------> [32mrole A::B { method x(A [33m�[31m$) {} }[0m�    expecting any of:�        statement list�        prefix or term�        prefix or meta-prefix�»…
18:05 masak r: role A::B { method x(A::C $) {} }
18:05 p6eval rakudo 87ad7c: OUTPUT«===SORRY!===␤Cannot type check against type variable $?CLASS␤»
18:05 tadzik any resemblance to real persons and events is coincidental
18:05 masak ;)
18:05 masak a smoketester would be great.
18:05 masak with a bot to discreetly notify the channel of any new failures.
18:09 [Coke] I could probably add modules to the daily test runs.
18:10 FROGGS tadzik: me? why me? ó.ò
18:10 [Coke] \o/ pugs is clean.
18:11 diakopter [Coke]: . masak, it's not CC; it's the self-hosted
18:11 [Coke] niecza is up to 203 failures.
18:11 [Coke] diakopter: awesome, thanks.
18:11 cognominal joined #perl6
18:11 masak diakopter: we're self-hosting now? great!
18:11 masak jnthn++
18:21 cognominal joined #perl6
18:33 tadzik hmm, does our require() have some limitations I do not know of?
18:34 cognominal__ joined #perl6
18:34 tadzik I require "Quest::Event::TreasureChest", but ::("(that string)") yields Failure.new(exception => X::NoSuchSymbol.new(symbol => "Quest::Event::TreasureChest"))
18:34 tadzik I cannot duplicate this easily in isolated conditions, possibly happens only with precompiled code
18:34 tadzik moritz?
18:35 denisboyun joined #perl6
18:35 TimToady nr: my ($x0, \x1) = (1, 2); say $x0; say x1
18:36 p6eval niecza v24-26-g713c785: OUTPUT«1␤2␤»
18:36 p6eval ..rakudo 87ad7c: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Null PMC access in find_method('handle')␤»
18:36 TimToady masak: did you see that one?
18:36 dalek perl6-roast-data: f95b203 | coke++ | / (4 files):
18:36 dalek perl6-roast-data: today (automated commit)
18:36 dalek perl6-roast-data: review: https://github.com/coke/perl6-roast-data/commit/f95b203249
18:36 colomon tadzik: my new Linux box should arrive sometime this week, if no one else has done anything before then I will see what I can do about establishing module smoketesting on it.
18:36 TimToady nr: my ($x0, \x1) = 1, 2; say $x0; say x1
18:36 p6eval niecza v24-26-g713c785: OUTPUT«1␤2␤»
18:36 p6eval ..rakudo 87ad7c: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Null PMC access in find_method('handle')␤»
18:37 moritz tadzik: I never tested require in precompiled code
18:37 TimToady it's what blows up http://rosettacode.org/wiki/Xiaolin_Wu%27s_line_algorithm#Perl_6 in rakudo
18:37 lichtkind joined #perl6
18:38 tadzik colomon: awesome
18:38 TimToady and FROGGS++ for hunting the bug down
18:38 ElDiabolo joined #perl6
18:38 tadzik moritz: ok, it doesn't seem to work w/o precomp either :)
18:39 tadzik https://gist.github.com/tadzik/5084382 something like this occurs
18:41 lichtkind tadzik++
18:46 FROGGS joined #perl6
18:46 TimToady sorear: the most astounding thing about seeing snowfall live is not actually the sight; it's the sound--it dampens ambient sounds, plus sometimes there's an almost subliminal sound of snowflakes landing, especially if they're large ones
18:46 TimToady I first saw/heard snow falling in 4th grade, having moved up from LA to Bremerton, WA
18:47 FROGGS it's hard to believe that someone never has seen snow when you are used to it
18:47 masak TimToady: I did not.
18:47 * masak submits rakuodbug
18:48 * FROGGS submits masak-spellbug :P
18:48 TimToady well, but this one was an odbug
18:48 masak typos are automatically corrected as the rakudobugs are sent in ;)
18:49 FROGGS TimToady: I didnt hunt "your" RC bug down yet fwiw
18:49 FROGGS we should add a ticket for that
18:49 TimToady you minimized it, which is often most of the work
18:50 masak nr: my (\x1, \x2) = (1, 2); say x1; say x2
18:50 p6eval niecza v24-26-g713c785: OUTPUT«1␤2␤»
18:50 p6eval ..rakudo 87ad7c: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op bind: Error while compiling op call: Null PMC access in find_method('handle')␤»
18:50 masak yeah. that makes sense.
18:50 TimToady doesn't need the 2nd parens
18:50 masak nr: my (\x1) = 1; say x1
18:50 p6eval niecza v24-26-g713c785: OUTPUT«1␤»
18:50 p6eval ..rakudo 87ad7c: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Null PMC access in find_method('handle')␤»
18:50 masak doesn't need the second variable either ;)
18:50 TimToady ooh, shorter
18:51 FROGGS :o)
18:51 * masak has some experience in golf :)
18:51 masak so, it's the combination of \ and my () that does it.
18:52 diakopter r: my ((\x1))=1; say x1
18:52 p6eval rakudo 87ad7c: OUTPUT«(Mu)␤»
18:52 TimToady r: my \x1; :(\x1) ::= 1; say x1
18:52 p6eval rakudo 87ad7c: OUTPUT«===SORRY!===␤Method 'ast' not found for invocant of class 'NQPMu'␤»
18:52 masak nr: my (\x1) = 1
18:52 p6eval rakudo 87ad7c, niecza v24-26-g713c785:  ( no output )
18:52 masak my guess is that the sigilless doesn't get properly registered when it's in a ()
18:52 FROGGS nr: my (\x1) = 1; say x1.WHAT
18:52 p6eval rakudo 87ad7c: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op call: Error while compiling op what: Null PMC access in find_method('handle')␤»
18:52 p6eval ..niecza v24-26-g713c785: OUTPUT«(Int)␤»
18:53 FROGGS nqp: my (\x1) = 1; say(x1)
18:53 p6eval nqp: OUTPUT«Confused at line 2, near "my (\\x1) ="␤current instr.: 'panic' pc 14698 (src/stage2/gen/NQPHLL.pir:5229) (src/stage2/gen/NQPHLL.pm:278)␤»
18:53 FROGGS ohh, okay
18:53 [Coke] when testing modules, is there an expectation we should be testing on anything other than rakudo-latest?
18:54 FROGGS latest rakudo@parrot and at some point rakudo@jvm
18:54 TimToady well, until we starting getting maint tracks, I suppose
18:54 [Coke] Hokay.
18:54 FROGGS dunno if somebody wants niecza tested, that only makes sense if there are active devs
18:54 TimToady but in theory a given version is immutable, so once it passes, it should always pass, modulo roast changes
18:55 masak that's a big modulo :P
18:55 sorear would be nice to know if parrot/glibc/jvm/whatever changes break stuff, I guess
18:55 TimToady though roast changes might be a good reason to smoke something older, I suppose
18:56 FROGGS sorear: Go!
18:56 FROGGS hopefully ;o)
18:57 cognominal__ joined #perl6
19:02 jnthn Well, that was a win fail...
19:03 * jnthn managed to get on a ferry going in the wrong direction from $teaching-gig
19:03 diakopter )_)
19:03 [Coke] DOH
19:03 jnthn Got of at the next step...and realized i'd been deposited 10 mins walk to my favorite Indian restaurant in town. :)
19:03 jnthn *stop
19:04 masak ;)
19:05 sorear what, win fail != bsod?
19:05 jnthn ;)
19:05 * jnthn ain't seen one of those in a little while
19:08 * diakopter saw the Windows 8 one a few times; the font is not fixed-width anymore
19:10 * jnthn skips every other versin of Windows, so doubts he'll ever really use 8. :)
19:12 denisboyun_ joined #perl6
19:15 SamuraiJack joined #perl6
19:16 cognominal__ joined #perl6
19:22 FROGGS wow, jnthn is still on windows 95 beta 2 (the one with usb support)
19:23 jnthn FROGGS: 7 :P
19:23 cognominal__ joined #perl6
19:24 FROGGS well, I dont like 7
19:24 FROGGS never had a vista, and not an 8 yet
19:25 FROGGS jnthn: btw, do you think one (me?) has to fiddle with NQPRegex class/knowhow in order to get runtime-NFAing working?
19:25 FROGGS since I can't do NQPRegex.new() right now
19:26 FROGGS I can somehow create an NQPRegex with: my $code_obj := nqp::create(NQPRegex);
19:26 FROGGS but I dont know what to do afterwards
19:26 FROGGS I've seen some code that binds an ast to $!do
19:32 jnthn FROGGS: I'll be the $!do is the thing with the .NFA on it
19:32 jnthn FROGGS: I wanna clean it up properly, but you may find giving the class methods that delegate to $!do may do it
19:32 rindolf Hi all.
19:33 rindolf Hi FROGGS, jnthn, TimToady.
19:33 jnthn o/ rindolf
19:35 masak jnthn: congrats on self-hosting nqp-jvm! \o/
19:35 masak jnthn++
19:36 jnthn just saw in backlog we have a bot for it now too :)
19:36 rindolf jnthn: what's up?
19:36 fgomez joined #perl6
19:36 FROGGS hi rindolf
19:36 jnthn nqp-jvm: say('omgz yay')
19:37 p6eval nqp-jvm: OUTPUT«omgz yay␤»
19:37 jnthn rindolf: Not much...up in Gothenburg, teaching... :)
19:37 rindolf jnthn: nice.
19:37 kboga joined #perl6
19:37 rindolf FROGGS: what's new?
19:37 * masak .oO( "what's up?" -- "jnthn. he's up in Gothenburg" )
19:38 jnthn nqp-jvm: nqp::getcomp('nqp').eval('say("Does this work?")')
19:38 p6eval nqp-jvm: OUTPUT«NQPCORE.setting.class (No such file or directory)␤  in <anon>␤  in <anon>␤  in load_setting␤  in <anon>␤  in load_setting␤  in <anon>␤  in outerctx␤  in !reduce␤  in !cursor_pass␤  in outerctx␤  in comp_unit␤  in TOP␤  in parse␤  in parse␤  in <anon>␤  in compile␤  in ev…
19:38 jnthn ...no.
19:38 jnthn oh, 'cus of...that :)
19:38 diakopter need me to adjust a working directory?
19:38 jnthn fairynuff
19:39 jnthn diakopter: No, it'd happen locally too
19:40 FROGGS rindolf: dunno, german perl workshop next week, still some thing to prepare
19:41 rindolf FROGGS: ah, OK.
19:41 rindolf FROGGS: good luck.
19:41 rindolf FROGGS: I missed the Israeli Perl workshop.
19:41 rindolf FROGGS: in part due to stress.
19:41 FROGGS ohh, I guess we dont need luck :o)
19:41 FROGGS ohh, that's sad
19:42 cognominal joined #perl6
19:43 census rindolf: oh no, i'm so sorry to hear :(
19:44 TimToady turns out to be a good thing that I missed it, given my medical developments...
19:46 * TimToady wonders why, when our bodies start to rot, we call it a "development"?  :)
19:47 cognominal__ joined #perl6
19:47 * masak is glad he's already had dinner
19:47 rindolf census: that's OK.
19:47 rindolf census: the world still turns.
19:48 census and let's hope it continues to :)
19:48 rindolf TimToady: I hope everything is fine with you.
19:48 rindolf TimToady: how is Gloria doing?
19:51 thou_ joined #perl6
19:52 TimToady rindolf: I'm fine, other than having prostate cancer.  Glo is up visiting the grandkids.
19:52 masak r: .say for (1, 2, 3) <<~>> "!"; .say for (1, 2, 3) «~» "!"; .say for (1, 2, 3)«~»"!"
19:52 p6eval rakudo 87ad7c: OUTPUT«1!␤2!␤3!␤1!␤2!␤3!␤1!␤2!␤3!␤»
19:52 masak r: .say for (1, 2, 3)<<~>>"!"
19:52 p6eval rakudo 87ad7c: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row�at /tmp/Kg__QjZ4yV:1�------> [32m.say for (1, 2, 3)<<~>>[33m�[31m"!"[0m�    expecting any of:�        postfix�        infix or meta-infix�        infix stopper�»
19:52 * masak submits rakudobug
19:53 jnthn std: .say for (1, 2, 3)<<~>>"!"
19:53 p6eval std 52fe6d2: OUTPUT«[31m===[0mSORRY![31m===[0m�Two terms in a row at /tmp/MmOH3ej_tf line 1:�------> [32m.say for (1, 2, 3)<<~>>[33m�[31m"!"[0m�    expecting any of:�  POST�   infix or meta-infix�    infixed function�       postcircumfix�  postfix�        postfix_prefix_meta_operator�
19:53 p6eval ..postop␤Parse …
19:53 rindolf TimToady: prostate cancer sounds nasty. :-(
19:53 jnthn masak: It parsed as a subscript
19:53 rindolf TimToady: like we say in Hebrew - Good medicine.
19:53 masak jnthn: I know.
19:54 jnthn masak: Yes, and STD does it too.
19:54 jnthn masak: It's not a bug.
19:54 rindolf TimToady: anyway, I think if you stop being a shaker and mover, it will only make matters worse.
19:54 masak jnthn: responding to Ovid's p6u email from a week ago.
19:54 masak jnthn: the fact that it parses as a subscript isn't the bug.
19:54 masak jnthn: look at the evaluation before.
19:54 masak it parses as a subscript when it's <<~>>, but not when it's «~»
19:54 jnthn oh...
19:55 rindolf TimToady: I think my grandfather slowly became less and less happy after he had less and less to do.
19:55 jnthn Yeah, that's 'cus we're missing those quotes in the grammar somehow
19:55 masak that's the bug.
19:55 rindolf TimToady: my late grandfather on my father's side.
19:55 jnthn masak: OK, fair enough.
19:55 rindolf TimToady: so I think I'm never going to retire.
19:55 TimToady you don't have to hang out here long to realize I still have lots to do :)
19:56 TimToady including eat lunch &
19:58 cognominal__ joined #perl6
20:03 [Coke] .u book
20:03 phenny [Coke]: Sorry, no results for 'book'.
20:08 masak .u hard work
20:08 phenny masak: U+0068 U+0061 U+0072 U+0064 U+00A0 U+0077 U+006F U+0072 U+006B
20:08 masak dang :)
20:08 jnthn lol
20:10 cognominal__ joined #perl6
20:10 shinobicl joined #perl6
20:12 shinobicl left #perl6
20:12 shinobicl joined #perl6
20:13 masak .u trying
20:13 phenny masak: Sorry, no results for 'trying'.
20:13 masak :P
20:14 masak .u insolence
20:14 phenny masak: Sorry, no results for 'insolence'.
20:16 _ilbot joined #perl6
20:16 Topic for #perl6 is now »ö« Welcome to Perl 6! | http://perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: http://irc.perl6.org/ | UTF-8 is our friend!
20:25 woolfy joined #perl6
20:26 spider-mario joined #perl6
20:30 kboga hi p6, here's some more pir -> nqp (for rakudo): https://github.com/rakudo/rakudo/pull/109 , passes the spectests locally, would be nice if it could be incorporated in rakudo but there's no hurry
20:31 masak whoa. kboga++
20:34 * moritz hopes that was made at least semi-automated
20:35 wingfold joined #perl6
20:35 * masak .oO( these commits were painstakingly handcrafted, according to the ancient traditions of the natives )
20:37 kboga_ joined #perl6
20:38 bruges_ joined #perl6
20:46 census joined #perl6
20:47 kboga got bored on sunday, so did some obvious text replacements, there still remains a bunch of pir though
20:48 japhb_ joined #perl6
20:48 FROGGS kboga++
20:51 moritz many of those are because there's no easy NQP mapping of the PIR Key syntax
20:51 moritz interp["lexpad"; level]
20:51 moritz that one
20:52 moritz but I guess it's not much use to invent one, because the usage is inherently non-portable
20:55 jnthn You can express those with nqp ops still
20:55 jnthn nqp::lexpad(nqp::outerctx(nqp::ctx())) # just add number of outers...or callers
20:57 cognominal__ joined #perl6
20:57 moritz callers, in this case
20:58 jnthn *nod*
20:59 jnthn The kboga++ patches look good to me.
21:02 ggoebel_ regarding the "the Perl 6 team isn't working towards production ready" meme... brrt++ is probably right. Take the list of distributions installed on top of strawberry perl (http://strawberryperl.com/release-notes/5.16.2.2-32bit.html), decide which ones make sense for Perl 6, and start porting them... and testing them before each monthly release of Perl 6.
21:03 ggoebel_ Now I might have to delurk long enough to actually do something helpful ;-)
21:04 moritz jnthn: I'm spectesting it now; will push soonish
21:04 jnthn moritz++
21:05 tadzik moritz: would you care to take a look at a 18 LoC require bug?
21:06 abth joined #perl6
21:07 moritz tadzik: I would
21:08 tadzik it's 3 files, I'll put it somewhere sane
21:08 shinobicl left #perl6
21:08 tadzik moritz: do you have access to my feather $HOME?
21:09 tadzik it's 'lib' over there
21:09 tadzik steps to reproduce: perl6 -Ilib lib/Quest/Game.pm
21:10 dalek Heuristic branch merge: pushed 25 commits to rakudo/nom by moritz
21:11 moritz tadzik: I know what the problem is
21:11 moritz (at least I think I do)
21:11 tadzik great :)
21:11 moritz 'require' doesn't import the type object
21:12 moritz hm, doesn't seem to be as easy as that though
21:12 moritz └─[%]─> perl6 -Ilib -e 'require ::("Quest::Event"); say ::("Quest::Event").new'
21:12 moritz Quest::Event.new()
21:12 moritz that works
21:13 tadzik yes
21:13 moritz so, when indirectly loaded, maybe the merging of GLOBAL somehow doesn't work
21:14 masak tadzik: what's this Quest::Game I hear about? :) I'm interested now.
21:14 tadzik masak: oh sh!
21:14 tadzik it's an adventure game
21:14 tadzik with random levels and stuff
21:15 tadzik do you know FTL?
21:15 lichtkind panda works hej
21:15 masak can't say I do.
21:15 tadzik it's a space exploration game
21:15 tadzik it's so Star-Trek inspired that it's nearly a copyright infrigment ;)
21:15 tadzik it's also addictive as hell
21:15 tadzik mainly beacuse of the 'I'll just play one more stage' model. One stage is never more than 5 minutes
21:16 tadzik and you never know what'll happen. Smuggler ship? Distress call? Pirates? Shop?
21:16 tadzik so I thought "hey, that's fun, and that could be a text game as well"
21:16 moritz tadzik: I'll try to take another look at it tomorrow; going to bed now
21:16 tadzik moritz: okay, thank you
21:16 tadzik sleep well
21:17 jnthn 'night, moritz
21:18 masak tadzik: cool. sounds worthwhile.
21:19 masak tadzik: I don't know whether to be amused or dismayed by the fact that your third class seems to have been EventFactory, however :P
21:19 tadzik and I wanted that fantasy themed, with a party of heroes, trolls, leprechauns and stuff
21:19 tadzik masak: oh, it fitted well :P
21:20 tadzik and bumps the Production Ready factory
21:20 tadzik erm, factor *
21:20 tadzik imagine them all saying "wow, that's so enterprise. It must be production!"
21:21 colomon tadzik: url?
21:21 colomon (for Quest::game)
21:21 tadzik colomon: it doesn't work
21:21 tadzik because of the require bug
21:21 tadzik and there's almost nothing there either :)
21:22 colomon tadzik: that's great, it means I won't waste time playing it.  ;)  still might take a look
21:22 tadzik but I can push it somewhere anyway
21:22 cognominal__ joined #perl6
21:23 fgomez joined #perl6
21:23 masak tadzik: we design things differently, methinks. which is fine.
21:24 tadzik colomon: https://github.com/tadzik/Quest is where I stopped
21:24 tadzik masak: how would you approach that?
21:24 masak I'm so steeped in "first, make it work" think that I wouldn't even entertain the thought of introducing an EventFactory that early. even if there was good reason to have it as the design matured.
21:24 tadzik but it revealed a bug :)
21:24 tadzik well, at first I had only the Nothing event
21:24 masak yes, and tadzik++
21:24 tadzik the game became a bit boring
21:24 masak :P
21:25 masak that's so zen.
21:25 tadzik then I added a second one, and "hmm, I need an event picker"
21:25 masak yeah, that's where we diverge, I think.
21:25 tadzik the object was a natural choice. Each event returns a new state of the game
21:25 masak I would probably go "this isn't painful just yet. let's see where it leads" :)
21:25 tadzik so when a player enters a cave for example, there may be a different event factory
21:25 tadzik I didn't want to repeat myself :)
21:26 masak *nod*
21:26 tadzik also, there were problems with circular dependencies in precomp
21:26 tadzik and then there was pain
21:26 tadzik so I thought "Hey, I'll load classes lazily!"
21:26 tadzik and then there were 2 problems
21:26 masak and a bug :)
21:26 tadzik yes, that was one of the problems :)
21:27 colomon tadzik++
21:27 tadzik I don't see how I'd avoid the circular dependency either
21:28 tadzik maybe that's part of the problem
21:28 masak you can always avoid it by stubbing classes.
21:28 tadzik hm
21:28 am0c joined #perl6
21:28 tadzik that should work
21:28 masak even though it sometimes feels just as wrong as reversed dependencies.
21:30 tadzik oh well, I can't stub them if I use them
21:30 tadzik here https://github.com/tadzik/Quest/blob/broken-stuff/lib/Quest/Event/TreasureChest.pm
21:30 tadzik I can't quite avoid Quest::Game
21:31 Targen joined #perl6
21:31 tadzik on second thought, almost-new is a stupid method name too ;P
21:33 masak tadzik: from looking at that, I'd say it's back-to-the-drawing-board with your module dependencies.
21:33 masak can't quite tell what's wrong, but...
21:33 diakopter nwc10: have you tried your benchmark on nqp-jvm p6eval?
21:33 masak ...the general rule is clear: let less central stuff depend on more central stuff.
21:34 masak *probably* your Quest::Game is more central than TreasureChest.
21:34 masak so that 'use' there is OK. but not the other way around.
21:34 tadzik well, Game employs this EventFactory
21:34 tadzik which needs to load all the event
21:34 tadzik s
21:34 masak consider using roles to break up dependency cycles.
21:35 tadzik hm
21:35 tadzik o
21:35 tadzik oh
21:35 tadzik oh-oh
21:35 masak sounds like that is applicable here.
21:35 tadzik aye
21:35 masak you might want to look up a little something called "dependency injection", too :P
21:35 tadzik yes
21:35 tadzik I just thought of that when you said about roles
21:35 tadzik "this fixes everything \o/"
21:36 masak sorry, I didn't want to sound facetious :)
21:36 masak learning about this stuff is great.
21:36 masak I've probably learned about DI four or so times now. gets easier every time :)
21:37 masak even so, I've yet to decide whether DI is a great resource in OO programming, or just a horrible symptom of it.
21:37 spider-mario joined #perl6
21:37 * colomon admits to being suspicious of it.
21:37 tadzik I hate the word Factory already
21:38 tadzik EventFactory is so long
21:38 tadzik Tale? Story? :)
21:38 cognominal joined #perl6
21:38 diakopter you're an EventFactory
21:39 tadzik yay, things work
21:39 jnthn DI is probably just an admission that many times, an object would do with being a bit for FPesque. :)
21:39 jnthn *more
21:40 jnthn Essentially, turning an impure object into a pure-ish one.
21:40 tadzik masak: hm. Actually, I don't need that use there at all ;)
21:40 tadzik I can just use $g as my object
21:40 tadzik type object, if needed
21:40 tadzik stuff works now ;)
21:40 jnthn Which is why we like doing it with testing. 'cus pure code is easier to test. :)
21:41 masak jnthn: that's a nice way to spin DI, yes :)
21:41 masak the dependency injected into a class is like the parameter injected into a function.
21:42 jnthn It's a lot like currying all the functions with the dependencies.
21:45 tadzik colomon: https://github.com/tadzik/Quest is now playable
21:45 tadzik in case you want to waste some time :)
21:46 tadzik it's not too exciting though
21:46 donaldh joined #perl6
21:46 colomon tadzik: at the moment, alas, I am balancing the $work checkbook.  Then I've got to cook dinner and pick up my little boy from the inlaws.  Not necessarily in that order.
21:46 tadzik :)
21:50 takadonet left #perl6
21:55 * masak .oO( cook checkbook and balance pick-up dinner )
21:55 masak 'night, #perl6
21:55 colomon \o
21:55 census good night masak!
21:55 census masak++
21:56 cognominal joined #perl6
22:02 Targen joined #perl6
22:05 * colomon finished balancing the books for January, which he'd been meaning to get done for weeks, then noticed it is now March and there's another month's worth of balancing to go.  sigh.
22:21 cognominal joined #perl6
22:31 madhadder joined #perl6
22:48 jnthn 'night, #perl6
22:48 spider-mario good night
22:54 woolfy left #perl6
23:10 cognominal joined #perl6
23:32 labster joined #perl6
23:37 FROGGS joined #perl6
23:46 xinming joined #perl6

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

Perl 6 | Reference Documentation | Rakudo