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