»ö« 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.
sorear hello alester 02:34
alester howdy
anuxs whoami 04:48
quit 04:53
tadzik felher: why not? :) 07:15
moritz 1) time 07:16
2) memory
3) sanity
tadzik shh! It will probably find some new bugs :) 07:34
jnthn oh hai 08:02
jnthn is back from Taiwan
clkao jnthn!!
moritz oh hai jnthn
jnthn clkao: o/ 08:03
moritz jnthn: I hope you had a lovely journey with lots of good nom :-)
jnthn There was lots of good nom. :)
And OSDC.TW was nice :) 08:04
I hope my talks made sense :)
clkao good to hear from you. jesse and i went to some offroad places in hualien. wasn't able to get in touch with you
jnthn clkao: Yes, my devices and the Hualien wifi had...differences of opinion. :/ Sorry we didn't get to meet up again. 08:04
clkao oh well. at least you're back online again 08:05
jnthn Ah well, there's always next year's OSDC. ;)
I did make it to the Taroko gorge. It's *pretty*! 08:06
clkao \o/
tadzik hello jnthn 08:09
jnthn o/ tadzik
tadzik jnthn: what talks did you give? 08:13
jnthn The signatures one
And one on making compilers 08:14
Slides will be up later today
moritz jnthn: have you seen my last mail to p6c, regarding GSOC and 6model? 08:16
jnthn moritz: yes, just several minutes ago :) 08:17
moritz great
jnthn Will reply in a little bit - just sorting out a load of "I just got back" things :) 08:17
moritz sure, no hurry. Just wanted to ensure it's not lost, because student application is only this week iirc 08:18
tadzik yep, 8th is the deadline 08:18
moritz tadzik: so be sure to actually submit your proposal :-) 08:19
tadzik moritz: yeah, as soon as I make sure everything is tip-top :)
tadzik I'm still thinking about this parser-outside-Rakudo idea 08:21
tadzik a Role for the Grammar is not trivial, so the sanest thing will be to make it separate, and carefully integrate it (manually) into Rakudo. No magic, but it's still available for other implementations 08:23
tadzik at one moment it may turn out it's impossible to develop it outside, but the later the better I guess 08:24
oh, whatever, I tank too much :)
moritz tadzik: what you can do is to develop it as a separate class in the beginning (reduced compilation time)
tadzik yeah, the compilation time is what I'm mostly thinkging about for practical reasons 08:25
moritz tadzik: and mix in a role that supplies those rules that are normally available in the p6 grammar that you use (like <identifier>)
moritz tadzik: and then a small script that extracts rules and puts them into src/Perl6/Grammar.pm 08:26
and use the result as soon as you are working on the .WHY integration etc.
and $=THING variables
tadzik yeah
moritz: should I include all these thought in my proposal?
*thoughts 08:27
moritz tadzik: yes. Just make sure to prioritize them 08:27
tadzik what do you mean?
moritz (ie make clear what the more important end goal is, integrated rakudo or standalone) 08:28
tadzik oh, sure
jnthn fwiw, once 6model lands, mixing into a grammar should work just fine. 08:32
(Including Perl6::Grammar)
jnthn Now that I'm back from vacation, thing will get moving again on all of that work. :) 08:32
tadzik jnthn: Could you take a look at my GSoC proposal in some spare time? I'd like to know your opinion of it gist.github.com/892249 08:59
sorry guys for bothering you all with this :)
moritz speaking of bothering you all... 09:01
I've been thinking more about my exception grant
one thing that seems sensible is to separate the object that fail() returns 09:02
and the actual exception information
so fail() should return an object with a minimum of possible methods, so that accidental use as a value results in a new exception 09:03
let's call it Failure for now
jnthn $failure.exception # an accessor for the exception?
moritz yes
though I'd call it .EXCEPTION or so :-)
or .EX
bikeshedding
the important part is that I think a has-a relation is nedded
jnthn I've tended to hear Failure discussed as a role that gets mixed into things
(has-a) +1
moritz and that maybe CATCH blocks automatically unwrap those objects 09:04
wheres the real "meat" of the exception should be pleasant to work with (easy to stringify and query for properties)
jnthn CATCH blocks don't get invoked with a failure, though?
moritz hm 09:05
jnthn Not until it's used, and then it throws its exception?
moritz right
jnthn But then it's the usage of the failure that does the "unpacking".
moritz right
jnthn One issue that is worth considering is how we report these lazy errors. (more)
moritz $! could contain the inner exception 09:06
jnthn I suspect that you want to know where the exception woulda happened as well as where you actually caused it to happen.
moritz aye
that's where the dual list/item nature of exceptions comes into play
maybe that should really be a linked list
so what the user sees is "division by zero (silent) in sub divide_all (foo.pl:12) 09:07
rethrown in sub more-processing (foo.pl:42)
maybe an indented backtrace after each such message 09:08
jnthn Something like that. 09:09
moritz .u WITH SLASH 09:25
phenny U+2A0F INTEGRAL AVERAGE WITH SLASH (⨏)
moritz .u WITH STROKE 09:26
phenny U+26A6 MALE WITH STROKE SIGN (⚦)
perplexa .u SKULL 09:31
phenny U+2620 SKULL AND CROSSBONES (☠)
perplexa nice
jnthn
.oO( Please stroke this male )
felher tadzik: Nice try ;) No, i have to kill it because i was running out of memory after over a hour. :) 10:14
s/have/had
takadonet morning all 12:05
moritz hello takadonet 12:06
takadonet moritz: how's your girl?
moritz takadonet: a bit grumpy in the evenings, but otherwise quite lovely and healthy 12:07
takadonet good to hear
moritz and she has started to smile a lot, which is very rewarding :-) 12:08
takadonet I bet it is 12:11
colomon smiles++ 15:55
moritz indeed :-) 15:56
jnthn I did a talk at OSDC.TW that looked at building compilers with NQP and some basic 6model bits; slides: www.jnthn.net/papers/2011-osdc.tw-compiler.pdf and code: www.jnthn.net/papers/2011-osdc.tw-c...r-code.zip
It shows a much, much smaller scale compiler and how it is built up, which is probably nice for anyone wanting to dig in, but finding the size of Rakudo or NQP overwhelming :)
colomon btw, jnthn! \o/ 15:57
jnthn o/ colomon
jnthn is back from Taiwan
colomon \o/
moritz jnthn: how long was that talk? 15:59
moritz ah, I see it delays adding methods to classes 16:01
jnthn moritz: An hour.
jaywalker hi 16:11
moritz hi jaywalker 16:11
jaywalker i want to know about perl 6
moritz then you've found a good place to ask
moritz ... not very curious, it seems :-) 16:13
sjohnson haha
JimmyZ jnthn++, I love that pdf/zip, and I will save it to send some of my friends who are interested in it. 16:16
jnthn JimmyZ: Welcome :) 16:21
JimmyZ some of guys wanted to write an compiler for his ideal language, jnthn, you may be interested in perlChina conference in Beijing? 16:29
jnthn JimmyZ: When is it? Got a link? 16:31
[Coke] jnthn++ #presentation 16:35
JimmyZ jnthn, I don't have a link for it. but I can contact 16:36
jnthn , you have two subject talk in Taipei? 16:37
jnthn JimmyZ: I had two talks, one on Perl 6, one on compilers. 16:38
JimmyZ: But the Perl 6 one was the signatures talk, which I've given at other conferences, so I think most people here already saw that one.
JimmyZ: OK, feel free to pass on any info.
JimmyZ jnthn, I think you can submit these two talks to perlChina in beijing too. 16:41
parts of those guys are interested in your talk in Taipei, and enjoying your video talks 16:43
jdhore I hate to be "that guy", but is it just me or has Perl 6 appeared to have slowed to a crawl? 16:48
jnthn jdhore: You mean the speed it runs at, or the development? :) 16:49
jdhore the development
jnthn jdhore: Not really, but if you're watching just the Rakudo repository I can see why you'd get that impression. 16:50
jdhore: All my work at the moment (and of late) is going in at the compiler toolkit level, but it's directly applicable to Rakudo.
jdhore Well rakudo, parrot, perl6/*...all of them (parrot is fairly active, but it appears to be more minor cleanups than anything else)
JimmyZ well, I guess some guys are watching repository all the time. 16:51
jnthn perl6/nqp was being quite active...then its main committer had the audacity to take a vacation. :P
jdhore heh
masak jnthn! \o/ 17:13
jnthn masak!! \o/
masak !!!
jnthn: welcome back!
jnthn masak: Thanks! :) 17:14
masak jnthn: I count 89 minutes between you coming back on the channel and you making a pun. :P 17:17
jnthn Taiwan was awesome, though I have to admit it's nice to be able to cross a road again without nearly getting run over by five scooters in the process. ;)
masak: Yeah, I know, I'm jetlagged...it woulda been sooner otherwise ;P
masak ah, five scooters. hate when that happens.
jnthn: in your defense, it looks like low traffic on the channel this morning. :P
ooh, the compiler talk is up! \o/ 17:18
<jaywalker> i want to know about perl 6 17:19
...and then he disappeared.
guess the cops caught him crossing the street in the wrong place or something... :)
PerlJam jnthn: Just looked at that talk. The only thing unclear from the slides alone is how EXPR knows to call my <term>
jnthn PerlJam: EXPR knows to call <term>. The only reason it calls your one is because the default only declares a proto. 17:21
jnthn PerlJam: It also knows to call infix, postfix, and prefix, which are handled the same way. 17:22
term is no more magical than those :)
PerlJam jnthn: aye ... I'm just saying maybe a slide on that would be extra-nice :) 17:22
jnthn PerlJam: Aye. I think I explained it more.
PerlJam jnthn++ awesome slides
jnthn Maybe the video is clearer...
The real answer is we need good docs rather than just my talks for docs. ;) 17:23
PerlJam jnthn++ indeed!
:)
frettled jnthn: talk2tex? 17:37
rindolf Hi all. 19:03
masak hi rindolf.
masak rakudo: my %h = (); my @p = ((1..365).roll(30)).map: { %h{$_}++ }; say %h.values.max 19:59
p6eval rakudo 4bf132: OUTPUT«2␤»
masak rakudo: my %h = (); ((1..365).roll(30)).map: { %h{$_}++ }; say %h.values.max
p6eval rakudo 4bf132: OUTPUT«-Inf␤»
masak ah! 20:00
sink context not implemented yet?
niecza: my %h = (); ((1..365).roll(30)).map: { %h{$_}++ }; say %h.values.max
p6eval niecza v4-16-gef344df: OUTPUT«Unhandled exception: Unable to resolve method roll in class Range␤ at /tmp/LfE34nR9Pj line 1 (MAIN mainline @ 4)␤ at /home/p6eval/niecza/lib/CORE.setting line 1264 (CORE C525_ANON @ 2)␤ at /home/p6eval/niecza/lib/CORE.setting line 1265 (CORE module-CORE @ 39)␤ at
../home/p6eval/n…
jnthn masak: no sink yet 20:01
masak someone should pick some LHF in niecza. *hint hint*
jnthn We discovered that in Holland :/
masak jnthn: oh, *that's* what we discovered! :)
jnthn Well, we discovered many things :P
But that was one of them. :)
masak jnthn: I thought it was that Rakudo was bleeding memory all over the place.
jnthn masak: The reason was lack of sink context though. 20:02
It didn't have the context to know it could throw away things.
So it kept them for way longer than it should.
masak aĥ.
masak rakudo: DateTime.new 20:04
p6eval rakudo 4bf132: ( no output )
masak rakudo: DateTime.new; say "alive"
p6eval rakudo 4bf132: OUTPUT«alive␤»
masak if I want to convert from number base $base, but $base is not known until runtime, how do I do it in Perl 6? 20:20
moritz rakudo: my $base = 15; say :$base(12) 20:21
p6eval rakudo 4bf132: OUTPUT«invoke() not implemented in class 'Pair'␤ in main program body at line 22:/tmp/hRHu7cUgyF␤»
moritz hm
there was a way
masak rakudo: "123\n456".split("\n").map: { .comb } 20:22
p6eval rakudo 4bf132: ( no output )
masak rakudo: say ("123\n456".split("\n").map: { .comb }).perl
moritz rakudo: my $base = 15; say eval ":$base(12)"
p6eval rakudo 4bf132: OUTPUT«(("1", "2", "3"), ("4", "5", "6"))␤»
rakudo 4bf132: OUTPUT«invoke() not implemented in class 'Integer'␤ in main program body at line 22:/tmp/0_ZTA1K4Is␤»
moritz rakudo: say :16('12')
p6eval rakudo 4bf132: OUTPUT«18␤»
masak rakudo: say ("123\n456".split("\n").map: { .split }).perl
p6eval rakudo 4bf132: OUTPUT«No applicable candidates found to dispatch to for 'split'. Available candidates are:␤:(Mu : Regex $matcher, Any $limit = { ... }, Any :all($all);; *%_)␤:(Mu : Any $delimiter, Any $limit = { ... }, Any :all($all);; *%_)␤␤ in <anon> at line 22:/tmp/077qtem3hx␤ in 'Any::join'
..at lin…
masak ah. 20:23
slightly LTA error message for .split()
moritz rakudo: 'abc'.split
p6eval rakudo 4bf132: OUTPUT«No applicable candidates found to dispatch to for 'split'. Available candidates are:␤:(Mu : Regex $matcher, Any $limit = { ... }, Any :all($all);; *%_)␤:(Mu : Any $delimiter, Any $limit = { ... }, Any :all($all);; *%_)␤␤ in main program body at line 22:/tmp/4n7TZCyBfy␤»
moritz it tells you exactly what's wrong :-)
masak yeah. Rakudo's wrong. :P 20:24
masak refuses to see sense
moritz it tells you that you need a first positional argument 20:25
masak aye.
I guess my point is, what's so bad about letting .split default to splitting on every character, just like .comb does?
moritz feel free to add a () multi though, with a more awesoem error message
masak or just have it DWIM. 20:27
moritz doesn't find it intuitive that a split without arguments splits at each character boundary 20:28
masak ok.
in that case, I won't add it. and I'm not sure a better error message is needed either.
moritz it's just something you picked up somewhere, not something that makes sense by itself 20:29
masak moritz: actually, I'm going through a list of someone else's broken expectation. but yes, it's a fiver learning Perl 6. 20:30
PerlJam wonders what else an argumentless $str.split() would be expected to do ... 20:31
moritz the equivalent of .words maybe 20:32
masak or .lines
or it could split on nothing, giving the original string. :)
moritz right
on rx/ <!> / that is
masak *that* would be even more unhelpful than the current error.
PerlJam Well, the error message is LTA in any case. 20:33
Sure it says what's wrong, but in technical-ese instead of human.
:)
Eevee if there's already a .words, requiring an argument for .split seems plenty sane to me. just need less C++-y errors in general? 8)
masak PerlJam: hm, but that could be said of *any* multi misdispatch. 20:34
frettled rakudo: say 'abc'.split('')
p6eval rakudo 4bf132: OUTPUT«abc␤»
frettled rakudo: say 'abc'.split('').perl
p6eval rakudo 4bf132: OUTPUT«("a", "b", "c")␤»
masak \o/
frettled++
...and that's a good argument for making 0-arg split do the same as 0-arg .comb. I think.
PerlJam masak: indeed. You can take my opinion on this topic to mean that I think we should provide nicer errors where we can anticipate certain uses (Accidental or otherwise) 20:35
moritz note that argumentless split does something else in p5
masak: do you know where that expectation comes from?
masak moritz: no, but I know it's in the context of just trying stuff out.
moritz: the user was unable to diagnose the error himself, so he turned to me. 20:36
moritz compare
$ perl -MData::Dumper -we '$_ = "ab\nc d"; print Dumper [split]'
masak indeed. 20:37
let's not have that default behaviour :P
I can see how that makes sense for Perl 5, which was targeting an awk-y niche. 20:38
Perl 6 isn't, so it doesn't.
moritz perl 6 has .words for that 20:39
masak true or false? in your Rakudo REPL, executing `DateTime.new` causes the REPL to die with "===SORRY!===\ninvoke() not implemented in class 'Any'" 20:58
masak submits rakudobug 21:01
tadzik masak: wait 21:02
masak too late... :) 21:02
tadzik nopaste.snit.ch/39462
that's a stringification issue
masak yes.
tadzik well that's a bug as well :)
masak I already realized that was the case.
it's in the RT ticket.
but tadzik++ for confirming the ticket. 21:03
masak rakudo: sub sum { [+] @_ }; say sum 1, 2, 3 21:05
p6eval rakudo 4bf132: OUTPUT«6␤» 21:05
masak rakudo: sub sum { [+] @_ }; say (1,2,3).&sum
p6eval rakudo 4bf132: OUTPUT«6␤»
masak \o/
masak rakudo: sub sum { [+] @_ }; say (1..10).roll(10).&sum 21:06
p6eval rakudo 4bf132: OUTPUT«53␤»
masak good night, #perl6. 21:07
sorear good * #perl6 22:30
sorear jnthn: Welcome back! I want to talk MMD and 6model later 22:33
jdhore: I've been fairly busy lately myself... 22:34
jasonmay sorear: you coming to yapc? 22:40
sorear jasonmay: no 22:42