Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-24

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 Juerd audreyt: In case you're keeping records: I'm entirely okay with disclaiming copyright for all that I contributed to Pugs.
00:02 FurnaceBoy why would you do that? is it not GPL?
00:02 turrepurre_ joined perl6
00:02 Juerd foo < 5  # foo qw/ ..., or foo() < 5?
00:02 Juerd FurnaceBoy: See http://pugs.blogs.com/
00:02 FurnaceBoy k
00:03 wolverian Juerd, good question.
00:05 Juerd I fear a long left angle bracket ;)
00:05 Juerd Where if you meant foo() < 5, you can do foo< <5 :)
00:05 Juerd Perhaps a single solution has to be invented for all of these.
00:08 OutThere joined perl6
00:08 OutThere is now known as SubStack
00:09 avar Juerd: Where do you live?
00:11 Juerd avar: If this is about the copyright thing: I do not care about the legal possibility of actually disclaiming copyright; it's the intent that counts in court, and I don't even think there'll ever be any juridical action surrounding this.
00:11 Juerd avar: If for any other reason: Dordrecht, The Netherlands.
00:33 TimToady audreyt: I think the proper way to disambiguate my $x[@y] = 1,2,3 is just my ($x[@y]) = 1,2,3
00:33 TimToady it's the moral equivalent of ()= as "always list assignment" if we had such an opertor.   Well, we do, but the left side just has to go in parens.
00:34 coumbes joined perl6
00:35 TimToady If we make another way of forcing list assignment, we would have to at least think about killing (x) = y
00:35 TimToady but since we need () for precedence anyway, why not just use (x) =
00:36 TimToady .oO(I killed frederico, and kanru, and pjcj!)
00:37 dbrock what are the two possible meanings of my $x[@y] = 1, 2, 3?
00:37 TimToady whether @y is intended to be +@y or (@y,)
00:37 TimToady and because of that, whether = is a binary operator or a list operator
00:38 dbrock I see
00:39 TimToady there are lots of ways to dwim it, but unfortunately there's no really good place to draw the line on too-much-magic
00:39 TimToady Pretty obviously, $x[1..10] is intended as a slice
00:40 TimToady since .. no longer has a scalar meaning that works as a subscript
00:40 TimToady but it's probably better to detect these edge cases and just give a really good diagnostic:
00:41 TimToady "If you mean this lvalue to do list assignment, you have to put parens around it..."
00:41 TimToady only better.
00:42 TimToady it's not really a problem on an rvalue slice because it doesn't affect subsequent parsing.
00:45 TimToady except, of course, for the little problem that we assume an rvalue subscript is is in list context, and an lvalue slice is in scalar context.
00:45 TimToady which is a bit odd.
00:46 TimToady and, in fact, since $x[@y] is illegal as a "my" declaration, it would just be in bare parens, so when the parser sees
00:46 TimToady ($x[@y])
00:47 TimToady it can't yet know whether there's going to be an = to turn the whole thing into an lvalue.
00:48 TimToady so it has to parse @y as a list-or-scalar, or assume list and retrofit it to be a scalar when it sees the =
00:49 TimToady fortunately a Capture can treat @y as a list-or-scalar
00:50 TimToady since we have to defer knowing context anyway until after we dispatch "push @array, 1,2,3"
00:57 TimToady $x[@y].assign() vs ($x[@y],).assign() basically.  So when () sees an =, it transforms Capture to move invocant to positionals, just as , would have done.
00:57 TimToady .oO(and that killed shachaf...)
00:58 TimToady #perl6, the land of fatal thoughts...
00:58 KingDillyDilly joined perl6
00:59 mako132_ joined perl6
01:00 KingDillyDilly TimToady wrote "I think the proper way to disambiguate my $x[@y] = 1,2,3 is just my ($x[@y]) =  1,2,3"
01:00 KingDillyDilly I like that reasoning. I used it in http://perlmonks.com/?node_id=388635 .
01:11 * KingDillyDilly contemplates saying "I like how you think, Timmy. Say, do you play golf?" but thinks not.
01:16 bsb joined perl6
01:20 beppu joined perl6
01:32 Quell joined perl6
01:42 shachaf joined perl6
01:43 jserv-- joined perl6
02:09 avar YetAnotherEric: boo.
02:09 avar left perl6
02:10 avar joined perl6
02:20 FurnaceBoy_ joined perl6
02:25 qu1j0t3 joined perl6
02:27 Pete_I joined perl6
02:29 stclare joined perl6
02:43 svnbot6 r10062 | audreyt++ | * Chromatic requested removal of his contribution under the
02:43 svnbot6 r10062 | audreyt++ |   src/ tree; this is part #1: Bind.hs.
02:50 * KingDillyDilly researches computer language terms so he could say something properly
02:52 beppu If I wanted to write a perl 6 binding to the C library, libcaca ( http://sam.zoy.org/libcaca/ ), is that something that's possible to do now with pugs?
02:52 svnbot6 r10063 | audreyt++ | * Finish the Pugs.Bind cleanup for chromatic's contributions.
02:52 svnbot6 r10063 | audreyt++ |   "svk blame" still shows two empty newlines as chromatic's,
02:52 svnbot6 r10063 | audreyt++ |   but those are not copyrightable. :-)
02:55 audreyt beppu: yes... but currently it has to be writtne by hand in C or in Haskell
02:55 beppu Are there any examples of such a beast?
02:55 audreyt beppu: a swig-for-parrot or swig-for-pugs would be nice
02:55 audreyt yes
02:56 audreyt you can find src/Data/Yaml/Syck.hsc
02:56 audreyt a binding for libsyck
02:56 beppu excellent.
02:56 beppu oh shit, it's in haskell.  ;-)
02:57 beppu I guess I have an excuse to learn haskell, now.
02:57 audreyt yeah
02:57 audreyt there's automation:
02:57 audreyt http://hsffig.sourceforge.net/
02:57 audreyt I havn't used it, but it looks like on par with swig :)
02:58 beppu btw, I just finished listening along to your YAPC::Asia talk on Haskell while looking at the slides.  I found it very informative.
02:58 audreyt oh, thanks! :)
02:58 beppu You know, I never liked swig that much, because it was too straightforward...
02:58 audreyt my suggestion would be writing HelloWorld.hs using libcaca + Haskell FFI (maybe using hsffig)
02:58 audreyt #haskell can help
02:58 audreyt and then bridge it to pugs's object model
02:58 audreyt which is trivial
02:58 audreyt so focus on the interesting part first :)
02:59 beppu sometimes, I want to take a C library and make the perl wrapper seem perlish and swig can't do that, because it takes human judgement to do that kind of mapping.
02:59 beppu I'll keep your suggestion in mind.
03:00 audreyt also, see http://haskell.org/hawiki/FindPage?action=titlesearch&amp;value=ffi
03:00 audreyt example, cookbook, tutorial, etc, for writing bindings :)
03:01 beppu great, that'll help a lot.
03:01 beppu hey...  how much of perl 6 is left to implement in pugs?  (...becaues it seems like you guys have covered A LOT of ground already.)
03:02 beppu (that's why I feel like making libcaca bindings for perl 6)
03:02 beppu or pugs rather...
03:02 beppu but to me, pugs == perl6 .
03:06 audreyt heh
03:06 KingDillyDilly I can't find an official term for this, and my feelings aren't based on a whole lot, but sometimes I get the feeling that Perl 6 will be a very ununiform, contrived, difficult to learn language. Exceptions to rules and stuff. FWIW.
03:06 KingDillyDilly Damn...I think TimToady used the term I'm think. The quote was something like "There's nothing .... can't fix except too much ...." Could someone fill in the blanks?
03:06 Kattana joined perl6
03:06 Pete_I i thought pugs was just an interpretter for perl6
03:06 audreyt Pete_I: that is correct, except s/interpreter/implementation/
03:06 audreyt pugs is no more an interpreter than, say, java is an interpreter
03:06 audreyt beppu: a lot, actually; the class, grammar, types and macro milestones are all incomplete
03:07 Pete_I java is a language.
03:07 audreyt sun java then.
03:07 Pete_I javabeans is an interpretter thingy.
03:07 beppu java is a lot of things under one name.
03:07 Pete_I yeah
03:07 ayrnieu java is also the name of a programmer.
03:07 ayrnieu er, a program.
03:07 audreyt oy :)
03:07 Pete_I think i'll check that. maybe there's a guy named 'java smith'
03:08 beppu http://www.jwz.org/doc/java.html
03:10 coumbes joined perl6
03:10 Pete_I 'java' is a horrible name. makes me hate coffee more.
03:13 KingDillyDilly Found the quoteL "there's nothing that can't be solved with another level of  indirection...except the problem of too many levels of indirection." Doesn't fully apply, but it's found.
03:16 KingDillyDilly Good quote anyway.
03:19 aufrank joined perl6
03:22 dduncan audreyt, regarding the prospective or actual change that Pugs itself (not including ext/, examples/, etc) is officially committed to the public domain, do you want all committers to explicitly acknowledge this, or are you going that we approve by default if we don't explicitly dis-prove and remove our contributions?
03:23 dduncan personally, while my contributions to the core are minor at best, I will hereby officially commit those parts to the public domain
03:23 audreyt thanks :)
03:24 dduncan however, I will still retain ext/Locale-KeyedText and ext/Rosetta to myself as already stated in their copyright statements
03:24 audreyt dduncan: I'm still discussing with TPF on that, but I think I'll let some period of comments happen before releasing the next pugs with src/ pub-domained
03:24 dduncan can we assume that nothing is official until you make another CPAN release?
03:24 audreyt dduncan: sure. I'm disclaiming my compilation right as the release engineer
03:24 audreyt yes, that is correct.
03:25 dduncan another question; what about the t/ directory or docs/ ?
03:25 dduncan is it only src/ under discussion for change?
03:25 audreyt yes.
03:26 SubStack java is an island silly
03:26 audreyt I'll place explicit LICENSE to t/ and docs/ and examples/.
03:26 audreyt they remain A2b5+GPL
03:26 audreyt until we reach agreement with TPF on upgrading to A2b14
03:26 dduncan and util/ I presume
03:26 audreyt 's procedure
03:26 audreyt sure
03:26 audreyt but not the new third-party/
03:27 audreyt those are under whatever original license they are under
03:27 audreyt and we can't relicense them :)
03:27 audreyt (or rather, bettern ow.)
03:27 dduncan meanwhile, though it is in ext/ , I fully intend for ext/Relation to become part of the core if you would have it
03:27 audreyt (or rather, better not.)
03:27 audreyt dduncan: ooh. makes sense to say so then :)
03:27 TimToady I thought bettern ow was kinda cute.
03:28 TimToady .oO(There's nothing that can't be solved with another level of licencing, except the problem of too many levels of licensing...)
03:28 dduncan the reason I put 'Relation' in ext/ was because it was something I was proposing for Perl 6 that would need approval by the powers that be before I would consider that it was accepted into the core
03:28 dduncan so ext/ is a temporary spot for it ...
03:29 dduncan while I make my proof of concept to decide on
03:29 TimToady "powers that be" sounds so...patriarchal...or occasionally matriarchal...
03:30 dduncan when I first committed 'Relation' a week ago, I said this in its copyright:
03:30 dduncan Relation is Copyright (c) 2006, Darren R. Duncan.  But any copyright
03:30 dduncan interest will be transferred to The Perl Foundation for portions or
03:30 dduncan derivations that become part of Perl 6 itself.
03:30 dduncan however, given the current discussion ...
03:30 dduncan I'm thinking I should leave TPF out of it
03:30 dduncan and maybe just say it is for the public domain
03:30 dduncan at the time I wrote that ...
03:30 dduncan I thought the Pugs core would eventually be given to TPF
03:31 dduncan as it is supposedly the official copyright holder of "Perl 6"
03:31 * obra humbly suggests that intellectual property decisions be tabled until Artistic 2.0 is settled
03:32 obra For now, just don't go giving away all your IP rights to some guy named Guido who offers you a chance to be involved in his "next generation language" project.
03:33 obra He's almost certainly peddling snake oil.
03:33 TimToady hey, what do you have against Italians?
03:33 Pete_I italians are cool. they invented pizza.
03:33 dduncan I will take out the second sentence for now and defer further decisions until the right time
03:33 beppu http://www.njguido.com/
03:33 obra They're anti-lambda[camel].
03:33 TimToady right.  then explain how it is that tomatoes came from the new world.  :)
03:34 qu1j0t3 and a few other things not quite so ... delicious
03:34 Pete_I TimToady, the original pizza pie didn't have tomatoes on it.
03:34 dduncan true
03:34 Pete_I did have cheese though.
03:34 dduncan or if it did, it didn't have anything else on it that we associate with pizzas
03:34 TimToady when you say "pizza" nowadays around here, people assume it *must* have tomatoes.
03:35 TimToady so that's what pizza means here.
03:35 dduncan some don't even today
03:35 Pete_I you can still get it without tomatoes if you ask for it.
03:35 dduncan you can get, I think, a mexican pizza from some general joint, and it has refried beans instead of tomatoes
03:35 KingDillyDilly Vodka pizzas around here don't have sauce and are pretty popular.
03:35 TimToady kinda hard to get it without wheat though...
03:36 TimToady they make pizzas out of vodka now?
03:36 dduncan you can get bread without wheat, why not pizza?
03:36 TimToady 'cause it always has tomatoes on it.
03:36 Pete_I TimToady, you could make it yourself. it's not a difficult process from what i've seen.
03:36 TimToady hard to fling dough based on low-gluten flours...
03:36 KingDillyDilly I wonder if an underaged kid would be allowed to order a couple of vodka pies and just lick them.
03:37 TimToady wanders off... &
03:37 Pete_I KingDillyDilly, in all likelyhood the alcohol is cooked out.
03:38 KingDillyDilly I'd kick the kid out for that anyway.
03:39 Pete_I i'd let him think he's getting drunk so he'll come back and buy more later.
03:39 svnbot6 r10064 | audreyt++ | * README: Per dduncan++ and obra++'s suggestion, make it clear
03:39 svnbot6 r10064 | audreyt++ |   I'm just disclaiming the compilation-copyright, and the
03:39 svnbot6 r10064 | audreyt++ |   next-release-goal of changing src/ to public domain does
03:39 svnbot6 r10064 | audreyt++ |   not touch any other subdirectories, which are still assumed
03:39 svnbot6 r10064 | audreyt++ |   to be in A2b5+GPL unless explictly noted by the author.
03:42 audreyt dduncan: does that look a bit clear? :)
03:42 dduncan I think so, from what I've read ...
03:42 svnbot6 r10065 | audreyt++ | * rename Artistic-2 to Artistic-2.0b5, now we have
03:42 svnbot6 r10065 | audreyt++ |   A2b14 which may or may not be the same license...
03:42 audreyt cool :)
03:44 dduncan could possibly take a little more clean-up for better grammar
03:44 audreyt commit away then :)
03:44 dduncan will do ...
03:49 KingDillyDilly left perl6
04:03 svnbot6 r10066 | Darren_Duncan++ | updated the README file to improve some of its grammar ; updated ext/Relation/lib/Relation.pm to remove a speculation from its copyright
04:03 audreyt dduncan++
04:03 jserv-- joined perl6
04:05 dduncan now, back to a practical problem, regarding a multi-dimensional hash ...
04:05 svnbot6 r10067 | audreyt++ | * Eval.hs: rewrite chromatic++'s parameter-binding logic,
04:05 svnbot6 r10067 | audreyt++ |   this time supporting $!foo instead of $:foo.
04:21 drbean joined perl6
04:21 justatheory joined perl6
04:23 dduncan here's a question ... what's the best way to declare a multi-dimensional hash attribute of a class where the number of dimensions and the type of each dimension can vary for each object of the class?
04:23 audreyt just declare it as Hash then
04:23 dduncan S9 gives examples that would work if all objects have the same num of d and types, which is known in advance
04:24 dduncan doesn't that force keys to be 1-dimensional Strs then?
04:24 audreyt well, a multidim hash of str;str keys
04:24 audreyt it not really different from a hash of str to hashes of str
04:24 audreyt I mean, keyed on str
04:25 dduncan what I want is a hash of any;any;...N
04:25 audreyt then declare it as a Hash using Any as key
04:25 audreyt would work
04:25 dduncan will try that for now
04:25 wolverian except the subhashes are keyed on Str, aren't they?
04:26 dduncan unrelated question ...
04:27 audreyt wolverian: not if they are constructed the same way
04:27 dduncan now that we have the 'constant' declarator, do we still need 'is readonly' for declaring constants in a program?
04:27 justatheory joined perl6
04:27 dduncan eg, is 'is readonly' gone?
04:27 dduncan for that purpose
04:27 wolverian audreyt, can you declare {$foo => "bar"}'s (inline hashref) type somehow?
04:27 audreyt "is readonly" still allows rebinding
04:28 audreyt wolverian: it's a good question
04:28 audreyt an answer will ultimately lead to Ruby symbol types ;)
04:28 audreyt so... I'll yield to TimToady
04:28 audreyt (meaning, I have noidea)
04:29 wolverian {$foo => "bar"} :: Hash{Foo, Bar} # :)
04:29 audreyt possible, as te closure the find the common type and collapse
04:29 audreyt but then, {1 => 'x', '1'=>'y'} would be legal
04:29 audreyt er I mean
04:29 audreyt but then, {1.5 => 'x', '1'=>'y'} would be legal
04:30 audreyt but then, {1.5 => 'x', '1.5'=>'y'} would be legal # sigh
04:30 audreyt and I'm not sure if it's sane...
04:30 justatheory joined perl6
04:36 svnbot6 r10068 | audreyt++ | * Finished src/ tree rewrite of chromatic++'s contributions:
04:36 svnbot6 r10068 | audreyt++ |     Lexer.hs - a typo fix
04:36 svnbot6 r10068 | audreyt++ |     Prim.hs  - object finalization and creation sequence.
04:50 gaal morning
04:51 audreyt gaal: hey
04:51 gaal I feel hung over. I also feel cheated, since I didn't have anything to drink last night
04:51 audreyt heh
04:52 gaal audreyt: hey - unfortunately I didn't fix the lexeme stuff, as you probably saw
04:53 TimToady regarding Hash objects--at some point you just have to break down and write a constructor, I suspect.
04:53 gaal curious to see what a fix oughtta look like
04:53 TimToady I think you can get a hangover from lexemes too...
04:54 TimToady my fever is up again, so expect the unexpected
04:54 TimToady oh wait...
04:58 gaal unexpect the expected?
04:58 audreyt reexpect the unexpectable?
04:59 TimToady mostly I'm just expectorating unexpectedly
04:59 audreyt gaal: you can
04:59 gaal Rule the regexpressible?
04:59 audreyt import Parsec hiding (lexeme)
04:59 audreyt import quqliaifed Parsec (lexeme)
04:59 audreyt lexeme = post . Parsec.lexeme . pre
05:00 audreyt qualified, even
05:00 audreyt that effectively gives you a "wrap"
05:00 TimToady figgered there had to be some way to rewrite in a rewrite-only language like Haskell.  (ow, sorry)
05:00 audreyt rofl
05:01 gaal but code in Parsec sees its own function. So there are only lexical wraps?
05:01 audreyt yes.
05:01 audreyt but lexeme is combinator
05:01 gaal (Secret Haskell AOP project under lexical wraps)
05:01 audreyt and parsec core doesn't use them
05:01 gaal does in the op stuff, doesn't it?
05:01 gaal reservedOp etc
05:02 audreyt it's in Pugs.Rule.Token
05:02 audreyt we are not using Parsec Tokens.
05:02 gaal yep
05:02 gaal oh: didn't we slurp in all of Parsec?
05:02 audreyt advised by allison, we are unslurping any third-party code
05:03 audreyt those in GHC core or Perl5 core, we just remove from our tree
05:03 audreyt those not, we move to third-party/
05:03 audreyt parsec is GHC core library
05:03 gaal sure, so if we used to have moderate forkage in Pugs.Rule.Token (which is essentially ParsecCombinator.Token)...
05:03 audreyt we still do
05:03 audreyt Expr and Token are still in our tree
05:04 audreyt and instead of forkage, we can now do totalrewritage if needed.
05:04 gaal ParserCombinators.Parsec.Token.hs that is
05:04 audreyt (needed for Expr for sure)
05:04 audreyt and rewrite Token (just lift it from languageDef)
05:04 audreyt can increase performance as well
05:04 gaal okay... also I realized that makeTokenParser returns essentially a vtable
05:05 audreyt aye
05:06 gaal okay. but that's just details :) what about the lexemal shift? :) so change lexeme to id; then what?
05:07 audreyt then for all postfix stuff that accept ws
05:07 audreyt declare
05:07 audreyt ruleWs
05:07 audreyt for them
05:07 audreyt which consumes whitespace
05:07 audreyt try the rule
05:07 audreyt if it fails, rollback as if whitespace havn't been consumed
05:08 audreyt but if it commits at any point
05:08 audreyt then just commit
05:08 audreyt it's not as efficient as (say)
05:08 audreyt keep a UserState of seenWhitespate
05:08 audreyt that remembers if the last lexeme is whitespace
05:09 audreyt and reject those rules that are declared ruleNoWS
05:09 audreyt but both approach can work
05:11 gaal ruleWs = try whiteSpace  -- simply?
05:12 audreyt more like
05:12 audreyt ruleWs p = do
05:12 audreyt  p <|> try { whiteSpace; p }
05:12 audreyt it's essentially what PGE's OPTable does
05:13 audreyt except for the optimization of lifting all whiteSpace tests into a state
05:13 audreyt we can do that too later
05:14 gaal k. where does ruleWs need to go? are there key rules we can put it in to avoid putting it everywhere?
05:15 audreyt my thought was ruleWs goes to "rule"
05:16 audreyt and then we keep "verbatimRule"
05:16 audreyt and change "literalRule" to "rule"
05:16 audreyt and change all "lexeme" to "ruleWs"
05:16 audreyt and see what breaks
05:17 audreyt I think we can also simply rename "ruleWs" to "rule"
05:17 audreyt and change the old "rule" marker to "Token"
05:17 gaal ah, there already is "lexeme someVerbatimRule" in a few places, showing that's how this is used in general
05:17 audreyt I mean "token"
05:17 audreyt yes
05:17 TimToady mainly, it doesn't matter where you eat whitespace as long as it doesn't leak down into any tokens you might later want to abut as a supertoken.
05:17 audreyt TimToady: yup.
05:18 gaal ok. I have to go to $work now, but thanks for the explanation
05:18 TimToady logically, though, no rule should really have to worry about any whitespace except what is between its subrules.
05:18 TimToady subrules and literals.
05:18 TimToady as long as any superrule pulling in this rule worries about the space around me.
05:19 audreyt well, we can do that too
05:19 audreyt by overriding >>=
05:19 TimToady i.e. only the top level rule has to eat whitespace at the beginning and end of the program
05:19 audreyt k
05:19 TimToady most standard lexers just eat whitespace at the rule to token boundary, though.
05:20 audreyt yeah, which is essentially the plan I proposed to gaal does
05:20 TimToady that assumes literals are never matched by rules, but by the lexer though.
05:20 audreyt well...
05:20 audreyt literals can be matched by a "token"
05:20 dduncan left perl6
05:20 audreyt but if it calls back to a rule
05:20 audreyt then it has to explicitly take care of the whitespace situation
05:21 audreyt I say "token" here because parsec is scannerless...
05:21 audreyt it just differs on how the rules are constructed
05:21 TimToady sure
05:21 audreyt not unlike perl6
05:21 audreyt but yeah, the goal is that we can then start porting "token ..." functions
05:21 audreyt move them into .pg files
05:21 audreyt and preprocess them into equivalent .hs files
05:22 audreyt same for "rule ..." functions
05:22 TimToady you can just get into trouble if $ eats ws and ident eats whitespace and then you try to make a $ident supertoken
05:22 audreyt indeed, but currently these are distinct lexemes
05:22 audreyt supertokenship is generally not present in pugs
05:23 audreyt there is a Pugs.Lexer that hosts tokens, and Pugs.Parser that hosts rules
05:23 audreyt even though the are just both parsec functions
05:23 TimToady so $ident is a single token
05:23 audreyt yes
05:23 audreyt ruleVarName
05:23 TimToady and can't allow space in the middle
05:23 audreyt nope.
05:24 audreyt that is, correct.
05:25 TimToady why do you propose backing of on whitespace matching if the subsequent thing doesn't match?
05:25 TimToady *off
05:26 TimToady doesn't seem like it matters to me, if you've already eliminated all the possibility of postfix at a position.
05:27 TimToady that's the main reason we invented long dot, methinks...
05:27 gaal okay sorry, gotta run
05:27 gaal see 'ya &
05:27 TimToady bye
05:29 audreyt TimToady: right, but that requires sorting the ws and the nows together
05:29 audreyt split into two pile
05:29 audreyt try nows first
05:29 audreyt er, sorry, try nows-together-with-ws first
05:29 audreyt then if all fails, consume ws
05:29 audreyt and then try the ws rules again
05:29 audreyt does this make some sense?
05:30 audreyt currently we don't do the sorting
05:30 TimToady <%postfix|%infix> | <ws> <%infix>
05:30 audreyt so they are just tried in turn
05:30 audreyt nod
05:30 audreyt otoh, maybe we can simplify it even more
05:30 audreyt by lookahead ws first
05:31 audreyt if there is ws, then just try the infix parts
05:31 audreyt otherwise, consider postfix with infix
05:31 TimToady <ws> <%infix> | <<%postfix|%infix>
05:31 TimToady s/<//
05:31 audreyt yeah.
05:32 audreyt I think that's likely to be more efficient...
05:32 TimToady actually have to be careful not to get burned by :w there though in P6
05:33 TimToady rule {<ws> <%infix>|<%postfix|%infix>
05:33 TimToady }
05:33 audreyt right... everything there has to be in token-level
05:33 TimToady that works too
05:34 TimToady token { <ws> <%infix> | <%postfix|%infix> } looks cleaner
05:38 TimToady oddly though, the auto-:words behavior of rules means that
05:38 TimToady rule { foo bar } matches outside as well as between.
05:38 TimToady which is probably redundant according to what I was saying earlier.
05:39 audreyt heh :)
05:41 TimToady though maybe that's not bad, if we call <foobar> from within a token
05:42 TimToady token { fb = \[ <foobar> \] }
05:42 TimToady then we automatically get our whitespace inside the square brackets, which the token won't bother to supply
05:43 TimToady I think we should just assume that it's very efficient to determine if we're sitting at whitespace, and plan to do it redundantly.
05:44 audreyt or memoize that
05:44 TimToady on the other hand, if <%postfix|%infix> is building a trie or some such, you're gonna find on the very first character that nothing matches whitespace.
05:44 audreyt which leads to packrat-tables :)
05:45 audreyt TimToady: but .# is whitespace
05:45 iblechbot joined perl6
05:45 audreyt so not until 3rd char can you be sure.
05:45 audreyt I mean, 2nd.
05:45 TimToady so it ought to be efficient that direction too.
05:45 audreyt I actually mean 3rd :)
05:45 TimToady well, <ws> also has to test that.
05:45 TimToady so it's no different
05:45 audreyt indeed
05:45 audreyt but that's just perl6's ws
05:46 audreyt :words in user code would be more effiient that that
05:46 TimToady arguably, if you usually have a postfix, it's better to go for something you know probably *will* match first.
05:46 audreyt than that
05:46 audreyt as their <ws> is different
05:46 TimToady but that probably depends on your style
05:46 TimToady a.b.c.d.e() style is all postfix
05:46 audreyt yeah. 1+1 is still very popular
05:46 TimToady well, we'll at least cure them of 1<2 :)
05:47 audreyt but not 1..4 :)
05:47 TimToady one could go as far is to just install the whitespace matcher as the "" key in <%postfix|%infix>
05:48 TimToady that is, as the corresponding value.
05:50 TimToady I suspect that will end up the fasted way.
05:50 TimToady *fastest, even
05:51 TimToady but that's just a guess that the trie will find the answer faster than | alternation will.
05:52 TimToady a really smart engine might turn all of token { <ws> <%infix> | <%postfix|%infix> } into a single trie anyway...
05:53 audreyt sinceyou just rid of the rules-as-keys
05:53 audreyt that's actually trivial...
05:53 TimToady yup
05:53 audreyt ok, I think that's much easier to do :)
05:54 audreyt but that means we can't have an postfix .#<>
05:54 TimToady sure you can.
05:55 audreyt oh, longest token consider the static parts only.
05:55 audreyt I see.
05:55 TimToady just .# calls into a different subrule
05:55 audreyt surely for trie, it's even better if we enumerate all the opening brackets?
05:56 audreyt .#( .#< .#{ etc become entries that is
05:56 TimToady could well be, unless you transit the subrule call
05:56 TimToady inline, as it were.
05:56 audreyt nod.
05:56 audreyt ok, thanks for the direction :)
05:56 audreyt in all of its 9 senses :)
05:56 TimToady no problemo.
05:57 TimToady I am but mad nnw.
05:57 TimToady when the wind is southern, I know a hash from a hankerchief.
05:58 TimToady mostly, though, I've just been going through Kleenex...
06:02 TimToady audreyt: did you backlog my screed on $x[@y] = ... ?
06:03 TimToady it was kind of a Shakespeare day, so I thought I'd do a soliloquy.
06:05 audreyt TimToady: well yes, but what about $x[1..3] ?
06:06 TimToady I think just say "You have to parens around me" and croak.
06:06 audreyt $x[1,2,3] too?
06:06 audreyt so all lvalue position slices now require parens?
06:06 TimToady I expect so.
06:06 TimToady I'd like to force the right ) to be near the =
06:07 audreyt %h{1,2,3} too?
06:07 TimToady any slice
06:07 audreyt (unless the hash is shaped to Seq is valid key)
06:07 audreyt so it's croaking at dispatch time
06:08 TimToady but then parens shouldn't matter, so croak at compile time.
06:08 audreyt k.
06:08 audreyt but all of them still flatten at rvalue?
06:08 audreyt $x[@y] included?
06:08 TimToady As long as the message is clear, I think we can get away with it.
06:08 TimToady as rvalue defaults to list
06:08 TimToady or Capture, really
06:09 TimToady so doesn't matter for @y
06:09 TimToady still only matters for $x[foo()]
06:09 TimToady if it's just a funny looking function call...
06:10 TimToady as I was saying, the strange thing is lvalue defaulting to scalar and the rvalue defaulting to list
06:10 audreyt ok. so we retani the perl5ish
06:10 audreyt ($x) = (1,2,3);
06:10 audreyt translating it to
06:10 audreyt ($x,) = (1,2,3)
06:10 audreyt right?
06:10 TimToady seems so
06:10 audreyt ok, another paren special form for Pugs.Parser...
06:11 TimToady but you don't know it's special till you see the =.
06:11 audreyt yup, hence "yet another"
06:11 audreyt infix:<=> cannot be a sub or method.
06:11 audreyt it has to be a macro
06:11 TimToady but you have to go back and verify legal lvaluehood anyway...
06:11 audreyt and I'm fine with that, as the AST has explicit "Assign" nodes now
06:12 audreyt it's not merely an application of infix:<=>
06:12 TimToady for a while I was wondering if we could go as far as to get rid of
06:12 TimToady (x)=
06:12 TimToady and have some kind of x ()= form
06:12 TimToady but I think it's good to document with parens on both ends still.
06:13 audreyt ($x) = 1,2,3;
06:13 audreyt just one end
06:13 TimToady I mean both ends of the $x.
06:13 audreyt oh ok.
06:13 TimToady whether you read in Latin or Hebrew, you still see the paren first. :)
06:14 audreyt but if I read it as classical chinese, then I read all of them in a gestalt :)
06:14 Pete_I g'night folks.
06:14 TimToady well, good English readers do the same.
06:14 TimToady they just use word shapes, ascenders, descenders, etc.
06:14 audreyt (was ferreing to vertical direction)
06:15 TimToady that's partly why you can get away with scrambling the insides of
06:15 TimToady words to some extent.
06:15 audreyt referring, even
06:15 TimToady o_O
06:15 audreyt ok, I must go out now to meet bsb and ingy and gugod and hcchien
06:15 audreyt be back in a bit
06:15 TimToady say hi for me
06:15 audreyt sure :)
06:15 TimToady tata
06:16 audreyt me.map:{say hi}
06:16 TimToady 0..* <- squished orz
06:16 audreyt oh btw, if I havn't seen "me" as func or class
06:16 audreyt does
06:16 audreyt me.map
06:16 audreyt mean me().map always?
06:17 TimToady would have to.
06:17 TimToady ::me.map if you mean the other thing.
06:17 TimToady and blow up if me isn't declared by the end of this scope.
06:18 TimToady or file, maybe.
06:18 TimToady CHECK time, whatever.
06:18 audreyt oh?
06:18 audreyt that's new to me
06:18 audreyt excellent.
06:19 TimToady we don't leave random barewords sitting around waiting to unrecognize themselves at runtime.
06:19 audreyt pugs -e 'OUR::<&x> := sub {... }; x()'
06:19 audreyt would be illeal then.
06:19 audreyt I don't remember that's specced...
06:19 audreyt but it's excellent news.
06:19 TimToady seems like that would still be legal.  the name is mentioned, even
06:19 TimToady if you don't know what will be bound to it.
06:19 audreyt ok
06:20 TimToady but you know something will be bound to it.
06:20 TimToady so it kinda counts as a declaration.
06:20 TimToady maybe
06:20 TimToady could argue that "our" is required.
06:20 audreyt pugs -e 'OUR::{rand() ?? '&x' !! '&moose'} := sub {... }; x()'
06:20 audreyt definitely bad then?
06:20 TimToady at some point, you guess one way or the other, and half the time you're wrong. :)
06:21 TimToady I think that's probably carpable about.
06:22 audreyt so why not eliminate barewords at CHECK?
06:22 TimToady basically, by the end of the compilation unit we'd better decide what all the barewords mean or die.
06:22 audreyt that will make
06:22 audreyt me.foo; class me {...}
06:22 audreyt legal
06:22 audreyt and I don't quite see something wrong with that
06:22 marmic joined perl6
06:22 TimToady except you have to defer compiling it to a sub.
06:23 TimToady if can only be a sub, you can compile it provisionally and die later.
06:23 TimToady alternately, compile to a stub that returns the class.
06:23 TimToady I suppose that would work too, but might foul up MMD somehow.
06:23 autark joined perl6
06:24 TimToady I think it's better to require predeclaration of classes.
06:24 TimToady or :: for documentation.
06:24 TimToady you want to forward ref subs a lot more often than classes.
06:24 TimToady wasn't you supposed to go?
06:28 audreyt yeah
06:28 audreyt waiting for taxi
06:28 TimToady thought maybe you were off primping :)
06:28 audreyt doing that too.
06:29 audreyt ok, so just compile it to a sub call, and push it to a check queue
06:29 TimToady right
06:29 audreyt to be validated by end of compilation unit
06:29 audreyt that works. thanks :)
06:29 TimToady yw
06:29 audreyt (this probably is part of language-spec...)
06:29 TimToady I'm sure I already said it somewhere....
06:30 TimToady I'll poke around.
06:30 audreyt no...
06:30 audreyt line 1530 S02
06:30 audreyt doesn't say it's invalidated
06:31 TimToady will soon.
06:31 audreyt TimToady++
06:31 audreyt taxi's here, bbiab &
06:31 TimToady ciao&
07:14 BooK_ joined perl6
07:17 Aankhen`` joined perl6
07:24 xern joined perl6
07:24 xern joined perl6
08:11 kanru joined perl6
08:21 elmex joined perl6
08:25 Aragone joined perl6
08:30 dakkar joined perl6
08:32 pjcj joined perl6
08:38 scook0 joined perl6
08:41 iblechbot joined perl6
08:45 xinming joined perl6
08:46 xinming hi, I've passed the exam... :-)
08:47 YetAnotherEric perl6 certification?
08:56 xinming No, the law of traffic... Need that for learning driving cars. :-)
08:58 drrho joined perl6
09:00 meppl guten morgen
09:00 GeJ servus
09:01 xinming ...
09:06 scook0_ joined perl6
09:44 * drrho is away: dancing
09:55 dakkar joined perl6
10:14 KingDillyDilly joined perl6
10:16 kanru joined perl6
10:21 KingDillyDilly I don't suppose ChrisAngell or anyone planned this, but I bet they like it: http://www.google.com/search?hl=en&amp;lr=&amp;safe=off&amp;rls=GGLG%2CGGLG%3A2005-21%2CGGLG%3Aen&amp;q=%22wanna+love+me%22+wassercrats
10:21 KingDillyDilly Makes it seem like Wassercrats isn't universally loved.
10:38 ruz joined perl6
10:48 nothingmuch KingDillyDilly: surprised?
10:49 KingDillyDilly It's an interesting concatenation/truncation by Google. Makes it look like the phrase is quoted and is one phrase, but it isn't if you read the document.
10:49 KingDillyDilly But I wouldn't be surprised if someone said that.
10:53 cdpruden joined perl6
10:57 KingDillyDilly left perl6
10:57 KingDillyDilly joined perl6
10:59 dakkar joined perl6
11:02 KingDillyDilly Particularly buu
11:04 Juerd KingDillyDilly: You don't say much about Perl 6 here, do you?
11:05 Juerd TimToady: Doesn't * clash with [*], at least visually?
11:08 Juerd TimToady: Also, how does [<] not start qw//?
11:09 * Juerd thinks <> is exceptionally dangerous, and adding more special cases and silly disambiguation to the language than replacing qw// is worth.
11:09 Juerd foo < 3
11:09 KingDillyDilly I try to keep it at least 50/50 about Perl 6. I usually keep it on the topic of the current discussion when it's not about Perl 6.
11:09 Juerd foo<3
11:09 Juerd [<]
11:10 theorbtwo [<] is still the metaoperator, isn't it?
11:10 Juerd theorbtwo: It should be, but why doesn't that < begin <>?
11:10 Juerd [<] $ % ! @ ^>]  # array of some characters.
11:11 KingDillyDilly Probably less than 50/50 as far as my contributions to Perl 6 development go.
11:11 Juerd theorbtwo: See also the infinite lookahead post on Audrey's blog.
11:12 KingDillyDilly Ok, here's one...we have an infinite lookbehind now. You can't use *, but you can look behind for as many characters as you type. Bad term.
11:13 Juerd KingDillyDilly: Your point?
11:13 KingDillyDilly Change the term.
11:13 Juerd KingDillyDilly: Your suggestion?
11:14 KingDillyDilly We have an infinite lookahead/behind in Perl 5.
11:14 KingDillyDilly Um...wait...
11:14 KingDillyDilly I was assuming someone was saying the infinite lookahead is new.
11:15 KingDillyDilly It's an appripriate term for how it works in Perl 5.
11:16 KingDillyDilly If it's something different in Perl 6, I can't suggest a term because I don't know what it is.
11:18 audreyt yo.
11:18 audreyt Juerd: [< does not start quoting
11:18 audreyt because [ looks at only the infix category
11:19 audreyt to be followed by ]
11:19 audreyt so [<] is longest-token
11:20 audreyt than simply [<
11:20 audreyt you can always disambig on the 3rd char
11:20 audreyt so there's still only look ahead for one token
11:20 audreyt (same as bareword=>'quoting')
11:22 KingDillyDilly Plus I was thinking of regexes. Don't know what you're talking about, so nevermind.
11:23 kane_ joined perl6
11:23 Juerd audreyt: But what about the list of characters, that I contrived?
11:23 theorbtwo It's not an operator.
11:23 Juerd audreyt: Does whitespace break reduction operator parsing?
11:25 theorbtwo Oh, now I see the conflict better.
11:26 Juerd audreyt: And how about foo < bar?
11:26 theorbtwo The question isn't why it's not a reduce on a list of characters, but why it's not a capture of a list of captures.
11:26 theorbtwo Er, a capture of a list of chars.
11:26 Juerd foo(< bar ...>), or foo() < bar
11:26 Juerd theorbtwo: Array of chars.
11:26 Juerd I don't think captures have much to do with it.
11:26 theorbtwo [...] forms a capture now, doesn't it?
11:27 Juerd Array
11:27 theorbtwo Oh, whew.
11:27 Juerd \ captures
11:27 theorbtwo Captures haven't eaten quite the entire world.
11:27 Juerd And typically, you capture multiple elements with \(), because of comma's precedence
11:29 aeon_ joined perl6
11:29 * Juerd sees comments disappear :)
11:29 Juerd cleanup++
11:31 KingDillyDilly Where's Audrey's blog? I'll take a stab at learning what thes infinite lookaheads are.
11:32 KingDillyDilly Or better yet, a link to some documentation.
11:32 miyagawa pugs.blogs.com
11:32 Juerd KingDillyDilly: You won't find an explanation there.
11:33 Juerd KingDillyDilly: Do you know what looking ahead is? Can you imagine infinity?
11:33 Juerd It's not weird, it's not special. It is inefficient, though.
11:33 KingDillyDilly Yes. Are you all talking about parsing of Perl, or about regexes only?
11:33 Juerd Both
11:34 KingDillyDilly Oh, I'll bail on this one.
11:36 KingDillyDilly I just thought someone came up with a great new lookahead assertion and they're naming it an infinite lookahead. I'd have something to say about that.
11:36 theorbtwo No.
11:37 theorbtwo One idea of parsing is that you always try your hardest to succeed.  If you encounter an error, try going back and interpreting things differently.
11:38 theorbtwo Another is that when you find something that can be interpreted in multiple ways, you remember where you are, and keep looking ahead until you find something that only makes sense with one of the ways to interpret it.
11:39 KingDillyDilly That could result in legal code that's not what the programmer intended. Better have good warnings. But I have no comment.
11:39 theorbtwo You potentially need to keep looking ahead for an indeterminate amount of time, even to the end of the file.
11:39 theorbtwo That's infinite lookahead.
11:41 KingDillyDilly That's the problem with you people. You waste time on people like me when you should be developing Perl 6. :-D
11:41 dakkar that sounded like an invite to be kicked ;-)))
11:43 audreyt Juerd: yo
11:43 theorbtwo By the way, the other option is to require that there be no constructs in the language that can't be told apart by looking apart only a fixed amount, which is why you get whitespace rules.
11:44 audreyt [<] moose>] is a parsefail
11:44 audreyt will be parsed as
11:44 KingDillyDilly Seems like all programming languages should use infinite lookaheads, but if you can determine that there's no possible way for the code to be legal before the end, you return an error. Doesn't seem like it should even have a term. If you don't keep checking until you know for sure, your language is buggy.
11:44 audreyt ([<] ) then ( moose>])
11:45 audreyt Juerd: I agree it's icky. I think the ickyness is unavoidable as long as we have this overload of <>.
11:45 dakkar KingDillyDilly: you keep using 'term'... I don't think it means what you think it means
11:45 audreyt KingDillyDilly: infinite lookaheads are slow, that's all
11:46 audreyt KingDillyDilly: packrat makes it fast for computers
11:46 audreyt but it doesn't make it faster for humans
11:46 audreyt disambiguation with infinite-lookahead is very hard for the human mind.
11:48 KingDillyDilly I mean the term "infinite lookahead." Sometimes a language that uses the "other option" that theorbtwo mentioned would need to look to the end of a program, and sometimes an infinite lookahead one could figure out that it doesn't. There's a weak distinction.
11:49 sahadev joined perl6
11:51 Juerd audreyt: What if I wanted [']', 'moose']? Would whitespace fix it: [< ] moose >], or [ <] moose > ]?
11:52 audreyt yes
11:52 Juerd audreyt: And I'm not sure if all this ickyness is worth it. <> is nice, but in almost every application for it, <<>> can be used, and there's always qw<>
11:52 theorbtwo Juerd: [']', 'moose'] isn't ambiguious, since there is no ' infix op.
11:52 Juerd theorbtwo: ... :)
11:52 Juerd theorbtwo: Thank you.
11:53 Juerd theorbtwo: ", using <>" was implied.
11:53 theorbtwo Sorry.
11:53 Juerd audreyt: Do you happen to know what happens with "foo < bar"?
11:53 audreyt Juerd: yes, I think whitespace can fix that
11:53 theorbtwo I'm awful stupid lately.
11:53 Juerd theorbtwo: No, don't be. You remind me that I should be more specific.
11:53 audreyt Juerd: "foo < bar" ?
11:54 Juerd audreyt: Yep. Is that foo lt bar, or foo qw/bar?
11:54 Juerd Do you look ahead infinitely there, to find out?
11:54 Juerd I think I'll often have whitespace inside <> and «».
11:55 Juerd (Hm, if I type compose,<,< too fast, it doesn't work)
11:55 Juerd (Ah, solution: keep shift pressed all the time, starting before compose)
11:55 Juerd ««««««««««« :)  # that way
11:56 Juerd »»»»»»»  # or that way
11:57 theorbtwo Hm, shift-compose isn't compose for me.  Perhaps I should fix that.
11:57 Juerd It is for me. Did nothing special to get that. My compose key is menu (117)
12:00 audreyt Juerd: it's always unambiguous
12:00 audreyt (I just asked a ruling on that this afternoon)
12:00 audreyt if "foo" is known as a type, it's "::foo < bar"
12:01 audreyt if it's known as a nullary function, it's "foo() < bar"
12:01 audreyt in all other cases, it's "foo(<bar...")
12:01 Juerd Okay.
12:01 Juerd And foo< without whitespace is always foo.<?
12:01 audreyt yes.
12:02 Juerd Good :)
12:02 audreyt note that if you declare nullary foo _after_ the "foo < bar" line
12:02 audreyt it will not cause reparse
12:02 audreyt and is still a "foo(<bar...") and prototype mismatch error
12:03 Juerd Of course.
12:03 Juerd Postdeclaration sucks anyway. I don't use that.
12:03 Juerd It doesn't fit the model of imperativeness (imperativity?) for me
12:03 audreyt in mutually recursive functions you'l have to do that...
12:04 audreyt or use a predecl form
12:04 Juerd True, but I can't remember the last time I had that.
12:04 Juerd Oh, I can
12:16 pen1 joined perl6
12:18 feng123 joined perl6
12:21 iblechbot joined perl6
12:21 kolibrie joined perl6
12:21 jsiracusa joined perl6
12:36 mauke joined perl6
12:36 svnbot6 r10069 | audreyt++ | * Pugs.Prim: further tweaks to the DESTROYALL sequence
12:38 gaal hey. I doubt I'll be getting to the parser stuff today, from the looks of it.
12:39 KingDillyDilly Not to plug my web based diff app, but there are web based diff apps out there and the results of a diff might be good for svnbot6 to link to in posts like the above.
12:40 KingDillyDilly Or at least a link to where ever that thing svnbot6 is talking about is.
12:41 gaal KingDillyDilly: rt.openfoundry.org/Foundry/Project/Source/index.html/pugs/log/
12:41 gaal I'd wanted 'svk desc'-like functionality to that for a while, since there's no webby way to get a whole patch
12:42 gaal KingDillyDilly: that's SVN::Web, I think they very much take a patches welcome attitude.
12:43 BooK joined perl6
12:44 theorbtwo The other option is to do a svn diff -r10058:10059 in your checked-out pugs.
12:44 theorbtwo Of course, that doesn't have the same brain-dead ease of clicking a URL.
12:45 gaal hey, the web has got to be good for something.
12:46 jsiracusa joined perl6
12:49 KingDillyDilly http://www.polisource.com/diffnote/042406-KjTfyOzX.shtml
12:50 KingDillyDilly Warning: above webpage is almost 400K
12:50 KingDillyDilly And the Javascript will slow things even more.
12:51 Juerd KingDillyDilly: Please supply descriptions of the web pages you post.
12:51 Juerd KingDillyDilly: That helps people to determine if it will be worth their time.
12:52 KingDillyDilly *shrug* ok
12:52 Juerd I assumed this page would be about Perl 6 somehow, opened it, and saw my computer die from 100% cpu load and extreme paging.
12:52 Juerd Somehow I think it has nothing to do with Perl 6, and that it's not worth opening, but lack of description makes me too curious.
12:52 KingDillyDilly Wow. I'm short on memory and no problems. You must be using Linux. :-D
12:53 mauke it's empty
12:53 Juerd Yes, I am
12:53 theorbtwo Mmmpf, my /kick finger is getting itchy, but I don't have ops on this channel.
12:53 Juerd mauke: Not for me, when I see it with a capable browser (not w3m). It takes a few minutes to load, but displays eventually.
12:54 mauke great, <body><script></script></body>
12:54 Juerd KingDillyDilly: This is the worst diff overview I've ever seen. The point of diffs is showing only the DIFFerences.
12:54 KingDillyDilly Just trying to help. I thought I had a useful tool.
12:54 Juerd KingDillyDilly: So pugs/
12:55 Juerd checkout/src/Pugs/Prim.hs has more than 1000 equal lines in between these revisions. How does that help?
12:55 mauke 23390 mauke     25   0  144m 125m  16m R 92.7 12.5   3:00.79 firefox-bin
12:55 KingDillyDilly It gives you all the information of diff -y and more. (I think it's diff y...it's the side by side unix tool)
12:55 Juerd I appreciate that you try to help, but please think twice if it's really helpful.
12:56 Juerd Right now you're mostly wasting time (though I admit that I could have ignored it all)
12:56 KingDillyDilly GNU diff has options to show all that too.
12:57 KingDillyDilly My computer is a piece of garbage. I figured it would display find for you.
12:57 theorbtwo Yeah, but does anybody use diff -y?
12:57 Juerd It makes no sense to display all equal lines.
12:57 Juerd There's nothing useful in that.
12:58 KingDillyDilly For shorter things there is. That's why there's a diff -y. other unix diffs are hard to understand.
12:58 Juerd This isn't short.
12:59 KingDillyDilly I really have no idea what kind of diff you'd all use for that. Sorry I wasted your time.
13:07 Qiang joined perl6
13:10 KingDillyDilly Thunder in NY. I'll kick myself out.
13:10 KingDillyDilly left perl6
13:35 weinig_ joined perl6
13:45 merlyn joined perl6
13:49 justatheory joined perl6
13:49 svnbot6 r10070 | fglock++ | PCR: added positional parameters in rules
13:50 weinig_ is now known as weinig
13:53 ruz joined perl6
13:54 fglock joined perl6
13:56 vel joined perl6
13:59 Limbic_Region joined perl6
14:04 chris2 joined perl6
14:04 clkao audreyt: check msg.
14:06 Limbic_Region audreyt - regarding Pugs and licensing.  Tell me what I have to sign/say to turn over all code I have authored in the Pugs repository
14:08 theorbtwo Limbic_Region: If you want to be formal about it, find the FSF's assignment, and change the names.
14:09 theorbtwo I probably should have done that before I wrote the one on audrey's blog, but I think that one works too.
14:09 theorbtwo They do different things, though -- mine is to public-domain, the FSF's would make it somebody else's choice.
14:10 Limbic_Region theorbtwo - you missed my point
14:10 Limbic_Region theorbtwo - while I want to help audreyt and not be a hindrence to progress
14:11 Limbic_Region I want to be lazy
14:11 Limbic_Region just tell me where I have to sign
14:11 theorbtwo Ah.
14:22 Coke joined perl6
14:22 Coke expected failures in t/builtins/arrays/shift and splice ?
14:33 audreyt Coke: yes, our parsing strategy has changed yesterday
14:33 audreyt a lot of parsefails is cropping up now
14:33 Coke ah, my timing, as usual, is excellent.
14:36 audreyt try up to r10061
14:37 audreyt svn up -r 10061
14:37 audreyt that's the known-good version
14:38 audreyt Limbic_Region: thanks, formal assignment is the legal way to do it, but before I settle this discussion with chromatic/allison/tpf/etc, there needs to be no overt actions than a comment here, or on the journal
14:39 audreyt I'm trying to find out who chromatic is okay with MIT license but not with public domain
14:39 audreyt s/who/why/
14:40 audreyt and if there are sufficient mistrust on public domainess from U.S. people, I'm willing to use MIT license
14:40 audreyt they are legally equivalent anyway, except the MIT license may be revoked, according to some lawyers.
14:41 Limbic_Region well, I think more people are concerned with the changing of the licensing than what license you choose (but that's just my limited opinion)
14:41 audreyt *nod*
14:41 audreyt that's what I thought as well
14:41 audreyt so I was surprised that chromatic was upset about public domain but okay with MIT license
14:42 audreyt and believe me, I didn't do this compilation-right-disclaim thing just for fun :/
14:42 theorbtwo audreyt: If you decide to go with MIT, feel free to relicense my stuff under it.  It's under the public domain, you're allowed.
14:42 Limbic_Region I know - but perception is a big thing
14:42 audreyt theorbtwo: sure
14:43 Limbic_Region IOW - it would have been 1 thing to say, I don't feel comfortable with license X and would like to do Y, this is what it will mean to you - what do you think
14:43 Limbic_Region is a lot better than
14:43 Limbic_Region I have unilaterally decided to do Z
14:43 Limbic_Region I know that's not what really happened
14:43 Limbic_Region but perception is what perception is
14:44 audreyt indeed
14:44 Limbic_Region s/happened/is happening/
14:44 Limbic_Region I don't want to be a hindrence in the process
14:45 Limbic_Region but I don't want to have to work to figure out what I need to do either
14:45 theorbtwo Limbic_Region: Just wait a week or so until the situation becomes clearer.
14:46 Limbic_Region theorbtwo - yeah, I got that from what audreyt said
14:46 audreyt right. basically, unless you are uncomfortable with your previous commits under src/ tree to be under MIT license or public domain, you don't need to do anything...
14:47 audreyt and yeah, waiting a week or so is a sane choice too.
14:47 Limbic_Region audreyt - even files that have explicit copyrights?
14:47 audreyt under src/ tree?
14:47 audreyt those are moving out to third-party/.
14:49 Limbic_Region so ext/Config-Tiny/ will move to 3rd party?
14:49 Limbic_Region *shrug* - I just as soon remove my copyright from it but ok
14:49 audreyt uh.
14:49 audreyt the ext/ tree is untouched
14:49 audreyt and will remain so
14:50 audreyt this whole thing was just about the code that makes up the /usr/local/bin/pugs executable.
14:50 audreyt so, that means the src/* tree
14:50 audreyt some C and some Haskell code
14:50 audreyt the ext/, examples/, t/, docs/ trees
14:50 audreyt are entirely unaffected
14:50 audreyt (see README and my last entry for details)
14:51 audreyt so, unless you have hacked the Haskell sources or C sources under src/
14:51 audreyt i.e. the pugs "guts"
14:51 Limbic_Region ahh - well then I don't think I have anything to worry about.  Other than some patches to Makefile.PL - I haven't had anything to do with the building of the pugs executable
14:51 audreyt right
14:52 audreyt and the installed copy of pugs doesn't bundle Makefile.PL
14:52 audreyt yes
14:52 audreyt ext/ will always remain in the license the author chose
14:52 audreyt like GPL for Rosetta
14:52 audreyt or Perl5 license for some
14:52 audreyt or Artistic2 for some
14:53 audreyt I think I should repeatedly state this :)
14:53 Limbic_Region ok - so now about Pugs not compiling on Win32 - did you get a chance to look at my nopaste of the error?
14:54 audreyt I'm afraid I missed the url
14:54 audreyt relooking
14:54 Limbic_Region ok, well I can't confirm it is still b0rk on a recent checkout as I can't seem to build at all at work anymore
14:54 elmex joined perl6
14:55 Limbic_Region and now that GHC is at 6.4.1 - I have given up trying
14:55 audreyt oh, you were on6.4.0?
14:56 audreyt actually we still compile on 6.4.0, it's just unicode support in source files will be broken
14:56 audreyt only ascii will be allowed on ghc 6.4.0
14:56 Limbic_Region no - the error arose prior to 6.4.1 requirement
14:56 Limbic_Region what I am saying is that I am now at work and can't build here
14:56 Limbic_Region so I can't confirm the problem is still a problem
14:56 audreyt oh ok
14:56 Limbic_Region trying to save you cycles
14:57 audreyt I'll reboot now and test
14:58 Limbic_Region error is at http://sial.org/pbot/16851
14:58 audreyt yup, got it
14:58 audreyt would be nice if you can modify File::Path
14:58 audreyt and do a Carp::confess there
14:58 audreyt to get stack trace
14:59 Limbic_Region well - I didn't want to spend too much time investigating if I was the only 1 having the problem
14:59 Limbic_Region for various reasons - I seem to have problems no one else does
14:59 Limbic_Region like Pugs requiring to be linked against Cygwin to compile on my work machine for instance
15:00 Limbic_Region or nmake for failing on cd ..
15:00 Limbic_Region etc
15:00 audreyt do you perhaps have space in the path of pugs?
15:01 hexmode joined perl6
15:02 Limbic_Region no
15:03 Limbic_Region audreyt - everything has always worked on my home machine
15:03 Limbic_Region then it just stopped working - no changes
15:03 audreyt k
15:04 Limbic_Region the only variable (that I could isolate) was checking out from the repo
15:07 audreyt ok. do yo you roughtly know which revision ?
15:07 audreyt (last known wokring, that is)
15:07 audreyt or date
15:11 Limbic_Region how rough?
15:12 Limbic_Region it was about a week before I mentioned it that it was working
15:16 audreyt okay.
15:16 audreyt that makes it easier to locate the problem
15:16 audreyt still a stack trace would be very helpful
15:16 audreyt because I can't duplicate it here :/
15:22 Limbic_Region well, I will try at home sometime this week and let you know
15:22 Limbic_Region if it is another "just me" then *shrug*
15:23 Limbic_Region no big deal - I have even less time for extra-curricular activities these days
15:26 audreyt k, but I'd still like to investigate if you can get a stack trace
15:26 audreyt Limbic_Region: a new entry is up, prompted by your "perception" suggestoin
15:26 audreyt I'm really sorry; I had no idea that "src/ tree" can be taken to mean other meanings
15:27 audreyt Limbic_Region: please check to see if I can improve it
15:27 frederico joined perl6
15:31 hlen joined perl6
15:35 szbalint joined perl6
15:39 FurnaceBoy joined perl6
15:39 Limbic_Region audreyt - I will
15:40 Limbic_Region audreyt - I think, and I hope I am not completely out of line here, that you problem is in the assumptions you place on others
15:40 Limbic_Region I have a tendency to do this myself
15:40 Limbic_Region I didn't even see src/tree - I saw the pugs code repo is going public no-license
15:41 Limbic_Region people don't look for the details - they jump to conclusions
15:41 Limbic_Region myself included
15:44 Limbic_Region ooh - chromatic is kind of particular about not having his name proper case Chromatic vs chromatic
15:45 Limbic_Region other than that - spot on ;-)
15:49 axarob joined perl6
15:50 audreyt Limbic_Region: yeah. what I should have done is to list the "src/ tree" thing prominiently on top
15:50 audreyt instead of hiding it in, oh, 20th line in the journal entry
15:50 audreyt really sorry for that :/
15:51 audreyt fixed capitalization
15:51 Limbic_Region well, no need to apologize - I wasn't offended but I did have the wrong idea
15:51 audreyt if you did, I suspect a lot others did as well
15:51 audreyt chromatic obviously did :/
16:00 * audreyt stops herself from indulging in guilt and goes sleeping instead
16:04 theorbtwo audreyt: Nobody is perfect 100% of the time.  You, so far, have managed about 100-1/Inf percent.
16:05 PerlJam theorbtwo: that's not true.  Nobody is perfect.  Period. But if you stay ahead of your peers you will *seem* perfect  ;-)
16:06 szbalint gnight audreyt
16:06 theorbtwo G'night, audreyt.
16:06 chris2_ joined perl6
16:06 szbalint It is amazing how much I missed in the past three weeks while I was away from here.
16:08 FurnaceBoy PerlJam++
16:10 hexmode` joined perl6
16:20 ghenry joined perl6
16:20 swarm joined perl6
16:32 gaal guilt is overrated anyway. I go with sleep every time
16:42 audreyt gaal: one last thing
16:42 audreyt before I sleep
16:42 gaal t?
16:42 audreyt tonight ingy and I paired on using packrat to parse kwid syntax
16:42 audreyt and it's amazingly addictive
16:42 audreyt it's like writing Perl 6 grammars using only "regex" but never "rule" or "token"
16:42 gaal cool! using which package? the .hs code?
16:42 ingy audreyt: did you send me the details?
16:43 audreyt ingy: details of the checkout?
16:43 audreyt it's in http://svn.kwiki.org/audreyt/Wiki/
16:43 ingy thanks
16:43 * gaal checks it out too
16:44 _bernhard joined perl6
16:44 gaal too bad my brain is fried.. maybe tomorrow
16:45 audreyt ingy: svn up
16:45 audreyt r129 is what you want
16:45 audreyt just "make"
16:46 gaal wtf? # wikiStarRule0 = wikiSubStarRule0 . wikiSub0
16:46 audreyt gaal: look at Wiki.pappy
16:46 audreyt Wiki.hs is genned
16:46 Daveman Morning gaal :)
16:47 gaal hola
16:47 audreyt gaal: note how arbitrary nesting is handled very gracefully
16:47 Daveman How's things going today?
16:47 gaal audreyt: funny, i coudla sworn I saw a note in Main.hs saying it was genned by Wiki.hs :)
16:47 ingy audreyt: gracias
16:47 audreyt gaal: that's true
16:47 audreyt Main is genned by DrIFT over Wiki
16:47 gaal where do I look first then?
16:47 audreyt and Wiki is genned by Wiki.happy
16:48 audreyt .pappy
16:48 audreyt so you look at .pappy
16:48 audreyt since that's all the code
16:48 audreyt nothing else :)
16:48 gaal sweeeeeet
16:48 audreyt ingy: btw, you don't have to write in .pappy if you don't want to
16:48 audreyt you can write in parser combinator style
16:48 audreyt just like parsec
16:49 audreyt but the .pappy form guarantees linear speed
16:49 audreyt and is shorter
16:49 audreyt and is more like perl6 rules to boot
16:49 audreyt so stick with that until you need fancy stuff like \b
16:49 audreyt you can then define those assertions in the more complex parser-combinator style
16:49 ingy \b?
16:49 ingy ah
16:49 gaal though kwiki is still relatively simple to parse. btw see this about parsing wiki with regexes:
16:49 gaal # http://community.livejournal.com/evan_tech/175979.html?nc=11
16:50 audreyt if what I just said makes no sense, read the thesis:
16:50 audreyt http://pdos.csail.mit.edu/~baford/packrat/thesis/
16:50 audreyt it's not quite powered-by-phd this time
16:50 audreyt it's only a master's thesis
16:51 TimToady have an interview in 10 minutes.  Any quick Q's?
16:52 audreyt TimToady: did what I said about "a < b" makes sense?
16:52 audreyt if a is known ::a, infix.
16:52 TimToady yes
16:52 audreyt oh ok :)
16:52 audreyt next question. for proto
16:52 gaal anyway, I need to wind down a bit, see you tomorrow, sleep tight audreyt
16:52 TimToady nite
16:53 audreyt proto f ($, $, $, $, *@) {}
16:53 audreyt do we have to do the perl5ish parsing?
16:53 theorbtwo Um, does infix < make any sense on types?
16:53 audreyt or is antyhing beyond unary automatically listop?
16:53 TimToady the latter
16:53 audreyt whew.
16:53 TimToady but can still complain on single sub and mismatched params.
16:53 audreyt sure, but that means it's much saner.
16:54 TimToady that's what p5 does with >1
16:54 wolverian TimToady, may be audreyt already asked this before, but: can I declare the type of the literal hash in '{ foo => $bar }' somehow?
16:54 TimToady just use a constructor
16:54 wolverian okay, thanks.
16:54 TimToady they have to be good for something... :)
16:55 wolverian Hash[Foo, Bar].new?
16:55 TimToady something like that.
16:55 TimToady audreyt has to be good for something.
16:56 audreyt heh :)
16:56 chris2_ is now known as chris2
16:56 audreyt theorbtwo: re Class1 < Class2
16:57 audreyt if someone want to port Rails to Perl6
16:57 audreyt that would be natural
16:57 audreyt and even "Class1 < Class2&Class3" for inheritance.
16:57 audreyt multiple inheritance that is
16:58 audreyt # http://blog.mauricecodik.com/2006/01/ruby-multiple-inheritance.html
16:59 theorbtwo Hm, OK.
17:00 TimToady but I hate overloading math ops for non mathy things, especially angles.  Don't look at me that way...
17:01 * obra imagines junctive inheritance
17:03 TimToady Unicode is full of arrows.  We don't need to use up good brackets for a stupid arrow.
17:03 TimToady interviewer not here yet...
17:04 Coke er or ee?
17:04 * YetAnotherEric imagines TT sitting at a space-cadet unicode keyboard
17:04 Coke Speaking of unicode and languages, "ew." "ew ew ew".
17:04 Coke (this based on my attempts to write *one line* APL programs.)
17:05 PerlJam greeble.
17:05 TimToady er, giving an interview, just for someone's school project.
17:05 TimToady could end up in a magazine, of course.
17:05 saorge joined perl6
17:05 Coke excelllllllent.
17:07 pasteling "spinclad" at 209.94.133.172 pasted "ambiguous example in S02.pod r8928" (14 lines, 370B) at http://sial.org/pbot/16884
17:08 TimToady using < for mixin is the sort of mistake Haskell makes all over, huffmanizing the abstruse operations to be shorter than the common ones.  Admittedly, < is fairly common in Ruby, but it's still too short.
17:08 Coke using unicode is another way of dehuffmanizing, but it still makes me feel all oogy.
17:09 audreyt TimToady: well, it was huffmanizing for its niche :)
17:09 audreyt (which is, math)
17:09 TimToady P6's -> ==> are all conceptually unicode ops written in ASCII
17:09 TimToady :)
17:09 audreyt ooh, -> too?
17:09 audreyt then I don't have to update my slides!
17:09 audreyt ;)
17:09 TimToady I'm sure you can locate a right arrow in Unicode. :)
17:09 PerlJam (ascii unicode ops)++
17:10 audreyt the Japanese people really all freak out at the Yen though.
17:10 audreyt to them the unicode Yen is indistinguishable from backslash...
17:10 theorbtwo MS--
17:10 audreyt (same thing on the screen)
17:10 PerlJam I guess I'll need to get used to typing ^K alot in vi (or make lots of abbreviations)
17:11 TimToady spinclad: thanks, will clarify
17:11 Coke OS X has a great character input scheme for unicode, but it's completely disruptive to writing code.
17:11 * spinclad likes the pastebot
17:11 KingDillyDilly joined perl6
17:11 audreyt tonight ingy was talking about how in golf
17:12 audreyt all Module::Compile users are penalized
17:12 spinclad TimTowtdi: thanks
17:12 audreyt because you have to at least say "no X;"
17:12 audreyt to load a module
17:12 ingy :D
17:12 audreyt I suggested maybe we can use the unicode codepoints outside BMP
17:12 KingDillyDilly Anyone know what "23390 mauke 25 0 144m 125m 16m R 92.7 12.5 3:00.79 firefox-bin" means? Mauke posted that after trying my diff app.
17:12 audreyt that is, > 65536
17:12 audreyt to encode three characters in one codepoint
17:13 obra KingDillyDilly: that looks like "firefox is eating all my CPU"
17:13 audreyt because 3 7-bit ascii is 21 bit unicode
17:13 audreyt so one character can mean "no "
17:13 audreyt and another one can mean "X;"
17:13 audreyt significantly reducing the penalty
17:13 TimToady well, we have 64-bit utf8 in P5...
17:13 TimToady so you know my opinion of the 21-bit limitation...
17:14 audreyt but the higher bits are all zeroed...
17:14 audreyt if it's not, the unicode police will come and get you
17:14 TimToady they don't much care as long as you never emit such a character.  Why you do in the privacy of your own process...
17:14 theorbtwo More to the point, your terminal won't know how to display it.
17:15 theorbtwo Exactly, TT.
17:15 TimToady To me, it's just a way of storing variable sized integers, so should
17:15 TimToady probably be typed as some kind of Buf instead of Str.
17:15 TimToady except abstract.
17:16 TimToady might well be a uint64 @ internally...
17:16 PerlJam Can we make the ASCII version of zip be Ye instead of Y?  Then my code will work even if I don't have abbreviations setup   :-)
17:16 TimToady macro infix:<Ye>...
17:17 theorbtwo We should make wide yen equiv to yen, for silly people for whom \ displays as yen.
17:17 PerlJam yeah, I know.  I just want custom-to-me behavior out of the box  :)
17:17 TimToady We'll need to tackle all Unicode equivalences at some point.
17:17 Juerd audreyt: Unicode police? Heh.
17:17 PerlJam TimToady: so ... why don't we have a <KEY> assertion?
17:18 TimToady use PerlJam; not good enough?
17:18 TimToady what would you need it for?
17:18 TimToady you already know where the silly thing starts and stops.
17:18 PerlJam TimToady: I don't know, I just think it's strange that we have $<KEY> and not <KEY>
17:19 TimToady the point is, you're already past the key when you get to the rule, so you have to set the position anyway if you want to go back.
17:19 xinming Juerd: may I have account on http://perlcabal.org/ ? :-)
17:19 PerlJam I guess <after $<KEY>> works well enough as <KEY>
17:19 TimToady indeed
17:20 TimToady and since lookbehinds reverse
17:20 Juerd xinming: It's feather.perl6.nl, but sure. Request it by email.
17:20 xinming Juerd: ok...
17:20 Juerd xinming: perlcabal.org is audreyt's domain; She pointed it to feather :)
17:20 TimToady <<after foo $<KEY> >> also works.
17:20 TimToady so $<KEY> functions as its own assertion, more or less.
17:21 xinming Juerd: send the mail to you?
17:21 PerlJam yep.
17:21 Juerd xinming: Please include your real name (transcribed to ascii if relevant, please) and the username that you want
17:21 Juerd xinming: Yep
17:21 TimToady just didn't seem like there was any reason to clutter <foo> space.
17:21 Coke /me wonders if he should get a feather account. they seem all the rage.
17:21 PerlJam perhaps I'm suffering from hobgoblins of foolish consistency.  There's a nice symmetry between <foo> and $<foo> (except for $<KEY>)
17:22 Juerd Coke: There is no "should". If you think you can be more productive for Perl 6 or Parrot if you have an account, request one :)
17:22 TimToady I don't doubt that someone enterprising will go ahead an implement <KEY> anyway, just for that reason.
17:22 TimToady I'm not prohibiting it, just not specifying it.
17:22 Coke Juerd: what's the platform again?
17:23 wolverian TimToady, do you think -> could actually be a unicode operator (that is, → )?
17:23 Juerd total 4.8G
17:23 Juerd -rw-------  1 feather feather 776M Apr 24 19:28 2006-04-24T17:16:26_feather_._backup.tar.gz
17:23 Juerd -rw-------  1 feather feather 4.1G Apr 24 21:03 2006-04-24T17:25:47_feather_data_backup.tar.gz
17:23 Juerd Feather's first backup :)
17:23 Juerd Coke: Linux, Debian Sid.
17:23 Juerd Coke: GNU, too.
17:24 TimToady what else would it mean?  That doesn't mean the world is ready for it, though.  But we need to spec the correspondences.
17:24 TimToady for the eventuality that the world catches up with Unicode.
17:24 wolverian TimToady, right. I'm specifically asking whether the default perl6 will understand →  :)
17:24 TimToady which version?
17:24 Juerd My font doesn't render that character, wolverian
17:24 Coke Juerd - if someone on feather is already smoking parrot + parrot/lang, then I don't need it.
17:24 Juerd Coke: Probably. I don't keep track of who does what.
17:24 wolverian TimToady, the one I'll use. :)
17:25 Coke I read it as ?~F~R !
17:25 TimToady we are intentionally not speccing 6.0.0 to require anything outside Latin-1.
17:25 TimToady but all is fair if you predeclare.
17:25 Juerd TimToady: Please keep it that way.
17:25 wolverian TimToady, as long as -> exists, is it a requirement?
17:25 TimToady how long?
17:25 TimToady is what a requriement?
17:25 Juerd TimToady: Until latin1 is no longer the default on more than half of all modern unixish distributions :)
17:26 PerlJam TimToady: It won't require, but will it accept unicode variants?  And for what operators?
17:26 PerlJam it == perl 6.0.0
17:26 TimToady I think that was yesterday... :)
17:26 TimToady (wishful thinking, I know)
17:26 szbalint Juerd: oh? Today is indeed today then ;)
17:26 TimToady Is perl 6.0.0 a requirement?
17:26 Juerd Fedora is way ahead, and Ubuntu's almost there. Debian's far from utf8-ized, though, in the default installation, last time I checked.
17:27 Juerd szbalint: ?
17:27 Juerd szbalint: When is today ever not today?
17:27 wolverian TimToady, is the fact that →  exists as an optional -> variant a requirement for non-latin-1?
17:27 TimToady I use Fedora, so my view is biased, of course.
17:27 wolverian TimToady, (sorry, I honestly couldn't put it any better than that.)
17:27 szbalint "Today^WSoon I will install some backup mechanism on this machine."
17:27 TimToady I believe it'll require a predeclaration in 6.0.0
17:27 szbalint I ment this from the motd Juerd, sorry for being cryptic :)
17:27 theorbtwo I use debian, and don't have any problem utf8ing.
17:27 TimToady use uniops; or some such
17:27 theorbtwo Well, very little problem.
17:27 Juerd szbalint: The original today was Saturday :)
17:28 Juerd theorbtwo: But it's not the default.
17:28 theorbtwo wolverian: It'd be a requirement to allow it is the problem... not to use it.
17:28 Juerd theorbtwo: As long as utf8 is a conscious choice, it's a bad thing to assume.
17:28 TimToady maybe just use U for golfers.  :)
17:28 theorbtwo Mm, point.
17:28 wolverian TimToady, okay. thanks.
17:29 Juerd wolverian: Off topic - why do you use a comma, not a colon, to address people?
17:29 TimToady but we *have* already specified that Perl programs are written in Unicode...  :)
17:29 wolverian Juerd, I'm not sure. does it bother you? I can always change it.
17:29 Juerd It looks so unnatural to mention someone's name all the time. "foo:" is an IRC thing, and not part of what's virtually pronounced :)
17:29 TimToady "In the abstract"
17:29 Juerd wolverian: It doesn't bother me. I am curious, though.
17:30 wolverian that's true.
17:30 wolverian I'm curious too. I just don't remember why I changed it.
17:30 wolverian I'll tell you if I remember. :)
17:30 Juerd Hehe :)
17:30 Juerd Thanks
17:31 * Juerd just bought a phone with prepaid credit, and had the phone unlocked.
17:31 Juerd Brand new phone for < € 100, that normally costs > € 200
17:31 TimToady I think assuming the source file is in some subset of Unicode is a fine thing unless declared otherwise.
17:31 Juerd use unicode :madness;
17:32 Juerd =item :madness
17:32 Juerd
17:32 Juerd Binds something to each existing codepoint. Requires half of CPAN, because Unicode has many more codepoints that Perl 6 has operators.
17:32 TimToady translation from "native" script is about the only thing left that source filters are good at...
17:32 Juerd
17:33 Juerd =cut
17:35 TimToady maybe if the first declaration uses high-order Unicode, we assume it all does: v⑥;
17:35 svnbot6 r10071 | audreyt++ | * Per chromatic++'s suggestion, change "public domain" to
17:35 svnbot6 r10071 | audreyt++ |   "MIT license" in the README's section about future intent.
17:35 TimToady for golfed Unicode.
17:36 TimToady use v⁶;
17:36 Juerd #!/usr/bin/perl⑥
17:36 TimToady for more formal occasions.  :)
17:36 TimToady cool, now just convince the filesystem. :)
17:36 Juerd Why v⁶, not v₆? :)
17:37 TimToady v₆ is for prereleases.
17:37 Juerd I see
17:37 xinming Juerd: You have the email... :-)
17:38 xinming TimToady: do you mean, we have to use v₆ instead of v6?  :-/
17:38 TimToady Ⅵ  also has possibilities. :)
17:38 Juerd xinming: Out of curiosity, who/what is in the From: header?
17:38 jlhamilton joined perl6
17:38 TimToady Only after 6.0.0 :)
17:38 PerlJam TimToady++
17:39 xinming Juerd: Still me,  YiyiHu is just my name which is used only for written article only... :-)
17:39 Juerd So confusing...
17:39 * xinming thinks, he should change his email-box using [email@hidden.address]
17:41 xinming en....
17:41 Juerd en?
17:42 mauke en_US.UTF-8?
17:43 xinming hmm, It's a bit like a confirmation... which means yes...
17:43 xinming Juerd: I've updated my password. :-)
17:43 xinming Juerd: thanks
17:45 TimToady Maybe a simple "6" would work...
17:46 TimToady basically just continues the idea of Perl looking at how you abuse it in the first statement, and assuming you want to continue to abuse it that way...
17:49 TimToady unfortunately there's nothing in the Latin-1 range that looks like either v or 6, unless you really mean Latin, in which case U wold work--except that's ASCII...
17:50 TimToady but we already allow Latin-1, so I guess it doesn't matter.  I don't see much use for limiting the character set to Devangari with "v६"
17:51 arcady joined perl6
17:51 TimToady *Devanagari
17:52 TimToady Unfortunately "
17:53 TimToady "六" is considered non-numeric...
17:53 TimToady so would have to be v六;
17:53 TimToady no wait, that doesn't work either...
17:53 TimToady "六"; with quotes would work maybe.
17:56 Coke_ joined perl6
17:56 xinming ....
17:57 xinming TimToady: why not ttf?  :-)  110
17:57 DaGo joined perl6
17:57 xinming_feather joined perl6
17:59 flounder99 joined perl6
18:00 jlhamilton left perl6
18:01 xinming TimToady: If you really want some chinese... 陆 is capticalized form for 六.  which means, 陆 is normally used in check with numbers...  and 六 is a tiny form...
18:02 xinming but...
18:02 * xinming doesn't think it's a good idea for people who wish to use perl have to search unicode table or learn how to type Chinese. ;)
18:05 KingDillyDilly Regarding my diff of the DESTROYALL sequence versions (http://colabti.de/irclogger/irclogger_log/perl6?date=2006-04-24,Mon at 12:50), I've received some positive comments from some people on #web. If anyone's interested, they're at http://sial.org/pbot/16885 along with the negative comments from #perl6. I'm passively looking for a better use for DiffNote than it has, so if there are some minor tweaks that would make it useful
18:10 Juerd KingDillyDilly: We already have a great diffing tool. It's called diff :)
18:10 KingDillyDilly Saw it. That's why I created DiffNote.
18:10 Juerd What is the added value of DiffNote?
18:10 KingDillyDilly It's just a Diff -Y wrapper.
18:10 Juerd What is the added value of DiffNote?
18:11 KingDillyDilly Line wrapping, easier to see spaces and some newlines because they're dots, file names on top, web based.
18:12 Juerd ...
18:12 Juerd I give up
18:12 pdcawley_ joined perl6
18:12 KingDillyDilly Something even better that I forgot. :-[ Diff -Y normally leaves something out that I include.
18:12 Juerd Hi pdcawley_
18:12 pdcawley_ Hey there.
18:13 pdcawley_ How goes?
18:13 Juerd pdcawley_: I'm a bit depressed because people are wasting their time writing web based diff wrappers that do nothing special.
18:13 pdcawley_ Hmm...
18:14 * pdcawley_ doesn't hate trac enough to do that.
18:14 KingDillyDilly Vertical scroll prevention can be very helpful.
18:14 Juerd And I'm hungry, but without many option for food except McDonald's
18:16 KingDillyDilly Oh, yeah. Diff -Y leaves out entire portions of a line when there's an embedded CR. What's up with that?
18:16 KingDillyDilly It returns to the beginning of the line and write the right side over the left side.
18:16 Juerd Honestly, who cares? Nobody uses diff -y, and people who have CRs don't use diff at all...
18:17 KingDillyDilly Ok...
18:17 Juerd Yea, that's what CR is supposed to do: return the carriage.
18:18 aeon__ joined perl6
18:18 KingDillyDilly But a diff should give you the entire contents, at least of the visible characters. Mine does even more than that.
18:18 Juerd Do you know the difference between CR and LF? And why DOS rightfully uses both?
18:18 KingDillyDilly Ditt -y doesn't.
18:18 pdcawley_ One's Carriage Return, and the other is Line Feed.
18:18 Juerd pdcawley: I trust you know this :)
18:19 pdcawley_ Personally, I think dos should have done LFCR, but that may just be because I'm a natural born contrarian.
18:19 Juerd LFCR or CRLF is semantically the same. I think DOS should accept both, regardless of what it chooses to output by default.
18:19 Juerd Did you know that in many places in DOS, it's actually /\r./?
18:20 KingDillyDilly So you're saying diff without my wrapper is just going what's it's told to do by writing over some characters? Ok. Personally, I don't like that.
18:20 pdcawley_ Ooh... you could a Bleach equivalent like that.
18:20 Juerd Lazy bastards who wrote the ASM code didn't bother checking the byte after CR in many cases.
18:20 pdcawley_ You'd need *big* files though.
18:20 Juerd I have a 1 TB file of nullbytes.
18:21 Juerd Thankfully it's fully sparse :)
18:21 pdcawley_ teehee.
18:21 pdcawley_ My /dev/null is longer than yours!
18:21 pdcawley_ Sorry, my /dev/zero
18:22 ruoso joined perl6
18:22 Juerd But I have several :)
18:24 KingDillyDilly I notice that I enter longer lines here than anyone else. Those who have a lot to say enter it on separate lines. I assume that's because you want to prevent lines from being too long horizontally. DiffNote prevents that. Diff doesn't.
18:25 * Juerd sighs and flees to McDonald's
18:25 aufrank joined perl6
18:25 * Juerd pre-emptively puts KingDillyDilly on ignore
18:25 Juerd afk
18:25 theorbtwo Later.
18:26 KingDillyDilly Good idea, Juerd. Fast food places have short lines. Stay away from those Unix restaurants.
18:27 KingDillyDilly Someone teach me. Is it better to not wrap lines in a diff?
18:27 * pdcawley_ can't type fast enough to use long lines, by the time I've finished typing 'em they're no longer relevant.
18:28 nothingmuch joined perl6
18:28 theorbtwo KDD: Diffs have one major purpose, with two subpurposes.
18:28 theorbtwo The purpose is to show the differences between two evolutions of a code file.
18:28 theorbtwo This means that they need to be concise, and they need to be clear.
18:28 KingDillyDilly Someone asked me on Perlmonks why I use such long lines of code. It didn't wrap for him so it was annoying. I don't get it. Use a tool that wraps text.
18:29 theorbtwo ...both to a human and to a computer.
18:29 KingDillyDilly Wrapping precludes that?
18:29 theorbtwo We do, KDD.  Short lines in code, and in IRC, are a way of chunking things for the eye and mind... something best done by short lines.
18:29 theorbtwo Yes, it does.
18:30 theorbtwo Write a program that applies patches with wrapped lines.
18:30 theorbtwo Now go back in time and write it in 1975.
18:30 KingDillyDilly My table cells delimite lines pretty well. It is optimized for humans though. Not everyone needs a machine readable diff. If you do, politely say so and I won't bother you.
18:31 theorbtwo Table cells?
18:31 theorbtwo Sounds horrid.
18:32 KingDillyDilly http://www.polisource.com/diffnote/042406-KjTfyOzX.shtml (careful, it messes with some people's computers)
18:32 FurnaceBoy Juerd, "pre-emptively"? the empting has already occurred...
18:32 KingDillyDilly It's just a graphical gif. Nothing horrid.
18:32 pdcawley_ How can you be sure the tool will wrap the lines in sensible place?
18:33 pdcawley_ And long lines that can't be made shorter are a code smell.
18:33 FurnaceBoy amen
18:33 pdcawley_ Code's way of telling you to write another method.
18:33 pdcawley_ A graphical gif?
18:33 pdcawley_ What's one of those when it's at home?
18:34 KingDillyDilly I wrote the wrapping routine. There's a module for it, but I didn't know it at the time, and I hate modules. They're not wrapped in the best places in all cases, but I think it's better than a really, really long line that makes you scroll sideways.
18:34 pdcawley_ is that like a textual sentence?
18:35 KingDillyDilly What?
18:35 aufrank pdcawley_: I thought it was a conceptual idea
18:35 aufrank =P
18:35 KingDillyDilly Oh, good...FurnaceBoy. Lets call buu too...
18:36 aufrank </tease>
18:37 frederico joined perl6
18:39 KingDillyDilly Here's someone elses product: http://diffmerge.com/  You can attack the author of that when you're done with me.
18:40 KingDillyDilly I don't like the term "graphical..." but that's what they're called when they're not at the command line.
18:41 KingDillyDilly And pretty.
18:44 aufrank KDD... I think the thing that threw us is that gif is most commonly known as an image format.  That fact makes "graphical gif" sound a little weird.  Did you mean something else by gif?
18:45 KingDillyDilly Oh. I meant diff. I assume I said "diff" except that once.
18:45 aufrank do you get our jokes now?  textual sentence?  conceptual idea?
18:46 KingDillyDilly Yes.
18:46 KingDillyDilly Do I have to laugh?
18:46 aufrank that sort of word play passes as humor around these parts, I'm afraid.
18:46 aufrank yes, you are required to rofl.  or maybe lol.  one or the other.  or else.
18:47 KingDillyDilly Gaim doesn't allow me to. As you know, I do graphics, not text.
18:47 KingDillyDilly But: :-D
18:49 KingDillyDilly Gaim is written in Perl, right? Do a lot of you use Gaim and customize it?
18:49 wolverian please, god, let this end
18:50 KingDillyDilly Maybe it was just that it takes Perl plugins.
19:26 froh-doh joined perl6
19:29 larsen joined perl6
19:56 SamB joined perl6
19:59 nothingmuch joined perl6
20:02 axarob joined perl6
20:15 _bernhard exit
20:17 kolibrie I want to return the captured text and the contents of a subrule within the capture. Is that legal?
20:18 * kolibrie thinks it would be very handy
20:20 weinig joined perl6
20:20 kolibrie rule something { ( my text <subrule> ) { return { captured => $/[0], subrule => $<subrule> }}}
20:22 TimToady you can return anything you like as the scalar value of a Capture.
20:24 TimToady though in this case it seem like you'd just want to set $<captured> and $<subrule> rather inventing a separate hash.
20:30 kolibrie TimToady: so I should be able to set both $<captured> and $<subrule> and have them both accessible in my match object
20:31 TimToady sure
20:31 kolibrie very nice
20:52 YetAnotherEric joined perl6
20:58 xphud joined perl6
20:58 xphud left perl6
21:10 kolibrie ah ha!  I found my $<subrule> thingy embedded in my $<capture> thingy!
21:10 * kolibrie is glad he doesn't have to puzzle about that all night now
21:32 zgh joined perl6
22:07 KingDillyDilly Is evalbot a #perl6 exclusive?
22:07 KingDillyDilly I'd like to play with it.
22:09 theorbtwo KingDillyDilly: Check out a copy of pugs.  Compile it.  Run it to your heart's content.
22:10 KingDillyDilly left perl6
22:10 theorbtwo For that matter, there's a copy of evalbot itself somewhere in examples/, but you get a much more powerful environment just by running ./pugs.
22:10 KingDillyDilly joined perl6
22:12 KingDillyDilly Funny...there was an evalbot conversation in #perl when I asked that. I'm surprised evalbot isn't in #perlcafe.
22:14 theorbtwo KingDillyDilly: Seriously, if you want pugs, you know where to find it.  If you can't follow the directions I'm sure you can find online, ask questions about them.
22:18 Limbic_Region joined perl6
22:19 KingDillyDilly I've had bad experiences with software that doesn't have an installer, and I don't think I ever compiled anything successfully. I just wanted to play. I'll stick to Monkeysnowfight.
22:21 jsiracusa joined perl6
22:24 theorbtwo KDD: Pugs isn't really release-quality software presently, and is unlikely to be so for some time.
22:24 arcady it does have an installer though
22:24 arcady it's called apt-get
22:25 Limbic_Region audreyt sleeping?
22:25 * theorbtwo grins.
22:25 Limbic_Region well - is she pretending to sleep at least?
22:26 Limbic_Region she mentioned earlier that 6.4.1 isn't mandatory but perl Makefile.PL aborts outright with 6.4.0
22:26 * Limbic_Region is upgrading now
22:26 Limbic_Region but I wanted to sanity check the earlier comment
22:27 KingDillyDilly I thought for a minute that evalbot might be for Perl 5, but it would make sense to have that here. I see there's a p5evalbot in perlcafe, so I'll play with that. Don't want to learn Perl 6.
22:27 KingDillyDilly (wouldn't)
22:28 theorbtwo Then what are you doing here?
22:29 KingDillyDilly I find stuff to do here somehow.
22:29 pen1 is now known as penk
22:29 KingDillyDilly I'll probably be kicking the habit though.
22:34 Juerd KingDillyDilly: This is not a channel for general hanging around. If you don't know why you're here, please leave. Feel welcome to return when you find a purpose that has to do with you wanting to learn (and hopefully be involved in) Perl 6.
22:35 KingDillyDilly Juerd: Shut up
22:35 Juerd KingDillyDilly: No, but thanks for asking.
22:40 Khisanth joined perl6
22:43 cdpruden joined perl6
22:52 zgh joined perl6
23:05 Odin-LAP joined perl6
23:05 Odin- joined perl6
23:22 Quell joined perl6
23:23 nowhereman joined perl6
23:30 axarob joined perl6
23:38 FurnaceBoy is now known as FB|afk
23:47 reZo joined perl6
23:48 mako132_ joined perl6
23:49 axarob left perl6
23:51 zgh joined perl6
23:51 Limbic_Region perlbot nopaste
23:51 perlbot Paste your code here and #<channel> will be able to view it: http://sial.org/pbot/<channel>
23:56 pasteling "Limbic_Region" at 24.35.57.240 pasted "audreyt - Win32 build failure" (9 lines, 295B) at http://sial.org/pbot/16886
23:57 Limbic_Region got the backtrace
23:57 Limbic_Region isolated problem
23:57 Limbic_Region not sure how you want to address

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

Perl 6 | Reference Documentation | Rakudo