Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-28

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:01 stevan__ joined perl6
00:20 amnesiac joined perl6
00:20 nirgle left perl6
00:45 FurnaceBoy joined perl6
00:47 Quell joined perl6
00:51 avar what's the best perl6/parrot way of generating a syntax tree for a given syntax?
00:51 avar Let's say a xml doc or a markdown doc,
00:51 avar i.e. what stuff is new that makes it easy to write parsers like that?
00:57 dvtoo there is a perl6 version of parse::recdescent, no?
01:20 arcady um... perl6 rules? or whatever they're called these days
01:21 mako132_ joined perl6
01:22 avar arcady: uh, yeah, I was thinking of those too
01:25 cognominal avar, see pge in parrot
01:26 cognominal it is a parser written in parrot
01:30 buu Woo, sexy.
01:37 particle_ joined perl6
01:41 jserv-- joined perl6
02:10 weinig is now known as weinig|sleep
02:31 FurnaceBoy is now known as FB|afk
02:45 FurnaceBoy joined perl6
03:22 Quell joined perl6
03:24 Quell joined perl6
03:25 Quell joined perl6
03:34 frederico joined perl6
03:37 KingDiamond joined perl6
03:44 stevan__ is now known as stevan
03:59 svnbot6 r10102 | audreyt++ | * Pugs.Parser: Speed up things... dramatically by avoiding
03:59 svnbot6 r10102 | audreyt++ |   recalculating optable exccessively.
03:59 audreyt (pending benchmarks)
04:01 meppl good morning audrey
04:01 audreyt yo
04:02 * spinclad svn up's
04:04 TimToady shall I start a new smoke here?
04:05 audreyt that'd be cool
04:05 TimToady It's still about 3000 tests down from where it used to be...
04:05 audreyt yup
04:05 audreyt that's known and will be taken care of :)
04:06 audreyt (but brb)
04:07 TimToady I've got my snapshot with just that difference, so comparison to my previous smoke should be somewhat meaningful.
04:07 buu audreyt: 'sped' =]
04:26 meppl gute nacht
04:29 TimToady night.
04:29 meppl ;)
04:33 audreyt buu: English (tense, plurality) ne my forte :)
04:34 TimToady looking at a few of the tests, does seem faster.
04:35 TimToady sanity tap went from 33 seconds to 25 seconds.
04:35 TimToady previous one, "live" went from 17 to 13 seconds.
04:36 TimToady so I'm guessin' it might actually run less than 2 hours this time.
04:39 audreyt yay.
04:39 TimToady actually, it was getprint and live, no tap
04:39 TimToady but still.
04:39 TimToady and seems to be passing the same tests...
04:40 audreyt but this change breaks one assumption
04:40 audreyt sub infix:<moose> { 1 moose 2 }
04:40 audreyt previously we install moose into infix as soon as we see the sig
04:40 audreyt now it's only done after the body
04:40 audreyt our &infix:<moose>;
04:40 audreyt BEGIN { &infix:<moose> := { ... } }
04:40 audreyt is the correct desugaring once we get declarators for real
04:41 audreyt so after-the-body is fine, as it will be desugared into two things
04:41 audreyt and the infix table is repopulated after the "our" thing
04:41 audreyt so, "it'll be fine again soon"
04:56 elmex joined perl6
04:58 arcady pugs takes about 12 and a half minutes to build here
04:58 arcady parrot takes just under 2 minutes
04:59 TimToady Haskell thinks harder than gcc...
04:59 arcady this is true
05:00 spinclad thinks more, for sure; harder, likely
05:02 spinclad 'think smarter, not harder'
05:02 svnbot6 r10103 | audreyt++ | * Lexer/Parser: drop all mention of tryRule and tryChoice;
05:02 svnbot6 r10103 | audreyt++ |   next step is to take out all the unneccessary explicit "try".
05:04 TimToady "do, or do not.  there is no try..."
05:07 arcady so true...
05:10 audreyt so in
05:10 audreyt f / g
05:10 audreyt if &f is nullary or known type
05:10 audreyt then it's division
05:10 audreyt if not, it's rx quoting
05:10 audreyt right?
05:11 audreyt ("known type" = ::f)
05:12 spinclad .oO{ if the known type doesn't Regex }
05:12 audreyt mrr?
05:12 audreyt no, I mean where "f" stands for type literal
05:12 audreyt like Int
05:13 arcady ruby seems to disallow the regex quoting interpretation
05:13 spinclad so generic in its argument ?
05:14 TimToady though what it would mean to divide a type, I'm not sure...
05:15 spinclad well in ring theory we used to calculate with Z/2...  Z ~~ Int ...
05:16 TimToady seems to me I just saw plenty of Unicode operators for that sort of thing...
05:16 spinclad right, for when double-striking just isn't good enough
05:17 spinclad oh, for the / ?  no, we just used the vanilla / operator (in chalk)
05:17 TimToady there are several of those vanilla /'s too...
05:18 TimToady ∕       2215            DIVISION SLASH
05:18 spinclad well yeah, there's several of pretty much everything...
05:18 TimToady ⁄       2044            FRACTION SLASH
05:19 TimToady /      FF0F            FULLWIDTH SOLIDUS
05:19 spinclad but this was even before TeX, we weren't making all those distinctions ... just making up new kinds of arrows all the time
05:20 TimToady ooh, don't get me started on arrows...
05:20 TimToady I've been trying to figure out what => and ==> map to...
05:21 FurnaceBoy how about => and ==>   :-) /* sometimes ASCII is best */
05:22 spinclad follow haskell and just kern them together ?  (look, new symbols!  overlap is kewl!)
05:23 FurnaceBoy APL
05:23 FurnaceBoy pioneered the creative doublestrike
05:23 TimToady don't need no stinkin' kernin'...
05:23 FurnaceBoy apostrophes go with everything :)
05:23 TimToady quads R us
05:24 spinclad linguists didn't do so badly either
05:24 TimToady heh, heh...
05:28 spinclad ... 'make' tends to take about 3 hours here.  i may not stay up that long.  tests run about 11 hours and tend to make my system very sluggish.
05:29 TimToady well, I'm up to rules now, and that's for a smoke
05:29 TimToady obra gave me a nice machine.
05:29 TimToady obra++
05:30 audreyt obra++
05:30 spinclad obra++ but i'd like one too
05:31 audreyt spinclad: apply for SoC?
05:31 spinclad not a student... only unemployed
05:31 TimToady Maybe if you resolder the motherboard on your old machine six times obra will get you one too.
05:32 spinclad i could try soldering in some more memory and see if it passes smoke tests
05:32 audreyt or you can use feather...
05:33 obra spinclad: invent a language that's the core of my business ;)
05:34 spinclad true... but i *like* to play locally
05:34 obra TimToady++ # putting the machine to good use
05:34 TimToady just trying to burn it in... :)
05:34 obra Oh. That reminds me. I should hassle the vendor about the warranty package again.
05:35 TimToady yeah, I think the microphone went dead in it.  not a big deal, but still.
05:35 audreyt $job &
05:35 TimToady bye
05:35 spinclad see you soon
05:36 obra indeed.
05:37 obra Sent
05:38 obra This reminds me that I should hassle panasonic about my toughbook
05:38 obra also, that i should go to bed, about an hour ago
05:38 obra 'night, all
05:38 TimToady g'night
05:39 spinclad night night, sweet dreams
05:39 FurnaceBoy it has a built-in microphone... it's a Mac?? :)
05:40 TimToady no, thinkpad
05:41 arcady whoa, those have built in microphones?
05:41 TimToady mike input (both internal mike and external) now just hiss at me.
05:41 TimToady so I think it's slightly upstream of the mike itself.
05:42 TimToady was feeding line-level in, which it's supposed to be able to handle, but apparently it couldn't.
05:42 cfkklwww joined perl6
05:43 TimToady well, mine does...
05:43 TimToady It's a T43
05:45 TimToady but then, it doesn't have a Windows button.  I feel so deprived...
05:45 * FurnaceBoy sniggers
05:46 * FurnaceBoy goes hunting for one on his Apple keyboards
05:46 TimToady Though why a Chinese computer has an "Access IBM" button on it is beyond me...
05:46 arcady it's still from IBM times, I think
06:08 cfkklwww left perl6
06:12 scw TimToady: Thanks for pointing out :) I found I made the mistake in the bed last night but almost forget it when reaching computer
06:13 TimToady np
06:15 TimToady audreyt: your one change reduced my smoke time from 133.48 min to 121.53 min.  Exact same number of tests passed.
06:15 TimToady So, say, about 9% less time.
06:16 TimToady just reduce it by 12 minutes a few more times and pugs will finish running before it starts... :)
06:16 scw TimToady: That'll need a time machine, but you don't have one
06:16 scw only I have used one :p
06:16 TimToady you have one for sale?
06:18 arcady unfortunately mine seems to be stuck at a setting of one second per second
06:18 TimToady positive or negative?
06:19 Quell joined perl6
06:20 arcady imaginary
06:20 spinclad for fine tuning of time rate, displace it upward or downward in your local field of acceleration
06:20 TimToady now that's what I call a general solution...
06:21 spinclad mine here is set to about one light-year per year per year
06:21 spinclad so move it one light-year downward to reduce its observed rate to zero
06:22 TimToady I keep trying to measure a light-year to see if it changes but my meter always seems to be the same length proportionally for some reason.
06:22 spinclad farther for negative rates (though unobservable)
06:24 bsb joined perl6
06:25 TimToady we know where you are...
06:25 spinclad one light-year above an event horizon?
06:26 TimToady I suspect I've been closer than that to an event horizon.  Albeit, a temp one.
06:27 FurnaceBoy around here we call it "bedtime"
06:27 FurnaceBoy it's like Douglas Adams' lunchtime, but it's dark
06:27 TimToady a pajama'd singularity...
06:28 FurnaceBoy yes, but I'm not lookin'
06:28 spinclad his teatime though was dark
06:28 TimToady a state mainly defined by entropy....
06:28 gaal I once had a laptop with speakers and mic set up so that if they were both on I could wave my hands over the keyboard and it would produce an eerie sound from the feedback
06:29 gaal spooked a few people that way :)
06:29 FurnaceBoy you're spooking me right now
06:29 TimToady you have this thing about waving, don't you...
06:30 gaal yeah, I'd really love to meet particle in yapc
06:31 TimToady could be a rather simplie Feynmann diagram...
06:31 TimToady *simple
06:32 gaal the glue (== Perl) bringing us together
06:32 gaal ah, the drama of elementary physics
06:33 TimToady Audrey is charming, and I'm strange...
06:34 FurnaceBoy seems to be the consensus
06:34 gaal and nothingmuch has the Mus on
06:34 TimToady Well, at the moment I'm up, but I should be down.
06:35 FurnaceBoy amen to that...
06:36 gaal how does this bit of patch still typecheck?
06:36 gaal -literalRule name action = (<?> name) $ postSpace $ action
06:36 gaal +literalRule name = (<?> name) . postSpace
06:36 gaal the signature hasn't changed, it's
06:36 gaal literalRule :: String -> RuleParser a -> RuleParser a
06:37 spinclad seems to me the second $ is redundant ...
06:38 TimToady I don't believe Haskell is strongly typed in this timeline...
06:38 gaal never moose that, that line used to work
06:38 gaal there seems to be an arity mismatch?
06:38 spinclad if you apply literalRule name to an action, either version will apply postSpace to the action and (<?> name) to the result.
06:39 xern joined perl6
06:39 gaal but look at the sig
06:39 gaal the sig didn't change in the patch
06:39 gaal so this can't autocurry
06:40 spinclad true, same sig, *by* autocurry.
06:40 spinclad literalRule :: String -> RuleParser a -> RuleParser a   <more>
06:40 spinclad literalRule name :: RuleParser a -> RuleParser a
06:41 spinclad and if you apply that to action, literalRule name action :: RuleParser a
06:41 gaal oh of course
06:41 gaal sorry, a case of Morning Dumbness
06:41 spinclad haskell shock
06:42 spinclad it's very common
06:42 gaal I think the thing that was confusing me was that when you write declaratively and have several decs, they must all have the same arity
06:43 gaal so you can't refactor one to be pointsfree without changing the others
06:44 gaal aaagh! on my machine, audrey's recent commits seem to considerably slow down parsing!
06:44 gaal ah oops, no no
06:44 gaal sorry, I had unoptimized this time
06:44 gaal silly me.
06:44 gaal now *that* is less excusable morning dumbness :)
06:56 gaal audreyt: so, when you're around, I'd like to discuss the name and pos states
07:00 iblechbot joined perl6
07:01 Ymmv joined perl6
07:08 gaal so, yeah, I see about a 10% speedup
07:08 gaal audreyt++
07:12 marmic joined perl6
07:30 scook0 joined perl6
07:34 Aankhen`` joined perl6
07:34 Cryptic_K joined perl6
07:36 drrho joined perl6
07:45 elmex joined perl6
07:56 macroron joined perl6
07:56 svnbot6 r10104 | Darren_Duncan++ | ext/Relation/ : simplified the Relation class to remove any type/class distinctions on tuple attributes, so values can be of mixed types by default, like other Perl 6 composite types ; also clarified that Relation objects are immutable (like Set objects)
07:56 svnbot6 r10103 | audreyt++ | * Lexer/Parser: drop all mention of tryRule and tryChoice;
07:56 svnbot6 r10103 | audreyt++ |   next step is to take out all the unneccessary explicit "try".
07:57 gaal audreyt: moose?
08:09 xinming audreyt: Is it easy to convert PIL to PIR?  :-)
08:25 wilx`` joined perl6
08:29 kane_ joined perl6
08:51 audreyt xinming: ./pugs -CPIR -e 'say 1'
08:51 audreyt gaal: moose
08:53 xinming audreyt: why I ask is about self-hosting perl 6. :-)
08:54 audreyt xinming: I know, and that's why I did that PIR codegen as well :)
08:54 xinming audreyt++
08:54 xinming hm, May I ask how much is finished about self-hosting progress?
08:56 audreyt sure. in short: not much.
08:56 ghenry joined perl6
08:56 audreyt currently only some builtin functions is in perl 6
08:56 audreyt scw's recent work will hopefully bring the parser part to perl6.
08:56 audreyt beyond that, it's all still in PIR/Perl5/Haskell.
08:56 audreyt end of report :)
08:57 scw I couldn't have Pugs::Compiler::Rule accept 'rule Parameters { <Expr> [ , <Parameters> ] * }' any idea?
08:58 audreyt []* instead of [] *  ?
08:58 audreyt not sure if it matters
08:58 scw I means, *Parameters =  Pugs::Compiler::Rule->compile(' <Expr> [ , <Parameters> ] * ')->code
08:58 audreyt fglock: ping?
08:58 KingDiamond joined perl6
08:59 scw doesn't work either
08:59 scw audreyt: I think he usually appears three hours later :)
09:02 audreyt ok... hm
09:03 audreyt check in the code?
09:03 audreyt so I can duplicate the error here
09:04 scw audreyt: I have now a testing grammar file, using misc/pX/Common/Pugs-Compil​er-Rule/compile_p6rule.pl
09:04 scw it can be compiled to a perl 5 module
09:05 audreyt cool
09:05 scw the line above I gave (*Parameters = blah blah) cause the error
09:05 audreyt try drop the space after ]
09:05 audreyt ]*
09:05 scw I did
09:06 audreyt hm
09:06 audreyt did you define Expr?
09:07 audreyt hm
09:07 audreyt escape the comma, I think
09:07 audreyt \,
09:07 scw Expr is defined later, but I've tried to replace it with something defined earlier
09:07 audreyt seems silly, but I think it could be the problem
09:07 scw Ya, it's the problem :(
09:07 audreyt ow. :(
09:08 audreyt leave a comment saying that?
09:08 audreyt fglock: why does , has to be escaped in rules?
09:08 pasteling "gaal" at 192.115.25.249 pasted "mutator attempts" (11 lines, 359B) at http://sial.org/pbot/16943
09:08 audreyt (brb)
09:11 gaal ahhh, actually the signature does make sense doesn't it. someRule = captureNamed "moose" $ realRule
09:14 gaal so, is something like what  withRuleConditional does appropriate?
09:17 audreyt back
09:17 audreyt yes
09:17 audreyt makes ~perfect sense
09:17 audreyt in fact
09:18 audreyt capturePositioned can take another form that just captures into the "next" pos
09:18 audreyt but for now, explicit numbering may be fine
09:19 gaal um, I was assuming a Pugs.AST.Pos
09:19 gaal not good?
09:19 gaal maybe a little background will help :)
09:19 audreyt here Pos is actually just Int
09:19 gaal how is this going to be used?
09:19 audreyt yeah :)
09:20 audreyt ok
09:20 audreyt currently RuleParser a
09:20 audreyt is just
09:20 audreyt CharParser RuleState a
09:20 audreyt right?
09:20 gaal yes
09:20 audreyt but I'd like to make
09:20 audreyt CharParser RuleState (Match a)
09:20 audreyt in the future
09:20 audreyt (bbiab again... in midst of $meeting)
09:20 gaal k
09:24 ingy audreyt: let's live in Porland for the summer
09:24 ingy Haskell conference in Sept
09:25 ingy Portland
09:25 * ingy is looking for a place in Portland for the summer
09:25 gaal Come live with me and be my Love / And we will all the pleasures prove / That hills and valleys, dale and field, / And all the craggy mountains yield.
09:26 ingy zep?
09:26 audreyt ingy: my visa goes to Jul15
09:26 gaal haha, no, Christopher Marlowe actually :)
09:26 audreyt trying ot get it extended
09:26 audreyt gaal: so, (Mathc a)
09:26 gaal y
09:27 audreyt has matchResult :: a
09:29 audreyt matchPos :: [forall b. Typeable b => Match b]
09:29 audreyt matchNam :: Map Str (forall c. Typeable c => Match c)
09:29 audreyt matchBegin :: SourcePos
09:29 audreyt matchEnd :: SourcePos
09:29 ingy audreyt: is that hard to extend? and are you going to the Haskell conference?
09:30 audreyt ingy: I didn't plan to go there
09:30 audreyt I don't know how hard it is to extend
09:30 ingy just think... OSCON
09:30 audreyt I'll fidn out soon
09:30 gaal audreyt: I don't see these fuinctions...?
09:30 ingy we could probably rent a good place cheaply
09:30 audreyt gaal: er, sorry
09:30 audreyt data Match a = Typeable a => MkMatch
09:31 audreyt  { matchResult :: a
09:31 audreyt  , matchPos :: ...
09:31 audreyt  , ...
09:31 audreyt  }
09:31 gaal where? I have MatchRule in Rule.hs
09:32 audreyt I mean, to add it to Pugs.Parser.Types
09:32 gaal ahhh
09:32 gaal okay :)
09:32 audreyt Text.Parser.Rule is old prototype
09:32 audreyt but the idea is same
09:32 audreyt namely instead of just returning "a"
09:32 audreyt we now return a complete Match object
09:32 audreyt describing how "a" was matched
09:32 audreyt its subparts
09:32 audreyt as well as the begin and end moose
09:33 audreyt and write a "match" combinator
09:33 audreyt moose <- match ruleMoose
09:33 audreyt match :: CharParser RuleState (Match a) -> CharParser RuleState a
09:34 audreyt that just retrieves the result object, if we want to discard the submatches
09:34 audreyt that will be the bridge between parsec-world and p6rules-world
09:35 gaal okay (I think), except that I don't grok those sexy types yet
09:35 audreyt you can ignore sexy types
09:35 audreyt and use Dynamic
09:35 audreyt for now
09:35 audreyt it means the same thing
09:36 audreyt sexy types just means less boxing
09:36 audreyt but Dynamic will do fine
09:36 audreyt (Data.Dynamic)
09:36 gaal okay
09:37 gaal so, I was about to do
09:37 audreyt (it's for scw's emitter)
09:37 gaal sorry, pasting:
09:37 gaal captureNamed newState p = do
09:37 gaal    prev <- gets ruleName
09:37 gaal    modify $ \state -> state{ ruleName = newState }
09:37 gaal    rv <- rule
09:37 gaal    modify $ \state -> state{ ruleName = prev }
09:37 gaal    return rv
09:37 gaal but shouln't that be easily higer-ordered?
09:38 KingDiamond joined perl6
09:38 audreyt you can refactor them into withRuleName
09:38 audreyt but it amounts to the same thing
09:38 audreyt so don't bother to higher-order that, I think
09:39 gaal capturePositioned and captureNamed have like, the same body except for the field
09:39 gaal but not sure you can type the constructor polymorphically
09:40 gaal never mind
09:40 audreyt haskell's record system really sucks...
09:41 audreyt we can use OO-records
09:41 audreyt hacked in by yours truly
09:41 audreyt but that'd require 6.6 ;)
09:41 gaal sure :)
09:41 gaal hey at least we won't need to rm Syck.o
09:41 audreyt 6.4.2 still requires that?
09:41 audreyt I thought the new cabal means that's not needed
09:41 audreyt oh, that's what you are saying :)
09:42 gaal I was kidding actually
09:42 gaal I haven't tested yet.
09:42 audreyt neither have I
09:42 audreyt meeting over, yay
09:42 audreyt --> home, back in 40min
09:42 gaal don't think 6.4.2 in debian yet
09:42 gaal see ya
09:42 audreyt neither ports; I built it by hand
09:42 audreyt only took 2hr here
09:42 audreyt &
09:43 gaal that's not bad! I remember kernel compiles used to take that long, back in the day when I botherd with those
09:44 gaal bbiab also &
09:46 cdpruden joined perl6
10:01 b00t joined perl6
10:05 KingDiamond joined perl6
10:12 xinming_a1200 joined perl6
10:13 reZo joined perl6
10:18 xinming_a1200 joined perl6
10:19 xinming_a1200 joined perl6
10:20 iblechbot joined perl6
10:27 Aragone is now known as Arathorn
10:28 Odin-LAP joined perl6
11:13 svnbot6 r10105 | audreyt++ | * Pugs.Parser: Took out most of the "try"s.
11:13 svnbot6 r10105 | audreyt++ |   Also, rx_ macros are now retired; since Parsec is going to
11:13 svnbot6 r10105 | audreyt++ |   be a rules engine, Perl6-level rules shuffling is perhaps
11:13 svnbot6 r10105 | audreyt++ |   better done in a separate level.
11:14 audreyt should be another 20% or so faster now
11:14 audreyt more optimizations to come...
11:23 xinming audreyt++
11:27 jsiracusa joined perl6
11:41 szbalint yay
11:42 audreyt another 10% or so coming...
11:49 svnbot6 r10106 | gaal++ | * Parser: captureNamed and capturePositioned combinators, to
11:49 svnbot6 r10106 | gaal++ |   be refactored later with a Match type.
11:53 reZo joined perl6
11:59 FurnaceBoy joined perl6
12:04 trym joined perl6
12:07 kolibrie joined perl6
12:16 audreyt Data.ByteString++
12:16 audreyt # new and improved FPS
12:16 audreyt with more scarily-fast bits
12:16 * audreyt is benchmarking Syck performance
12:20 * theorbtwo wonders what a ByteString has to do with first person shooters.
12:20 audreyt FPS == FastPackedString
12:20 gaal "Hmm. Worse than [Char]. Unfortunately, this is not uncommon with Data.PackedString."
12:21 gaal # http://haskell.org/haskellwiki/Wc
12:21 gaal eep
12:21 audreyt PackedString is so bad
12:21 audreyt it's why FastPackedString was born
12:21 gaal ahhhhh, I didn't see there was no Fast there :) that didn't make sense
12:22 xinming joined perl6
12:22 gaal so what's the difference between FPS and BS?
12:22 audreyt in particular, I learned that there is a faster way to write unsafePerformIO
12:22 audreyt inlinePerformIO (IO m) = case m realWorld# of (# _, r #) -> r
12:23 gaal as opposed to...?
12:23 audreyt which is really sick... this maximizes inlining
12:23 * gaal needs to go
12:24 gaal ach, back tomorrow morning
12:24 gaal bye
12:24 theorbtwo Bye.
12:24 audreyt bye
12:24 theorbtwo Have a nice wahtever.
12:24 audreyt gaal: it's the same definition, but in userland, with explicit {-#INLINE#-}
12:24 gaal will, thanks (game night)
12:24 theorbtwo Ah, nice.
12:29 xinming pugs++, It works faster 30% times than before... :-)
12:29 theorbtwo Wow!
12:29 theorbtwo Just from the inlinePerformIO change?
12:30 audreyt no, I havn't committed that change yet! :)
12:30 theorbtwo Ah.
12:30 xinming theorbtwo: I don't know,  I just tested    `for %*ENV.kv -> $k, $v { "{ $k } --> { $v } <br />".say; }`
12:30 audreyt (it's from earlier "there's no try" changes)
12:31 theorbtwo There is no try!  There is only do {...}.
12:31 audreyt i.e. eliminate backtracking
12:31 audreyt do {...}, or do {not ...}. !exists &try
12:31 xinming theorbtwo: It ever used 4 seconds here,  but now, It takes about 2.5 ~ 2.8.
12:32 audreyt just wait, there's more... :)
12:33 avarab joined perl6
12:36 chris2 joined perl6
12:37 meppl guten morgen
12:38 Ymmv joined perl6
12:44 audreyt hi meppl
12:45 meppl y0
12:48 audreyt so, I upgraded to new bytestring
12:49 audreyt time ./pugs t/01-sanity/02-counter.t
12:49 audreyt before:
12:49 audreyt real    0m1.903s
12:49 audreyt user    0m1.427s
12:49 audreyt after:
12:49 audreyt real    0m0.807s
12:49 audreyt user    0m0.617s
12:49 audreyt that's... 50%?
12:49 FurnaceBoy you cheated! you put two hamsters in the wheel!
12:49 audreyt rofl
12:50 xinming real    0m2.088s
12:50 xinming user    0m2.024s
12:50 xinming sys     0m0.020s
12:51 xinming time ./pugs t/01-sanity/02-counter.t   <---  result of this....
12:51 audreyt good. expect it to become <1sec in your computer
12:51 audreyt committing
12:52 xinming `svk pull`ing
12:52 FurnaceBoy <anakin> NOOOOooooooo....... </anakin>
12:53 xinming real    0m1.118s
12:53 xinming user    0m1.068s
12:53 xinming sys     0m0.012s
12:54 xinming the same command,  but with my CPU full speed running... :-)
12:54 audreyt you have a pretty good computer :)
12:54 audreyt ok, r10110 landed
12:54 audreyt try to see if it gets faster?
12:55 xinming audreyt: It's the same model as the one you suggested me, I mean the CPU,
12:55 svnbot6 r10107 | audreyt++ | * Data.FastPackedString is now gone.
12:55 svnbot6 r10107 | audreyt++ | * Date.ByteString joins us at third-party/.
12:55 svnbot6 r10107 | audreyt++ | * Pugs is now 2x faster on startup!
12:56 audreyt oh, cool
12:56 audreyt try r10107...
12:58 cdpruden joined perl6
12:58 xinming Build configuration:
12:59 xinming        ghc_heap_size =>
12:59 xinming        inline_prelude_source => 0
12:59 xinming        install_dir =>
12:59 xinming        optimization => -O
12:59 xinming        precompile_modules => []
12:59 xinming        precompile_prelude => 1
12:59 xinming        smoke_concurrent => 1
12:59 xinming        smoke_upload => 0
12:59 xinming Setup: Line 24: Parse of field 'hs-source-dir' failed
12:59 xinming Setup: Line 24: Parse of field 'hs-source-dir' failed
12:59 xinming Build failed: 256 at util/build_pugs.pl line 96.
12:59 xinming make: *** [pugs] Error 2
12:59 xinming ???
12:59 rgs joined perl6
12:59 audreyt xinming: try r10108
12:59 xinming after I updated, I only use make, I get an error,  So, I tried make clean, then generate the Makefile again, But now, It tells me this
12:59 xinming audreyt: Ok
13:01 xinming Build configuration:
13:01 xinming        ghc_heap_size =>
13:01 xinming        inline_prelude_source => 0
13:01 xinming        install_dir =>
13:01 xinming        optimization => -O
13:01 xinming        precompile_modules => []
13:01 xinming        precompile_prelude => 1
13:01 xinming        smoke_concurrent => 1
13:01 svnbot6 r10108 | audreyt++ | * Pugs.cabal.in: switch to hs-source-dirs
13:01 xinming        smoke_upload => 0
13:02 xinming Setup: Line 24: Unknown field 'hs-source-dirs'
13:02 xinming Setup: Line 24: Unknown field 'hs-source-dirs'
13:02 xinming Build failed: 256 at util/build_pugs.pl line 96.
13:02 xinming make: *** [pugs] Error 2
13:02 * clkao gets the same error
13:02 audreyt mmm
13:03 xinming Glasgow Haskell Compiler, Version 6.4.1, for Haskell 98, compiled by GHC version 6.4.1
13:03 xinming :-)
13:04 audreyt ok. sec
13:04 clkao ghc-pkg: cannot find package plugins
13:04 clkao ld: Undefined symbols:
13:04 clkao _rl_catch_sigwinch
13:04 clkao during makefile.pl
13:04 audreyt that's fine
13:04 audreyt we hit cabal bugs :/
13:04 audreyt xinming: are you on win32?
13:04 clkao to the cabal
13:04 clkao this is darwin
13:05 xinming I am in Linux
13:05 audreyt ok, I know how to fix. gimme a sec
13:05 xinming audreyt++
13:08 jsiracusa joined perl6
13:08 audreyt try now
13:10 audreyt ibetter?
13:10 clkao Preprocessing library Pugs-6.2.11...
13:10 clkao Syck.hsc:3:34: ../../cbits/fpstring.h: No such file or directory
13:10 clkao Setup: got error code while preprocessing: Data.Yaml.Syck
13:10 svnbot6 r10109 | audreyt++ | * work around sad cabal bug by adding symlinks.
13:10 svnbot6 r10109 | audreyt++ |   (this breaks win32, so I'll check in a better fix.)
13:11 xinming Preprocessing library Pugs-6.2.11...
13:11 xinming Syck.hsc:3:34: ../../cbits/fpstring.h: No such file or directory
13:11 xinming Setup: got error code while preprocessing: Data.Yaml.Syck
13:11 xinming Build failed: 256 at util/build_pugs.pl line 96.
13:11 xinming make: *** [pugs] Error 2
13:11 audreyt ok, fixed
13:11 audreyt r10110
13:11 clkao you want to symlink the whole directory maybe
13:11 svnbot6 r10110 | audreyt++ | * relocate cbits.
13:12 audreyt no, I don't really want symlinks
13:12 audreyt nonportabl
13:12 audreyt what I need is either to bundle Cabal 1.1.4 (bad idea)
13:12 audreyt require everyone use GHC 6.4.2 (bad idea)
13:12 clkao pulling things into src
13:12 audreyt or just cp -Rf if Cabal version too low
13:13 audreyt the probelm is GHC642/Cabal114 supports multiple source dirs
13:13 audreyt but GHC641/Cabal100 does not
13:13 xinming audreyt: I use gentoo, So, compilation isn't a problem... :-P  It's handled well by portage... :-)
13:13 clkao single-minded cabal
13:15 xinming hmm, for now, no ghc-6.4.2 in portage... :-(
13:19 xinming audreyt: make them sym-link might make windows guy unhappy. :-)
13:19 multic joined perl6
13:19 FurnaceBoy maybe they'll get the hint
13:20 Daveman joined perl6
13:21 xinming real    0m1.150s
13:21 xinming user    0m0.996s
13:21 xinming sys     0m0.020s
13:21 xinming This is in powersave mode... :-)
13:22 xinming real    0m0.494s
13:22 xinming user    0m0.456s
13:22 xinming sys     0m0.020s
13:22 xinming  <==== Performance mode.
13:23 audreyt so, really 2x faster :)
13:24 xinming yes... :-P
13:24 xinming audreyt: will there be more hack on speed?
13:29 audreyt_ joined perl6
13:29 audreyt_ somehow taiwan<->feather connection is broken
13:29 audreyt_ a certain ISP called "hinet" is having broken router and broken DNS :/
13:30 audreyt_ xinming: yes, I've a few other commits. a sc
13:30 audreyt_ sec
13:31 xinming audreyt: hmm,  Could you please guess about when the self-hosted perl 6 be out?
13:31 xinming ok
13:31 qmole joined perl6
13:31 audreyt_ I can guess, but my guess will be wrong
13:32 clkao and once you spent the time doing the guess, it gets later
13:33 xinming It's Ok to be wrong, Just tell me your guess...   ;-)
13:33 xinming clkao: the guessing is only cost about at most 5 minutes...
13:35 audreyt_ I guess a self-hosting perl 6 will be released by christmas
13:35 audreyt_ there is a strong indication that it will be scheduled to be released by christmas.
13:36 audreyt_ (just to agree with previous prophesies)
13:37 xinming So, If Larry wish to release the official one in 20th birthday of perl 6..  Is that mean, we only have one year to writing other modules and docs etc???
13:37 xinming >_<
13:38 xinming I mean after the perl 6 bootstrapped.
13:38 xinming s/Is that mean/Does that mean/
13:39 audreyt_ another 6% coming
13:39 Qiang joined perl6
13:40 xinming hmm, Ok, thanks anyway, There is one truth between "self-hosting perl 6 in Christmas" and "official perl 6 release in 20th birthday of perl",  which one is more likely to choose?  This answer is left for Larry. :-)
13:40 svnbot6 r10111 | audreyt++ | * Pugs.Parser.Operator.ops: shave another 6% by using a
13:40 svnbot6 r10111 | audreyt++ |   Schwartzian transform that limits user-defined function
13:40 svnbot6 r10111 | audreyt++ |   names to be at most 64k long.
13:41 multic left perl6
13:41 elmex joined perl6
13:42 audreyt_ also note we never say which Christmas.
13:42 xinming >_<
13:42 xinming well, the next year is perl 6's 20th birthday.
13:43 xinming So, I don't think Larry will choose perl's 30th birthday...
13:43 xinming hmm, BTW, I mean perl's 20th birthday, not perl 6's... :/
13:44 FurnaceBoy belongs in topic -> "<audreyt_>also note we never say which Christmas."
13:50 audreyt_ FurnaceBoy: it's a FAQ with a FAA
13:55 weinig|sleep is now known as weinig
14:06 clkao clkao:~/work/pugs clkao$ time ./pugs -e1
14:06 clkao real    0m1.335s
14:06 clkao clkao:~/work/pugs clkao$ time svk version
14:06 clkao real    0m0.506s
14:06 * clkao would love to see pugs being just as slow as svk ;)
14:08 FurnaceBoy well, that round trips to server, right?
14:08 FurnaceBoy round the world, twice, is at least 400ms ... or 80% of that time
14:09 FurnaceBoy what's the 'user' time on that?
14:09 clkao 1.0 and 0.35
14:09 FurnaceBoy you're on a dual processor?
14:09 particle_ xinming: please say it's perl's birthday, but never say which birthday :)
14:09 clkao no
14:09 FurnaceBoy how can user be > real on a single cpu?
14:10 clkao how is 1.0 > 1.3 ?
14:10 FurnaceBoy sorry, I'm talking about your svk timing
14:10 clkao that's 0.35 > 0.5 ;)
14:10 FurnaceBoy erm.
14:14 vel joined perl6
14:15 DaGo joined perl6
14:25 lichtkind joined perl6
14:25 audreyt another... oh, 10% arriving soon.
14:29 xinming ...
14:30 hexmode joined perl6
14:33 justatheory joined perl6
14:38 fglock joined perl6
14:38 Ymmv joined perl6
14:41 gaal heh, best log message ever in r10111 :)
14:41 gaal <- not here, really
14:41 audreyt :D
14:42 audreyt I can up the limit to 2**31...
14:43 gaal not useful unless someone forsees encoding programs in function names...
14:43 audreyt yeah
14:43 audreyt actually, the limit is 1114111
14:44 gaal interesting limit.
14:44 audreyt it's maxunicode.
14:44 gaal I think it's prime.
14:45 audreyt it's 10ffff.
14:45 gaal I know it's a palindrome in base 10 :)
14:45 audreyt for someone who is really not here, you make some acute observations :)
14:45 gaal hmm? why is that maxunicode?
14:45 audreyt cuz it's specced as such?
14:46 gaal huh v1.1: why would that be specced to be maxunicode?
14:46 gaal audreyt: sure, this is the other side of what they call "absent mindedness"
14:46 * FurnaceBoy disgorges rationale on demand
14:47 audreyt heh
14:47 audreyt I imagine it's to make surrogates possible.
14:47 audreyt or to make utf8 max 4 bytes.
14:47 audreyt or both.
14:48 gaal isn't surrogates a representation thing?
14:49 audreyt surrogates makes use of two U16 to represent a U32
14:49 audreyt but obviously if you have the max U32
14:49 audreyt all allocated
14:49 audreyt then surrogates doesn't work
14:49 gaal or need to be longer. gotcha.
14:50 audreyt :)
14:51 gaal oh, I never realized till now that utf8 in the highest range looks like surrogate utf-16
14:51 gaal wikipedia++
14:52 kolibrie Juerd: (OT) do I want LVM (Debian install)?
14:52 fglock audreyt: backlogged to a ping a few hours ago
14:52 * gaal aways again
14:52 fglock <Expr> [ , <Parameters> ] * - may need \, because there is no rule to parse a comma yet
14:52 audreyt fglock: oh. "," is unrecognized in PCR
14:53 audreyt k
14:53 audreyt fglock: btw, SoC proposal looks very nice, I can't think of any thing to add
14:53 fglock I wonder if it could be clearer - looks like something simple but explained in too many words :)
14:54 fglock thanks!
14:57 audreyt I applied as a mentor to SoC
14:57 audreyt not sure if TPF will list me as mentor, though.
15:00 fglock cool!
15:02 fglock how about setting up a new 2-month target for pX/Common? some people love challenge
15:03 fglock something reasonably unreasonable
15:03 obra audreyt: why wouldn't they?
15:20 jserv-- joined perl6
15:26 svnbot6 r10112 | fglock++ | Pugs-Compiler-Rule - comma is not a special char
15:26 aufrank joined perl6
15:26 aufrank hello!
15:34 audreyt aufrank: yo
15:37 amnesiac joined perl6
15:41 hexmode joined perl6
15:44 audreyt ?eval 1..100
15:44 evalbot_10082 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
15:44 * audreyt praises a faster evalbot
15:49 xinming ?eval 1..100
15:49 evalbot_10082 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100)
15:49 svnbot6 r10113 | audreyt++ | * Pugs.Types.findList dominates a typical profile;
15:49 svnbot6 r10113 | audreyt++ |   attempt to fix it by memoizing the original result using
15:49 svnbot6 r10113 | audreyt++ |   initCache, and change the representation to a "Buf"
15:49 xinming Not that slow... :-)
15:49 svnbot6 r10113 | audreyt++ |   (i.e. Data.ByteString.ByteString.)
15:49 svnbot6 r10113 | audreyt++ | * Update all our tools to deal with ByteStrings.
15:49 svnbot6 r10114 | fglock++ | Pugs-Compiler-Rule - grammar cleanup
15:51 nothingmuch audreyt: ping?
15:53 audreyt pong
15:53 nothingmuch see my question about hackathonian iternary
15:54 audreyt got it
15:56 Juerd kolibrie: That depends.
15:57 Juerd kolibrie: In most cases, I don't. But if a main function of the box is data storage, and you want to add more space later, LVM is a very useful thing.
15:57 audreyt benchmark shows r10113 is a 16% gain
15:57 Juerd kolibrie: I wouldn't use LVM for my / or /boot, though
15:58 aufrank r10113++
16:05 svnbot6 r10115 | audreyt++ | * retire .yml.gz support (for now) as ByteString has no native
16:05 svnbot6 r10115 | audreyt++ |   zlib support, and also I'd like to use mmap.
16:10 kolibrie Juerd: okay.  I think I'll skip it for this install. Not a data storage box
16:17 svnbot6 r10116 | scw++ | Pugs::Grammar::MiniPerl6
16:17 svnbot6 r10116 | scw++ |  * MiniPerl6 language construction described
16:17 svnbot6 r10116 | scw++ |  * basic grammar added
16:17 svnbot6 r10116 | scw++ |  * parsing sample added
16:23 lisppaste3 joined perl6
16:28 xinming ($scw, $audreyt, $fglock)>>.   .++;
16:32 Arathorn can't you do >>++?
16:33 Arathorn or are they a tuple of objects which you're applying the ++ method to?
16:34 xinming Arathorn: yes, we can, But the fact is, I ever wrote  ($scw, ... )>>   .++;   But I realized long dot should be used...
16:34 xinming Arathorn: hmm, hold on please...
16:35 xinming Arathorn: hmm, sorry, my example might be wrong, as I can't test this in pugs,
16:35 xinming ?eval  my ($a,$b,$c) = 1,2,3; my @l = $a,$b,$c; @l>>++
16:35 evalbot_10082 Error: Can't modify constant item: VInt 1
16:36 audreyt the listop= isn't implemented
16:37 audreyt ?eval  my ($a,$b,$c) = (1,2,3); my @l = ($a, $b, $c); @l>>++
16:37 evalbot_10082 Error: Can't modify constant item: VInt 1
16:37 xinming audreyt: so, my `($scw, $audreyt, $fglock)>>.   .++;`  is right.
16:37 audreyt hm
16:37 audreyt I think it should be right, yes
16:37 audreyt the hyper form currently assumes rvalue
16:37 audreyt that's wrong
16:39 xinming by the way, can we say PIR a language?
16:39 audreyt sure
16:40 xinming for perl 6 can be self-hosting, 5 languages are used.  :-P We can make it in <<Guinness World Records>>
16:42 audreyt heh :)
16:42 audreyt it's very perlish :)
16:45 xinming GHC $pugs ==> Perl5 $MiniPerl ==> PIL $perl6 ==> PIR ==> Perl6 $rules
16:47 manbou joined perl6
16:53 svnbot6 r10117 | audreyt++ | * Pugs.Parser.Operator: Further speed up "ops" by avoiding
16:53 svnbot6 r10117 | audreyt++ |   repeated words/unwords calls.
16:57 scw It's really a good thing to write a blog that someone knows -- that make me feel like there should be a post every day so I'll spend time on hacking every day
16:57 audreyt now you know the feeling... :)
16:58 scw yup! Thanks for discovering it :)
16:58 TimToady wow, smoke testing now wasting a lot less of PG&E's E...
16:58 audreyt TimToady: you running a smoke with 1011x?
16:59 TimToady 10116, I think
16:59 audreyt excellent
16:59 audreyt 10117 should be within 3%
16:59 audreyt not significant
16:59 audreyt I just posted today's journal entry...
16:59 audreyt "Maybe multi-hour smoke loops will become a thing of past. Or maybe we just need more tests. :-)"
17:00 ingy hi audreyt
17:00 audreyt er, "of the past"
17:00 audreyt hi ingy
17:00 avarab joined perl6
17:01 avar joined perl6
17:02 audreyt tomorrow I'll take a look at new parsefails
17:03 audreyt and if all works out, then I'll see how to merge scw/gaal/fglock's current grammar hacks into one bootstrapping piece, as well as starting to implement the new Reference-free object model
17:03 audreyt but now sleep is definitely in order.
17:03 audreyt have fun :) &
17:06 TimToady g'night.  --> $job myself &
17:06 scw going home, too &
17:06 svnbot6 r10118 | audreyt++ | * "use Perl-6" and "use Perl::Foo" needs a 'try' to distinguish
17:06 svnbot6 r10118 | audreyt++ |   between version forms.  Either that or we play tokenizer tricks
17:06 svnbot6 r10118 | audreyt++ |   that allows future Audreys to do something like "use v6-pugs"
17:06 svnbot6 r10118 | audreyt++ |   all over again...
17:07 fglock scw: ping
17:10 Limbic_Region joined perl6
17:11 audreyt Limbic_Region: Win32 build is currently broken, because of symlinks;
17:12 audreyt if you rm -rf src/Data/ByteString and rm src/Data/ByteString.hs, and copy from third-party/fps/Data into them, the build should work
17:12 clkao fugure audreys...
17:12 clkao future
17:12 audreyt I'd be happy if someone can rm the symlinks
17:12 audreyt and hack Makefile.PL's prereqs rule to do the cp -Rf
17:13 audreyt automatically from third-party/fps/Data to src
17:13 Limbic_Region audreyt - amazingly enough, I got pugs to compile last night
17:13 audreyt excellent
17:13 Limbic_Region so it must have happened after that
17:13 audreyt today's pugs is nearly 3x faster here
17:13 Limbic_Region I just read
17:13 audreyt in runtime speed
17:13 audreyt yeah :)
17:13 audreyt so getting it to build on win32 would be a win
17:13 audreyt but I really need to sleep now :)
17:13 Limbic_Region so when you say currently - currently as in last 14 hours?
17:14 audreyt last 5hour or so
17:14 Limbic_Region sleep well
17:14 audreyt g'nite
17:14 Limbic_Region ok - will play with it tonight (if I get a chance)
17:14 audreyt Limbic_Region++ # in advance
17:16 audreyt &
17:17 scw fglock: pong # last five minutes on computer
17:19 xinming ?eval sub mysub { my $a = shift; };
17:19 evalbot_10082 Error:  unexpected ";" expecting term
17:22 Limbic_Region ?eval sub mysub {my $a = shift; }
17:22 evalbot_10082 Error:  unexpected ";" expecting term
17:22 xinming a bug,
17:22 Limbic_Region ?eval sub mysub {my $a = shift @_; }
17:22 evalbot_10082 undef
17:22 Limbic_Region yep - bug
17:22 Limbic_Region unless of course the synopses have been changed to reflect different DWYMery
17:22 audreyt I don't think shift defaults to @_ anymore, but I may be wrong.
17:23 Limbic_Region shhhh - you're sleeping remember
17:23 audreyt oh ok.
17:23 * audreyt remembers
17:23 * audreyt goes back to sleep
17:23 Limbic_Region xinming - unless you can find it in one of the synopses it is a bug
17:23 Limbic_Region it may be a documentation bug though
17:24 Limbic_Region and pugs has the implementation right
17:24 xinming ... she might somnambulate...
17:24 * Limbic_Region was assuming she was sleep talking - and I guess that falls under ambulate
17:25 xinming hmm, I'm not sure, But in fact,  for your example,  `sub mysub {my $a = shift @_};` is wrong anyway
17:25 xinming because @_ is readonly alias... :-)
17:26 fglock scw: just checking if you needed any help :)
17:26 xinming so, I think @_ can't be modified. as it is a *$capture  IMO
17:27 clkao i thought by default it's @_ is rw in s06/
17:28 xinming Arguments implicitly come in via the @_ array, but they are readonly aliases to actual arguments:
17:28 xinming copy from S06
17:28 xinming If you need to modify the elements of @_, declare the array explicitly with the is rw trait
17:31 svnbot6 r10119 | fglock++ | Pugs-Compiler-Rule - Pugs::Grammar::Rule use base 'Pugs::Grammar::Base';
17:31 svnbot6 r10119 | fglock++ | tilde is not special
17:31 TimToady shift is not modifying the elements of @_, it's modifying @_ itself.
17:32 TimToady the slurpy array defaults to rw.
17:32 TimToady as an array...
17:34 xinming TimToady: So, Is S06 wrong?
17:35 TimToady no
17:36 xinming hm, Ok, so, the @_ is rw, and the elements in @_ is ro,
17:36 TimToady yes, that's an effect of the *
17:36 xinming then, `sub mysub {my$a = shift}` doesn't work in pugs should be a bug
17:36 TimToady whether shift should default to @_ is a different question.
17:37 TimToady arguably, shift should default to whatever the slurpy array is...
17:37 TimToady if it defaults to anything,
17:40 xinming hmm, TimToady,  do you think make 3 types of _ is "right"?  eg,  $_ @_ %_  shift defaults to shift in @_ if no arguments, and, kv defaults to %_ if no arguments
17:42 szbalint joined perl6
17:51 froh-doh joined perl6
17:52 gavins joined perl6
17:52 gavins left perl6
18:00 xerox- is now known as xerox_
18:04 FurnaceBoy_ joined perl6
18:13 svnbot6 r10120 | audreyt++ | * unTODO passing tests.
18:13 svnbot6 r10121 | audreyt++ | * Pugs.Parser: Supprot for:
18:13 svnbot6 r10121 | audreyt++ |     @a .= map(&sqrt);
18:13 svnbot6 r10121 | audreyt++ |   by moving (Syn ".=")'s handling to Eval.  Eventually it's
18:13 svnbot6 r10121 | audreyt++ |   going to be an AST-rewriting macro...
18:20 xinming ....
18:21 * scw imagining how audrey commits code in her dream
18:22 szbalint She has that special power. The next state of the onion speech should include that. :)
18:22 theorbtwo She has mastered the inner teachings of the lamda-fu.
18:23 theorbtwo Also, her lips do not move in time with her words.
18:23 scw but her fingers do, I guess :p
18:27 fglock scw: I just answered your mail - I wasn't paying attention to irc :)
18:38 KingDiamond joined perl6
18:45 scw fglock: thanks a lot.  I'll tell you if I need more help :)
18:48 * FurnaceBoy_ wonders where our favourite troll has got to.
18:48 FurnaceBoy_ scw, I was on the Subversion download pages today, they have a new port to "Human Cortex" -- that's how she does it I guess.
18:49 FurnaceBoy_ unfortunately it's only installable on brains of her revision level
18:50 * FurnaceBoy_ needs an upgrade
19:10 dduncan joined perl6
19:10 FurnaceBoy_ is now known as FurnaceBoy
19:11 Quell joined perl6
19:27 js0000 joined perl6
19:28 TimToady xinming: I think you're basically on the right track with $_ @_ %_.  These are the names that are by default environmental and hence usable as CALLER::<@_>.  So I think now that shift should default to @_, whether or not it is bound as a slurpy parameter.
19:29 nothingmuch since .foo defaults to $_
19:29 nothingmuch does .shift default to @foo
19:29 nothingmuch err
19:29 nothingmuch @_
19:29 nothingmuch instead of $_
19:29 TimToady that is, shift() should default to @_, not .shift
19:29 nothingmuch due to some MMD dispatch stuff?
19:29 TimToady no .foo is always $_
19:30 nothingmuch is shift() and MMD call that takes an optional array that defaults to @_?
19:30 nothingmuch or is it a global?
19:30 TimToady basically .foo always rewrites to $_.foo.
19:30 TimToady it's not an MMD default.
19:30 nothingmuch is @foo.shift always equivalent to shift @foo, even if @foo overrides .shift?
19:31 ghenry joined perl6
19:31 TimToady how would @foo override .shift?
19:31 nothingmuch by having a different impl type
19:31 nothingmuch e.g. ties
19:31 nothingmuch foreign objects
19:31 nothingmuch what mess
19:32 nothingmuch i'm guessing 'shift' is just a sub shift ( @array = @_ ) { @array.shift } in the preludre
19:32 TimToady as a single arg function they both end up SMD.
19:33 TimToady the single arg default is CALLER::<@_>, which gives a zero-arg MMD form.
19:33 nothingmuch i'm mostly curious as to whether the "functional" style is a wrapper
19:33 TimToady but .shift never calls zero-arg form, but $_.shift
19:33 nothingmuch or some magic to get the method invoked on a default invocant
19:34 nothingmuch with some inndirect syntax
19:34 dduncan ?eval ('foo' => 'bar')
19:35 evalbot_10082 ("foo" => "bar")
19:35 TimToady zero-arg forms could be somewhat magical in implementation/optimization given that there can only be one MMD variant with 0 args
19:35 KingDillyDilly joined perl6
19:36 TimToady but we still distinguish a syntactically missing invocant from .shift vs a semantically missing invocant from shift().
19:37 TimToady gotta go eat lunch (company BBQ)... &
19:37 qmole hf
19:37 KingDillyDilly FurnaceBoy: He's right here, and doesn't intend to be a regular here because of the immaturity of way too many regulars, so you can stop wondering.
19:38 dduncan ::('foo').ref
19:39 js0000 hi- i offered to help with the pod stuff when audrey called for english speakers
19:39 dduncan ?eval ::('foo').ref
19:39 evalbot_10082 ::Type
19:39 js0000 some of it seems to be done already
19:39 KingDillyDilly Yesterday, I read someone criticise the Python community for being too polite. I can accept a fault like that.
19:39 js0000 is there anyone organizing this?
19:40 particle_ js0000: this is loosely organized, and sometimes largely unorganized :)
19:41 js0000 well, i'm willing to help
19:41 js0000 i can just start hacking away at it ...
19:41 particle_ js0000: if you have a commit bit, Just Do It.
19:41 particle_ if not, just do it (and submit a patch)
19:42 particle_ then you'll get a commit bit
19:42 js0000 ok
19:42 js0000 will do
19:42 js0000 thx
19:44 DaGo joined perl6
20:03 xinming js0000: If you want a commit bit, private message me your email address
20:04 xinming js0000: or, maybe, You already have one. :-)
20:05 TimToady doesn't seem to be a js0000 in the AUTHORS file yet...
20:07 xinming TimToady: hmm, also, can we make _ default === self ?
20:08 xinming and don't use .meth, use _.meth,  $_ is the same as perl 5.
20:08 TimToady you mean as a bare token?  probably not.  There's people want to use it for _() internationalization.
20:09 TimToady On top of which $.meth is no longer, and tells you the sigilness of the thing you're trying to call.
20:09 TimToady but there's no reason you couldn't declare your _ to mean self.
20:10 xinming why I think this is because of inner consistence.
20:10 TimToady It was certainly one of the many proposals during the "self" wars...
20:11 vel joined perl6
20:14 particle_ joined perl6
20:14 xinming IMO, Internationalization can use q_ and qq_ form or even add an adverb to quote operator, and we can make _ === self
20:15 xinming and I don't think self is perlish... :-)
20:18 particle_ then _._ can be the default method on self
20:18 xinming particle_:  self.self can do the same... :-)
20:19 xinming IMO, there isn't a _ use for _ yet.... :-P
20:19 xinming s/_//;
20:20 TimToady we aren't gonna fight the self wars again.  we will allow you to say "use self '_'".  But _ is still being reserved (along with `) for user definitions.
20:21 js0000 xinming: i already have one
20:21 js0000 although i haven't used it [yet]
20:24 orafu joined perl6
20:24 xinming TimToady: I don't wanna get into the self wars fight either. but for me, "use self '_'" in every class is abit like I have to use "use strict;" in every package in perl 5.
20:24 xinming hmm, BTW, self isn't that bad though
20:25 TimToady js0000: first thing most people do is add themself to AUTHORS.  it's a good confidence builder...
20:25 frederico joined perl6
20:26 TimToady xinming: that's not in the same class at all.  what you really want is a policy module "use xinming" that just sets everything you like.
20:26 larsen joined perl6
20:27 TimToady and if you can persuade everyone else to use it, then everyone will be programming in your dialect.
20:28 TimToady on the other hand, as soon as you have that, suddenly you have to be Very Responsible.
20:28 svnbot6 r10122 | particle++ | i'm an author, too!
20:29 * particle_ shirks responsibility
20:29 * FurnaceBoy notes, TimToady should know
20:30 FurnaceBoy no more all night partying, a bug report might come in on the Telex. It must be like being a superhero.
20:30 FurnaceBoy Mr Incredible. Not for everybody.
20:30 xinming well, I don't like making an dialect, As you think much more than I do, I'm lazy  <--- :-D
20:31 TimToady Well, me too--I just work a lot harder at being lazy than most people do.
20:31 particle_ eternally striving for mediocraty...
20:33 particle_ no, wait... that's me
20:34 TimToady are you a boson or a fermion?
20:34 particle_ i'm the most abundant particle in the universe...
20:34 particle_ the moron.
20:35 particle_ since i use so much perl, i consider myself a gluon most of the time
20:35 TimToady along with its supersymmetric partner, the lesson.
20:35 * particle_ sets spin to 1
20:35 TimToady what, you're not immutable?
20:36 TimToady they just don't teach values like they used to...
20:36 particle_ i guess you're not up on "the new physics"
20:37 TimToady I just want a big enough collider to de-symmetry-break the moron/lesson brokenness...
20:37 particle_ i'm afraid that'd take up most of the space in the solar system, so nasa's not likely to fund it
20:38 TimToady "fire up the counterrotating clue beams, Scotty!"
20:38 particle_ nice 21st century update of the old "clue stick" metaphor
20:39 js0000 TimToady: i'll add myself to AUTHORS once i actually do something!
20:39 js0000 it's all hypothetical now ...
20:39 TimToady adding yourself to AUTHORS *is* doing something.
20:39 TimToady don't discount the importance of cultural hacking to Perl.
20:41 * xinming thinks TimToady is "seducing" someone doing something. :-P
20:41 obra it's the standard requested first commit
20:41 obra js0000: It's a good way to safely test your commit pipeline
20:41 obra Either that, or update the VICTUALS file ;)
20:41 xinming js0000: yes, just do it...
20:42 xinming obra: It's easy, and fun.
20:42 Kattana js0000: no, dont give in to the peer preasure
20:43 xinming js0000: did you get the invitation?
20:43 dduncan question: is there a 'not' form of === ?  eg; !== ?  Or do I have to say !($foo === $bar) ?
20:43 particle_ js0000: if you don't do it, we'll all point at you and laugh
20:44 dduncan I don't see a !== in S03
20:44 particle_ ?eval !123 == !456
20:45 evalbot_10082 bool::true
20:45 particle_ ?eval !123 === !456
20:45 evalbot_10082 bool::true
20:45 particle_ just having fun until pugs compiles on win32
20:45 dduncan ?eval !123
20:45 evalbot_10082 bool::false
20:46 js0000 you'll all point at me and laugh anyway
20:46 js0000 sometimes i even point at myself and laugh
20:46 js0000 but it's usually just the medication talking ...
20:49 TimToady most of Pugs is medication talking...
20:50 js0000 woo hoo!
20:51 svnbot6 r10123 | js0000++ | adding myself [even though i haven't done anything yet ...]
20:51 js0000 AUTHORS update checked in
20:51 js0000 i need a cigarette ...
20:51 js0000 and i don't even smoke
20:51 js0000 haha!
20:51 particle_ welcome to the club. now, can you top that?
20:51 js0000 no
20:51 js0000 that's the top for me
20:51 xinming welcome js0000    :-)
20:51 particle_ you'd better have that cigarette, then :)
20:52 dduncan TimToady, looking at the operator precedence table in S03, I don't see or recognize a negative version of the === operator ... is there one or can we have one?
20:53 particle_ do you really need !== and !=== ??
20:54 Juerd particle_: !===?
20:54 dduncan I don't see either of those
20:54 dduncan I wanted a clean way to say $foo !== $bar
20:55 dduncan just as we have negative versions of == for numbers and eq for strings, and other types of equality tests
20:55 js0000 left perl6
20:55 particle_ juerd: you haven't seen ==== yet? ;)
20:55 particle_ i got carried away
20:56 dduncan in particular, not having to say !($foo === $bar) will let me hyperize the test
20:56 dduncan if that makes sense
20:56 particle_ btw i added the xand op to parrot, any chance we'll see it in perl6?
20:56 fglock Juerd: is it possible to run a cgi in feather?
20:56 dduncan eg @ary_of_sets >>!==<< $set
20:56 particle_ xand is like xor... A and B, but not BOTH
20:57 particle_ arguably !== is more important
20:57 dduncan eg, that's a test to see if any elements of @ary_of_sets are not equal to $set
21:03 Juerd fglock: See http://feather.perl6.nl/
21:04 fglock Juerd: thanks!
21:08 TimToady that would better be written all(@array_of_sets) === $set.  Hyperops are not for logic.
21:08 TimToady hypers are only for parallelism with run-to-completion semantics.
21:11 TimToady particle: I like xand.  It seems like a very...reliable...operator.
21:18 lisppaste3 joined perl6
21:21 Juerd but true|false
21:21 particle_ it is quite reliable, and easy to tset
21:22 particle_ reverse that last word there
21:22 Juerd particle_: You should make more software
21:22 SamB joined perl6
21:23 * spinclad notes that evalbot_10082 is yesterday's news, and still faster than it's been lately.
21:23 theorbtwo ?eval my $t1=time; $x=[*]1..20; [$x, time-$t1]
21:23 particle_ come to think of it, __ looks like a good candidate for high-precedence xand
21:23 evalbot_10082 Error: Undeclared variable: "$x"
21:24 theorbtwo ?eval my $t1=time; my $x=[*]1..20; [$x, time-$t1]
21:24 evalbot_10082 [2432902008176640000, 5501/500000]
21:24 kanru2 joined perl6
21:24 theorbtwo ?eval my $t1=time; my $x=[*]1..20; [$x, 0.0+time-$t1]
21:24 evalbot_10082 [2432902008176640000, 11629/1000000]
21:24 theorbtwo ?eval my $t1=time; my $x=[*]1..20; [$x, ~(time-$t1)]
21:24 evalbot_10082 [2432902008176640000, "0.017718"]
21:24 theorbtwo Looks pretty fast to me.
21:25 theorbtwo ...if occasionally obnixious.
21:26 spinclad i think a lot of the recent sluggishness has been in the prelude or earlier, before your first time even
21:27 Juerd [cold heat]--
21:29 spinclad re >>. .++ :  aren't >>op >>op<< op<< single tokens, like [op] ?  Though S03 doesn't speak in those terms, but that 'spaces are not allowed on the pointy end'.
21:29 dduncan okay, never mind my example of the hyper-operator ... I was trying to do something clever that wasn't so clever
21:29 spinclad but i suppose long dot is not strictly space...
21:32 spinclad >>. .++ ==== >>.++,  which works (i think), so never mind.
21:35 spinclad (dduncan, i was answering xinming from backlog, not your example, and getting it wrong (i think) besides)
21:35 dduncan yes, my comment was a belated follow-up to Larry's reply that I shouldn't be using hypers where I was
21:36 spinclad (ah. well, ok, then.)
21:37 dduncan anyway, my new commit 10124 may be fuel for discussion, or non-discussion
21:37 dduncan my impression of Perl 6's Mapping type looks like what a "tuple" is in relation-land
21:37 svnbot6 r10124 | Darren_Duncan++ | ext/Relation/ : following examples in ext/Set/, reimplemented the Relation class as a junction of mappings (where all mappings have the same set of keys) rather than an array of hashes ... my understanding of a Mapping is what I would call a tuple, and a set of same-headered tuples is a relation
21:38 dduncan maybe I should say 'set of mappings' rather than 'junction of mappings' ... but the examples in Set.pm use junctions and I don't know how to do otherwise at the moment
21:38 ruoso joined perl6
21:40 spinclad i would call them a set, as they have no logical operator attached
21:41 spinclad so... a map from a set of names to corresponding values.  sounds good.
21:42 spinclad (as a tuple.)
21:42 dduncan yes
21:42 dduncan I had been using a Hash to represent a tuple before, but then decided a Mapping would work better
21:43 dduncan relation-land's concept of a tuple, that is, where the values have names
22:12 jsiracusa joined perl6
22:17 dduncan left perl6
22:40 Khisanth joined perl6
22:55 masak left perl6
22:59 avar joined perl6
23:11 cjn joined perl6
23:27 steve`` joined perl6
23:29 PseudoPlacebo joined perl6
23:35 macroron__ joined perl6
23:52 larsen joined perl6
23:55 dbrock left perl6

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

Perl 6 | Reference Documentation | Rakudo