Openfoundry is down, maybe until late 10 Oct GMT. RO mirror svn.perl.org/perl6/pugs/trunk/ RW (out of date) pugs.googlecode.com/svn/trunk/ | Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com Set by TreyHarris on 8 October 2006. |
|||
00:17
mjk joined
|
|||
aufrank | TimToady or audreyt: any thoughts on an adverbial form for C< a => \($x, $y) > ? | 00:18 | |
ajs_home | aufrank: :a($x,$y) ? | 00:20 | |
aufrank | I'd like that if it were the case | ||
00:20
mako132 joined
|
|||
aufrank | but I think right now :a($x) is a => $x | 00:20 | |
and this change would make it a => \($x) | 00:21 | ||
maybe that's OK | |||
ajs_home | ?eval my $x=1;my $y=2; :a($x,$y); | ||
00:21
evalbot_r14076 is now known as evalbot_r14098
|
|||
evalbot_r14098 | ("a" => (\1, \2)) | 00:21 | |
ajs_home | Ah, I missed your \ | 00:22 | |
?eval my $x=1;my $y=2; :a(\($x,$y)) | |||
aufrank | yeah, I want a literal-capture adverbial pair | ||
evalbot_r14098 | pugs: don't know how to toVV': VRef <Scalar:0xb6be0a8c> | ||
ajs_home | freaky. That worked in my (few days old) pugs | 00:23 | |
aufrank: None the less, that should be the syntax | |||
aufrank | ajs_home: yeah, someone showed that earlier. I agree that's the way to do it given the current adverbial syntax | 00:25 | |
I just wondered if there was room to add another entry to the list of adverbial forms | |||
ajs_home | I can't see that it would save much if we did. (\(...)) would become something with 2-3 fewer characters... for something that's not likely to be used very often, I don't see the advantage. | 00:29 | |
Typically captures that users interact with will be in variables (like match results) anyway. | |||
OF outage kind of sucks... oh well | 00:31 | ||
v6 seems to choke on captures right now | 00:33 | ||
00:43
Odin- joined
00:46
mako132 joined
|
|||
wolverian | hm, the docs on spec.pugscode.org don't resize liquidly to under some specified width, which is a tad annoying if you want to read them with less wide lines | 00:52 | |
wolverian checks the css | |||
the width is specified in pixels, which is a big no-no. | 00:53 | ||
...as is the font size | |||
01:01
lollan joined
01:14
nperez joined
01:46
jayrod joined
01:59
frederico joined
|
|||
ingy | stevan: ping | 02:01 | |
wolverian | eh.. right, openfoundry is down | 02:08 | |
ingy | seen audreyt | 02:24 | |
jabbot | ingy: audreyt was seen 8 hours 33 minutes 8 seconds ago | ||
ingy | how palindramatic of her | ||
aufrank | are you calling her a palin-drama queen? ;) | 02:40 | |
audreyt | @tell cmarcelo wow, great work! I've applied the "use monad, not maybe" pattern to it so we can drop-in C3 into Pugs (or any other monad) right away. see perlcabal.org/~audreyt/tmp/C3.hs | 03:00 | |
lambdabot | Consider it noted. | ||
03:01
weinig|bb is now known as weinig|zZz
03:45
Qiang_ joined
04:01
cmarcelo joined
|
|||
cmarcelo | audreyt++ # better style with pattern guards && "monad, not maybe" pattern tip :) | 04:08 | |
04:21
jayrod left
04:23
Qiang joined
|
|||
TimToady | ~.~. | 04:45 | |
lambdabot | TimToady: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
04:46
drbean joined
|
|||
gaal | fancy typeset Haskell in papers always bunches up operators, like >> turning into Ā». But it should also unify guards to one vertical line whenever possible. | 05:04 | |
05:08
mac93 joined
|
|||
audreyt | gaal: still $job-bound? | 05:11 | |
lambdabot | audreyt: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
audreyt | @messages | ||
lambdabot | cmarcelo said 7h 2m 11s ago: hi! still not MO for Hs yet but did a little C3 MRO implementation because I didn't found any on the web. comments/ideas/suggestions welcome :) feather.perl6.nl/~ | ||
cmarcelo/C3.hs | |||
05:15
BooK_ joined
|
|||
gaal | audreyt: for the day, yes | 05:15 | |
audreyt | 'k | 05:16 | |
gaal | am having morning drink + email check + backlog | ||
no buyers for those shower pics eh. need to coach nothingmuch on marketing... | 05:17 | ||
so, what's the svk incantation to switch to a mirror repo? I'm using a local mirror. | 05:19 | ||
won't svk mi --relocate give me a "different uuid" error? | |||
05:20
agentzh joined
|
|||
clkao | it works if the one you are switching to one is a mirror of the original one | 05:21 | |
gaal | which neither of the /topical ones are :-( | 05:24 | |
audreyt | right. | 05:26 | |
we need the new box | |||
and run uuidgen on it | |||
TimToady | @messages | 05:27 | |
lambdabot | audreyt said 21h 41m 2s ago: How does S04:927 work with [undef, undef, 1, 5, undef, 6] ? | ||
audreyt | TimToady: I think a list-context undef is a dangerous idea... | 05:28 | |
gaal | spinozaUuidGen = const 1 -- different repos are but aspects of the same object | ||
audreyt | unless of could we want to train people to write [*, *, 1, 5, *, 6] | ||
but that doesn't quite mean "uninitialized" | 05:29 | ||
TimToady | ordinary undef should be 1 long always. Not sure about failures | ||
audreyt | A list is of undefined | ||
length only if it contains an undefined generator, which, happily, is | |||
what is returned by the C<undef> function when used in list context. | |||
So any Perl 6 function can say | |||
return undef; | |||
and not care about whether the function is being called in scalar or list | |||
context. | |||
gaal | $commute & | ||
TimToady | that what when I was trying to make "return undef" mean "fail". | ||
audreyt | so perhaps that para needs to be fixed | ||
'k | |||
TimToady | *was when | ||
yeah. | |||
agentzh | audreyt: i'm exceedingly happy to see the tests under t/closure_traits/ now all turn green. :) | 05:30 | |
lambdabot | agentzh: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
agentzh | audreyt++ audreyt++ audreyt++ | ||
TimToady | still thinking about s{pattern} expr and variations. | ||
audreyt | agentzh: thanks a lot for those tests | ||
agentzh: they are very helpful to ensure I got the implemntation right | |||
which took ~4 tries | |||
the only thing I adjusted was that NEXT is always run even on the final loop | 05:31 | ||
as long as its naturally "next"ing instead of last'ing out | |||
I think it's saner for it to behave that way | |||
agentzh | audreyt: those tests costed me a lot of time in the summer. ;) | ||
audreyt | because it has to run before evaluating the condition, and without evaluating the condition we don't know if it's the last run | ||
05:32
agentzh joined
|
|||
audreyt | 07:31 < audreyt> because it has to run before evaluating the condition, and without evaluating the condition we don't know if it's the last run | 05:33 | |
agentzh | audreyt: i've read the irc log. :) | 05:34 | |
but i think an explicit last will bypass NEXT {...}, no? | |||
audreyt | that is correct | 05:35 | |
you tested for it :) | |||
agentzh | yeah. :) | ||
audreyt | and PRE/POST seems to be a handy thing to have | ||
agentzh | indeed! | ||
i love those trait blocks very much. :) | |||
TimToady blushes. | |||
agentzh | TimToady: :) | 05:36 | |
TimToady: will return bypass LAST {...}? | |||
and leave? | |||
TimToady | I don't think so. | ||
agentzh | okay. | 05:37 | |
i didn't write tests for those cases. | |||
TimToady | FIRST and LAST are really traits on the loop as a whole. | ||
audreyt | currently I have it run LEAVE but not LAST | ||
TimToady | ENTER/LEAVE on the closure it repeatedly runs | ||
audreyt | on the theory that nonloop controls does not trigger loop ones | ||
hmm. | |||
but FIRST won't get run if the condition starts out false, no? | 05:38 | ||
neither will LAST | |||
TimToady | I think it's both or neither | 05:39 | |
FIRST, LAST, and NEVER. :) | 05:40 | ||
actually, doesn't python allow else on a loop? or is that some other language? | |||
audreyt | I think neither makes quite a bit more sense | ||
the first element of a null list is undefined | 05:41 | ||
neither is the last element | |||
TimToady | yeah, that way they are aimed at control points that are otherwise relative inaccessible. | 05:42 | |
one can always say something before or after the loop to get "both". | |||
audreyt | right. | ||
TimToady | s/or/and/ | ||
audreyt | in which case they are not really LEAVE on any particular scope | ||
and so "return" not triggering LAST makes some sense, I hope | |||
TimToady | I suppose, in the same sense that a goto into a loop might bypass a FIRST. | 05:43 | |
audreyt | yup. | ||
TimToady | but it seems righter the other way | 05:44 | |
because people will use them to enforce invariants. | |||
audreyt | hm. then I can arrange so it triggers LAST queue explicitly | ||
after LEAVE queue | |||
TimToady | the loop as a whole has to have a dynamic scope anyway | ||
audreyt | yes, but it has no place on the stack | 05:45 | |
TimToady | or you don't have anything to capture the exceptions | ||
audreyt | it's something like | ||
FOO while 1; | |||
here there's an invisible yet noncapturable {} around FOO | |||
TimToady | well, sure, but whenever you have a thunk somebody's doing things to it. | 05:47 | |
audreyt | nodnod. as LAST doesn't mix with LEAVE ordering anyway, either hanging it around the invisible thunk of invoke that explicitly turns out to be the same thing | ||
TimToady | been thinking a lot about thunks with respect to s {pattern} mumble | 05:48 | |
and how we can have a way forward on that without confusing people. | |||
the s:g {pattern} syntax is getting stretched out, so I've been looking for a syntactic shim | 05:49 | ||
so that we don't have to say {...} "..." | |||
which is okay for that case, but confusing to people used to | |||
[] and {} for quotes on the second part. | |||
best candidates I have so far: | 05:50 | ||
s{foo} -> "bar" | |||
s{foo} = "bar" | |||
s{foo}: "bar" | |||
05:50
agentzh left
|
|||
TimToady | problem with the first is that | 05:50 | |
s{foo} -> $foo | |||
is ambig with pointy subs | |||
*blocks | |||
audreyt | the colon seems to be the most overloaded one | 05:51 | |
TimToady | (not really, but visually) | ||
audreyt | so overload it poses least problem | ||
;) | |||
TimToady | problem with colon is | ||
s{foo}:qq/bar/ | |||
suddenly looks like a pair, but isn't. | |||
audreyt | an extended comma? | 05:52 | |
TimToady | the only problem with = is that, as a pseudo assignment, it seems to have the wrong precedence in: | ||
audreyt | s{foo} <== "bar" | ||
TimToady | $x ~~ s {foo} = "bar" | ||
audreyt | but that too is low prec | ||
TimToady | yes. | ||
nice thing about : is that we could actually make it a list operator | |||
audreyt | yes. | ||
I think the :qq/bar/ part is easily disambig | 05:53 | ||
TimToady | s{foo}: 1..* | ||
audreyt | s{foo}: qq/bar/ | ||
which I expect people to write that anyway | |||
TimToady | oh, another possibility was | ||
s{foo}/"bar" using / for old time's sake | |||
but I just don't like it as well. | 05:54 | ||
other problem with <== is that it's backwards from the transformative point of view | |||
the = at least finesses that by not looking backwards. | |||
audreyt | the / has the same problem as ./method | 05:55 | |
TimToady | also considered s{foo} => "bar" | ||
nod | 05:56 | ||
audreyt | I like the listop :, because it's not really twisting the meaning | ||
TimToady | thing I liked about = is that we already have lots of pseudo assigns that happen at weird times. | ||
though all to declarators at the moment | |||
would be funny if s turned out to be a declarator of substrs... | 05:57 | ||
audreyt | oy... | ||
TimToady | but syntactically s{} is a macro, so it can really take anything it jolly well pleases after it. | 05:58 | |
audreyt | sure, it's just the visualmetaphor | 05:59 | |
TimToady | also played around a lot with s{foo}.() and friends, but just couldn't make them "think" right. | ||
they don't look at all thunky | |||
considered s{foo}\"foo" too | |||
and \() of course | 06:00 | ||
other advantage of = is that we could think of it as unary (scalar assign) if we only want it to collect one expression. | 06:03 | ||
with :, you pretty much are expecting a list, and then you have to | 06:04 | ||
put parens around the whole thing | |||
(s{foo}: "bar"), more... | |||
vs s{foo} = "bar", more | 06:05 | ||
which can be visually stopped before the comma | |||
and we can always use = [...] for a changing list. | |||
audreyt | s{foo}:{...} will also terminate though, but yeah. | 06:06 | |
TimToady | not necessarily. | 06:07 | |
in .method:{...} it parses as .method: {...} | |||
audreyt | it is considered the final element of that list unless followed immediately | 06:08 | |
by a comma or comma surrogate. | |||
but yeah. | |||
nothingmuch | morning | ||
audreyt | hi nothingmuch | ||
TimToady | right, so your example can stop there too. | ||
except that it makes no sense to interpolate a closure. | 06:09 | ||
if the right side is already thunked. | |||
one thing going for bare s{foo} expr is that we could simply outlaw {expr} | 06:10 | ||
to catch all the P5 mistakes. | |||
doesn't help with [] or () though. | |||
<> will usually work. | |||
unless they try to interpolate | 06:11 | ||
but I still think it's better to spread it out with : or = | |||
audreyt | s{foo}:(...); | 06:13 | |
hm. still has to listop problem | |||
TimToady | s{foo} = (...) is less problematic that way | ||
audreyt | as we can say it's a item= | ||
oh well, I guess = wins on that account then | 06:14 | ||
TimToady | I think it stands out just a hair more too. | ||
without being obtrusive. | |||
audreyt | but don't make s{} a declarator :) | ||
it's a macro that parses assignment form, 'sall | |||
TimToady | why would I do a silly thing like that. | ||
audreyt | :D | 06:15 | |
TimToady | and I think it compresses better s{foo}=q/bar/ | ||
audreyt | sometime people is goign to want | 06:16 | |
s{foo}.="bar" | |||
I know I've wanted that several times. | |||
TimToady | ~= ??? | ||
audreyt | except it's now ~= | ||
S{foo}.=reverse; | |||
TimToady | s{foo}+=42 | ||
audreyt | yeah. | 06:17 | |
s{foo}x=3; | |||
TimToady | s{foo}=($/.=reverse) | ||
audreyt | could be handy. | ||
TimToady | so s{foo} really is a kind of self-hypering lvalue. | 06:18 | |
it definitely has some possibilities, though maybe not for 6.0 | 06:19 | ||
audreyt | I think it's good jus tto say it looks that way | ||
but saying "$x = s{foo};" is invalid | |||
not all things need to be first class... | |||
TimToady | yes, it's really a metaop of some sort. | ||
06:20
marmic joined
|
|||
TimToady | or a term that metas the following infix. | 06:20 | |
or sump'n | |||
not sure how this translates to .subst though, unless second arg {$/.=reverse} and such. | 06:21 | ||
or $() more likely. | |||
audreyt | *nod* | 06:22 | |
audreyt goes back to relenging -- subsets are now parsed | |||
gaal | are nested traits legal? { LEAVE { LEAVE { ... } } } | 06:25 | |
newVal allows it | |||
but I'm not sure it makes sense! | |||
audreyt | it certainly does | ||
gaal | use case? | ||
audreyt | you can leave a leave block | ||
LEAVE { UNDO {...} } | 06:26 | ||
L/L doesn't make a lot of sense but L/U or L/Keep does | |||
gaal | okies | ||
only a matter of time till someone writes an interpreter using only closure traits for control | |||
audreyt | sure, that's part of perl6's ferocity | 06:28 | |
audreyt ponders "a feral language" | |||
gaal | Perl's already a creole of sorts | 06:29 | |
TimToady | booga booga wooga | ||
people *are* going to want to say $obj.=s[foo] = "bar" | 06:30 | ||
hmm, I wonder if we can distinguish a .subst() normal method from a .subst[] macro, since () always forcing routineness. | 06:32 | ||
audreyt | we certainly can | ||
TimToady | assuming subst is defined as a macro, of course, or it'd be .subst.[] | ||
audreyt | visually confusing though | ||
mixing quotelikes with methodlikes | 06:33 | ||
TimToady | yeh | ||
I'll leave the method syntax vanilla for now. | 06:34 | ||
maybe we make a general policy that method macros should be ALLCAPS | 06:35 | ||
.SUBST[foo] = "bar" definitely stands out... | |||
pretty darn ugly though | 06:36 | ||
maybe we can come up with something prettier someday | 06:37 | ||
audreyt | oy, [\\] is parsed as \ on infix \ | 06:44 | |
if we have a infix \\, how do we explicitly want \\ foled? | |||
folded | |||
[ \\] ? | |||
hm, maybe not | 06:45 | ||
audreyt chalks that up as "don't do that then" | |||
TimToady | < audreyt> oy, [\\] is parsed as \ on infix \ | 06:55 | |
that's incorrect. S03 says it prefers the infix. | |||
then [\\\] is the triangular form. | |||
audreyt | okie. | 06:56 | |
TimToady | That's at S03:1036 | ||
audreyt | &infix:<\\> means actually \ right? | 06:57 | |
as <> respects quotes | |||
have to write &infix:{qn'\\'} to get \\ | |||
s/quotes/escapes/ | |||
TimToady | yes | ||
actually, s[foo] x= 3 just turns into .subst(/foo/, { $() x 3 }) since assignment back to $() is already assumed. | 06:59 | ||
07:00
mac93 joined
07:02
mac93 joined
|
|||
audreyt | [\\] is fixed | 07:11 | |
07:13
iblechbot joined
07:15
zakharyas joined
|
|||
TimToady | audreyt++ | 07:22 | |
I've checked in the s[foo] = "bar" spec, but we can just deprecate s[foo][bar] for this release. | 07:23 | ||
actually, almost all the occurrences in pugs were s{foo}{bar} | |||
audreyt | so maybe just change them all to say that... | 07:24 | |
TimToady | to say what? | ||
audreyt | I still wonder if quotelike adverbs should simply only take () for args and never other forms. | 07:25 | |
to say {}{} not [][] | |||
what I mean is | |||
m:adv(1){...} | |||
but never | |||
m:adv{1=>2}{...} | |||
this is a generalization that can bring back | |||
m:g{...}. | |||
TimToady | lemme sleep on it | 07:26 | |
audreyt | and because m() doesn't match, neither shuld m:g(), and eople will accept that | ||
but m:P5{...} is a compellign use case of not generalizing pair syntax with quotes, and only allow () | |||
sure :) sleep well | |||
m:!adv will still be sllowed, of course. | |||
allowed, even | |||
07:27
polettix joined
|
|||
gaal | hah! I'm reading a Syn patch and see | 07:43 | |
So any Perl 6 function can say | |||
fail "message" | |||
and I mentally complete "and not care what monad it's in" | |||
08:32
kane-xs joined
08:44
buetow joined
08:47
smash joined
08:48
smash is now known as smash_
09:02
elmex joined
09:05
miyagawa_ joined
09:17
ruoso joined
09:25
cm_ joined
|
|||
stevan | ingy: ping | 09:36 | |
09:44
jferrero joined
|
|||
TreyHarris | Check your feather email | spec.pugscode.org | paste: sial.org/pbot/perl6 | pugs.blogs.com | 10:24 | |
TreyHarris | openfoundry's back | 10:25 | |
gaal | yay | 10:32 | |
audreyt | I implemented full continuations | 10:34 | |
and full coroutines | |||
that works across blocks | |||
and generally rewrote the Eval monad :) | |||
pushing back in a bit | |||
integral | audreyt++ # yet more amazing magic | ||
audreyt | integral: I realized that we need to be ContT ErrorT instead of lumping the two together | ||
however, ErrorT is lazy in its arguments (Either), so we also need a strict Either | 10:35 | ||
the rest just follows :) | |||
integral | ah, fascinating :-) | ||
audreyt | &?CALLER_CONTINUATION is now a full reentrant one | ||
and I'm glad to report that t/unspecced/cont.t all passes | 10:36 | ||
svnbot6 | r14099 | audreyt++ | r14971@T: audreyt | 2006-10-09 13:14:19 +0800 | 10:40 | |
r14099 | audreyt++ | * screen-nodestatus.pl: Fix parsefail. | |||
r14100 | audreyt++ | r14972@T: audreyt | 2006-10-09 13:48:40 +0800 | |||
r14100 | audreyt++ | * Pugs.Val: Explicitly UNPACK inside the boot file, which seems to be | |||
r14100 | audreyt++ | the only way to get 6.6 and -HEAD both recognize the unboxedness. | |||
r14101 | audreyt++ | r14973@T: audreyt | 2006-10-09 13:58:39 +0800 | |||
r14101 | audreyt++ | * Don't unpack Val for now. | |||
r14102 | audreyt++ | r14974@T: audreyt | 2006-10-09 14:37:29 +0800 | |||
r14102 | audreyt++ | * FindBin.pm: Correct a bogus use of BEGIN block. | |||
r14103 | audreyt++ | r14975@T: audreyt | 2006-10-09 14:40:20 +0800 | |||
r14103 | audreyt++ | * rename the p5 script in examples/cookbook/ to -p5 | |||
r14104 | audreyt++ | r14976@T: audreyt | 2006-10-09 14:49:47 +0800 | |||
r14104 | audreyt++ | * 01-02default-variables.pl: Use infix:<??> as the example operator name | |||
r14104 | audreyt++ | that's aliased to //, for old time's sake. The problem with infix:<qn{\\}> | |||
r14104 | audreyt++ | is that [\\] can also be construed as a scan over infix:<\>. | |||
r14105 | audreyt++ | r14977@T: audreyt | 2006-10-09 15:19:34 +0800 | |||
r14105 | audreyt++ | * Pugs.Lexer: Stylistic tweak. | 10:41 | ||
r14106 | audreyt++ | r14978@T: audreyt | 2006-10-09 15:20:40 +0800 | |||
r14106 | audreyt++ | * Pugs.Parser.Operator: When both infix \ and infix \\ is in scope, | |||
r14106 | audreyt++ | [\\] should parse as folded \\, not scanned \. | |||
r14107 | audreyt++ | r14979@T: audreyt | 2006-10-09 15:21:18 +0800 | |||
r14107 | audreyt++ | * Pugs.Parser: Kluged up parser for subsets; not actually doing anything yet. | |||
r14108 | audreyt++ | r14980@T: audreyt | 2006-10-09 15:23:37 +0800 | |||
r14108 | audreyt++ | * ext/Benchmark/t/basic.t: This is not a hash: | |||
r14108 | audreyt++ | { | |||
r14108 | audreyt++ | foo => sub { | |||
r14108 | audreyt++ | ... | |||
r14108 | audreyt++ | } | |||
r14108 | audreyt++ | } | |||
r14108 | audreyt++ | But this is: | |||
r14108 | audreyt++ | { | |||
r14108 | audreyt++ | foo => sub { | |||
r14108 | audreyt++ | ... | |||
r14108 | audreyt++ | }, | |||
r14108 | audreyt++ | } | |||
r14108 | audreyt++ | Can you spot the difference? :-) | |||
r14108 | audreyt++ | See L<S04/Statement-ending blocks/"block must be disambiguated by a trailing comma">. | |||
r14109 | audreyt++ | r14981@T: audreyt | 2006-10-09 15:29:24 +0800 | |||
r14109 | audreyt++ | * Pugs.Class.C3: Generalized C3 algorithm, courtesy of Caio Marcelo. | |||
r14110 | audreyt++ | r14982@T: audreyt | 2006-10-09 15:33:18 +0800 | |||
r14110 | audreyt++ | * Perl::Compiler::CodeGen::NameGen - $.foo()(...) is needed to invoke a Code | |||
r14110 | audreyt++ | attribute, not $.foo(...). | |||
r14111 | audreyt++ | r14983@T: audreyt | 2006-10-09 16:36:29 +0800 | |||
r14111 | audreyt++ | * lib.pm: Tidy up the code and force eager evaluation of @*INC. | |||
r14112 | audreyt++ | r14984@T: audreyt | 2006-10-09 16:43:13 +0800 | |||
r14112 | audreyt++ | * Pugs.Prim: Force eager evaluation on list-context readdir. | |||
r14113 | audreyt++ | r14985@T: audreyt | 2006-10-09 16:45:12 +0800 | 10:42 | ||
r14113 | audreyt++ | * Use MonadError instead of MonadCont for error handling. | |||
r14113 | audreyt++ | This will help separate out continuations with exceptions. | |||
r14114 | audreyt++ | r14986@T: audreyt | 2006-10-09 17:01:41 +0800 | |||
r14114 | audreyt++ | * Oops, fix a miscommit. | |||
r14115 | audreyt++ | r14987@T: audreyt | 2006-10-09 17:02:11 +0800 | |||
r14115 | audreyt++ | * Rewrite the Eval monad so we control our own exception | |||
r14115 | audreyt++ | results now, and force all actions to be strict. | |||
r14116 | audreyt++ | r14988@T: audreyt | 2006-10-09 17:06:05 +0800 | |||
r14116 | audreyt++ | * Fix lib.pm again using uniq(). | |||
r14117 | audreyt++ | r14989@T: audreyt | 2006-10-09 17:13:29 +0800 | |||
r14117 | audreyt++ | * dir.t: @x.sort is better than [sort(@x)]. | |||
r14118 | audreyt++ | * Pugs.AST.Eval: Rewrite the Eval monad again to introduce | |||
r14118 | audreyt++ | full continuations on top of the control-exception stack. | |||
r14118 | audreyt++ | This is good because it allows us full continuations that | |||
r14118 | audreyt++ | does not stop at subroutine boundaries. | |||
10:42
agentzh joined
|
|||
SamB | so many changes, reminds me of "darcs pull" ;-) | 10:43 | |
svnbot6 | r14119 | audreyt++ | * Pugs.AST.Internals: Introduce a different set of control | ||
r14119 | audreyt++ | combinators: | |||
r14119 | audreyt++ | # establish a dynamic scope to handle control exceptions | |||
r14119 | audreyt++ | tryT $ ... | |||
r14119 | audreyt++ | # like tryT, except you also get a "throw" for free | |||
r14119 | audreyt++ | catchT $ \throw -> ... | |||
r14119 | audreyt++ | The "shiftT" is discontinued as Perl6 doesn't have first-class | |||
r14119 | audreyt++ | delimited continuations (yet), though some day I'd like to add it. | |||
r14119 | audreyt++ | Use "retError" and "retContol" instead to fire off exceptions. | |||
r14119 | audreyt++ | The "callCC" is now used to establish fully reentrant continuations. | |||
r14119 | audreyt++ | The "resetT" guard is only used in coroutines now to limit the | |||
r14119 | audreyt++ | scope of its callCC register. | |||
agentzh | audreyt is in hacking mode. yay! releng++ | 10:44 | |
audreyt | SamB: it's actually "svk push" following "svk pull" in my local repo :) | ||
SamB | audreyt: ah ;-) | ||
svnbot6 | r14120 | audreyt++ | * Pugs.Prim.Eval: Change resetT to tryT. | ||
SamB | I was just saying the output was reminiscent of that "darcs pull" sometimes has ;-) | ||
agentzh | hmm...i'm wondering why the S29 on the smoke server has craps like "_SMART_LINK_34" :( | ||
SamB | its probably supposed to link to something ;-) | 10:45 | |
svnbot6 | r14121 | audreyt++ | * Pugs.Prim: Restore "yield" and coroutines to their former glory, | ||
r14121 | audreyt++ | by storing a genuine callCC register inside the subCont. | |||
agentzh | SamB: right. they're actually placeholders introduced by myself. ;) | 10:47 | |
svnbot6 | r14122 | audreyt++ | * Pugs.Monad: Establish a resetT boundary upon entering | ||
r14122 | audreyt++ | coroutines, so its "yield" will only capture the control | |||
r14122 | audreyt++ | stack up to that point. However, the &?CALLER_CONTINUATION | |||
r14122 | audreyt++ | there is unaffected. | |||
r14123 | audreyt++ | * Pugs.Eval: Finish excising of resetT and shiftT and replace | |||
r14123 | audreyt++ | them with tryT and retControl. | |||
SamB | agentzh: oh really? | ||
agentzh | SamB: yes. | ||
SamB | note that if I was challanging your statement, I'd hava had a 50% chance of having said "o rly?" | 10:48 | |
agentzh | i just have no idea why the placeholders were not replaced by some HTML links... | ||
SamB | not sure if that is relevant | ||
svnbot6 | r14124 | audreyt++ | * examples/cookbook/01strings/01-02default-variables.pl: | ||
r14124 | audreyt++ | Now that [\\] means infix \\ instead of infix \ again, | |||
r14124 | audreyt++ | restore the example to its original state. | |||
r14125 | audreyt++ | * t/examples/all_parse.t: examples/ all parses now! | |||
r14125 | audreyt++ | Take away the spurious force_todo. | |||
r14126 | audreyt++ | * t/unspecced/coro.t: Remove all TODOs. | |||
r14127 | audreyt++ | * t/unspecced/cont.t: Fix plans, and remove all TODOs. | |||
SamB | agentzh: see, thats what I would have expected to happen too... | 10:49 | |
agentzh | but the S29 page on feather looks fine. | ||
SamB | it must be some half-hearted or out-of-date processor | ||
agentzh | investigating now... | ||
heh, maybe iblech is using an older version of Pod::Simple::HTML on the smoke server...hehe | 10:56 | ||
the HTML source is different from the one on feather. | |||
smartlinks.pl uses regexes to process HTML... | 10:57 | ||
fixing... | |||
11:05
cm_ joined
|
|||
svnbot6 | r14128 | audreyt++ | * Pugs.Eval.Var: In multi-dispatch, bias toward things with | 11:05 | |
r14128 | audreyt++ | longer parameter lists, even though the type distance is | |||
r14128 | audreyt++ | otherwise equivalent: | |||
r14128 | audreyt++ | multi f (Any *@) {...} | |||
r14128 | audreyt++ | multi f (Any $) {...} # This always wins on 1arg case | |||
r14128 | audreyt++ | Previously the *@ case will win, which was utterly bogus. | |||
r14129 | audreyt++ | * ext/Set/t/operations.t: TODO the stringification test | 11:08 | ||
r14129 | audreyt++ | as exported methods isn't there yet. | |||
audreyt | ...but it's there now ;) | 11:11 | |
11:12
chris2 joined
|
|||
gaal | audreyt: you're stresstesting openfoundry, eh? :-p | 11:15 | |
audreyt | yeah :) | 11:16 | |
11:16
agentzh joined
|
|||
agentzh | hey, i believe the changelog for this release will be *very* lengthy. ;) | 11:20 | |
audreyt | blame the test writers... | ||
svnbot6 | r14130 | agentz++ | [util/smartlinks.pl] | ||
r14130 | agentz++ | - fixed a bug in the HTML post-processor. this patch | 11:21 | ||
r14130 | agentz++ | should have fixed the smartlink placeholder | |||
r14130 | agentz++ | (e.g. "_SMART_LINK_57") problem on the smoke server. | |||
r14130 | agentz++ | this bug was reported by lanny++ | |||
agentzh | lol | ||
svnbot6 | r14130 | agentz++ | hopefully iblech++ will update the smartlinks.pl on | ||
r14130 | agentz++ | the smoke server. | |||
agentzh | i've just tried out stevan's Moose.pm in my XUL to PPT converter. it gave me the feeling of writing Perl 6 OO code. sweet~~ | 11:24 | |
11:24
xinming_ joined
|
|||
agentzh | now my perl 5 OO modules will no longer be *that* hateful. :) | 11:24 | |
audreyt | good :) | 11:25 | |
agentzh | mooooose~~ | ||
agentzh now has to go back to some nasty java swing code... | 11:26 | ||
sigh. | |||
11:27
agentzh left
|
|||
svnbot6 | r14131 | audreyt++ | * Pugs.Parser: Methods can now be exported and turned into | 11:30 | |
r14131 | audreyt++ | multis in their caller's scope. | |||
r14132 | audreyt++ | * Set/t/overload.t: unTODO the prefix ~$foo test. | |||
11:32
markstos joined
|
|||
svnbot6 | r14133 | audreyt++ | * Set.pm: Massive rewrite using shiny new OO style, instead of | 11:32 | |
r14133 | audreyt++ | lots of explicit $self variables. | |||
r14134 | audreyt++ | * Set/t/operations.t: unTODO everything. | 11:33 | ||
11:38
cm_ joined
11:40
elmex joined
|
|||
svnbot6 | r14135 | audreyt++ | * Set::Infinite - Repair *@x syntax. | 11:40 | |
audreyt | hm, 31 unexpected successes | 11:52 | |
svnbot6 | r14136 | audreyt++ | * set-infinite-recurrence.t: unTODO everything and unskip everything. | 11:55 | |
r14137 | audreyt++ | * even more unTODOs... | 11:59 | ||
11:59
cm_ joined
|
|||
svnbot6 | r14138 | audreyt++ | * Pugs.AST: Bring (listVal :: Val -> [Val]) helper function | 12:20 | |
r14138 | audreyt++ | from newVal into oldVal land. | |||
12:23
iblechbot joined
|
|||
svnbot6 | r14139 | audreyt++ | * Pugs.Prim: "take [1,2,3]" shouldn't flatten into "take 1,2,3" | 12:26 | |
r14140 | audreyt++ | * Pugs.Prim.List: "join(1, [2, 3])" shouldn't flatten into "join(1, 2, 3)". | |||
r14141 | audreyt++ | * Pugs.Eval.Var: The previous treatment of ($) always beating (*@) | 12:35 | ||
r14141 | audreyt++ | was too eager. Instead ($) should win iff it's compatible with | |||
r14141 | audreyt++ | the argument, i.e. at least (Any). | |||
12:42
weinig joined
|
|||
svnbot6 | r14142 | audreyt++ | * Pugs.AST.Internals: Use a more helpful error message to | 12:45 | |
r14142 | audreyt++ | explain cases where a prototype occured when instance is expected, | |||
r14142 | audreyt++ | and we don't know how to autovivify it | |||
r14143 | audreyt++ | * Set/t/basic.t: Correct a misstringification. | |||
12:47
BooK joined
|
|||
svnbot6 | r14144 | audreyt++ | * array-lazy-overloaded.t: Correct a bogus isa_ok(). | 12:47 | |
masak | wow, things are really happening today :) | 12:49 | |
12:50
fglock joined
12:52
cm- joined
12:53
cm- is now known as cm
12:57
Limbic_Region joined
12:59
camenix joined
|
|||
svnbot6 | r14145 | audreyt++ | * Cipher.pm: Repair [,] syntax to use |@x, and use array instead | 13:02 | |
r14145 | audreyt++ | of hash to hold Caesar cipher keys. | |||
audreyt | only five failing tests left in ext/ space: | 13:03 | |
ext/HTML-Entities/t/entities.t | |||
ext/Perl6-Container-Array/t/array-lazy.t | |||
ext/Perl6-Container-Array/t/array-operations.t | |||
ext/Recurrence/t/recurrence.t | |||
ext/libwww-perl/t/live.t | |||
I need to go out for a walk now; will be nice if someone can take a look at them :) | |||
fglock | audreyt: I'm considering using ext/Perl6-Container-Array for implementing laziness in v6.pm | 13:04 | |
audreyt | cool. maybe you can take a look at why it's failing miserably currently then | ||
fglock | looking | 13:05 | |
I'll need to install pugs first - too old here | 13:06 | ||
13:07
rodi joined
|
|||
audreyt | k... bbiab | 13:09 | |
svnbot6 | r14146 | audreyt++ | * Cipher.pm: Don't treat undef as Array. | 13:15 | |
r14147 | audreyt++ | * ext/: Massive change of [,] into |. | 13:18 | ||
fglock | make test is looking for Test.pm, but blib6/lib only has Test.pm.yml | 13:36 | |
13:47
iblechbot joined
|
|||
fglock | copying Test.pm to blib6/lib fixed it - Makefile bug? | 13:47 | |
13:54
fglock left
|
|||
svnbot6 | r14148 | audreyt++ | * Pugs.AST.Eval: unsafeCoerce# on an unpacked field was a bad idea... | 14:00 | |
r14149 | audreyt++ | * Pugs.Parser: Removed an unused binding | 14:01 | ||
14:04
lisppaste3 joined
|
|||
pasteling | "masak" at 130.238.83.176 pasted "I looked at ext/Perl6-Container-Array/t/array-lazy.t but quickly filled up my mystification quota... here's the postmortem" (40 lines, 1.1K) at sial.org/pbot/20290 | 14:07 | |
14:11
ludan joined
|
|||
TimToady | @messages | 14:49 | |
lambdabot | You don't have any new messages. | ||
audreyt | TimToady: gather/take scopes dynamically right? | ||
sub f { take 3 } # this makes sense, correct? | |||
gather is unspecced in Syn, hence the question | 14:50 | ||
TimToady | the A might have said | ||
audreyt | A12 says it's lexical | 14:51 | |
I wonder why it's lexical... | |||
I mean, its effect, unlike that of given/when, is dynamic | |||
TimToady | ere probably ought to be a dynamically scoped variant. | ||
Unless it should be dynamic by default, in which case there probably | |||
ought to be a lexically scoped variant... | |||
audreyt | curiously damian's Perl6::Gather on CPAN is dynamically scoped. | 14:52 | |
where is lexical useful, I wonder | |||
TimToady | well, the only purpose of a lexical scope would be to prevent people from doing the dynamic version, I guess. | ||
audreyt | that's like saying we should have a lexical variant of "next" | 14:53 | |
to prevent people using next outside loops... | |||
TimToady | go with dynamic then. can always do some kind of stricture later | 14:54 | |
audreyt | 'k. I'll make it die if not within a gather dyamic scope | ||
TimToady | after thinking about s:g() overnight, I think I agree. | ||
audreyt | using the same mechanism as next outside loops | ||
hurray | 14:55 | ||
TimToady | gather can be viewed as (potentially) spawning another thread, so given the whole purpose of that other thread may be to generate, it makes sense to have it dynamic. | 14:56 | |
must generate some coffee... biab | 14:57 | ||
15:04
fglock joined
15:05
penk joined
|
|||
fglock | audreyt: re ext/Perl6-Container-Array - I found the same error as masak - maybe @array-as-invocant is not parsed correctly? | 15:08 | |
audreyt | fglock: maybe; or maybe the local push is shadowing the global one | 15:11 | |
fglock | hmm - circularity problems | 15:12 | |
audreyt | can you add some trace to see if it's the case? | ||
fglock | actually, the error is - No compatible subroutine found: "&items" - looks more like a parser problem | 15:13 | |
audreyt | no, that means "self" is somehow not a object | 15:14 | |
fglock | the code reads @.items | ||
audreyt | instead it's an Array | ||
fglock | k | ||
audreyt | @.items is just @(self.items) | ||
lambdabot | Unknown command, try @list | ||
masak | audreyt: I tried adding a trace using :E in pugs interactive, but I didn't get very far -- seems :E creates a new instance of pugs | 15:15 | |
or something | 15:16 | ||
fglock | rewriting to @(self.items) seems to improve it | ||
audreyt | masak: there's ./pugd -d | ||
./pugs -d | |||
indeed? hmm | |||
weird | |||
15:19
amnesiac joined
|
|||
svnbot6 | r14150 | audreyt++ | * Pugs.Monad, Pugs.AST.Internals: Revamp the dynamic frame | 15:19 | |
r14150 | audreyt++ | management system. Instead of tracking explicit frames, | |||
r14150 | audreyt++ | we now collect a set of frame markers, such as "FrameRoutine", | |||
r14150 | audreyt++ | "FrameGather", "FrameGiven", "FrameLoop" etc. | |||
r14151 | audreyt++ | * Regen instances. | |||
fglock | yes, @(self.items) seems to fix each of the errors | 15:20 | |
svnbot6 | r14152 | audreyt++ | * Revamp the "gather" structure, after discussion with TimToady++ | ||
r14152 | audreyt++ | so that "take" is dynamic, although still fails if the callers | |||
r14152 | audreyt++ | contains no "gather" frames. | |||
r14153 | audreyt++ | * statements/gather.t: Reflect the fact that gather/take | |||
r14153 | audreyt++ | is now dynamic. | |||
audreyt | fglock: commit the workaround and I'll trace the cause? | 15:21 | |
fglock | ok | ||
svnbot6 | r14154 | putter++ | t/regex/p6regex/p6regex.t - enforce assumptions about input (audreyt++); added standard check for rules support; updated force_todo. | 15:24 | |
fglock | audreyt: v14155 | ||
svnbot6 | r14155 | fglock++ | ext/P6::C::Array - workaround @.items => @(self.items) | ||
15:25
putter joined
|
|||
fglock | audreyt: btw, I got this error in my first make test - pugs looks for Test.pm, but blib6/lib only has Test.pm.yml | 15:27 | |
audreyt | fglock: yeah, "make" need to happen before make test | 15:28 | |
putter | strawman proposals: add two new make targets: "precompiled_test" - tweak config.yml; perl Makefile.PL; make. And "testonly" - only run the test, no make - because make test, which runs make, dumps a great deal of crud at the top of the test log. thoughts? | 15:29 | |
audreyt | good idea, please commence :) | 15:30 | |
putter | hmm, the preceeding few lines of irc suggest make test does not do make, but whatever it's doing, it's noisy... | 15:31 | |
:) k | |||
15:31
thepler joined
15:33
chris2 joined
|
|||
gaal | moose! | 15:35 | |
TimToady | m:g[I'm okay] now specced | ||
svnbot6 | r14156 | audreyt++ | * Move possiblyFixOperatorName from consumption site (lookupPad) | ||
r14156 | audreyt++ | into production site (_Var and explicit &::()) on the assumption | |||
r14156 | audreyt++ | that the former happens far more often than the former. | |||
avar notes that conway did not spec L<info:*> in S26a:/ | 15:36 | ||
gaal | the former happens more often than the former? hmm. | ||
audreyt | *more often than the latter. | ||
pasteling | "masak" at 130.238.83.176 pasted "I must be misunderstanding the -d flag. it makes no difference for me" (10 lines, 467B) at sial.org/pbot/20293 | ||
audreyt | masak: seems "use" turns off -d | 15:37 | |
for some reason. investigating | |||
gaal | audreyt: I gots me some tuits. open antlers == ? | ||
15:38
Limbic_Region joined
|
|||
audreyt | chglog is by far the most antler | 15:39 | |
gaal | hmm, why's smoke upload taking so long? | ||
oi :) | |||
audreyt | oy indeed, as there are very few triage tasks left | ||
Limbic_Region | yay | 15:40 | |
TimToady | @audreyt Ā»+=Ā« 42 | ||
lambdabot | Unknown command, try @list | ||
putter | has anyone ever done timing tests of "Test precompiled, but not in Prelude" vs "Test precompiled in Prelude"? | 15:42 | |
audreyt | havn't | 15:44 | |
svnbot6 | r14157 | audreyt++ | * operator_overloading.t: Change the example from infix:<X> | ||
r14157 | audreyt++ | to infix:<Z> in the anticipation of the new X and XX ops. | |||
audreyt | would be surprised if there's a nontrivial delta | ||
svnbot6 | r14158 | audreyt++ | * uhm, typo. | 15:47 | |
r14159 | fglock++ | ext/P6::C::Array - added comments to workaround | |||
r14160 | audreyt++ | * One more s/X/Z/ in operators.t. | |||
putter | looks like make test and smoke precompile Test already. that plus "trivial delta" suggest editing config.yml doesn't matter, and a "precompiled_test" target is not needed. anyone have experience that editing config.yml's precompiled_modules _does_ matter? | ||
audreyt | it predates individual.pm.ml | 15:48 | |
svnbot6 | r14161 | fglock++ | fixed last commit | ||
audreyt | er, .yml. though .ml would be fun | ||
but yeah. | 15:49 | ||
TimToady | audreyt: can we sneak the s:g[yay] change in? seems non impactful, by and large. | ||
svnbot6 | r14162 | audreyt++ | * Pugs.Parser.Unsafe: "pugs -d" should trace statements | 15:50 | |
r14162 | audreyt++ | inside/after "use" and macros as well. | |||
TimToady | or would that need a bifurcation of the adverb logic? | ||
audreyt | sure. can you moose the dynamic gather in as well? | ||
demerphq idly wonders if p6 will have an efficient 'goto' | 15:51 | ||
TimToady | why should it? P5's goto was pessimal by design. :) | 15:52 | |
[particle] notes that parrot does | |||
demerphq | really? | ||
by design i mean. | |||
TimToady | pretty much, though "pessimal" is overstating it. | ||
I didn't want people building efficient switch statements from labels. | 15:53 | ||
demerphq | i was just thinking about state machines and how useful goto is for them | ||
TimToady | P5 always scans for the label dynamically, though it does optimize by scanning outward from the current scope. | ||
demerphq | but its probably just a sign of oncoming demetia due to too much C programming. :-) | 15:54 | |
TimToady | it also optimizes by scanning forward from the current location and then from the top to here. | ||
on the assumption that most goto's are forwards. | |||
other than that, it doesn't go out of its way to make it efficient. | |||
demerphq | ok. | ||
TimToady | because there was always going to be a switch statement someday... | 15:55 | |
P5 even had the opcodes for cswitch and nswitch, just nothing ever parsed to them. | |||
demerphq | Yes i recall you explaining that one time. | 15:56 | |
other question: ive selected (?&NAME) for a recursive call to a named subpattern. Which is different from what Python/PCRE use (partially because we are using the .NET syntax and not the Python/PCRE syntax) | |||
gaal | TimToady: duff's device *does* provide a speedup in p5, fwiw. | ||
TimToady | P4 actually did have that optimization | ||
demerphq | 5.10 will use those ops wont it? | ||
TimToady | dunno | 15:57 | |
demerphq | id have to check, but robin put given into perl 5.9.x sometime back. | ||
rgs | nswitch and cswitch aren't used in perl 5. | 15:58 | |
the new-style switch in bleadperl is implemented with other ops (given) | |||
TimToady | phone... | ||
demerphq | ah. | ||
btw, rgs i was just going to C&P my comment about the sytax for the recursive call to a named subpattern. did you see it? | 15:59 | ||
rgs | no. | ||
demerphq | c&p'd to p5p | 16:00 | |
TimToady | sort of a pity you can't use (?<NAME>) | 16:01 | |
though maybe (?P6:<NAME>) would work for that. | |||
demerphq | thats what we use to declare the buffer. | ||
rgs | that you be a bit more symmetrical | 16:02 | |
rgs looks at the % key on his keyboard | |||
demerphq | declare: (?<NAME>PATTERN) backref: \k<NAME> recurse: (?&NAME) | ||
fglock | demerphq: I've got a p6rx-to-p5rx module under way - might be useful for experimenting with p6 requirements | ||
audreyt | fglock: as an aside, are you subscribed to p5p? | ||
demerphq | fglock: are you targetting perl 5.8 or 5.9.x? | ||
fglock | audreyt: not sure, maybe not | 16:03 | |
demerphq: 5.8 | |||
demerphq | ok. | ||
fglock | demerphq: but it is not production, so no problem in targetting 5.9 | ||
demerphq | i can see why, but i think you might find your life is much easier with 5.9 or 5.10 | 16:04 | |
audreyt | fglock: you can find out by sending a mail to [email@hidden.address] | ||
16:04
justatheory joined
|
|||
fglock | audreyt: will do | 16:04 | |
demerphq | personally i think it would be cool if you did, as thats where my regex updates go to first. | 16:05 | |
TimToady | hmm, that smoke was very fast, pity about the 0% successful, will try realclean... | 16:06 | |
svnbot6 | r14163 | audreyt++ | * Pugs.Parser.Operator: Use an very evil Int32# unsafeCoerce# | ||
r14163 | audreyt++ | as the hash key for (TVar VRef) cache, completely bypassing | |||
r14163 | audreyt++ | the Enum instance and the two boxing/unboxing involved. | |||
r14163 | audreyt++ | Weakly typed language has its advantages... | |||
r14162 | audreyt++ | * Pugs.Parser.Unsafe: "pugs -d" should trace statements | |||
r14162 | audreyt++ | inside/after "use" and macros as well. | |||
16:07
discordja joined
|
|||
demerphq | timtoady: theres been some debated about whether the perl engine can or should support (?P.... constructs, as apparently you told Guido at one point that he could "have" it for python. (Based on hearsay only) | 16:07 | |
TimToady | audreyt: btw I have been notably unsuccessful in getting -prof to not coredump within the first 10 or 20 records of my dataset. Holding out for 6.6, I guess... | 16:08 | |
audreyt | TimToady: is your perl5 threaded? | ||
TimToady | dunno, it's stock fedora | 16:09 | |
audreyt | perl -v will show that info | ||
TimToady | yeah, P5 should probably avoid (?P | ||
yes, threaded | |||
audreyt | because GHC 6.4 -prof+threaded is notoriously broken, so much so that they've taken out that combination in 6.6... | ||
TimToady | ah | 16:10 | |
yes, I promised Guido he could have (?P | |||
course, with P6 all bets are off, since there's no (?...) anymore | 16:11 | ||
fglock | demerphq: the main bottleneck for regexes in v6.pm is the OO overhead; also, backtracking into sub-rx is not possible | 16:12 | |
16:12
Psyche^ joined
|
|||
TimToady | well, all we have to do is reimplement the entire P5 engine inside the regex engine, and then we'll have continuations. :) | 16:13 | |
ajs_home | TimToady <P{...}> | ||
demerphq | the question we had a little was whether we should support the Python/PCRE syntax for named buffers as well as the .NET one. | ||
ajs_home | I realize the braces are just mean, but there you go ;) | ||
demerphq | fglock: what do you mean backtracking into subpatterns is not possible? | ||
fglock | actually, I was wondering if we could implement p6-to-rx instead | ||
demerphq: such as /a <ws> \s a/ | 16:14 | ||
TimToady | ajs_home: huh? | ||
demerphq | i thought 5.8 supported backtracking into (??{...}) patterns. doesnt it? | ||
fglock | demerphq: <ws> is a method | ||
demerphq | but if ws is a method that resolves to a pattern... | 16:15 | |
ajs_home | TimToady: Was just thinking out loud about (?P...) in P6. | ||
demerphq | anyway, 5.9.5 does, unequivocally, support backtracking into a subpattern. | ||
ajs_home | <P something> perhaps just <P ...> | ||
demerphq: subpatterns ne sub-rx/rule | 16:16 | ||
demerphq | for instance $ws=qr/\s+/; /a (??{$ws}) \s a/x does. | ||
audreyt | demerphq: is $ws=qr/\s+/ still much slower than $ws='\s+' ? | 16:17 | |
demerphq | er, i didnt know it ever was. | ||
fglock | demerphq: should I be afraid of the "highly experimental" notice in the docs in 5.8? | ||
demerphq | fglock: not really. ive been meaning to ask on p5p if we could tone those notices down. | 16:18 | |
they wont be removed. | |||
their behaviour may change subtly however. | |||
most likely for the better. but whatever. | |||
:-) | |||
ajs: thanks i didnt realize that | |||
TimToady | subpatterns in P6 really are full-fledged subroutine calls. They're not special-cased into the regex engine. | 16:22 | |
16:22
cmarcelo joined
|
|||
TimToady | where one could use a less polite term for "special-cased" :) | 16:23 | |
svnbot6 | r14164 | audreyt++ | * Recurrence.pm: Fix the bug of $.previous_closure()() | 16:25 | |
r14164 | audreyt++ | written as $.previous_closure(). | |||
fglock | TimToady: maybe it can be faked into a call - perl -e ' my $ws=sub{qr/z+/}; my $ax = /a (??{$ws->()}) \s a/x; $ws=sub{qr/\s+/}; print ("a x" =~ $ax ? "yes" : "no") ' | 16:26 | |
TimToady | eep, my smoke tests are all getting "user error (syntax error: line 3, column 0) | ||
which file, it does not deign to say... | 16:27 | ||
fglock: sure, but it still doesn't by you backtracking into it unless main runloop does continuations | |||
I was very nearly semi-serious about using the regex runloop instead. | 16:28 | ||
16:28
weinig is now known as weinig|out,
Psyche^ is now known as Patterner
|
|||
fglock | TimToady: isn't it backtracking in this example? | 16:29 | |
demerphq | lexicals dont really work with (??{}) | ||
something you want to keep in mind. | |||
nothingmuch | @seen cmarcelo | ||
lambdabot | cmarcelo is in #perl6. I don't know when cmarcelo last spoke. | ||
16:33
rodi joined
|
|||
TimToady | fglock: it's a form of backtracking, but doesn't actually let the sub do sub-ish things on the fly, since the sub is just precalculating a regex to hand back. | 16:33 | |
svnbot6 | r14165 | audreyt++ | * Pugs.hs: pugs -c should not imply -d... | 16:34 | |
putter | the regexp spike, whose syntax was p5 regexps plus <foo>, just converted the <foo args> into (?{dorule( C ,'foo','args')}), where C was the continuation representing the rest of the regexp. so backtracking worked properly. | ||
fglock | TimToady: got it | ||
demerphq | and in 5.9.5 it be called on backtracking. | ||
putter | but did depend on the spike engine being reentrant | 16:35 | |
demerphq | it wont be | ||
putter | demerphq: was "it wont be" -> putter? | ||
demerphq | no. | 16:36 | |
putter | k :) | ||
demerphq | i was saying that in /(??{ ... })/ the code only gets executed when the constructed is entered from the left, not from the right. | ||
in hindsight im not sure if thats a useful observation.... | |||
:-) | 16:37 | ||
putter punts on make test-only. Fighting MakeMaker is just not -Ofun. | 16:39 | ||
cmarcelo | nothingmuch: pong | ||
audreyt | m:P5{...} is now valid again. let's see how many tests it breaks... | ||
svnbot6 | r14166 | kudra++ | Jesse gives this uri for planetsix perl | 16:40 | |
fglock | bbiab & | 16:41 | |
nothingmuch | hola cmarcelo | 16:44 | |
TimToady | is "user error (syntax error: line 3, column 0)" a yaml error? | 16:46 | |
svnbot6 | r14167 | audreyt++ | * Pugs.Parser.Types: Introduce a new bracket level, | ||
r14167 | audreyt++ | "QuoteAdverbBracket", that constraints a pair adverb | |||
r14167 | audreyt++ | to not consume bracktes other than (): | |||
r14167 | audreyt++ | q:n{...} # q:n(True){...}, not q:n({...}). | |||
r14168 | audreyt++ | * Date.pm: Avoid a :P5<i> use where a .lc will suffice. | |||
16:46
weinig|out is now known as weinig
|
|||
cmarcelo | nothingmuch: ola! did you try some Hs code for MO already? | 16:47 | |
nothingmuch | nope, did not | ||
however, the perl 5 version is 100% pure | |||
so it should almost be a transliteration | |||
svnbot6 | r14169 | audreyt++ | * Pugs.Parser: Rename ruleAdverbHash to ruleQuoteAdverbs, | ||
r14169 | audreyt++ | and let them respect the QuoteAdverbBracket level. | |||
nothingmuch | the bit i'm worried about is translating roles to type classes etc | 16:48 | |
cmarcelo | that's my idea at first. however i'm not very experienced :o) what do you think can go wrong? | 16:49 | |
nothingmuch | audreyt: could you give us a quick primer? | ||
e.g. some points to avoid | |||
etc? | |||
audreyt | nothingmuch: I wish I can but it's past midnight and my brain doesn't quite work yet :) | 16:50 | |
nothingmuch | ah | ||
16:50
smash joined
|
|||
audreyt | will be happy to SEE it out tomorrow | 16:50 | |
nothingmuch | err | ||
audreyt | but would be happy if you two start first | ||
nothingmuch | aye | ||
hmm | |||
we will annoy #haskell with n00b questions =) | 16:51 | ||
cmarcelo | @localtime nothingmuch | ||
lambdabot | Local time for nothingmuch is Mon Oct 9 18:51:41 2006 | ||
cmarcelo | nothingmuch: i'll leave work in +/- 4hr, then I'll have a few hours to start something. you told me that AG were not that important, other tests aren't too? | 16:53 | |
nothingmuch | basic.t, mi.t -- they're fairly good | ||
i'm going to get a beer | 16:55 | ||
and then churn out some unit tests | |||
that clarify what all the sub objects are about | |||
it should be around 4 hrs worth of work | |||
fairynuff? | |||
cmarcelo | ok. i'll go for basic.t and mi.t first. (i meant i'll leave $job in 4hrs => i think didn't understand your last msgs) | 16:58 | |
nothingmuch | si | ||
i meant i'll have something for you by then ;-) | 16:59 | ||
hopefully | |||
nothingmuch never lives up to his code promises | |||
16:59
rodi joined
|
|||
svnbot6 | r14170 | audreyt++ | * examples/obfu/l33t.pl: remove :P5<i> usage and restore | 17:00 | |
r14170 | audreyt++ | it to fully working condition. | |||
cmarcelo | nothingmuch: ok :) | ||
svnbot6 | r14171 | audreyt++ | * examples/perl5/cpan-upload.pl: Restore use of rx:P5{} | 17:03 | |
putter | am I correct in believing we still don't have a p5 regexp to p6 regex converter yet? | ||
audreyt | we actually do | 17:04 | |
pretty comprehensive too | |||
it's in misc/pX/Common/P5_to_P6_Translation | |||
not yet hooked to Pugs proper | |||
planned, though. | |||
17:06
bernhard joined
|
|||
putter | ah ok. I stumbled upon an old todo item, that someone should take an hour or few and make a converter out of Regexp::Parser, and it didn't seem anyone had done it yet. | 17:07 | |
yipes! P5_to_P6_Translation isn't p5 regexp to p6 regex translation... P5_to_P6_Translation is p5 to p6 translation!!! | 17:10 | ||
audreyt | yeah. works for quite a few simple cases too | ||
it's Sage's SoC | |||
although only the regex part is well-covered | |||
putter: a transcription from misc/pX/Common/P5_to_P6_Translation/ASTTranslate.hs to some spec based stuff that you can then hook into Regexp::Parser will be cool | 17:11 | ||
i.e. only the rx parts of it | |||
t/regex/ aside, magic number is down to 2: | 17:12 | ||
ext/HTML-Entities/t/entities.t | |||
ext/libwww-perl/t/live.t | |||
alas I can't stay up to finish them :) | 17:13 | ||
till tomorrow then... *wave* & | |||
putter | re "t/regex/ aside", t/regex should be all working, but for any supprise sucesses from recent work | ||
audreyt | TimToady++ # gave ready assent to m:P5{...} and q:w{...} | ||
oh, excellent. I mask them locally; will give another run tomorrow | |||
putter++ | |||
putter | good night audreyt *wave* | ||
audreyt | this release is actually looking good :) | 17:14 | |
putter | indeed. :) | ||
putter realizes he hasn't tested the "use PGE instead" env var stuff. | |||
svnbot6 | r14172 | audreyt++ | * t/02-test-pm/: synchronize with ext/Test/. | 17:18 | |
17:32
discordja_ joined
|
|||
cmarcelo | bbl & | 17:50 | |
audreyt | :r | 17:57 | |
oops, wrong window ;) | |||
18:08
buetow joined
18:12
larsen joined
18:13
putter joined
|
|||
putter | As of r14149, I see 3 t/ failures: t/blocks/multidimensional_arglists.t with a parse error, and segfaults in t/examples/all_parse.t and t/perl5/array.t. | 18:15 | |
putter considers upgrading to 6.4.2, but notes 6.4.1 is still the official dependency. | |||
bbl & | |||
TimToady | currently smoking r14172, news in .5`hr or so | 18:17 | |
demerphq | I just realized that we could use (*...) and ({.....}) in the perl5 engine with no back compat problems. | 18:22 | |
TimToady | except it probably won't recognize {...} as a quantifier unless it matches \d+,?\d* | 18:23 | |
svnbot6 | r14173 | audreyt++ | * Date.pm: Remove bogus "return-in-BUILD" pattern and instead | ||
r14173 | audreyt++ | just set $!attr. | |||
TimToady | in which case the {...} match literally | ||
demerphq | oh. ok, heh. i had been wondering why (??{}) wasnt spelled ({...}). | 18:24 | |
TimToady | hysterical raisins | ||
demerphq | but that doesnt apply to (*....) does it? | ||
svnbot6 | r14174 | audreyt++ | * multidimensional_arglists.t: unTODO the passing tests. | 18:25 | |
TimToady | no, if I recall, I had the sense to make that illegal. | ||
unlike some of the other greppy things. | |||
demerphq | grep lets you quantify an open bracket? weird. | ||
svnbot6 | r14175 | audreyt++ | * Pugs.Parser: Parse and recognize the @@ sigil. | 18:26 | |
TimToady | no | ||
grep assumes you meant \* | |||
likewise for a non-sensical $ | |||
demerphq | aha. right. good thinking. that does sound unwise. | 18:27 | |
TimToady | unfortunately, by the time I added {n,m}, Perl had already been out in the while matching {...} literally. | 18:28 | |
s/while/wild/ | |||
durn fingers... | |||
demerphq | yes i can see the issue. thats why ive pestering everybody about the syntax for my recent changes so much. | 18:29 | |
TimToady | backward compatibility is the pits in regex land... | ||
that's why we've been careful to leave a lot of wiggleroom in P6 | 18:30 | ||
pasteling | "gaal" at 192.115.25.249 pasted "some pugsjs failures" (23 lines, 1.5K) at sial.org/pbot/20302 | 18:31 | |
svnbot6 | r14176 | audreyt++ | * Pugs.Eval.Var: Rewrite the multi-dispatch resolver: | ||
r14176 | audreyt++ | - Don't bother calculating type distance if it can't be bound. | |||
r14176 | audreyt++ | - If it's bound, only calculate type distances for the bound non-slurpy parts. | |||
r14176 | audreyt++ | - Named arguments are no longer rigged to always lose multi-dispatch. | |||
r14176 | audreyt++ | - Mixed named-vs-positional arguments are now handled correctly. | |||
TimToady | yow! audreyt++ | ||
integral | I'm getting "<no location info>: file name does not match module name `Main'" as a build error when I build Pugs atm. Anyone else found this? | 18:33 | |
demerphq | yep. that sounds very sensible. | ||
18:39
rodi joined
|
|||
svnbot6 | r14177 | audreyt++ | * Set::Infinite - unTODO and unSKIP every single test now that MMD resolver | 18:40 | |
r14177 | audreyt++ | correctly make the module work as designed. | |||
18:42
mac93 joined
|
|||
gaal | integral: hmmm, sounds familiar, but I can't recall what it was. make clean? | 18:42 | |
18:43
Aankhen`` joined
|
|||
integral | I'm trying a realclean at the moment. I'd already tried clean+rm -r dist | 18:43 | |
18:43
fglock joined
|
|||
gaal | fwiw 14175 builds ok here | 18:43 | |
integral: nopaste whereabouts this happens? | 18:44 | ||
or grep the irc log... | |||
integral | gaal: right after running Setup for the main Pugs cabal package it appears | ||
18:46
xerox joined
|
|||
gaal | integral: ah, I remember what gives this error. do an svk st and make sure you didn't mangle the first character of a .hs file | 18:47 | |
integral | o_O `svk diff src` is showing no difference for me, so I hope that's the case | ||
TreyHarris | TimToady: "is copy" on formal params is currently a noop for non-autoboxed types. will that always be true (at least for non-value types)? or will "is copy" eventually clone non-value types? | 18:48 | |
gaal | integral: may be one of the autogen files? | ||
oops phoen | |||
*phone | |||
integral watches the build, I'll find out in a minute 8-) | |||
ugh, realclean hasn't solved it, so I'll check all the .hs files now :) | 18:50 | ||
ah, my src/DrIFT/XML.hs is missing a module declaration at the top | 18:52 | ||
gaal | hmm, why didn't svk st show that? | 18:53 | |
integral | hrm, I've svk reverted it and it still doesn't. :-/ | ||
gaal | okay, please strace -fF -o /tmp/xx make pugs | ||
and find the offending file :) | |||
integral | hmm, the one on openfoundry also doesn't have a module statement | ||
gaal | huh, neither does the one here. | 18:54 | |
integral | I can't strace, I'm on OS X 10.3 | ||
gaal | there's another tool... ktrace? | 18:55 | |
18:55
elmex joined
|
|||
gaal | or just some file monitor | 18:55 | |
'svk st util' too | 18:56 | ||
fglock | gaal: I'm reading Test.pm.yml - would you help me with a few things? | ||
gaal | I'll try :-) | 18:58 | |
svnbot6 | r14178 | audreyt++ | * DrIFT.XML: Add the missing module statement. | ||
TimToady | TreyHarris: good question. we could certainly extend it to other types provided the definitions of "clone" and "rw" are clear. | ||
as it is, "readonly" is a bit hand-wavey. | |||
what does it really mean for a non-value type to be "writable"? | 18:59 | ||
fglock | I see ( Var "&infix:~" ) - does "Var" mean it has to lookup &infix:~ at runtime? | ||
gaal | yes | ||
it's App Exp (Maybe Exp) [Exp] | 19:00 | ||
TreyHarris | well, the MOP could snapshot the object and throw an exception at runtime if the repr changes. i suppose then objects would have to have some way of saying an given operation should be considered a read but may change the repr or certain attribs may change without "writing" to the object (e.g., caches) | 19:01 | |
fglock | about ( Ann ... ) - is it meant to attach a (Pos) node? | ||
gaal | that is, apply to an Exp (with an invocant, maybe) [and an Exp list] | ||
TimToady | yay, r14172 exceeds the purity of Ivory Soap!!! | ||
it's all very transactional... | |||
and also related to "old" in PRE blocks. | 19:02 | ||
*PO | |||
svnbot6 | r14179 | audreyt++ | * Pugs.Bind: Reject named arguments that cannot find a matching named | ||
r14179 | audreyt++ | parameter or slurpy hash. | |||
TimToady | *POST | ||
svnbot6 | r14179 | audreyt++ | sub f () {...} | ||
r14179 | audreyt++ | f(y => 1); # used to bind silently, but now no more | |||
gaal | fglock: Ann[otation] nodes decorate other Exps with stuff like context, position, and pragma | ||
fglock: this is no longer how it works in newVal though. | |||
also, in newVal there are two application nodes: | 19:03 | ||
integral | hmm, it's my Pugs.CodeGen.PIR.Prelude that's doing it; it's an empty file | ||
gaal | ...three, actually.. | ||
data ExpControl = CCall ID ExpCapt | 19:04 | ||
TreyHarris | TimToady: yes... you presaged me :) i have a 90%-finished proposal to normalize C<but>, C<is copy>, DBC "old", and cloning... I'll p6-l in the next couple days. I just wanted to be sure you didn't already have a clear direction that just hadn't been committed to synopses yet. | ||
gaal | | CCallDyn Exp ExpCapt | ||
| CApply Exp ExpCapt | |||
19:04
mdiep joined
|
|||
gaal | (sorry for the messy indent) | 19:04 | |
this is commented in src/Pugs/Val/Code.hs | |||
TimToady | I would love some cognitive help. | ||
(I need all the cognitive help I can get...) | 19:05 | ||
fglock | gaal: looking | ||
gaal | fglock: the idea being that if you have { some code }.(), there shouldn't be much lookup, just direct invocation | ||
svnbot6 | r14180 | audreyt++ | * t/blocks/multi_named_vs_pos.t: unTODO several test, and mark | ||
r14180 | audreyt++ | the rest :todo<unspecced>. The unspecced part is: | |||
r14180 | audreyt++ | multi f ($x) { 1 } | |||
r14180 | audreyt++ | multi f (:$x is mandatory) { 2 } | |||
r14180 | audreyt++ | f('foo'); # binds to 1 | |||
r14180 | audreyt++ | f(x => 'foo'); # binds to 2 | |||
r14180 | audreyt++ | IMHO it's okay to have one shadow the other here, but the | |||
r14180 | audreyt++ | test says otherwise... | |||
rodi | Good G-d Almighty, audreyt is on a tear. I'm in awe. audreyt++ | 19:07 | |
TreyHarris | TimToady: one thing that would help me finish the last 10% is to know how you were thinking that a class would go about defining a value type. I can see ways reading between the lines (er, ^LINES?), but particularly wondered whether you'd be okay with a declarative ("i can ask that class/object if it's a value") rather than a behavioral ("if this object's .WHAT matches that object's .WHAT, then they're the same object/value") approach. | ||
erm... that was kind of muddled | |||
fglock | "Maybe Param" means "Param" is optional? | ||
gaal | fglock: yes | ||
it's like a pointer in c, it's allowed to be NULL. | 19:08 | ||
TimToady | certainly it should at least look declarative | ||
gaal | without the Maybe, Haskell's type system guarantees you can't have NULL there. | ||
TimToady | if only by calling .HOW stuff at compile time | ||
19:08
Aankh|Clone joined
|
|||
TreyHarris | TimToady: yepyep | 19:09 | |
gaal | integral: do you have DrIFT set up for pugs? | ||
integral | gaal: hmm, probably not, or if I did it was ages ago | 19:10 | |
(and maybe with a previous GHC version even) | |||
gaal | integral: I'm wondering how you ended up with a zero InstESCdd oh, you said Prelude, not Instances | ||
TimToady | now smoking r14180 | 19:11 | |
eta 45 min | 19:12 | ||
integral | hmm, what should the "inline_prelude_source" config var be? | ||
gaal | obsoleted :) | 19:13 | |
integral | ah, that's why it's unmentioned in the template :-) | ||
what's the difference between Pugs/CodeGen/PIR/Prelude.hs and Pugs/Prelude.hs? | 19:14 | ||
gaal | it's from a year ago when we didn't have precompiled prelude, and wanted the pugs binary to embed the Prelude.pm source | ||
(it=="inline_prelude_source") | |||
integral | (the latter's fine, the former's the problem). Maybe my parrot's broken? | ||
svnbot6 | r14181 | audreyt++ | * currying.t: unTODO the passing test that tests you can't | ||
r14181 | audreyt++ | curry a nonexisting named param, and remove the one test | |||
r14181 | audreyt++ | that says .currying takes named arguments only, as the spec | 19:15 | ||
r14181 | audreyt++ | no longer says that. | |||
integral | ugh, I've just realised that I hadn't setup PUGS_EMBED correctly | ||
gaal | I don't see how that can cause that, actually. Makefile.PL:602 | 19:16 | |
should Just Work | |||
it's a simple templating thing, doesn't depend on parrot or embedding | 19:17 | ||
fglock | clkao: ping | ||
integral | hmm, yes | ||
gaal | I'm guessing that you interrupted gen_prelude once before it produced any output | 19:18 | |
and then the makefile rule never regenned it | |||
clkao | fglock hi | ||
integral has just removed it again, and seen make regenerate it, but it's still empty! | |||
gaal | right, come to think of it make_clean does rm it | 19:19 | |
integral | hmm, it's running "src/gen_prelude Pugs.CodeGen.PIR.Prelude < src/perl6/Prelude/PIR.pm > src/Pugs/CodeGen/PIR/Prelude.hs" which isn't producing any errors but it leaving the .hs file empty | ||
fglock | clkao: did you see this problem with Data::Bind and perl5 references? sial.org/pbot/20232 | ||
lambdabot | Title: Paste #20232 from "fglock" at 200.17.89.80 | ||
gaal | integral: rm src/gen_prelude && make src/Pugs/CodeGen/PIR/Prelude.hs | 19:21 | |
integral | nope, still empty | ||
svnbot6 | r14182 | audreyt++ | * ext/DateTime/t/basic.t: unTODO everything. | ||
gaal | echo "elkelkelk" | src/gen_prelude Moo | 19:22 | |
clkao | fglock: uhm. don't have an idea out of my head. i will look into it lter | ||
gaal | what does that give on stdout? | ||
integral | nothing! | ||
fglock | clkao: thanks | ||
integral | maybe my GHC is badly broken :-/ | ||
gaal | it's a pretty straightforward .hs file! | 19:23 | |
integral comments out the source until it works | |||
gaal | ghci src/gen_prelude.hs ? | ||
integral | gah, it's working now :-/ | 19:25 | |
I have absolutely no idea why it wasn't working before, unless clean misses it somehow | 19:26 | ||
gaal | shouldn't. | ||
lines 103, 107 | |||
of Makefile.PL | |||
integral | *nod* oh well, it's all working now | ||
gaal | vird. | 19:27 | |
19:27
mdiep joined
|
|||
buu | Who? | 19:50 | |
Where? | |||
erxz.com/8002/ | 19:51 | ||
lambdabot | Title: Interactive Perl Shell | ||
TreyHarris | whoops. "make smoke" is *not* the same as "make smoke-upload" | ||
integral | buu: it was andara (not here?) who was interested | 19:52 | |
fglock | what is the Snn for interpolation of Pair and Hash into lists? | 19:55 | |
pugs explodes %hash into %hash.kv, but $hash into $hash.pairs | 19:57 | ||
20:00
rindolf joined
|
|||
rindolf | Hi all. | 20:00 | |
buu | haha | ||
integral: Someone made it unhappy =[ | |||
integral: poco-simple-http has a really hilarious habit of dying when you access non mapped urls. | 20:01 | ||
rindolf | ingy: you can upload IO::All now. | ||
TimToady | fglock: a list interpolated %hash doesn't do .kv in pugs | 20:03 | |
buu | rindolf: Did you check out my shiny? | ||
TimToady | and $hash should never interpolate into a list as anything other than a single item. | ||
rindolf | buu: your shiny what? | 20:04 | |
fglock | ?eval my $p= a=>3; my %h = ( 1,2,$p ); %h.perl # interpolates Pair.kv ? | 20:05 | |
20:05
evalbot_r14098 is now known as evalbot_r14182
|
|||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3)}" | 20:05 | |
integral | buu: surely adding some eval{}'s or catching the DIE signal would solve that? | ||
TimToady | ?eval my %foo = :a(1), :b(2); say join " XXX ", %foo; | 20:06 | |
evalbot_r14182 | OUTPUT[a1 XXX b2 ] Bool::True | ||
20:06
wilx joined
|
|||
TimToady | that shouldn't interpolate $p as other than a hash object. I don't think the assignment should unpack it either. | 20:07 | |
fglock | ?eval my %p = { a=>3, b=>4 }; my %h = ( 1,2,%p ); %h.perl # interpolates %p.kv ? | ||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3), (\"b\" => 4)}" | ||
TimToady | nothing ever interpolate .kv by default | 20:08 | |
fglock | ?eval my $p = { a=>3, b=>4 }; my %h = ( 1,2,$p ); %h.perl # different result if $p instead of %p ? | ||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\\t3\" => (\"b\" => 4))}" | 20:09 | |
TimToady | ?eval my %p := { a=>3, b=>4 }; my %h = ( 1,2,%p ); %h.perl | ||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3), (\"b\" => 4)}" | ||
fglock | mine is the one with the tab :) | ||
TimToady | ?eval my %p = ( a=>3, b=>4 ); my %h = ( 1,2,%p ); %h.perl | ||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3), (\"b\" => 4)}" | ||
TimToady | %p = {...} is a single key without a value. | 20:10 | |
buu | integral: Well, I needed to add a handler that would actually match | 20:11 | |
Magic number checking on storable string failed at ../../lib/Storable.pm (autosplit into ../../lib/auto/Storable/thaw.al) line 366, at server.pl line 236 | |||
How entertaining | |||
fglock | ?eval my $p = { a=>3, b=>4 }; $p.WHAT | ||
evalbot_r14182 | ::Hash | ||
rindolf | buu: your shiny what? | 20:14 | |
fglock | ?eval my %hash = ( a=>3, b=>4 ); my $scalar = { c=>5, d=>6 }; my %h = ( 1,2,%hash, $scalar ); %h.perl ~ %hash.WHAT ~ $scalar.WHAT | 20:15 | |
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3), (\"b\" => 4), (\"c\\t5\" => (\"d\" => 6))}HashHash" | ||
fglock | why does %hash interpolates different from $scalar ? | 20:16 | |
TimToady | because it has a % sigil | ||
rindolf | TimToady: :-) | ||
TimToady | use %$scalar | ||
fglock | so it's a compile-time thing | 20:17 | |
TimToady | $ is a request to treat the thing as a single item, not as a complex item, even if it's complex underneath. | ||
it always takes something explicit to get at the parse, such as .{} or % | 20:18 | ||
*parts | |||
fglock | actually looks ok in v6.pm - I thought it was a bug :) | ||
buu | rindolf: erxz.com/8002/ | ||
fglock | TimToady: thanks | 20:19 | |
20:19
ezraburgh joined
|
|||
TimToady | {} and [] in list context also assume that they are there to produce a single item, since you could just omit the brackets to get the other behavior | 20:19 | |
fglock | my %hash = ( a=>3, b=>4 ); my $scalar = { c=>5, d=>6 }; my %h = ( 1,2,$%hash, $scalar ); %h.perl | 20:20 | |
?eval my %hash = ( a=>3, b=>4 ); my $scalar = { c=>5, d=>6 }; my %h = ( 1,2,$%hash, $scalar ); %h.perl | |||
evalbot_r14182 | "\{(\"1\" => 2), (\"a\" => 3), (\"b\" => 4), (\"c\\t5\" => (\"d\" => 6))}" | ||
fglock | $%hash still goes into pairs | 20:21 | |
TimToady | %$, not $% | ||
fglock | can't use $(..) to mean scalar context? | ||
rindolf | buu: my $s = ""; for(my $u=0;$u<10;$u++){$s .= "$u\n"}$s; - I'm getting 0. | 20:23 | |
buu: but nice. | |||
TimToady | could be a buglet. | ||
buu | rindolf: It's a bit of a bug with how I handle output. | 20:24 | |
rindolf: The 0 was the first result. | |||
rindolf | buu: I see. | 20:26 | |
demerphq | heh, i just realized i dont need a (?DEFINE:...) | 20:30 | |
(?(?{0})...) does the same thing | 20:35 | ||
20:36
jferrero joined
|
|||
svnbot6 | r14183 | fglock++ | Pugs-Emitter-Perl6-Perl5 - added comments on Seq->Hash conversion | 20:36 | |
20:37
mac93 joined
20:42
larsen joined
|
|||
TimToady | seems like (?:...){0} oughta work too | 20:47 | |
for that matter, seems like (?(0)...) oughta work. | 20:50 | ||
svnbot6 | r14184 | fglock++ | Pugs-Emitter-Perl6-Perl5 - more comments on Seq->Hash conversion | 20:51 | |
20:56
etzel joined
|
|||
TimToady | ah well, it doesn't like (?(0)...) | 20:57 | |
rindolf | TimToady: has the smoke time been reduced eventually? | 21:09 | |
TimToady | it gained back the 20 minutes it lost a couple days ago. | 21:10 | |
so I'm back to 48 or 49 minutes. | |||
21:15
mac93 joined
|
|||
rindolf | TimToady: by "gained back" do you mean it now executes in *less* time? | 21:23 | |
21:25
polettix joined
21:26
fglock left
|
|||
TimToady | it went from 48 to 68 minutes and back to 48. | 21:33 | |
rindolf | TimToady: I see. | 21:37 | |
21:52
putter joined,
wilx joined
|
|||
putter | S05 says "The \p and \P properties become intrinsic grammar rules such as (<alpha> and <!alpha>)." Wouldn't that be better as "<-alpha>"? Even if the \P association isn't intended, the sentence layout makes it rather strong. | 21:55 | |
camenix | quit | 22:01 | |
22:01
camenix left
|
|||
TimToady | yeah, <!alpha> is essentially a <!before <alpha>> | 22:06 | |
22:11
Limbic_Region joined
22:26
mako132 joined
22:32
mac93 joined
22:38
dduncan joined
|
|||
putter | Can character property classes take an argument? Eg, <+alpha_variant($only_on_tuesdays)-[q]> or somesuch. | 22:42 | |
TimToady | @tell audreyt my pugs-prof still segfaults even with a non-threaded perl :( | ||
lambdabot | Consider it noted. | ||
TimToady | in theory they could, but only in theory. | ||
justatheory squirms uncomfortably | 22:43 | ||
TimToady | lol | ||
22:47
cmarcelo joined
22:54
polettix joined
23:00
mako132 joined
|
|||
clkao | ok, let me take a look at data::bind | 23:14 | |
23:15
lollan joined
|
|||
Limbic_Region | wow - 99.18% on latest smoke | 23:22 | |
clkao | whoot | 23:23 | |
Limbic_Region | @tell audreyt test 12 of ext/Config-Tiny/t/basic.t is failing though the output is correct. My guess is difference of \n versus \r\n | 23:28 | |
lambdabot | Consider it noted. | ||
23:34
weinig joined
23:39
demerphq joined
|
|||
putter | <+<alpha>> is no longer valid, yes? So the distinction between external and internal negation is gone, yes? <-<alpha>> vs <+<-alpha>> | 23:42 | |
is there any form of external negation? ie, you have <foo-bar+hee-qux> , can you negate that in any way other than going through and flipping all the signs? | |||
23:46
shobadobs joined
|
|||
TimToady | <!foo-bar+hee-qux> | 23:47 | |
but then you have to traverse the . yourself | |||
because ! turns it into lookahead | |||
putter | with a trainling dot I assume... righ | ||
<+<alpha>> is gone? | |||
TimToady | yes | ||
putter | ok, will update tests. thanks :) | 23:48 | |
TimToady | np | ||
biab & | |||
clkao | audreyt: first failed test in perl5/array.t | 23:49 | |
is(eval(q{$retarray.elems}), @array.elems, 'retro elems'); | |||
why is $retarray suppose to have .elems ? | |||
why is $retarray suppose to have .elems ? | 23:50 | ||
gr, sorry | |||
oh, nevermind. it's the object coming back again. misread | |||
23:52
bsb joined
|