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