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