Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-12-11

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 rakudo_svn r33784 | tene++ | [rakudo]: Fix the ordering of multiple CATCH blocks in a block.
00:05 mncharity joined #perl6
00:11 araujo joined #perl6
00:12 mncharity moritz_: re "Mitchell Charity updated the Elf homepage and continued his work on bootrapping Elf on Common Lisp.", well, not quite.  Wiki updated, yes.  But the CL backend is inactive until either there's an additional developer, or the front-end gets bootstrapped (ie, elf runs STD.pm) and various other things happen.
00:13 broquaint joined #perl6
00:18 mncharity re "It's beginning to look a lot like Christmas..." blog entry, sigh.  very long sigh.
00:20 Tene why?
00:20 mncharity Part of the difficulty of attracting developers to p6 is n years of throwing away any fragment of credibility in progress and status reporting.
00:24 jnthn mncharity: What makes it not credible?
00:24 mncharity Perhaps Boston.pm isn't representative, but saying p6 status reports are given zero credibility would I think be an entirely uncontroversial observation.
00:24 jnthn It acknowledges the progress that is being made, while still saying that "we're still a good distance from an true Perl 6 release".
00:25 jnthn Moreover, it clearly states *what* progress has been made.
00:26 jnthn I think anyone claiming "we'll certainly ahve a release in year X" can be dismissed as uncredible at this point, sure.
00:26 jnthn But this report doesn't do anything like that.
00:26 mncharity jnthn: "It's beginning to look a lot like Christmas..."
00:26 mncharity It's the title I find problematic, rather than the contents.
00:28 jnthn If the title is taken in isolation from the contents, I guess I can see room for misunderstanding.
00:29 mncharity Current state doesn't at all resemble Christmas.  It most resembles what pugs was doing three years ago.  Great progress, yay.  But very very far from a release.  Or a release candidate.  Or anything remotely associated with a release.  We're still in development toy mode.
00:32 mncharity Pugs three years ago didn't resemble Christmas.  Neither does parrot today.  I didn't mean to flame.  But... given parrot/p6 history, we really need to be bending over backwards to give people high-integrity descriptions of where we're at.  If we care about folks believing us at all.
00:38 broquaint joined #perl6
00:43 eternaleye joined #perl6
00:59 apeiron joined #perl6
01:00 meppl good night
01:26 LimbicRegion joined #perl6
01:39 mncharity parrot: ("bac" ~~ /a/).perl
01:39 mncharity rakudo: ("bac" ~~ /a/).perl
01:39 p6eval rakudo 33784: OUTPUT[Method 'perl' not found for invocant of class 'PGE;Match'␤current instr.: '_block11' pc 40 (EVAL_13:19)␤]
01:40 mncharity rakudo: ("bac" ~~ /(a)/)[0]
01:40 p6eval rakudo 33784: RESULT[Method 'perl' not found for invocant of class 'PGE;Match'␤current instr.: '_block11' pc 29 (EVAL_13:16)␤]
01:41 mncharity rakudo: ("bac" ~~ /(a)/).WHAT
01:41 p6eval rakudo 33784: OUTPUT[Null PMC access in get_integer()␤current instr.: 'parrot;PGE;Match;get_bool' pc 504 (compilers/pge/PGE/Match.pir:328)␤]
01:41 mncharity rakudo: ("bac" ~~ /(a)/).[0]
01:41 p6eval rakudo 33784: RESULT[Method 'perl' not found for invocant of class 'PGE;Match'␤current instr.: '_block11' pc 29 (EVAL_15:16)␤]
01:41 mncharity ("bac" ~~ /(a)/).[0].Str
01:41 mncharity rakudo: ("bac" ~~ /(a)/).[0].Str
01:41 p6eval rakudo 33784: OUTPUT[Method 'Str' not found for invocant of class 'PGE;Match'␤current instr.: '_block11' pc 58 (EVAL_15:22)␤]
01:41 mncharity rakudo: ("bac" ~~ /(a)/).[0] ~ ""
01:41 p6eval rakudo 33784: RESULT["a"]
01:42 mncharity rakudo: ("bac" ~~ /(a)/).{0}~ ""
01:42 p6eval rakudo 33784: OUTPUT[Use of uninitialized value␤]
01:50 mncharity rakudo: ("bac" ~~ /<ident>/).{'ident'}~ ""
01:50 p6eval rakudo 33784: RESULT["bac"]
01:50 eternaleye joined #perl6
01:56 dukeleto joined #perl6
02:10 rakudo_svn r33785 | tene++ | [rakudo]: Create a protoobject for Exception
02:17 pasteling joined #perl6
02:30 pasteling joined #perl6
02:43 pasteling joined #perl6
03:11 Psyche^ joined #perl6
03:40 rakudo_svn r33789 | tene++ | [rakudo]
03:40 rakudo_svn r33789 | tene++ | * More fixups for the Exception class
03:40 rakudo_svn r33789 | tene++ | * Add a :multi(Exception) for the 'die' op
03:41 Minthe joined #perl6
04:05 notbenh joined #perl6
04:20 rakudo_svn r33790 | chromatic++ | [Rakudo] Fixed a typo in an exception message.
04:26 rhr_ joined #perl6
04:43 pugs_svn r24254 | leto++ | Unfudged passing CATCH test for Rakudo
04:43 dukeleto w00t
04:44 Minthe Excuse me, but does pugs-svn run fine?
04:45 pmichaud dukeleto++
04:45 Minthe I built r19955 with GHC 6.6.1 and it worked fine, but when I tried to build r22??? using GHC 6.8.2 it failed to start.
04:45 Minthe Is the issue fixed?
05:00 rakudo_svn r33791 | chromatic++ | [Rakudo] PDX.pm added a basic implementation of warn to Rakudo.  This will need
05:00 rakudo_svn r33791 | chromatic++ | revision when HLLCompiler and/or Rakudo supports a top-level exception handler.
05:29 azawawi joined #perl6
05:38 azawawi ping
05:38 lambdabot azawawi: You have 1 new message. '/msg lambdabot @messages' to read it.
05:39 azawawi @tell moritz_ will move it to misc asap.... i was wondering where to place it.
05:39 lambdabot Consider it noted.
05:49 ozy` joined #perl6
05:55 pugs_svn r24255 | azawawi++ | [Perl6::Highlight] moved from src/perl6/lib/ to misc/, moritz_++
05:59 pugs_svn r24256 | azawawi++ | [Perl6::Highlight] Removing unneeded files committed by mistake.
06:09 notbenh joined #perl6
06:11 ashizawa joined #perl6
07:03 adc_penner joined #perl6
07:12 mberends joined #perl6
07:15 DemoFreak joined #perl6
07:18 sri_kraih joined #perl6
07:57 iblechbot joined #perl6
08:12 justatheory joined #perl6
08:13 magnarjg joined #perl6
08:27 araujo joined #perl6
08:34 riffraff joined #perl6
08:54 dukeleto joined #perl6
09:05 dr_df0 joined #perl6
09:29 felipe joined #perl6
09:37 alexn_org joined #perl6
09:41 azawawi joined #perl6
10:16 kisu joined #perl6
10:28 elmex joined #perl6
10:43 ruoso joined #perl6
10:59 meppl joined #perl6
11:14 masak joined #perl6
11:35 * masak has backlooged a bit
11:35 masak I agree with mncharity's sentiment.
11:36 azawawi which is? ;-)
11:36 azawawi hi masak
11:36 masak azawawi: hi
11:36 masak azawawi: http://irclog.perlgeek.de/perl6/2008-12-11
11:37 masak it's difficult to walk the line between pride/happiness over progress and creating too high expectations outside of the community.
11:37 masak add to that the fact that Perl 6 has been... a bit of a wait so far.
11:37 azawawi btw, which is the blog entry '...beginning to look a lot like Christmas' ?
11:37 masak azawawi: I'll get it for you.
11:38 masak http://use.perl.org/~pmichaud/journal/38058
11:38 xinming_ joined #perl6
11:38 * azawawi is reading it...
11:38 azawawi thx
11:39 masak I think that the phrase is not difficult to understand in context, but the dangerous thing might be that outsiders don't have that context.
11:40 masak (btw, I've been guilty of exactly the same sin, saying "Christmas is really close, you can feel it" in a filmed lightning talk)
11:41 masak but mncharity is right, we're really just at the beginning of a fairly long process.
11:41 azawawi oh well, baby steps ;-)
11:41 masak it's not the baby steps that are the problem.
11:41 masak it's keeping the external expectations at an appropriate level.
11:42 azawawi that's why i said baby steps... ;-)
11:42 azawawi release often...
11:42 masak azawawi: aye. I wish people were more aware of that.
11:43 masak it's very hard to take the word "vapourware" in one's mouth when one is aware of the monthly releases.
11:43 azawawi im working on Perl6::Highlight cpan module atm
11:43 masak azawawi++
11:44 azawawi i was also reading ovid's http://use.perl.org/~Ovid/journal/38010 in the morning
11:45 * masak hadn't seen that yet
11:47 * ruoso later &
11:49 masak food &
12:05 vixey joined #Perl6
12:07 pugs_svn r24257 | azawawi++ | [Perl6::Highlight] Added missing jquery 1.2.6 to package
12:07 pugs_svn r24257 | azawawi++ | [Perl6::Highlight] Moved STD.pm required files into lib/Perl6
12:07 pugs_svn r24257 | azawawi++ | [Perl6::Highlight] Updated Perl6::Highlight structure and pod docs
12:07 pugs_svn r24257 | azawawi++ | [Perl6::Highlight] Added initial methods and constructor (not implemented yet)
12:07 pugs_svn r24257 | azawawi++ | [Perl6::Highlight] Updated cpan module dependencies in Makefile.PL
12:13 pugs_svn r24258 | azawawi++ | [Perl6::Highlight] SVN-ignored generated files
12:18 masak joined #perl6
12:25 pugs_svn r24259 | azawawi++ | [Perl6::Highlight] Moved STD.pm required p5 files to lib/
12:37 masak perl6: +(a => 2)
12:37 p6eval pugs: RESULT[2]
12:37 p6eval ..elf 24259: RESULT[2␤]
12:37 p6eval ..rakudo 33797: OUTPUT[get_number() not implemented in class 'Perl6Pair'␤current instr.: 'prefix:+' pc 16648 (src/builtins/op.pir:111)␤]
12:37 masak is the aboce specced?
12:37 masak s/c/v/
12:38 Lorn joined #perl6
12:39 masak perl6: +(a => 42)
12:39 p6eval pugs: RESULT[2]
12:39 p6eval ..elf 24259: RESULT[2␤]
12:39 p6eval ..rakudo 33797: OUTPUT[get_number() not implemented in class 'Perl6Pair'␤current instr.: 'prefix:+' pc 16648 (src/builtins/op.pir:111)␤]
12:40 masak seems Pugs and Elf just numify to the number of items in a pair (2).
12:41 masak one could imagine numifying to the value instead, for example.
12:45 * masak asks p6l
12:46 jnthn masak: I can't recall reading anything on that.
12:46 * masak neither
12:46 masak jnthn: needs tests eventually too, I guess.
12:46 jnthn Yes, once there's a spec.
12:46 masak but I'll start with p6l.
12:46 jnthn :-)
12:50 * masak just realized that he could theoretically add something to the spec at this very moment
12:51 masak hm, with great power comes great responsibility.
12:51 masak I could introduce COMEFROM into the Perl 6 spec! :> that'd be eclectic.
12:52 * masak cackles evilly
12:52 jnthn I could use svn revert for the first time shortly afterwards. :-P
12:52 jnthn masak: Do it as a module. ;-)
12:52 jnthn use IntercalsInsaneFeatures;
12:52 masak jnthn: aye. :)
12:53 * masak is really studying Chinese Literature today -- just easily distracted
12:53 jnthn http://svn.pugscode.org/pugs/docs/Perl6/Spec/ - this is where the Perl 6 spec lives now, right?
12:54 masak aye
12:54 jnthn Has the proposed use of the other numbers been put somewhere in the Pugs repository?
12:54 * masak knows not
12:55 * jnthn doesn't see it
12:55 masak in some sense, it's kind of appropriate that Pair numifies to 2 :)
12:55 masak it's almost a bit funny.
12:56 masak I'm also thinking that it might sometimes be useful and "expected"
12:56 masak but I cannot think of an actual piece of code that exemplifies this.
12:58 jnthn If you see a pair as a kinda tuple and a tuple as a kinda list... :-)
12:58 masak mm
12:58 masak but does that mean that you need a 2 to fall out of it sometimes?
12:59 jnthn Well, that line of thinking is perhaps more a consistency than a DWIM argument. :-)
12:59 masak it is.
13:00 masak is it surprising if (switch => False) numifies to 2?
13:01 masak people won't be surprised by [False, False, False] numifying to 3.
13:02 jnthn I'm not sure what the obvious answer is.
13:03 masak if 2 is the consistency answer, is there an obvious DWIM answer?
13:03 * masak is leaning towards the pair value
13:13 masak perl6: say [min] (1,2,3)
13:13 p6eval elf 24259: OUTPUT[Parse error in: /tmp/PwbigUqbiy␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say [min] (1,2,3)␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
13:13 p6eval ..STD_red/std.rb:210...
13:13 p6eval ..pugs: OUTPUT[*** ␤    Unexpected "("␤    expecting operator, ":" or ","␤    at /tmp/d2tK1YmCol line 1, column 11␤]
13:13 p6eval ..rakudo 33797: OUTPUT[Statement not terminated properly at line 1, near "(1,2,3)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤]
13:23 masak did I misunderstand the use of &min?
13:26 pmichaud min isn't implemented in rakudo yet, apparently.
13:26 pmichaud I probably shouldn't have used it in my post, then.
13:26 masak sounds like low-hanging fruit.
13:27 pmichaud it is, somewhat.
13:27 pmichaud the problem is getting the default min value in place
13:27 pmichaud so that  [min] ()   works
13:27 pmichaud because we don't have +Inf yet
13:27 masak nod
13:28 pmichaud for now, though, let's go ahead and use zero
13:28 masak as long as there are tests for +Inf, that's fine I guess
13:28 pmichaud right.
13:29 pmichaud here's my comment for those who didn't like the title of my "looking like Christmas" post
13:31 pmichaud Your point is well-taken.  On the other hand, my experience has been that even the "well reasoned" posts are invariably met with cries of "Perl 6 will always be vaporware" and "Parrot is a waste of time" and the like.  To preserve my own sanity (and -Ofun), I've decided to not worry too much about preaching to that choir. (more)
13:34 pmichaud For now, I'm going with the theory that "working code" is really the only way to handle any naysayers, and let expectations fall out of that.  If we don't have working code, then the naysayers are right.  If we have working code but the naysayers want to focus on the years that we didn't, that's not useful or important to me.
13:35 masak pmichaud++
13:35 masak at one point, the #perl6 topic linked to an image with a text along the lines of 'The best way to make a paradigm shift happen is to have so much fun that other people simply cannot spare to ignore you.' I liked that.
13:37 renormalist joined #perl6
13:39 masak I agree that there are probably unchangeable naysayers out there. a more interesting question is how to make converts of people who haven't heard of Perl 6 yet.
13:40 pmichaud so, when something happens that I think is worth blogging about (and I think there will continue to be a lot of this), I'm going to give my best account of it and let things go from there.  The fact that there were a lot of broken claims in the past really shouldn't stop us from touting our successes in the present.
13:41 pmichaud masak: I think it'll start to happen naturally, as people (re)discover Perl's expressiveness and how easy it is to do things in this new language.
13:41 moritz_ jnthn: the proposed numbers of the specs can be seen on http://perlcabal.org/syn/
13:41 lambdabot moritz_: You have 1 new message. '/msg lambdabot @messages' to read it.
13:41 pmichaud _especially_ the grammar and regex stuff.
13:42 masak pmichaud: yes, I think so too. I'm glad I'm an early adopter in this case -- that's what I want to get through in most of my blog posts.
13:42 * moritz_ has received an email of acceptance for his talk "Perl 6 Rulez" (German Perl Workshop 2009), which will use only examples that work right now (or then, march 2009) in rakudo
13:43 pmichaud and yes, it's those blog posts of "here's what I'm able to do with Perl" (both *5* and *6*) that will start to spark interest and enthusiasm about Perl again.
13:43 azawawi moritz_++
13:43 masak moritz_: nice title. :)
13:43 pmichaud (phone)
13:43 pmichaud I just submitted my abstract for a similar talk at Frozen Perl
13:43 azawawi moritz_: maybe now you can use --snippet-html mode in STD_syntax_highlight
13:44 moritz_ azawawi: I will, probably :-)
13:44 moritz_ I'll develop a basic grammar for XML, and introduce the regex features on the way
13:45 pmichaud moritz++
13:45 masak nice.
13:45 pmichaud my talk is going to be a introduction to Perl 6 with working code examples
13:46 * masak wonders if it would be possible to write a SAX parser with {*} actions
13:46 pugs_svn r24260 | azawawi++ | [Perl6::Highlight] more fixes and tests nothing fancy...
13:47 moritz_ it would be very nice to have parametric regexes working by then (ie regexes that take arguments), but it's definitively not a requirement
13:47 azawawi moritz_: and maybe highlighted regexps ;-)
13:48 * moritz_ wonders if he should start giving Perl 6 answers on perlmonks.org
13:48 masak moritz_: sure, why not?
13:49 moritz_ masak: it's hard to get IO think right atm, because it's mostly underspecced
13:49 masak true. I've felt some of that lately, developing that board game.
13:51 masak TSa thinks a pair should numify to the numification of its value.
13:51 masak sometimes I think I think so too. :)
13:52 moritz_ that can easily be achieved with ~+$pair, of course (and so pretty...) :-)
13:52 moritz_ uhm, ~+$pair.value
13:52 masak why both ~ and + ?
13:53 masak what does that acheive?
13:53 moritz_ ~ is the stringification
13:53 masak I know.
13:53 moritz_ if you want to force it, that is
13:53 moritz_ if you have string context anyway, you can omit iit
13:54 pmichaud my initial impression is that +Pair should do its value also
13:54 masak but why would you want to stringify after numifying? I don't get it.
13:54 moritz_ which is probably what you want
13:54 masak moritz_: the question here is what $pair numifies to by itself.
13:55 moritz_ I don't see a good reason not to numify to its value
13:56 masak moritz_: well, one good reason might be that a Pair works like a list of its key and value in some contexts. and such a list numifies to 2.
13:56 moritz_ so you can do %occurences.pairs.sort: &infix:<< <=> >>;
13:56 masak moritz_: again, not relevant.
13:56 pmichaud or even    sort %hash
13:56 moritz_ pmichaud: no, that uses cmp
13:56 pmichaud oh, yes.
13:56 moritz_ pmichaud: and cmp first decides on the key, then on the value
13:56 masak moritz_: oh, wait. it is. sorry.
13:57 pmichaud so, what's the quick-and-easy way to sort on hash values?
13:57 pmichaud I saw the post on use.perl and thought "that seems a bit long"
13:58 moritz_ pmichaud: I think we should allow arity-1 subs that automagically do a schwartzian transform
13:58 masak what's wrong with %hash.sort? seems to me cmp is a good default.
13:58 moritz_ pmichaud: so that you can simply say %hash.sort: { .value }
13:58 moritz_ masak: it is, but not if you want to sort by value
13:58 masak moritz_: ooh! I like that.
13:58 pmichaud %hash.sort sorts by key and then value
13:58 moritz_ or %hash.pairs.sort: { .value }
13:59 masak pmichaud: sounds good to me.
13:59 masak moritz_: what's the difference?
13:59 moritz_ masak: it has been proposed by TheDamian back in the days, but it's not in S29, unless you put it there :-)
13:59 * masak makes a little note
13:59 moritz_ masak: probably none, but I'm not sure what a hash in list context does
14:00 pmichaud hash in list context is a list of Pairs
14:00 moritz_ ok, so the .pairs is superfluous
14:00 * moritz_ has to go now and hold his third tutorial today
14:01 pmichaud we could do arity-1 subs using (1) a different methodname from sort, or (2) an adverb on sort
14:01 masak I have a blog post in my queue about all the things that need to be done with S29.
14:01 masak will write it when $SCHOOL stops bugging me so much.
14:01 pmichaud (IO underspecced):  One way to improve the S16 situation would be to write code that is the way you'd like it to work and document that
14:02 pmichaud part of the reason why S16 is underspecced is that the design team was hoping it would fall out from use cases
14:02 pmichaud and a big part of the reason why it's in the pugs repo is so that people can adjust the spec to use cases
14:03 pmichaud so, rather than ask "what does the spec say", our real question is "what _should_ it say", and the implementors/early adopters have some latitude to negotiate that and explore the design space for a while
14:04 masak to varying degrees that is true of all S?? specs, I guess.
14:04 pmichaud taking that as a starting point, Rakudo's philosophy with respect to S16 will be that as long as S16 is underspecced, we won't limit ourselves to doing "what is actually listed there".
14:04 pmichaud and yes, that's true of the S?? specs in general, although obviously the "more complete" specs have less room to wiggle.
14:05 pmichaud also, there comes a point where we really design to the test suite more than the synopses
14:05 masak aye.
14:05 pmichaud so if the test suite has a certain feature in it, then we implement to that even if the synopsis is silent on the subject (and we write a ticket asking that the synopsis be updated)
14:06 pmichaud the same will be true not only of S16, but also S19 (command line) and S24 (testing)
14:06 pmichaud and others.
14:08 pmichaud moritz_: I totally agree with the schwartzian transform approach, now that I think about it.
14:09 masak on the first sign of tuits, I'll add it to S29.
14:09 pmichaud the problem with   %hash.sort { foo(%hash{$^a}) op foo(%hash{$^b}) }    is that we end up computing foo() for each comparison, even though it's invariant.
14:10 masak maybe there should be a multi version of sort taking only a binary operator, which also does a schwartzian transform
14:10 masak s/version/variant/
14:10 pmichaud maybe, but typically it's not the operator (or its arity) that we're interested in
14:11 iblechbot joined #perl6
14:11 pmichaud even in   %hash.sort { %hash{$^a} cmp %hash{$^b} }    we aren't passing the cmp operator to 'sort'
14:11 masak right.
14:11 pmichaud i.e., the "comparison" that sort sees is still an arity-1 sub.
14:12 pmichaud oh, I guess it's arity 2.
14:12 pmichaud but it's not infix:<cmp>
14:12 masak true.
14:12 pmichaud so perhaps keying based on arity is sufficient.
14:13 pmichaud anyway,  something like   %hash.sort { foo($_) }   would mean that we could cache the value of foo($_) for each element prior to doing the sort, instead of (re)computing it at each comparison step.
14:14 pmichaud it also becomes really useful for things like
14:14 pmichaud @list_of_dogs.sort { .breed }
14:14 lambdabot Unknown command, try @list
14:14 masak lambdabot: ssh!
14:14 pmichaud which would sort the list based on the breed of each dog.
14:14 masak I like it.
14:15 pmichaud actually, it almost calls for *two* adverbs to sort
14:15 pmichaud one of them is the comparison function to use  (default infix:<cmp>)
14:15 pmichaud the other is the value ot use (default: $_)
14:16 masak how would the latter work? can adverbs refer to variables?
14:16 pmichaud @list_of_dogs.sort :by(&infix:<eq>) :value{ .breed }
14:17 pmichaud or something like that.
14:17 masak oh, a closure.
14:17 masak I see.
14:17 pmichaud right, it's still a closure, but it's invoked on each element of the sort prior to doing the sort
14:17 pmichaud and then _those_ are the values used in the comparison
14:17 masak it does read well. 'sort ... by ... value'.
14:17 pmichaud but what we're sorting is still the invocant
14:18 pmichaud anyway, this is a place where I suspect we need TimToady to tweak the dwimminess knob
14:18 masak maybe s/:by/:using/, though.
14:19 pmichaud yes, I thought of :using as well.
14:19 masak :by is for ranges :)
14:19 pmichaud the arity-1 thing initially feels like a nice level of dwimminess too.
14:19 pmichaud I really like   %hash.sort { .value }
14:19 masak indeed.
14:19 pmichaud %hash.sort { .key }
14:20 pmichaud @dogs.sort { .name }
14:20 pmichaud @dogs.sort { .age }
14:20 masak \o/
14:20 masak Perl 6 rocks.
14:21 pmichaud ...if we can get that into the spec, yes.  Although I'm sure S29 is up for that sort of modification.  Maybe we can implement it in Rakudo.
14:21 masak I've written it down, and I will get to S29 early next week, if no-one else gets there first.
14:22 pmichaud excellent.
14:22 pmichaud I'm reviewing most of the list functions anyway, so I might see if I can sneak that into .sort
14:23 masak also, I plan to blog about my new favourite Perl 6 pattern: putting blocks in lexical &-variables and then using them as built-ins without the &.
14:23 pmichaud isn't that just   my sub foo { ... }   ?
14:24 masak no, I can't use sub for my purposes, because I have a `return` in my block.
14:24 pmichaud ahhhhhh
14:24 pmichaud clever.
14:24 masak it's half evil, half very useful :)
14:24 pmichaud definitely blog that.
14:24 * masak will
14:25 masak just going to finish this Chinese course first.
14:27 pmichaud anyway, I need to get to today's meetings
14:29 ozy` joined #perl6
14:30 rakudo_svn r33800 | pmichaud++ | [rakudo]: spectest-progress.csv update: 235 files, 4916 passing tests
14:30 pmichaud 84 to go.
14:30 masak so, sometime this weekend, probably.
14:32 pmichaud yes.
14:32 pmichaud I'd really like to have 5k before tuesday's release.
14:32 pmichaud I'll be reviewing the suite today/tomorrow looking for ripe candidates.
14:32 pmichaud I'm thinking I'll fix complex issues -- that'll give us a bunch of tests (back)
14:33 masak (reclaiming functionality)++
14:33 PerlJam ruby has a routine called sort_by that does a ST automagically.
14:33 pmichaud and we can always write *new* tests :-)
14:34 masak pmichaud: 哈哈 :)
14:35 jhorwitz joined #perl6
14:37 pmichaud 14:37 <nopaste> "pmichaud" at 12.146.222.130 pasted "spectest progress, by synopsis" (17 lines) at http://nopaste.snit.ch/14900
14:38 masak wow, S09 really is under-tested.
14:38 masak considering what it contains.
14:38 pmichaud I don't know that we have any active implementations doing much of S09
15:07 moritz_ we don't
15:17 Caelum joined #perl6
15:19 pugs_svn r24261 | azawawi++ | [Perl6::Highlight] merged of STD_syntax_highlight and this module
15:19 pugs_svn r24261 | azawawi++ | [Perl6::Highlight] Added a sample test script
15:22 azawawi moritz_: ping
15:23 moritz_ p o n g
15:23 azawawi moritz_: im facing a problem when moving STD inside Perl6::Highlight module
15:24 pasteling "azawawi" at 212.38.154.37 pasted "stacktrace (perl -d foo.pl)" (10 lines, 863B) at http://sial.org/pbot/33623
15:25 azawawi any ideas?
15:25 moritz_ azawawi: you have an undef somewhere
15:25 azawawi ;-)
15:26 moritz_ azawawi: where you think you have a an object instead
15:32 jnthn S09 - we've not much implementation progress as of yet.
15:33 moritz_ it's one of those things you don't really need to bootstrap a compiler, write the prelude in Perl 6 etc.
15:33 jnthn It's also full of vaguely obscure stuff.
15:33 jnthn Cool, useful stuff.
15:34 jnthn Typed arrays will land in a couple of months, I expect.
15:34 moritz_ I think Perl 6 itself is cool, vaguely obscure and not very cleanly specced :-)
15:37 * jnthn looks at /syn/
15:37 jnthn 14  Roles and Parametric Types  (Deprecated, use implementation types)
15:37 jnthn Roles and parametric types are deprecated? :-|
15:38 jnthn .oO( What was 14 in the camel? )
15:38 moritz_ jnthn: no, not deprecated, probably just the previous draft or something
15:38 jnthn Ah, tied variables.
15:38 jnthn OK, I think the plan was to re-claim 14 for describing parametric types.
15:39 jnthn Since I'm going to be doing a load of work on those, I wondered if it might be helpful if I was to take on the task of moving the bits out of other synopses that belong in such an S14 to that.
15:40 moritz_ jnthn: so the "deprecated" notice doesn't apply to the old one, but to the new one
15:40 alester joined #perl6
15:41 * jnthn is confused
15:41 moritz_ erm, the other way round
15:41 jnthn http://spreadsheets.google.com/ccc?key=p8pKFfWF0Bj2rv7Fsq9u4eA is what I have been looking at
15:41 moritz_ sorry
15:41 jnthn 14Generics? Roles and Parametric Types
15:42 jnthn The person I probably need to ask is TimToady
15:43 pugs_svn r24262 | moritz++ | [docs] remove deprecated deprecation notice in syn_index.html
15:50 moritz_ jnthn: re synopsis numbers, that spreadsheets lists chromatic as the owner of S24 (testing), but he didn't respond when I said I'd take a stab at that (during last #parrotsketch)
15:54 * jnthn stares at the bit of SPAM he just got, wondering what on earth language it's in
15:55 jnthn It's Slavic of some kind. But it's got characters from both latin and cyrillic alphabets in.
15:55 * jnthn didn't know of a language that did that
15:57 ozy` jnthn: there are a bunch. I think Yugoslavian does that but I'm probably wrong
15:58 jnthn Oh, really?
15:58 jnthn Interesting.
15:58 * jnthn knows less about the South Slavic languages.
15:59 exodist_ joined #perl6
15:59 jnthn I'm working hard on learning a West Slavic one and know a little bit of an East Slavic one.
16:00 ozy` I think two Slavic langs would be my lifetime limit... if even that
16:01 jnthn Well, I can happily do bits of several, but as for seriously learning them one is quite enough for me right now. Lifetime limit...well, we'll see. :-)
16:01 ozy` they're hella hard to pronounce
16:02 ozy` damn palatals
16:02 jnthn Yes.
16:03 jnthn But I guess once you get the technique in one of them it helps with others.
16:09 [particle] Rakudo Spec Test Coverage percentage chart:
16:09 [particle] http://spreadsheets.google.com/pub?key=p_pjX3adWrcuDzXmofZHTVQ&amp;oid=3&amp;output=image
16:10 kanru joined #perl6
16:24 justatheory joined #perl6
16:25 stephens joined #perl6
16:25 Exodist joined #perl6
16:32 pugs_svn r24263 | azawawi++ | [Perl6::Highlight] first working ->snippet_html() sample
16:32 pugs_svn r24263 | azawawi++ | [Perl6::Highlight] Fixed STD.pm with a workaround.
16:32 pugs_svn r24263 | azawawi++ | [Perl6::Highlight] You need to put 'use STD;' before using this module.
16:33 azawawi moritz_: $::PARSER was undef when you 'use STD' in Perl6::Highlight
16:43 pugs_svn r24264 | azawawi++ | [Perl6::Highlight] Implemented simple_html method
16:47 pugs_svn r24265 | azawawi++ | [Perl::Highlight] Implemented semi-working full_html()
16:58 pugs_svn r24266 | azawawi++ | [Perl6::Highlight] old STD_syntax_higlight now works with the new STD.pm lib path
16:58 pugs_svn r24266 | azawawi++ | [Perl6::Highlight] ansi() and yaml() are now implemented and parsing is done in new()
17:00 azawawi @tell TimToady STD.pm does not behave as expected when it is used in another package (e.g. Perl6::Highlight); $::PARSER become undef; You need to manually use it before using packages that use it.
17:00 lambdabot Consider it noted.
17:02 rff joined #perl6
17:02 rff hi
17:02 vixey oh so with this you can turn perl 6 code into colorized HTML?
17:02 vixey hi rff
17:03 azawawi vixey: yeah
17:03 vixey cool! I've got to try it out
17:03 azawawi http://feather.perl6.nl/~azawawi/html/integration/real-strings.t.html
17:04 azawawi but Perl6::Highlight is still 0.01 and not yet released on CPAN
17:04 vixey wow that syntax tree view is good
17:04 azawawi you can meanwhile try src/perl6/STD_syntax_highlight
17:05 azawawi that's the --full-html mode
17:07 jnthn Wow. That rocks.
17:09 azawawi Perl6::Highlight will have two output renderers: STD.pm and Text::VimColor (perl6.vim)
17:11 azawawi @tell moritz_ can u plz install on feather 1 Text::VimColor; i need it in Perl6::Highlight
17:11 lambdabot Consider it noted.
17:14 hercynium joined #perl6
17:19 pugs_svn r24267 | azawawi++ | [Perl6::Highlight] More TODOs
17:25 azawawi dinner &
17:53 moritz_ @tell azawawi installed
17:53 lambdabot Consider it noted.
17:58 REPLeffect joined #perl6
18:00 adc_penner joined #perl6
18:25 azawawi joined #perl6
18:25 azawawi ping
18:25 lambdabot azawawi: You have 1 new message. '/msg lambdabot @messages' to read it.
18:26 azawawi moritz_: thx
18:26 moritz_ azawawi: when I'm in the channel you don't have to @tell me stuff through lambdabot, I backlog when I'm highlighted
18:26 lambdabot moritz_: You have 2 new messages. '/msg lambdabot @messages' to read them.
18:27 moritz_ @mossages
18:27 lambdabot azawawi said 12h 47m 17s ago: will move it to misc asap.... i was wondering where to place it.
18:27 lambdabot azawawi said 1h 16m ago: can u plz install on feather 1 Text::VimColor; i need it in Perl6::Highlight
18:34 schmalbe joined #perl6
18:37 alech_ joined #perl6
18:38 pmurias joined #perl6
18:40 tewk_ joined #perl6
19:00 adc_penner2 joined #perl6
19:13 Tene jhorwitz: can you commit some spectests for .assuming?
19:14 moritz_ Tene: there are such tests in pugs/t/blocks/currying.t
19:14 * Tene looks
19:14 araujo joined #perl6
19:14 jhorwitz Tene: what moritz_ said.  :)
19:15 moritz_ I don't know how up-to-date they are
19:15 adc_penner joined #perl6
19:26 adc_penner joined #perl6
19:34 pugs_svn r24268 | moritz++ | [t/spec] move currying tests to t/spec
19:37 adc_penner2 joined #perl6
19:40 rakudo_svn r33804 | tene++ | [rakudo]: Add .assuming on Code objects for currying.
19:42 adc_penner joined #perl6
19:42 pugs_svn r24269 | moritz++ | [t/TASKS] we need tests for warn() and various exception things
19:44 pbuetow joined #perl6
19:46 pugs_svn r24270 | moritz++ | [t/spec] initial tests for currying with named params only
19:47 adc_penner2 joined #perl6
19:53 moritz_ perl6: sub foo {1;}; sub foo {1;}; say 'alive'
19:53 p6eval elf 24270: OUTPUT[Subroutine foo redefined at (eval 121) line 4.␤alive␤]
19:53 p6eval ..pugs, rakudo 33804: OUTPUT[alive␤]
19:53 moritz_ perl6: only sub foo {1;}; sub foo {1;}; say 'alive'
19:53 p6eval rakudo 33804: OUTPUT[alive␤]
19:53 p6eval ..pugs: OUTPUT[*** ␤    Unexpected "foo"␤    expecting "=", subroutine parameters, trait or block␤    at /tmp/Kvt2pDDKgm line 1, column 10␤]
19:53 p6eval ..elf 24270: OUTPUT[Unknown rule: plurality_declarator:only␤It needs to be added to ast_handlers.␤ at ./elf_f line 1918␤]
19:54 jnthn moritz_: Both of those should be errors.
19:54 moritz_ elf++ # telling us exactly what should be done
19:54 moritz_ jnthn: I think so too
20:00 pugs_svn r24271 | moritz++ | [t/spec] tests that sub foo {1;}; sub foo {1;}; dies
20:01 pugs_svn r24272 | moritz++ | [t/spec] fix fuding for multiple.t
20:02 azawawi moritz_: fuding? ;-)
20:03 moritz_ azawawi: see t/spec/README
20:03 moritz_ azawawi: it's a way to skip tests, or mark them as todo
20:04 azawawi moritz_: i think you mean fudging right?
20:05 moritz_ azawawi: yes ;-)
20:06 azawawi Text::VimColor failed me so far :-(
20:06 azawawi the thing is we need to 'setf perl6|source perl6.vim' and vim_options do not do that.
20:10 moritz_ azawawi: it worked pretty well for me
20:11 * moritz_ shouldn't commit when can't even type properly
20:11 azawawi moritz_: yeah but if you dont have perl6.vim pre-installed, then it wont work.
20:13 moritz_ azawawi: but why do you need it anyway? you write a different hilighter...
20:13 azawawi moritz_: for fun ;-)
20:14 azawawi moritz_: i wanted to compare perl6.vim and STD highlighter so they can evolve better...
20:17 moritz_ azawawi: if it's just for comparison, I think you can be bothered to copy or symlink perl6.vim to ~/.vim/syntax/
20:17 azawawi hmmm nice idea; sym-links
20:18 azawawi i guess working mostly on win32 does affect one's way of thinking
20:19 moritz_ aye
20:19 azawawi i got an email from cpan ppl telling me why not Syntax::Highlight::Perl6 ;-)
20:20 moritz_ I've never been good with names :(
20:21 azawawi but Perl6::Highlight sounds more cool ;-)
20:21 pugs_svn r24273 | tene++ | Fix variable declaration in new currying test.
20:23 avar Call it Perl6::Christopher::Walken
20:26 Hinrik that's a bit /too/ cool
20:32 alester I spent three and a half years with this zip operator up my ass....
20:33 eternaleye joined #perl6
20:55 jfroebe joined #perl6
20:57 pugs_svn r24274 | moritz++ | [t/spec] unfudge lists.t for rakudo
20:58 ozy` left #perl6
20:59 azawawi joined #perl6
21:00 rakudo_svn r33808 | moritz++ | [rakudo] add a test file for list assignment to spectest.data
21:00 Hinrik azawawi: why not just use the filetype option instead of vim_options?
21:02 pugs_svn r24275 | moritz++ | [t/spec] unfudge another test
21:09 bacek joined #perl6
21:14 dr_df0 joined #perl6
21:16 pugs_svn r24276 | moritz++ | [t] move some parsing tests to spec/
21:16 azawawi Hinrik: i tried Text::VimColor and it is working correctly as advertised, but in a vanilla vim installation, perl6.vim will not be in ~/.vim/syntax. I guess i could make it part of the module installation procedure.
21:20 rakudo_svn r33809 | moritz++ | [rakudo] two more files for spectest.data: array slicing, and IO
21:20 Hinrik azawawi: or you could have the module install perl6.vim to something like /usr/share/.../perl6.vim and then do vimoptions => '-s /usr/share/.../perl6.vim'
21:20 Hinrik vim_options even
21:21 azawawi that's what i tried but vim_options is used first and seems to be overridden afterwards...
21:22 Hinrik oh
21:24 Hinrik what if you do it with syntax_mark_file? syntax_mark_file($file, vim_options => ['-s /usr...'])
21:24 sri_kraih joined #perl6
21:24 azawawi havent tried all the options but will certainly retry later
21:25 pugs_svn r24277 | azawawi++ | [Perl6::Highlight] Renamed to Syntax::Highlight::Perl6 per PAUSE admin suggestion
21:29 pugs_svn r24278 | moritz++ | [t] move a hash test to spec/
21:30 rakudo_svn r33811 | moritz++ | [rakudo] add a test for predictive parsing to spectest.t
21:33 jnthn Predictive parsing?
21:34 moritz_ jnthn: knowing whether to expect an operator or a term
21:34 jnthn Aha, ok. :-)
21:34 moritz_ jnthn: in this case to know if '<' is a less-than or left angle quote
21:34 moritz_ now we're at 4962 passing tests
21:35 * jnthn likes the "add more tests" approach ;-)
21:37 pugs_svn r24279 | azawawi++ | [Syntax::Highlight::Perl6] more namespace renaming
21:37 moritz_ jnthn: I had exhausted that approach ~2 months ago. Now so much more works, it's time to start over ;-)
21:39 pugs_svn r24280 | azawawi++ | [Syntax::Highlight::Perl6] one missed, sorry
21:40 rakudo_svn r33812 | moritz++ | [rakudo] tests for passing hashes to subs
22:09 azawawi how much time does it take search.cpan.org to index a module?
22:10 moritz_ azawawi: usually less than two hours
22:10 azawawi cool then im going to sleep ;-) i submitted it 10 mins ago
22:11 azawawi good night *
22:11 moritz_ good night azawawi
22:18 pugs_svn r24281 | moritz++ | [t/spec] update some skip reasons in lists.t (and finer graded fudging)
22:24 pugs_svn r24282 | moritz++ | [t/spec] fudging updates to assign.t
22:26 adc_penner joined #perl6
22:27 moritz_ rakudo: my ($x, @y) = <a b c d e>; say @y.perl
22:27 p6eval rakudo 33813: OUTPUT["b"␤]
22:27 FurnaceBoy joined #perl6
22:28 pugs_svn r24283 | tene++ | [S04-statements/given.t]: Unfudge two tests and update comments on several others
22:31 pugs_svn r24284 | moritz++ | [t/spec] fix two tests in assign.t, and improve fudging
22:35 pugs_svn r24285 | moritz++ | [t/spec] all these is(!defined($stuff), ...) instances need to be ok().
23:05 billy- joined #perl6
23:08 billy- so basic question; if i want to play with perl6 now, i need to use pugs?
23:09 Hinrik pugs or rakudo
23:09 moritz_ billy-: you can try pugs or rakudo. Pugs is more feature complete, but rakudo is actively developed
23:09 billy- ok, i wasnt aware of rakudo. ill take a look, thanks
23:10 moritz_ it's Perl 6 on Parrot
23:11 billy- im sick of python and remembered perl. though i wont hold my breath i guess
23:13 Hinrik Perl 5 is still good :)
23:14 [particle] rakudo: <python is cooler than perl>.[<4 1..3 0>].say
23:14 p6eval rakudo 33813: OUTPUT[perlispython␤]
23:14 [particle] urk
23:14 [particle] rakudo: <python is cooler than perl>.[<4 1 2 3 0>].say
23:14 p6eval rakudo 33813: OUTPUT[perliscoolerthanpython␤]
23:14 [particle] rakudo: <python is cooler than perl>.[<4 1 2 3 0>].join(' ').say
23:14 p6eval rakudo 33813: OUTPUT[perl is cooler than python␤]
23:15 billy- yeah i know, but i was looking forward to the object.method syntax
23:15 [particle] rakudo has a fairly complete object model
23:15 [particle] better than pugs
23:18 Tene moritz_: is pugs really more feature complete?  How does it do on the spectests?
23:19 moritz_ Tene: uhm, before I mercyless broken them, pugs passed around 15k tests
23:19 moritz_ Tene: I don't know what the current count is
23:19 Tene kk
23:20 Tene Let's see what I can do to help rakudo, then.
23:21 Leon_ joined #perl6
23:24 Leon_ Anyone here not AFK?
23:24 [particle] joined #perl6
23:25 [particle] pugs has a better parser, rakudo a better runtime imo
23:27 Hinrik [particle]: is that rakudo's fault or parrot's?
23:27 Hinrik the parser, that is
23:27 moritz_ more of rakudo's, I'd say
23:28 [particle] rakudo's parser models STD.pm more closely than pugs, but PGE needs some refactoring for longest-token matching to work properly
23:29 [particle] pugs has ltm problems, too, but not as many. the parser is very custom, though. it needs to be redone
23:30 [particle] after parrot's parser engine (pge) is refactored for ltm and extended for protoregexes, rakudo will be able to use STD.pm directly
23:30 jnthn Does Pugs parse Perl 6 using Perl 6 regex?
23:30 [particle] patrick is funded to do that work in the next few months
23:30 [particle] no, it uses haskell
23:30 moritz_ jnthn: no, it uses a haskell parsing lib
23:30 moritz_ (parsec)
23:32 Leon_ particle: I have a question and I suspect you can answer it
23:32 [particle] ask away!
23:33 Leon_ in Perl 6 Design Minutes for 29 October 2008 Allison mentions: "looks like we won't use roles at all for IO". Why not?
23:33 [particle] don't need them (yet)
23:34 [particle] parrot's design specifies not only classes, but roles, at the base level.
23:35 [particle] that is, it allows pmcs (parrot's abstract data type aka class) to be composed of pmrs (roles)
23:35 [particle] we haven't implemented the infrastructure to support roles written in C yet
23:36 Leon_ Ah
23:36 [particle] you can write them in PIR and mix them in
23:36 [particle] but, at the C level, no roles yet. we'll get them in by our 2.0 release for sure, which is jan 2010
23:36 [particle] by which time we'll also have async io
23:36 Leon_ That's a long time from now
23:36 [particle] (not that the two are coupled)
23:37 pugs_svn r24286 | moritz++ | [t/spec] unfudge assign.t a bit. We have a bunch of passing TODO tests that I
23:37 pugs_svn r24286 | moritz++ | plan to unfudge tomorrow
23:37 [particle] Leon_: why do you want roles for io?
23:37 * moritz_ heads off to bed
23:37 Leon_ I was kind of thinking about S16, and it really struck me that using roles would make much more sense than the current fat interface approach
23:38 [particle] use cases are always helpful
23:38 Leon_ Essentially, close() is the only operation that is shared by all kinds of handles
23:38 Leon_ All other operations are invalid on a significant number of cases
23:38 [particle] true
23:38 Leon_ Read versus write is one example
23:39 Leon_ Trying to seek on a pipe or socket another
23:39 jnthn What Perl 6 does for IO doesn't need Parrot's underlying model to match it all that closely.
23:39 jnthn Perl 6's IO interface can be done in terms of roles just fine. Parrot doesn't need such an IO-layer under the hood.
23:39 moritz_ Leon_: there are roles in parrot and rakudo right now, not just on the C level, so you that shouldn't be a blocker
23:39 Leon_ OK, that's what I needed to know
23:40 [particle] right, it's not a blocker, except perhaps for performance
23:42 jnthn particle: How so?
23:43 [particle] jnthn: if you need to write vtable functions in pir to mix in with an io class
23:44 [particle] i expect there will be  impedence mismatches between the parrot and rakudo io implementations
23:44 jnthn IO is generally not CPU-bound, I don't think there'd be enough difference here to make it noticably slowly...not to mention that Rakudo IO will not map Parrot's FileHandle directly but just hold onto one as an attribute under the hood anyway.
23:45 [particle] you might be right about that
23:45 jnthn (will probably not map, I should say...)
23:45 jnthn (it could do, but it feels unlikely to me ATM)
23:46 * Leon_ thinks he'll post his ideas on perl6-language
23:48 [particle] Leon_++

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

Perl 6 | Reference Documentation | Rakudo