Camelia, the Perl 6 bug

IRC log for #perl6, 2009-08-14

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:02 frettled TimToady: so that instead of do {…}_, we'd have _autoindex {…}_, or am I Not Getting It?
00:02 frettled (yow, run-away underlines)
00:02 arthur-_ /me wants to convert a Str to a Regex ( with interpolation ) but don't find in S05
00:03 TimToady frettled: that would be the basic idea, but perhaps the blockless form would not make sense
00:04 frettled Mm, I don't think it would make programming life easier to do so.
00:05 TimToady arthur-_: /<$string>/ if you don't want \Q semantics
00:05 TimToady but nyi in rakudo
00:05 frettled same goes for autoindex, I see :)
00:06 TimToady nobody implements S09 yet
00:06 TimToady not even the "easy" bits :)
00:06 frettled hee-hee
00:07 frettled Fortunately (for me, anyway), I don't yet have enough Perl 6 or rakudo clue to fix that.
00:08 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:09 frettled or just @out.transpose ;)
00:09 * TimToady has to go and play drums &
00:09 eternaleye s:1st:2nd/,/;/
00:09 frettled :)
00:09 arthur-_ TimToady: thx
00:10 eternaleye frettled: I mean what we define .transpose to be in code
00:10 eternaleye That way .transpose is defined on multi-dim arrays
00:10 frettled eternaleye: sorry, I just wanted to joke a bit.  But yes, that would be one way to see it.
00:10 frettled I'm not sure that transposing on multi-dim arrays makes sense without a parameter set to transpose.
00:11 eternaleye frettled: Quite possible. I'm still very early in my mathematical education (just finished derivatives and integrals last year)
00:12 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 eternaleye frettled: Well, we aready have a .rotate
00:12 ascent_ joined #perl6
00:13 eternaleye And really, rotating two elements is transposition
00:13 frettled Yes, .rotate is for bits or something.
00:13 eternaleye frettled: .rotate is defined on arrays, I remember that from the Josephus discussion
00:14 frettled Ah, for lists it's the same as rotating bits in a byte.
00:14 frettled Sensible in a computer science kind of way.
00:15 frettled eternaleye: but to «transpose» a 3D array, we'd have to say which way, since it can be «transposed» in two dimensions.
00:15 frettled In general, the similar operation to transposition has N-1 dimensions for an N-dimensional matrix.
00:15 eternaleye frettled: Well, the code I wrote abvove would do x->y y->z z->x
00:16 frettled Yes, but x->z, z->y, y->x would be different.
00:16 frettled and still valid :)
00:16 eternaleye Rather than rotating elems, it rotates dimensions
00:17 eternaleye frettled: Hm, yes
00:17 eternaleye Well, .rotate takes an integer parameter, so we could pass that from outside - -1 would DWYM, and 0 or +(@in.shape) would be identity
00:18 frettled and we could pass it a list to handle multiple dimensions?  *g,d&r*
00:19 eternaleye frettled: Well, we're rotating dimensions rather than elements. Unless you can find a way to have dimensions of dimensions (looser that ';'
00:20 eternaleye 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.
00:20 eternaleye frettled: Yeah, but the bindings might be somewhat painful
00:21 stimpi joined #perl6
00:21 frettled SMOP :)
00:21 eternaleye heh
00:24 unitxt left #perl6
00:24 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 unitxt joined #perl6
00:26 frettled Heh.  Hehe.
00:26 frettled eternaleye: Speaking of bindings, see http://search.cpan.org/dist/Inline-Octave/
00:26 eternaleye nice
00:32 frettled Good night!  *idle*
00:41 pugs_svn r27986 | ujwal++ | Added myself to AUTHORS
00:42 ujwalic joined #perl6
00:48 KatrinaTheLamia joined #perl6
00:51 tak11 joined #perl6
01:13 helper joined #perl6
01:37 ilbot2 joined #perl6
01:37 Topic for #perl6is now »ö« | http://perl6-projects.org/ | nopaste: http://paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' | irclog: http://irc.pugscode.org/ | UTF-8 is our friend!
01:43 KatrinaTheLamia joined #perl6
01:51 xinming joined #perl6
01:56 meteorjay joined #perl6
01:58 sri_kraih_ joined #perl6
02:01 xinming_ joined #perl6
02:11 xinming_ joined #perl6
02:21 japhb joined #perl6
02:36 xinming joined #perl6
02:46 DakeDesu joined #perl6
02:53 oxygenfad joined #perl6
03:02 tarbo2_ joined #perl6
03:19 molaf joined #perl6
03:20 donaldh joined #perl6
03:20 ihrd joined #perl6
03:39 wayland76 joined #perl6
03:41 wayland76 ping jnthn
03:41 phenny wayland76: 12 Aug 06:34Z <moritz_> tell wayland76 every pugs committer can also invite new committers at http://commitbit.pugscode.or​g/admin/project/Pugs/people (it's not a special power of mine)
03:42 wayland76 phenny: tell jnthn The least we could do for Ian Hague is spell his name right in posts on the Rakudo website.  http://www.rakudo.org/node/51
03:42 phenny wayland76: I'll pass that on when jnthn is around.
04:02 sevvie joined #perl6
04:05 pugs_svn r27987 | kyle++ | [t/spec] begin cleansing of eval and todos that should skip
04:22 kane_ joined #perl6
04:30 pugs_svn r27988 | kyle++ | [t/spec] fix todo test that should skip
04:36 eternaleye joined #perl6
05:11 tann_ joined #perl6
05:14 KatrinaTheLamia joined #perl6
05:15 tann___ joined #perl6
05:23 szabgab_ joined #perl6
05:34 rfordinal joined #perl6
05:42 finanalyst joined #perl6
05:46 orafu joined #perl6
05:53 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 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 japhb: I'll pass that on when pmichaud is around.
05:53 japhb sigh, forgot the colon first time.
06:08 ihrd left #perl6
06:16 __ash__ joined #perl6
06:24 jaldhar joined #perl6
06:25 justatheory joined #perl6
06:50 wayland76 japhb: Interesting idea.  One of my currently stalled projects is something that worries about different package formats (P6 of course)
06:51 japhb wayland76: do tell
06:53 wayland76 Well, it has an object that models metadata
06:53 wayland76 And if you can feed the metadata into the object...
06:54 wayland76 ...then it will (in theory) spit it out in various different packaging formats
06:54 wayland76 I personally only plan to support RPM, but I'm intending to make it flexible enough that anyone can use it
06:54 japhb Ah so.
06:55 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.
06:55 japhb wayland76: heh
06:56 wayland76 I had a skim over that
06:56 japhb Any comments?
06:56 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 :)
06:57 wayland76 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.  :-)
06:58 wayland76 Like I said, though, I only skimmed it
06:58 wayland76 There are all kinds of cool ideas that could be tried, but as long as it's heading somewhere flexible, I'm happy :)
06:59 wayland76 (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
06:59 japhb NODNOD
07:00 rfordinal joined #perl6
07:01 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:03 kane_ joined #perl6
07:05 wayland76 It would also be cool if all these things would integrate properly with package meta-managers (ie. apt and yum)
07:05 wayland76 For example, we go "yum install foo-perl-package", and it downloads, compiles, installs, etc :)
07:06 wayland76 I admit it's unlikely, but it's nice to dream
07:07 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:08 wayland76 japhb: That would be nice too.  There's no reason both ways couldn't work :)
07:08 japhb :-)
07:08 Tene in RH distros, it's more likely to be perl-Foo
07:12 * Tene now has 256-color support working in ncurses in rakudo.
07:16 Tene The following loop runs far too slowly.
07:17 Tene for 0..255 X 0..255 { say "$^a - $^b" }
07:17 Tene rakudo: for 0..255 X 0..255 { say "$^a - $^b" }
07:17 p6eval rakudo 0d4fe0:  ( no output )
07:17 japhb timeout!
07:17 japhb You know, the evalbot should *say that*
07:18 moritz_ japhb: patches welcome
07:18 japhb I knew you were going to say that.
07:18 moritz_ ;-)
07:18 moritz_ then you already prepared a patch? ;-)
07:18 japhb Given that I'm having trouble focusing my eyes right now, that's probably unwise.  ;-)
07:19 moritz_ you're excused
07:19 moritz_ ;-)
07:19 wayland76 Tene: I'm a Fedora user myself, so I know these things :)
07:20 moritz_ anyway, p6eval is a quick hack upon which way too many quick hacks have been built
07:20 donaldh joined #perl6
07:21 Tene wayland76: I'm just nitpicking.
07:21 Matt-W Morning
07:22 moritz_ good day Matt-W
07:23 jkva left #perl6
07:23 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 #perl6
07:25 wayland76 moritz_: Are you referring to STD.pm as one of the major implementations?
07:25 moritz_ wayland76: yes
07:26 wayland76 Ok, my confusion is dispelled.  I don't like enspelled confusion :)
07:30 rfordinal left #perl6
08:03 iblechbot joined #perl6
08:29 pmurias joined #perl6
08:30 meppl joined #perl6
08:34 masak joined #perl6
08:34 masak aloha, #perl6.
08:34 masak 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
08:35 p6eval rakudo 0d4fe0: OUTPUT«230 days left until April!␤»
08:35 moritz_ oh hai
08:36 * moritz_ has another weekend without internet access before him
08:36 masak nice.
08:36 moritz_ depends ;-)
08:37 moritz_ it's certainly more productive, but I have to live with the withdrawal symtomps ;-)
08:38 masak I'm sure you'll make it through. :P
08:38 moritz_ so far I always did ;-)
08:38 masak <hume>yeah, but...</hume>
08:46 EDevil joined #perl6
09:01 explorer joined #perl6
09:02 masak まじで? "Perl 6、2010年4月登場 | エンタープライズ | マイコミジャーナル"
09:03 masak I don't know what it says, but it's kinda warming to see people being expectant in Japanese.
09:04 masak three days ago, there was some kind of Twitter surge of Japanese news on "Perl 6, April 2010".
09:06 huf ;)))
09:06 huf perl6 for kurisumasu
09:09 masak apparently 'まじで?' means 'for real?'
09:10 masak in a way, Rakudo Star is a big stage play to show to the world that, yes, Perl 6 is for real.
09:11 masak 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:12 moritz_ masak: it kinda is special. We never had a roadmap before with time estimates, and a good reason to stick to it
09:13 wayland76 We've had time estimates before :)
09:13 wayland76 They were wrong :)
09:13 moritz_ that's why I said "and a good reason to stick to it"
09:13 wayland76 I figured that :)
09:15 masak it's definitely an ambitious time plan before April.
09:15 masak I wouldn't be surprised if we'll have to compromise on some of the features slated for April.
09:16 masak (but it's still a very good idea to have set a concrete goal)
09:18 masak are there visitor statistics for rakudo.org and perl6-projects.org ?
09:19 zloyrusskiy joined #perl6
09:19 moritz_ I could assemble some for p6p
09:20 PacoLinux joined #perl6
09:21 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 #perl6
09:22 masak wayland76: depends on the state of the ROADMAP at that point, I assume.
09:23 masak moritz_: I had something like this in mind: http://github.com/masak/web/graphs/traffic
09:24 Su-Shee joined #perl6
09:24 Su-Shee good morning.
09:27 masak Su-Shee: o/
09:29 Su-Shee o/� <-- waving with a coffee-pot in the hand. ;)
09:30 moritz_ masak: http://moritz.faui2k3.org/tmp/p6p.html
09:30 masak moritz_++
09:30 masak and interesting results, too!
09:31 * masak couldn't see Su-Shee's coffee-pot because of differences of encoding
09:32 masak 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.
09:33 masak ah.
09:33 moritz_ masak: no idea
09:39 * wayland76 hopes Su-Shee spills no coffee :)
09:39 wayland76 masak: re: ROADMAP, in other words, no we won't, unless we agree to it now :)
09:39 zamolxes joined #perl6
09:40 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 :)
09:40 wayland76 masak: won't spend the last month fixing bugs instead of adding features
09:41 masak ah.
09:41 masak wayland76: it's more like, when March rolls around, what's most important?
09:41 masak might be bugfixes, might be making that last feature fall into place.
09:41 masak agreeing to it now makes little or no sense by me.
09:42 wayland76 masak: Well, I agree, but maybe we should agree that it's a good idea in theory now :)
09:43 masak yes, it sounds like a good idea.
09:43 masak I just think it'll be fairly self-regulating.
09:44 wayland76 Yeah, good point :)
09:44 wayland76 (re self-reg)
09:46 wayland76 Did people see that Parrot has had lots of features removed this time?
09:46 wayland76 Well, I guess there's no point me saying that -- the people who care already know :)
09:46 masak aye, because 1.4 was a milestone release of some kind.
09:46 masak and the Parrot team remove deprecated things after milestone releases.
09:55 [particle]1 joined #perl6
10:02 pmurias joined #perl6
10:03 eternaleye joined #perl6
10:10 mikehh rakudo (0d4fe08) builds on parrot r40543 - make test/make spectest (up to 27988) PASS - Ubuntu 9.04 amd64
10:11 tomaw_ joined #perl6
10:18 rafl_ joined #perl6
10:20 omega_ joined #perl6
10:23 Maddingu1 joined #perl6
10:28 Su-Shee left #perl6
10:51 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:52 masak would it be possible to simulate something like that in existing Perl 6?
10:58 szabgab_ joined #perl6
11:11 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.  http://www.rakudo.org/node/51
11:13 jnthn wayland76: Good catch, fixed (typo most likely).
11:16 renormalist joined #perl6
11:17 moritz_ funny thing is, if you google for Ian Hague the first hit is from perlbuzz ;-)
11:18 szbalint good karma :)
11:20 donaldh joined #perl6
11:27 explorer joined #perl6
11:29 donaldh left #perl6
11:40 masak joined #perl6
11:46 molaf joined #perl6
11:47 meteorjay joined #perl6
11:49 rdice joined #perl6
11:50 payload joined #perl6
11:58 BinGOs joined #perl6
12:00 molaf joined #perl6
12:09 takadonet joined #perl6
12:09 takadonet morning all
12:19 ruoso joined #perl6
12:20 pmurias ruoso: hi
12:20 pmurias ruoso: what flags do you pass to Configure?
12:23 moritz_ rakudo: say %*VM.keys
12:23 p6eval rakudo 0d4fe0:  ( no output )
12:23 moritz_ rakudo: say ~%*VM.keys
12:23 p6eval rakudo 0d4fe0:  ( no output )
12:23 ruoso pmurias, the only flag I defined was -DSMOP_INTEGRATION
12:23 ruoso but we still need the smop sources to be compiled inside the perl sources
12:24 moritz_ rakudo: say %*VM.perl
12:24 p6eval rakudo 0d4fe0:  ( no output )
12:24 moritz_ rakudo: say $*VM.perl
12:24 p6eval rakudo 0d4fe0:  ( no output )
12:24 moritz_ rakudo: say 2
12:24 p6eval rakudo 0d4fe0:  ( no output )
12:24 szbalint uh-oh :)
12:24 moritz_ something is very broken.
12:27 pmurias ruoso: i hand hacked them into the build system... testing now
12:28 ruoso pmurias, coool
12:28 moritz_ rakudo: say 1
12:28 p6eval rakudo 0d4fe0: OUTPUT«1␤»
12:28 moritz_ rakudo: say %*VM<config><infodir>
12:28 p6eval rakudo 0d4fe0: OUTPUT«/home/evalenv/p2/info␤»
12:30 masak joined #perl6
12:32 takadonet hey masak
12:33 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.
12:35 * moritz_ has a secrit plan for world domination, to be prototyped over the weekend
12:37 omega joined #perl6
12:38 Infinoid if I suddenly feel dominated, I'll know the prototype worked
12:41 moritz_ masak: does SVG.pm work as advertised in the Pod? (ie with :[...])
12:42 masak moritz_: barring the recent Rakudo bug, yes.
12:42 moritz_ aka "no" ;-)
12:43 jnthn Where recent Rakudo bug = a regression?
12:43 masak jnthn: not sure, but I think so.
12:44 masak 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 #perl6
12:45 masak moritz_: I should perhaps add a note in SVG.pm on how to work around that bug.
12:45 jnthn RT#?
12:48 * moritz_ can't find it
12:48 moritz_ masak: your call
12:50 masak it's can't hurt.
12:50 masak s/'s//
12:51 frettled Statement not terminated properly at line 1, near "\n"
12:51 frettled ;)
12:54 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:55 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 ;-)
12:55 ruoso pmurias, I've been thinking about it.. I think we can simplify it.. at least for this core smop modules
12:56 wayland76 moritz_: The drawback is, people would sue you when you took the blame :)
12:56 eiro joined #perl6
12:57 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
12:57 moritz_ wayland76: I'd only take the moral blame, not the legal
12:57 frettled So you're free to _blame_ them, but they won't take responsibility. :D
12:57 wayland76 Ah, ok, moritz_'s solution might work.  frettled's I'm not so sure about :)
12:58 wayland76 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.
12:58 frettled He said the company would take the _money_ ;)
12:58 wayland76 Oh, got it :)
12:59 wayland76 However, the kind of people that would hire you would probably get you in trouble in the end for receiving stolen funds or something :)
13:00 * wayland76 can't wait for a new, multi-core computer, where my web browser won't take 95% of the CPU :)
13:01 moritz_ hey, multicore is the only way in which a browser can take up more than 100% CPU ;-)
13:01 frettled mm
13:01 wayland76 Well, yes, but my new desktop is going to be dual Xeon.  That should solve the problem :)
13:03 wayland76 Oh, did I say it takes 95% CPU and *also* hasn't responded in over 2 minutes? :)
13:04 moritz_ maybe you should open less tabs :-)
13:04 wayland76 ³‘¤¾½€¼  single-threaded browsers
13:04 wayland76 I don't know how to open less tabs, but I could open fewer tabs :)
13:05 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
13:06 frettled that's not much.
13:06 wayland76 I'm sure I've gone double that both ways (ie. quadruple tabs) in the past
13:06 masak wayland76: I just restarted Firefox here. had to go offline, because it can't load the 2k tabs into memory all at once.
13:06 wayland76 Yeah, I think one site has some misbehavoiur
13:06 frettled I cleaned up my Firefox thingy the day before yesterday, went from around 130-150 tabs to 20-ish.
13:07 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.
13:07 masak moritz_: well, that becomes the effect, no? :)
13:07 wayland76 Well, I had trouble with my DVD Burner today, and rebooted, so my tabs are still low :)
13:07 frettled masak: two thousand?  holy schmoly
13:07 wayland76 I'm actually using Seamonkey :)
13:07 moritz_ masak: but links instead of tabs would be a bit more resource friendly
13:07 masak frettled: I know. it's Twitter's fault. after I started using it, my number of tabs experience a net growth each day. :/
13:07 frettled I'm using Opera (or Safari) to view the synopses, because Firefox can't take'm.
13:08 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!!! :)
13:08 frettled heh
13:08 * masak doesn't even know what Cialis is
13:08 frettled wayland76: TYVM for getting the webserver with the IRC logs spamlisted ;)
13:09 frettled masak: it's the active ingredient in Viagra, I think
13:09 wayland76 I think the KDE browser has the same backend as Webkit
13:09 frettled masak: at least it seems to crop up in lots of Viagra related spam.
13:09 moritz_ wayland76: no, KHTML vs. webkit
13:09 masak frettled: ah, convenient -- only buying the active ingredient.
13:10 frettled masak: hee-hee
13:10 moritz_ they had a common source, or merged at one point, but are diverging again today
13:10 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
13:10 wayland76 moritz_: Thanks.
13:10 [particle] frettled: it's a competitor to viagra. different company, similar drug
13:11 wayland76 [particle]: I think it was masak that asked that :)
13:11 frettled [particle]: aha!  Now why would you know that? :D
13:11 wayland76 "So what did you do today son?"  "I hung out on #perl6 and talked about drugs"
13:12 [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'
13:12 wayland76 Btw, one thing I found while fiddling with the spam filter -- the word "specialist" contains the word "cialis"
13:13 wayland76 And I accidentally blocked someone from sending an e-mail with the subject line "My wife needs to see a specialist" :)
13:14 Matt-W doh
13:14 Matt-W spam filtering is a difficult thing
13:15 * masak always liked Graham's "A plan for spam"
13:15 masak he makes it seem so easy!
13:15 Matt-W yeah
13:15 Matt-W but the spammers read it too
13:16 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:17 wayland76 I don't get much spam.  My e-mail gets filtered by both pobox.com and by my local mail provider
13:17 wayland76 I also liked the solution to Alan Ralsky or whatever his name was
13:18 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 :)
13:19 [particle] frettled: they air mostly during live televised sports events, of course
13:19 masak no TV here either.
13:20 frettled [particle]: heh :)
13:20 frettled masak: statistical filtering has been implemented in several popular anti-spam engines for years.
13:20 wayland76 Well, I don't like watching sport either, so I'm doubly protected :)
13:20 * jnthn has a TV in his appartment, but only because it was there when he arrived.
13:20 * wayland76 lends jnthn some virtual pliers :)
13:20 masak frettled: I'm sure it has.
13:21 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. ;-)
13:22 * wayland76 thinks football = Australian Rules Football
13:22 [particle] fc barcelona played here last week, i went to the game.  they're stunning.
13:22 * jnthn usually watches the world cup and the european cup.
13:23 jnthn 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.
13:24 frettled Filtering spam is easy.  Losing the false positives isn't.
13:24 * jnthn peeks at the latest p6l filename literals discussion
13:25 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.
13:25 frettled jnthn: that discussino had me confused
13:25 frettled «discussino» - that almost looks Italian
13:25 wayland76 confused in what way?  Considering that I wrote some of it :)
13:26 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 donaldh joined #perl6
13:26 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...
13:27 masak moritz_: ack.
13:27 PerlJam (good $localtime btw)
13:27 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
13:27 * moritz_ wonders how we'll solve the problem that most OSs store file names as bufs, not Str
13:28 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 EDevil_ joined #perl6
13:28 frettled Is that «explosive bikeshedding»?
13:28 * PerlJam is reading the IO thread now
13:28 jnthn It'd help if people could remember that there *is* no root of the filesystem on Windows.
13:29 frettled jnthn: I also thought that the idea about a different quoting construct was interesting.
13:29 jnthn Well, other than the empty string..
13:29 frettled jnthn: mm
13:29 jnthn ;-)
13:29 masak Matt-W: I haven't heard anything about Form in quite a while. have you stopped hacking on it?
13:29 frettled I've refrained from commenting on the mails because I don't know where to start.
13:30 frettled 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
13:30 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.
13:31 wayland76 (please await my withering reply to the IO thread :) )
13:31 frettled wayland76: so it's not just me, then :D
13:31 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
13:31 Matt-W jnthn: yes that would be a helpful remembering
13:31 masak Matt-W: will it help if I alternately encourage you and prod you with something sharp? :P
13:31 * Matt-W might write a reply to it later if he can think of a useful contribution
13:31 Matt-W masak: I'm not sure about the prodding me with something sharp
13:31 wayland76 masak: Use a carrot -- it can be used for both :)
13:31 moritz_ ... or retribution ;-)
13:31 masak I'm getting a Null PMC access when running t/spec/S03-operators/autoincrement-range.rakudo
13:32 frettled I'm thinking that too much syntax is _bad_ for this IO stuff.
13:32 masak anyone else also get that?
13:32 masak I'm getting it after test 33.
13:32 frettled Adding URL classes should be avoided unless we want things to be fetched by something other than fopen()-like methods, IMO.
13:32 * moritz_ rebuilds Test.pir to run it
13:32 wayland76 frettled: Agree, but the special quoting construct solves the main problem in the Draft IO specs as they currently stand
13:32 moritz_ masak: works fine here.
13:32 Matt-W it might be nice to have a binary operator for concatenating paths
13:33 Matt-W but that could go in with pretty much any other solution
13:33 * moritz_ wanders off for a weekend without internet access
13:33 PerlJam moritz_: have fun!
13:33 frettled moritz_: enjoy!
13:33 moritz_ thanks, you too ;-)
13:33 masak moritz_: have a nice weekend!
13:33 Matt-W bye moritz_
13:34 frettled wayland76: in what way?
13:37 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.
13:38 wayland76 It would also make it reasonable to put things like :e on FSNode instead of Str
13:39 wayland76 (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.
13:39 frettled Then again, the methods could be role-based.
13:39 wayland76 I'm not sure whether it should be a subclass, or a role, or a "has Str $.name" or something
13:40 wayland76 And since I'm not sure, I'll leave that to be answered by someone more intelligent
13:40 frettled Heh
13:40 frettled You could raise the issue, though.
13:40 frettled There are good arguments to be made for several of the solutions.
13:41 Matt-W It's not a subclass of Str
13:41 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 :)
13:41 frettled As long as I can do tricks on lists/arrays of strings/filehandles/whatnot, I don't mind.
13:41 frettled wayland76: It's easy to seem to know what one's talking about.
13:42 sri_kraih joined #perl6
13:42 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 :) )
13:42 frettled :D
13:43 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. ;
13:44 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 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?
13:45 wayland76 jnthn: Ok, I'll keep that in mind as I hunt a particular bug.
13:45 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:46 jnthn wayland76: One thought - is it inside an eval?
13:46 wayland76 jnthn: Have I asked you about role predeclarations yet?
13:46 jnthn wayland76: Moze byt. ;-)
13:46 wayland76 jnthn: Not sure -- I stopped working on the project a week or two ago for various reasons
13:46 wayland76 Moses bites?
13:46 jnthn wayland76: I know role Foo { ... } doesn't work yet. But if there's more than that...
13:46 wayland76 No, that's the one
13:47 jnthn Ah, OK. Then you probably did. :-)
13:47 wayland76 Actually, it's all coming back.  I asked.  Sorry.
13:47 wayland76 Let me ask a different question -- what part of Rakudo deals with predeclared subs?
13:47 wayland76 (ie. matches them up with the real thing?)
13:47 masak ah, my bug in autoincrement-range.rakudo was related to try blocks and not having ICU installed.
13:47 * masak submits rakudobug
13:47 frettled what else is new? :)
13:48 frettled wayland76: locale?  huh?  I think I must have fallen off the wagon back there.
13:48 carlin joined #perl6
13:48 wayland76 frettled: It's impossible to determine how to display a non-ASCII filename correctly unless you know the encoding/locale stuff
13:49 wayland76 Because some are not UTF-8 :)
13:49 wayland76 I don't know stuff about filenames, I just read part of a Tom Christiansen post on it :)
13:49 Matt-W filenames are far more confusing than they have any right to be
13:49 Matt-W we should certainly provide as much ease of use for them as we can
13:49 PerlJam wayland76: Is that's like staying at a Holiday Inn Express?
13:50 frettled wayland76: ah, displaying them, yes.
13:50 * Matt-W works in the same building as a holiday inn express
13:50 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 #perl6
13:50 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 :)
13:51 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:52 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.
13:52 wayland76 PerlJam: Well, if I had a TV and lived in the USA, I guess I'd know these things :)
13:52 PerlJam wayland76++ way to use the laziness!
13:53 wayland76 "Most people get good Karma for knowing things.  I get it for being ignorant!" -- wayland76
13:53 wayland76 :)
13:54 frettled wayland76++
13:54 wayland76 Please don't make me laugh wile drinking :)
13:54 wayland76 s/wile/while/ :)
13:54 PerlJam wayland76: perl steals all the good ideas from other languages; you steal all the good ideas from other people.  Use what works.
13:55 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.
13:55 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
13:55 masak anyone else?
13:55 frettled Yup, I'm pretty sure those failed for me.
13:56 frettled I asked about this tonight, and I was told that they were known.
13:57 frettled That goes for the three cases of pre-declared variables as well.
13:57 frettled The computer I built rakudo on is 2.5 km away and in suspend mode, so I can't really check right now.  :)
13:58 PerlJam frettled: those are the same I asked about yesterday or the day before.  Pm said they were known.
13:58 frettled yup
13:59 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 #perl6
13:59 frettled PerlJam: two different tests testing that?  hm.
14:01 * frettled attempts to go home. :)
14:02 * wayland76 attempts to go to bed, although it is but two minutes past midnight :)
14:04 * Matt-W has to wait 56 minutes to go home
14:05 masak *cough*Form.pm*cough*
14:05 Matt-W if I worked on that now, it would belong to my employer
14:05 masak oh noes!
14:07 Matt-W quite
14:07 Matt-W so I can't
14:07 PerlJam Matt-W: definitely do *NOT* work on Form.pm then.
14:08 Matt-W besides, I'm trying to figure out how to write a nasty test
14:08 Matt-W PerlJam: indeed, they wouldn't know what to do with it
14:08 Matt-W not to mention that git is unauthorised open source software
14:08 Matt-W which I could be fired for using
14:08 PerlJam Matt-W: does that also mean that any code you write on #perl6 right now also belongs to your employer?  :)
14:08 Matt-W theoretically, yes
14:08 PerlJam "fired for using git" ... /me boggles
14:09 Matt-W it's unlikely
14:10 Matt-W but it's in the IT policy
14:10 Matt-W so they could if they were feeling particularly mean
14:10 Matt-W same goes for parrot and rakudo
14:10 Matt-W last week we got approval for... drumroll please
14:10 Matt-W GNU Make
14:10 Matt-W once the legal department realised that the GPL doesn't mean anything you build with the assistance of GNU Make becomes GPLed
14:10 Matt-W which is that old FUD
14:14 [particle] rakudo: my %h = 1 => 3; my $x = %h.delete(1); say $x
14:14 p6eval rakudo 0d4fe0: OUTPUT«3␤»
14:14 icwiener joined #perl6
14:14 * wayland76 actually starts heading for bed :)
14:15 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;
14:15 p6eval rakudo 0d4fe0: OUTPUT«Array()Array()␤»
14:17 _jaldhar joined #perl6
14:18 PacoLinux joined #perl6
14:24 RonOreck joined #perl6
14:35 finanalyst left #perl6
14:37 tak11 joined #perl6
14:46 xomas_ joined #perl6
14:48 Psyche^ joined #perl6
14:51 pmurias_ joined #perl6
14:53 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:59 nihiliad joined #perl6
15:05 jan_ joined #perl6
15:20 donaldh joined #perl6
15:21 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)␤»
15:21 arthur-_ map does not work ?
15:22 jnthn arthur-_: Yes, but not with Perl 5 syntax.
15:23 jnthn std: my @a = (1,2,3); my @b = map { $_++ } @a; @b.perl.say
15:23 p6eval std 27988: OUTPUT«[31m===[0mSORRY![31m===[0m␤Statements must be separated with semicolon at /tmp/fVJWhL4dtz line 1:␤------> [32mmy @a = (1,2,3); my @b = map { $_++ } [33m⏏[31m@a; @b.perl.say[0m␤    expecting any of:␤ bracketed infix␤  infix stopper␤    standard stopper␤ statement␤
15:23 p6eval ..statement modi…
15:23 jnthn rakudo: my @a = (1,2,3); my @b = @a.map: { $_++ }; @b.perl.say
15:23 jnthn or
15:23 p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3]␤»
15:23 jnthn rakudo: my @a = (1,2,3); my @b = @a.map({ $_++ }); @b.perl.say
15:23 p6eval rakudo 0d4fe0: OUTPUT«[1, 2, 3]␤»
15:24 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?
15:24 p6eval rakudo 0d4fe0: OUTPUT«[2, 3, 4]␤»
15:24 mofino s/would//
15:24 jnthn mofino: Did you see that inside a regex?
15:24 arthur-_ jnthn: thx a lot
15:24 jnthn In that case, it's just the way to make a variable declaration inside a regex.
15:24 mofino ohh, umm, I don't think so... I'm not sure now
15:24 jnthn Outside of them, it's just "my $foo"
15:24 mofino ok
15:24 PerlJam mofino: I bet you did.
15:25 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
15:25 mofino ahh, that was exactly it
15:25 jnthn :-)
15:25 mofino so that's what was going on!
15:27 frettled Hmm, isn't there a quick wy around this particular example without using map?
15:29 masak rakudo: say ((1,2,3) >>+>> 1).perl
15:29 p6eval rakudo 0d4fe0: OUTPUT«[2, 3, 4]␤»
15:29 * jnthn attempts to re-write and fix up .*, .+ and .? and eliminate a chunk of code in the process.
15:33 _jaldhar joined #perl6
15:34 takadonet can you pass an action object to method parsefile? i .e Grammar.parsefile("filename",:action(Action.new))
15:34 morensel joined #perl6
15:34 alester http://perlbuzz.com/2009/08/help-perl101org-​become-a-great-tool-for-perl-newcomers.html
15:35 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.
15:35 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.
15:35 masak takadonet: I don't see why not.
15:35 KyleHa joined #perl6
15:36 takadonet nevermind my mistake. I misspelled the new of the Action class .....
15:36 takadonet s /new/name/
15:36 PerlJam takadonet: and rakudo didn't complain?
15:36 KyleHa Mornin' #perl6.
15:37 takadonet PerlJam:It did but I was not listening
15:37 alester So what's the Perl 6 equivalent to
15:37 alester my @stooges = qw( Larry Curly Moe Iggy );
15:37 jnthn takadonet: Would it help if we uppercases all error messages, so they're REALLY LOUD?
15:37 alester It's my @stooges = <Larry Curly Moe Iggy>;
15:37 alester right?
15:37 PerlJam alester: yes
15:37 jnthn alester: Yes.
15:37 rbuels joined #perl6
15:38 takadonet jnthn: NO that's fine :)
15:38 jnthn ;-)
15:38 alester So <> must no longer be glob?
15:38 masak KyleHa: mornin'
15:38 masak alester: correct.
15:38 KyleHa alester: No, I don't think Iggy was a Stooge.  Perhaps you're thinking of Shemp.
15:39 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 KyleHa Nyuck nyuck nyuck!
15:40 alester KyleHa:  http://en.wikipedia.org/wiki/The_Stooges
15:50 JimmyZ joined #perl6
15:51 JimmyZ masak: Maigao, there is a book <<The TIBET Code>>.
15:51 masak JimmyZ: what's it about?
15:52 KyleHa @seen pmichaud
15:52 lambdabot pmichaud is in #perl6. I last heard pmichaud speak 18h 56m 52s ago.
15:52 JimmyZ masak: The secret of Tibet
15:53 SmokeMachine joined #perl6
15:53 JimmyZ masak: a novel.
15:53 masak JimmyZ: ah.
15:54 JimmyZ my classmate bought it. there were 7 books.
15:55 JimmyZ I think that agree with you.
15:55 masak thanks for the tip.
15:55 masak I'll look into it.
15:59 ruoso pmurias_, I think we only need to make the s0native, nagc and s1native statically into the p5 lib
15:59 ruoso the rest can be loaded later as any other p5 lib
15:59 tann joined #perl6
16:00 iblechbot joined #perl6
16:01 __ash__ joined #perl6
16:02 __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 -- http://gist.github.com/167912 -- apparently Parrot has gotten stricter of late with decoding UTF-8.
16:02 phenny masak: I'll pass that on when mberends is around.
16:02 masak __ash__: not necessarily, but since you ask, probably yes.
16:03 __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: http://www.kw2007.com/news-GBC32​316FAE664C529758D9C9321CC8E5.htm
16:03 __ash__ (i am trying to find instances of 'self.Foo::bar()'  or $a.Foo::bar()
16:04 jnthn __ash__: We're generally trying to stay in line with STD.pm.
16:04 jnthn rakudo: my $x; $x.Foo::bar()
16:04 p6eval rakudo 0d4fe0: OUTPUT«Method 'Foo::bar' not found for invocant of class 'Failure'␤»
16:04 jnthn __ash__: We're already parsing it fine.
16:04 jnthn __ash__: Or close enough. We just need to do something smarter with it inside actions.pm
16:05 __ash__ oh okay
16:05 __ash__ i wasn't sure if i needed to add a grammar rule for that
16:07 __ash__ jnthn: so, the dotty method in actions.pm is what is handling that?
16:08 jnthn Yes, those and the ones it calls.
16:08 jnthn See also methodop
16:08 __ash__ kk, thanks
16:14 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:15 __ash__ jnthn: when it's up, i'll take a look at it, so hopefully i can understand this a bit better
16:17 __ash__ 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 #perl6
16:18 jnthn The actions method will generally build some AST and then use make to store it.
16:18 jnthn The .ast method gets the AST built for part of the sub-tree.
16:18 jnthn So we're building up the AST as we parse.
16:20 jnthn 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:21 riffraff joined #perl6
16:22 __ash__ make takes an AST ? so a PAST object?
16:22 jnthn Correct.
16:23 jnthn 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:29 __ash__ thats fine
16:30 __ash__ i am sure i can figure it out, i am just a bit slow at times at connecting the dots
16:32 jnthn Method invocation in Perl 6 is decidedly non-trivial once you dig into it.
16:32 rfordinal joined #perl6
16:41 payload joined #perl6
16:41 alester whoo, the first Perl 6 content for Perl101. http://perl101.org/arrays.html
16:47 PerlJam alester: this is starting to feel like Joseph Hall's version of perlfaq.com
16:47 alester ok
16:50 alester Not sure where you're going with that, PerlJam.
16:57 kane_ joined #perl6
17:00 tann_ joined #perl6
17:04 KatrinaTheLamia joined #perl6
17:16 PerlJam sorry, work stuff.
17:17 PerlJam 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:18 PerlJam 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:21 dalek rakudo: 58bef37 | jnthn++ | src/pmc/p6invocation.pmc:
17:21 dalek rakudo: Detect a Null PMC Access condition that could occur and throw a more meaningful exception.
17:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/5​8bef37b66ce0ba36553584e92e166dd3d7ed5df
17:21 dalek rakudo: 4a22048 | jnthn++ | src/ (2 files):
17:21 dalek rakudo: 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.
17:21 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​a220483fa6f7717e2e0a9f7def72e7c242161c8
17:24 pugs_svn r27990 | jnthn++ | [t/spec] Some corrections to lastcall.t (currently NYI in Rakudo).
17:32 kane_ joined #perl6
17:32 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:33 jnthn TimToady: About?
17:36 TimToady vaguely
17:37 jnthn TimToady: Does lastcall only apply to dispatches of the form $obj.*@cands?
17:37 jnthn Or $obj.*foo
17:37 TimToady it applies anywhere you could say nextsame
17:37 jnthn That is, where we are working our way through a list of methods to dispatch to?
17:37 jnthn Oh, so it interacts with nextsame rather than with .* ?
17:37 TimToady it means to throw away the rest of the candidates
17:38 jnthn Since $obj.*@cands and $obj.@cands are quite different.
17:38 jnthn OK, so is S12-methods/lastcall.t correct?
17:38 TimToady it's useful for anywhere .* semantics would keep oing
17:38 TimToady *going
17:39 TimToady looking
17:39 jnthn OK, but $x.*@foo does not provide a candidate list in the same sense that $x.@foo does.
17:39 jnthn In the first, we're specifying a list of methods to loop through, and building a list of captures.
17:39 jnthn In the second, we're using it as the candidate list in place of the one that the dispatcher would construct.
17:40 jnthn That is, the first case will normally call everything in @foo
17:40 jnthn Whereas the second only calls more if there's an explicit nextsame/callsame/nextwith/callwith.
17:40 jnthn I'm trying to work out how lastcall interacts with both of these.
17:40 jnthn Or which one it interacts with.
17:42 TimToady the doit methods must be declared multi
17:42 TimToady but the doit Int should not go to the doit () since it cannot bind
17:42 jnthn Yes, I fixed that locally.
17:42 jnthn Oh, committed a few moments ago..
17:42 TimToady only candidates that bind can be run
17:42 jnthn Heh.
17:42 jnthn That's a separate problem.
17:43 jnthn (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
17:43 TimToady lastcall is implied at the end of such methods
17:44 jnthn So it only applies to .* and .+ dispatches?
17:44 TimToady unless a next/call is issued
17:44 TimToady yes, or maybe some hypers
17:44 TimToady not sure
17:44 TimToady probably not hypers
17:44 TimToady since order is not guaranteed there anyway
17:44 jnthn OK, you say "unless a next/call is issued"...
17:44 PerlJam TimToady: what happens when I call nextsame at the end of the method that was invoked as $obj.meth()?
17:44 jnthn What are the semantics of nextsame/callsame etc when there are no more candidates?
17:45 jnthn PerlJam: It will defer to the next candidate.
17:45 TimToady failure of some sort
17:45 jnthn PerlJam: And whatever that next candidate returns will be the resturn value.
17:45 jnthn TimToady: Failure as in, a failure object, not an exception?
17:45 TimToady just as if .* found no applicable methods
17:46 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
17:46 TimToady okay, .? then
17:46 TimToady though maybe that just returns Nil
17:46 jnthn .? currently hands back a failure.
17:47 jnthn (If there's nothing to call)
17:47 TimToady anyway, can't chat, hafta go away for a while
17:48 jnthn OK, so a lastcall followed by a nextsame or similar will always fail?
17:48 jnthn OK, catch you later. :-)
17:48 TimToady yes, I would think
17:48 TimToady it's sort of a don'tcallsame :)
17:48 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?
17:48 TimToady callsame should also trim the list
17:49 TimToady correct
17:49 TimToady later &
17:49 jnthn OK, so the test is incorrect in that sense.
17:49 jnthn Thanks. :-)
17:49 * jnthn was wondering how on earth he'd implement the semantics the test seems to call for :-)
17:51 cdarroch joined #perl6
17:52 gigabo joined #perl6
18:01 PacoLinux joined #perl6
18:05 kane_ joined #perl6
18:06 araujo joined #perl6
18:30 Chillance joined #perl6
18:45 masak joined #perl6
18:46 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 masak there's six of them in total, three of each kind.
18:49 __ash__ joined #perl6
18:49 [particle] masak: yes, those are generated
18:50 masak [particle]: I've already pushed a .gitignore fix, relying on the forgiveness principle.
18:50 masak (aye, I assumed they were generated, since I didn't create them)
18:50 dalek rakudo: d50cabc | masak++ | .gitignore:
18:50 dalek rakudo: [.gitignore] ignore some new generated files
18:50 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/d​50cabccae3c668f98fa92e187ccba5f0ec35b2b
18:52 masak tonight's quiz: Temporal::DateTime (as presently specced) or Temporal::Instant (as originally specced)?
18:52 masak lay your votes.
18:53 colomon_ masak: Pointer to the Temporal source?
18:53 masak colomon_: src/setting/Temporal.pm
18:53 colomon_ Oh!
18:54 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.
18:54 masak oh, and the quiz question was to be read "what do people prefer?" (and perhaps "why?")
18:54 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.
18:55 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 #perl6
18:56 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.  :)
18:56 masak colomon_: oh. S32/Temporal
18:56 masak colomon_: but as I said, I believe the spec can be better than it is today.
19:00 colomon_ Is your Temporal::Instant visible someplace, or is the question mainly which name is better?
19:00 gigabo left #perl6
19:01 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.
19:01 masak here's an argument for that: it rhymes better with Temporal::Duration.
19:01 masak here's an argument against: Perl 5 has prior art with DateTime. people will recognize it.
19:02 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)
19:03 dalek rakudo: 62f6082 | jnthn++ | src/classes/Object.pir:
19:03 dalek rakudo: Fix incorrect semantics in interaction of .? and multis.
19:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​2f6082e98b4c4e1a2d77eab1782152501fa0fe6
19:03 dalek rakudo: bae2cfa | jnthn++ | src/ (2 files):
19:03 dalek rakudo: 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.
19:03 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/b​ae2cfa02728b37238b64bd964cdd216779281c5
19:03 colomon_ gotcha.
19:03 masak jnthn: (re r27992) looks similar to what you showed me at YAPC::EU.
19:04 jnthn masak: Related-ish, but not same.
19:04 masak right.
19:04 jnthn masak: We were obviously wrong in a place where there was an obvious answer here.
19:04 masak I certainly haven't run into that bug.
19:05 jnthn No, but how often do you use C<.?>? :-)
19:05 szabgab joined #perl6
19:05 masak until now, not very often.
19:06 masak I mainly see it as a replacement for the Null Object Pattern.
19:06 masak (weaving design patterns into the language)++
19:06 jnthn :-)
19:07 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. ;-)
19:07 masak that's one vote for Instant. :)
19:07 masak jnthn: that makes me very glad indeed.
19:07 jnthn I want to subclass it as Temporal::Instance::Coffee.
19:07 jnthn erm, Instant
19:07 jnthn ;-)
19:07 masak jnthn: is that another vote for Instant? :)
19:08 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.
19:08 masak szbalint: as long as it's over IRC, I think I'd do pretty well. :)
19:08 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 masak colomon_: good point.
19:09 szbalint I liked your rl presentation in Lisbon too, you were doing okay :)
19:09 jnthn masak: In the .Net world they call them DateTime and TimeSpan, to give you a data point.
19:09 masak szbalint: thanks. :)
19:09 frettled DateTime is used in (sorry to mention it, really am) Python, too.
19:09 masak jnthn: I think I prefer Duration over TimeSpan, though.
19:10 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.
19:10 masak frettled: did you know that #perl6 is a hate-free zone? :) you're free to mention Python here.
19:10 frettled masak: if the methods and classes are similar to what the DateTime packages offer today, then using the same naming convention seems sane.
19:10 szbalint yeah, in all seriousness DateTime is probably better
19:10 masak ok, sticking with DateTime.
19:11 frettled masak: Is pity okay?
19:11 masak frettled: as long as it's sincere.
19:11 jnthn masak: Yes, I agree.
19:11 jnthn masak: I prefer Duration over TimeSpan.
19:12 jnthn DateTime vs Instant though is a more...hmm.
19:12 jnthn Are Instant objects meant to be mutable or not?
19:12 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.
19:12 frettled masak: yup
19:12 masak jnthn: dunno.
19:13 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
19:13 * jnthn -> nom
19:13 masak jnthn: the current Rakudo implementation does not have mutable objects.
19:13 masak frettled: it's a survival mechanism, for one thing.
19:14 frettled masak: not just that, but it's about Cool Things (well, to me)
19:14 frettled With my computer science background (I suppose that's it, or I'm just wired that way), programming languages are in general fun.
19:15 PerlJam frettled: I'm wired that way too :)
19:15 frettled But I've never gotten myself to learn lisp, for instance.
19:16 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:17 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 PacoLinux joined #perl6
19:18 mkelly32 hrm. so, undef isa 'Failure', which is apparently just an unthrown exception ?
19:19 mkelly32 so, 'throw undef' is a way of just throwing a generic error?
19:20 masak mkelly32: no, that'd be 'fail()', I think.
19:20 masak Perl 6 doesn't really have a 'throw' function.
19:21 mkelly32 oh,  http://dev.perl.org/perl6/rfc/63.html is just an rfc, i guess
19:22 masak says there in the URL. :)
19:22 mkelly32 yes. but i didn't read that. just was the first google hit..
19:23 mkelly32 hrm. so undef is a value. but, it's also the "Use of an undefined value" exception?
19:24 masak good question.
19:24 masak we had one of the implementors with us just now, but he's gone nomming.
19:25 masak so I guess the rest of us will just have to take a stab in the dark in the meantime.
19:26 masak rakudo: my $a = undef; say $a
19:26 p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤␤»
19:26 masak rakudo: my $a = undef; say $a + 5
19:26 p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤5␤»
19:26 masak rakudo: my $a = undef; $a++
19:26 p6eval rakudo 0d4fe0:  ( no output )
19:26 mkelly32 rakudo: sub foo { fail undef }
19:26 p6eval rakudo 0d4fe0:  ( no output )
19:26 mkelly32 rakudo: sub foo { fail undef }; foo();
19:26 p6eval rakudo 0d4fe0: OUTPUT«Use of uninitialized value␤»
19:27 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␤␤»
19:27 masak I hope that last example makes things clear.
19:28 mkelly32 so, that's for returning a "failure" value? hrm. interesting.
19:29 masak yes, it's meant to be an orthogonal return channel.
19:29 masak making possible both many interesting ways of success, and many interesting ways of failure.
19:30 masak instead of only one (like Perl 5), or the other (like Unix shells).
19:30 mkelly32 yes. interesting.
19:30 mkelly32 so, the way to just throw an exception is still die?
19:31 masak aye.
19:34 mkelly32 so, i can do something like: eval { something_that_might_die() }; if ($@) { given $@ { when FilesystemError { ... } } }
19:34 mkelly32 to handle specific error types?
19:34 mkelly32 where FilesystemError is something that isa Failure, i guess
19:35 masak mkelly32: no, eval {} is spelled try {} in Perl 6.
19:36 masak 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.
19:36 masak the CATCH block has the advantage that it does both the 'if' and the 'given' for you by default.
19:36 mkelly32 ok. so, it's about the same, semantics-wise, as c++?
19:37 masak don't know about that.
19:37 masak one difference, I think, is that here you'll find the CATCH block inside of the try block.
19:37 masak see S04 for details.
19:37 * jnthn back from nom
19:38 gigabo joined #perl6
19:38 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?
19:38 masak jnthn: ok.
19:38 jnthn rakudo: say undef ~~ Exception
19:38 p6eval rakudo 0d4fe0: OUTPUT«0␤»
19:38 jnthn I agree with Rakudo here. :-)
19:38 mkelly32 masak: ok. thanks.
19:39 mkelly32 rakudo: say undef ~~ Failure
19:39 p6eval rakudo 0d4fe0: OUTPUT«1␤»
19:39 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 #perl6
19:39 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?
19:39 masak s/for/of/
19:40 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 #perl6
19:41 pyrimidine joined #perl6
19:41 jnthn I would not expect Failure ~~ Exception.
19:42 masak in software, failure is the rule, not the exception. :P
19:44 leedo joined #perl6
19:44 andreasg_ joined #perl6
19:44 broquaint joined #perl6
19:44 kolibrie joined #perl6
19:45 pjcj joined #perl6
19:47 __ash__ if you want to add debug information to actions.pm how would you go about that?
19:48 justatheory joined #perl6
19:50 masak __ash__: so, you want to print things from NQP, is that the question?
19:51 __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"
19:51 jnthn *it
19:51 jnthn (using say("foo") from actions.pm won't end well...)
19:51 masak no?
19:52 jnthn No, which is kinda irksome at times.
19:52 masak why not?
19:52 jnthn IO.say is in the setting.
19:52 jnthn But we use the actions.pm to compile the setting.
19:52 __ash__ is there no way we could put a breakpoint in so at parse time on a test file it will halt possibly?
19:53 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.
19:53 jnthn Do you want to see the structure of a Match object?
19:53 jnthn masak: NQP doesn't have any built-in functions. Any that you see are supplied by Rakudo.
19:54 jnthn __ash__: For now best way is to print some stuff.
19:54 masak jnthn: oh!
19:54 __ash__ whats the right way to do that?
19:54 __ash__ and yes i do want to see the structure of a match object
19:54 masak jnthn: even the ones in the NQP test suite?
19:55 masak __ash__: say $/.perl
19:55 __ash__ k
19:55 jnthn __ash__: Also don't forget --target=parse
19:56 __ash__ is that why i keep getting Statement not terminated properly at line 1378, near "$/.perl; ?
19:56 jnthn ?
19:56 jnthn Oh
19:56 jnthn No, --target=parse is a command line option you can give to Rakudo.
19:56 jnthn Instead of compiling code, it will dump the parse tree.
19:57 jnthn 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
19:57 jnthn Statement not terminated - is that in NQP? If so, note calls there require parens.
19:57 masak __ash__: actually, forget my 'say $/.perl' tip, since you seem to be doing Rakudo internals and not a Perl 6 application.
19:58 masak 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. :-)
19:58 __ash__ okay, i think the right thing in my case is --target=parse not a say in the action.pm
19:59 Tene you could always use 'warn' instead.
19:59 Tene that should print to STDERR
19:59 __ash__ do those calls work in the parse phase?
19:59 jnthn warn may well work fine
20:00 jnthn __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?
20:02 jnthn docs/running.pod probably offers some info
20:02 jnthn Thhough the only other really useful one is --target=pir
20:02 jnthn There is a --target=post, but you almost certainly never want it.
20:02 __ash__ k, thanks
20:04 __ash__ --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 __ash__ but --target=past worked
20:05 jnthn Odd.
20:06 jnthn I guess you wanted $b.Foo::Bar();
20:06 jnthn Hmm, if I try and --target=parse just that, it works here.
20:07 jnthn oh hmm, seems class declarations when doing --target=parse cause upset.
20:09 __ash__ yeah i just commented out that line and it still gave me the error, so class definitions are causing that problem?
20:10 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
20:10 mkelly32 i think hash keys are always Str()
20:11 mkelly32 at least, if i do %foo{1}, a later look at %foo.keys tells me that that's been stringified.
20:12 masak mkelly32: yes, but that's a limitation of current Rakudo.
20:12 mkelly32 ah, ok.
20:13 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.  ;)
20:13 masak my sentiments exactly.
20:13 frettled That goes for real switch-case control blocks too.
20:14 masak oh yes.
20:15 jnthn masak: Hash[Int] will when implemetned mean th evalues are Ints yes.
20:16 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".
20:16 jnthn Hash[Int, :key(Foo)] I suspect.
20:16 jnthn But syntactic sugar iirc is
20:16 jnthn my Int %hash{Foo};
20:17 masak nice.
20:17 masak makes visual sense.
20:17 jnthn But you'd better be darn careful when making hash entries if doing this.
20:17 masak because they'll get coerced?
20:17 jnthn %hash<42> # oops
20:17 jnthn gah, bad example
20:18 masak ah, so it wasn't just me. :)
20:18 jnthn my Int %hash{Int}; # better example here :-)
20:18 jnthn So then
20:18 jnthn %hash<42> = 42; # oh noes, fail, because <42> = quoted string
20:18 jnthn Of course
20:18 jnthn %hash{42} = 42; # is fine
20:19 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".
20:19 masak that could even be caught at compile time, methinks.
20:19 jnthn Which is fine, because multi-dispatch means we can declare multiple versions of a role with different signatures. :-)
20:20 jnthn Heh. If somebody wrote a compile-time type analyzer/optimizer/checker. ;-)
20:20 masak I've been toying with the idea.
20:21 masak I need something to do with my copious spare time. :P
20:22 jnthn Well, you could always blog how to do it, and hope somebody else does it. ;-)
20:23 masak jnthn: that's true.
20:24 masak 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 masak I just need tuits, or somebody with tuits.
20:24 simcop2387 joined #perl6
20:26 * jnthn hides
20:27 masak :)
20:27 masak I wouldn't think of burdening you with more things before April.
20:27 masak well, besides submitting bugs, of course. there doesn't seem to be a way to stop that.
20:31 __ash__ jnthn: should i post a bug about the --target=parse issue?
20:33 jnthn __ash__: You can if it bothers you; I suspect it'll go away when we move to STD though.
20:34 jnthn 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
20:34 jnthn Which also involves us doing some things in a more STD-ish way.
20:35 jnthn __ash__: I've no strong feelings either way. A ticket doesn't harm.
20:36 __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. :-)
20:37 __ash__ oh, a tickets in there already
20:37 __ash__ http://rt.perl.org/rt3/Publi​c/Bug/Display.html?id=66546
20:38 jnthn Ah
20:38 jnthn Thanks for checking before submitting. :-)
20:38 * jnthn is happy that we didn't just get a dupe.
20:39 jnthn 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!
20:40 masak Thursdays are smiley-free? I must have missed that memo.
20:40 jnthn Since when were Thursdays smiley-free? :-O
20:40 masak how can you go a whole say without smileys? that sounds horrible.
20:41 frettled http://adasociety.wordpress.com/about/
20:41 jnthn say "I don't know :-|"
20:42 jnthn Woo. Now nextsame and friends fail softly.
20:42 masak jnthn++
20:42 jnthn TimToady++ for telling me they should. :-)
20:42 frettled Failing me softly with this bong ...
20:42 jnthn ...what bong?
20:43 frettled the one mst is bound to be smoking
20:43 jnthn Win!
20:45 __ash__ what is the value of $/ in methodop?
20:45 __ash__ the name of the method?
20:45 [particle] the Match object
20:45 __ash__ okay
20:45 masak rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; my %h = :a, :b; foo(|%h)
20:46 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
20:47 jnthn masak: is the flattening important to making the bug happen?
20:47 jnthn rakudo: multi foo(:$a!, *%_) {}; multi foo(:$b, *%_) {}; foo(:a, :b)
20:48 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.
20:48 jnthn No
20:48 jnthn OK, good.
20:48 masak I wasn't minimal, sorry. :)
20:48 jnthn If it were, it'd suck harder.
20:48 masak aye.
20:48 masak jnthn: I'm curious, do you see the bug?
20:48 masak I missed it at first.
20:49 jnthn They both can individually accept the parameters that are being passed.
20:49 jnthn So they are in some sense both valid candidates.
20:50 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.
20:50 jnthn Additionally, in the signature output :$a! has lost something.
20:51 masak here it is, shortened:
20:51 masak rakudo: sub foo(:$a!) {}; say &foo.signature.perl
20:51 p6eval rakudo 0d4fe0: OUTPUT«:(Any :$a)␤»
20:51 jnthn heh
20:51 masak jnthn: yes, you got it.
20:51 jnthn two bugs for the price of one. ;-)
20:51 masak the first bug you mentioned, I can't really relate to. :)
20:51 jnthn Unfortunately, they're two different fixes. :-)
20:52 * 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?
20:52 jnthn Oh, and lastcall.
20:52 jnthn masak: Let me check.
20:52 masak I'd dislike-ish that.
20:52 * masak prefers ties
20:52 * frettled wants his lazy lists and sparse arrays.  O:-)
20:53 Tene frettled: patches accepted.  we'll even help you write them.  :)
20:53 frettled hee-hee
20:53 frettled Somehow I knew someone would say something like that.
20:54 masak frettled: if you knew, does that mean that you volunteered?
20:54 masak I think it does.
20:54 jnthn So for tiebreaker
20:54 jnthn A the candidates are simply called in the order they were declared,
20:54 jnthn and the first one that successfully binds (and completes without
20:54 jnthn calling nextsame or nextwith) is considered the winner, and all the
20:54 jnthn other tied candidates are ignored.
20:55 masak o_O
20:55 masak is this S06?
20:55 masak ah, S12.
20:56 * masak reads the whole thing about tie-breaking
20:56 frettled masak: $@*&%
20:56 jnthn Plus laso
20:56 jnthn Likewise an ordinary named parameter does not participate as a tiebreaker,
20:56 jnthn but you can mark named parameters as required to effectively make
20:56 jnthn a switch based on named binding:
20:57 jnthn Those both from S12
20:57 jnthn =head1 Multisubs and Multimethods
20:57 jnthn Under that heading
20:57 masak jnthn: ah, the latter one seems to apply to our bug.
20:57 jnthn Right, it shoulda let the first one that wins, well, win. :-)
20:57 masak yes, already found it. ack++
20:57 jnthn It should be an easy enough fix.
20:57 masak urgh.
20:58 masak 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.
20:58 jnthn Oh?
20:58 jnthn You have a use case that this hurts?
20:59 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?
20:59 Tene I don't see it on the list... did I miss it?
20:59 masak Tene: you didn't miss it. I'm also waiting for it.
20:59 * jnthn would be curious to see that one.
21:00 jnthn 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. :)
21:00 masak that's what '!' does.
21:00 jnthn And if that wasn't passed, that candidate wouldn't be bindable, so would be passed over.
21:00 masak hm.
21:01 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.
21:02 masak by the way, a t-shirt with "I want ties to blow up" on it would be kinda nice.
21:05 jrtayloriv joined #perl6
21:06 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 ...
21:06 jnthn masak: Well, I guess you can always raise it with TimToady and point out your use-case/expectations.
21:07 jnthn 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.
21:07 masak jnthn: ok. sounds good.
21:07 masak I haven't processed the whole section in S12 yet, so I don't know if I'm affected.
21:10 jnthn If I understand S12 correctly, then by the spec the tie you got earlier is a bug.
21:10 jnthn And the first candidate that appeared textually in your program shoulda won.
21:11 masak yes.
21:11 masak I agree, though I didn't know that when I typed in that program.
21:11 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.
21:11 masak but that has almost nothing to do with the use case in my slides software.
21:11 masak there, I have only multies with required nameds.
21:12 jnthn Is "first wins" a problem there?
21:12 jnthn That is, first that has its signature satisfied?
21:12 masak that's my question, essentially.
21:12 masak if it isn't then, I'm happy.
21:12 masak s/ then,/, then/
21:13 jnthn rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a); foo(:b);
21:13 p6eval rakudo 0d4fe0: OUTPUT«1␤2␤»
21:13 masak \o/
21:13 jnthn Does that example capture what you want?
21:13 masak aye.
21:13 masak well,
21:13 masak rakudo: multi foo(:$a!) { say 1 }; multi foo(:$b!) { say 2 }; foo(:a, :b)
21:13 p6eval rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤in Main (/tmp/WAUvtLCP7e:2)␤»
21:13 jnthn OK, that example is correct by Rakudo and the sepc.
21:13 masak that one does.
21:13 jnthn That is also correct by the spec.
21:14 masak excellent.
21:14 jnthn However, note that if they had been multi-methods it'd have been a different story.
21:14 jnthn Because they can an implicit *%_
21:14 masak oh noes! :)
21:14 masak how do I get rid of the implicit *%_ ?
21:14 jnthn rakudo: class C { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b)
21:14 p6eval rakudo 0d4fe0: OUTPUT«1␤»
21:15 jnthn huh, Rakudo gets that one right...
21:15 masak ok, then I'm in trouble again.
21:15 jnthn Get rid of it like...
21:15 jnthn (this should work...)
21:15 jnthn rakudo: class C { multi method foo(:$a!) is hidden { say 1 }; multi method foo(:$b!) is hidden { say 2 }; }; C.foo(:a, :b)
21:15 p6eval rakudo 0d4fe0: OUTPUT«No applicable candidates found to dispatch to for 'trait_mod:is'␤in Main (/tmp/ICAqe1ZgZ5:2)␤»
21:15 jnthn oh, wait a moment
21:15 masak 'is hidden'? :)
21:15 jnthn rakudo: class C is hidden { multi method foo(:$a!) { say 1 }; multi method foo(:$b!) { say 2 }; }; C.foo(:a, :b)
21:15 p6eval rakudo 0d4fe0: OUTPUT«No candidates found to invoke␤in Main (/tmp/3bPRKQjxQ7:2)␤»
21:16 jnthn That one.
21:16 masak great.
21:16 jnthn is hidden = hide this class from being deferred into.
21:16 jnthn But as a side-effect, do not add the *%_
21:16 jnthn See S12 under Interface Consistency.
21:16 masak yep, found it.
21:17 jnthn Rakudo doesn't (yet) do all of that.
21:17 jnthn Working on it.
21:17 masak ah, I think I glean the connection between *%_ and C<nextsame> semantics.
21:17 masak jnthn++
21:18 justatheory joined #perl6
21:21 jnthn oh gah, one of my shiny new lastcall.t tests fails.
21:22 Whiteknight joined #perl6
21:23 jnthn masak: Answer to earlier question:
21:23 jnthn $P0 = root_new ['parrot';'Exception']
21:23 jnthn $P0['message'] = message
21:23 jnthn $P1 = new ['Failure']
21:23 jnthn setattribute $P1, '$!exception', $P0
21:24 masak jnthn: a, so has-a, not is-a.
21:24 jnthn masak: Right.
21:32 pugs_svn r27993 | jnthn++ | [t/spec] Correct and extend lastcall tests.
21:34 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:␤------> [32mis foo($obj[33m⏏[31m:),  'method', 'method with colon notati[0m␤Undeclared routine:␤     is used at 1 ␤ok 00:03 39m␤»
21:35 jnthn std: my $obj; foo($obj:);
21:35 p6eval std 27992: OUTPUT«ok 00:02 39m␤»
21:35 jnthn std: my $obj; foo($obj);
21:35 p6eval std 27992: OUTPUT«Undeclared routine:␤   foo used at 1 ␤ok 00:02 37m␤»
21:35 jnthn Heh. So you can make a method call that way, huh.
21:37 nihiliad joined #perl6
21:39 jnthn Ah, that gets a bunch easier to fix for Rakudo once we have contextuals supported in grammars.
21:39 synth joined #perl6
21:42 pugs_svn r27994 | kyle++ | [t/spec] More revisions of past tests
21:42 dalek rakudo: 4245753 | jnthn++ | src/ (3 files):
21:42 dalek rakudo: Make deferal failures into a kind of soft fail rather than an exception.
21:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​245753c82516b1a3f6c9f4f783392a8938914b4
21:42 dalek rakudo: a0082a8 | jnthn++ | t/spectest.data:
21:42 dalek rakudo: Add lastcall.t to spectest.data.
21:42 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/a​0082a8394342ca6f279f80b308ba85a2ce2444e
21:42 eMaX joined #perl6
21:43 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:43 szbalint ?
21:44 colomon joined #perl6
21:45 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.
21:45 alester szbalint: Without seeing your code, we can't tell for sure.  It could be that your code is done incorrectly fro Perl 6.
21:45 masak colomon: glad to have been of help.
21:46 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 szbalint alester: http://github.com/perl6/perl6-exampl​es/blob/e88cd678313d993160f544d1e373​9c25d1f97bfb/euler/prob004-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.
21:47 szbalint jnthn: yeah, int in the PIR version
21:48 jnthn Hmm
21:48 jnthn It isn't calling too much though..
21:48 jnthn Well, I guess the grep block.
21:52 jnthn szbalint: Anyway, best is to hold on for us to have good profiling support.
21:52 jnthn Which is being actively worked on a the moment.
21:52 jnthn Then we'll really know, rather than guessing. :-)
21:53 szbalint a profiler is good news :)
21:54 alester do we still need testing on ins2 branch?
21:55 jnthn alester: No - it's been merged to trunk.
21:55 alester yay
21:56 alester AND we build from an installed Parrot now
21:56 jnthn Yup. :-)
21:58 alester POD is going to be deifferent in Perl 6 enough that I should probably start pod6.vim, eh?
21:59 alester I'm adding pod.vim to the vim-perl project
22:00 cotto "beavering"?
22:01 jnthn cotto: British English slang for something like "busily working"
22:01 szbalint labouring?
22:02 jnthn As in, lots of effort going in to it. :-)
22:02 jnthn I guess that bit of slang doesn't cross the pond. :-)
22:02 jnthn There's a chance it could just be Yorkshire slang too, I guess...
22:03 cotto I figured, but it sounds like it could mean something different.
22:03 cotto like making hats
22:04 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
22:04 cotto Sorry.  I forgot to set the sarcasm bit on that.
22:04 masak :)
22:05 * cotto gets back to beavering
22:07 * jnthn tries to get a bit further along with hides Foo and is hidden
22:08 M_o_C joined #perl6
22:14 mikehh rakudo (a0082a8) builds on parrot r40549 - make test/make spectest (up to 27994) PASS - Ubuntu 9.04 amd64
22:23 jferrero joined #perl6
22:28 pyrimidine left #perl6
22:30 diakopte1 joined #perl6
22:30 TimToady joined #perl6
22:35 dalek rakudo: e5d0a37 | jnthn++ | src/parser/actions.pm:
22:35 dalek rakudo: Fix up code generation for hides trait_mod.
22:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​5d0a3793a8187090868f68f9c392cc985b4b393
22:35 dalek rakudo: 1a5c5f3 | jnthn++ | src/ (2 files):
22:35 dalek rakudo: 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.
22:35 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/1​a5c5f35a3963847784442a984439ac863655054
22:35 dalek rakudo: 637d803 | jnthn++ | src/ (2 files):
22:35 dalek rakudo: 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 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​37d803b2bfbaf963ec2ba1515bf2c5bccc4e959
22:38 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:40 KyleHa joined #perl6
23:00 Avada joined #perl6
23:07 unitxt_ joined #perl6
23:21 avi2702 joined #perl6
23:29 wknight8111 joined #perl6
23:48 cognominal augment is the new "is also"?
23:52 tak11 joined #perl6
23:54 cognominal apparently it is to be able to distinguish between "augment" and "supersede"
23:55 frew joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs