»ö« | perl6-projects.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by moritz_ on 30 July 2009.
frettled TimToady: so that instead of do {…}_, we'd have _autoindex {…}_, or am I Not Getting It? 00:02
(yow, run-away underlines)
arthur-_ /me wants to convert a Str to a Regex ( with interpolation ) but don't find in S05
00:03 TimToady sets mode: +oooo [particle] frettled cognominal japhb, TimToady sets mode: +oooo kolibrie Limbic_Region mberends s1n, TimToady sets mode: +o sjohnson
TimToady frettled: that would be the basic idea, but perhaps the blockless form would not make sense 00:03
frettled Mm, I don't think it would make programming life easier to do so. 00:04
TimToady arthur-_: /<$string>/ if you don't want \Q semantics 00:05
but nyi in rakudo
frettled same goes for autoindex, I see :)
TimToady nobody implements S09 yet
not even the "easy" bits :) 00:06
frettled hee-hee
Fortunately (for me, anyway), I don't yet have enough Perl 6 or rakudo clue to fix that. 00:07
eternaleye Ya know, if do { @out[$^k,$^j] = @in[$^j,$^k] } is what we're looking for for 2d arrays, maybe we could define it as do { @out[@in.shape.rotate] = @in[@in.shape] } ? 00:08
00:08 tak11 left
frettled or just @out.transpose ;) 00:09
TimToady has to go and play drums &
eternaleye s:1st:2nd/,/;/
frettled :)
arthur-_ TimToady: thx
eternaleye frettled: I mean what we define .transpose to be in code 00:10
That way .transpose is defined on multi-dim arrays
frettled eternaleye: sorry, I just wanted to joke a bit. But yes, that would be one way to see it.
I'm not sure that transposing on multi-dim arrays makes sense without a parameter set to transpose.
eternaleye frettled: Quite possible. I'm still very early in my mathematical education (just finished derivatives and integrals last year) 00:11
frettled I think that «rotate» would seem more understandable as a term then, but I suppose a mathematician would then proceed to file off my fingers with wet celery. 00:12
00:12 ascent_ left
eternaleye frettled: Well, we aready have a .rotate 00:12
00:12 ascent_ joined
eternaleye And really, rotating two elements is transposition 00:13
frettled Yes, .rotate is for bits or something.
eternaleye frettled: .rotate is defined on arrays, I remember that from the Josephus discussion
frettled Ah, for lists it's the same as rotating bits in a byte. 00:14
Sensible in a computer science kind of way.
eternaleye: but to «transpose» a 3D array, we'd have to say which way, since it can be «transposed» in two dimensions. 00:15
In general, the similar operation to transposition has N-1 dimensions for an N-dimensional matrix.
eternaleye frettled: Well, the code I wrote abvove would do x->y y->z z->x
frettled Yes, but x->z, z->y, y->x would be different. 00:16
and still valid :)
eternaleye Rather than rotating elems, it rotates dimensions
frettled: Hm, yes 00:17
Well, .rotate takes an integer parameter, so we could pass that from outside - -1 would DWYM, and 0 or +(@in.shape) would be identity
frettled and we could pass it a list to handle multiple dimensions? *g,d&r* 00:18
eternaleye frettled: Well, we're rotating dimensions rather than elements. Unless you can find a way to have dimensions of dimensions (looser that ';' 00:19
frettled: Well, we're rotating dimensions rather than elements. Unless you can find a way to have dimensions of dimensions (looser than ';'?), that wouldn't have any meaning 00:20
frettled I was about to suggest, though, just after I mentioned «use Mathematica», that making use of GNU Octave might be a win for stuff like this.
eternaleye frettled: Yeah, but the bindings might be somewhat painful
frettled SMOP :) 00:21
00:21 stimpi joined
eternaleye heh 00:21
00:23 ujwalic left 00:24 unitxt left
frettled Octave wouldn't be useful for bindings as much as either inspiration or blatant copying of features into a Perl 6 compiler/interpreter. 00:24
00:24 unitxt joined
frettled Heh. Hehe. 00:26
eternaleye: Speaking of bindings, see search.cpan.org/dist/Inline-Octave/
eternaleye nice
00:29 meppl left 00:30 stimpi left
frettled Good night! *idle* 00:32
pugs_svn r27986 | ujwal++ | Added myself to AUTHORS 00:41
00:42 ujwalic joined, ujwalic left 00:48 KatrinaTheLamia joined 00:49 mersel left 00:51 tak11 joined 00:57 winthrowe left 01:07 KatrinaTheLamia left 01:13 helper joined 01:15 Whiteknight left 01:37 ilbot2 left, ilbot2 joined 01:43 KatrinaTheLamia joined 01:48 xinming_ left 01:51 xinming joined, mintsoup left 01:52 helper left 01:55 rdice left 01:56 meteorjay joined 01:57 japhb left 01:58 sri_kraih_ joined 02:01 xinming_ joined, sri_kraih left 02:07 xinming_ left 02:11 xinming_ joined 02:13 xinming left 02:21 japhb joined 02:26 tann left 02:34 xinming_ left 02:36 xinming joined 02:44 KatrinaTheLamia left 02:46 DakeDesu joined 02:51 DakeDesu is now known as KatrinaTheLamia 02:53 oxygenfad joined 03:02 tarbo2_ joined 03:14 Limbic_Region left 03:19 molaf joined 03:20 donaldh left, donaldh joined, ihrd left, ihrd joined 03:29 molaf left 03:39 wayland76 joined
wayland76 ping jnthn 03:41
phenny wayland76: 12 Aug 06:34Z <moritz_> tell wayland76 every pugs committer can also invite new committers at commitbit.pugscode.org/admin/project/Pugs/people (it's not a special power of mine)
wayland76 phenny: tell jnthn The least we could do for Ian Hague is spell his name right in posts on the Rakudo website. www.rakudo.org/node/51 03:42
phenny wayland76: I'll pass that on when jnthn is around.
03:48 sri_kraih_ left 04:02 sevvie joined
pugs_svn r27987 | kyle++ | [t/spec] begin cleansing of eval and todos that should skip 04:05
04:12 oxygenfad left 04:14 RonOreck left 04:20 kane_ left 04:22 kane_ joined 04:28 sevvie left
pugs_svn r27988 | kyle++ | [t/spec] fix todo test that should skip 04:30
04:31 eternaleye left 04:35 kane_ left 04:36 eternaleye joined 05:10 KatrinaTheLamia left 05:11 tann_ joined 05:14 KatrinaTheLamia joined 05:15 tann___ joined 05:23 szabgab_ joined 05:31 szabgab left 05:32 tann_ left 05:34 rfordinal joined 05:39 frew__ left 05:42 finanalyst joined 05:45 orafu left 05:46 orafu joined
japhb phenny tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships. Do you have an updated list of the features you expect NQP to support around that time? Is this even reasonable? 05:53
phenny: tell pmichaud I'm thinking of writing the Parrot module install tool in NQP -- or rather, write it in Perl 6 using the subset that NQP will support around the 2.0 time frame or so, with the intent of being able to use NQP to compile it when 2.0 ships. Do you have an updated list of the features you expect NQP to support around that time? Is this even reasonable?
phenny japhb: I'll pass that on when pmichaud is around.
japhb sigh, forgot the colon first time.
05:58 guest_007 left 06:08 ihrd left 06:16 __ash__ joined, __ash__ left 06:24 rfordinal left, jaldhar joined 06:25 justatheory joined 06:35 tak11 left
wayland76 japhb: Interesting idea. One of my currently stalled projects is something that worries about different package formats (P6 of course) 06:50
japhb wayland76: do tell 06:51
wayland76 Well, it has an object that models metadata 06:53
And if you can feed the metadata into the object...
...then it will (in theory) spit it out in various different packaging formats 06:54
I personally only plan to support RPM, but I'm intending to make it flexible enough that anyone can use it
japhb Ah so.
wayland76 The problem is, I wrote it in P5, and converted it across, and now I can't find the bugs very easily because Rakudo tells me what line they're on, but not in which file :) 06:55
japhb There is mention in the Parrot module ecosystem proposal that the metadata spec include enough information that automated tools (like yours, say) could generate RPM, DEB, etc.
wayland76: heh
wayland76 I had a skim over that 06:56
japhb Any comments?
wayland76 Only that I've seen more proposals than work in this area, and that, as long as I can convince people to use my package modelling stuff, I'm not too fussed with the rest :)
For example, when we said on p6l "Lets discuss packaging/CPAN", it turned out that the 4 most interested people were interested in different parts of the problem 06:57
japhb Getting enough agreement on the basics and then writing the proposal was exhausting. I'm attempting to pace myself. :-)
wayland76 Like I said, though, I only skimmed it 06:58
There are all kinds of cool ideas that could be tried, but as long as it's heading somewhere flexible, I'm happy :)
(If I tried to keep up with everything in the Parrot and P6 communities, I'd have no time to code :) ) 06:59
japhb What I heard privately was that some previous proposals seen over here (#perl6) weren't going to fly over there (#parrot), so I worked from scratch except for cribbing some of the metadata keys from existing CPAN META.yml/json keys
NODNOD
07:00 rfordinal joined
japhb One nice thing is that masak has already produced a simple prototype of an easy install tool, so I can look at what's good and bad with that. 07:01
07:01 justatheory left 07:03 kane_ joined
wayland76 It would also be cool if all these things would integrate properly with package meta-managers (ie. apt and yum) 07:05
For example, we go "yum install foo-perl-package", and it downloads, compiles, installs, etc :)
I admit it's unlikely, but it's nice to dream 07:06
japhb I'd actually see it in reverse: 'plumage install perl:Foo' looks to see if 'foo-perl' exists as a system package, and offers that. Otherwise, fetch, build, install. (Note to backloggers: NOT A FIRST RELEASE FEATURE! ;-) 07:07
wayland76 japhb: That would be nice too. There's no reason both ways couldn't work :) 07:08
japhb :-)
Tene in RH distros, it's more likely to be perl-Foo
Tene now has 256-color support working in ncurses in rakudo. 07:12
The following loop runs far too slowly. 07:16
for 0..255 X 0..255 { say "$^a - $^b" } 07:17
rakudo: for 0..255 X 0..255 { say "$^a - $^b" }
p6eval rakudo 0d4fe0: ( no output )
japhb timeout!
You know, the evalbot should *say that*
moritz_ japhb: patches welcome 07:18
japhb I knew you were going to say that.
moritz_ ;-)
then you already prepared a patch? ;-)
japhb Given that I'm having trouble focusing my eyes right now, that's probably unwise. ;-)
moritz_ you're excused 07:19
;-)
wayland76 Tene: I'm a Fedora user myself, so I know these things :)
07:20 donaldh left
moritz_ anyway, p6eval is a quick hack upon which way too many quick hacks have been built 07:20
07:20 donaldh joined
Tene wayland76: I'm just nitpicking. 07:21
Matt-W Morning
moritz_ good day Matt-W 07:22
07:23 jkva left
wayland76 Tene: Yah, I know. You'd have to have a "Redhat package name to Perl package name converter", and a separate one for Debian 07:23
Matt-W hi moritz_
07:24 kent\n joined
wayland76 moritz_: Are you referring to STD.pm as one of the major implementations? 07:25
moritz_ wayland76: yes
wayland76 Ok, my confusion is dispelled. I don't like enspelled confusion :) 07:26
07:27 synth left 07:30 rfordinal left 08:03 iblechbot joined 08:05 frederico left 08:29 pmurias joined 08:30 meppl joined 08:34 masak joined
masak aloha, #perl6. 08:34
rakudo: ((Temporal::DateTime.new(:date(Temporal::Date.new(:year(2010), :month(4))), :time(Temporal::Time.new)).epoch - time) / 86400).ceiling.fmt('%d days left until April!').say
p6eval rakudo 0d4fe0: OUTPUT«230 days left until April!␤» 08:35
moritz_ oh hai
moritz_ has another weekend without internet access before him 08:36
masak nice.
moritz_ depends ;-)
it's certainly more productive, but I have to live with the withdrawal symtomps ;-) 08:37
masak I'm sure you'll make it through. :P 08:38
moritz_ so far I always did ;-)
masak <hume>yeah, but...</hume>
08:42 tann___ left 08:46 EDevil joined 08:49 kane_ left 08:57 zamolxes left 09:01 explorer joined
masak まじで? "Perl 6、2010年4月登場 | エンタープライズ | マイコミジャーナル" 09:02
I don't know what it says, but it's kinda warming to see people being expectant in Japanese. 09:03
09:03 explorer left
masak three days ago, there was some kind of Twitter surge of Japanese news on "Perl 6, April 2010". 09:04
huf ;))) 09:06
perl6 for kurisumasu
masak apparently 'まじで?' means 'for real?' 09:09
in a way, Rakudo Star is a big stage play to show to the world that, yes, Perl 6 is for real. 09:10
it's not really a more special release than the other ones, but we're making it special by saying "by this point, it will be worthy of your attention". 09:11
moritz_ masak: it kinda is special. We never had a roadmap before with time estimates, and a good reason to stick to it 09:12
wayland76 We've had time estimates before :) 09:13
They were wrong :)
moritz_ that's why I said "and a good reason to stick to it"
wayland76 I figured that :)
masak it's definitely an ambitious time plan before April. 09:15
I wouldn't be surprised if we'll have to compromise on some of the features slated for April.
(but it's still a very good idea to have set a concrete goal) 09:16
are there visitor statistics for rakudo.org and perl6-projects.org ? 09:18
09:19 PacoLinux left, zloyrusskiy joined
moritz_ I could assemble some for p6p 09:19
09:20 PacoLinux joined, pmurias left
wayland76 Are we planning to spend the last month before Rakudo * killing bugs instead of implementing features? 09:21
moritz_ plans to continue his testing effort
09:22 guest_007 joined
masak wayland76: depends on the state of the ROADMAP at that point, I assume. 09:22
moritz_: I had something like this in mind: github.com/masak/web/graphs/traffic 09:23
09:24 Su-Shee joined
Su-Shee good morning. 09:24
masak Su-Shee: o/ 09:27
Su-Shee o/􏿽xB0 <-- waving with a coffee-pot in the hand. ;) 09:29
moritz_ masak: moritz.faui2k3.org/tmp/p6p.html 09:30
masak moritz_++
and interesting results, too!
masak couldn't see Su-Shee's coffee-pot because of differences of encoding 09:31
moritz_: the 07/Aug surge I can understand, but what happened on 23/Jul? :) 09:32
Su-Shee masak: oh - was just the small "degree" circle, nothing special.
masak ah. 09:33
moritz_ masak: no idea
wayland76 hopes Su-Shee spills no coffee :) 09:39
masak: re: ROADMAP, in other words, no we won't, unless we agree to it now :)
09:39 zamolxes joined
masak wayland76: we won't what? 09:40
wayland76 masak: 23 July was people going there 3 days before my birthday to see if tyhey could find present ideas :)
masak: won't spend the last month fixing bugs instead of adding features
masak ah.
wayland76: it's more like, when March rolls around, what's most important? 09:41
might be bugfixes, might be making that last feature fall into place.
agreeing to it now makes little or no sense by me.
wayland76 masak: Well, I agree, but maybe we should agree that it's a good idea in theory now :) 09:42
masak yes, it sounds like a good idea. 09:43
I just think it'll be fairly self-regulating.
wayland76 Yeah, good point :) 09:44
(re self-reg)
Did people see that Parrot has had lots of features removed this time? 09:46
Well, I guess there's no point me saying that -- the people who care already know :)
masak aye, because 1.4 was a milestone release of some kind.
and the Parrot team remove deprecated things after milestone releases.
09:52 PacoLinux left 09:55 [particle]1 joined 10:01 eternaleye left 10:02 pmurias joined 10:03 eternaleye joined 10:09 tomaw_ left
mikehh rakudo (0d4fe08) builds on parrot r40543 - make test/make spectest (up to 27988) PASS - Ubuntu 9.04 amd64 10:10
10:11 tomaw_ joined 10:14 [particle] left 10:18 rafl_ joined 10:20 omega_ joined 10:23 Maddingu1 joined 10:27 Maddingue left 10:28 Su-Shee left 10:32 omega left 10:35 renormalist left, rafl left 10:36 rafl_ is now known as rafl 10:43 payload left
masak Ruby has a method Kernel#autoload, which registers a file to be loaded (with 'require') the first time a given module is accessed. in other words, a lazy version of 'use'. 10:51
would it be possible to simulate something like that in existing Perl 6? 10:52
10:52 szabgab_ left 10:58 szabgab_ joined 11:06 masak left
jnthn o/ 11:11
phenny jnthn: 03:42Z <wayland76> tell jnthn The least we could do for Ian Hague is spell his name right in posts on the Rakudo website. www.rakudo.org/node/51
jnthn wayland76: Good catch, fixed (typo most likely). 11:13
11:16 renormalist joined
moritz_ funny thing is, if you google for Ian Hague the first hit is from perlbuzz ;-) 11:17
szbalint good karma :) 11:18
11:20 donaldh left, donaldh joined 11:27 explorer joined 11:29 donaldh left 11:40 masak joined 11:46 molaf joined 11:47 meteorjay left, meteorjay joined 11:49 rdice joined 11:50 payload joined 11:54 molaf left 11:57 BinGOs left 11:58 BinGOs joined 12:00 molaf joined 12:09 masak left, takadonet joined
takadonet morning all 12:09
12:18 Maddingu1 is now known as Maddingue 12:19 ruoso joined
pmurias ruoso: hi 12:20
ruoso: what flags do you pass to Configure?
moritz_ rakudo: say %*VM.keys 12:23
p6eval rakudo 0d4fe0: ( no output )
moritz_ rakudo: say ~%*VM.keys
p6eval rakudo 0d4fe0: ( no output )
ruoso pmurias, the only flag I defined was -DSMOP_INTEGRATION
but we still need the smop sources to be compiled inside the perl sources
moritz_ rakudo: say %*VM.perl 12:24
p6eval rakudo 0d4fe0: ( no output )
moritz_ rakudo: say $*VM.perl
p6eval rakudo 0d4fe0: ( no output )
moritz_ rakudo: say 2
p6eval rakudo 0d4fe0: ( no output )
szbalint uh-oh :)
moritz_ something is very broken.
pmurias ruoso: i hand hacked them into the build system... testing now 12:27
ruoso pmurias, coool 12:28
moritz_ rakudo: say 1
p6eval rakudo 0d4fe0: OUTPUT«1␤»
moritz_ rakudo: say %*VM<config><infodir>
p6eval rakudo 0d4fe0: OUTPUT«/home/evalenv/p2/info␤»
12:30 masak joined
takadonet hey masak 12:32
moritz_ speaking of masak... did anybody adjust proto to work with an installed parrrot? or no adaption necessary? 12:33
masak moritz_: no-one has yet. I should at least test it, I guess.
moritz_ has a secrit plan for world domination, to be prototyped over the weekend 12:35
12:36 omega_ left 12:37 omega joined
Infinoid if I suddenly feel dominated, I'll know the prototype worked 12:38
moritz_ masak: does SVG.pm work as advertised in the Pod? (ie with :[...]) 12:41
12:41 szabgab_ left
masak moritz_: barring the recent Rakudo bug, yes. 12:42
moritz_ aka "no" ;-)
jnthn Where recent Rakudo bug = a regression? 12:43
masak jnthn: not sure, but I think so.
the SVG.pm example used to work. I'm sure of that. 12:44
moritz_ and pmichaud already spent a day trying to fix it, or so
12:45 |theJackal| joined
masak moritz_: I should perhaps add a note in SVG.pm on how to work around that bug. 12:45
jnthn RT#?
moritz_ can't find it 12:48
masak: your call
masak it's can't hurt. 12:50
s/'s//
frettled Statement not terminated properly at line 1, near "\n" 12:51
;)
12:51 araujo left
wayland76 moritz_: You realise that anyone who feels dominated over the weekend is now going to blame you, whether your plan succeeds or not? :) 12:54
pmurias ruoso: would we lose anything by storing the files like smop-s0native-idconst.c? 12:55
moritz_ wayland76: I can live with being blamed. Actually I thought about starting a company that takes money for being blamed random things ;-)
ruoso pmurias, I've been thinking about it.. I think we can simplify it.. at least for this core smop modules
wayland76 moritz_: The drawback is, people would sue you when you took the blame :) 12:56
12:56 eiro joined, eiro left
frettled wayland76: naaah, not if the T&C make it clear that you agree to indemnify and hold harmless $company 12:57
wayland76 At least these days
moritz_ wayland76: I'd only take the moral blame, not the legal
frettled So you're free to _blame_ them, but they won't take responsibility. :D
12:57 explorer left
wayland76 Ah, ok, moritz_'s solution might work. frettled's I'm not so sure about :) 12:57
Because if A pays you and you take their blame, then B might sue you instead of A 12:58
frettled Nono, moritz_ didn't say that he'd _take_ the blame.
He said the company would take the _money_ ;)
wayland76 Oh, got it :)
However, the kind of people that would hire you would probably get you in trouble in the end for receiving stolen funds or something :) 12:59
wayland76 can't wait for a new, multi-core computer, where my web browser won't take 95% of the CPU :) 13:00
moritz_ hey, multicore is the only way in which a browser can take up more than 100% CPU ;-) 13:01
frettled mm
wayland76 Well, yes, but my new desktop is going to be dual Xeon. That should solve the problem :)
Oh, did I say it takes 95% CPU and *also* hasn't responded in over 2 minutes? :) 13:03
13:03 kent\n left
moritz_ maybe you should open less tabs :-) 13:04
wayland76 ³‘¤¾½€¼ single-threaded browsers
I don't know how to open less tabs, but I could open fewer tabs :)
masak wayland76: you should see my browsers. here tabs truly are an uncountable. :) 13:05
wayland76 Well, I only have 2 windows at the moment, with about 8 tabs each
frettled that's not much. 13:06
wayland76 I'm sure I've gone double that both ways (ie. quadruple tabs) in the past
masak wayland76: I just restarted Firefox here. had to go offline, because it can't load the 2k tabs into memory all at once.
wayland76 Yeah, I think one site has some misbehavoiur
frettled I cleaned up my Firefox thingy the day before yesterday, went from around 130-150 tabs to 20-ish.
moritz_ masak: maybe should queue links, not tabs? 13:07
frettled But Firefox 3.5.x is _really_ unstable for me, no matter what I do.
masak moritz_: well, that becomes the effect, no? :)
wayland76 Well, I had trouble with my DVD Burner today, and rebooted, so my tabs are still low :)
frettled masak: two thousand? holy schmoly
wayland76 I'm actually using Seamonkey :)
moritz_ masak: but links instead of tabs would be a bit more resource friendly
masak frettled: I know. it's Twitter's fault. after I started using it, my number of tabs experience a net growth each day. :/
frettled I'm using Opera (or Safari) to view the synopses, because Firefox can't take'm.
masak moritz_: yes. still looking for a system that does that well for me. 13:08
wayland76 Speaking of tabs, Get FREE Cia1is Tabs NOW!!! :)
frettled heh
masak doesn't even know what Cialis is
frettled wayland76: TYVM for getting the webserver with the IRC logs spamlisted ;)
masak: it's the active ingredient in Viagra, I think 13:09
wayland76 I think the KDE browser has the same backend as Webkit
frettled masak: at least it seems to crop up in lots of Viagra related spam.
moritz_ wayland76: no, KHTML vs. webkit
masak frettled: ah, convenient -- only buying the active ingredient.
frettled masak: hee-hee 13:10
moritz_ they had a common source, or merged at one point, but are diverging again today
13:10 [particle]1 is now known as [particle]
wayland76 masak was the one who said it in cleartext :). Cialis is a drug that presumably comes in tablet form. When I was fiddling with a spam filter for an ISP years ago, we got e-mails with subject lines that bore some resemblance to what I posted 13:10
frettled wayland76: yes, but spam filters check for the obfuscated versions, since that's what spammers use. When doctors and patients communicate, they use the real names. :D
wayland76 moritz_: Thanks.
[particle] frettled: it's a competitor to viagra. different company, similar drug
wayland76 [particle]: I think it was masak that asked that :) 13:11
frettled [particle]: aha! Now why would you know that? :D
wayland76 "So what did you do today son?" "I hung out on #perl6 and talked about drugs"
[particle] because i'm an american consumer, bombarded by television ads. 13:12
Matt-W for some reason, it's also more popular as a fake drug for spammers to 'sell'
wayland76 Btw, one thing I found while fiddling with the spam filter -- the word "specialist" contains the word "cialis"
And I accidentally blocked someone from sending an e-mail with the subject line "My wife needs to see a specialist" :) 13:13
Matt-W doh 13:14
spam filtering is a difficult thing
masak always liked Graham's "A plan for spam" 13:15
he makes it seem so easy!
13:15 pmurias left
Matt-W yeah 13:15
but the spammers read it too
moritz_ there are many words in german that contain 'sex' as a substring but have nothing to do with sex - many of them accounted for much trouble for the earliest adult filters 13:16
wayland76 I don't get much spam. My e-mail gets filtered by both pobox.com and by my local mail provider 13:17
I also liked the solution to Alan Ralsky or whatever his name was
frettled [particle]: my heartfelt sympathies -- I try to avoid looking at TV too much myself. 13:18
wayland76 The only TV on this property is in my sister's room. And we grew up without one. A the joy of missing cultural references :)
[particle] frettled: they air mostly during live televised sports events, of course 13:19
masak no TV here either.
frettled [particle]: heh :) 13:20
masak: statistical filtering has been implemented in several popular anti-spam engines for years.
wayland76 Well, I don't like watching sport either, so I'm doubly protected :)
jnthn has a TV in his appartment, but only because it was there when he arrived.
wayland76 lends jnthn some virtual pliers :)
masak frettled: I'm sure it has.
jnthn I thought I'd make use of it watching the Euro football stuff last year, but in reality I couldn't find it on there and ended up streaming it over the net instead... 13:21
jnthn rarely watches football. Just one championship every two years. ;-)
wayland76 thinks football = Australian Rules Football 13:22
[particle] fc barcelona played here last week, i went to the game. they're stunning.
jnthn usually watches the world cup and the european cup.
That tends to be about it in terms of what I actively seek to watch. Of course, sometimes I'll end up in a pub showing a game... 13:23
frettled masak: Mail::SpamAssassin is the most popular one, and predates Graham's article by around five years. CRM114 is a language for describing filters (pretty cool), but that's a bit more recently developed (2003 and onwards). There's a third one I can't recall the name of also.
Filtering spam is easy. Losing the false positives isn't. 13:24
jnthn peeks at the latest p6l filename literals discussion
wayland76 Cool. I didn't know Mail::SpamAssassin predated Graham's article :) 13:25
masak frettled: I'm no expert, but I liked the simple theory behind Graham's Bayesian filtering. that's all.
frettled jnthn: that discussino had me confused
«discussino» - that almost looks Italian
wayland76 confused in what way? Considering that I wrote some of it :)
moritz_ masak: the theory is simple. The hard thing is getting the spam text to a level where you can apply the theory (decide what a word is, finding a way to efficiently store seldomly used words, transforming images into somethiing that filterable etc.) 13:26
13:26 donaldh joined
PerlJam so ... one of you implemented this in perl 6? :) 13:26
jnthn The most interesting thing I see in there so far is the ideas of a different quoting construct for filenames...so we can somehow distinguish them from strings...
masak moritz_: ack. 13:27
PerlJam (good $localtime btw)
Matt-W jnthn: yes I do quite like that idea. After all, they aren't strings... although I'm not entirely sure I agree with the poster whose name escapes me who argued that we're primarily interested in the contents of a file, because you're often also interested in the presence and permissions and state of a file too
moritz_ wonders how we'll solve the problem that most OSs store file names as bufs, not Str
frettled wayland76: Well, it's not entirely your fault, but the discussion immediately forked into differences between Unix and Windows, wheter to use an URL-like scheme, backslashes vs. slashes, and a meta-something about how «most people» don't need to know the filenames. 13:28
13:28 EDevil_ joined, EDevil_ left
frettled Is that «explosive bikeshedding»? 13:28
PerlJam is reading the IO thread now
jnthn It'd help if people could remember that there *is* no root of the filesystem on Windows.
frettled jnthn: I also thought that the idea about a different quoting construct was interesting. 13:29
jnthn Well, other than the empty string..
frettled jnthn: mm
jnthn ;-)
masak Matt-W: I haven't heard anything about Form in quite a while. have you stopped hacking on it?
frettled I've refrained from commenting on the mails because I don't know where to start.
Six mails, and we're already at warp 6. 13:30
wayland76 I completely disagree with the person who commented that we're mostly interested in the contents of a file
Matt-W masak: I haven't done anything for some time. I've sort of got a plan for the next stage, I just need to find some tuits.
wayland76 (please await my withering reply to the IO thread :) ) 13:31
frettled wayland76: so it's not just me, then :D
moritz_ if we stopped painting bikesheds and sold all the paint we saved that way, we'd have enough money to hire a few full time programmers
Matt-W jnthn: yes that would be a helpful remembering
masak Matt-W: will it help if I alternately encourage you and prod you with something sharp? :P
Matt-W might write a reply to it later if he can think of a useful contribution
masak: I'm not sure about the prodding me with something sharp
wayland76 masak: Use a carrot -- it can be used for both :)
moritz_ ... or retribution ;-)
masak I'm getting a Null PMC access when running t/spec/S03-operators/autoincrement-range.rakudo
frettled I'm thinking that too much syntax is _bad_ for this IO stuff. 13:32
masak anyone else also get that?
I'm getting it after test 33.
frettled Adding URL classes should be avoided unless we want things to be fetched by something other than fopen()-like methods, IMO.
moritz_ rebuilds Test.pir to run it
wayland76 frettled: Agree, but the special quoting construct solves the main problem in the Draft IO specs as they currently stand
moritz_ masak: works fine here.
Matt-W it might be nice to have a binary operator for concatenating paths
but that could go in with pretty much any other solution 13:33
moritz_ wanders off for a weekend without internet access
PerlJam moritz_: have fun!
frettled moritz_: enjoy!
moritz_ thanks, you too ;-)
masak moritz_: have a nice weekend!
Matt-W bye moritz_
frettled wayland76: in what way? 13:34
wayland76 frettled: To me, the current problem was that creating an IO::FSNode is currently ugly. Separate quoting syntax would fix that. 13:37
frettled Aha.
wayland76 It would also make it reasonable to put things like :e on FSNode instead of Str 13:38
(Which was an area in which the draft IO spec wasn't very consistent with the rest of the specs) 13:39
frettled I agree that filenames could reasonably be a subclass of Str, with methods that are irrelevant to Str.
Then again, the methods could be role-based.
wayland76 I'm not sure whether it should be a subclass, or a role, or a "has Str $.name" or something
And since I'm not sure, I'll leave that to be answered by someone more intelligent 13:40
frettled Heh
You could raise the issue, though.
There are good arguments to be made for several of the solutions.
Matt-W It's not a subclass of Str 13:41
13:41 payload left
Matt-W at least not as far as I see it 13:41
wayland76 Oh, it's already been raised by people who sound like they know what they're talking about. I haven't heard the role idea yet, but it's your idea, so I'll leave it to you :)
frettled As long as I can do tricks on lists/arrays of strings/filehandles/whatnot, I don't mind.
wayland76: It's easy to seem to know what one's talking about.
13:42 sri_kraih joined
frettled I was accused of knowing stuff about parametrized roles back at the NPW hackathon; apparently I came with some input that proved to be useful. 13:42
wayland76 frettled: Yeah, I'm aware of that, but since I don't, I'll stick with your position (being able to join strings and filenames and stuff :) )
frettled :D
wayland76 Interesting. I thought they were just for greeting people in Slovak and LOLCat :) 13:43
frettled In Unix, filenames as strings is really easy, you just have to avoid the slash and the null byte. ;
wayland76 jnthn: My current Rakudo (head of the ins2 branch I think) does a beautiful job of locating which line the error is on, but it doesn't tell me which file it's in. Is changing this something that is relatively easy? 13:44
13:44 zamolxes left
jnthn wayland76: That's odd, it normally tells if it knows. :-S 13:44
wayland76 frettled: But how do you know which locale to apply?
jnthn: Ok, I'll keep that in mind as I hunt a particular bug. 13:45
13:45 EDevil left
jnthn wayland76: If you can reduce to a small test case where it's missing, I'd be interested to see it and work out why it's missing a filename. 13:45
wayland76: One thought - is it inside an eval? 13:46
wayland76 jnthn: Have I asked you about role predeclarations yet?
jnthn wayland76: Moze byt. ;-)
wayland76 jnthn: Not sure -- I stopped working on the project a week or two ago for various reasons
Moses bites?
jnthn wayland76: I know role Foo { ... } doesn't work yet. But if there's more than that...
wayland76 No, that's the one
jnthn Ah, OK. Then you probably did. :-) 13:47
wayland76 Actually, it's all coming back. I asked. Sorry.
Let me ask a different question -- what part of Rakudo deals with predeclared subs?
(ie. matches them up with the real thing?)
masak ah, my bug in autoincrement-range.rakudo was related to try blocks and not having ICU installed.
masak submits rakudobug
frettled what else is new? :)
wayland76: locale? huh? I think I must have fallen off the wagon back there. 13:48
13:48 Guest62163 left, carlin joined
wayland76 frettled: It's impossible to determine how to display a non-ASCII filename correctly unless you know the encoding/locale stuff 13:48
Because some are not UTF-8 :) 13:49
I don't know stuff about filenames, I just read part of a Tom Christiansen post on it :)
Matt-W filenames are far more confusing than they have any right to be
we should certainly provide as much ease of use for them as we can
PerlJam wayland76: Is that's like staying at a Holiday Inn Express?
frettled wayland76: ah, displaying them, yes. 13:50
Matt-W works in the same building as a holiday inn express
wayland76 frettled: you see it mentioned above wheremoritz said: moritz_ wonders how we'll solve the problem that most OSs store file names as bufs, not Str
13:50 Front_slash joined
PerlJam "I'm not a doctor, but I read a diatribe about doctors by Tom Christiansen" 13:50
wayland76 PerlJam: It might be, if I knew what the significant features of a Holiday Express Inn were :)
PerlJam wayland76: there's these commercials where non-expert people are in expert situations, but everything is okay because they stayed at a Holiday Inn Express last night. 13:51
wayland76 PerlJam: I'm merely pointing out that if it appears like I know stuff and have thought through the issues, it simply means that I've skimmed something by someone who has, and can parrot (pun now intended :) ) back a few phrases that I remember 13:52
frettled wayland76: Well, «buf» isn't exactly a type in itself. But that goes back to what I said about the null byte. The null byte acts as a string terminator and thus ends the filename. Slashes (in Windows: backslashes) are semantically ingrained as directory separators, and no amount of escaping will allow them.
wayland76 PerlJam: Well, if I had a TV and lived in the USA, I guess I'd know these things :)
PerlJam wayland76++ way to use the laziness!
wayland76 "Most people get good Karma for knowing things. I get it for being ignorant!" -- wayland76 13:53
:)
frettled wayland76++ 13:54
wayland76 Please don't make me laugh wile drinking :)
s/wile/while/ :)
PerlJam wayland76: perl steals all the good ideas from other languages; you steal all the good ideas from other people. Use what works.
wayland76 Yeah, that's where my good jokes come from too :). But the puns are my own :) 13:55
frettled Okay, Windows is a bit more complicated than Unix for filenames, since the set of prohibited characters is greater. This is why you'll see some rather interesting solutions for handling filenames with e.g. Samba.
masak ok, next spectest issue: the following two files cause failed Parrot assertions for me: t/spec/S12-attributes/class.rakudo t/spec/S14-roles/basic.rakudo
anyone else?
frettled Yup, I'm pretty sure those failed for me.
I asked about this tonight, and I was told that they were known. 13:56
That goes for the three cases of pre-declared variables as well. 13:57
The computer I built rakudo on is 2.5 km away and in suspend mode, so I can't really check right now. :)
PerlJam frettled: those are the same I asked about yesterday or the day before. Pm said they were known. 13:58
frettled yup
PerlJam frettled: the predeclared variables are on purpose because that's what the test is testing IIRC 13:59
frettled «Yes, it's known, but it's not fixed yet. *submit*» - Bastard Submitter From Hell
13:59 JimmyZ joined
frettled PerlJam: two different tests testing that? hm. 13:59
frettled attempts to go home. :) 14:01
wayland76 attempts to go to bed, although it is but two minutes past midnight :) 14:02
Matt-W has to wait 56 minutes to go home 14:04
masak *cough*Form.pm*cough* 14:05
Matt-W if I worked on that now, it would belong to my employer
masak oh noes!
Matt-W quite 14:07
so I can't
PerlJam Matt-W: definitely do *NOT* work on Form.pm then.
Matt-W besides, I'm trying to figure out how to write a nasty test 14:08
PerlJam: indeed, they wouldn't know what to do with it
not to mention that git is unauthorised open source software
which I could be fired for using
PerlJam Matt-W: does that also mean that any code you write on #perl6 right now also belongs to your employer? :)
Matt-W theoretically, yes
PerlJam "fired for using git" ... /me boggles
Matt-W it's unlikely 14:09
but it's in the IT policy
so they could if they were feeling particularly mean 14:10
same goes for parrot and rakudo
last week we got approval for... drumroll please
GNU Make
once the legal department realised that the GPL doesn't mean anything you build with the assistance of GNU Make becomes GPLed
which is that old FUD
[particle] rakudo: my %h = 1 => 3; my $x = %h.delete(1); say $x 14:14
p6eval rakudo 0d4fe0: OUTPUT«3␤»
14:14 icwiener joined
wayland76 actually starts heading for bed :) 14:14
PerlJam Matt-W: I don't think I want to see you on #perl6 during your work hours if there's a chance they'll screw you or perl6 14:15
[particle] rakudo: my %h = 1 => 3; my $x = %h.delete(1); my $y = $x; say $y.WHAT, $x.WHAT;
p6eval rakudo 0d4fe0: OUTPUT«Array()Array()␤»
14:17 _jaldhar joined 14:18 PacoLinux joined 14:24 RonOreck joined 14:30 jaldhar left 14:35 finanalyst left 14:37 tak11 joined 14:46 xomas_ joined 14:48 Psyche^ joined 14:51 pmurias_ joined
pmurias_ ruoso: do you think we could get away with loading the smop stuff by a different way the linking it in at build time? 14:53
14:55 iblechbot left 14:56 JimmyZ left 14:59 nihiliad joined 15:05 Patterner left, Psyche^ is now known as Patterner, jan_ joined 15:16 rdice left 15:20 donaldh left, donaldh joined
arthur-_ rakudo: my @a = (1,2,3); my @b = map { $_++ } @a; @b.perl.say 15:21
p6eval rakudo 0d4fe0: OUTPUT«Statement not terminated properly at line 2, near "@a; @b.per"␤in Main (src/gen_setting.pm:3369)␤»
arthur-_ map does not work ?
jnthn arthur-_: Yes, but not with Perl 5 syntax. 15:22
std: my @a = (1,2,3); my @b = map { $_++ } @a; @b.perl.say 15:23
p6eval std 27988: OUTPUT«===SORRY!===␤Statements must be separated with semicolon at /tmp/fVJWhL4dtz line 1:␤------> my @a = (1,2,3); my @b = map { $_++ } ⏏@a; @b.perl.say␤ expecting any of:␤ bracketed infix␤ infix stopper␤ standard stopper␤ statement␤
..statement modi…
jnthn rakudo: my @a = (1,2,3); my @b = @a.map: { $_++ }; @b.perl.say
or
p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3]␤»
jnthn rakudo: my @a = (1,2,3); my @b = @a.map({ $_++ }); @b.perl.say
p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3]␤»
jnthn rakudo: my @a = (1,2,3); my @b = @a.map({ $_ + 1 }); @b.perl.say 15:24
mofino hey I was looking at some p6 the other night, what would does the colon in :my do?
p6eval rakudo 0d4fe0: OUTPUT«[2, 3, 4]␤»
mofino s/would//
jnthn mofino: Did you see that inside a regex?
arthur-_ jnthn: thx a lot
jnthn In that case, it's just the way to make a variable declaration inside a regex.
mofino ohh, umm, I don't think so... I'm not sure now
jnthn Outside of them, it's just "my $foo"
mofino ok
PerlJam mofino: I bet you did.
mofino yeah I had to have if that's the case :) 15:25
jnthn If you read STD.pm, you'll have seen lots of cases of :my
mofino ahh, that was exactly it
jnthn :-)
mofino so that's what was going on!
frettled Hmm, isn't there a quick wy around this particular example without using map? 15:27
masak rakudo: say ((1,2,3) >>+>> 1).perl 15:29
p6eval rakudo 0d4fe0: OUTPUT«[2, 3, 4]␤»
jnthn attempts to re-write and fix up .*, .+ and .? and eliminate a chunk of code in the process.
15:33 _jaldhar left, _jaldhar joined
takadonet can you pass an action object to method parsefile? i .e Grammar.parsefile("filename",:action(Action.new)) 15:34
15:34 morensel joined
alester perlbuzz.com/2009/08/help-perl101or...omers.html 15:34
masak phenny: tell mberends t/01-simple.t in the HTTP::Daemon repo says `undef( $daemon )`, but that's a perl5ism, and Rakudo dies on it. 15:35
phenny masak: I'll pass that on when mberends is around.
alester One of the things I very much would like to have in perl101.org is to have each solution show both Perl 5 and Perl 6.
masak takadonet: I don't see why not.
15:35 KyleHa joined
takadonet nevermind my mistake. I misspelled the new of the Action class ..... 15:36
15:36 rbuels left
takadonet s /new/name/ 15:36
PerlJam takadonet: and rakudo didn't complain?
KyleHa Mornin' #perl6.
takadonet PerlJam:It did but I was not listening 15:37
alester So what's the Perl 6 equivalent to
my @stooges = qw( Larry Curly Moe Iggy );
jnthn takadonet: Would it help if we uppercases all error messages, so they're REALLY LOUD?
alester It's my @stooges = <Larry Curly Moe Iggy>;
right?
PerlJam alester: yes
jnthn alester: Yes.
15:37 rbuels joined
takadonet jnthn: NO that's fine :) 15:37
jnthn ;-) 15:38
alester So <> must no longer be glob?
masak KyleHa: mornin'
alester: correct.
KyleHa alester: No, I don't think Iggy was a Stooge. Perhaps you're thinking of Shemp.
PerlJam KyleHa: Iggy Pop *was* a stooge, just not the ones you're thinking of. 15:39
alester KyleHa: I think your definition of "stooge" is a little small.
15:39 donaldh left
KyleHa Nyuck nyuck nyuck! 15:39
alester KyleHa: en.wikipedia.org/wiki/The_Stooges 15:40
15:41 zloyrusskiy left 15:44 xomas_ is now known as lolpurple, lolpurple is now known as xomas 15:50 JimmyZ joined
JimmyZ masak: Maigao, there is a book <<The TIBET Code>>. 15:51
masak JimmyZ: what's it about?
KyleHa @seen pmichaud 15:52
lambdabot pmichaud is in #perl6. I last heard pmichaud speak 18h 56m 52s ago.
JimmyZ masak: The secret of Tibet
15:53 SmokeMachine joined
JimmyZ masak: a novel. 15:53
masak JimmyZ: ah.
JimmyZ my classmate bought it. there were 7 books. 15:54
I think that agree with you. 15:55
masak thanks for the tip.
I'll look into it.
ruoso pmurias_, I think we only need to make the s0native, nagc and s1native statically into the p5 lib 15:59
the rest can be loaded later as any other p5 lib
15:59 tann joined 16:00 iblechbot joined 16:01 __ash__ joined
__ash__ if you add something to actions.pm you need to add a grammar rule right? 16:02
masak phenny: tell mberends HTTP::Daemon crashes when trying to GET /favicon.ico -- gist.github.com/167912 -- apparently Parrot has gotten stricter of late with decoding UTF-8.
phenny masak: I'll pass that on when mberends is around.
masak __ash__: not necessarily, but since you ask, probably yes.
__ash__ and the grammar page is top down? should i add it at the bottom if i want to add something? 16:03
JimmyZ masak: www.kw2007.com/news-GBC32316FAE664C...1CC8E5.htm
__ash__ (i am trying to find instances of 'self.Foo::bar()' or $a.Foo::bar()
jnthn __ash__: We're generally trying to stay in line with STD.pm. 16:04
rakudo: my $x; $x.Foo::bar()
p6eval rakudo 0d4fe0: OUTPUT«Method 'Foo::bar' not found for invocant of class 'Failure'␤»
jnthn __ash__: We're already parsing it fine.
__ash__: Or close enough. We just need to do something smarter with it inside actions.pm
__ash__ oh okay 16:05
i wasn't sure if i needed to add a grammar rule for that
jnthn: so, the dotty method in actions.pm is what is handling that? 16:07
jnthn Yes, those and the ones it calls. 16:08
See also methodop
__ash__ kk, thanks
16:13 tann left 16:14 PacoLinux left
jnthn __ash__: I'm actually about to commit (provided tests pass) a small patch in that area...basically, to get $foo.*@cands and friends to work. 16:14
__ash__ jnthn: when it's up, i'll take a look at it, so hopefully i can understand this a bit better 16:15
so the grammar parser regex rules are linked to actions right? generally anyway, then it translates that into perl6 code, right? 16:17
jnthn Where you see a {*} in a grammar rule, we call the method in actions.pm with the same name.
16:18 PacoLinux joined
jnthn The actions method will generally build some AST and then use make to store it. 16:18
The .ast method gets the AST built for part of the sub-tree.
So we're building up the AST as we parse.
Hmm. Since the ins2 merge, it seems the "do we have icu" detection is broken, and so Rakudo is running tests that depend on it for me. 16:20
16:21 riffraff joined
__ash__ make takes an AST ? so a PAST object? 16:22
jnthn Correct.
I wish I had an up to date version of my talk on implementing Perl 6 to point you at, alas I've not given it for almost a year so it's kinda out of date... 16:23
16:29 masak left
__ash__ thats fine 16:29
i am sure i can figure it out, i am just a bit slow at times at connecting the dots 16:30
jnthn Method invocation in Perl 6 is decidedly non-trivial once you dig into it. 16:32
16:32 rfordinal joined 16:34 carlin left 16:41 payload joined
alester whoo, the first Perl 6 content for Perl101. perl101.org/arrays.html 16:41
PerlJam alester: this is starting to feel like Joseph Hall's version of perlfaq.com 16:47
alester ok
16:48 riffraff left 16:50 JimmyZ left
alester Not sure where you're going with that, PerlJam. 16:50
16:53 KatrinaTheLamia left 16:57 kane_ joined 17:00 tann_ joined 17:04 KatrinaTheLamia joined 17:07 kane_ left 17:12 rbuels left
PerlJam sorry, work stuff. 17:16
I wasn't really going much of anywhere other than to make that observation and if you ever used the old perlfaq.com, it's probably a good thing 17:17
Your version of editorial control seems much better though :) 17:18
pugs_svn r27989 | jnthn++ | [t/spec] Correct and unfudge tests for dispatches of the form $obj.*@cand.
17:20 PacoLinux left
dalek kudo: 58bef37 | jnthn++ | src/pmc/p6invocation.pmc:
Detect a Null PMC Access condition that could occur and throw a more meaningful exception.
17:21
kudo: 4a22048 | jnthn++ | src/ (2 files):
Refactor method dispatch code generation so that .*@foo and other similar things are no longer an error, which passes us some more tests. Also refactor .?, .+ and .* to work in terms of primitives provided by existing dispatchers, so we can rip out a dispatch helper, which duplicated the functionality they provided.
pugs_svn r27990 | jnthn++ | [t/spec] Some corrections to lastcall.t (currently NYI in Rakudo). 17:24
17:32 kane_ joined
jnthn Hmm....actually I think lastcall.t doesn't mean what the spec does. Or the spec doesn't meant what lastcall.t does. Hmm. 17:32
TimToady: About? 17:33
TimToady vaguely 17:36
jnthn TimToady: Does lastcall only apply to dispatches of the form $obj.*@cands? 17:37
Or $obj.*foo
TimToady it applies anywhere you could say nextsame
jnthn That is, where we are working our way through a list of methods to dispatch to?
17:37 kane_ left
jnthn Oh, so it interacts with nextsame rather than with .* ? 17:37
TimToady it means to throw away the rest of the candidates
jnthn Since $obj.*@cands and $obj.@cands are quite different. 17:38
OK, so is S12-methods/lastcall.t correct?
TimToady it's useful for anywhere .* semantics would keep oing
*going
looking 17:39
jnthn OK, but $x.*@foo does not provide a candidate list in the same sense that $x.@foo does.
In the first, we're specifying a list of methods to loop through, and building a list of captures.
In the second, we're using it as the candidate list in place of the one that the dispatcher would construct.
That is, the first case will normally call everything in @foo 17:40
Whereas the second only calls more if there's an explicit nextsame/callsame/nextwith/callwith.
I'm trying to work out how lastcall interacts with both of these.
Or which one it interacts with.
TimToady the doit methods must be declared multi 17:42
but the doit Int should not go to the doit () since it cannot bind
jnthn Yes, I fixed that locally.
Oh, committed a few moments ago..
TimToady only candidates that bind can be run
jnthn Heh.
That's a separate problem.
(The one I never got to asking you about at YAPC.) 17:43
TimToady in any case, lastcall is meaningless if that would be the last method anyway, which is ordinarily the case for . dispatch
lastcall is implied at the end of such methods
jnthn So it only applies to .* and .+ dispatches? 17:44
TimToady unless a next/call is issued
yes, or maybe some hypers
not sure
probably not hypers
since order is not guaranteed there anyway
jnthn OK, you say "unless a next/call is issued"...
PerlJam TimToady: what happens when I call nextsame at the end of the method that was invoked as $obj.meth()?
jnthn What are the semantics of nextsame/callsame etc when there are no more candidates?
PerlJam: It will defer to the next candidate. 17:45
TimToady failure of some sort
jnthn PerlJam: And whatever that next candidate returns will be the resturn value.
TimToady: Failure as in, a failure object, not an exception?
TimToady just as if .* found no applicable methods
jnthn Well, that's only sort of applicable, since .* if it found nothing returns an empty list. 17:46
TimToady we always, always try to return failure inline unless we are instructed otherwise
okay, .? then
though maybe that just returns Nil
jnthn .? currently hands back a failure.
(If there's nothing to call) 17:47
TimToady anyway, can't chat, hafta go away for a while
jnthn OK, so a lastcall followed by a nextsame or similar will always fail? 17:48
OK, catch you later. :-)
TimToady yes, I would think
it's sort of a don'tcallsame :)
jnthn OK, but if a previous thingy callsame'd into us, we'd still return to it? It doesn't affect candidates that have already deferred to us?
TimToady callsame should also trim the list
correct 17:49
later &
jnthn OK, so the test is incorrect in that sense.
Thanks. :-)
jnthn was wondering how on earth he'd implement the semantics the test seems to call for :-)
17:51 cdarroch joined 17:52 gigabo joined 18:01 PacoLinux joined 18:05 kane_ joined 18:06 araujo joined 18:30 Chillance joined 18:41 __ash__ left 18:45 masak joined
masak I'm getting untracked files in my rakudo local checkout. they're called things like dynext/perl6_group.bundle and perl6_group.c. can I go ahead an .gitignore them? 18:46
there's six of them in total, three of each kind.
18:49 __ash__ joined
[particle] masak: yes, those are generated 18:49
masak [particle]: I've already pushed a .gitignore fix, relying on the forgiveness principle. 18:50
(aye, I assumed they were generated, since I didn't create them)
dalek kudo: d50cabc | masak++ | .gitignore:
[.gitignore] ignore some new generated files
masak tonight's quiz: Temporal::DateTime (as presently specced) or Temporal::Instant (as originally specced)? 18:52
lay your votes.
colomon_ masak: Pointer to the Temporal source? 18:53
masak colomon_: src/setting/Temporal.pm
colomon_ Oh!
masak colomon_: I'm currently editing Rakudo in a local branch, and the spec in a github fork, to something I believe will be a better Temporal spec. 18:54
colomon_ Ah.
masak oh, and the quiz question was to be read "what do people prefer?" (and perhaps "why?")
colomon_ Sneakily I was mostly hoping to find a good example of a Perl 6 module with tests, to see how you set it up.
masak the s/DateTime/Instant/ substitution was done in a slightly overwhelming bikeshed-avoiding global change, much like the one I'm attempting now. 18:55
colomon_ And perhaps that distracted me when I should have said, pointer to the Temporal specs.
18:55 takadonet left
masak colomon_: is you want an example of such a module, do check out Druid. 18:56
colomon_ Okay, I believe I can find that one. :)
masak colomon_: oh. S32/Temporal
colomon_: but as I said, I believe the spec can be better than it is today.
colomon_ Is your Temporal::Instant visible someplace, or is the question mainly which name is better? 19:00
19:00 gigabo left
masak colomon_: my question is whether I should rename Temporal::DateTime back to Temporal::Instant. 19:01
pugs_svn r27991 | jnthn++ | [t/spec] Tests for $obj.+@foo and $obj.?@foo.
masak here's an argument for that: it rhymes better with Temporal::Duration.
here's an argument against: Perl 5 has prior art with DateTime. people will recognize it.
pugs_svn r27992 | jnthn++ | [t/spec] Test for a bug Rakudo used to have that I just fixed; not sure anybody ever hit upon it until now. 19:02
masak another argument against: there's already Temporal::Date and Temporal::Time, and T::DateTime better highlights what this is (even though it also wraps a Temporal::Timezone::Observance)
dalek kudo: 62f6082 | jnthn++ | src/classes/Object.pir:
Fix incorrect semantics in interaction of .? and multis.
19:03
kudo: bae2cfa | jnthn++ | src/ (2 files):
A very first-cut implementation of lastcall, which just trims the candidate list such that nextsame and friends will find nothing else to defer to.
colomon_ gotcha.
masak jnthn: (re r27992) looks similar to what you showed me at YAPC::EU.
jnthn masak: Related-ish, but not same. 19:04
masak right.
jnthn masak: We were obviously wrong in a place where there was an obvious answer here.
masak I certainly haven't run into that bug.
jnthn No, but how often do you use C<.?>? :-) 19:05
19:05 szabgab joined
masak until now, not very often. 19:05
I mainly see it as a replacement for the Null Object Pattern. 19:06
(weaving design patterns into the language)++
jnthn :-)
szbalint I'd go for Temporal::Instant, I want to subclass it as Temporal::Instant::Paradox 19:07
jnthn masak: You'll be glad to know I removed another place that could give a Null PMC Access earlier too. ;-)
masak that's one vote for Instant. :)
jnthn: that makes me very glad indeed.
jnthn I want to subclass it as Temporal::Instance::Coffee.
erm, Instant
;-)
masak jnthn: is that another vote for Instant? :)
szbalint masak: you'd make a good auctioneer :) 19:08
jnthn Well, instant coffee kinda sucks compared to the fresh stuff, so I'm not sure.
masak szbalint: as long as it's over IRC, I think I'd do pretty well. :)
colomon_ masak: I'm not wowed by DateTime, but Instant strikes me as equally vague, so I'd stick with DateTime. Besides, I think I've typed "Instance" instead of "Instant" about three times now, and I can see I'm not the only one....
19:09 Front_slash left
masak colomon_: good point. 19:09
szbalint I liked your rl presentation in Lisbon too, you were doing okay :)
jnthn masak: In the .Net world they call them DateTime and TimeSpan, to give you a data point.
masak szbalint: thanks. :)
frettled DateTime is used in (sorry to mention it, really am) Python, too.
masak jnthn: I think I prefer Duration over TimeSpan, though.
frettled I don't know how it's used, or why, but … :D 19:10
masak jnthn: something about TimeSpan makes it seem it only refers to Time and not Date.
frettled: did you know that #perl6 is a hate-free zone? :) you're free to mention Python here.
frettled masak: if the methods and classes are similar to what the DateTime packages offer today, then using the same naming convention seems sane.
szbalint yeah, in all seriousness DateTime is probably better
masak ok, sticking with DateTime.
frettled masak: Is pity okay? 19:11
masak frettled: as long as it's sincere.
jnthn masak: Yes, I agree.
masak: I prefer Duration over TimeSpan.
DateTime vs Instant though is a more...hmm. 19:12
Are Instant objects meant to be mutable or not?
masak frettled: but really, collaboration is what really distinguishes us. so if someone comes in saying "I've made a Perl 6 highlighter in Python!", we'd probably celebrate that person, instead of shunning her.
frettled masak: yup
masak jnthn: dunno.
frettled masak: I'm actually quite glad to see so many things being implemented from other languages. 19:13
jnthn ooh, my chilli is cooked
jnthn -> nom
masak jnthn: the current Rakudo implementation does not have mutable objects.
frettled: it's a survival mechanism, for one thing.
19:14 frew left
frettled masak: not just that, but it's about Cool Things (well, to me) 19:14
With my computer science background (I suppose that's it, or I'm just wired that way), programming languages are in general fun.
PerlJam frettled: I'm wired that way too :) 19:15
frettled But I've never gotten myself to learn lisp, for instance.
Tene From what I've seen, for many people, the process of learning lisp is more about learning to generalize existing rules than about learning new rules. 19:16
19:16 PacoLinux left
masak yes, I've also grown to love the minutia of programming languages. Perl 6 has been part in shaping me in that form, I think. 19:17
19:17 PacoLinux joined
mkelly32 hrm. so, undef isa 'Failure', which is apparently just an unthrown exception ? 19:18
so, 'throw undef' is a way of just throwing a generic error? 19:19
masak mkelly32: no, that'd be 'fail()', I think. 19:20
Perl 6 doesn't really have a 'throw' function.
mkelly32 oh, dev.perl.org/perl6/rfc/63.html is just an rfc, i guess 19:21
masak says there in the URL. :) 19:22
mkelly32 yes. but i didn't read that. just was the first google hit..
hrm. so undef is a value. but, it's also the "Use of an undefined value" exception? 19:23
masak good question. 19:24
we had one of the implementors with us just now, but he's gone nomming.
so I guess the rest of us will just have to take a stab in the dark in the meantime. 19:25
rakudo: my $a = undef; say $a 19:26
p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤␤»
masak rakudo: my $a = undef; say $a + 5
p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤5␤»
masak rakudo: my $a = undef; $a++
p6eval rakudo 0d4fe0: ( no output )
mkelly32 rakudo: sub foo { fail undef }
p6eval rakudo 0d4fe0: ( no output )
mkelly32 rakudo: sub foo { fail undef }; foo();
p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤»
masak rakudo: sub foo { fail "This warning will only be shown when evaluated" }; foo; say "here:"; say foo 19:27
p6eval rakudo 0d4fe0: OUTPUT«here:␤This warning will only be shown when evaluated␤␤»
masak I hope that last example makes things clear.
mkelly32 so, that's for returning a "failure" value? hrm. interesting. 19:28
masak yes, it's meant to be an orthogonal return channel. 19:29
making possible both many interesting ways of success, and many interesting ways of failure.
instead of only one (like Perl 5), or the other (like Unix shells). 19:30
mkelly32 yes. interesting.
so, the way to just throw an exception is still die?
masak aye. 19:31
mkelly32 so, i can do something like: eval { something_that_might_die() }; if ($@) { given $@ { when FilesystemError { ... } } } 19:34
to handle specific error types?
where FilesystemError is something that isa Failure, i guess
masak mkelly32: no, eval {} is spelled try {} in Perl 6. 19:35
mkelly32: and if you want to be semantically precise, there's a CATCH block you can use. but I think your way works too. 19:36
mkelly32 ok. cool.
masak the CATCH block has the advantage that it does both the 'if' and the 'given' for you by default.
mkelly32 ok. so, it's about the same, semantics-wise, as c++?
masak don't know about that. 19:37
one difference, I think, is that here you'll find the CATCH block inside of the try block.
see S04 for details.
jnthn back from nom
19:38 gigabo joined
jnthn masak: I think I'd like to see them be immutable. 19:38
masak jnthn: oh hai. is undef, in any sense, an exception?
jnthn: ok.
jnthn rakudo: say undef ~~ Exception
p6eval rakudo 0d4fe0: OUTPUT«0␤»
jnthn I agree with Rakudo here. :-)
mkelly32 masak: ok. thanks.
rakudo: say undef ~~ Failure 19:39
p6eval rakudo 0d4fe0: OUTPUT«1␤»
jnthn A failure as I see it has potential to cause an exception to be thrown if you try and use it.
19:39 pyrimidine joined
jnthn (In an inapproriate way.) 19:39
masak jnthn: so, when people say "unthrown exception", they are not referring to a kind of exception, but rather the potential for one?
s/for/of/
19:40 pyrimidine left
masak er, or 'for'. I don't know. 19:40
jnthn I think so. I think Failure is more of a role that gets mixed into something rather than the thingy itself.
19:41 d4l3k_ joined, pyrimidine joined
jnthn I would not expect Failure ~~ Exception. 19:41
masak in software, failure is the rule, not the exception. :P 19:42
19:43 simcop2387 left, pjcj_ left, dalek left, athomason left, colomon_ left, leedo left, Khisanth left, jiing left, broquaint left, Avada left, solarion left, kolibrie left, andreasg_ left, d4l3k_ is now known as dalek 19:44 leedo joined, andreasg_ joined, broquaint joined, kolibrie joined 19:45 pjcj joined
__ash__ if you want to add debug information to actions.pm how would you go about that? 19:47
19:48 justatheory joined
masak __ash__: so, you want to print things from NQP, is that the question? 19:50
__ash__ yeah, basically, that would be useful, that or put a breakpoint in at compile time to figure out how its parsing a string 19:51
jnthn Probably use Q:PIR and inside is say "foo"
*it
(using say("foo") from actions.pm won't end well...)
masak no?
jnthn No, which is kinda irksome at times. 19:52
masak why not?
jnthn IO.say is in the setting.
But we use the actions.pm to compile the setting.
__ash__ is there no way we could put a breakpoint in so at parse time on a test file it will halt possibly?
jnthn Not unless you can work out how to get parrot_debugger to do that, but I'm afraid I've really not much idea on that. 19:53
masak jnthn: I thought NQP had its own say.
jnthn Do you want to see the structure of a Match object?
masak: NQP doesn't have any built-in functions. Any that you see are supplied by Rakudo.
__ash__: For now best way is to print some stuff. 19:54
masak jnthn: oh!
__ash__ whats the right way to do that?
and yes i do want to see the structure of a match object
masak jnthn: even the ones in the NQP test suite?
__ash__: say $/.perl 19:55
__ash__ k
jnthn __ash__: Also don't forget --target=parse
__ash__ is that why i keep getting Statement not terminated properly at line 1378, near "$/.perl; ? 19:56
jnthn ?
Oh
No, --target=parse is a command line option you can give to Rakudo.
Instead of compiling code, it will dump the parse tree.
Also there's --target=past 19:57
__ash__ okay, but when i try to compile actions.pm with the say $/.perl; in it using make it gives me that error
jnthn Statement not terminated - is that in NQP? If so, note calls there require parens.
masak __ash__: actually, forget my 'say $/.perl' tip, since you seem to be doing Rakudo internals and not a Perl 6 application.
I think jnthn's advice applies better than mine. 19:58
jnthn Also as mentioned before, say in actions.pm is likely going to explode when compiling the setting unless you put it somewhere obscure enough. :-)
__ash__ okay, i think the right thing in my case is --target=parse not a say in the action.pm
Tene you could always use 'warn' instead. 19:59
that should print to STDERR
__ash__ do those calls work in the parse phase?
jnthn warn may well work fine
__ash__: Also note that you can do --target=past which will show you the PAST nodes that got built. 20:00
__ash__ okay, is there a list of all the targets somewhere i can reference and read up on?
jnthn docs/running.pod probably offers some info 20:02
Thhough the only other really useful one is --target=pir
There is a --target=post, but you almost certainly never want it.
__ash__ k, thanks
--target=parse didn't work when i had a $b::Foo.bar(); call method in it, it gives Null PMC access in find_method() 20:04
but --target=past worked
jnthn Odd. 20:05
I guess you wanted $b.Foo::Bar(); 20:06
Hmm, if I try and --target=parse just that, it works here.
oh hmm, seems class declarations when doing --target=parse cause upset. 20:07
__ash__ yeah i just commented out that line and it still gave me the error, so class definitions are causing that problem? 20:09
masak so, Hash[Int] gives me a Hash with Int values, right? what if I want to type the keys, too? 20:10
masak too lazy to read the spec today
mkelly32 i think hash keys are always Str()
at least, if i do %foo{1}, a later look at %foo.keys tells me that that's been stringified. 20:11
masak mkelly32: yes, but that's a limitation of current Rakudo. 20:12
mkelly32 ah, ok.
masak one I haven't seen mentioned in the ROADMAP, now that I think about it. 20:13
frettled Real associative arrays allow any key value, of course. ;)
masak my sentiments exactly.
frettled That goes for real switch-case control blocks too.
masak oh yes. 20:14
jnthn masak: Hash[Int] will when implemetned mean th evalues are Ints yes. 20:15
masak and if I want to type the keys as well? 20:16
jnthn Actually Str as the default key type really means "the keys are coerced to strings".
Hash[Int, :key(Foo)] I suspect.
But syntactic sugar iirc is
my Int %hash{Foo};
masak nice. 20:17
makes visual sense.
jnthn But you'd better be darn careful when making hash entries if doing this.
masak because they'll get coerced?
jnthn %hash<42> # oops
gah, bad example
masak ah, so it wasn't just me. :) 20:18
jnthn my Int %hash{Int}; # better example here :-)
So then
%hash<42> = 42; # oh noes, fail, because <42> = quoted string
Of course
%hash{42} = 42; # is fine
masak I don't really see that as a problem. 20:19
jnthn I'm guessing if you declare a key type it's more a "I want this type enforced" rather than "try and coerce to this".
masak that could even be caught at compile time, methinks.
jnthn Which is fine, because multi-dispatch means we can declare multiple versions of a role with different signatures. :-)
Heh. If somebody wrote a compile-time type analyzer/optimizer/checker. ;-) 20:20
masak I've been toying with the idea.
I need something to do with my copious spare time. :P 20:21
20:22 ruoso left
jnthn Well, you could always blog how to do it, and hope somebody else does it. ;-) 20:22
20:23 molaf left
masak jnthn: that's true. 20:23
I've experimented around enough to know how to do it. and I have a whole list of nice things to check against statically. 20:24
I just need tuits, or somebody with tuits.
20:24 simcop2387 joined 20:25 justatheory left
jnthn hides 20:26
masak :) 20:27
I wouldn't think of burdening you with more things before April.
well, besides submitting bugs, of course. there doesn't seem to be a way to stop that.
__ash__ jnthn: should i post a bug about the --target=parse issue? 20:31
jnthn __ash__: You can if it bothers you; I suspect it'll go away when we move to STD though. 20:33
Or maybe even in the upcoming lexicals handling refactor. 20:34
__ash__ if you think its doesn't need attention thats fine, i just don't want to forget about it if its an issue
jnthn Which also involves us doing some things in a more STD-ish way.
__ash__: I've no strong feelings either way. A ticket doesn't harm. 20:35
__ash__ i'll put a ticket it, just so someone might remember to test it after the up coming changes (cuase i know i'll forget) 20:36
jnthn Sure, sounds good. :-)
__ash__ oh, a tickets in there already 20:37
rt.perl.org/rt3/Public/Bug/Display.html?id=66546
jnthn Ah 20:38
Thanks for checking before submitting. :-)
jnthn is happy that we didn't just get a dupe.
I should really do a Rakudo Day next week and try and clear up a few tickets. 20:39
frettled Remember: Thursdays are smiley-free, so Wednesday can be Rakudo Day!
masak Thursdays are smiley-free? I must have missed that memo. 20:40
jnthn Since when were Thursdays smiley-free? :-O
masak how can you go a whole say without smileys? that sounds horrible.
frettled adasociety.wordpress.com/about/ 20:41
jnthn say "I don't know :-|"
Woo. Now nextsame and friends fail softly. 20:42
masak jnthn++
jnthn TimToady++ for telling me they should. :-)
frettled Failing me softly with this bong ...
jnthn ...what bong?
frettled the one mst is bound to be smoking 20:43
jnthn Win!
__ash__ what is the value of $/ in methodop? 20:45
the name of the method?
[particle] the Match object
__ash__ okay
masak rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; my %h = :a, :b; foo(|%h)
p6eval rakudo 0d4fe0: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Any :$a, Object *%_)␤:(Any :$b?, Object *%_)␤in Main (/tmp/2oNxN8pfHS:2)␤» 20:46
masak submits rakudobug
jnthn masak: is the flattening important to making the bug happen? 20:47
rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; foo(:a, :b)
p6eval rakudo 0d4fe0: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Any :$a, Object *%_)␤:(Any :$b?, Object *%_)␤in Main (/tmp/1JICUeh8sD:2)␤» 20:48
masak jnthn: no, it isn't.
jnthn No
OK, good.
masak I wasn't minimal, sorry. :)
jnthn If it were, it'd suck harder.
masak aye.
jnthn: I'm curious, do you see the bug?
I missed it at first.
jnthn They both can individually accept the parameters that are being passed. 20:49
So they are in some sense both valid candidates.
masak yes, that's why there's a tie. nothing strange there. 20:50
jnthn But IIRC named params act as constraint at some level, and when we have multiple of those I think last spec updated said first wins.
Additionally, in the signature output :$a! has lost something.
masak here it is, shortened: 20:51
rakudo: sub foo(:$a!) {}; say &foo.signature.perl
p6eval rakudo 0d4fe0: OUTPUT«:(Any :$a)␤»
jnthn heh
masak jnthn: yes, you got it.
jnthn two bugs for the price of one. ;-)
masak the first bug you mentioned, I can't really relate to. :)
jnthn Unfortunately, they're two different fixes. :-)
jnthn does spectest and hacks on some tests for the fail soft semantics. 20:52
masak does the spec really say first candidate wins among tied named-param variants?
jnthn Oh, and lastcall.
masak: Let me check.
masak I'd dislike-ish that.
masak prefers ties
frettled wants his lazy lists and sparse arrays. O:-)
Tene frettled: patches accepted. we'll even help you write them. :) 20:53
frettled hee-hee
Somehow I knew someone would say something like that.
masak frettled: if you knew, does that mean that you volunteered? 20:54
I think it does.
jnthn So for tiebreaker
A the candidates are simply called in the order they were declared,
and the first one that successfully binds (and completes without
calling nextsame or nextwith) is considered the winner, and all the
other tied candidates are ignored.
masak o_O 20:55
is this S06?
ah, S12.
masak reads the whole thing about tie-breaking 20:56
frettled masak: $@*&%
jnthn Plus laso
Likewise an ordinary named parameter does not participate as a tiebreaker,
but you can mark named parameters as required to effectively make
a switch based on named binding:
Those both from S12 20:57
=head1 Multisubs and Multimethods
Under that heading
masak jnthn: ah, the latter one seems to apply to our bug.
jnthn Right, it shoulda let the first one that wins, well, win. :-)
masak yes, already found it. ack++
jnthn It should be an easy enough fix.
masak urgh.
but it destroys a nice property of my slides software. :/ 20:58
jnthn I was a little surprised when TimToady decided that they'd not tie though.
Oh?
You have a use case that this hurts?
masak unless the latter quote is meant to imply that adding a '!' makes nameds participate in tiebreaking... yes. 20:59
Tene Wasn't someone here going to write to the list about .?method and .*method being harmful?
I don't see it on the list... did I miss it?
masak Tene: you didn't miss it. I'm also waiting for it.
jnthn would be curious to see that one.
masak: It means that you can add a ! to a named in order to require it. 21:00
masak jnthn: well yes, that's immediate. :)
that's what '!' does.
jnthn And if that wasn't passed, that candidate wouldn't be bindable, so would be passed over.
masak hm.
jnthn We use this in traits.pm for example. 21:01
masak but I'm not interested in the first-one-wins scenario in my application. I want ties to blow up.
by the way, a t-shirt with "I want ties to blow up" on it would be kinda nice. 21:02
21:05 jrtayloriv joined
jnthn A tie with it on would be even classier. ;-) 21:06
jrtayloriv What is the status of GUI development libraries in Perl 6? I've been trying to Google with things like "Perl6 tk" and haven't had any luck ...
jnthn masak: Well, I guess you can always raise it with TimToady and point out your use-case/expectations.
That bit of the spec was only revised recently, after all. 21:07
masak jrtayloriv: it's a bit earlier than the stage where you'd find it on Google.
jnthn: ok. sounds good.
I haven't processed the whole section in S12 yet, so I don't know if I'm affected.
21:10 iblechbot left
jnthn If I understand S12 correctly, then by the spec the tie you got earlier is a bug. 21:10
And the first candidate that appeared textually in your program shoulda won.
masak yes. 21:11
I agree, though I didn't know that when I typed in that program.
jnthn If you wanted them to tie, then I think that's not what is currently spec'd, but I think the spec indicated otherwise previously.
masak but that has almost nothing to do with the use case in my slides software.
there, I have only multies with required nameds.
jnthn Is "first wins" a problem there? 21:12
That is, first that has its signature satisfied?
masak that's my question, essentially.
if it isn't then, I'm happy.
s/ then,/, then/
jnthn rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a); foo(:b); 21:13
p6eval rakudo 0d4fe0: OUTPUT«1␤2␤»
masak \o/
jnthn Does that example capture what you want?
masak aye.
well,
rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a, :b)
p6eval rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤in Main (/tmp/WAUvtLCP7e:2)␤»
jnthn OK, that example is correct by Rakudo and the sepc.
masak that one does.
jnthn That is also correct by the spec.
masak excellent. 21:14
jnthn However, note that if they had been multi-methods it'd have been a different story.
Because they can an implicit *%_
masak oh noes! :)
how do I get rid of the implicit *%_ ?
jnthn rakudo: class C { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b)
p6eval rakudo 0d4fe0: OUTPUT«1␤»
jnthn huh, Rakudo gets that one right... 21:15
masak ok, then I'm in trouble again.
jnthn Get rid of it like...
(this should work...)
rakudo: class C { multi method foo(:$a!) is hidden { say 1 }; multi method foo(:$b!) is hidden { say 2 }; }; C.foo(:a, :b)
p6eval rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/ICAqe1ZgZ5:2)␤»
jnthn oh, wait a moment
masak 'is hidden'? :)
jnthn rakudo: class C is hidden { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b)
p6eval rakudo 0d4fe0: OUTPUT«No candidates found to invoke␤in Main (/tmp/3bPRKQjxQ7:2)␤»
jnthn That one. 21:16
masak great.
jnthn is hidden = hide this class from being deferred into.
But as a side-effect, do not add the *%_
See S12 under Interface Consistency.
masak yep, found it.
jnthn Rakudo doesn't (yet) do all of that. 21:17
Working on it.
masak ah, I think I glean the connection between *%_ and C<nextsame> semantics.
jnthn++
21:18 justatheory joined 21:19 justatheory left
jnthn oh gah, one of my shiny new lastcall.t tests fails. 21:21
21:22 Whiteknight joined
jnthn masak: Answer to earlier question: 21:23
$P0 = root_new ['parrot';'Exception']
$P0['message'] = message
$P1 = new ['Failure']
setattribute $P1, '$!exception', $P0
21:23 Chillance left
masak jnthn: a, so has-a, not is-a. 21:24
jnthn masak: Right.
pugs_svn r27993 | jnthn++ | [t/spec] Correct and extend lastcall tests. 21:32
jnthn std: is foo($obj:), 'method', 'method with colon notation'; 21:34
p6eval std 27992: OUTPUT«Potential difficulties:␤ Variable $obj is not predeclared at /tmp/j8VwR19zTq line 1:␤------> is foo($obj⏏:), 'method', 'method with colon notati␤Undeclared routine:␤ is used at 1 ␤ok 00:03 39m␤»
jnthn std: my $obj; foo($obj:); 21:35
p6eval std 27992: OUTPUT«ok 00:02 39m␤»
jnthn std: my $obj; foo($obj);
p6eval std 27992: OUTPUT«Undeclared routine:␤ foo used at 1 ␤ok 00:02 37m␤»
jnthn Heh. So you can make a method call that way, huh.
21:36 nihiliad left 21:37 nihiliad joined
jnthn Ah, that gets a bunch easier to fix for Rakudo once we have contextuals supported in grammars. 21:39
21:39 synth joined
pugs_svn r27994 | kyle++ | [t/spec] More revisions of past tests 21:42
dalek kudo: 4245753 | jnthn++ | src/ (3 files):
Make deferal failures into a kind of soft fail rather than an exception.
kudo: a0082a8 | jnthn++ | t/spectest.data:
Add lastcall.t to spectest.data.
21:42 eMaX joined
Tene Mmm, tests. 21:43
szbalint hm, an euler problem solution is about 13500 times slower in rakudo than in p5. PIR is about 15 times slower. What are the biggest points of slowness in rakudo if anyone would have time to enlighten me :)
?
21:44 colomon joined
jnthn szbalint: Signature binding is very slow in Rakudo. 21:45
colomon masak: Thanks for the tip to look at Druid. I now have a crude but working test script going.
alester szbalint: Without seeing your code, we can't tell for sure. It could be that your code is done incorrectly fro Perl 6.
masak colomon: glad to have been of help.
colomon masak++ 21:46
jnthn szbalint: Another thing is, did you use int or num registers in Parrot? Rakudo doesn't know how to use those yet.
21:46 icwiener left
szbalint alester: github.com/perl6/perl6-examples/blo...4-unobe.pl # with the first reverse switched to flip 21:46
jnthn Beyond that, I'd want to see the Perl 6 code, but also - in a couploe of weeks I guess - to run it under the profiler than chromatic++ and cotto++ are currently beavering away at.
szbalint jnthn: yeah, int in the PIR version 21:47
21:47 __ash__ left
jnthn Hmm 21:48
It isn't calling too much though..
Well, I guess the grep block.
21:52 KyleHa left
jnthn szbalint: Anyway, best is to hold on for us to have good profiling support. 21:52
Which is being actively worked on a the moment.
Then we'll really know, rather than guessing. :-)
szbalint a profiler is good news :) 21:53
21:53 Whiteknight left
alester do we still need testing on ins2 branch? 21:54
jnthn alester: No - it's been merged to trunk. 21:55
alester yay
AND we build from an installed Parrot now 21:56
jnthn Yup. :-)
alester POD is going to be deifferent in Perl 6 enough that I should probably start pod6.vim, eh? 21:58
I'm adding pod.vim to the vim-perl project 21:59
22:00 jrtayloriv left
cotto "beavering"? 22:00
jnthn cotto: British English slang for something like "busily working" 22:01
szbalint labouring?
jnthn As in, lots of effort going in to it. :-) 22:02
I guess that bit of slang doesn't cross the pond. :-)
There's a chance it could just be Yorkshire slang too, I guess...
cotto I figured, but it sounds like it could mean something different. 22:03
like making hats
masak I think those two meanings can be distinguished easily by context. 22:04
jnthn wasn't aware of the "making hats" meaning of it
cotto Sorry. I forgot to set the sarcasm bit on that.
masak :)
cotto gets back to beavering 22:05
jnthn tries to get a bit further along with hides Foo and is hidden 22:07
22:08 M_o_C joined 22:13 eMaX left
mikehh rakudo (a0082a8) builds on parrot r40549 - make test/make spectest (up to 27994) PASS - Ubuntu 9.04 amd64 22:14
22:20 masak left 22:23 jferrero joined 22:28 pyrimidine left 22:29 TimToady left 22:30 diakopte1 joined, TimToady joined 22:31 diakopter left
dalek kudo: e5d0a37 | jnthn++ | src/parser/actions.pm:
Fix up code generation for hides trait_mod.
22:35
kudo: 1a5c5f3 | jnthn++ | src/ (2 files):
Implement trait_mod:<hides> and a trait_mod:<is> for is hidden, plus add some attributes in ClassHOW that we'll use to track these.
kudo: 637d803 | jnthn++ | src/ (2 files):
Make sure we also emit a call to trait_mod:<is>($class, :hidden), even though it also has some compiler side-effects (like suppressing *%_).
22:35 alester left
22:36 diakopte1 is now known as diakopter
jnthn OK, that's all for today folks. Hopefully, will finish up hides and is hidden tomorrow, plus some blogging, maybe some traits hacking... :-) 22:38
22:40 KyleHa joined 22:42 jferrero left 22:47 cdarroch left 23:00 Avada joined 23:04 tak11 left 23:07 unitxt_ joined 23:12 nihiliad left 23:19 unitxt left 23:21 avi2702 joined 23:29 wknight8111 joined 23:45 M_o_C left
cognominal augment is the new "is also"? 23:48
23:49 morensel left 23:52 tak11 joined
cognominal apparently it is to be able to distinguish between "augment" and "supersede" 23:54
23:55 frew joined 23:57 synth left