Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-26

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:06 particle_ joined perl6
00:08 ruoso joined perl6
00:10 audreyt ?eval 1
00:10 evalbot_10080 1
00:10 particle_ phew :)
00:10 Toaster well, that's something :D
00:10 Toaster . o O ( ship it! :D )
00:11 KingDillyDilly eval aa=1 doesn't work with p5evalbot, so I I would be surprised if that didn't work.
00:15 KingDillyDilly Not that I'd expect outpot, but it returns an error
00:21 KingDillyDilly Damn High School typing teacher told me I type too slow and to allow myself to make more mistakes. Bitch.
00:30 FurnaceBoy_ is now known as quaintlittlefoll
00:30 quaintlittlefoll is now known as quaintfoller
00:32 quaintfoller is now known as QuaintBoy
00:34 QuaintBoy you shouldn't have listened
00:35 KingDillyDilly And I type mostly with two fingers not anyway. And faster than then.
00:38 meppl gute nacht
00:38 svnbot6 r10081 | particle++ | test junctions in boolean context
00:38 * audreyt goes back fixing the parser breakage
00:47 flounder99 joined perl6
00:56 flounder99 joined perl6
00:58 clkao audreyt: are the capture stuff implemented?
00:58 audreyt clkao: nope, that's the next thing todo after fixing parser
00:58 audreyt was thinking maybe Data::Bind can be the 0th implementation
00:58 clkao *nod*
00:58 KingDillyDilly left perl6
00:59 clkao i am thinking maybe i'd create capture templates in compile time, and feed in those which are not static arguments
00:59 clkao that also allows can-bind check
01:00 audreyt that makes a lot of sense
01:00 clkao but i am ill today so i might be talking bollocks
01:00 audreyt aww
01:00 audreyt caught cold?
01:00 clkao no. stomach. but feel better after applying @garlic
01:01 clkao does what i am thinking apply to non-perl5 backend?
01:01 frederico joined perl6
01:03 audreyt define "static"
01:03 clkao 1, 'colour'
01:03 clkao constants
01:04 audreyt oh ok
01:07 audreyt at runtime, the capture looks like
01:07 audreyt data Capture = MkCapture { inv   :: Maybe Val , args  :: Seq Args }
01:07 audreyt data Args = MkArgs { pos   :: Seq Val , nam   :: Map Str Val }
01:09 audreyt at compile time, because we allow f(1, 2, 3, *$x), the "args" form has to be
01:09 audreyt Seq (Args, Maybe Exp)
01:09 audreyt that is, each sequence potentially have an unevaluated "$x" which we don't know yet whether will be expanded to named or positionals
01:10 clkao right. but we know in compile time if such $x is going to happen for this capture
01:10 audreyt yes, hence the Maybe
01:11 audreyt if it's Nothing, then it's trivially a constant capture
01:11 audreyt or at least known-slots capture
01:11 * clkao . o O (Module::Compile::PPI)
01:11 audreyt see /topic
01:11 clkao *nod*
01:11 clkao is there already ppi-based module::compile yet?
01:12 audreyt no, I think Module::Compile::Squish is attractive
01:13 audreyt or rather, Module::Optimize::Squish
01:13 audreyt (ingy has been talking about semantically-nonaltering M::C be under M::O namespace)
01:13 amnesiac joined perl6
01:13 audreyt (functionally it'sthe same)
01:13 clkao mm.
01:13 clkao i think i need something like that before i can play more with data::bind
01:13 clkao it's just too annoying to type the verbose capture
01:14 audreyt what's stopping you from using att handlr?
01:14 clkao [\1, \3], { foo => \"bar" }
01:14 clkao signature is fine
01:14 clkao it's the invoking bit
01:14 audreyt ah ok
01:15 audreyt well, for constants you can omit the \
01:15 audreyt if you do anotther line of checking
01:15 audreyt and for lvalues you can use helpers, probably
01:15 audreyt posi($x, $y, $z)
01:16 audreyt where posi has signature of
01:16 audreyt sub posi (;\$\$\$\$\$\$)
01:16 audreyt but I agree a Perl6::Bind -like srcfilt is a must
01:16 audreyt what about just take Perl6::Bind and let it use Filter::Simple::Compile?
01:17 svnbot6 r10082 | lwall++ | Assignment test tweaks due to design rot.
01:17 svnbot6 r10081 | particle++ | test junctions in boolean context
01:18 clkao i shall investigate
01:19 buu I want a sane formatting engine =[
01:23 particle_ interesting that a later commit is reported earlier by svnbot6
01:24 particle_ i guess larry gets top billing :)
01:24 TimToady various things rise to the top.
01:24 * QuaintBoy chuckles
01:24 particle_ lol
01:35 Quell joined perl6
01:46 audreyt mm, pugs is rejected by google SoC
01:46 buu =[
01:46 audreyt but haskell.org is accepted
01:46 buu Why?
01:46 jsiracusa I think I just heard Larry refer to audreyt as "he" in the Israel(?) perl presentation thing
01:46 audreyt buu: there's no reason cited
01:46 buu Bummer.
01:46 audreyt jsiracusa: yeah, at 1st day :) he changed the pronoun on the 2nd
01:46 jsiracusa it's hard!
01:47 audreyt I understand
01:47 audreyt took me ten years :)
01:47 jsiracusa and he's only known you for a short time
01:47 jsiracusa my friend I'v eknown since 4th grade is now a she
01:47 jsiracusa and damned if I can't keep myself from saying "he"
01:47 jsiracusa anyway, it wa sa nice talk.  too short tho
01:47 TimToady jsiracusa: yes, I'm confused on gender issues.  :)
01:48 jsiracusa that's one linguistic thing I'm glad hasn't made it to Perl yet
01:48 jsiracusa "No no, hashes are feminine!"
01:48 TimToady now there's an idea...
01:48 TimToady self.primp;
01:49 particle_ if you want gender, use latin, not perl
01:49 jsiracusa I was thinking more like né vs neé where operators needs to be spelled slightly differently depending on the gender of the operand(s)
01:50 jsiracusa if you build it, Damian will write the grammar module
01:50 QuaintBoy heh, and don't forget singular/plural
01:50 particle_ we already have that, it's called context :)
01:50 particle_ ~ vs +
01:50 TimToady hashes are very relational...
01:51 jsiracusa we coudl go all Ruby on Rails and demand that array and hash names be plural
01:51 jsiracusa @apple; # syntax error!
01:52 particle_ sure, now internationalize that rule :)
01:52 jsiracusa the date on that talk was feburay, it seems
01:52 jsiracusa so I imagine a lot has changed since then
01:53 TimToady in indoeuropean languages, the abstract things are feminine.  I guess that means we usually capitalize feminine nouns in Perl 6...
01:53 TimToady seems properly respectful, and antipatriarchal...
01:54 TimToady oh, wait...
01:55 * particle_ thinks @Larry is a good example
01:56 audreyt "numbers are from mars, strings from venus"
01:57 TimToady must...resist...that...straight...line...
01:58 jsiracusa objects are from uranus?
01:58 audreyt vegans are from vega?
02:00 jsiracusa better hurry up...
02:00 jsiracusa http://www.acm.org/crossroads/xrds7-5/bison.html
02:00 * particle_ sings, "the sun is a mass of incandencent gas..."
02:02 audreyt TimToady: in perl5
02:02 audreyt 1x4
02:02 audreyt is legal
02:02 audreyt following a strict reading of <ws> makes it illegal in p6
02:02 audreyt (currently pugs has it legal)
02:03 jsiracusa well, consider 0x4
02:03 audreyt 0x is longer token
02:03 TimToady "a great big nuclear furnace..."
02:03 audreyt so that's safe
02:04 jsiracusa still seems odd
02:04 QuaintBoy is now known as FurnaceBoy
02:05 TimToady I think it's probably okay to illegalify that.
02:06 audreyt k
02:06 YetAnotherEric could pugs be under TPF for SoC?
02:07 audreyt YetAnotherEric: sure, last year we have brentdax's perl6-wiki
02:07 audreyt Kontent
02:07 FurnaceBoy "and that's the fastest speed there is..."
02:07 audreyt though it builds on pugs rather than become part of pugs, it has proved very useful
02:11 audreyt TimToady: is symbolic prefix followed by postcircum paren the same as function call? i.e. +(3, :by(4))
02:11 audreyt is it operating on a Seq or on a normal arglist Capture?
02:13 TimToady looks more like a function to me, I guess.
02:13 audreyt good
02:13 * audreyt kills another special case
02:13 TimToady but + (3, :by(4)) would be the other thing.
02:13 audreyt sure.
02:13 audreyt but so would be
02:13 audreyt int (3, :by(4))
02:14 buu So are you saying it's now possible to write lisp natively in perl?
02:14 audreyt it's been possible since perl5...
02:14 buu eval: (+ 4, 5)
02:14 p5evalbot buu:  Return:  5
02:14 buu er
02:14 buu Well, ok, it doesn't error but it doesn't work either.
02:14 buu ?eval (+ 4, 5)
02:14 evalbot_10080 is now known as evalbot_10082
02:14 evalbot_10082 Can't exec "./pugs": No such file or directory at examples/network/evalbot//evalhelper.p5 line 46.
02:14 buu grah
02:15 audreyt two evalbots are running
02:15 audreyt and overridding each other's flags
02:15 audreyt I've killed one. a sec
02:15 buu Weird
02:15 audreyt but to answer your question,
02:15 audreyt this is about +(4,5)
02:16 audreyt not (+ 4 5)
02:16 buu So that won't work?
02:16 audreyt not without a sufficiently redefined macro for circumfix ()
02:16 audreyt ?eval 1
02:16 buu But in perl, foo(4,5) is almost the same as (foo 4,5)
02:16 evalbot_10082 1
02:16 buu So logically..
02:16 buu ?eval (+1)
02:16 evalbot_10082 1
02:17 audreyt er no, it's the same only if foo is listop
02:17 audreyt by default it's syntax error , perl5
02:17 audreyt eval: (foo 4, 5)
02:17 p5evalbot audreyt: Error: syntax error at (eval 111) line 1, near "foo 4"   Number found where operator expected at (eval 111) line 1, near "foo 4"  (Do you need to predeclare foo?)
02:17 buu audreyt: You missed the comma..
02:17 buu Er, wait
02:17 audreyt what comma? :)
02:18 buu Never mind. That is an interesting error..
02:18 buu eval: sub foo { } (foo 4,5)
02:18 p5evalbot buu: Return:
02:18 buu It's just tellin you foo isn't found, at least in p5..
02:19 audreyt eval: (int 4, 5)
02:19 p5evalbot audreyt: Return: 5
02:19 audreyt in any case... by default, (foo 4,5) is a listop in perl6, so would work as well
02:20 audreyt but (foo 4 5) not
02:20 buu audreyt: So what about + 4, 5?
02:20 audreyt + is defined to take one arg
02:20 buu Er, it is?
02:20 audreyt eval: sub foo ($) {} (foo 4, 5)
02:20 p5evalbot audreyt: Return: 5
02:20 buu Then how does +(4,5) work?
02:20 avar evalbot_10082: sub { "hello, world"  } ()
02:20 avar arg
02:21 audreyt buu: I imagine it will indeed fail
02:21 buu audreyt: I see. What is this :by(4) bit then?
02:21 audreyt it's a named argument that + may not handle either
02:21 audreyt but .. would handle it
02:21 buu I see.
02:21 audreyt 1..10:by(2)
02:21 avar is sub { "x" } () and &{ sub { "x" } } () the same as in p5?
02:22 avar eval: sub { "hello, world"  } ()
02:22 p5evalbot avar:  Error: syntax error at (eval 111) line 1, near "} ("
02:22 avar eval: &{sub { "hello, world"  }} ()
02:22 p5evalbot avar: Return: hello, world
02:22 audreyt avar: the first form works (but you'll have to appent the () closer to the })
02:22 audreyt the second form doesn't work, as there's no reference anymore...
02:23 avar eval: &{ sub { "x" } } ()
02:23 p5evalbot avar: Return: x
02:23 avar audreyt: it does work..
02:23 avar or do I misunderstand?
02:23 audreyt avar: sorry, was talking about p6
02:24 audreyt ?eval ->{3}()
02:24 avar arg, I thought that was the p6 evalbot
02:24 audreyt ?eval &{->{3}}()
02:24 evalbot_10082 3
02:24 evalbot_10082 3
02:24 audreyt the latter is a bug :)
02:25 avar ?eval &{ ->{"spoo"}} ()
02:25 evalbot_10082 "spoo"
02:25 avar ?eval &{ ->{"spoo"} } ()
02:25 evalbot_10082 "spoo"
02:26 avar ?eval &{ ->{ q{spoo} } } ()
02:26 evalbot_10082 "spoo"
02:26 avar I like this bug;)
02:26 audreyt yeah, too bad it's going away :)
02:26 audreyt (it was written before the tokyo refactoring that made &() a normal prefix and dropped the &{...} special form )
02:26 avar I say we hold street riots in protest.
02:27 avar ah, so it's just &( ->{ q{spoo} } ) ?
02:27 audreyt I wonder why you'd want to write &{} to mean noop
02:27 audreyt no, it's just
02:27 audreyt ->{q{spoo}}
02:27 audreyt there is no need for &{} anywhere anymore...
02:28 avar Yes, but the thing is not the dereference, but the "()", whether you can create a subroutine on-the-fly *and* provide an argument list to it
02:28 buu Of course..
02:28 avar ?eval &{ ->{ shift @_ } } ("boo")
02:29 evalbot_10082 Error: Undeclared variable: "@_"
02:29 avar mm
02:29 audreyt let me finish the parser unbreakage first..
02:29 avar audreyt: I'm wondering if it's specced to do that..
02:31 nirgle joined perl6
02:32 audreyt avar: the @_? it is
02:32 audreyt only subroutines take *@_ upon omission of param list
02:33 reZo joined perl6
02:33 avar left perl6
02:33 avar joined perl6
02:33 avar argh
02:35 avar audreyt: No I mean whether ->{ shift @_ } ("boo") did the same thing as sub something { shift @_ }; something("boo");
02:40 shachaf joined perl6
02:50 mako132_ joined perl6
02:55 audreyt avar: right, and the answer is now you'd have to say
02:55 audreyt ->*@_{ @_ }
02:55 audreyt however, I imagine
02:55 audreyt sub{@_}
02:55 audreyt still works
02:57 buu Oh my god.
02:57 buu I swear perl6 is a practical joke to get emoticons to compile.
02:57 audreyt I agree with that feeling.
02:57 FurnaceBoy it's called the eternal April 1
02:57 SamWise_ joined perl6
02:57 audreyt emoticons are pretty powerful, though. A_AY
02:58 particle_ and you thought perl5 looked like line noise...
03:01 FurnaceBoy cheap shots...
03:04 weinig is now known as weinig|sleep
03:08 FurnaceBoy_ joined perl6
03:10 justatheory joined perl6
03:20 justatheory joined perl6
03:21 FurnaceBoy_ is now known as FurlessBoy
03:30 jfoutz joined perl6
03:44 reZo is now known as phpError
03:53 KingDiamond joined perl6
04:27 jfoutz left perl6
04:37 ZaphodBeeblebrox joined perl6
04:44 avar joined perl6
04:50 avar joined perl6
04:54 q[uri] joined perl6
05:12 Aankhen`` joined perl6
05:13 gaal fe
05:13 audreyt yo
05:14 audreyt I think I repaired parser
05:14 audreyt will check in in a bit
05:14 audreyt but a general Rules->Parsec translation would be very useful
05:14 gaal whee
05:14 audreyt and I can use some brain tennis :)
05:15 gaal what are you doing in 24 hours? :(
05:15 audreyt for the next 11 hrs, hack on pugs
05:15 audreyt then, sleep
05:15 audreyt then... probably okay to hack more, I think
05:17 gaal i'm off to $work now.. will pop by if i get a chance
05:20 audreyt k
05:21 YetAnotherEric audreyt, did you have an "ideas" page when you applied to be a SoC mentor org?
05:22 audreyt no... just general items
05:22 audreyt * Bridge with underlying native objects in each of our runtimes
05:22 audreyt * Improved reference implementations for Perl 6 subsystems
05:23 audreyt * Porting compiler parts to Perl 6 for self-hosting
05:23 audreyt * Documentation for Perl 6 and Pugs
05:23 audreyt that's it
05:23 * YetAnotherEric is going to try pitching them vectorsection http://scratchcomputing.com/projects/vectorsection/wishlist.html
05:25 YetAnotherEric their mentor page sounds like they really want a pool of ideas
05:25 YetAnotherEric but if pugs isn't "active and viable", I don't know what is :-(
05:28 obra YetAnotherEric: too late
05:28 obra they're closed for this year
05:28 obra and they ran over budget on projects
05:31 YetAnotherEric eek!
05:33 audreyt mm bazaar and monotone made the cut
05:33 YetAnotherEric did they move the deadline yesterday?
05:34 YetAnotherEric I was certain I looked at that yesterday and it said I had at least until the weekend
05:35 YetAnotherEric ah well, every project needs a good wishlist
05:36 obra audreyt: they applied early
05:36 obra Looks like almost no projects were added after friday
05:36 obra YetAnotherEric: that page hadn't been updated since thursday
05:38 YetAnotherEric do'h! it's a flaw in their html
05:38 YetAnotherEric must have submitted...by 08:00 Pacific Daylight Time May 1, 2006:
05:39 * YetAnotherEric kicks konqueror and self
05:47 audreyt firefox displays it the same too
05:53 Quell joined perl6
05:57 nirgle left perl6
06:18 f0rth joined perl6
06:23 ghenry joined perl6
06:50 marmic joined perl6
06:51 iblechbot joined perl6
07:02 autark joined perl6
07:10 Frances joined perl6
07:26 svnbot6 r10083 | audreyt++ | * Parser.hs refactoring into Rule engine, step #1:
07:26 svnbot6 r10083 | audreyt++ |     - rulePrevClass field userstate to carry whether the
07:26 svnbot6 r10083 | audreyt++ |       previous character is \w, <ws>, or something else.
07:26 svnbot6 r10083 | audreyt++ |       This is needed to support <ws> and \b assertions.
07:26 svnbot6 r10083 | audreyt++ |     - Pure functions moved out to Parser/Util.hs.
07:26 svnbot6 r10083 | audreyt++ |     - Literals moved out to Parser/Literals.hs.
07:26 svnbot6 r10083 | audreyt++ |     - Pugs.Rule: hide the "token" primitive from parsec
07:26 svnbot6 r10083 | audreyt++ |       because we'll defined "rule", "token" and "regex" forms
07:26 svnbot6 r10083 | audreyt++ |       ourselves shortly.
07:34 arcady is Parser.hs one of those horrible files that takes half an hour and half a gig of memory to compile?
07:34 arcady because refactoring that is really a wonderful idea
07:36 elmex joined perl6
07:39 audreyt yes.
07:39 audreyt and yes.
07:40 audreyt AST.Internals and Parser.hs must die
07:40 audreyt I mean, diet
07:42 beppu I'm checking out http://svn.openfoundry.org/pugs/ via svn right now, and I'm wondering if you tag releases (because I don't see the usual tags and branches directories).
07:43 audreyt I stopped tagging around 6.2.0.
07:43 audreyt http://svn.perl.org/perl6/pugs/tags/
07:43 audreyt please use CPAN to see release tags
07:44 audreyt tarballs, I mean
07:44 beppu is svn.perl.org official or is svn.openfoundry.org where I should be checking out from?
07:44 r0nny joined perl6
07:44 dakkar joined perl6
07:44 audreyt svn.perl.org is mirrored fro openfoundry
07:44 audreyt committers use openfoundry
07:44 beppu ok
07:44 audreyt noncommitters can use either
07:44 beppu cool, thanks.
07:45 scw audreyt: Hi, I'm totally out of date with pugs.  However, what do you think I can do to restart hacking it?
07:47 audreyt scw: oh, hi
07:47 audreyt scw: have you worked with Parser.hs before?
07:48 scw audreyt: Yes, I think.  I've added some parsing rules, e.g. :key(val)
07:48 KingDiamond joined perl6
07:48 audreyt right, you also added ??!!, if I'm not mistaken
07:49 scw audreyt: I think I wrote an analysis but you added it :)
07:49 audreyt I just copied the spec :)
07:50 audreyt ok, then I can very much use your help
07:50 scw audreyt: so you are now refactoring Parser.hs and try to remove it?
07:50 audreyt yes, trying to port all of it into Rules syntax
07:51 scw Hmm, perl6 rule?
07:51 audreyt yeah. basically, Parser.hs was hard to debug
07:52 audreyt because each function did not keep track how/where it matched things
07:52 audreyt so I'm adding this capability right now
07:52 audreyt take a look at src/Pugs/Parser/Literal.hs
07:53 scw ouch, where's my svn repo?
07:53 audreyt check it out again from http://svn.openfoundry.org/pugs/ ?
07:54 scw maybe ...
07:54 scw I haven't worked on it in the pass whole year..
07:55 scw ok, I've opened Literal.hs
07:59 audreyt ok
08:00 audreyt the idea is that yadaLiteral will look like
08:00 audreyt RULE( yadaLiteral {
08:01 audreyt    $<sym> := [ <'...'> | <'???'> | <'!!!'> ]
08:01 audreyt    { return App(
08:01 audreyt        Var( doYada( $<sym> ) ),
08:01 audreyt        Nothing,
08:01 audreyt        [ Val( VStr( $<sym> ~ ' - not yet implemented') ) ]
08:01 audreyt      )
08:01 audreyt    }
08:01 audreyt } )
08:01 scw totally the same as written in Haskell :)
08:01 audreyt right, in fact I'm probing ways for machine translation :)
08:02 scw So, we are now doing such things to *every* thing in Parser.hs ?
08:02 audreyt incrementally
08:02 audreyt starting from Literals
08:02 audreyt and see how (and if) it works
08:03 scw how much have you done?
08:05 audreyt I'm still working on the parsec support part
08:05 audreyt so, we can currently parse that rule above already
08:06 audreyt but the mini-language inside production rules
08:06 audreyt "{}"
08:06 audreyt the { return ... } part
08:06 audreyt we need to write a minimal parser for that
08:07 audreyt if you prefer perl5, look at perl5/Pugs-Compiler-Rule
08:08 Aragone is now known as Arathorn
08:08 audreyt as well as misc/pX/Common/Pugs-Compiler-Precedence/
08:08 kane__ joined perl6
08:10 scw audreyt: perl5/Pugs-Compiler-Rule is a parser for perl6 rule to what?
08:10 audreyt scw: to Perl 5 data structure and emit back to Perl 5 code
08:10 audreyt it's a rules runtime in Perl 5
08:10 audreyt see tests
08:10 audreyt that's the stable version; dev version is under misc/pX/Common/Pugs-Compiler-Rule/
08:12 scw ok, they place the parsed rule in memory
08:12 audreyt yup
08:12 GeJ win 4
08:13 GeJ my bad... sorry...
08:13 audreyt the plan is to take that structure and instead of codegen to perl5, codegen to haskell
08:13 audreyt but currently we are missing the shared-common-language part in {...} productino closures
08:13 scw perl 6 rule --(perl5)--> Haskell --(ghc)--> binary ?
08:14 audreyt yup.
08:14 audreyt though it can then bootstrap
08:14 scw but the statements in the rules ({ ... }) is in perl6
08:14 audreyt right, so we don't use full perl6
08:15 scw just a small part which we can translate to Haskell by perl 5 ?
08:15 audreyt yes.
08:15 scw quite a .... clever way :p
08:16 audreyt hopefully not ironic :)
08:16 scw of course not :)
08:17 scw I was just thinking how will you get over the language gap
08:17 audreyt ok, so.
08:17 audreyt Var: $<name> $0
08:17 audreyt Call: Foo( exp, exp... )
08:17 audreyt      Bar
08:17 audreyt Infix: ~ +
08:17 audreyt Lit: [exp, exp]
08:17 audreyt     (exp, exp)
08:17 audreyt     123
08:17 audreyt     'string'
08:17 audreyt that's all
08:18 audreyt actually, you can remove the (exp, exp) part, it's not used yet
08:18 audreyt and distinguish between 'c' and "string"
08:18 scw that's all we can use in the production closure
08:18 audreyt I think that's all there is
08:18 audreyt probably not the final form
08:18 audreyt but good enough for literal productions for now
08:18 audreyt can extend over time
08:18 scw ya
08:19 scw most things should be able to be move to outer functions
08:19 audreyt exactly.
08:19 scw that's what gcc folks are doing
08:19 scw they think there are too many c codes in the .y files :Q
08:20 audreyt so, your task, should you choose to accept it, is to use whatever the most expedient way to produce a parser for such a language, and emit Haskell code for it
08:20 scw in perl 5, but using three languages at once :D
08:20 audreyt :D
08:21 scw so what I could do is adding a backend for Pugs::Compiler::Rule
08:21 scw which targets on Haskell
08:21 audreyt yes.
08:22 audreyt you can assume the standard parsec combinators
08:22 audreyt plus any assertions that you may need, I'll add to parsec
08:22 audreyt (like \b and $ and ^)
08:22 audreyt also, don't worry about backtracking
08:22 audreyt because TimToady (that's larry wall here) recently ruled that "rules" never backtrack.
08:22 scw just like what I did when adding now language construction parsing rules
08:23 audreyt so we are back to LL() family with a few nonlinear zero-width assertions
08:23 audreyt yup
08:23 scw so, rules act more like Parsec than regex?
08:24 scw that'll make the translation easier, then
08:24 audreyt indeed
08:24 audreyt also rules can now return objects
08:24 audreyt so that's the production part
08:25 scw built-in yacc!
08:25 audreyt rule foo {
08:25 audreyt  | moose { return Moose(...) }
08:25 audreyt  | elk (blah) { return Blah(...) }
08:25 audreyt }
08:25 audreyt etc
08:25 audreyt (the prefix-noop | is now legal)
08:26 scw the "elk" and "blah" are contest?
08:26 audreyt elk is literal
08:26 audreyt (blah) is capture (positional)
08:26 scw I saw the prefix-noop | on mailling list
08:26 audreyt so you can refer to it with
08:26 audreyt { return Blah($-1) }  etc
08:27 audreyt so, if you are going to commit into Pugs::Compiler::Rule or write a new Pugs::Grammar::MiniPerl6
08:27 scw so, elkblah will match the second rule and $-1 eq 'blah' ?
08:27 audreyt please use the misc/pX/Common space for now
08:27 scw A seperated module I think
08:27 audreyt and we'll move to perl5/ once it stabilizes
08:27 audreyt sure
08:28 audreyt "elkblah" will _not_ match foo
08:28 audreyt because "rule" is by default <ws> separated
08:28 scw the document Pugs::Compiler::Rule stated that it is just a front end
08:28 audreyt between non-closure productions
08:28 audreyt so "elk blah" will match
08:28 scw oh ya, so "elk\tblah" will match?
08:28 audreyt yup
08:28 audreyt to turn off the autotranslation from whitespace to <ws>
08:28 audreyt use the "token foo" form
08:28 audreyt which also does not backtrack
08:29 audreyt in your emitter you can assume <ws> is always on
08:29 audreyt for now
08:29 audreyt we can deal with the "token"case later
08:29 scw I will ignore that part first
08:29 audreyt cool
08:31 * scw mkdir misc/pX/Common/Pugs-Compiler-MiniPerl6
08:33 audreyt scw++
08:34 pdcawley joined perl6
08:34 audreyt once that's done, we just need Pugs::Emitter::Rule::Parsec
08:34 audreyt and then pX can share all grammars with Pugs/Parser.hs
08:35 audreyt the miniperl6 parser spec can be ported into parrot as well -- and then all three implementations can share not only the grammar but also the production
08:36 audreyt meanwhile I'll make sure that Parsec can support everything the rules part throws at it :)
08:37 audreyt (and think about somewhat automated translation using Language.Haskell.Syntax introspection)
08:39 * audreyt finds the acm digital library very useful for brainstorming
08:40 spinclad o-tori-tan: i think i can start to cash in some of my accumulated tuits... i'd like to join in.
08:41 audreyt wow :)
08:41 spinclad i've got some reading knowledge of haskell now, but haven't dived into Pugs itself much yet...
08:42 audreyt cool... how's your C-fu? :)
08:42 spinclad is there another piece that breaks off easily?   C-fu: done a fair bunch in past lives
08:43 spinclad also scheme
08:44 spinclad perl5, and been following perl6 fairly closely the last year-and-a-half
08:45 audreyt *nod* there are several parallelizable parts that's all related to the share-a-common-grammar goal...
08:46 audreyt one is porting this
08:46 audreyt https://svn.perl.org/parrot/branches/pge-pm/compilers/pge/PGE/OPTable.pir
08:46 audreyt to C
08:46 audreyt because that's the layer where speed matters most
08:47 audreyt and is also stable enough now
08:47 spinclad right, i remember you starting to work on that lately
08:47 audreyt you can find a skeleton in src/rules/optable.[ch] that defines the data structures
08:48 audreyt but the code uses Judy, which triggers a week-only licensing, er, discussion
08:48 audreyt but now Judy is okay if we place it under third-party/
08:48 lypie joined perl6
08:48 audreyt so work on it can begin again (or if you are not happy with Judy, a simple hash table may do as well)
08:49 audreyt test suite is https://svn.perl.org/parrot/branches/pge-pm/t/compilers/pge/03-optable.t
08:49 svnbot6 r10084 | Darren_Duncan++ | ext/Relation/ : renamed the Relation class attributes to 'heading' and 'body', other pod fixes
08:49 audreyt should be somewhat bite-sized
08:50 audreyt my C-fu is extremely weak (I don't know C really, but I know some XS)
08:50 audreyt so someone who actually know how to write C is welcome :)
08:50 lypie audreyt: no response from the ghc osx port maintainer unfortunately :(
08:50 audreyt (and you can ignore all the callbacks and just focus on the static parts)
08:51 spinclad glad to take a look.  first i'll read up on Judy and your code, and come back with questions
08:51 Grrrr please don't remove Judy, it's way too cool to be ignored
08:51 audreyt ok. let me finish checking in my last edits
08:52 audreyt Grrrr: we're not ignoring it :)
08:52 audreyt rather, took me quite some time to make sure we can 1)check it into the repo and 2)not get sued
08:53 drrho joined perl6
08:54 Grrrr Although, I think some time ago someone tried Judy with parrot, and Leo said it had leaks, but I am unsure what ever has come out of that
09:02 audreyt yeah, it was in2003
09:02 svnbot6 r10085 | audreyt++ | * optable - checkin whatever left in my local branch
09:03 audreyt Elizabeth did the initial testing
09:03 audreyt but the leakage may not be coming from judy
09:03 audreyt also, the JudyHS I plan to use
09:03 audreyt is new in2004
09:03 audreyt so, well,  :)
09:03 ewilhelm_ joined perl6
09:04 audreyt spinclad: feel free to shred those to pieces :)
09:07 spinclad_ joined perl6
09:11 spinclad joined perl6
09:12 spinclad left perl6
09:15 spinclad_ is now known as spinclad
09:16 spinclad [please pardon my sudden leaving, ISP trouble i guess]
09:17 meppl guten morgen
09:19 spinclad good &turningearth
09:19 meppl good morning spinclad
09:20 spinclad guten morgen auch dir
09:21 hugues23 joined perl6
09:29 spinclad to bed, tuit in morning &
09:30 audreyt spinclad++ # sweet dreams and sweeter tuits :)
09:34 spinclad [i've installed debian's libjudydebian1 and libjudy-dev, they may be good for my local work]
09:35 spinclad [lost in ISP hiccup:] 04:57:26 < spinclad> ok, thanks for getting me pointed.  i'll dig into it this afternoon
09:35 audreyt spinclad++
09:46 cdpruden joined perl6
09:50 KingDiamond joined perl6
09:55 qmole joined perl6
10:16 gaal the fresh null-| syntax makes these rules look a lot like haskell guards :)
10:30 audreyt true :)
10:32 gaal another realization today: you know how when writing perl5 oneliners with -p you can't skip a line wiht "next"
10:32 gaal because the print is in a continue block
10:32 gaal there's a workaround
10:32 gaal goto LINE
10:32 gaal (obscure perl5 knowledge)++
10:33 audreyt nice
10:33 lypie ooo
10:33 ingy hola
10:33 audreyt very nice
10:33 gaal I always used -n when I needed to possibly skip lines before, but I was rereading perlrun today... :)
10:34 gaal can sed do that?
10:34 gaal d or something probably
10:34 audreyt ooh, GHC 6.4.2 comes with modern Cabal
10:34 audreyt they should've done that with 6.4.1
10:35 Grrrr I tended to $_ = "" for line skip with -p
10:35 gaal uh, they had packaging oopeses with 6.4.2
10:35 audreyt that means the strange "ar" games and Syck unlinking is no longer neccessary
10:35 gaal I'm not sure if they plan on rolling a 6.4.3 or pretend they didn't happen
10:36 gaal accidentally put in precisely an old cabal
10:36 audreyt rofl!
10:36 audreyt but the tarball has 1.1.4
10:36 audreyt which is new
10:37 gaal then they must have time-machined the tarball
10:37 audreyt so maybe they silently updated the tarball
10:37 lypie ick
10:38 gaal frankly I don't envy their release process; a real preflight must take a day
10:40 audreyt maybe they have really good machines with n-way CPUs ;)
10:40 audreyt (where n is large)
10:41 gaal but does ghc parallelize compilation well already? I thought there was still work on getting that right
10:41 gaal but yeah, maybe this is why vista keeps running late
10:42 audreyt sure
10:42 audreyt it's very well known that they wrote vista to run on their machines a few years back
10:42 audreyt everybody is happy
10:42 audreyt months passed, then some day they realized on the avg people's PC it takes 15 minutes to boot
10:42 audreyt so they rewrote most of the UI code.
10:42 audreyt s/rewrote/rolled back/
10:43 theorbtwo The divide between normal and fast is getting larger.  Very much so in terms of video.
10:43 audreyt sometimes I think if I had a slower laptop, pugs may take an entirely different development path...
10:44 nnunley joined perl6
10:44 audreyt ...and maybe a better one
10:46 gaal perl -e '$pid = shift; while (kill 19, $pid) {sl(); kill 18, $pid; sl()} sub sl { sleep undef, undef, undef, 0.1 }' ghc_pid
10:47 gaal # pugs development path improver one-liner for audreyt
10:47 audreyt heh
10:47 audreyt after OSDC.il and seeing gaal's laptop
10:47 audreyt I am already sufficiently motivated
10:48 audreyt to refactor more and code-for-monolithic-featuresets less
10:48 gaal hey, we made good progress then; with some care I can actually 'make optimized' on that machine now.
10:49 audreyt yeah, but P.A.Internals and P.Parser are still painful
10:49 audreyt working on eliminating those now
10:49 audreyt gaal: so, you have tuits?
10:49 gaal not really :(
10:49 audreyt aw :/
10:50 gaal just blowing off some %stress{$work}
10:57 kane_ is now known as kane-xs
10:58 * dakkar is away: pranzo
11:00 kanru joined perl6
11:38 pdcawley joined perl6
11:38 stennie joined perl6
11:41 stennie joined perl6
11:50 xinming joined perl6
12:08 kolibrie joined perl6
12:13 KingDiamond joined perl6
12:18 Limbic_Region joined perl6
12:19 wilx joined perl6
12:27 xinming joined perl6
12:29 * dakkar is back (gone 01:30:46)
12:41 weinig|sleep is now known as weinig
12:51 flounder99 joined perl6
12:54 lisppaste3 joined perl6
12:56 gaal Is there a way to type a function in Haskell that takes e.g. Just Just Just Just Just Just 42 and yields 42? And have it work on arbitrarily deep Maybes? I can't think of a way to type this.
12:58 * gaal takes it to #haskell...
12:58 scw finally make Pugs::Compiler::Rule emit correct p5 code for matching 'rule foo{ moose { return 23 } }'
12:59 scw gaal: look like what a monad does
13:00 gaal scw: unJust :: (Monad m) => m a -> a isn't right either
13:00 gaal er, I mean instead of Maybe a -> a
13:01 scw gaal: no, I made a mistake
13:02 iblechbot joined perl6
13:06 mako132_ joined perl6
13:09 xinming gaal: mplus ?
13:10 lypie left perl6
13:16 Qiang joined perl6
13:18 gaal xinming: I was, in fact, looking at catMaybes and a more polymorphic version of it when I started thinking about it.. but I don't see how mplus helps with giving this function a type...
13:19 gaal also, Just x `mplus` _ = Just x
13:20 gaal so this doesn't unwrap even one step (like fromJust would)
13:21 * xinming is also a newbie on haskell. :-)
13:25 fglock joined perl6
13:28 macroron joined perl6
13:31 multic joined perl6
13:31 fglock TimToady: re lazy list tests printing three elements: that was my fault - dumping the generators actually makes more sense
13:32 cdpruden joined perl6
13:32 Arathorn so are pugs & lrep racing each other to get a rules-implementation of the perl6 grammar running?
13:33 fglock those tests only run on the pugs perl5 backend
13:33 fglock Arathorn: pugs, lrep and PGE are actually trying to develop it together :)
13:37 nnunley They're trying to surround the problem, and flush it out.
13:38 * particle_ makes a perl6 call from the bushes
13:38 nnunley Just don't shoot any random bystanders.
13:39 particle_ if i do, i expect the victim to make a full apology
13:40 fglock it's a moving target, you know
13:40 * Arathorn nods :)
13:40 particle_ is now known as DickCheney
13:40 nnunley Of course, it also would be that there's someone in the bushes holding a perl6 to release.
13:40 Arathorn if you surround it, the chances of managing to hit someone on the opposite side is fairly high, i'd have thought...
13:41 jserv-- joined perl6
13:41 fglock each time we surround a part of it, that part starts moving faster
13:42 DickCheney is now known as particle_
13:43 * particle_ likens it to playing with magnets
13:44 fglock http://en.wikipedia.org/wiki/Surprise_factor
13:45 fglock that's the fun of it
13:46 aeon_ joined perl6
13:47 ghenry joined perl6
13:51 audreyt fglock: yo
13:51 audreyt fglock: thoughts on adapting P::C::Prec to accept PGE's _tok format?
13:51 audreyt I think it makes better external documentation
13:51 audreyt I mean http://svn.perl.org/parrot/trunk/languages/perl6/lib/grammar_optok.pge
13:52 particle_ let me know if you see any missing ops in that file
13:53 particle_ or anything else funny
13:53 audreyt yes I see missing ops in that file :)
13:53 particle_ it's heavily undertested now
13:53 audreyt it's missingterm-level  $() @() *() %()
13:54 Limbic_Region joined perl6
13:55 audreyt "rand"/"sleep"/"abs" should be derived from source
13:55 particle_ those are postcircumfix, yes (the first list)
13:55 audreyt -e -r -w -x is also prefix unary nullterm
13:55 audreyt er, no, "$()" the three chars
13:55 audreyt is a special term that means "$($/)"
13:56 particle_ ah, ok
13:56 audreyt term level undef, undefine
13:56 audreyt same as "undefined": lc, lcfisrt, uc, ucfirst
13:56 audreyt not() and true()
13:57 audreyt etc
13:57 audreyt I think that table should only list symbolics
13:57 fglock audreyt: hi
13:57 audreyt the nameds needs to belong somewhere else, probably derived from S29
13:57 audreyt as the number is too large
13:57 audreyt and they are all under the same prec level
13:57 particle_ agreed
13:58 audreyt but -w -r -x -e -z -s -f -d
13:58 fglock it would be nice to have a perl5 version of PGE, instead of parse::Yapp - that would allow for easier sharing of ideas
13:58 audreyt are prefix nullterm and should be there
13:58 audreyt fglock: you mean optable?
13:58 audreyt the prec part
13:59 merlyn precedence is used only when deciding whether to reduce one way or the other on a reduce-reduce conflight
13:59 merlyn conflict
13:59 merlyn or at least, that's the way I remember it coming from YACC
13:59 fglock the precedence parser - Parse::Yapp needs to recompile each time you change the precedence table
13:59 merlyn you can make the recompile lazy though, right?
14:00 fglock not a big problem, since the lexer can classify many ops into a single P::Y token
14:00 fglock merlyn: sorry about the talk in Rio
14:01 merlyn well - perhaps I should have realized this from last time. :)
14:01 merlyn and from the problems with the social meeting the first time too
14:01 merlyn nobody told me where the social meeting was happening until after it had started. :)
14:01 audreyt fglock: I cache it in parsec too
14:01 merlyn and then they realized "hey, where's randal?"
14:01 audreyt fglock: but I think src/rules/optable.[ch] is the way we should share
14:02 audreyt fglock: spinclad says he'd look into it -- if you have C-fu or know someone who does
14:02 audreyt that'd be great
14:02 particle_ looks like it's missing unary =, too
14:02 audreyt pmichaud said he'd be happy to see a C-based shared version
14:02 audreyt as well
14:02 audreyt so that's three votes :)
14:03 audreyt merlyn: a precedence parser is neede in perl6 because perl6 allows you to
14:03 audreyt Introduce New Precedence Level With User-defined Functions(!)
14:03 audreyt with arbitrary fixity etc
14:03 justatheory joined perl6
14:03 audreyt so we can't use those offline parsing techniques
14:03 merlyn I recognize the need
14:03 audreyt at least not without modifications
14:04 audreyt it needs to resume itself after recompilation at the correct point
14:04 fglock I'm looking for SoC ideas - my current one is to finish implementing p6->p5, and then go back and refactor it
14:05 audreyt fglock: sure, TPF-as-mentor-organization should be able to recognize this value
14:06 audreyt fglock: another idea is a set of bulitin perl6 objects
14:06 audreyt implemented in pure perl5
14:06 audreyt you'd need that for runtime anyway...
14:06 fglock that's cool - much like the old p5 runtime
14:06 audreyt yes
14:06 audreyt but this time we have a much better idea
14:06 particle_ i don't see unary:= in the precedence section of S05
14:06 audreyt I can actually explain in detail how Lists work
14:07 audreyt and Arrays, etc
14:07 audreyt unlike the last time around where we have to do a lot of guessworks with references
14:07 audreyt (which is now dead. yay)
14:09 audreyt particle_: never mind that then... it's under review anyway
14:09 audreyt I prefer slurp($fh) and readline($fh) anyway :)
14:09 particle_ don't see -w -e etc either
14:09 audreyt that is ommission
14:12 particle_ which level are they? symbolic unary?
14:12 audreyt sure
14:12 audreyt I've added them
14:12 audreyt as well as unary =
14:12 audreyt to S03. thanks.
14:13 particle_ (matching docs & code)++
14:13 audreyt indeed!
14:13 audreyt (multiple implementation)++ # I've been using Pugs.Parser.Operator for too long
14:13 audreyt I forgot there is a table in S03 :p
14:17 fglock audreyt: just thinking aloud... , how about having each p6 object 'register' it's parsing rule somehow - such that when you implement Int you add a method/rule parse { \d+ {return ...} } and such
14:17 audreyt fglock: excellent idea
14:17 audreyt brilliant even
14:17 fglock '.parse' is the opposite of '.perl'
14:18 audreyt that means we can have alternate integers
14:18 audreyt but it cannot be .parse... it'd be dynamic
14:18 audreyt we need static info
14:18 szbalint fglock: I currently like the DBI to Perl6 one...
14:19 particle_ okay, added to parrot/perl6, too
14:19 audreyt class Int { macro term:<> is parsed(/-?\d+/) { P6AST::Lit::Int($/) } }
14:19 audreyt and then export that macro
14:20 audreyt and import it from GLOBAL
14:20 audreyt or from prelude
14:20 audreyt should do the job
14:20 audreyt makes some sense? (has to be macro-returning-ast)
14:20 audreyt otherwise you run into circularity
14:21 audreyt otoh, there can be a special sugar
14:21 audreyt class Int is parsed(/.../) { ... }
14:21 audreyt that means the same thing and fetch to a "new from parse" method
14:21 audreyt but that may be too convenient.
14:22 fglock 'term:' is a category - it can magically add the rule to %term (maybe)
14:24 pmichaud lastlog pmichaud 10
14:24 pmichaud oops
14:24 * pmichaud searches for a slash
14:25 audreyt /
14:25 audreyt fglock: (specced)
14:25 audreyt so, not maybe
14:25 fglock ok
14:27 multic left perl6
14:33 audreyt gaal: "make ghci" is about 3 times faster here
14:33 audreyt with GHC 6.4.2.
14:33 audreyt and "make pugs" about 40% faster
14:34 particle_ hey pm, did you see audrey's suggestion of a different op file for named ops?
14:35 audreyt pmichaud: there is a large number of named functions; those that happen to take 0 or 1 args ends up in the optable
14:36 audreyt pmichaud: I worry about optok being filled with 30+ such functions
14:36 audreyt where it should really be derived from the parrot-side function signature
14:36 audreyt also, user-defined "sub f ($x) {}" will go into unary slot as well
14:37 audreyt so the builtins should probably use the same reflection capability
14:38 * particle_ looks over S29
14:38 audreyt (since they translate to abs() calls, not prefix:<abs>() calls)
14:38 audreyt particle_: scrol lto the bottom of
14:38 audreyt http://svn.openfoundry.org/pugs/src/Pugs/Prim.hs
14:38 audreyt easier for your eyes :)
14:39 particle_ nice
14:39 pmichaud audreyt: I'm not too worried about optok being filled with functions, as long as it's not hundreds of them
14:40 fglock lunch &
14:40 audreyt currently Pugs.Prim has 333 functions
14:40 pmichaud 333 unary functions?
14:40 audreyt counting unary ones
14:40 audreyt the thing is that
14:40 particle_ pm: see audrey's link above
14:40 audreyt IO::print $x
14:40 audreyt is also unary
14:41 audreyt as is
14:41 pmichaud it's parsed as unary?
14:41 audreyt Object::clone $y
14:41 pmichaud i.e., if I do   $x = IO::print $x + 3,  does the + bind more or less tightly?
14:42 audreyt actually, it's arguably unspecced.
14:42 audreyt if it's hard, I guess we can just ignore :)
14:42 pmichaud I think that IO::print is a listop
14:42 pmichaud (I could be wrong there :-)
14:42 audreyt even if we know the signature statically?
14:43 pmichaud I remember this being discussed somewhere -- just a sec
14:43 audreyt I can live with that... that is consistent in its way
14:43 pmichaud that's why I was thinking of "named unary" as being special somehow
14:44 audreyt though I'm quite sure that if you define an unary or nullnary in scope
14:44 audreyt that also has to be parsed like that
14:44 audreyt perl5 does that, and TimToady confirmed it just this morning
14:44 audreyt as for Qualified::Name, I think listop is fine :)
14:46 pmichaud yes, I was hoping that Qualified::Name would remain listop :-)
14:46 audreyt I count 134 unary/nullary
14:46 pmichaud for the rest of the named unaries, I think we just put them in the opp and hope for the best :-)
14:46 audreyt 107 of which is named
14:47 audreyt not including cat() from TimToady, which is currently in a superposition in a box of schrodinger
14:47 pmichaud PGE's opp currently divides the optokens based on the first character, so it's not as though the search is large
14:48 audreyt so, if you'd like to put 107 entries there, I just wonder if it'd make maint harder (separated "proto" with implementation)
14:48 audreyt but sure, we can certainly just import from pugs :)
14:48 audreyt (but what about user-defined?)
14:48 pmichaud at some point I was expecting that the named unaries would actually come from the "sub" implementation
14:48 pmichaud i.e., not have a separate "proto"
14:48 audreyt yes, I think that's sane
14:48 audreyt (and it's what pugs does)
14:49 audreyt we used to special case the builtin ones
14:49 audreyt doesn't scale
14:49 pmichaud I don't see a problem with putting protos into *_optok.pge for now, but eventually I'd expect it to be part of the library
14:49 audreyt ok
14:49 audreyt particle_: feel free to import :)
14:50 audreyt the format should be quite parsable
14:50 chris2 joined perl6
14:50 pmichaud I really intended the protos in *_optok.pge to be for those things that don't parse like "normal subs", or that have special codegen requirements
14:50 audreyt indeed
14:51 audreyt which is why I suggeste as *_subproto.pge
14:51 audreyt or something
14:51 pmichaud ah
14:51 audreyt that holds these nameds
14:51 audreyt that will become part of the sub space
14:51 audreyt later
14:51 pmichaud excellent.  Let's do that.  But then let's not call them protos
14:51 pmichaud just put them in as  sub xyz { ... }
14:51 audreyt aye
14:51 pmichaud well,   sub prefix:xyz { ... }  for now
14:51 audreyt so you need to parse minimum
14:52 audreyt sub xyz ($) {...}
14:52 audreyt sub xyz () {...}
14:52 audreyt sub xyz ($?) { ... }
14:52 audreyt three forms
14:52 audreyt that is quite constrained
14:52 particle_ i'll commit grammar_sub.pge
14:52 audreyt k, that would be excellent
14:52 particle_ can this also be 'grammar Perl6::Grammar' ?
14:53 pmichaud particle_: yes
14:53 particle_ excellent
14:53 pmichaud atm it's the same optable
14:54 pmichaud I'll be glad when I can merge my pge branch back into the trunk :-|
14:54 svnbot6 r10086 | audreyt++ | * Making Parsec into a Rules engine, part #2.
14:54 svnbot6 r10086 | audreyt++ |   The CharParser primitives ("satisfy" and "string")
14:54 svnbot6 r10086 | audreyt++ |   are moved into Types.hs so they can tweak <ws> state
14:54 svnbot6 r10086 | audreyt++ |   in the parser.
14:55 particle_ do i care about return value?
14:55 svnbot6 r10087 | audreyt++ | * GHC 6.4.2 says we have redundant import.  Let me commit
14:55 svnbot6 r10087 | audreyt++ |   and see if it breaks 6.4.1 on feather...
14:55 audreyt particle_: it used to be that you do
14:55 particle_ i think not
14:55 audreyt but now you don't, for parsing
14:55 particle_ great. one less field to convert
14:55 audreyt (the slice context rule has changed -- I mean, is changing)
14:56 pmichaud right, for parsing we don't care at the moment -- in the longer term we'll deal with it when we need it
14:56 * particle_ wonders what *isn't* changing
14:56 audreyt it's not going to be called the Perl 6000 language.
14:56 particle_ some may call it PERL, though
14:56 audreyt or 6000000.
14:56 * pmichaud starts preparing his "Perl 6000" lightning talk :-)
14:57 audreyt though "Pugs 6283185" looks more impressive than "Python 3000"...
14:57 audreyt ...but that's missing a dot
14:58 clkao PERL6K
14:59 clkao sounds like a weapon
14:59 audreyt Ruby is already Babel-17
14:59 audreyt a brainwashing weapon
14:59 audreyt according to Takahashi-san
15:00 clkao we need Reason-42
15:00 particle_ Perl NP - Complete Fun Edition
15:00 gaal is that r6283185?
15:00 audreyt that will take another 627 years
15:00 audreyt so maybe not
15:01 nnunley clkao: Isn't that PERL6M?
15:01 clkao ;)
15:01 audreyt PERL6Mi
15:01 gaal PERL MMMMMM
15:01 particle_ ooooo, iPerl
15:01 clkao guys, leave the name to the marketing people. now get back to work!
15:01 audreyt I'm still waiting for iPAN
15:01 audreyt ok ok
15:01 * audreyt goes back hacking parsec
15:01 nnunley We have marketing people?
15:02 audreyt we used to have
15:02 particle_ i thought we only had project managers
15:02 * particle_ wants a ponie
15:02 audreyt our current project manager is known for handing out ponies.
15:03 particle_ i wonder how perl5-on-pugs would look
15:03 audreyt env PUGS_EMBED=perl5
15:03 particle_ that would have been a great april fool's
15:03 audreyt but that is an actual build option...
15:03 audreyt that lets you "use perl5:DBI;"
15:04 particle_ i know. the announcement, though.
15:04 audreyt oh. heh.
15:04 gaal and in fact has been working since last april, no?
15:04 audreyt gaal: yeah
15:04 audreyt except that it leaks
15:04 audreyt but yeah.
15:04 clkao iirc it was may already
15:04 audreyt so, Perl 6 once had Coporate Relation manager and Public Relation manager
15:05 audreyt but that was in 2001 :)
15:05 audreyt (dickh and bdfoy, respectively)
15:05 audreyt (this is from dconway's talk)
15:07 particle_ how should i refer to multi subs? eg atan($) and atan($$)
15:08 pmichaud particle:  my preference is for the *.pge file to look like it would look in perl
15:08 pmichaud so, multi sub atan ($) ...
15:11 audreyt s/multi sub/multi/
15:11 audreyt (always synonym)
15:11 pmichaud I don't think pgc recognizes plain "multi" at the moment, but that will be fixed soon
15:11 audreyt but there's no definition... and a multi without definition _is_ proto...
15:12 audreyt so I guess proto is still technically correct
15:12 audreyt more so than a multi
15:12 pmichaud oh yes
15:12 pmichaud go with proto then
15:12 audreyt (unless you are going to fill in inline pir there)
15:16 particle_ so, proto on the multi's and sub elsewhere? or should i just s/[sub|multi]/proto/g
15:16 particle_ eh, it can always be changed later
15:18 audreyt just proto for all
15:18 audreyt I think all toplevel is multi
15:18 audreyt that's specced, even, iirc.
15:18 particle_ done
15:18 audreyt woot.
15:18 particle_ i'll look it over before commit
15:23 lichtkind joined perl6
15:28 audreyt whew, finally implemented dynamic <ws>
15:28 audreyt was surprisingly hard without a seekable input stream!
15:30 particle_ hrmm, i see fail_ (?Object), this looks funny
15:32 audreyt please ignore
15:32 audreyt also ignore eval_*
15:32 particle_ ok
15:33 particle_ ignore Pugs::*
15:33 audreyt anything with _ in it is probably indicator of internalness
15:33 audreyt yeah, also ignored qualified
15:33 audreyt they don't affect parsing
15:33 particle_ k
15:33 ewilhelm_ is now known as YourNameHere
15:34 particle_ hrmm... there is only List::pop, tere is no pop. converting
15:35 particle_ same with truncate, round, floor, etc. i'll take care of those
15:35 audreyt oh
15:36 audreyt there is another source :)
15:36 audreyt src/perl6/Prelude.pm
15:36 audreyt grep for "is builtin"
15:36 audreyt to get that set of functions defined in perl6 itself
15:36 particle_ ...now she tells me ;)
15:37 audreyt sowwy :)
15:37 audreyt pugs> if %ENV{ 3 } { 4 }
15:37 audreyt undef
15:37 audreyt pugs> if %ENV { 3 } { 4 }
15:37 audreyt 4
15:37 audreyt whew. committing
15:38 clkao whitespace hurts my eyes
15:38 audreyt me too
15:38 audreyt at least it's consistent
15:38 PerlJam snowblindness?
15:38 audreyt I'll miss full backtracking
15:38 audreyt but well, that era is now past us ;)
15:39 particle_ :panic
15:40 audreyt ...which in the short term has 0 people signing up to implement..
15:40 vel joined perl6
15:43 beppu left perl6
15:43 pmichaud yes, I'm not in any rush to implement :panic
15:43 svnbot6 r10088 | audreyt++ | * Pugs: Implement <ws> for post-term, such that block-literal
15:43 svnbot6 r10088 | audreyt++ |   forms can be distinguished inside "if":
15:43 svnbot6 r10088 | audreyt++ |     pugs> if %ENV{ 3 } { 4 }
15:43 svnbot6 r10088 | audreyt++ |     undef
15:43 svnbot6 r10088 | audreyt++ |     pugs> if %ENV { 3 } { 4 }
15:43 pmichaud if someone needs to :panic, they can pay me for it :-)
15:43 svnbot6 r10088 | audreyt++ |     4
15:43 TimToady I believe that in P5 -e et al. are named unary precedence, not symbolic.
15:45 lichtkind ?eval $a=3; $b=5; if $a < 5 {$b++}  while $b < 12;
15:45 xinming if %ENV { 3 } { 4 }     <--- what does { 3 } do here?
15:45 evalbot_10082 Error:  unexpected ";" expecting "_", fraction, exponent, term postfix, comment, operator, ">>=:=<<", ">>===<<", ">>!=<<", ">>!~<<", ">><=<<", ">>==<<", ">>>=<<", ">>eq<<", ">>ge<<", ">>gt<<", ">>le<<", ">>lt<<", ">>ne<<", ">>~~<<", ">><<<", ">>><<", "\187=:=\171", "\187===\171", "\187!=\171", "\187!~\171", "\187<=\171", "\187==\171", "\187>=\171", "\187eq\171", "\187ge\171", "\187gt\171", "\187le\171", "\187lt\171", "\187ne\171", "\187~~\171", "=
15:47 dakkar xinming: it's the 'then' branch of the 'if'
15:48 dakkar no, wait... I'm confused
15:48 xinming there isn't the keyword else... :-/
15:49 dakkar that's why I'm confused ;-)
15:49 pmichaud in   if %ENV { 3 }    the  { 3 } is the "then" branch of the if, and the { 4 } is a syntax error
15:49 pmichaud sorry...
15:49 dakkar ?eval if %ENV { 3 } { 4 }
15:49 pmichaud in   if %ENV { 3 } { 4 }    the  { 3 } is the "then" branch of the if, and the { 4 } is a syntax error
15:49 evalbot_10082 4
15:49 lichtkind is if $a < 5 {$b++} while $b < 12; valid perl6 ?
15:49 dakkar pmichaud: "will be" a syntax error?
15:50 pmichaud dakkar: according to spec, not necessarily what pugs has now :-)
15:50 audreyt no, it's not syntax error
15:50 dakkar ?eval %ENV
15:50 audreyt it's just independent block
15:50 pmichaud it's not?
15:50 audreyt bare block after it
15:50 evalbot_10082 \undef
15:50 pmichaud I thought we had to have a semi there
15:50 pmichaud i.e.,  if %ENV { 3 } ; { 4 }
15:50 audreyt that's new
15:50 audreyt perl5 doesn't have that
15:50 audreyt and it's not specced as such...
15:51 audreyt I'm okay with requiring it
15:51 FurnaceBoy joined perl6
15:51 audreyt but I don't see spec text that defeins this
15:51 pmichaud I figure it's similar to
15:51 PerlJam pm: if the { 4 } is on the next line, it's a bare block still, right?
15:51 pmichaud Because subroutine declarations are expressions, not statements, this is now invalid:
15:51 pmichaud sub f { 3 } sub g { 3 }     # two terms occur in a row
15:51 pmichaud (from S04)
15:51 dakkar there used to be something like «if a closed-brace is the last thing in a line, it does not need a semicolon»
15:51 audreyt indeed, but statement_control are still statements
15:51 audreyt not expressions
15:52 audreyt and if is in s_c
15:52 audreyt I'm fine with requiring semis for s_c
15:52 audreyt or making if an expression
15:52 audreyt but the spec currently has neither
15:52 dakkar audreyt: not an expression, please... $a=if $b {1} else {2} ...
15:52 audreyt if 3 { 4 }   if 5 { 6 } # so it's currently legal
15:52 pmichaud audreyt: you're correct :-)
15:52 pmichaud I misread
15:52 audreyt cool :)
15:52 pmichaud the spec currently explicitly allows it
15:52 particle_ how will proto exp(<this>) look? $?$?
15:53 pmichaud (again from S04)
15:53 pmichaud Therefore
15:53 pmichaud if -e { say "exists" } { extra() }
15:53 pmichaud is always parsed as
15:53 pmichaud if (-e) { say "exists" }; { extra() }
15:53 audreyt yeah, I know, I wrote that :)
15:53 pmichaud nm
15:53 audreyt particle_: two-arg functions are, like, always parse as listop
15:53 audreyt so don't worry about that in protos
15:53 dakkar I really don't like that... too easy to (while reading) interpolate an 'else' between the blocks...
15:54 audreyt dakkar: but p5 has that...
15:54 pmichaud dakkar then don't write it :-).  Or be sure to put the 'else' there.  In this sense it's really not much different from C or other languages :-)
15:54 audreyt I mean, I'm okay with it, but I don't see a compelling reason to break
15:54 dakkar pmichaud: who said I like C? ;-)))
15:54 dakkar p5 has that? /me blushes
15:54 audreyt :)
15:55 audreyt eval: if (1) { 3 } { 5 }
15:55 p5evalbot audreyt: Return:  5
15:55 * pmichaud thought "or other languages" might cover whatever dakkar likes.  :-)
15:55 dakkar ok, so perl5 has that and I never noticed... still looks weird to me...
15:55 audreyt dakkar: I've learned more about perl5's syntax bug^Wfeatures in the last year
15:56 audreyt than the past 10 years combined
15:56 audreyt it's really quite heavy stuff.
15:56 audreyt as in, drugged :)
15:56 TimToady Perl was invented on BSD, you know...
15:56 audreyt ahhhh.
15:56 Arathorn heh
15:56 audreyt that explained a lot
15:57 audreyt <TimToady> I was either on to something, or something.
15:57 audreyt <TimToady> I was either on to something, or on something.
15:57 TimToady I surely hope you can't quote everything I ever said... :/
15:57 audreyt <TimToady> I surely hope you can't quote everything I ever said... :/
15:57 audreyt j/k; of course I can't :)
15:58 pmichaud afk for a while
15:58 gaal wait, what's werd with if (1) { 3 } { 5 } => 5 ?
15:58 audreyt nothing
15:58 gaal it evaluates 3, and then enters a scope that evals to 5
15:58 audreyt sure
15:59 gaal okay, sorry for butting in :)
15:59 KingDillyDilly joined perl6
15:59 dakkar gaal: I was surprised to see 2 blocks one right after the other... then it came out it's correct perl5...
15:59 TimToady BP probably specifies a semi or nl there, of course.
15:59 gaal dakkar: with newlines it'll be easy :)
15:59 gaal TimToady: BP == ?
15:59 TimToady doubtless Perl Critic carps about it
15:59 dakkar Best Practices?
15:59 TimToady best practices
16:00 TimToady didn't want to say PBP 'cuz that's the book.
16:00 gaal why oh why? in tests for example it is very common to put blocks of stuff in scopes of their own
16:00 TimToady on the same line?
16:00 gaal ah, no.
16:00 TimToady without a semi?
16:00 gaal without the semi yes, but not on the same line.
16:01 KingDillyDilly S05 says "We now try to call them regex because they haven't been regular expressions for a long time." Does that mean I shouldn't call them regular expressions when referring to Perl 6 regexes? In that case, I'll remove the term "regular expressions" from the Perl 6 Wikipedia article.
16:01 gaal { ok "moose" } \n { ok "elk" }  # common enough
16:01 gaal I see your point though.
16:01 gaal s/though//
16:02 YourNameHere is now known as YetAnotherEric
16:02 TimToady well, you can still call them "regular expressions" for an audience that is used to misusing the term anyway.  How will they know what regex is short for otherwise?
16:03 dakkar «regex» is short for «this powerful things for munging text» ;-)
16:04 KingDillyDilly So, you're saying they shouldn't be called regular expressions, they should be called regexes, and that regexes stand for regular expressions. Don't think that makes sense. If they're not regular, don't even call them regular expressions.
16:04 KingDillyDilly I mean don't even call them regexes.
16:05 TimToady what makes you think that, linguistically speaking, a derivative has to mean exactly the same thing that it is derived from?  Languages don't work that way.
16:05 dakkar KingDillyDilly: I challenge you to find a better name ;-)
16:05 gaal you see them regularly in Perl code, and they are expressions, so what's not making sense?
16:05 * gaal ducks
16:05 TimToady That's what we call "the etymological fallacy" in linguistics...
16:06 szbalint perlcritic is interesting, most of the criticisms below 4 don't make too much sense though - at least that was my general idea after running it through my code. The ideas are generally not bad, just not applicable with a brick and mortar to all code.
16:06 theorbtwo Oooh, I'll have to use that term the next time my sister gets all silly and Latin on me.
16:06 KingDillyDilly I'd call them regular expressions. I have a whole argument on Wikipedia about the "not regular" issue that's rambling, so I won't repeat it.
16:06 dakkar irregular expressions ;-)
16:07 theorbtwo szbalint: As the author says in the much-ignored prefix.
16:07 KingDillyDilly "Extended regular expressions" is good.
16:07 theorbtwo That part should really be in chapter 0.
16:07 theorbtwo It's a bit of a mouthfull, though.  regexes will do just fine.
16:07 TimToady my sense of it is that we have the opportunity to coin a new term with a technical meaning of "something that used to be regular expressions but are extended"
16:07 szbalint theorbtwo: unfortunately I don't have the book, just the tool. I'll try to get it though from somewhere :)
16:07 gaal hmm, Perl has this doc format called POD, which is plain and kinda not new
16:07 audreyt reg-ex
16:07 * gaal ducks again
16:08 gaal <- duck typing
16:08 r0nny joined perl6
16:08 dakkar TimToady: syntexps?
16:08 TimToady something commonly referred to needs a shorter name
16:08 theorbtwo ...just remember when reading formal lit that speaks about regular expressions, that they don't mean perl's regexes.
16:08 TimToady I think "regex" can become that term.
16:08 audreyt REGular expression EXtended
16:08 TimToady we already managed it with "hash"
16:09 audreyt TimToady: btw, Imight missed your answer for a question the other day
16:09 dakkar TimToady: taking over the world, one word at a time? ;-)
16:09 KingDillyDilly But you'd need to take away the abbreviation of "regular expressions" as other languages use it, or else regex will have two meanings.
16:09 audreyt about whether % signifies unorderedness, or non-int-keyness
16:09 TimToady doesn't bother me
16:09 TimToady I did answer that
16:10 audreyt ok, I'll dig the backlog
16:10 TimToady actually, you asked about @
16:10 audreyt right, the other way around
16:10 TimToady and []
16:10 TimToady [] forces int
16:10 TimToady @ is about order
16:10 audreyt {} forces code
16:10 audreyt % is about unorder
16:10 TimToady % is about relationship
16:10 TimToady {} doesn't force anything.
16:11 audreyt it forces a scope :)
16:11 TimToady shh
16:11 audreyt so there's nothing wron with, say, a trie
16:11 audreyt @trie{'moose'}
16:11 TimToady if the { } role is supplied by the object, that's fine
16:11 audreyt to have ordered but indexed by non-int, underface
16:12 audreyt okay, cool
16:12 audreyt thanks :)
16:12 TimToady %trie{'moose'} also works
16:12 TimToady just not ['moose']
16:12 KingDillyDilly Perl regexes is fine.
16:12 audreyt unlike other popular scripting languages :)
16:12 TimToady optimizer allowed to assume .[] is always integer subscripts
16:13 FurnaceBoy lol@gaal
16:13 TimToady and force Int context on anything immediately inside at compile time.
16:14 audreyt k
16:14 audreyt so I end up implementing <ws> (and \b) by remembering the charclass of the last char seen by parsec
16:14 audreyt hopefully sane
16:14 fglock joined perl6
16:15 audreyt (trying to keep it LL(1) as much as I can manage)
16:15 lichtkind if $a < 5 {$b++} while $b < 12; equals to loop {if $a < 5 {$b++}} while $b < 12; ?
16:16 audreyt lichtkind: statement_control allows no postfix, I think
16:18 lichtkind audreyt but i think ive seen this anywhere in larrys talk i think , i look
16:18 audreyt larry's talk - the OSDC.il one at least - has a few outdated examples :)
16:19 TimToady loop is special case
16:20 lichtkind so my question is true ?
16:21 TimToady no
16:21 hexmode joined perl6
16:21 TimToady can't put statement modifier on a loop control.
16:21 TimToady s/loop/statement/
16:22 lichtkind thanks
16:22 particle_ statement control?
16:22 TimToady basically, we don't want people writing a huge control structure and then tweaking the whole thing with a "if $flag" at the end.
16:23 FurnaceBoy "when  lawyers write programs"
16:23 TimToady loop is an exception because the "loop" at the front tells you it's going to have some control elsewhere.
16:25 particle_ so loop can have next, etc inside, *and* a modifier afterwards?
16:25 particle_ that's a lot of rope
16:26 KingDillyDilly I'm thinking that the distinction between Perl regexes and other Perl code is that the regexes are more compact and symbol-based and always act on a string. Maybe the new name for regexes should reflect that.
16:26 particle_ KingDillyDilly: but you're wrong.
16:26 KingDillyDilly Ok. Then nevermind.
16:28 TimToady particle_: any loop can have next inside.  loop takes either (;;) at the front or while/until at the end.
16:28 audreyt TimToady: re Ps/Pe.
16:28 TimToady yeah, I know, how do they match?
16:28 audreyt U+301D has two closing
16:28 particle_ tt: sure, i get it. a lot of rope can be useful :)
16:28 audreyt 301E and 301F
16:29 audreyt in ascii gram:
16:29 audreyt ``
16:29 theorbtwo Er, loop can take neither as well, right?
16:29 audreyt can be matched by
16:29 audreyt ''
16:29 audreyt or
16:29 audreyt ,,
16:29 TimToady right
16:29 audreyt it's the infamous one special case
16:29 audreyt can we just take 301E?
16:30 audreyt having to match 301F feels rather strange.
16:30 TimToady sure
16:30 audreyt thanks.
16:30 TimToady gotta take Lewis to school.
16:30 TimToady back in a while &
16:30 audreyt enjoy :)
16:32 KingDillyDilly By symbol-based, I mean not words like the function names "say", "open", etc. Though I know the new modifiers can be words.
16:38 svnbot6 r10089 | yiyihu++ |  r10092@Laptop:  xinming | 2006-04-27 00:34:28 +0800
16:38 svnbot6 r10089 | yiyihu++ |  docs/feather/index.html update, Added a link to download svk bootstrap files(parrot&pugs) for working offline.
16:38 KingDillyDilly Anyway, I sure hope documents like http://dev.perl.org/perl6/doc/design/syn/S05.html are meant for those developing Perl 6, not those developing with Perl 6.
16:38 xinming audreyt: how to remove the r10092@Laptop .+  line?
16:40 audreyt xinming: push --verbatim
16:40 xinming svk++  audreyt++
16:40 audreyt KingDillyDilly: sure. try http://svn.openfoundry.org/pugs/docs/Perl6/
16:41 audreyt KingDillyDilly: "Overview" and "Tutorial" are the space for "developing with"
16:41 xinming audreyt: by the way, why will svk mirror work so slow?   svn co is much faster.... :-/
16:41 audreyt xinming: because it takes all history with it
16:42 xinming audreyt: but the bandwidth only takes about 1~4k bytes. :-/
16:42 KingDillyDilly Thanks. Google didn't know that's what I meant when I searched for ":panic modifier" backtracking perl6
16:43 audreyt KingDillyDilly: it only appeared, oh, 3 days ago
16:43 KingDiamond joined perl6
16:44 particle_ perl6 development... faster than a google web spider
16:44 KingDillyDilly Micro speed though. I need the complete product.
16:45 particle_ then help build it!
16:45 KingDillyDilly Well, I don't really, but when it's done, I'll be fearing the demise of Perl 5.
16:45 KingDillyDilly . o O Why does that sound familiar...
16:45 audreyt TimToady: I also nixed U+201A and U+201E.
16:46 audreyt KingDillyDilly: that's ok, just keep staying around here and chat :)
16:46 xinming KingDillyDilly: I don't think so, as perl 5 can be used in perl 6 seamlessly...   :-)
16:46 particle_ ...except for a memory leak ;)
16:46 audreyt ...we're fixing that by running natively on Perl5 :)
16:47 audreyt "perl5 is just another virtual machine"
16:47 KingDillyDilly I don't know whether that's just hype or not, xinming. Sometimes it sounds like you can do ANYTHING with Perl 6. Use it to run other languages, etc. I'd feel like I'd need to learn it.
16:48 xinming audreyt: I was curious about the C lib wrapper in Perl 5, Will it still works seamlessly in perl 6? They are not pure perl 5. :-/
16:48 audreyt xinming: if we compile to perl5
16:49 audreyt as fglock is doing now
16:49 audreyt then sure they just work seamlessly.
16:49 audreyt if we embed perl5 interp
16:49 audreyt like pugs is doing now
16:49 audreyt it still works, except for some memory leaks
16:49 audreyt if we port perl5 internals to parrot
16:49 nothingmuch http://uncyclopedia.org/wiki/Image:Perlforpreschool.jpg
16:49 audreyt like... well, someone who will do it in the future via ponie
16:49 audreyt then it will work happily
16:50 audreyt before that someone arrives, though, we need to make perl6 compelling enough
16:50 xinming KingDillyDilly: You'd know, that, In perl 6, You might be able to use python modules, lisp modules in perl 6. :-)  Certainly, It needs someone to finish it... But even without other modules. It doesn't hurt much. As perl 6 can use perl 5 modules, and this is a promise... IMO. :-)
16:50 audreyt in order for $big_co to sponsor a huge thankless job that is ponie
16:51 Limbic_Region audreyt - given your recent affection for Judy arrays - would you recommend them over any other C hashing library if it only needs to hold 8 items or less
16:51 xinming KingDillyDilly: hmm, and In my opinion, I believe other people will build the compiler for parrot. :-)
16:51 audreyt Limbic_Region: if you _know_ it's going to hold 8 items or less
16:51 audreyt and you don't need ordering
16:51 audreyt and the key size is stable
16:51 audreyt like, <4k
16:51 audreyt then nothing beats a hash.
16:51 audreyt normal, simple, minimal hash
16:52 xinming audreyt: It seems there is nothing impossible in perl 6. :-)
16:52 Limbic_Region ok - ordering was a nicety not a necessity
16:52 Limbic_Region thanks
16:52 audreyt xinming: solving the halting problem...
16:52 fglock audreyt: you said: "P6AST::Lit::Int($/)" - could it be more general like "P6AST::???::Object('Int',$/)"
16:52 Limbic_Region any recommendations on drop in hash libraries for C then?
16:52 audreyt Limbic_Region: I like judy's interface best
16:52 particle_ xinming: since perl6 will run on perl5, you can extend that backwards :)
16:52 audreyt as the hash constructor is just NULL
16:52 azuroth joined perl6
16:52 mago_ joined perl6
16:53 Limbic_Region ok - thanks
16:53 fglock audreyt: or something like Int.ast($/)
16:53 audreyt but for 8 keys or less... unless you really want to max out speed or mem
16:53 audreyt any hash can do
16:53 Limbic_Region well - I want to max out speed
16:53 audreyt fglock: the latter can work
16:53 xinming particle_: What I hope is that perl can have a baby in the future... :-)
16:54 audreyt Limbic_Region: oh. if you have a c++ compiler
16:54 audreyt Limbic_Region: then use google hash, sparse mode
16:54 Limbic_Region this particular program will likely not be finished before heat death of the universe unless I get lucky
16:54 audreyt it's BSD license
16:54 audreyt scarily fast
16:54 * Limbic_Region doesn't speak C++
16:54 KingDillyDilly I tried installing MSVN or whatever it's called for running C modules on Windows. Never found instructions. Finally someone said I need to learn C. I'll just remain skeptical until I see it works.
16:55 audreyt well then, http://cvs.alioth.debian.org/cgi-bin/cvsweb.cgi/shootout/bench/Include/simple_hash.h?cvsroot=shootout
16:55 audreyt or any of the various sources would do
16:55 Limbic_Region ok - monopolized enough of your time
16:55 Limbic_Region thanks and I appreciate the input
16:55 audreyt np :)
16:58 KingDillyDilly Modules aren't my concern though. I need the CGI one because everyone scared me out of not using it. That's about it. I can even get by with LWP. (I write web apps)
16:59 azuroth hullo
16:59 KingDillyDilly (without LWP)
17:00 ruoso joined perl6
17:00 azuroth sorry for bothering you with nitpicks, and being in the wrong place, but S02 has a typo (s/unrecogized/unrecognized/) ... tried mailing p6l, but weird stuff happened
17:02 svnbot6 r10090 | particle++ | formatting fixes (line wrap, trailing spaces, etc)
17:05 KingDillyDilly Ok, here: change regex to extex (extended expressions).
17:06 fglock audreyt: re SoC/runtime - this time it may be possible to write the classes in simplified perl6 and translate to p5
17:06 KingDillyDilly I don't like it, but there it is.
17:06 nowhereman joined perl6
17:06 azuroth from rules to regex to extex? *dies*
17:06 * kolibrie parses that as extended TeX
17:07 particle_ xegex
17:07 ruoso kolibrie++ hehe
17:07 audreyt azuroth: fixed.
17:07 audreyt irc more useful than p6l to prompt commits :)
17:08 azuroth audreyt: thanks :-) was just niggling me a bit
17:09 audreyt np
17:18 * audreyt finds using full-width quotes in perl6 is addictive
17:18 audreyt TimToady++
17:18 elmex joined perl6
17:18 xinming audreyt: what does full-width quotes mean?
17:22 audreyt xinming: in chinese terminal
17:22 audreyt they take two columns
17:23 audreyt but count as one char
17:25 xinming audreyt: yes. I understand that. :-)
17:25 saorge joined perl6
17:27 * xinming still doesn't understand full-width quotes means... :|  But won't trouble audreyt ...
17:28 theorbtwo xinming: Normal western characters are narrower then normal far-eastern characters.  Fullwidth chars are as wide.
17:28 theorbtwo ...as I understand it.
17:28 theorbtwo Since you actually speak a far-eastern language, you can probably correct me.
17:28 nothingmuch how are they used in perl 6?
17:28 nothingmuch i think that's the main question
17:29 theorbtwo I think they're just accepted as a pair of bracketing characters.
17:29 audreyt nothingmuch: they are used as valid q<> and #() brackets.
17:29 audreyt and I just implemented them. committing
17:29 theorbtwo I think we should in general consider fullwidth chars as exactly equiv to their normalwidth cousins.
17:30 theorbtwo (In code, not literals, obviously.)
17:30 audreyt #perl.tw is already talking about vertical written code.
17:30 theorbtwo In purticular, fullwidth yen, since it doesn't look like backslash.
17:30 theorbtwo I have seen places where emails, etc, were in fullwidth, apparently accidentally.
17:32 svnbot6 r10091 | audreyt++ | * Pugs.Lexer: Accept all Ps/Pe and BidiMirroring pairs, as
17:32 svnbot6 r10091 | audreyt++ |   defined in the freshly-tweaked-by-yours-truly S02, as
17:32 svnbot6 r10091 | audreyt++ |   valid quoting pairs.
17:50 svnbot6 r10092 | audreyt++ | * Pugs.Lexer - merge Pugs.Rule.Token to handle all
17:50 svnbot6 r10092 | audreyt++ |   char codes correctly.  The <ws> handling has made
17:50 svnbot6 r10092 | audreyt++ |   parsing ~30% slower again -- I'll see if I can find
17:50 svnbot6 r10092 | audreyt++ |   some clever way to fix that.
17:52 DaGo joined perl6
18:31 Arathorn is now known as Aragone
18:33 Aragone whee
18:33 * Aragone just managed to work p6 rules into a discussion on VOIP routing tables
18:33 audreyt wow.
18:33 audreyt how does that work?
18:34 Aragone where you need to mark up endpoint URIs into reusable named tokens rather than un-reusable positional capture groups
18:34 Aragone so that you have only one list of URI matching - used both for rewriting & routing based on the match
18:34 audreyt neat!
18:34 Aragone not sure how it could be actually implemented in practice, but i think i'm right in thinking that Rules offers the right class of solution
18:35 Aragone (originally/currently, it's all p5 regexps, which is a bit of a shame as you have to separate URIs you route on from URIs you rewrite)
18:35 Aragone anyway
18:35 * Aragone -> birthday frisbee
18:35 audreyt prolly does
18:35 audreyt you can always prototype with Pugs::Compiler::Rule or with PGE :)
18:41 stennie left perl6
18:42 TimToady maybe PGE could be renamed ℞
18:43 audreyt particle_: you added listops there too to sub
18:43 audreyt .pge
18:43 audreyt they don't affect parsing, so why? :)
18:43 audreyt also, map(){...} is a bit wrong
18:44 audreyt I'll fix
18:44 audreyt but first I'll remove method-only forms
18:44 particle_ i got distracted by $work, sorry
18:44 audreyt TimToady: it's Bool::True nowadays?
18:44 TimToady yup
18:44 particle_ and see XXX: note :)
18:44 TimToady don't want people mistaking the value for the predicate
18:45 particle_ true
18:45 particle_ :)
18:45 TimToady sides, all enums are arguably setset types.
18:45 TimToady *subset
18:46 dduncan joined perl6
18:46 TimToady and that gives an excuse to capitalize the days of the week etc.
18:47 TimToady interesting, the ℞ symbol contains all of P R I and X.
18:47 audreyt what?
18:48 TimToady the ℞ symbol should be an R with slash that resembles Rx
18:49 TimToady it stands for "prescription drugs", as in Regex is good for what ails you
18:49 dduncan I have some more questions on issues related to identity and comparisons
18:50 dduncan but first, I read recently that distinct ref types are going away; is that true?
18:50 TimToady and rx// was originally a pun in the other direction.
18:50 xinming will this be a error?   `if 1;` ?
18:50 audreyt TimToady: is that the new name for PGE, or a unicode equivalent for the rx{} quoter?
18:50 audreyt dduncan: yes, that is true.
18:50 TimToady I was still brainstorming about PGE naming.
18:50 audreyt dduncan: mostly to cleanly support identity and comparisons.
18:50 TimToady not suggesting we change rx//
18:51 audreyt that is, @x === @x should Just Work
18:51 dduncan in that case, http://dev.perl.org/perl6/doc/design/syn/S03.html seems to be out of date
18:51 audreyt instead of requiring \@x === \@x or some other silly exercise.
18:51 dduncan does that site reflect the current synopsis, or is there another site that does?
18:51 theorbtwo Don't you mean \@x == \@x ?
18:51 davidfetter joined perl6
18:51 audreyt I do mean ===.
18:51 audreyt dduncan: it does
18:51 xinming dduncan: svn co http://svn.perl.org/perl6/doc/trunk doc    :-)
18:51 audreyt dduncan: a "reference" type is not the "ref" type
18:52 TimToady people *are* going to confuse them, though...
18:52 audreyt it just means two objects that may have identical values
18:52 audreyt but different .id
18:52 theorbtwo That should be up to the day.  If that's not enough, http://svn.perl.org/perl6/doc/trunk/design/syn/S02.pod is up to the rightnow.
18:52 TimToady their "value" is their objectness, not their contents.
18:52 audreyt TimToady: yes. which is why I tried to say
18:52 TimToady should be up to the six hours now.
18:52 audreyt Immutable vs Mutable
18:53 dduncan I saw this in my version, but it may no longer be the case: Binary === tests type and value correspondence: for two value types, tests whether they are the same value (eg. 1 === 1); for two reference types, checks whether they have the same identity value. For reference types that do not define an identity, the reference itself is used (eg. it is not true that [1,2] === [1,2], but it is true that @a === @a).
18:53 xinming will "if 1" legal?
18:53 xinming ?eval if 1
18:53 evalbot_10082 undef
18:53 weinig is now known as weinig|away
18:53 dduncan my problem with that is that I think [1,2] === [1,2] should return true
18:53 audreyt mm
18:53 audreyt xinming: that is a recent bug :)
18:54 audreyt thanks for reporting
18:54 xinming dduncan: No, === comparing the value(s) "slot" by "slot"
18:54 audreyt (no, it should be illegal.)
18:54 xinming audreyt: ;-)
18:54 TimToady dduncan: [...] constructs a mutable object
18:54 audreyt dduncan: [1,2] is sugar for Array.new()
18:54 audreyt dduncan: you want
18:54 audreyt (1,2) === (1,2)
18:54 fglock left perl6
18:54 audreyt which is indeed true.
18:54 theorbtwo dduncan: my $a=[1,2]; my $b=[1,2];  Should $a===$b, even though $b.push(3), and $a !~ $b.
18:55 spinclad a
18:55 theorbtwo s/\.$/?/ # I do that entirely too much.
18:55 davidfetter left perl6
18:55 dduncan what I want is that 2 things which are logically equal compare as being equal
18:55 TimToady those are only illogically equal.
18:56 TimToady for illogically equal, you have to use ~~
18:56 dduncan eg, an array having just 2 integer elements of 1 and 2 is logically equal to another array having just 2 integer elements of 1 and 2
18:57 TimToady ?eval [1,2] ~~ [1,2]
18:57 evalbot_10082 bool::true
18:57 theorbtwo The problem is that ~~ doesn't always mean illogically equal, it means "matches".
18:57 TimToady and what's logical about that?
18:57 theorbtwo ?eval 1 ~~ 1..42
18:57 evalbot_10082 bool::false
18:57 audreyt no Range objects currently.
18:57 audreyt sorry :)
18:58 dduncan what I would like is for all Perl data types to be treated the same as far as what === does
18:58 TimToady they are.
18:58 dduncan a user should be able to use === without knowing what kinds of variables or values are on each side
18:58 audreyt dduncan: what you really want, is maybe
18:59 audreyt $x.perl eq $y.perl
18:59 dduncan mayhaps
18:59 dduncan but I thought === was supposed to do that but without the stringify
18:59 theorbtwo It would be nice if there were some simpiler way to write that, but it should be ===.
19:00 theorbtwo I think === is supposed to say "if I modify the thing on the left, does the thing on the right change too".
19:00 audreyt or, "if both sides are immutable, can they be used interchangeably"
19:00 audreyt clearly we need ====.
19:01 audreyt </ironic>
19:01 dduncan I thought === is supposed to say "are these 2 things logically equal, which includes being of the same data type and value, regardless of what the types of the 2 things are?"
19:01 TimToady what the heck does "logically" mean, and what does "value" mean?
19:01 * ruoso wonders which is the other possible type of equality if not "logical"
19:02 TimToady value has to mean something immutable.
19:02 TimToady the *only* thing immutable about a normal object is its .id
19:02 particle_ ruoso: binary equality
19:02 audreyt (well, and it's class)
19:02 audreyt (so we take both)
19:03 ruoso particle_, isn't binary equality something with very specific uses?
19:03 theorbtwo Of course, we can't assign an id to every real, and still have room left over to assign them for every object, so we need === instead of just $a.id == $b.id
19:03 dduncan if 2 things are of the same type/class and within that class' definition of equality they are equal, then === returns true
19:03 ruoso I'd expect a == b to be "logical equal"
19:03 particle_ ruoso, well it's different than logical equality
19:03 TimToady no guarantee that .id returns numbers...
19:03 ruoso particle_, :)
19:03 theorbtwo Logical equality is what ^^ does.
19:04 theorbtwo ...as in 'foo' ^^ 2 == Bool::True
19:04 audreyt .id returns primitive values, which can be arbitrarily long :)
19:04 theorbtwo We still don't have room, since memory is finite.
19:04 audreyt we don't have room for them to be portable across runs.
19:04 audreyt inside a single run, we are probably fine.
19:04 dduncan the context I am thinking of is like with object hash keys
19:05 TimToady probably better to think of ids as more like strings than numbers
19:05 ruoso Hmm... considering Int $a = 5; MyIntSubType $b = 5; what would $a == $b return?
19:05 dduncan eg, if you said %foo{[1,2]} = 42;
19:05 theorbtwo Should you compare them with eq, ==, or ~~?
19:05 audreyt ruoso: == coerce back to Int
19:05 audreyt ruoso: but === would fail for sure.
19:05 audreyt (you can't use them interchangeably)
19:06 dduncan then later I can say %foo.exists([1,2]) and it would return true
19:06 TimToady dduncan: object arrays use ===
19:06 TimToady no.
19:06 dduncan an Array is an object, is it not?
19:06 TimToady but [1,2] is a different Array, we keep tellin' ya
19:06 theorbtwo Yes, but not all [1,2]s are created equal.
19:06 audreyt dduncan: what you can do is
19:07 audreyt %foo{(1,2)} = 42; %foo.exists((1,2))
19:07 theorbtwo p5evalbot: print [1,2], " != ", [1,2];
19:07 p5evalbot theorbtwo: Sorry, I couldn't find a plugin that matched your command
19:08 audreyt eval: print [1,2], " != ", [1,2];
19:08 p5evalbot audreyt: ARRAY(0x8437220) != ARRAY(0x84374e4)Return: 1
19:09 FurnaceBoy is now known as FurnaceBot
19:09 dduncan so I can also say "$x = (1,2); $y = (1,2); %foo{$x} = 42; %foo.exists($y);" and have the latter return true?
19:09 audreyt yes.
19:09 audreyt definitely.
19:09 dduncan this still uses the (1,2), but that there is a named container
19:09 audreyt yup.
19:09 audreyt that doesn't matter
19:09 audreyt the exists() takes rvalue
19:09 audreyt so it's pulled from the container
19:10 audreyt ditto for {$x}=
19:11 audreyt dduncan: the implementation to 6.28.0 (PIL^N) has revealed the perl5ish ref-type's inadequacy in handling situations like this
19:11 audreyt dduncan: so we've stepped back and looked again at the situation
19:11 audreyt now it's much easier to implement in pugs, and hopefully easier for you to write too once it's implemented
19:11 dduncan hopefully
19:12 audreyt in perl5 there's no easy way to do it either
19:12 TimToady hey, at least you get Tuple back now.
19:12 audreyt you'll have to Data::Dumper() the thing and use that as key
19:12 audreyt right, (1,2) is now Seq
19:12 audreyt (which makes me happy)
19:13 TimToady 'course, now someone will think Seq is short for SQL...
19:13 dduncan I'm not trying to immitate SQL
19:13 dduncan SQL is flawed
19:14 TimToady we know your views on this already
19:14 dduncan however, I would like to be able to immitate things that people use SQL for
19:14 dduncan eg, search for something by its value
19:15 dduncan such that 2 things which the programmer-user thinks are conceptually the same, and have the same declared data type, match in a search
19:15 dduncan eg, they store a Foo object, and can then find it again using another Foo object that was created in the same way
19:15 _bernhard joined perl6
19:15 * KingDillyDilly does that make-sure-TimToady-sees thang TimToady: If you really want to coin an original term, change regex to extex (extended expressions) Trust me, I'm good at this. I coined the similie "looser than a rubber chicken in sweatpants."
19:16 dduncan either exactly or loosely what a multi-dimensional object hash does
19:16 xinming audreyt: there is another bug. :-/
19:17 TimToady it's really easy to turn your reference types into value types.  Just define the .id for the type appropriately.
19:17 xinming audreyt:  dies_ok { if 1 }, 'test "if 1"';  <--  this will be syntax error...
19:18 xinming audreyt: one have to remove \,  after { if 1 }    <---  is this right?
19:18 shachaf joined perl6
19:18 audreyt fixed
19:19 xinming audreyt: it seems we now have to write  qq[ dies_ok { if 1 } 'test "if 1"'; ]
19:19 xinming audreyt++
19:19 dduncan well, thank you for your help; I'll see what I can do with it
19:21 audreyt np :)
19:27 svnbot6 r10093 | audreyt++ | * xinming++ reported that our old backtrack-all kluge of allowing
19:27 svnbot6 r10093 | audreyt++ |     if 3;
19:27 svnbot6 r10093 | audreyt++ |   does not work (and is not needed) at all under the new regime.
19:27 svnbot6 r10093 | audreyt++ |   Fixed that, as well as the (foo {block}, 3) syntax.
19:27 audreyt k, I need to sleep.
19:27 audreyt $job tomorrow and it's 3:27am
19:27 audreyt have fun :)
19:27 * audreyt waves &
19:27 TimToady waves&
19:28 dduncan good night
19:28 xinming audreyt: good night. :-)
19:30 justatheory joined perl6
19:33 svnbot6 r10094 | yiyihu++ | Added a test case for 'if 1'. Should raise an error.
19:37 FurnaceBot is now known as FurnaceBoy
19:40 macroron joined perl6
19:41 KingDillyDilly Just saw the term "pattern matching" in Wikipedia. Maybe Perl 6 regexes should be called patmats.
19:44 szbalint I'm wondering who had something to do with the idea to rewrite DBI in Perl 6 from here :>
19:46 TimToady is Perl 6 from here?  :)
19:48 szbalint Depends on what is "here", but I guess I ment #perl6 when I wrote 'here'
19:49 TimToady It's still a rather ambiguous sentence.
19:49 TimToady do you mean "who...from here"?
19:49 xinming ...
19:49 TimToady or do you mean "rewrite...from here"?
19:49 TimToady or "idea...from here"
19:50 szbalint Oh quit blasting me. :) My english is much better than your hungarian. :P
19:50 TimToady true 'nuff. :)
19:50 TimToady But I was just trying to find out what you mean, really.
19:51 larsen joined perl6
19:52 TimToady the study in ambiguity was really only a linguistic pursuit--nothing personal intended
19:52 szbalint I was just trying to find out if someone from this channel suggested coming up with the idea (http://www.perl.org/advocacy/summerofcode/ideas.html) to rewrite the DBI module in Perl 6.
19:52 TimToady I always analyze everything for ambiguity that way...
19:52 szbalint *-coming up with the
19:52 szbalint argh. Just don't mind my grammar please :\
19:53 TimToady I don't know the answer to that, offhand...
19:53 TimToady I can tell you it probably wasn't dduncan.  :)
19:53 szbalint haha
19:54 szbalint I feel like attempting that challenge and it would have been convenient to talk with the person before submitting an application.
19:54 KingDillyDilly I edited Wikipedia's Perl 6 article again. I like to be exact. http://en.wikipedia.org/w/index.php?title=Perl_6&amp;diff=50305073&amp;oldid=49571884
19:54 dduncan I did not write anything on the summerofcode page, about DBI or otherwise
19:55 kolibrie szbalint: someone mentioned something about DBI a few hours ago on #perl6
19:55 szbalint kolibrie: thanks.
19:55 kolibrie I know Tim Bunce was collecting ideas several months ago
19:55 kolibrie don't know how far he got
19:55 dduncan he has a mailing list specific to it
19:56 dduncan its dbi2-dev@perl.org
19:56 szbalint oh nice, thanks.
19:58 * szbalint reads the archives.
20:01 justatheory joined perl6
20:05 kpm joined perl6
20:08 spinclad ℞ would be a good name for regexes
20:08 spinclad but
20:08 spinclad it must be pronounced ℞ !
20:08 * theorbtwo doesn't like it.
20:08 theorbtwo compose, r, x doesn't work.
20:09 theorbtwo (Nor does R, x.)
20:10 KingDillyDilly What character is that? Meant to be a square?
20:10 spinclad not pronounce 'recipe' like the word it abbreviates, nor 'regex', nor polish 'rz'
20:10 spinclad but ℞ .
20:10 theorbtwo KingDillyDilly: R with a / on the final stroke, as in perscription.
20:10 spinclad it's the Rx apothecary abbreviation
20:11 KingDillyDilly Ok. Don't see it in Game in IE.
20:11 KingDillyDilly I mean Gaim
20:11 spinclad well, there you are then
20:11 spinclad 'the sekrit sign -- only those in the know will know'
20:13 dduncan left perl6
20:14 spinclad (only those with a good unicode font can pronounce it.)
20:15 spinclad but for those with aged aged keyboards we will allow to spell it Rx.
20:15 spinclad (even though it's not an x, it's a slash, as theorbtwo said.)
20:16 spinclad (but compose R / didn't work either -- I've been cut-n-pasting)
20:18 spinclad s {pronounce} {$1 ~ 'd'}
20:18 spinclad nm
20:18 KingDillyDilly R<span style = "padding-left: -5px;">x</span>
20:19 spinclad not portable between fonts and font sizes
20:19 KingDillyDilly so, em
20:20 penk left perl6
20:21 * ruoso still trying to figure out the compose sequence
20:24 * szbalint is still trying to figure out how to compose a sentence :)
20:25 KingDillyDilly Where do I find TimToady's speech/interview/whatever where he got Audrey's sex wrong?
20:25 DaGo joined perl6
20:25 nothingmuch KingDillyDilly: larywallgetsaudreyssexwrong.com
20:25 theorbtwo nm++
20:26 spinclad please don't bother -- no need to propagate confusion
20:26 nail_ joined perl6
20:28 KingDillyDilly I didn't need it for that. I figured he had something interesting or important to say.
20:29 SamB joined perl6
20:30 FurnaceBoy spinclad, I don't think it's short for recipe, but actually 'remedy'
20:32 ruoso ŘŖ
20:32 ruoso not yet
20:34 spinclad it's used in prescriptions as 'recipe', which is 'take' in latin
20:34 lichtkind joined perl6
20:34 FurnaceBoy okay, maybe I'm mistaken
20:34 lichtkind next and redo now only in for loops?
20:35 TimToady the unicode description is "℞       211E            PRESCRIPTION TAKE
20:35 FurnaceBoy I'd hate to propagate confusion on the point.
20:35 * FurnaceBoy now wonders where he got the idea...
20:36 TimToady lichtkind: what gives you that idea?
20:36 lichtkind TimToady i have the feeling i read something like that in the synopsis
20:37 lichtkind but it seems unlogical
20:37 TimToady if you can find a misleading spot, we should fix it.
20:38 FurnaceBoy_ joined perl6
20:38 TimToady next and last can exit any "official" loop.
20:38 TimToady bare block is no longer official loop, but do block is.
20:38 justatheory joined perl6
20:39 lichtkind i will seek but first i want finish here chapter about control flow in this perl tutorial ... yes the do once loop :)
20:40 lichtkind thanks
20:40 fglock joined perl6
20:45 beppu joined perl6
20:47 ruoso ℞... ha... Ctrl+Shift+(2,1,1,E)
20:48 ruoso not exactly as practical as it should be :)
20:49 spinclad not for me but i'm sure i have a unicode escape i could use somewhere here
20:49 spinclad (uxterm...)
20:50 qu1j0t3 joined perl6
20:50 jsiracusa joined perl6
20:50 ruoso gtk is nice enough to display the numbers while i write and then substitute it by the unicode char
20:50 ruoso wow
20:51 KingDiamond joined perl6
20:51 * spinclad .oO{wow?}
20:52 TimToady ℞  works, but displays where?
20:52 theorbtwo It is indeed quite nice about it.
20:52 theorbtwo It displays OK for me.
20:52 ruoso every utf-8 capable environment will display it
20:53 TimToady not mine, apparently...
20:53 theorbtwo ∞.perl ~~ ℞/Inf/
20:53 ruoso TimToady, which env are you using?
20:53 theorbtwo It'll display if your font has it, or on nice renderers if it can find another font that has it.
20:54 KingDillyDilly Maybe when there's a go in a scoped block in which there's no matching lable, and the lable exists in more than one other scoped block, there should be a warning.
20:54 ruoso theorbtwo, that's what pango is all about (I think)
20:54 TimToady fedora core 5, gnome, scim
20:54 KingDillyDilly s/go/goto/
20:54 TimToady maybe scim is suppressing it somehow
20:54 ruoso TimToady, it's weird... support for unicode is quite old in gnome
20:54 theorbtwo You think correctly, ruoso.
20:55 lichtkind TimToady sorry cant find it seems to be my fault
20:56 SamB TimToady: you have good fonts?
20:56 ruoso scim == smart common input method?
20:56 fglock joined perl6
20:56 TimToady good enough for most of Unicode.  surely good enough for hexadecimal digits...
20:56 DaGo joined perl6
20:57 SamB oh, that...
20:57 lichtkind TimToady was completly my fault i just preassumed because in the perl6 book all examples where with for
20:57 TimToady np
20:58 ruoso if scim is about input, it'd be quite weird to cause rendering problems...
20:58 TimToady well, don't sweat it.  it *does* produce the character, even if I don't get intermediate feedback.
20:59 ruoso oh... got it... so you do see ℞?
20:59 TimToady yes, after I let up on ctrl/shift at the end.
20:59 ruoso ah... I understood it wasn't being rendered...
21:00 ruoso so... that's probably scim fault
21:00 TimToady I wonder if it's just reserving judgement because of potential interference with some other ctrl/shift shortcut.
21:00 ruoso I think if scim is filtering the input, gtk will only receive the final character... so it won't render the intermediary info...
21:00 qu1j0t3 is now known as FurnaceBoy
21:01 TimToady heh, vim has ^KRx for it.
21:01 ruoso for gtk, it's like if you had a Huuuuuge keyboard
21:02 TimToady I don't even have a Windows key--it's a ThinkPad
21:02 TimToady that could also be forcing some mappings together.
21:03 * theorbtwo doesn't have a windows key either -- my keyboard is from 1990.
21:03 * ruoso wonders which key is used for compose...
21:03 lichtkind theorbtwo you have also an mythical IBM keyboard ?
21:04 theorbtwo Not so mythical.
21:04 theorbtwo I've had several at various points.
21:04 lichtkind but you know what i mean
21:04 theorbtwo They're decently easy to find used.
21:04 theorbtwo Indeed I do.
21:04 ruoso that noisy click-click-for-every-keypress-keyup keyboard?
21:04 FurnaceBoy Model M
21:04 theorbtwo Yes, that's the one, ruoso, FurnaceBoy.
21:04 FurnaceBoy I own a few
21:04 * FurnaceBoy owns no keyboard with the detested MS key
21:05 FurnaceBoy still findable on ebay
21:06 lichtkind theorbtwo i got mine as a present and afterward i learned that these old things a bit legandary, but i liked it before because its good finger trainig for piano players
21:06 * ruoso always choose the most-silent-most-soft keyboard he can find
21:06 * theorbtwo accidentally hits c-s-w, becomes very glad he's running screen.
21:08 rafl joined perl6
21:17 lichtkind good nicht tonight
21:17 lichtkind night
21:21 KingDillyDilly Reset's out, right?
21:29 TreyHarris KingDillyDilly: are you "-Barry-" on Wikipedia?
21:29 KingDillyDilly Yes
21:30 KingDillyDilly (reset = http://www.ayni.com/perldoc/perl5.8.0/pod/func/reset.html )
21:30 TreyHarris I'm confused about this newest edit, specifically, changing, "Unlike most other languages, in which regular expressions are provided by a [[library (computer science)|library]], Perl has [[pattern matching]] facilities built-in to the language." to "Perl's regexes are provided by a [[library (computer science)|library]], unlike the regular expressions in most other languages."
21:30 TreyHarris did Perl, and all the other languages in the world, flip-flop overnight? :-)
21:31 spinclad should be reverted
21:31 * KingDillyDilly checks Wikipedia...
21:32 TreyHarris KingDillyDilly: well, you made the change, so I was just wondering what your thinking was there.
21:32 wolverian hah, his thinking? troll troll troll troll. cough.
21:32 KingDillyDilly DOn't revert. I'll change it now.
21:33 KingDillyDilly I posted a link to it as soon as I changed it. No troll.
21:33 wolverian KingDillyDilly, I don't believe anything you say. :)
21:33 KingDillyDilly I want to keep the part explaining that regexes shouldn't be called regular expressions in Perl 6.
21:33 spinclad it may take more than that to not be a troll...
21:35 KingDillyDilly Give me a couple of minutes.
21:35 TreyHarris i'll fix it, i'm right there
21:35 KingDillyDilly Oh, go ahead.
21:36 KingDillyDilly I was there too, but I wanted to open another window so I could see the pre-my-edit version.
21:38 TreyHarris done
21:39 KingDillyDilly Good.
21:42 KingDillyDilly I've made other edits to Perl and Perl6 and I think I was reverted only once by Merlyn.
21:42 KingDillyDilly I then edited the article again to clarify things for people like me.
21:43 KingDillyDilly Oh, I reverted myself once.
21:45 KingDillyDilly There's a con section ( http://en.wikipedia.org/wiki/Perl#Con ) that I'd have gone crazy in if I was being a troll.
21:46 spinclad again, this doesn't prove your untrollness, only restraint
21:46 KingDillyDilly If a troll falls in the forest and doesn't make a noise, he's not a troll.
21:47 spinclad if a troll doesn't make every possible noise, he must not be troll
21:53 xinming JavaScript 2.0 should interface with other languages even better than JavaScript 1.5 does. If the goal of integration is achieved, the user of an abstraction should not have to care much about whether the abstraction is written in JavaScript, Java, or another language. It should also be possible to make JavaScript abstractions that appear native to Java or other language users.
21:53 xinming :-)
21:53 xinming I think mozilla will be parrot embeded in the future... :-)
21:55 ruoso *be* parrot embeded? wow
21:56 KingDillyDilly Look how good I am. I even added a "nice" slogan to Perl's article when I know it's not totally true. I only complained in the edit summary. http://en.wikipedia.org/w/index.php?title=Perl&amp;diff=39366044&amp;oldid=39362331
21:56 kpm \quit
21:58 xinming ruoso: It is just my guess. not so sure, as the goal is much like embed a virtual machine in mozilla core. And I don't think mozilla will write a virtual machine to achieve the goal.  then, Parrot should be the most suitable case.
21:59 ruoso oh... so, it will *have* a embeded parrot :) :) :)
21:59 xinming perl 6 rocks... :-)
21:59 xinming maybe, mozilla will be rewritten in perl 6 instead of C. :-P
22:00 SamB isn't mozilla written in C++?
22:00 xinming and then, mozilla rule... IE sucks... M$ opensourced... :-D
22:01 xinming SamB: hmm, I think javascript part is written in C, and other underlying parts written in C++
22:02 SamB javascript part is written in javascript!
22:02 xinming Not so sure... Just read the experiment proposal about javascript 2.0
22:02 SamB javascript interpreter may be written in C, though
22:02 xinming SamB: yes. :-)
22:05 cognominal xinming: do you have urls about js 2.0
22:06 xinming cognominal: http://www.mozilla.org/js/language/js20/
22:06 KingDillyDilly So nobody knows for sure whether reset will be eliminated?
22:07 cognominal xinming: I think this page is very old
22:07 froh-doh joined perl6
22:08 cognominal ecma is working on it. but apparently it is not a public process
22:08 cognominal cabals! always cabals!
22:09 * theorbtwo is a proud god of the perlmonks cabal, and hanger-on of the perl6 cabal.
22:09 * xinming is wondering if they are reading perl 6 synopsis... and truning it into javascript forms...
22:10 * cognominal once a saint on perlmonks :)
22:10 cognominal s/once/was $&/
22:11 * KingDillyDilly still a record holder on perlmonks
22:12 KingDillyDilly Why is the worst nodes section still there when they were deleted?
22:12 m joined perl6
22:13 theorbtwo We don't delete much.
22:14 macroron__ joined perl6
22:14 xinming cognominal: hmm, The last update of that page is in 2003...  Not that old.... don't know perl borrow something from that, or javascript learn from perl 6 synopsis writing time. :-)
22:14 KingDillyDilly I mean there are no worst nodes at http://perlmonks.com/?node=Worst%20Nodes at all. Why have a worst nodes link?
22:15 nothingmuch KingDillyDilly: there usually are
22:16 nothingmuch oh wait.. hmm
22:16 nothingmuch i see
22:16 nothingmuch in that case - it's to prevent broken links
22:16 xinming hmm, I think there is no need to talk about this... if javascript achieve the goal... There will be one more great programming language... :-)
22:17 theorbtwo KingDillyDilly: There are.  You can't see them.
22:17 theorbtwo We don't like to encourage trolls.
22:17 ruoso xinming, that we'll be able to run in parrot :)
22:19 ruoso in fact, if mozilla supports perl XUL would become a very much powerfull tool...
22:19 KingDillyDilly Nothingmuch is a troll?
22:20 nothingmuch KingDillyDilly: yes
22:20 KingDillyDilly What did you do?
22:21 theorbtwo There are actually two seperate messages, and two seperate comments in the code:
22:21 theorbtwo # Don't feed the trolls. # Don't feed the newbies trollhood.
22:21 theorbtwo Anonymonk gets the "newbies" message.
22:21 theorbtwo Neg-XP users get the "trolls" message.
22:22 nothingmuch KingDillyDilly: you're being annoying
22:24 KingDillyDilly -XP != troll
22:24 szbalint heheh
22:24 theorbtwo It's the best way of telling from code, though.
22:25 macroron joined perl6
22:31 szbalint I'd love to see the perlmonks source once
22:32 szbalint I bet it's riddled with interesting comments :)
22:32 KingDillyDilly nothingmuch doesn't have -XP. I thought he said he couldn't see the worst nodes.
22:33 KingDillyDilly PM needs to limit the size of a member's newest nodes pages. It's multi MB for me and takes forever to load.
22:34 KingDillyDilly You're not supposed to reinvent the wheel, yet they wrote their own forum software.
22:34 nothingmuch KingDillyDilly: yes, because they are trolls
22:34 nothingmuch slashdot too
22:35 nothingmuch in fact, it's the same guys who wrote slashdot that wrote everything
22:35 nothingmuch cart load of idiots, eh?
22:35 ruoso heh
22:35 szbalint heh indeed.
22:35 KingDillyDilly Am I being baited?
22:35 nothingmuch KingDillyDilly: you are baiting yourself
22:36 nothingmuch sorry, but i'm not often here nowadays, but whenever i drop by i see you trying to get attention
22:36 nothingmuch it's sad
22:36 nothingmuch this community was flawless before
22:37 ruoso in fact, many people did told you that you're not being a nice guy
22:37 KingDillyDilly Ok...well, I
22:37 KingDillyDilly 've seen more serious flaws in others here...
22:37 nothingmuch sure, you're entitled to your own opinion
22:37 nothingmuch i'm just telling you mine
22:37 nothingmuch nobody else made me feel bad about this channel
22:37 nothingmuch you sometimes made me lose interest
22:38 KingDillyDilly After revewing the posts I've made and the responces by some others, if you feel that way about me, any community would be better without you.
22:39 Limbic_Region joined perl6
22:39 * ruoso already gave up... issuing ignore...
22:39 nothingmuch KingDillyDilly: it is my opinion, again, not fact, that most people rather like me in their communities
22:39 nothingmuch but, suit yourself
22:40 nothingmuch you're more than welcome to put me on /ignore
22:40 KingDillyDilly Be specific about the posts of mine you're complaining about.
22:40 nothingmuch and not followup on my posts at perlmonks
22:40 nothingmuch i don't keep IRC logs
22:40 KingDillyDilly They're logged.
22:41 KingDillyDilly http://colabti.de/irclogger//irclogger_logs/perl6
22:41 nothingmuch i don't feel like going through them
22:41 nothingmuch i'm just sharing my opinion, that's all
22:42 nothingmuch you can take it as an insult, or as advice which you may either take or not
22:42 nothingmuch you can ignore it
22:42 KingDillyDilly How about just now. What set you off? My comment about reinventing the wheel?
22:42 nothingmuch you can have a nervous breakdown over it
22:42 nothingmuch for example
22:42 nothingmuch it was clearly there to annoy
22:42 nothingmuch perlmonks existed for a long time
22:43 nothingmuch way before decent forum software
22:43 nothingmuch and also
22:43 nothingmuch perlmonks's forum software is self admining
22:43 nothingmuch which is very very relevant
22:43 fglock left perl6
22:43 nothingmuch this is very well known stuff
22:44 KingDillyDilly I have no idea when forum software became decent, but PM isn't running on such great software now. Still, I wouldn't have said they reinvented the wheel if I knew there was no decent forum software then. You should have just corrected me.
22:45 * ruoso just loves a quote from wittgenstein: "When you can't talk it's better to keep quite" (ok, probably it's not written exactly this way)
22:46 KingDillyDilly And I didn't bring it up out of thin air. Someone mentioned their forum software, and that came to mind.
22:46 ruoso s/quite/quiet/
22:47 KingDillyDilly Thanks for being clear, ruoso.
22:48 beppu perlmonks really needs to apply ajax to their chatterbox.  ;)
22:49 theorbtwo beppu: Try [fullpage chat], or hit the "Need Help" link under the input box to get a list of more clients.
22:50 ruoso I never got used to the chatterbox interface
22:51 ruoso I always dreamed with the day it becomes just a wrapper to an irc channel...
22:51 ruoso and then I can just use xchat
22:52 masak ruoso: "Wovon man nicht sprechen kann, darüber muss man schweigen."/"Whereof one cannot speak, thereof one must be silent."
22:52 masak http://en.wikiquote.org/wiki/Ludwig_Wittgenstein
22:52 ruoso masak, thanks... I translated from what I remember of the portguese translation
22:52 KingDillyDilly Things were relatively civilized in chatterbox when I used it. Seemed I did better in chat until I got here.
22:53 KingDillyDilly But maybe I annoyed people and they kept quiet.
22:53 FurnaceBoy we don't like self aggrandising attention seekers. if you would stop praising your own brilliance, spouting incessant irrelevancies, and just attend, you'd attract less flak.
22:55 KingDillyDilly Um...for those who would like to review the logs for #perl6, pat special attention to FurnaceBoy's responces to my posts.
22:55 KingDillyDilly s/pat/pay/
22:56 KingDillyDilly But I won't be a permanent member of this room, so don't worry about me bothering you for long.
22:57 ruoso KingDillyDilly, have you ever thought that you may be wrong?
22:57 KingDillyDilly I'm wrong a lot.
22:58 nothingmuch KingDillyDilly: so maybe think slightly longer before speaking
22:59 KingDillyDilly I don't know what you're complaining about.
23:00 ruoso KingDillyDilly, it's a sign you have to think better about yourself
23:01 KingDillyDilly Ok. I'll think I'm better.
23:02 Quell joined perl6
23:02 ruoso s/think better/think twice/
23:03 * ruoso just translated a portuguese expression... I don't know if it makes sense in english...
23:07 larsen_ joined perl6
23:07 KingDillyDilly No function list for Perl 6 yet?
23:08 FurnaceBoy <KingDillyDilly>I don't know what you're complaining about. --- that's the enduring problem, right there.
23:09 KingDillyDilly No, I think the problem is you and a small handfull of others.
23:10 KingDillyDilly I know what you accused me of, but I don't know what I did that fits.
23:10 * ruoso goes home... good luck
23:10 xinming KingDillyDilly: Still not, but IMO, 90% functions of perl 5 will retained in perl 6.  hmm, also, there might be other enchancements on functions blessed by the power of perl 6.  And by the way, the function list isn't important...
23:10 KingDillyDilly Except maybe to a minor extent, but still, an example would help, and coming from someone other than you would help too.
23:11 xinming how to do it in perl 6 is more important. functions rename doesn't hurt much. since you can make wrapper your self.
23:11 xinming did you checkout the pugs repository?
23:11 xinming if so, go examples/ dir...
23:12 xinming or....  http://svn.openfoundry.org/pugs/examples/
23:12 ruoso left perl6
23:12 KingDillyDilly I didn't comb through too much of the Perl 6 websites. I was mainly wondering about the reset function, but I wanted to change the question so I don't bother you all too much with the same thing.
23:14 xinming http://www.rodadams.net/Perl/S29.html   <----  search the word reset... you'll see how the specification writer will deal with it.
23:15 KingDillyDilly Thanks. Unknown for now I guess.
23:15 KingDillyDilly I'll spare you all my sales pitch for it.
23:17 KingDillyDilly Though I think the question should be whether there's a way to create a good reset function, not whether there was a good use for the way the old one worked.
23:17 meppl gute nacht
23:19 lumi joined perl6
23:24 Qiang joined perl6
23:26 szbalint joined perl6
23:30 KingDillyDilly left perl6
23:45 mako132_ joined perl6
23:50 lidden joined perl6
23:52 spinclad ah, sweet quiet
23:54 cdpruden joined perl6
23:58 arcady yep

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

Perl 6 | Reference Documentation | Rakudo