Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-02-06

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:05 beppu iblech++
00:09 avar is PGR supposed to fail tests?
00:09 audreyt avar: cpan version or the pugs trunk?
00:11 avar trunk
00:11 audreyt avar: oh then it very well might
00:11 audreyt 11-parsec will fail and it's known
00:12 audreyt the basic tests still work (same as the cpan one) so should be usable
00:12 audreyt (brb)
00:17 avar where is Pugs/Runtime/Match/Ratchet.pm?
00:22 moritz /perl5/Pugs-Compiler-Rule/lib/Pu​gs/Emitter/Rule/Perl5/Ratchet.pm
00:22 moritz sorry, wrong one :(
00:22 buetow joined perl6
00:27 rafl audreyt, moritz: I've been highlighted by you recently, but my backlog is too small to see the full context. What can I do for you?
00:27 moritz rafl: see my mail, dpkg-buildpackage fails
00:27 * rafl checks his mail
00:27 moritz rafl: the 10smoke patch fails
00:30 rafl moritz: Basically debian/ is very outdated because I didn't have both the time and motivation to work on it in the past few months.
00:30 moritz rafl: how sad, I hate `make install' ;)
00:30 rafl moritz: You might want to check the source package of pugs on the debian mirrors.
00:31 rafl moritz: That one contains a debian directory which can at least build the 6.2.13 release.
00:31 moritz ... except on the ia64 architecture ;)
00:31 moritz rafl: ok, I'll do that... probably tomorrow ;)
00:31 rafl moritz: The patch which fails to apply might be outdated. Removing it is safe. The second error you mailed me is likely caused by some files which have been renamed.
00:32 moritz rafl: should I just delete the /debian/patche* directories from the SVN?
00:33 rafl moritz: You can certainly do so. Maybe it would be more sensible to modify it so it applies again, but as I don't know how the smoking infrastructure looks these days just go ahead and remove it.
00:34 rafl moritz: But make sure also to remove the parts of debian/control and debian/rules which are responsible for patching stuff.
00:36 moritz rafl: I'm pretty new to the whole pugs thing, so I'll try to get a good understanding before messing it up ;)
00:36 moritz but that will have to wait, now I have to sleep :( (why can't pugs generate a 26H day?)
00:37 rafl moritz: I'll explain anything debian related to you if you want me to. Just ask..
00:37 rafl moritz: and have a good night until then.
00:37 moritz rafl: thanks
00:45 polettix joined perl6
00:46 gnuvince joined perl6
00:54 svnbot6 r15187 | lwall++ | more cleanup to get away from "optional reparse" model
00:54 svnbot6 r15187 | lwall++ | more comments for postprocessing
00:55 spoop joined perl6
01:04 mightybyte joined perl6
01:12 buetow joined perl6
01:12 weinig|away is now known as weinig
01:13 mightybyte Has there been any Perl 6 activity lately?  The website's last summary was almost a year ago.
01:13 TimToady which website?
01:13 mightybyte http://dev.perl.org/perl6/
01:13 lambdabot Title: Perl 6 - perl6
01:15 TimToady hmm, most of the actual work is being done elsewhere.
01:15 mightybyte Oh.  I was just searching around and couldn't find any recent information about it's current state.
01:16 tene http://pugs.blogs.com/ has copies of the list summaries, yes?
01:16 lambdabot Title: Pugs
01:16 mightybyte Ok, that's much more recent
01:16 TimToady more recent info at places like http://www.pugscode.org/ and http://planetsix.perl-foundation.org/
01:16 lambdabot Title: Pugs - pugscode
01:17 dduncan TimToady, your current method EXPR contains tab characters, which throws off the visual formatting
01:17 dduncan the rest of Perl-6.0.0-STD.pm rightly does not
01:17 mightybyte Ok, that's what I was looking for.  Thank you.
01:18 mightybyte left perl6
01:18 svnbot6 r15188 | lwall++ | detab, add headscratch about exporting
01:18 TimToady yeah, started writing that in a different file and :r'ed it
01:18 stevan_ joined perl6
01:19 TimToady I guess vim isn't smart enough to detab that.
01:19 dduncan I just exclusively use spaces in all my files, which saves me that trouble
01:19 TimToady even in your makefiles?
01:19 dduncan I don't write manual makefiles
01:19 dduncan just Makefile.PL et al
01:21 dduncan anyway, it looks much better now
01:30 Juerd 02:13 < mightybyte> Has there been any Perl 6 activity lately?  The website's last summary was almost a year ago.
01:30 Juerd There has been discussion about this on p5p
01:37 beppu vim is actually smart about forcing you to use tabs when writing Makefiles even if your configuration says to use spaces under more normal circumstances.
01:38 beppu vim `locate ftplugin/make.vim`  # for details
02:08 merlyn joined perl6
02:08 svnbot6 r15189 | lwall++ | delegate opp precedence min check to <expect_infix>
02:09 merlyn I normally wouldn't say this here, since it's off toppic, but... I just got my expungement papers.... I'm no longer a felon.
02:09 merlyn forgive the interruption... :)
02:11 audreyt merlyn: congratulations!
02:12 audreyt does that mean you can enter .ca?
02:12 merlyn arrested in nov 1, 1993.  finally cleared, 2/5/2007
02:12 audreyt 14 years
02:12 audreyt well, 13 years and 3 months
02:12 merlyn yeah, there's some date-type in Perl6 to compute that right? :)
02:13 audreyt 'mfraid you still need to load a module
02:14 merlyn by the way - brian has agreed to put llama for perl6 under some sort of download-for-personal-use-only license
02:14 audreyt cc-by-nc-sa I hope
02:14 merlyn I don't think he'll go for that.
02:15 merlyn he doesn't want parts of it ending up on blogs
02:15 audreyt oh, so not "nc" but more strictly "personal use"
02:15 audreyt kk
02:15 merlyn but that was my first proposal
02:15 merlyn basically - you can download it, but not share it online
02:15 audreyt "not for republish"
02:15 wolverian that is insanely great anyway.
02:15 merlyn makes sense... we want people coming back to the source
02:16 merlyn we'll probably set up discussion areas about each chapter too
02:16 merlyn so each chapter may look lik e a blog posting with comments
02:16 merlyn or somthing close tot hat
02:16 merlyn like the PHP-annotated docs
02:16 audreyt cool
02:16 merlyn I really want perl6 to succeed
02:16 merlyn I think haveing the llama for perl6 freely downloadable will help
02:17 audreyt oh yes.
02:17 amnesiac joined perl6
02:17 merlyn we'll make more money from consulting and training anyway
02:17 merlyn so the book sales even if cut in half won't mess up too much
02:42 BooK_ is now known as BooK
02:45 dmq joined perl6
02:45 buu dmq: Did you fix it yet?
03:20 justatheory joined perl6
03:47 GabrielVieira joined perl6
03:52 weinig is now known as weinig|zZz
03:53 mako132_ joined perl6
03:56 mncharity joined perl6
03:56 mncharity is now known as putter
03:56 araujo make the llama free
03:56 araujo :-P
04:00 putter At one time, there was the concept of ops which could only occur when leading whitespace was/wasn't present.  Has that concept gone away?
04:06 putter TimToady: should   rule statement_control { :<foo> ... }  be instead  rule statement_control:foo { :<foo> ... }   Ie, non-anonymous, so derived grammars can discard/override it.
04:44 seano joined perl6
04:44 putter ok, I just took a 15+% performance hit from adding the eval{}'s to do exception based commits in yet_another_regexp_engine.  Before I go explore, anyone familiar with the performance pragmatics of eval{}?  Eg, given a loop with a statement needing eval'ing, is it better to eval{} the loop,  or eval{} the statement?
04:45 seano putter: well, how often does the loop run? ;)
04:45 putter that kind of thing
04:45 seano er, how many times...
04:45 putter pondering...
04:46 seano putter: note: I actually know almost nothing about the performance of eval.
04:46 beppu_ joined perl6
04:46 allbery_b I was under te impression it was bettr to eval the loop because the statement gets reparsed every time itt's evaled, even if constant
04:46 allbery_b aoh wait, eval}{.  shouldn't
04:46 allbery_b er, eval{}
04:46 allbery_b that should be compile time.  hm.
04:46 seano however, have you tried building up a single enormous sub for the whole rule and string-evaling it?
04:48 ProperNoun joined perl6
04:49 putter seano: re how often, lots.  also non-loop cases, with choices like 'return out if it" vs "value out of it and external return".
04:50 * seano dives into the code, shudders briefly, and begins swimming...
04:50 putter re whole rule, arbitrary user code is free to cause a group/regex/match failure.  so whereever the code comes from, must deal.
04:50 seano btw, anyone have a problem with my adding some comment turds (e.g. "# '") to TimToady's grammar to placate cperl mode?
04:51 PerlJam seano: dude, ask forgiveness, not permission.
04:51 PerlJam :-)
04:59 putter could always copy file foo to file foo-seano.  that's a protocol from Common, though not much (never?) actually used.
04:59 putter PerlJam <- what he said
04:59 seano PerlJam: aight, dude.
04:59 ProperNoun joined perl6
04:59 seano putter: right, but if you translate "fail BLAH" into "goto BLAH" then it might not be so bad.
04:59 PerlJam svn will let us go back if we need to.
04:59 seano s/be so bad/be functional/
04:59 seano PerlJam: right.  so does CVS, but most projects seem to work on the "you make a change we don't like, we hate you forever and flame you on the mailing list without mercy" principle.
04:59 TimToady feel free
04:59 PerlJam seano: if the perl community were like that, I wouldn't be here.
04:59 putter not pugs++ audreyt++
04:59 TimToady just don't insert any newlines between a #= and its {*} target
04:59 seano TimToady: or extra junk after the #= before newline?
04:59 seano PerlJam: I'm conflicted on it -- Emacs, despite the nasty, nasty politics, is a glorious piece of software.
04:59 PerlJam seano: I think you and I have different ideas of what "glorious" means  :-)
04:59 ashleyb joined perl6
04:59 seano PerlJam: I think you are benighted not to recognize Emacs' divine nature ;)
04:59 TimToady I'd put 'em in as #<...> comments maybe
04:59 seano but I forgive you, my son.
04:59 TimToady but yes, #= currently assumes everything to the end of the line is fodder to any postprocessor
04:59 seano TimToady: "#<..>"?  I may have missed a doc update...
04:59 seano ok
04:59 TimToady #{} #() #<<<>>>
04:59 TimToady as long as the brackets match
04:59 TimToady and as long as the # isn't in the first column
04:59 seano TimToady: thanks.
04:59 PerlJam (And as long as TimToady doesn't change the legal comment sequences  ;-)
05:00 seano Well, he'll just have to ask our forgiveness in that case ;)
05:01 PerlJam you know ... I'd stopped reading all the changes to the synopses because there were just too many of them, but I have glanced over each of them.  Lately I've been feeling the tyranny of choice in my brain wrt perl6  (i.e., like there may be too many choices because the language has gotten too big)
05:01 * seano expands his knowledge of emacs input methods, while waiting for UPS to deliver his organ-like über-keyboard.
05:01 PerlJam But maybe it's just because I haven't picked up a dialect quite yet.
05:02 * putter thinks "nothing like getting the semantics right before worrying about performance... nothing at all like it. :/"
05:03 justatheory joined perl6
05:03 PerlJam putter: if we wait long enough, Moore's law will take care of performance for us  ;->
05:04 svnbot6 r15190 | seano++ | Placate cperl-mode with a few commented-out delimiters.
05:04 * seano smacks PerlJam
05:04 TimToady putter, generally you override a rule just by making sure you're longest token masks the longest token of the rule you're hiding.
05:05 seano PerlJam: Java people have been claiming that for ages, but Java's still useless to me because virtual memory sizes aren't obeying moore's law.
05:06 TimToady presumably there will be a way to lookup a particular rule and nullify it.
05:07 TimToady and the intent is that there be enough information at compile time so that the name "foo:<*>" can be constructed, and maybe that can have a link back to the rule that produced it somehow.
05:08 seano TimToady: I was a bit surprised that some quoting characters nest while others  don't, e.g.:
05:08 seano token infix is Assignment[]                     #= infix:<+<=> def
05:08 seano    { :<+<=> {*} }                              #>#= infix:<+<=>
05:08 seano does this surprise anyone else?
05:08 TimToady that's just a booboo
05:08 seano should be ":[+<=]"?
05:09 TimToady :['+<=']
05:09 seano ah, right.  fixing....
05:09 TimToady actually, as metaoperators those should all be automatically generated
05:09 ashelyb_ joined perl6
05:10 TimToady I just haven't written any code to do that yet, so I left in the definitions that came over from Patrick++'s code.
05:10 seano agreed.  there's a whole section in there that could benefit from autogeneration.
05:11 TimToady autogenerate, or just parse on the fly
05:11 nipra joined perl6
05:11 TimToady reduce ops currently parse on the fly :<[> <infix> :<]>
05:12 TimToady but that's assuming <infix> matches all infix including various metaops
05:12 TimToady reduce can get away with that because it's *not* an infix...
05:13 TimToady well, I think it can get away with it, but actually maybe it can't
05:13 TimToady if <infix> terminates longest-token with a {...}, then the ] doesn't
05:13 seano hmph.  I need to catch up more before I can make myself of use here...
05:13 TimToady count as part of the token, so we have ambiguity with list constructors.
05:13 TimToady hmm
05:15 putter re sc:foo, so normal grammar/role does()ing works for  rule foo's, but not for category'ed rules?? ^o^
05:16 TimToady categories set up multis, basically
05:16 TimToady whatever words we end up using for it
05:17 TimToady what do you mean by "does()ing works"?  that collisions are detected?
05:20 putter grammar C { rule a {...} };  grammar D does C { rule a {...this replaces the yucky rule in C...} };  so what if a is a yucky expr rule?  
05:20 ashleyb joined perl6
05:20 TimToady you mean a yucky category rule?
05:21 putter grammar C { rule expr { :<a> ... } };  grammar D does C { ??? }
05:21 putter (where expr is a category)
05:21 TimToady I think that, like with proto, if you declare your own category, it hides the proto from outside
05:22 TimToady but in any case, as with multi, even if you don't do that, the inner longname can hide the outer one completely.
05:22 TimToady it's just that longnames are calculated by longest token rather than sig matching
05:23 putter so  rule statement_control { :<for> ...}  has a uniquely identifying longname?
05:23 putter ah
05:23 putter hmm
05:24 TimToady that pattern at least must match "for" to begin with, and maybe more
05:24 putter what about  regexp statement_control { ... } ?   no simple longest token.
05:24 TimToady in fact, this case is probably cleaner than mmd semantics
05:24 TimToady since we know it goes left-to-right
05:24 Debolaz joined perl6
05:27 TimToady I do pass :symbol into certain rules that wouldn't know their symbol name otherwise.
05:35 bd_ left perl6
05:38 svnbot6 r15191 | lwall++ | attempt to recognize different kinds of right curlies
05:39 TimToady putter: a rule with a longest token of "" always runs after any rules with longer tokens.
05:41 TimToady that was ambiguous.  it only runs if the longer ones fail
05:49 fandang0 joined perl6
05:51 dolmans joined perl6
05:52 putter perhaps make   regexp categ:foo {...}  an optional way to specify a longname?
05:53 putter (eval{} issue resolved.  commentary available if anyone is interested)
05:55 amnesiac joined perl6
05:56 TimToady putter: the grammar use to be full of categ:foo, and I didn't like it.
05:56 TimToady because everything ended up looking too much like the eventual &categ:foo operator name
05:56 TimToady and it was violating DRY all over
05:56 putter having  rule categ { :<foo> ... }  a shorthand for  rule categ:<foo> { :<foo> ... } is certainly nice.  it felt rather ugly to keep duplicating that info (in PILRUN?)
05:57 TimToady or else assuming the key was preparsed
05:57 TimToady hashes all over again
05:57 TimToady and the thing is, :<foo> is available when the rule is being compiled.
05:57 TimToady and for brackets, you can put them on both sides and collect them.
05:58 TimToady so by the time the rule is compiled, you know .category is infix and .symbol is :<*>
05:58 TimToady so at least you ought to be able to ask the category for a list of its symbols.
05:59 TimToady which is basically what we'll be doing for metaoperator generation.
05:59 rashakil_ joined perl6
05:59 putter it would be kind of nice to have  grammar BagOfTricks { rule categ:<a_blue> {:<a>...} rule categ:<a_red> {:<a>...}}  grammar MeChoose does BagOfTricks { err...  "import a_red as my a" }
06:00 TimToady well, just don't override a_red and you'll get it automagically
06:01 TimToady though I guess that doesn't really help you there
06:03 TimToady anyway, there will likely be a way to disambiguate somehow, I'm not too concerned
06:03 TimToady I'm much more interested in getting 6.0.0 out the door soonly
06:07 TimToady probably the same mechanism that generates metaops can generate local rules from outer rules that *don't* match a particular pattern as easily as rules that *do*
06:07 kanru joined perl6
06:09 TimToady subset category infix of SUPER::infix where .symbol ne 'a_blue';
06:09 putter ok
06:10 ashelyb_ joined perl6
06:11 TimToady basically, remember this is Perl--it only looks like declarations.  it's all procedural underneath at some level...
06:13 TimToady which is why even the declarators are in extensible categories.
06:14 putter still declarative, just richly so :)
06:14 BooK_ joined perl6
06:24 putter re OPP, there is a programming language, "sugar" i fuzzily think, which has a similar state table to pm's.  I'm not having much luck finding it.  Aside from a poor name, there are several of them. :/
06:25 putter anyway, the reason I ended up going with decomposing terms into lexemes, is I could be more flexible about the precedences on the inside of a ternary op.
06:26 putter bonus is one can do n-ary ops ala smalltalk
06:26 TimToady what do you mean by "flexible"?
06:26 TimToady Perl 6 specifically rules out loose ops in the middle of ??!!
06:27 hexmode joined perl6
06:27 TimToady in a sense, our listops are n-ary ops where n is *   :)
06:27 putter oy
06:27 TimToady but it's be pretty easy to put an 'n' constraint in along with the precedence constraint
06:28 TimToady in fact, arguable unary ops are just n=1
06:28 TimToady 'course you have to decide how to count based on precedence too...
06:29 TimToady which is a good reason to give , its own precedence level
06:29 putter re flexible, my fuzzy recollection at the time (Q1 '06?) was that it was not yet clear what was happening inside ?? !!.  flexible meant it could implement however it turned out. :)  though it also means other trinaries could hypothetically make other choices.
06:30 kanru joined perl6
06:30 TimToady well, I presume you've looked at how ?? <EXPR()> !! is handled currently
06:31 TimToady to do the other you just have to allow any precedence but pass !! as part of the terminator set
06:31 putter n-ary ops in the sense of    prefix:<foo bar hee qux> {...}     foo 3 bar 4 hee 5 qux 42 + 5
06:32 putter probably should call that an n-ary op.  hmm... what's the jargon...
06:32 TimToady :<foo> <EXPR> :<bar> <EXPR> :<hee> <EXPR> :<qux> / with suitable args to EXPR
06:32 Ziggy6 joined perl6
06:33 TimToady it even ends up named :<foo bar hee qux>
06:34 putter does it compete (longest match) using foo or the whole thing?
06:35 TimToady just foo
06:35 TimToady would have to use backtracking for the rest
06:35 putter so that's a difference.  if one wished whole thing, would it be doable?
06:37 TimToady possible, but then we have to enforce more of a lexer approach probably
06:37 TimToady more like lex/yacc
06:37 putter I suppose that somewhat raises the issue of things that compete for longest match with not quite the usual thing.  the redsix grammar from the other day used it a few places to tweak things.
06:37 putter err, confusing use of thing.  eg,
06:38 TimToady leftover try's from the Haskell?
06:39 jisom joined perl6
06:39 putter rule statement_control competes_for_longest_match_using(:<for> <'$@!'>) { :<for> <'$@!'>...}
06:40 putter or something vaguely like that.
06:40 TimToady but p6 would already consider $@! part of the longest token
06:41 putter basically "judge me not just by my leading token, but by the leading content of my expression"
06:41 TimToady sure, as long as you can pretend to be running a DFA
06:41 TimToady that's why we try to nail down exactly what stops that declarative syntax.
06:42 putter rule statement_control compete(:<for> <arbitrary_test_of_fribbleness_here>) { :<for> ... }
06:42 TimToady the "longest token" hasn't been "just the hash key" for some time now
06:43 TimToady just inline the arbitrary test as an assertion
06:43 putter hmm.... so a    ab|ac  would have a leading token of a?
06:43 TimToady no, it has a leading token of a[bc]
06:44 putter ooooo....
06:45 putter nifty
06:45 TimToady x <[0..9a..fA..F]>+ [ _ <[0..9a..fA..F]>+ ]*
06:45 TimToady that's one token
06:45 TimToady oh, missed the 0 on the front...
06:47 putter so the reason the prefix:<foo bar hee>  doesn't compete on the full   :<foo> <EXPR> :<bar> etc  is?
06:47 TimToady <EXPR> isn't DFAable
06:49 putter and dfaability is sufficiently well defined that we are not just saying "the longestmumble is the leading sequence of elements which didn't puzzle the current implementation of the rules engine"?
06:50 TimToady I don't see any words to that effect in S05.  :)
06:50 putter lol
06:50 TimToady I'm sure there are cases we haven't specced yet.
06:51 TimToady but usually the holes are spotted by the person actually trying to implement.
06:51 TimToady as long as the feedback gets to the spec, and not just secretly baked in, it stays relatively healthy
06:51 TimToady and we really can't do much better than that with the manpower we have.
06:52 putter re holes, "why is there blood coming out here, oh...", yes ;)
06:52 TimToady most of the spec fixes in the last while are from me actually trying to implement a grammar
06:53 TimToady and realizing that hashes simply weren't going to cut it
06:53 TimToady and that comma really needed to have its own precedence level
06:54 putter Err, ok, I'm confused.  At a minimum about being confused.  Sandwich parser - top-down bread, opp meat, top-down bottom bread.  I missed the menu note which said the bottom bread couldn't backtrack.
06:55 putter re comma, general observation, "ah"
06:55 putter :)
06:56 TimToady why wouldn't it be able to backtrack?
06:56 leed joined perl6
06:56 tokuhirom joined perl6
06:56 * putter goes to remindhimself what dfa-able means...
06:57 TimToady mind, we prefer not to backtrack, predictive parsers being a lot faster
06:58 putter hmm, maybe the divergence is whether symbols can have different lengths at different pos()s.
06:59 iblechbot joined perl6
06:59 putter the dfa-ability seems to be a "extract leading pos-independent portion of pattern".  maybe?
07:00 putter can one do   regexp statement_control { foo+ ... }
07:00 putter c[ad]+r  :)
07:01 putter ("symbols" in the DFA sense)
07:02 putter yipes. 2am.
07:04 TimToady it basically means you can construct the set of possible next states by only looking at the next character without using a pushdown stack
07:08 TimToady and lexers basically cheat by preprocessing your program into supercharacters called "tokens"
07:09 putter so it's a restriction on the ingredients of the sandwich for the purpose of compilability.  "make your bottom slice out of that subset of regexs with property x, and we dfa it on a character level".
07:09 putter s/and we/so we can/
07:10 putter but no, that's not it either...
07:10 TimToady except our bottom level can call itself recursively
07:11 TimToady or it can backtrack by throwing an exception
07:12 putter a[bc] being a valid "thing for longest match" (<- need a name, what is that called??), means that seeing char a, you don't actually know if the a[bc] thing is really a possible state.  so is the dfa state a... superposition of "parallel" states of matching the assorted a[bc] etc patterns?
07:13 TimToady we're using the sandwich model for Perl 6 parsing because we know we can get away with it, and it makes it easy to extend the grammar.  other languages might take different strategies.
07:13 putter s/is really a possible state/is really a candidate at the current pos/
07:15 putter my mind is pudding.  time to sleep.  my thanks for a most interesting conversation.
07:15 TimToady http://www.perlmonks.org/?node_id=597262
07:15 lambdabot Title: Perl regexp matching is slow??
07:15 TimToady has discussion of dfa matching
07:15 TimToady if you follow the link
07:16 TimToady 'night
07:17 spinclad joined perl6
07:18 putter So when people extend the p6 grammar, they have to join in our game here.  no, "well _obviously_ it isn't a for loop, it says fribble after the closing blo
07:18 putter ck there".
07:18 putter i have to think about that.
07:18 putter another day
07:18 putter good night all &
07:26 putter joined perl6
07:29 marmic joined perl6
07:36 devogon joined perl6
07:41 Dr_Pi joined perl6
07:56 Dr_Pi_ joined perl6
08:07 nipra joined perl6
08:09 lumi joined perl6
08:19 spinclad joined perl6
08:42 gaal joined perl6
08:43 spinclad joined perl6
08:51 VanilleBert joined perl6
08:57 gaal_ joined perl6
09:03 elmex joined perl6
09:06 pfarmer joined perl6
09:09 drrho joined perl6
09:10 jamhed joined perl6
09:15 andara joined perl6
09:18 mj41 joined perl6
09:20 gaal joined perl6
09:40 gaal joined perl6
09:49 * Debolaz looks at http://en.wikipedia.org/w/index.php​?title=Perl_6&amp;curid=1146638&amp​;diff=106004520&amp;oldid=104259767
09:49 lambdabot http://tinyurl.com/2g7mj6
09:52 dduncan left perl6
09:59 stef_ joined perl6
10:04 baest joined perl6
10:06 spo0nman joined perl6
10:07 lumi_ joined perl6
10:28 VanilleBert left perl6
10:28 baest joined perl6
10:50 spinclad joined perl6
11:02 IllvilJa joined perl6
11:02 ruoso joined perl6
11:41 explorer joined perl6
12:09 chris2 joined perl6
12:11 buetow joined perl6
12:59 Grrrr joined perl6
13:20 hexmode joined perl6
13:23 wolverian um.. project manager?
13:28 mako132_ joined perl6
13:29 elmex what?
13:31 bsb_ joined perl6
13:32 wolverian 11:49    Debolaz * looks at http://en.wikipedia.org/w/index.php​?title=Perl_6&amp;curid=1146638&amp​;diff=106004520&amp;oldid=104259767
13:32 lambdabot http://tinyurl.com/2g7mj6
13:32 wolverian elmex, see that. :)
13:32 elmex ?
13:33 bonesss joined perl6
13:33 elmex heh
13:33 elmex i've read that thread
13:36 elmex but i'm not the project maanger :)
13:36 wolverian I didn't think you were :)
13:36 wolverian oh, jesse really is the project manager
13:36 wolverian sorry, didn't know that :)
13:37 elmex me not too :)
13:37 elmex but it's obvious that perl 6 has no schedule
13:42 fglock joined perl6
13:42 svnbot6 r15192 | fglock++ | kp6 - reimplemented KindaPerl6i::MOP to use p6-land data
13:42 svnbot6 r15192 | fglock++ | - CHECK blocks
13:42 partclCoke merlyn++
13:51 partclCoke ... what the hell, I edited the perl6 page?
13:52 partclCoke ah, that.
13:52 partclCoke from another chat server:
13:52 partclCoke -> (08:49) From Sue D. Nymme, to perl:
13:52 partclCoke - If a camel is a "horse designed by a committee", then isn't Perl 6 a camel
13:52 partclCoke - designed by a committee?  :-)
13:52 moritz wtf?
13:53 elmex ?
13:56 wolverian heh :)
13:56 partclCoke I was: 0) congratulating merlyn, 1) responding to the perl6 wikipedia post earlier, 2) copying an amusing quote from elsewhere.  wdym, wtf?
13:56 merlyn thanks
13:56 bonesss joined perl6
13:56 merlyn not like I actually had to do anything, except not get in further trouble :)
13:57 partclCoke which is why I congratulate you! =-)
13:57 partclCoke I see your wiki page has already been edited. =-)
13:57 moritz ;)
13:57 merlyn yup
13:57 merlyn I just had to put a note on the talk page
14:14 camenix joined perl6
14:28 GabrielVieira2 joined perl6
14:36 vel joined perl6
14:38 bonesss is now known as bones`away
14:42 hexmode joined perl6
14:52 xinming joined perl6
14:54 ProperNoun joined perl6
15:16 amnesiac joined perl6
15:18 thepler joined perl6
15:25 bones`away is now known as bonesss
15:26 ashleyb joined perl6
15:31 VanilleBert joined perl6
15:32 shay joined perl6
15:35 kolibrie ?eval say :36<Z>
15:35 evalbot_r15192 OUTPUT[35␤] Bool::True
15:36 kolibrie how do I go the other direction, to get back a 'Z'?
15:39 xwrn joined perl6
15:46 GabrielVieira2 is now known as GabrielVieira
15:53 TimToady @tell seano I think it's basically impossible to have a perl highlighting mode that isn't aware of whether it's marking Perl 5 or Perl 6
15:53 lambdabot Consider it noted.
15:55 TimToady kolibrie: no way to get back to 'Z' currently other than (0..9,'A'..'Z')[$digit] currently
15:55 kolibrie TimToady: okay - that's fine, so long as there's a way :)
15:56 kolibrie ?eval say  (0..9,'A'..'Z')[35]
15:56 evalbot_r15192 OUTPUT[Z␤] Bool::True
15:57 kolibrie looks nice to me
15:57 TimToady will do for now
16:03 kolibrie of course that does not handle multiple digit numbers
16:03 kolibrie ?eval say :36<AB>
16:03 evalbot_r15192 OUTPUT[371␤] Bool::True
16:04 * partclCoke pokes pmichaud with a stick.
16:05 VanilleBert left perl6
16:10 Schwern joined perl6
16:14 explorer joined perl6
16:19 ruoso joined perl6
16:20 mr_ank joined perl6
16:22 justatheory joined perl6
16:25 ofer0 joined perl6
16:45 kanru joined perl6
16:49 moritz is there a (searchable) p5 to p6 conversion "reference"?
16:50 moritz like a perldoc page where you can look up things like "what happened to wantsarray?"
16:50 DHGE joined perl6
16:53 kolibrie I thought pugs/docs had something like that once, but I don't see it now
17:01 TimToady docs/Perl6/Perl5/Differences.pod has an incomplete list, but it doesn't include wantarray
17:03 moritz TimToady: should that list, once complete, list all functions that are different?
17:03 moritz TimToady: like atan2 -> atan etc.?
17:04 TimToady atan2 is still atan2  (again)
17:04 TimToady docs/Perl6/Spec/Functions.pod
17:04 TimToady recursive grep in the Spec directory will find most of the canonical stuff
17:05 TimToady outside of Spec tends to be more speculative and dated
17:05 moritz TimToady: ok, thanks
17:05 TimToady also misc/pX/Common/P5_to_P6_Translation is the p5-to-p6 translator
17:05 TimToady which is nice if you can read Haskell...
17:05 moritz I can't ;-)
17:05 TimToady and know what the yml input form is...
17:05 TimToady so that's probably not going to help much
17:05 TimToady though I expect there's a doc there that says what it does
17:06 kanru joined perl6
17:10 svnbot6 r15193 | lwall++ | Added todo list, first (wrong) whack at heredocs
17:16 moritz well, doc/Perl6/Spec/Functions.pod mentions atan2, while t/builtins/math/trig.t tests atan in its two arguments form
17:17 as joined perl6
17:20 justatheory joined perl6
17:23 buetow joined perl6
17:37 bernhard joined perl6
17:41 TimToady moritz: problem is that the two argument form wants to default the second argument to 1, and then atan($x) would be ambiguous.
17:41 TimToady that's why it went back to atan2
17:57 moritz then the tests should be updated I guess ;)
17:57 TimToady it's nice when that happens :)
17:57 xinming_ joined perl6
17:57 moritz I'm currently working on test cases for complex numbers
17:57 moritz is exp(1))
17:57 moritz sorry
17:57 moritz is http://tinyurl.com/27pj7c still valid?
17:57 lambdabot Title: nntp.perl.org - perl.perl6.documentation
17:58 moritz i mean to write complex numbers as 1+2i?
18:00 TimToady that can be made to work.
18:01 TimToady though putting the postfix on a variable would need a dot $re+$im.i
18:01 moritz so should I use 1+2.i in my test cases?
18:02 TimToady 1+2i is fine if we define postfix:<i>
18:02 moritz ok, thx
18:05 ashleyb joined perl6
18:10 svnbot6 r15194 | lwall++ | start sketching in regex metachars
18:10 svnbot6 r15194 | lwall++ | add postfix:<i>
18:10 svnbot6 r15194 | lwall++ | add default equivs for categories
18:13 svnbot6 r15195 | moritz++ | added first test cases for complex logarithms
18:14 moritz I'm sure that will break everything ;)
18:15 ofer0 joined perl6
18:16 PerlJam Is there any synchronicity between the pugs perl6 grammar and the parrot perl6 grammar?
18:16 Ziggy6 joined perl6
18:17 ashelyb_ joined perl6
18:17 amnesiac_ joined perl6
18:19 amnesiac_ is now known as amnesiac
18:21 partclCoke is the grammar in the pugs repo defined *in* perl6?
18:22 TimToady PerlJam: the grammar I'm working on is roughly based on the parrot grammar
18:23 partclCoke which came first, the spec or the implementation...
18:23 TimToady partclCoke: yes, the grammar I'm working on is in Perl 6.
18:23 PerlJam Right, but does the grammar flow the other way too?
18:23 partclCoke I'm sure it will eventually. Right now we're still trying to pass teh sanity tests on parrot.
18:23 TimToady PerlJam: I've tried to make it easy to flow the other way with a preprocessor
18:24 PerlJam okay
18:24 TimToady that is what all the {*} hooks are fore
18:24 TimToady *for
18:26 PerlJam ah ... I just updated my pugs and am reading through src/perl6/PErl-6.0.0-STD.pm
18:35 justatheory joined perl6
18:37 rashakil__ joined perl6
18:42 jisom joined perl6
19:06 Caelum joined perl6
19:09 jisom joined perl6
19:13 Dr_Pi joined perl6
19:23 moritz in t/builtins/math/NaN.t says 0**0 should be 1, although the referenced mathworld article claims that it should be NaN
19:23 moritz and any good mathematician will tell you so as well ;)
19:23 audreyt it carries from perl5
19:23 audreyt where has it as 1 as well
19:24 audreyt ruby, python, etc all has it as 1 :)
19:24 moritz audreyt: but isn't perl6 supposed _not_ to make the same mistakes?
19:24 audreyt iirc we've been there before
19:24 moritz I just know more about mathematics than about programming ;)
19:25 audreyt yeah, but there's also something to be said when basic math disagrees with other languages :)
19:25 jisom x**0 = 1?
19:25 moritz but 0**x = 0
19:25 jisom 0**x = 0
19:26 jisom so make it .5? :-p
19:26 moritz jisom: *slap*
19:26 jisom what does the fpu say it should be?
19:26 moritz Dunno ;)
19:27 audreyt likely 1, since that's what naive C-land calculation has
19:27 audreyt at least on this particular intel coreduo cpu :)
19:27 jisom btw, moritz, ever heard of -0.0?
19:28 jamhed joined perl6
19:29 moritz jisom: yes :(
19:29 audreyt anyway, ISO C standard defines 0**0 as 1
19:29 Schwern joined perl6
19:29 moritz void main (){int i = (int) -3 / (unsigned int) 3; printf("%d\n", i);};
19:29 moritz => 1431655764
19:29 audreyt and fpu/cpu probably builds according to that
19:29 moritz => C is weird ;)
19:30 Belaf joined perl6
19:30 moritz anyway, should I write some exp(complex) tests?
19:30 jisom for parrot or pugs....or.....?
19:30 moritz pugs
19:31 audreyt moritz: sure! that'd be welcome
19:32 audreyt moritz: there may be some already from http://search.cpan.org/src/JHI​/Math-Complex-1.37/t/Complex.t
19:32 jisom don't forget, e^(pi * i) + 1 = 0, not some tiny irrational number
19:32 audreyt moritz: but t/builtins/math/ awaits your commits
19:35 moritz audreyt: uhm, what does that mean?
19:35 moritz I `svn ci`ed at 18:12
19:36 * moritz is fairly new to svn :(
19:36 audreyt oh heh. I didn't backlog. sorries :)
19:37 moritz hm, Math::Complex is hard to beat ;)
19:39 audreyt ok, hacking in postfix i
19:39 moritz jisom: why should it be? that would imply sin(pi/2) == 1 and cos(pi/2) == 0 which we don't enforce
19:40 jisom special casing?
19:40 moritz jisom: afaict we don't even have an exact value for pi
19:40 moritz ?eval say pi
19:40 evalbot_r15195 OUTPUT[3.141592653589793␤] Bool::True
19:40 jisom but we have exact definitions
19:41 moritz *I* would like to see a complete CAS in p6 ;)
19:42 moritz jisom: you don't want to port yacas to perl6 by any chance? *g*
19:42 jisom yacas?
19:42 jisom and I'm not an hll guy :)
19:42 moritz yet another computer algebra system ;)
19:43 justatheory joined perl6
19:45 weinig|zZz is now known as weinig|away
19:45 jisom eh, it'd be more fun to port mathematica to parrot
19:45 moritz jisom: right, but mathematica is _so_ non-free :(
19:45 jisom but the language?
19:46 moritz hm, probably it depends on the country you're in if that's "free" or not
19:51 marmic joined perl6
19:51 audreyt complex math implemented
19:51 audreyt testing
19:54 Dr_Pi_ joined perl6
19:58 iblechbot joined perl6
19:58 svnbot6 r15196 | moritz++ | some exp(complex number) tests
19:58 svnbot6 r15197 | lwall++ | tweaks to hilighting
19:59 vel joined perl6
20:02 partclCoke ~/win 7
20:16 audreyt moritz:
20:16 audreyt exp.t
20:16 audreyt # Looks like you planned 1 tests, but ran 44
20:16 audreyt # Looks like 42 tests of 44 passed unexpectedly
20:16 audreyt can you fix the plan and the todo?
20:17 audreyt plan is also wrong in log.t; also 1+i there should read 1+1i
20:17 moritz audreyt: I'll try ;)
20:18 audreyt :)
20:18 audreyt thanks
20:19 moritz so should all complex arethmetics be considered non-todo?
20:19 moritz uhm, done ;)
20:22 audreyt cool :)
20:22 audreyt committing...
20:23 moritz audreyt: I'll wait until I have compiled the new pugs, so that I can test my tests ;)
20:23 svnbot6 r15198 | audreyt++ | * Pugs.Parser.Operator: Add postfix "i" form
20:24 audreyt moritz: a sec, it'll take ~3 commits
20:26 TimToady it'd be nice if pugs could parse Perl-6.0.0-STD
20:26 TimToady but there are at least two things not parsing right now...
20:27 TimToady maybe I should add parsing the Perl grammar to the sanity tests.  :)
20:29 audreyt moritz: r15201
20:29 svnbot6 r15199 | lwall++ | more hilighting
20:29 svnbot6 r15200 | audreyt++ | * Introduce pretty printing and casting for VComplex.
20:29 svnbot6 r15201 | audreyt++ | * Numeric primitives for complex numbers.
20:30 audreyt TimToady: is log(-1) in NaN or in complex land?
20:30 gaal ?eval e**(pi*1i)
20:30 evalbot_r15197 Error: ␤Unexpected "i"␤expecting "_", fraction, exponent, term postfix, operator or ")"
20:31 moritz -1 = exp((1+2n)pi i ) => log(-1) = (1+2n) pi i for all integer n
20:32 moritz so you have to choose one complex plane, usually between 0 and 2pi
20:37 moritz ?eval e**(pi*1i)
20:37 moritz ?eval exp(pi*1i)
20:37 evalbot_r15197 Error: ␤Unexpected "i"␤expecting "_", fraction, exponent, term postfix, operator, ":" or ")"
20:38 TimToady ?eval exp(pi * 1.i)
20:38 evalbot_r15197 Error: No compatible subroutine found: "&i"
20:38 allbery_b evalbot is still stuck on 15197
20:38 moritz poor fellow ;)
20:38 partclCoke TimToady: (add to sanity) not until parrot can parse the existing ones, please. =-)
20:39 partclCoke s/parse/pass/, even.
20:39 TimToady and I thought it was to the exp(-(pi*1i))
20:41 svnbot6 r15202 | audreyt++ | * Implement ** for imaginary numbers. The check for **0 isn't
20:41 svnbot6 r15202 | audreyt++ |   quite right yet (makes **1i considered 0 also) -- fixes welcome!
20:41 moritz it sounds so... periodical
20:41 audreyt gaal: 4:40am here and I need to crash :) r15202 has preliminary **1i
20:41 audreyt would be nice if you can help getting the **1i to work in op2Exp
20:41 audreyt bbiab *thunk*
20:43 allbery_b ?eval 1
20:43 evalbot_r15198 1
20:43 allbery_b hm, still a bit slow :)
20:51 moritz ?eval exp(1i*pi) # I keep trying ;)
20:51 evalbot_r15198 Error: No compatible subroutine found: "&postfix:i"
20:53 allbery_b quick, someone do a meaningless commit so it'll get up to 15199! :)
20:55 trym joined perl6
20:55 * moritz wants to commit anyway ;)
20:59 IllvilJa joined perl6
20:59 svnbot6 r15203 | moritz++ | (hopefully) fixed complex log/exp test cases
21:03 ruz joined perl6
21:03 hexmode joined perl6
21:13 TimToady ?eval -exp(-1i*pi)
21:13 evalbot_r15198 Error: No compatible subroutine found: "&postfix:i"
21:14 * allbery_b wonders what's up with evalbot
21:14 TimToady slow feather, likely
21:15 TimToady I had to realclean to recompile 202
21:15 moritz does evalbot compilation aborts when there is a new revision?
21:15 TimToady dunno
21:15 TimToady don't think so
21:15 moritz if not, there might but a few compile processes in parallel
21:15 moritz which eat up some memory
21:15 allbery_b eep
21:15 moritz possibly swapping ;)
21:16 TimToady I think it just finishes the one it's on, and then sees if there's a new version
21:18 zgh joined perl6
21:23 buetow joined perl6
21:24 Ziggy6 left perl6
21:24 Ziggy6 joined perl6
21:26 Aankhen`` joined perl6
21:30 kanru joined perl6
21:30 bonesss joined perl6
21:34 TimToady ?eval -exp(-1i*pi)
21:34 evalbot_r15203 1.0 + 1.2246063538223773e-16i
21:34 moritz hey, cool
21:34 moritz ?eval log(-1)
21:34 evalbot_r15203 NaN
21:34 moritz :(
21:35 gaal how much is 1.2246063538223773e-16i? is it just some SMALLNUM?
21:35 moritz log(exp(1i))
21:35 gaal (rehi)
21:35 moritz gaal: ist smaller than $EPSILON ;)
21:35 svnbot6 r15204 | lwall++ | more regex metachars
21:36 gaal hmm, i wonder what audreyt meant then
21:36 moritz ?eval log(exp(1i))
21:36 evalbot_r15203 0.0 + 1.0i
21:36 gaal ?eval exp 1
21:36 evalbot_r15203 2.718281828459045
21:36 moritz ?eval 2**1i
21:36 evalbot_r15203 1
21:36 gaal ?eval 2.718281828459045**(pi*1i)
21:36 bonesss is now known as bonesss`out
21:36 evalbot_r15203 1
21:36 gaal ah.
21:36 gaal :-)
21:38 Ziggy6 left perl6
21:40 dduncan joined perl6
21:41 Ziggy6 joined perl6
21:44 lisppaste3 joined perl6
21:48 explorer joined perl6
21:53 larsen_ joined perl6
21:55 weinig|away is now known as weinig
21:58 gaal audreyt: sorry, ran out of wakies, myself. i'm not clear on whether just op2Exp needs to be updated, or are there other functions as well (roots, trig functions...though the latter are probably thunked to haskelland?)
21:58 gaal z&
22:00 BooK joined perl6
22:04 ludan joined perl6
22:10 Limbic_Region joined perl6
22:30 Ziggy6_ joined perl6
22:36 ryba joined perl6
22:36 gaal joined perl6
22:38 gnuvince_ joined perl6
22:50 ryba left perl6
22:50 CardinalNumber joined perl6
22:59 polettix joined perl6
23:00 weinig is now known as weinig|away
23:07 dduncan left perl6
23:08 CardinalNumber is now known as ProperNoun
23:10 CardinalNumber joined perl6
23:13 bonesss`out is now known as bonesss`pb
23:15 Schwern joined perl6
23:25 weinig|away is now known as weinig
23:25 CardinalNumber joined perl6
23:27 CardinalNumber is now known as ProperNoun
23:52 Limbic_Region has anyone done the Y combinator in perl 6 yet?
23:54 moritz ?eval (1, 2) Y (3, 4)
23:54 evalbot_r15204 ((1, 3), (2, 4))
23:54 moritz this one?
23:55 audreyt Limbic_Region: &?BLOCK is implicitly Y
23:55 Limbic_Region no, that's zip
23:55 audreyt (but I'm sleeping)
23:55 Limbic_Region oh hey sleeping audreyt
23:55 moritz Limbic_Region: you're right ;)
23:56 Limbic_Region no worries moritz
23:56 Limbic_Region moritz - FYI - http://use.perl.org/~Aristotle/journal/30896
23:56 lambdabot Title: Journal of Aristotle (5147)
23:57 Limbic_Region see also  http://programming.reddit.co​m/info/135rx/comments/c135xv
23:57 lambdabot Title: Ask Reddit: The Y combinator in different programming languages? (reddit.com)
23:57 Limbic_Region er
23:57 Limbic_Region not that link
23:57 Limbic_Region http://hop.perl.plover.com/~alias/list.cg​i?2:sss:761:200701:fldcggnanheaijeidcpc#b
23:57 lambdabot Title: hop-discuss@plover.com: Thread on: Why no Y combinator?
23:57 Limbic_Region that's the one

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

Perl 6 | Reference Documentation | Rakudo