svn switch --relocate svn.openfoundry.org/pugs svn.pugscode.org/pugs/ | run.pugscode.org | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com
Set by avar on 16 November 2006.
00:23 Limbic_Region joined
wolverian is v6-KindaPerl6/docs/FAQ.pod supposed to be, uh, POD? I can translate it to POD if so, or rename it to something else if not 00:24
00:29 pjcj joined 00:59 explorer joined, devogon joined 01:05 lyokato joined, b00t joined 01:17 ashelyb_ joined
Teratogen I use rot13 01:20
01:35 bonesss joined 01:42 reZo joined 01:47 rashakil joined 02:10 stevan_ joined 02:15 mncharity joined, mncharity is now known as putter
putter fglock: ping? 02:16
Ziggy6: re "i will probably commit the whole thing when it's good enough to replace v6-MiniPerl6 or nothing at all", I note the official religion has been "commit early, commit often", and that my own experience, repeatedly deviating from that, is that I always regret it afterward... 02:20
ingy hi mcharity 02:21
:P
Teratogen ingy Ingy INGY!
putter hi ingy
ingy hihihi
putter Ziggy6: re parsing, spec is (or was the last time I looked) that p6 has a sandwich parser - top-down down to expressions (and statements?), then an operator precedence parser, which assembles terms, where the terms are top down. So top-down, bottom-up, and top-down again. 02:24
Existing implementations taking that approach have been parrot, one of fglock's creations (lrep??), and redsix.
pugs's parsing predates this story, so it's due of a bit of overhaul after the next major rev. (the next rev is oo, the one after that rules and such). 02:26
re creating a new emitter for the regexp compiler, you might look at misc/pX/Common/Regexp-Engine-Reentrant/ , especially Backtrack.pm, or perhaps at misc/pX/Common/Regexp-Parser-ReentrantEngine/ . 02:33
they are quite fast. 02:34
Ziggy6 putter: thanks for the pointers 02:42
02:43 luqui joined 02:53 kanru joined
putter np. nice to see @fglock forming :) 02:53
02:54 neonse left
putter fglock: re left-recursion, yes - the spec p6 rules engine is a "general parser", so both left and right recursive grammars should work fine. 03:03
I expect trie optimization will also end up spec, so people don't feel obliged to hand rewrite top-down grammars into LR grammars. 03:04
eg e = e|e rather than e = e_with_no_| '|' e 03:05
or something vaguely like that 03:06
Ziggy6: re mp6 parsing speed, the real objective is to run kp6 fast. fglock said he thought kp6 might be capable of running on pugs, not just mp6. it might be worth trying.... 03:15
luqui putter, re: p6 rules spec as a "general parser" 03:18
where is this specced?
I thought it was specced as LL
03:24 SamB joined
Ziggy6 hmm, yes, maybe it's easier to fix pugs to run kp6 03:26
03:45 weinig is now known as weinig|zZz 03:51 vel joined
putter luqui: re LL, good god I hope not. I've had quite enough decades now of "rewrite the grammar to match the parser engine" hell. 03:52
luqui okay, but I'm asking about spec 03:53
I mean, that may be hell
but how do we implement a left-recursive grammar in a predictive engine?
Ziggy6 i think left-recursion can be automatically eliminated 03:54
luqui if all you have is a pure context-free grammar, then yes
but if you have data-dependent rules, then you cannot
Ziggy6 what do you mean by "data dependent?" 03:55
03:55 vel joined
luqui <somerule> <someotherrule: $<somerule>> 03:55
for example
putter I almost pointed Ziggy6 at this earlier today. It's the kind of thing I envision p6 getting: jp.franz.com/base/seminar/2004-06-1...anz-e1.pdf 03:56
luqui looking
(however, the left-associative lambda transform is something that is worth including as a convenience feature, to make writing grammars which are essentially left-recursive easier) 03:57
putter GP are now well understood tech. you decouple grammar ("policy") from engine ("implementation"). Engine's choice of parser tech, for any particular part of the requested grammar, it its own business. And purely an optimization issue. 03:58
luqui it'd be neat to look into the optimizations that that presentation mentions more 03:59
again, you can only do data-dependent grammars top-down 04:00
it is definitely desirable to decouple policy from implementation 04:01
but we lose a lot of freedom by doing that
putter what "freedom"?
luqui for the third time, data-dependent grammars
unless you're saying "we'll look, and if it is essentially context-free, then we can compile to LR" 04:02
putter I do not believe "you can only do data-dependent grammars top-down" is correct.
the key being that
the entire grammar does not have to be treated homogenously 04:03
luqui I believe the rule: rule foo { <foo> <{ f($<foo>) }> }
(oh, add an | something at the end of that) 04:04
is essentially undecidable
hmm, an earley parser could do it
so I suppose i am wrong
04:04 lambdabot joined
luqui however, in the absence of an earley parser, how would you transform that rule into something parsable? 04:05
putter it is the regexp compiler's task to recognize DFA, LL, LR, packrat, etc, etc, subparts of the requested regexp/grammar, and optimize them accordingly.
luqui so, be the regexp compiler for a sec, and do foo
ooh yes, an earley parser can't even do this one: rule foo { <foo> <{ f($<foo>) }> | <null> } 04:08
04:09 mako132_ joined
Ziggy6 that's not context-free... 04:13
luqui of course not, that's the point 04:14
if perl 6 rules were strictly context-free, then putters comments would be spot-on 04:15
putter hmm, is <foo> <{ f($<foo>) }> well defined? "The closure is guaranteed to be run at the canonical time.". with |<null> one could use pos=0. but without it, can one legally call f? not even a junction pos would be sufficient. maybe one could modify the guarentee that it is called in the cannonical place, or STM-wise (software transaction memory), the call is guarenteed to be later aborted?
s/the call is/the universe of the call is/ 04:16
04:16 nipra joined
putter I suppose one might sometimes be able to do special case analysis of f. but not in general obviously. 04:16
luqui nobody is solving the halting problem :-) 04:17
so treat f as a black box :-)
if there is no | <null> then the grammar cannot scan and <foo> will never be matched 04:18
but I beleive that that is a "bad grammar" in some sense 04:19
putter well, if one relaxes the guarantee, then it's just a constraint satisfaction problem.
though a constraint satisfaction engine is perhaps a little beyond what I was thinking of for a GP domain... 04:20
;)
luqui I think we should stick to predictive LL (with longest-token semantics, hopefully sane ones (crosses fingers)), and optimize on top of that 04:22
allowing engines not to optimize if they don't wish to 04:23
putter actually, that's not a bad grammar, as long as... hmm... (1) f can't tell how deep the rule call is, and (2) f can't modify the running grammar. after all, in the absence of constraint satisfaction, the <null> branch would eventually have to be taken (forced by the "canonical" guarantee). no?
luqui I don't know what this canonical guarantee is 04:24
putter "The closure is guaranteed to be run at the canonical time."
luqui which is defined as what?
putter well, for example, pos is constrained to be non-arbitrary.
luqui (but I realize that my example, can, again, in fact, be done by an earley parser ;-) 04:25
I'm still not quite sure what you mean.
So by that you mean that .pos must be accessible and actually represent something when f() is called
putter can it...? (be done by an earley)
luqui yeah
oh, as long as | <null> is there 04:26
the set is: foo ::= * foo f($<foo>) ; foo ::= * null ; scan to: foo ::= * null ; complete to: foo ::= foo * f($<foo>) ; then hand f the set of values from the completion, namely <null> 04:27
then proceed, and as long as f($<null>) can be matched, we will finish
04:27 justatheory joined
putter the pos f sees at call time must define a substring (pos at foo start to pos at f call) for which f would return a regexp which succeeds. (I'm dealing with the no-<null> case). can one do that without analysis of f? 04:28
luqui er, the scan to clause sould be: foo ::= null *
04:29 justatheory joined
luqui without null, I don't believe you can do anything 04:30
but I can't prove that just yet
putter erases example of f which with constraint satisfaction yada yada 04:31
but this is all rather OT, no? 04:32
luqui well, not entirely
Ziggy6 OT = ?
luqui it is a proof that there are some grammars which you can't transform to something matchable
Ziggy6 offtopic?
luqui Ziggy6, yes
luqui finds it interesting that OT could also me on-topic 04:33
*main
putter the point is the universe is full of very nice well defined LL and LR and lots of other grammars already written. it would be a continuation of great sillyness to require people to hand edit them in order for them to be used with the p6 engine.
luqui *mean
oh, that's a good point. if you wanted to parse C with perl, you'd have to do some trickiness
because the BNF the spec provides wouldn't run
putter (actually with backtracking you don't need trickiness, but that's beside the point...:) 04:34
luqui how so?
how can you do a left-recursive grammar with backtracking?
putter if nothing else, depth constraints. if a token follows the recursion, by token occurance counting. 04:35
luqui oh, depth constraints. incredibly, incredibly slow, but indeed doable
putter C isn't actually ambiguous in the identifier/type choice. you just can decide LR. 04:36
luqui I think your "token occurance counting" will end up reducing to earley...
putter s/can/can't/
luqui in the general case, that is 04:37
putter goes to remind himself how early works... parser theory, blech....
luqui earley is a very cool algorithm
quite simple
luqui wrote the wikipedia page on it ;-)
Ziggy6 i'm still unclear how can you parse context-dependent grammars with an algorithm that need a context-free one 04:38
putter just read :)
is someone saying you can...? 04:40
Khisanth ?eval @a = (1, 2); @b = (@a, 3, 4);
luqui Ziggy6, top-down algorithms usually have straightforward generalizations to certain non-context-free grammars (context-dependence is defined differently)
evalbot_r15138 [1, 2, 3, 4]
luqui context-dependence is when you can have multiple nonterminals on the left side of ::=
which we're not talking about ...
putter re "incredibly, incredibly slow, but indeed doable", not with a packrat parser. or indeed, any parser bright enough to memoize its work. no? 04:42
besides which, from a user standpoint, the difference between "runs slowly" and "doesn't run, so study parser theory and carefully edit, or find yourself another tool" is really really big. 04:43
Khisanth ?eval @a = (1, 2); @b = (@a; 3, 4); 04:44
evalbot_r15138 Error: ā¤Unexpected ";"ā¤expecting "::", term postfix, operator or ")"
luqui that's true. packrat isn't in my "working vocabulary" of parsers
but I do know how it works
you make a good point...
so if we want to do this, we have to be *very* precise about semantics in the spec
putter yes 04:45
luqui handwaving and saying "the compiler will make it work" won't suffice with multiple backends
and we have to double-check that the semantics we specify are, in fact, possible
(and reasonable)
but I would be totally down with doing that part in p6-on-p6 04:46
Khisanth ?eval @a = (1, 2); @@b = (@a; 3, 4);
evalbot_r15138 Error: ā¤Unexpected ";"ā¤expecting "::", term postfix, operator or ")"
luqui because I dig writing parsers :-)
Khisanth hrm
putter lol
:)
though you raise an interesting question. to what extent should performance be spec'ed.
luqui it's reasonable to think that a fast grammar in one place should be a fast one elsewhere, too 04:47
but I'm usually in the camp of performance should not be specced
Ziggy6 Perl6 itself is context-free?
luqui Ziggy6, definitely not 04:48
perl 6 is undecidable at compile time :-)
(something that other compilers run screaming away from, but we take in stride)
putter well, but the core language grammar itself, if the user does not modify it, is indeed intended to be single token lookahead, no? 04:49
Khisanth putter: "must not be slower than p5" :)
putter lol
Ziggy6 ah, by undecidable you mean the fact that you can change the grammar?
luqui putter, uh, I think so, but I wouldn't be surprised if something in the spec presently violates that
putter Ziggy6: I think that's right 04:50
luqui Ziggy6, no, I mean that it might never finish compiling
Ziggy6 you could write an infinite loop in a begin block... :) 04:51
luqui but the fact that you can change the grammar (even by such innocuous things like my infix:<@@> (...) {...}) makes it non-context-free
putter audreyt would know the current state of the LR(1) effort. the pugs parser was being used to drive it. my fuzzy recollection, at least of a while ago, was it was down to just a couple of cases.
s/LR(1)/single token lookahead/ 04:52
luqui LL(1) probably
putter s/cases/cases where more was needed/ 04:53
luqui are they just trying to remove all the trys from Parser.hs
or reimplement the grammar elsewhere?
putter trys
luqui cool
that will improve error messages vastly as well
putter this was months ago. i've no idea current state, or if things have changed, or... 04:54
luqui: actually, the example you gave wouldn't change context-free-ness would it? expressions, to which infix:<@@> would apply, are already an operator precedence parser. 04:55
the opp is serves as a tokenizer, and thus doesn't affect the grammar. 04:56
my statement:frobnitz ...; could however.
luqui oh, so @@ would come in as a nonterminal like OPERATOR o rsomething...
and then the opp specifies precedence, too, by pseudo OPEN and CLOSE tokens or something? 04:57
(I'm not really sure how the opp can be considered a tokenizer, but I admit the possibility)
putter the top-down grammar just sees an incoming <expr>. the opp eats input text until its happy.
luqui i'm not sure whether you can use "eats input text until its happy" as an argument for perl 6 being a context-free language 04:58
putter the top half of the sandwich sees the opp as part of its lexer.
luqui suffice to say that perl 6 is "piecewise context-free", if you admit my infix:<@@> 04:59
putter umm....
luqui travels home & 05:01
putter the top half of the sandwich, the main top down parser, which we are trying to make XX(1), doesn't care what operators get defined. it just sees an EXPR token. the opp sandwich filler is never context-free. and the bottom layer of the sandwich, the expr and other tokens, are unaffected by a new token being introduced. so infix:foo just doesnt affect CF-ness. no? 05:02
s/the expr and other tokens/the tokens (for expr or not)/ 05:03
05:04 leed joined
Ziggy6 why isn't the opp CF? 05:04
putter err, because operator precedence parsers are the ultimate in "you don't necessarily know what you've got until you hit the end of the input stream"? ;) 05:05
Ziggy6: re OT, yes. re BEGIN loop, indeed. I myself am greatly looking forward to ... { use CommonLisp::Instead; (defun foo ...) } ... { use NowHowsaboutSomeRuby; ... } 05:06
Ziggy6 :) 05:08
perl6 will become the borg of languages :)
putter one thing I'm concerned about vis opp, is that without backtracking being allowed (the opp, last I heard, was specced as eat as much as possible), one has to take care in creating operators that you don't create ambiguity regards the "end of expr, now back to the top-down grammar". I think I'd be happier if ambiguities were permitted to be backtracked over. 05:10
rather than simply causing a parsefail.
but we'll see whether it actually turns out to be a problem.
re borg, oh yeah. 05:11
the OperatorPrecedenceParser in redsix.... ah, well, not that readable. though in part because we have a rather complex opp concept. tokens which can only appear following whitespace, or can't, or etc. 05:15
but better to took at something simpler someplace first.
Ziggy6 pugs has opp? 05:16
putter no
Ziggy6 what's wrong with it's parser? 05:17
putter pugs?
Ziggy6 yes
putter i don't understand. "what's wrong with"?
luqui wrote en.wikipedia.org/wiki/Operator-precedence_parser
05:17 reZo joined
Ziggy6 i've seen some criticism (i don't remember where) that pugs' parser isn't flexible enough 05:18
s/flexible/mainanable/ 05:19
maintainable*
putter pugs, in a great many respects, not just parsing, is the prototype which drove the spec. it's now a bit behind the spec on how parsing works. updating it is the major rev after next. just as this major rev is updating is oo. 05:21
s/is oo/its oo/
pugs is always either a head of, in sync with, or behind the spec of the moment. <-- content free sentence :) 05:22
there might be an approximation like "big components" start out ahead, and eventually fall behind, until they get overhauled, but small stuff can stay in sync. 05:23
pugs's parser is sort of the haskell magic version of yacc+lex. 05:24
Ziggy6 i'm still undecided what should i learn/hack first... too many interesting things in this project :) 05:25
putter yeah. I started drawing my project graph in the hope of figuring out what the critical path was... I'm afraid I still don't think I have a handle on it. 05:27
If you can support audreyt, financially or otherwise, *that's* critical path.
other than that... fglock's ealier list seemed plausible... 05:28
writing in p6, on pugs, to flesh out kp6 or get to work on chuncks of 6-on-6, could be a way to go. 05:30
though it tends to generate throw-away code 05:31
Ziggy6 i guess it's okay, because i can learn faster perl6 and understand the challenges involved... it will take a while before i can contribuite something usefull to the critical path 05:33
putter once the oo ast is speced, even before pugs actually uses it, parts of the critical path become p6 ast classes, yaml io for them, a compiler framework (kp6?), and emiters. 05:35
a p6 runtime and prelude (basic classes) is probably something which can be worked on right now. 05:36
getting pugs to _use_ such a prelude is difficult, but simply writing it to run _on_ pugs, and by asking questions, drive the specification, is defintiely something to consider working on 05:37
at least some parts of it. some parts are tied to the mop (metaobject protocol), or require digging into pugs primitives (doable, but less straightforward).. 05:39
the mop is, like the oo ast, still a work in progress.
part the project's current difficulty is that unless you take on parsing, which is very nontrivial to do broadly, until pugs can provide oo ast instead of the current non-oo ast, it's hard to right the downstream stuff because there's not much to exercise it. 05:42
s/right/write/
one could do a regex engine in p6 05:43
if one believes the oo ast won't be along for a while, one could do a p6 version of PIL2JS. much of pil2js is already p6. so one could convert its js and p5 to p6. done well, that would be the foundation for p6-on-p6. 05:45
much of the PIL1 handling would be throw-away. 05:46
but, it would work...
it might be interesting to spend a day looking a pil2js internals. it's rather nicely done. could use fixing the mising 'cond', which currently has it broken, as a motivator 05:47
05:47 jamhed joined
putter is still looking for a graph visualization package which can handle the complexity of pugs project planing...:) tulip is kind of nice, but buggy, and still not quite what's needed. :/ 05:48
wolverian putter, graphviz? 05:49
Ziggy6 is there any book on compilers for dynamic languages?
putter re graphvis, I really want to have subgraphs, whose nodes are shared with the supergraph, which have their own layout policies. 05:50
re dynamic languages... 05:51
05:51 miyagawa joined
putter hmm, have you seen the READmumble files in pugs/ ? 05:51
Ziggy6: you know lambdatheultimate? 05:52
lambda-the-ultimate.org/ would be a good place to grovel around. 05:53
lambdabot Title: Lambda the Ultimate | Programming Languages Weblog
putter both for papers, and pointers to books 05:54
could add ones you find helpful to READTOO
searching LtU for "compilers" is fun. here is one hit lambda-the-ultimate.org/node/1752 06:00
lambdabot Title: An Incremental Approach to Compiler Construction | Lambda the Ultimate
Ziggy6 nice :) 06:02
almost makes me anbandon perl6 and get back to lisp 06:03
putter { use Language::Scheme::DialectX::Here; .... } 06:06
06:07 Southen joined
putter it dialect support ends up being good, p6 might be the easiest place to do scheme development... 06:07
be a while before we can compete with SBCL for CL though.
Ziggy6 i don't like clisp, it has a lot of weird functions and types. if i could access perl's classes from scheme... :) 06:09
06:12 Ziggy6 is now known as ZiggyAway 06:14 BooK_ joined 06:15 miyagawa joined
putter Inline::Guile? Guile? 06:23
search.cpan.org/~mstrout/Guile-0.002/Guile.pm
lambdabot Title: Guile - Perl interface to the Guile Scheme interpreter. - search.cpan.org
putter search.cpan.org/~samtregar/Inline-G...1/Guile.pm
lambdabot Title: Inline::Guile - Inline module for the GNU Guile Scheme interpreter - search.cpan ...
putter if you were looking for a scheme task, it might be feasible to convert www.ccs.neu.edu/home/dorai/scmxlate...xlate.html 's scm2cl to create a scm2pl5 or scm2pl6. 06:25
lambdabot Title: scmxlate
06:27 miyagawa joined 06:39 miyagawa joined
putter good night & 06:41
svnbot6 r15139 | putter++ | Unfinished smoke support for redsix.
r15139 | putter++ | I find myself vaguely considering using redsix. And any p6 implementation someone is considering using, should be wired up for testing.
r15139 | putter++ | This patch adds -Bredsix support to pugs, and makefile support for test-redsix and smoke-redsix.
r15139 | putter++ | Remaining to be done is run-smoke.pl support, and getting redsix to load its custom Test.pm.
r15139 | putter++ | Once you install ruby 1.9 head... you can watch redsix... crash it. :/
r15139 | putter++ | Perhaps I'll finish up later, when it can actually be run.
r15139 | putter++ | Perhaps by digging up an old ruby 1.9 snapshot from svn.
jamessan tpope: /join #vim 06:46
bah
06:51 lisppaste3 joined 07:12 marmic joined 07:16 bsb left 07:17 nipra joined 07:42 ZiggyAway is now known as Ziggy6 07:59 drrho joined 08:10 iblechbot joined 08:15 luqui joined
Ziggy6 started re-learning haskell 08:16
luqui had to learn it about three times to get comfortable with it 08:18
allbery_b has not had any trouble adapting to it 08:20
of course I had my brain warped by APL in 1981 and J in 1985/6
luqui allbery_b, had you done pure (or almost pure) functional programming before?
08:21 araujo joined
allbery_b (neither of which is pue but bth of which can be used functionally) 08:21
luqui there are two big hurdles in haskell:
(1) learning to think functionally
which I had done before, but only minimally, using lisp
(2) learning to use monads
allbery_b purity wasn't anything. laziness took some getting used t
luqui the lazy aspect came pretty naturally to me 08:22
allbery_b monads were a problem for me until I (a) worked out how things actually worked with >>= / return instead of do; (b) read
@go you could have invented monads
lambdabot sigfpe.blogspot.com/2006/08/you-cou...s-and.html
Title: A Neighborhood of Infinity: You Could Have Invented Monads! (And Maybe You Alrea ...
Ziggy6 how does @go work?
allbery_b short for @google 08:23
@help google
lambdabot google <expr>. Search google and show url of first hit
Ziggy6 nice
i've read something about monads, even used them a little, but still couldn't understand the magic that makes things like backtracking work 08:24
luqui Ziggy6, you mean with the list monad? 08:25
Ziggy6 yes
luqui backtracking in the list monad is an effect of both the workings of the list monad and the laziness of the language
if you were to implement the list monad in a strict language
it would try all possibilities in parallel, not backtracking
but the list monad is a great example; I recommend trying to wrap your head around it 08:26
(from its definition)
try not to think about laziness for now
(it's much simpler, at least in my opinion, than the state monad, which is used often in introductions) 08:27
Ziggy6 as a side question: what tools do you use when you work on pugs? 08:33
make fast, ghci, hugs?
luqui no, just make
it's usually fast enough for me
(though when you're not so familiar with haskell, and nine in ten changes gives you a type error, maybe it's not fast enough)
at the first pugs hackathon I was in this state
and it was not very productive
make + vim + hasktags
08:33 Ziggy6_ joined
Ziggy6_ when you hack on pugs, which tools do you use? hugs or ghci or make fast && ./pugs? 08:33
luqui did you miss my response?
Ziggy6_ sorry, power failure
ah
i can see it in the logs now :)
08:39 Ziggy6_ is now known as Ziggy, Ziggy is now known as Ziggy6 08:41 devogon joined
Debolaz2 GAH 08:52
pugs got the wrong install prefix. :-( 08:53
Debolaz2 will have to do a lot of manual cleanup now.
Debolaz2 really wish it didn't default to wherever perl is installed. 08:54
luqui where do you wish it defaulted to 08:55
Debolaz2 /usr/local is what most people assume is the default installation directory.
Ziggy6 agrees 08:56
luqui seems reasonable
maybe it's a windows compat thing, er... 08:57
08:59 elmex joined
Debolaz2 Hrmm, still not possible to set a custom prefix with pugs. :-( 09:08
09:13 andara joined 10:07 chris2 joined 10:12 ruoso joined 10:25 cdfh_ joined, fglock joined 10:32 avar joined
pasteling "fglock" at 201.35.169.13 pasted "syntax proposal: longest token matching with hash/pair notation" (14 lines, 343B) at sial.org/pbot/22596 10:32
fglock TimToady: please check sial.org/pbot/22596 10:33
lambdabot Title: Paste #22596 from "fglock" at 201.35.169.13
luqui a way to specify what part of a rule you consider a token? 10:35
fglock luqui: yes 10:37
luqui what happens when you don't have a => in an alt?
it's all a token, none of it's a token, or it dwims?
(hmm, the second one seems unlikely :-) 10:38
fglock the same as if it were a hash constructor, I think - it is read as <token> => <null>
luqui ohk 10:39
fglock or a syntax error
hmm - token => null is more useful 10:40
luqui oh I see where you're going with this
kind of a local thing, rather than a solution to the longest token issue on the table at the moment
(maybe it's only on my table) 10:41
fglock each alternation is first compiled as a hash - then you have an algorithm that chooses the longest token in the hashes
longest token in the hash keys 10:42
luqui shorthand for <%foo> notation, instead of <%(...)>, I suppose 10:43
fglock like the old <%h1|%h2> 10:44
luqui wasn't around for that ket notation
fglock it was the previous proposal before <%h1> | <%h2> 10:45
luqui ahh
10:59 marcususesthis joined
fglock wolverian: re POD - please do - documents marked with POD actually have no formatting 11:56
12:17 DebolazX joined 12:18 kanru joined 12:25 explorer joined 12:26 tifo joined 12:31 tifo joined
tifo \bye 12:32
12:33 buetow joined, capixaba joined 12:35 bonesss joined 12:41 rafl joined 12:56 nipra joined 12:57 diakopter joined 13:01 BooK joined 13:02 spo0nman joined 13:21 Limbic_Region joined 13:22 iblechbot joined 13:36 VanilleBert joined 13:46 weinig|zZz is now known as weinig|away 13:53 ofer0 joined 13:57 dduncan left 13:59 ofer0 joined 14:02 ruoso joined 14:12 kisu joined 14:20 VanilleBert left 14:24 spinclad joined 14:43 vel joined 14:46 stevan__ joined 14:52 GabrielVieira joined 14:57 stevan__ is now known as stevan 15:07 c6rbon joined 15:15 fglock joined 15:20 TimToady joined 15:38 cdpruden joined 15:45 hexmode joined 15:47 shafire joined 15:49 shafire left 15:54 weinig|away is now known as weinig 16:00 nipra joined 16:05 lisppaste3 joined 16:08 rindolf joined 16:10 spinclad joined 16:23 cognominal joined 16:26 Limbic_Region joined
TimToady fglock: your => seems identical to my :: 16:27
fglock TimToady: yes, I noticed just after I wrote it 16:33
allbery_b thinks :: used fglock's way looks rather Haskell-ish, you may take that as positive or negative as you wish :) 16:35
fglock I liked it because it resembles hash x pair
TimToady unfortunately = is not a reserved char 16:37
[particle] thinks :: looks more at home in a regex
TimToady part of why we use := for named captures 16:38
16:47 Ziggy6 left 16:53 nipra joined, avar joined 16:57 andara left 17:21 nipra joined 17:55 xinming_ joined 18:00 Limbic_Region joined 18:01 bernhard joined 18:05 nipra joined 18:06 justatheory joined 18:07 neonse joined 18:41 VanilleBert joined
VanilleBert hmm, das mit PM-fĆ¼r-Datenschutztag-schreiben ist ja kein groƟer Renner: 16 abrufe... 3-4 von mir :D 18:42
sry, wrong chat
oO 18:43
18:43 ludan joined 19:09 VanilleBert left 19:35 nipra joined 19:47 rindolf joined
rindolf Hi all. 19:47
20:09 weinig is now known as weinig|bbl 20:21 justatheory joined 20:29 mugwump joined 20:49 pjcj joined 21:02 _bernhard joined 21:03 justatheory joined 21:05 Aankhen`` joined 21:06 lambdabot joined 21:14 weinig|bbl is now known as weinig 21:37 GabrielVieira2 joined 21:38 __Ace__ joined
__Ace__ I just come to think about this XS... what is going to happen with that in Perl6? 21:38
anything easier?
21:40 Ziggy6 joined
[particle] parrot has nci, which is much easier than xs 21:42
as far as perl 6 is concerned, there hasn't been a spec yet
__Ace__ time to wiki nci then..
hmm. en.wikipedia.org/wiki/National_Cancer_Institute 21:43
cant be right
[particle] try googling for parrot nci or native call interface
22:26 devogon joined 22:37 pjcj joined 22:41 devogon joined 22:44 AStorm joined, AStorm left 22:46 nipra joined 22:47 dduncan joined 22:49 ingy joined 23:11 Psyche^ joined 23:18 Limbic_Region joined 23:25 mako132_ joined, Psyche^ is now known as Patterner 23:27 jdv79 joined
Ziggy6 ?eval {random_name => 1} 23:30
23:30 evalbot_r15138 is now known as evalbot_r15139
evalbot_r15139 ("random_name" => 1) 23:30
Ziggy6 ?eval {state => 1}
evalbot_r15139 Error: ā¤Unexpected "=>"ā¤expecting formal parameter, context or "("
Ziggy6 is this a bug, or a feature?
[particle] state declares a type of variable, like my 23:31
?eval state $foo = 1 23:32
evalbot_r15139 \1
[particle] so it's a reserved word, and you'll have to quote it
23:33 ruz joined
Ziggy6 ah, thanks :) 23:35
TimToady that is a bug in pugs
=> is supposed to quote even reserved words 23:36
[particle] oh? nice. 23:37
TimToady but it's admitedly problematic to find a solution that doesn't involve strewing => after every possible keyword
23:39 luqui joined
jdv79 what happened to the pugs blog? its gettin stale:( 23:39
23:39 justatheory joined
TimToady I believe that what happened was a combination of relocation, earthquake, family emergency and ADD. :) 23:44
[particle] don't forget christmas 23:45
(but not that christmas)
diakopter and cocooning
TimToady That's the ghost of Chrismas future...
jdv79 oh, that sucks. thanks for the 411 though.
TimToady but we all ebb and flow, and the tide will come in again... 23:46
diakopter perhaps the tsunami is building
[particle] hrmm... those sound like good names for perl 6 ops
23:47 Schwern joined
[particle] $tide.ebb 23:47
schwern?!?!
23:47 Aankh|Clone joined
TimToady maybe it was an accident? 23:47
Schwern What 23:48
TimToady or maybe we did something nekulturny
[particle] your presence has been noticed
TimToady or maybe he was just caught lurqueing
Schwern Great, what do I win?
[particle] socks with bananas on 'em. got any? 23:49
Schwern As a matter of fact I do. I'll take the cash prize instead.
PerlJam TimToady: Did your brain gurgitate enough on the smooth or chunky thread?
TimToady still gurgling
it won't be ];[, I can assure you. :) 23:50
PerlJam heh, that's good to know :)
TimToady that's one I actually though of myself and didn't bother to put...
[particle] thanks for avoiding the butterfly effect
TimToady *thought
[particle] how about using :ebb and :flow ?? 23:51
TimToady both of those sound kinda smooth to me
more like :aa vs :pahoihoi
jdv79 some p6's got nuts, some don't?
[particle] :almond_joy vs :mounds ? 23:52
timtoady: it's more deep vs shallow, donchathink?
PerlJam Well, it's a lot easier to smooth out chunks if you have them than to magically know what chunking is appropriate when you've been given somethign smooth. So, if we can somehow make chunking the default with a smoothing op, that seems like it should work.
TimToady one could go scatalogical, since English provides both mass and count nouns...
PerlJam (but what do I know, I'm not a language designer :-)
TimToady more like deep and not-quite-as-deep 23:54
PerlJam The only reason I mention it is that people seem to be focusing on a "chunking op" in that thread.
TimToady since it just ignores []ness at the top level 23:55
23:56 mncharity joined, mncharity is now known as putter
TimToady as I said, most languages would just always return chunky, but Perlers are used to their autoflattening of the top level, and would probably rebel at having to specify it explicitly. 23:57
and we're trying to deal with dimensional syntax and multiple pipes and various related things 23:58
and we'd like to be able to multislice with infix:<;> 23:59