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