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.
TimToady I've not had bad luck lately with parrot installs. 00:00
in fact, I always install parrot.
PerlJam I used to do that until things broke 00:01
TimToady this is the first time I've been burned by pugs install though...
like I say, my parrot install hasn't broken for a couple months.
but maybe that's because I have my PARROT_PATH set right 00:02
actually, as I recall, the problem used to be that pugs was believing the installed parrot over the PARROT_PATH parrot. 00:03
svnbot6 r10312 | gaal++ | * Touch Test.pm and Prelude.pm so they will be regenerated to 00:04
r10312 | gaal++ | fit with the recent CompUnit change. The good news is that
r10312 | gaal++ | next time when things change the error message can be much better.
gaal in fact the next time, the error will be intercepted and the stale file regenned on the fly. Or that's the plan. 00:05
putter++ # bugging me about versioned bytecode months ago 00:06
gaal-- # not putting in versioned bytecode months ago
particle_ when !~ matches, what does $/ contain? 00:07
svnbot6 r10313 | Darren_Duncan++ | ext/Relation/ : added new Relation.pm methods restrict() and delete() ; added method aliases [where, grep, delete_where, select, select_all_but] ; added return types to method sig docs
gaal eep it'll be dawn in a couple of hours, I should sleep &
TimToady particle_: same thing as when ~~ matches. !~ only changes the boolean sense 00:08
particle_ okay. 00:09
TimToady just means the Match object shows up in the else instead of the then...
audreyt TimToady: ping 00:15
TimToady: re f(x=>1) named and f('x'=>1) pair, I like that even more 00:18
it follows that f(1=>2) also not named.
TimToady: also, there is a student in SoC who wants to hack MAD->p6, are you willing to mentor him (i.e. evaluate his progress and provide feedback)?
if yes, signup is at code.google.com/soc/mentor_home.html 00:19
00:19 justatheory joined
audreyt (it is currently the highest ranked mentorless proposal) 00:20
TimToady hmm, I'm a lousy mentor... 00:23
but maybe I could do that.
I always read SoC as Southern California... 00:24
I don't have a google account... 00:25
particle_ invite on its way 00:26
audreyt also, google allocs slots by number of distinct mentors
(i.e. mentors that volunteered for proposals) 00:27
00:27 feng123 joined 00:28 garth joined
audreyt so it'd be nice to expand the mentor base a bit :) 00:28
svnbot6 r10314 | fglock++ | PCR - added :ratchet to the benchmark (3.7x faster than plain PCR); t/09-ratchet.t passes 18/23 tests
audreyt TimToady: also, the "magical special" flavour of autoquoting works quite well as the indicator of "magical special" named-arg 00:30
00:36 SubStack joined
TimToady okay, I get the feeling you like it. :) 00:36
I do too. :)
I take it you're still trying to get used to [,]... 00:37
audreyt nope, that's fine
it has to be treated specially
just like * did
because of arglist delaying
TimToady the one lossage is that [,] can't really trigger a $capture 00:38
audreyt so I'll just take it as a differently spelled *
TimToady but I'm thinking =$capture works maybe
audreyt you mean ([,]$capture)
wouldn't work?
TimToady if it's just a list, $capture doesn't interpolate. 00:39
audreyt [,]%hash fails too, right?
(instead of interp'ing to named, it'd take pairs)
TimToady Well, %hash makes pairs...
audreyt but *%hash worked because it's unary
[,] is listop
TimToady right.
audreyt and so can't tell %hash apart from $pair
whilst a unary op can. 00:40
TimToady could just force it.
audreyt [,]%hash1, %hash2
you mean, force all pairs back into named? 00:41
or force as in using MMD?
TimToady one level's worth, just like * did
audreyt so you mean, if you give [,] one arg
then it behaves like old *
if you give it two
does it propagate? 00:42
[,] %h1, %h2
does that make both into nameds?
TimToady it's not really a force for %hash1, %hash2 because a reduction is defined syntactically.
yes, to do just one is [,](%h1), %h2
audreyt but not [,] (%h1), %h2
TimToady so each pair is "comma separated" at the top level. 00:43
which makes it named
presumably not.
audreyt we had *$hash and *%hash do the same thing
TimToady as I say, it's just $capture that doesn't naturally continue to work.
audreyt persumably we'd need to write [,] %$hash now?
00:43 FurnaceBoy joined
TimToady presumably. 00:43
and =$capture, perhaps 00:44
or @$capture, to just get the @ etc.
audreyt I'm fine w/ that
TimToady [,] $$capture, @$capture, %$capture;
audreyt I'm tempted to write *$capture to stand for "whatever caster"" ;) 00:45
TimToady anyway, it really was seeming more and more like we needed to de-borrow * from Ruby.
audreyt but nah. it's a term.
sure
hm. 00:46
TimToady the deref meme was just wrong for *. now we're consistently globby with it.
audreyt my $capture = \( [,] want() );
my @a := =$capture; 00:47
my $b := =$capture;
TimToady shades of typeglobs...
audreyt surely want() is not evaluated twice?
trying to avoid typeglob shades :) 00:48
TimToady I would hope it would only evaluate once.
audreyt but more importantly, in capture construction, does want() just get the current context even when it's not part of binding?
TimToady it's still logically flattened, whether it's lazy or not. 00:49
hmm. that's why my --> Dog: conjecture said it's probably better to return an object that decides. 00:50
audreyt I agree, but that is an argument against builtins that checks want() and do different things 00:52
currently:
TimToady yes, want is a weird inside out delayed dispatch, or something.
audreyt reverse('1', '2'); # '21' on scalar context, ('2', '1') on list 00:53
TimToady a parallel gather/take like thing
audreyt slurp('/etc/passwd'); # whole file on scalar, list of lines on list
TimToady if we had a language without side effects, it wouldn't be a problem.
audreyt readdir('/etc'); # one entry on scalar, all entries on list
readline(); # ditto
splice(@x, 0, 4); # all spliced on list, but _last_ item on scalar 00:54
$str ~~ rx/.../; # positional captures on list, Match object on scalar
that's all, I think
TimToady I think want has to be an "observation" in the Copenhagen interpetion
audreyt reverse() doesn't involve side effect 00:55
TimToady interpretation, even
audreyt all others does
and hence can't be delayed
splice's side effect is always the same regardless of context
so is poetntially safe 00:56
all others are unsafe.
(well, it can be argued that slurp()'s is also the same)
TimToady can want know whether to collapse the wavefunction or not?
audreyt it can know if it's not-yet-bound 00:57
by passing in a Whatever context
but that doesn't help readline() and readdir()
which needs to do different things
and has to do it now
TimToady It's like there needs to be a negotiotion.
how lazy do you want me vs how lazy can I be 00:58
audreyt right
TimToady gee, sounds a lot like type inferencing...
audreyt it is a special kind of inferencing
return-type inferencing
but I'm wondering if we need all that mechanism, for readdir() and readline()
instead of just saying that List context is just casting whatever returned into a List 00:59
and vice versa
which precludes them doing different things
but that only affects <reverse readdir readline splice> 01:00
TimToady as far as I'm concerned, it could all just fall under the rule "if we don't know, it's list context".
audreyt I wonder if 01:02
reverse('x', 'y')
can _always_ reverse the list
regarddless of context
and reverse('xy') would always just reverse the string
as it's just "xy".reverse
TimToady interesting fallout from the 1-arg rule... 01:03
audreyt i.e. have it decided by arguments, not by context
TimToady reverse(@onearg)
audreyt @onearg is an Array 01:04
goes to Array.reverse
performs list reverse
TimToady so we only get into trouble with reverse([,] @onearg)
audreyt it's... not troublesome, I think 01:05
TimToady I don't plan to lose much sleep over it...
audreyt and also even that can be made to work.
because [,] puts it to pos, not inv
it is still a list.
so still list-reversed.
?eval ~(reverse 1,2,3) 01:06
01:06 evalbot_10311 is now known as evalbot_10314
TimToady because foo($x) really means foo([,] $(\$x)) 01:06
evalbot_10314 "3 2 1"
audreyt yes.
foo($x :), to use another notation 01:07
TimToady what's your opinion of the triangulation metaoperator? 01:08
audreyt it's... cute
TimToady er...
audreyt [[+]] 1,2,3 01:09
I wonder if that looks better
TimToady I had that first.
audreyt ok, how about [(+)] 01:10
TimToady but...there's something to be said for cute...
audreyt just trying to reuse list-producer metaphor instead of backslash-metaphor
TimToady looks too much like a reduce on the (+) operator
audreyt but it is
a reduce on the (+) operator
just a "special" scan reduce ;)
TimToady is (+) a set operator? 01:11
audreyt oh no...
([+]) 1, 2, 3
can be made to work, but too yucky
[/+\]
I guess I'll livewith [\+].
TimToady also tried [+]\ and [+\
audreyt if you have a infix:<\+>, well, too bad 01:12
TimToady also played with |\ briefly.
I like that [\ is assymetrical
audreyt nod.
TimToady [/+\] would have to start in the middle. :)
yes, but at least I doctored it so that [\+] gives you the normal 01:13
svnbot6 r10315 | audreyt++ | * Prim.List: [+] 1,2,3 is again fold, not scan.
TimToady reduce rather than the scan
audreyt so, in sigs 01:14
is (*@x) still slurpy?
the syntax only changes on the calling end?
TimToady correct.
slurpy is a manifestation of the globby meme
"pattern match a bunch of things here". 01:15
and can't be confused with GLOBAL:: because we never declare globals in sigs. 01:16
01:29 Khisanth joined 01:34 justatheory joined
svnbot6 r10316 | audreyt++ | * reverse() is now context-insensitive. one-arg form, if the 01:37
r10316 | audreyt++ | arg is not listish, coerces to string and reverse it; otherwise
r10316 | audreyt++ | it's always a list reverse.
01:40 justatheory joined
audreyt TimToady: S06 still has 01:41
doit *$pair,1,2,3; # always a named arg
doit *%pairs,1,2,3; # always named args
I take it's now
[,]%$pair
[,]%pairs
right?
TimToady yes 01:42
audreyt doit [,](%$pair),1,2,3; # always a named arg 01:43
doit [,]('when' => 'now'),1,2,3; # always a named arg
doit [,](%(get_pair)),1,2,3; # always a named arg
so that's the correct way
not sure how the second line works. 01:44
if it works at all
TimToady though in the particular case of 1,2,3 it doesn't matter whether they're in or out
audreyt shouldn't it also need a
ludan good night
audreyt %('when'=>'now')
?
ludan: g'nite
TimToady I don't expect a %() would hurt there. 01:45
audreyt but without %(), I can't see it working
TimToady =$pair possibly.
audreyt 'when'=>'now' is not different from $pair
doit [,] %$pair,1,2,3; # always a named arg
doit [,] %(get_pair()),1,2,3; # always a named arg
doit [,] %('when' => 'now'),1,2,3; # always a named arg
well, eventually [,]= becomes the next *
TimToady is that an assignment operator? 01:46
audreyt heh ;)
oh. did you see my question about 01:47
$+PATH = 'x'
TimToady there's a nice consistency to the % there.
audreyt @+PATH = (1,2,3) ?
TimToady It seems like a good plan, except for the fact that different listy env vars are going to use different delimiters... 01:48
01:48 Ymmv joined
audreyt which is why maybe it's not neccessarily a good plan... 01:48
(also, mutable $+PATH in general is unspecced) 01:49
but I guess it better be mutable
also, not sure what %+PATH even means :)
maybe the ENV hash only declares $+PATH, and @+PATH is a lookup failure.
TimToady env @PATH is delim<:> := $+PATH 01:50
I dunno.
this reminds me a bit of @array ~~ /pattern/ 01:51
$+PATH is parsed ...
audreyt dies_ok { f7($bar => 42) }, 01:52
"variables cannot be keys of syntactical pairs (1)";
Juerd: implicitly computed keys are now dead, yay
TimToady wouldn't that just be a pair argument? 01:53
audreyt yup
but f7 was declared as
TimToady or does it die because of f7?
got it.
audreyt sub f7 (:$bar!)
bbiab 01:54
svnbot6 r10317 | audreyt++ | * implicitly computed keys in named arguments are now dead:
r10317 | audreyt++ | f(a=>42); # named
r10317 | audreyt++ | f('a'=>42); # positional
TimToady commuting home &
01:56 DaGo joined 02:00 neoesque joined
TimToady degone 02:12
audreyt back 02:14
so a [,](...) within a capture introduces a "zone" 02:15
within which things are parsed differently
using autoconcat rules
TimToady by autoconcat you mean A x B x C x D...? 02:16
that is, the syntactic rewriting of [x]?
audreyt I mean 02:17
[,](%a, %b, %c, @d)
explodes the elements one level
and concat them together asif they were written out in toplevel 02:18
TimToady which is what a reduce is supposed to do...
by syntactic metaphor
audreyt yes, but in the case of [,] and [;]
that means more like "reparse"
btw, why doesn't [=] work? 02:19
[=] $a, 3;
TimToady I don't see why it wouldn't.
audreyt I'll add it to S03 then. I dopn't see why it wouldn't, either. 02:20
what is the negation of ===?
not ($a === $b) ?
TimToady not( $a === $b )
audreyt is [=]() nonsensical of undef? 02:21
(same goes for [:=])
TimToady I suppose.
audreyt [+=] $a, $b, $c; # sane, then 02:22
TimToady Then theres [\+=] $a, $b, $c 02:23
audreyt ok. thanks for getting this normalizationg ([,] [=] [;]) in
before au[frank|dreyt] burned too much time on the */** form... 02:24
it's quite a bit easier to explain, the current way.
TimToady It just suddenly hit me that we already had * staring us in the face.
audreyt easiest to miss when it's too close...
TimToady I think so. Damian likes it.
audreyt I like it as long as we use [,] %() consistently :)
this actually means [,] cannot introduce new invocants 02:25
can't tell between [,] $$x and [,] $x
for some reason, this still doesn't bother me, if we keep =$x.
=$cap, that is 02:26
that is, we treat = as almost a sigil
for the special purpose of the [,] zone
it feels a bit icky
TimToady 'course it was the pain of rewriting all the *@foo to make * "almost a sigil" that drove me over the edge to whacking it... 02:27
audreyt $$cap.call([,] @$cap, %$cap);
what do you feel about imposing this on users?
call([,] =$cap) # because this takes a special-case of prefix:<=> 02:28
TimToady as long as there's a way to do it, we can look at slicker ways to do it later.
audreyt however, we can workaround it by saying any function calls in [,] zone
gets all its full Capture-return exploded
sub func {return(1: 2, x=>3)}; \([,] func()); 02:29
TimToady yes.
audreyt and then it falls out from that
ok, that feels much clearner :)
TimToady do extra invocants turn into positionals or blow up?
audreyt yes. 02:30
(but I prefer the latter)
but well hm
TimToady clearner++
audreyt the latter can't work, can it
has to be the former
the former, then.
extra invs become positionals
and we can use your Capture layout
TimToady kinda goes back to the idea that the invocant is the honorary head of the positionals... 02:31
audreyt where the inv is just a bit
RAID again...
TimToady yeah.
audreyt ok. can you document those two points?
I feel together they can make [,] fly stably
(capture-explosion and inv-turns-into-pos-under-explosion) 02:32
TimToady I've been thinking of invocants in Captures as kind of a search strategy, where different types from the type bag
are more specific.
and the head of @ is just the most generic place to look for an invocant.
audreyt surprisingly, I parsed that line with no difficulty and even agree with it :)
TimToady it took me a while to compose it... 02:33
02:33 DaGo joined
TimToady I'm being called to dinner, but I'll whack on it later. 02:33
audreyt so it was worth that while, I suppose...
yay
TimToady++
02:33 dduncan joined
TimToady biab & 02:34
audreyt goes to find some lunch
dduncan audreyt, when you come back, can you give an idea when the earliest possible date/time is that the cut-off for what goes/doesn't into 6.2.12 is? 02:35
I'd like to know how much time I have to work with to get certain things in 02:36
eg, will it be before or on next tuesday/wednesday?
audreyt well, we know it has to happen after parrot release 02:37
preferably right-after
which means next wednesday is likely 02:38
or thursday
or at latest next weekend
dduncan for parrot or pugs or both?
audreyt both
parrot 0.4.4 will be relenged this weekend
and released, usually a few days after
bbiab... 02:39
dduncan thank you
audreyt np :) 02:40
02:40 dduncan left 02:49 FurnaceBoy joined 02:55 multic joined 02:59 multic left 03:02 nothingmuch joined 03:13 KingDiamond joined
meppl gute nacht 03:24
03:25 DaGo joined 03:44 aufrank joined, Ymmv joined
aufrank hello! 03:45
FurnaceBoy ola
aufrank is gaal around? 03:46
stevan++ 04:02
will perl 6 cherry pick the role additions from the newest Moose?
svnbot6 r10318 | lwall++ | More long dot tests.
aufrank calc
04:07 FurnaceBoy_ joined
aufrank sorry, that was supposed to be M-x calc =\ 04:12
04:24 FurnaceBoy joined
stevan aufrank: I hope Perl 6 will consider some of the role additions I have made 04:38
aufrank I think excludes sounds really useful
that said, I've never programmed with roles at all, so it's just gut feeling at this point
stevan yeah me too, stole that from Fortress :)
aufrank I haven't really done the heavy lifting of thinking up use cases ;)
stevan well one of the main issues with role composition is that easy things are easy 04:39
but complex things can get really hairy really fast
Moose still hasn't worked out the full details of how attributes and roles interact 04:40
when i mentioned to the guys who wrote the original Traits paper that we were experimenting with that
they said "good luck, let us know how it works out" :)
its a potentially very thorny feature 04:41
aufrank attributes are traits?
sub foo is fancy does dance_moves { ... } 04:42
fancy is the attribute, dance_moves is a role?
stevan aufrank: no, class-attributes/instance-slots
aufrank oh oh
stevan role Foo { has $.bar; } role Bar { has $.bar; } role FooBar { does Bar; does Foo; } 04:43
what should happen there
conflict is the most obvious
aufrank role foo { has $.a } role bar { has $.a } sub foo does foo does bar { say $.a }
stevan right now in Moose, any attr name conflict blows up right away 04:44
however, this is only because we closely associate instance slot names and attribute names
if we decoupled that, it would not be an issue
aufrank can you be explicit with $::foo<a> or something>
?
stevan exactly
aufrank (was I close on syntax?) 04:45
stevan but it gets messy the more details you add to the use case
fairly close I think,.. I have been outta the loop myself :)
aufrank S12 is one of the one's that I'm not sure I've ever been all the way through...
stevan :) 04:46
it's a dense one thats for sure
aufrank stevan: are instance slot names and attribute names separated in ruby? 04:49
one of the two is @@, I think
PerlJam stevan: I'm not sure if I got this from perl6 or from the traits paper or what, but isn't part of the compositional nature of roles that once composed, they lose their identity as separate entities?
(ergo, the "right" thing to do in conflict is to blow up) 04:50
stevan aufrank: my ruby-fu is fairly weak these days :) 04:53
aufrank: IIRC, @foo is an instance variable, and @@foo is a class variable
aufrank mine too, or I wouldn't be asking ;)
I'm just trying to get a sense of what that decoupling would bring with it
is it just losing some of the $.a and $!b sugar in class declarations? 04:54
stevan PerlJam: once roles are combined, they become basically just an anon-role which is simply a composite of the roles with all mixing rules and conflict stuff applied
aufrank: decoupling attr names from how they are stored just allows the meta-level to get more funky :) 04:55
I am not sure if there is any true value though
aufrank maybe I'll wait til you draw a picture ;) 04:56
PerlJam Why do I get the feeling that pelr6 needs another special block for composition-time actions? I don't know what you'd call it though, BEGIN, INIT, CHECK, and ... COMP? COMPOSE? hmm
I guess it would be a special kind of FIRST though 04:57
stevan aufrank: :) 04:58
PerlJam yeah, stevan++ for drawing good pictures :)
stevan PerlJam: one of the "experiments" in Moose is that of not trying to do everything at compile time 04:59
stevan knew those years at Art School didn't go to waste :)
PerlJam so moose has lazy conflict resolution?
stevan PerlJam: Moose is very lazy 05:00
PerlJam one of these days I'll have to find time to play with moose. I saw your journal entry just a few minutes ago, but it only percolated up to a musing "neat" and not quite all the way to "I should play with this now" 05:01
svnbot6 r10319 | aufrank++ | added todo items for [,] and recent clarifications in S06 05:05
aufrank alright, sleep time 05:07
see you folks around
audreyt g'nite 05:15
I'll be back in 3~4 hrs
PerlJam have a good sleep audreyt
audreyt s/sleep/shopping/ actually... 05:17
(that g'nite was to aufrank)
&
PerlJam oh, well, have a good ... um, down time? rest from hacking? whatever it is that shopping does for you :) 05:23
Juerd shopping time. 05:24
That's the safest way to say it :) 05:25
05:52 DaGo joined 05:56 Ymmv joined 06:07 masak joined
gaal aufrank: you moosed? 06:11
06:11 Ymmv joined
gaal 04:13 < TimToady> reduce rather than the scan 06:11
06:11 Aankhen`` joined
gaal I'm not sure I agree with that 06:12
reduce is more general than fold or scan
morning
azuroth I have safari :D 06:29
svnbot6 r10320 | spinclad++ | - JudyHS: doc: added second, alternative, iterator interface 06:39
07:08 ghenry joined 07:09 ghenry left 07:13 macroron joined 07:20 iblechbot joined 07:41 r0nny joined 08:06 Ymmv joined 08:19 bb3 joined 08:22 elmex joined 08:26 DaGo joined
svnbot6 r10321 | spinclad++ | - JudyHS: add new calls to Judy.h 08:33
gaal stevan: re: recent Moose post: In Haskell you can define either == or /= and either other one will be derived if it isn't defined. Maybe Moose should do that? 08:37
08:37 bernhard joined
audreyt rehi 08:40
hm, the named-arg caused 100% increase in failed subtests 08:41
audreyt triages 08:42
08:47 AtomicStack joined
svnbot6 r10322 | spinclad++ | - JudyHS: typo fixes 09:01
09:15 m joined 09:17 m joined 09:59 KingDiamond joined 10:03 larsen joined 10:13 nnunley joined
ingy hi nnunley 10:21
10:21 neoesque joined 10:23 DaGo joined 10:25 Kournikoza joined
Kournikoza hello, when i changed the timezone on my system, and my perl program is in a loop (and uses localtime()).. how can i know that the timezone has changed, so localtime() can work with it instead of the old timezone? 10:26
10:30 trampel joined 10:47 DaGo joined 10:51 chris2 joined
Kournikoza help, how can I get the current time in "seconds with %6d microseconds" with strftime? 10:53
10:54 ludan joined
Juerd You can't 10:59
Kournikoza help, how can I get the current time in "seconds with %6d microseconds" with strftime? 11:00
11:03 mykhal joined 11:14 bernhard joined
Kournikoza help, gettimeofday returns the current time, but if i change the timezone, gettimeofday doesnt adapt to the timezone, but the date command shows the change.. what must i do? 11:15
11:18 elmex joined
azuroth is it a perl6 program, Kournikoza? 11:36
11:44 garth joined 11:56 AtomicStack joined, iblechbot joined
Kournikoza azuroth yes 11:56
azuroth excellent, I didn't know time stuff was implemented 11:57
Kournikoza please, i needto know how i get the time in $seconds,$microseconds linked with the curernt time zone.. how can i do that? i tried several things with gmtime etc.. but i don't get the seconds and ms.. 12:00
12:01 pmurias joined
pmurias hi 12:01
audreyt hi 12:02
pmurias are there any plans for a rule syntax which wouldn't require named rules to be surrounded by <> 12:03
12:03 Ymmv joined
pmurias ? 12:03
>
eq. /named_rule1 named_rule2/ instead of /<named_rule1> <named_rul2>/ 12:04
audreyt how do you diff that from literals? 12:08
12:21 neoesque joined 12:22 TimToady joined
pmurias require them to be quoted(some rules have very little of them eq. Signature.pg or Capture.pg) 12:25
or use the perl5 'no strict' style behaviour rules which are not defined return their name 12:27
the <> less syntax would require an :modifier 12:29
the APL,pheme,and the {Signature,Capture}.pg don't use literals, so it would be a (big) win for those 12:36
audreyt *nod* 12:44
pmurias how should be the modifier named than? 12:46
12:48 weinig joined
audreyt not sure 12:49
pmurias :bare?
12:55 DaGo joined
audreyt I wonder if we can use standard combinator for them, even... 12:59
rule foo { <f1> <f2> }
becomes 13:00
sub foo { ; f1; f2; }
probably just an idle thought.
(but I do agree that <>-less syntax is attractive)
<'literal'> just becomes 'literal' 13:01
audreyt praises vim8 13:07
pmurias what does '...' do in standard rules? 13:08
audreyt it means two anychar
I mean three
13:08 marmic joined
pmurias :) the ... were just place holders 13:10
i want to know what do '' mean
Gothmog_ audreyt: You mean vim7? 13:11
audreyt yes.
Gothmog_ Or did I miss something?
k. :-)
audreyt I compensated for that in the "two anychar" below
pmurias: they mean literal ' I think 13:12
pmichaud right now ' means literal ' 13:22
audreyt token program { ^ statement_list ?ws [ $ | ?syntax_error ] } 13:23
token statement_list { statement [ ?statement_end statement ]* ?statement_end? }
it does look a bit less cluttered
pmichaud how do we differentiate ? (non-capture) from ? (**{0..1})? Require that all quantifiers abut the thing the quantify? 13:25
s:2nd/the/they/
audreyt prefix vs postfix? 13:26
and yes.
pmichaud rule { subrule1?subrule2 } 13:27
hmmmm
audreyt not sure if it's going to be a win overall
audreyt recites the "different things should look different" mantra 13:28
pmichaud I guess one would disambiguate with [...]: rule { [subrule?]subrule2 } or rule { subrule[?subrule2] }
pmurias IMHO something else should be used for non-capture instead of ? in the <> less mode
garth rule { subrule1 subrule2 } vs. token { abc } vs. regex { abc } -- one more way to differentiate rules from tokens etc.
pmichaud except I would think that token should be like rule and less like regex
audreyt what pmichaud said. 13:29
pmichaud i.e., rule { subrule1 subrule2 }, token { subrule1 subrule2 } vs regex { abc }
pmurias: at one point we had <<...>> as capturing subrule and <...> as non-capturing
another way to do a non-capturing rule is + ... <subrule> captures, <+subrule> doesn't 13:30
(but that seems to give an odd interpretation to '+') 13:31
pmurias why is ? more easily explained?
audreyt my &f; say f(); 13:32
I wonder if this should die.
i.e. is Code more like Array/Hash or is it more like Scalar.
pmichaud I've been thinking of it like scalar 13:33
but hadn't thought about it deeply
audreyt I think it has something to do whether assigning into &f should work in general 13:34
if you can say
&*say = ...
then it should init to undef, sure
but maybe &*say is bound to that name, not assigned into it in the first place 13:35
question is, is the default "my &f" a Code, or a Scalar with Code constraint. 13:36
Pugs currently has the latter 13:37
pmurias pmichaud: the same problem occures with + as with ?
pmichaud pmurias: I don't disagree; I don't have another answer. :-) 13:38
audreyt I guess doing it the way perl5 people would expect is probably best 13:39
i.e. it is mutable by default, and it should die 13:40
when called in uninitialized mode
13:40 ruoso joined
audreyt ?eval my &plus = {$^x+$^y}; &plus .= assuming(x=>1); plus(2) 13:41
13:41 evalbot_10314 is now known as evalbot_10322
evalbot_10322 3 13:41
audreyt pmichaud: ping 13:56
pmichaud poing 13:57
audreyt pmichaud: did you sign up as SoC mentor?
pmichaud yes
audreyt have you taken any mentorship slots yet?
pmichaud at least I said I'd be one, I don't know that I "signed up" anywhere
audreyt oh. you need to do that, like, today
pmichaud afaik I don't have any mentorship slots yet
audreyt code.google.com/soc/mentor_home.html 13:58
if you had not
pmichaud I didn't know there was a "signup"
audreyt there was
and if you didn't, then you can't take up mentorship at all
so please sign up :)
(because I'm trying to get aufrank's application pushed to your plate :))
(and scw's if you feel that you have extra time, but aufrank's definitely) 13:59
pmichaud I'm now signed up
and yes, I have time, or will find the time
audreyt yay 14:00
pmichaud I'd be glad to be working with aufrank and scw
audreyt so you have access to the "mentor home" project listing?
or are you "pending approval" from perl.org?
pmichaud "pending approval"
audreyt particle_: are you the admin, or should I ping Robrt? 14:01
14:01 jsiracusa joined
audreyt nvm. pinged robrt 14:03
14:04 Khisanth joined
scw :) 14:04
aufrank hi folks 14:08
audreyt yo
aufrank my ears were burning ;) 14:09
audreyt :) 14:10
audreyt is trying to avoid the undesirable ituation of mentoring ~10 people 14:13
svnbot6 r10323 | audreyt++ | * Uninitialized VCode is now (conceptually) undef, so this
r10323 | audreyt++ | is no longer a parsefail, but a runtime failure:
r10323 | audreyt++ | my &f; f 1;
audreyt so far quite successful; more than half is delegated away :)
svnbot6 r10324 | audreyt++ | * Regen AST.Internals instances to capitalize error messages. 14:16
r10325 | audreyt++ | * Eval.hs: "yield" should preserve the calling context correctly now. 14:19
r10326 | audreyt++ | * Pugs.Parser.Operator: uninitialized functions are not 14:22
r10326 | audreyt++ | relevant to parsing:
r10326 | audreyt++ | my &f := -> $x {...}; f 1, 2, 3; # this is still listop
r10327 | audreyt++ | * unTODO various passing tests, and take the quotes out of 14:25
r10327 | audreyt++ | f('x'=>1) now that it has to be written f(x=>1).
clkao does pil2js backend work now?
14:27 iblechbot joined
audreyt havn't checked recently 14:27
will get it to work before release
14:33 DaGo joined 14:38 Limbic_Region joined 14:39 justatheory joined
aufrank I'm going to be afk for most of the weekend, I think 14:40
heading home to cleveland to watch a basketball game
pmichaud have fun
aufrank I'll see you folks sunday night or some time monday :)
bye! &
14:55 jserv-- joined 14:56 justatheory joined
pmurias ` could be used for non capturing rules 14:58
svnbot6 r10328 | scw++ | Rule::Perl5::Ratchet: fix emitter to make lexical unnamed subrule works. 15:04
15:08 FurnaceBoy joined 15:35 mago joined 15:37 mago joined
gaal there are two mentions of &?SUB in S06. Is this correct, or should those be &?ROUTINE ? 15:45
TimToady gaal: fixed, thanks 15:52
ingy audreyt: ping
audreyt pong 15:54
ingy was interviewing someone a couple days ago for a programming position, who didn't really know Perl so much. At the end of the interview he said, "You Perl guys are pretty cool. I was always scared away by those crazy people like ESR and Larry"
audreyt but I need to sleep, like, now
gaal TimToady: thank you. I'm rereading S06 and things are making sense again :)
ingy hi audreyt
I have a url for you 15:55
audreyt ok
ingy yaml type tags...
audreyt as long as it's not localhost/
I've already got that one
ingy pyyaml.org/wiki/PerlTagScheme
gaal and you can use it whereever you go!
ingy funny place for it I know...
anyway I promised you a proposal 15:56
audreyt ok, I got it.
I remember I said "tests"
but a spec is fine
it makes sense only when both YAML.pm and YAML::Syck can support it
ingy its not a spec
audreyt preferably in the same release
Juerd What is "couple days"? Short for "couple of days"?
audreyt Juerd: probably 15:57
ingy it's a draft proposal for you to comment on at this point
audreyt why !! not !?
ingy it's a trac so just comment on the page
!! is more official 15:58
audreyt got it
ok
ingy ! can be anything
I don't really care what it is in practice, as long as we are in parity
audreyt "pyyaml.org/wiki/PerlTagScheme"
er
"determined by" 15:59
how does Foo::Bar signify its desired layout?
ingy and I'm trying to get in parity with the python folks and ruby folks too
audreyt probe ->new's layout?
otherwise I think it's sane 16:00
you have an idea of when you'll have cycles to put together a draft impl in YAML.pm?
ingy using !perl/Foo.Bar implies there is a Foo::Bar class with a from_yaml method
or somesuch 16:01
audreyt not too sure about that
why can't we just bless it?
ingy then use !perl/:Foo.Bar
or !perl/hash:Foo.Bar 16:02
which are synonyms
audreyt and hash:Foo::Bar is also synonym
I'm not too sure about :: vs . synonymship
either we all normalize to .
or we only normalize to . on the object-handling sigilless way 16:03
and preserve :: otherwise
ingy Well, for !perl/ tags I don't care...
audreyt ok then
ingy for !!object:Foo.Bar
audreyt in that case, :: is probably better to !perl
too confusing otherwise
!!object I agree.
ingy I was just throwing out options
audreyt I understand
and I was just about to fall asleep prior to that :) 16:04
ingy do you like the sigils or long forms for Perl?
I don't really want to support both
the long forms are nice because the blessing is just an extension 16:05
of the unblessed forms
I think the sigils are too cute
audreyt I dislike the sigils
ingy cool. gone
audreyt the new form should be as distinct as possible
from the old form
we are breaking all compat
so we might as well do it in a more regular and clearner way 16:06
ingy sigh...
yeah
audreyt the tone of your "sigh" and "or somesuch" reminds me of TimToady...
ingy yes
borrowed from him
audreyt as we all do :) 16:07
ingy well not sigh but somesuch and handwaving
audreyt ok, I think the current proposal will fly
will take a closer look tomorrow
ingy handwaves audreyt goodnight
audreyt handwaves back
&
16:11 cdpruden joined
scw hi, there are some inconsistent in S05, the first and last appearance of 'ratchet' described totally opposite behaviors of :ratchet and ':' 16:11
TimToady fixed, thanks. 16:15
afk &
nothingmuch can we have a commit bot svn.perl.org too? 16:20
nothingmuch tries to remember who runs svnbot6 16:21
ingy hola nadamucho 16:24
16:34 saorge joined
nothingmuch hola ingu-san 16:41
nothingmuch freezes
i ran out of hot water in the middle of the shower, just after i finished putting on the shampoo 16:42
worst possible timing
16:44 sri__ joined 16:45 sri__ joined 16:49 larsen joined
svnbot6 r10329 | scw++ | Pugs::Compiler::Rule: more tests on alternation for ratchet 16:53
16:53 justatheory joined 16:58 trampel left 16:59 ruoso joined 17:25 justatheory joined 17:26 geoffb joined 17:55 Mahmoud joined, Mahmoud left 17:56 davidfetter joined 18:05 r0nny joined 18:21 ruz joined 18:24 FurnaceBoy is now known as FB|afk, elmex joined
stevan gaal: I would love for Moose to support a Haskell style Eq, I just need to figure out the details of a requires_either '==' | '!=' 18:36
for that matter a haskell style Ord would be cool too :) 18:37
davidfetter hello 18:38
any postgres fans in the house?
er, any other ones? ;)
ruoso seriously consider reimplementing latex2html with P::C::R 18:40
davidfetter i'm looking for ppl who can help me figure out whether it makes sense to see about making a PL/Parrot
ruoso davidfetter, it would be at least impressive 18:41
davidfetter ruoso, i'm pretty much of a n00b as far as VMs and language bindings go. does it even make sense to talk about such a thing? 18:42
ruoso sure it does... 18:43
parrot is currently embedable in perl 5
ruoso wonders if "embedable" is a valid word.... 18:44
davidfetter so what's a 50,000-foot view of how such a thing might work?
i.e. would parrot have some kind of extension for calling SPI?
ruoso link to libparrot and call parrot bytecode... 18:45
davidfetter would it be some kind of off-to-the-side VM like PL/J ?
does parrot have a "safe mode" the way perl does?
as in "can't open files or pipes?"
ruoso if not, it certainly should...
leo davidfetter: not yet 18:46
davidfetter ok, so PL/ParrotU 1st, then
ruoso, when you say "link to libparrot," what do you mean? 18:50
ruoso davidfetter, the same as link to libperl 18:51
davidfetter hrm.
ruoso libparrot provides an interface to the vm
davidfetter goes off to dig into just how PL/Perl(U) is done
ruoso where you can execute code...
19:07 dduncan joined
ingy audreyt: I rewrote pyyaml.org/wiki/PerlTagScheme (please review and comment there) 19:29
19:43 pmurias joined
pmurias hi ruoso! 19:43
ruoso hi
19:44 elmex joined
ruoso fighting with latex2html 19:45
davidfetter how about going through pdf 1st? 19:53
ruoso davidfetter, it messes with footnotes 19:54
and semantic information 19:55
but I finally understood how to extend latex2html to support a new document syle
s/syle/style/
it's still not exactly as I wanted, but it's acceptable already... 19:56
20:01 Quell joined
pmurias davidfetter: any problems with the parrot part of the embbeding? 20:02
20:03 ruoso joined
ruoso hates when he hits ctrl+alt+backspace by accident... 20:03
pmurias i hit mostly caps-lock by accident 20:07
ruoso the problem is that ctrl+alt+arrows switches desktops 20:08
so if I press backspace too quickly after switching desktops I end killing the X server
20:10 FB|afk is now known as FurnaceBoy
davidfetter pmurias, i'm just not qulified to do any of it :/ 20:12
pmurias, so i'm trolling for ppl who are at least qualified to figure out whether it's possible :) 20:13
20:13 r0nny joined
Khisanth ruoso: you could just disable that 20:18
pmurias i'm not sure about the sql part, but the parrot embbeding part is not a big hassle
what i failed to do for Parrot::Inline was to write the nessary typemaps 20:19
ruoso Khisanth, I know... but eventually I need it... 20:24
pmurias good night
20:32 elmex joined 20:41 amv joined 20:47 obra_work is now known as obra
PerlJam Wow. I asked one year ago if the DBDI list was still alive and the answer was "yes, and we'll start producing something soonish" but there hasn't been any traffic since. 21:08
and when I asked it had been silent for about a year already. 21:10
21:10 ajs_home joined 21:11 shachaf joined 21:13 elmex joined 21:32 frederico joined
svnbot6 r10330 | Darren_Duncan++ | ext/Relation/ : added new Relation.pm methods extend() and map() ; other small changes 21:32
21:36 weinig is now known as weinig|away 22:19 larsen joined 22:31 macroron joined 22:51 avar joined 22:57 chris2 joined
svnbot6 r10331 | Darren_Duncan++ | ext/Relation/ : removed method delete() and its alias delete_where() ; added new methods union(), exclusion(), intersection(), difference() and their aliases plus(), disjoint_union(), d_union(), symmetric_difference(), intersect(), minus(), except() 23:11
23:25 shachaf joined 23:32 Odin-LAP joined 23:41 shachaf_ joined 23:42 elmex joined 23:46 SamB joined