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 There are references all over in Perl 6, it's just that most of them don't require the extra level of indirection required by taking an explicit reference to a scalar value, which in a sense is taking a reference to a reference. 00:01
And this is really the direction we were going anyway with Perl 5, if we'd ever managed to get rid of type glob as lvalue.
the plan was to allow any aliasing (including of lexicals)
by saying \$x = \$y, which is essentially the binding op of p6 00:02
00:02 frodo72 joined
TimToady which is also essentially what happens in binding to formal arguments. 00:03
So the relationship of \$x to \($x) (p6's version) runs fairly deep.
On top of that, it's quite possible to make the implementation of the Arguments type polymorphic, just as the official Int type is represented internally by either an int or a BigInt, but that's totally transparent to the user. 00:04
does this make a little more sense now? I admit we announce the thinking somewhat bassackwardly... 00:06
Darn it, now I'm dropping my subject/verb agreement. Gotta stop hanging out with Audrey...
Hmm, actually, in this case it wasn't subject/verb agreement, but the past tense marker. Still... 00:07
It's also possible that Arguments is still the wrong name. Bindables or some such might be more accurate. 00:10
In fact, it's the process of making bindable that we call autoboxing. 00:11
00:25 mako132_ joined
Juerd TimToady: It does make some sense now, while it used to make none, but I'm still not quite seeing the entire thing if this is supposed to make a lot of it 00:26
TimToady: I'm cautious of anything that involves both binding and referencing, as my understanding of Perl wants them to be wildly different things that just happen to be useful for similar purposes 00:27
TimToady: And I think subject and verb don't have to agree, as long as they stay friendly and *respect* eachother :) 00:29
TimToady :)
Juerd Good night, or whatever localtime you prefer at my 2:29 am
TimToady April fools...
Juerd Ohhhh, it's started! 00:30
I will go to bed with the nice feeling of anticipation of weird news in tomorrow's newspaper
01:04 nothingmuch joined 01:30 amnesiac joined
TreyHarris do I remember right that the convention is changing in p6 so that user-defined block labels are all-lowercase? 01:56
TimToady first I've heard of it...
audreyt if it's a convention, it's from the future
TreyHarris s04 gives examples in "label:" form rather than "LABEL:" form 01:57
TimToady I think uppercase is still better for visibility in most cases.
FurnaceBoy thank goodness, somebody is speaking. Fridays are too quiet.
TimToady (npi) 01:58
It's not Friday everywhere... :)
FurnaceBoy :-)
TimToady But yes, the net tends to go dead Friday nights. some people have lives, it seems...
TreyHarris one of my students just got badly burnt by typing "BEGIN: {" when he meant to type "BEGIN {", and I was writing a note to my class, and I thought I'd add, "in Perl 6, the designers have realized this pitfall, especially with the number of named blocks increasing from 4 to 15, and so the convention for user-defined labels is changing to all lowercase." 01:59
but if that isn't true... i guess my memory is fuzzy
FurnaceBoy not this little cane noir!
yeah all caps is great for visibility but I always worry about collisions...
audreyt Begin: { ... } # maybe this 02:00
FurnaceBoy maybe one day we will consider colour/typography indispensable
TimToady The convention could certainly change.
FurnaceBoy at, could work
audreyt nah. just use umlauts for sigils.
FurnaceBoy :-))
FurnaceBoy is an ASCII-phile
TimToady I don't think lowercase labels conflict with anything currently, 02:01
TreyHarris well, I thought I'd read on p6-l at some point that all-lowercase would be preferred, and in S04 I see "label:" used, so that bolstered that memory
TimToady Disambiguating colons generally have to have at last two things before htem.
FurnaceBoy except they might look like keywords, subliminally
TimToady *them
FurnaceBoy in C, I'd use lowercase
TimToady yeah visual ambiguity can be a problem.
FurnaceBoy in Perl I habitually use uppercase
TimToady saying "next line" is kinda cool though. 02:02
FurnaceBoy but I like at's suggestion
I'll trial it
I don't find 'next LINE' any less clear
audreyt TimToady: map:{3} and .map:{3}
TimToady but it is a little less like English.
FurnaceBoy as a typographer, I'm used to thinking about 'first glance' ambiguity
TimToady Sticking with at least an initial cap is probably best. 02:03
FurnaceBoy it can't be dismissed totally as a problem :-)
good compromise methinks
but, these 'conventional' namespaces also need to be documented too 02:04
TimToady the : might be illegal in map:{3} if we don't have :{} form. 02:05
audreyt TimToady: do labels always attach to blocks?
TimToady the .map:{3} parses as .map: {3} actually
audreyt S02 sorta implies that
TimToady goto 02:06
audreyt goto in S04 doesn't say that
TimToady I think the labelling policy in P5 and P6 are pretty much the same, 02:07
audreyt i.e. whether labels are applied on statements or blocks
TreyHarris labels can only start expressions, or immediately follow a "do", according to LW mail from 7 May 2005
TimToady except for do label: {...}
audreyt "start expressions"?
TimToady statements, surely.
audreyt k
TreyHarris start statements. yes, sorry. 02:08
TimToady We could, if it comes down to it, change label syntax. We have the technology...
audreyt ...and the magick
TimToady 魔法
TreyHarris perhaps there should at least be a warning if you use one of the 15 names as a label 02:10
02:10 Qiang joined 02:11 Khisanth joined
TreyHarris audreyt: oh, btw, the trunk version does run much more quickly. 'say "hello world"' now runs on my laptop in 4 seconds flat, much better than the 22 it was taking with the last CPAN release ;-) 02:11
thank you 02:12
FurnaceBoy "Technology is a word that describes something that doesn't work yet." -- Douglas Adams
<TreyHarris>perhaps there should at least be a warning if you use one of the 15 names as a label 02:13
warning is good
TimToady Or we could have the convention that all labels are in CJK:
列: goto 列;
audreyt TreyHarris: np :)
I'd need to get the container stuff (and the dispatch stuff) figured out with TimToady today
TreyHarris make smoke still is something I have to run overnight though... it takes 7.5h or so 02:14
audreyt before I can implement something that can be called 6.28.0 in good conscience
FurnaceBoy lol@TimToady cjk 02:16
TimToady I suppose Greek would do in a pinch.
FurnaceBoy It's amazing the didactic effect of example code
think K&R, etc 02:17
so whatever the example does, will usually become accepted practice :-)
TimToady Hmm, now I'm worried... :)
FurnaceBoy I was just thinking 'why' I habitually use cap LABELs
means that examples should get an extra 'do we want this to be taken as gospel' pass 02:18
TimToady We do have an underlying convention of all caps representing strange control flow.
FurnaceBoy makes sense.
I definitely see the 'visibility' argument
TimToady that unifies BEGIN and LINES somewhat.
FurnaceBoy esp w.r.t. goto
audreyt what about IMPORT?
TimToady called magically
FurnaceBoy thinks...that word again... 02:19
audreyt not specced :)
FurnaceBoy :-)
TimToady so an argument can be made for that.
audreyt goes writing another patch
so Foo::Bar.import in S11 should spell Foo::Bar.IMPORT
TimToady so it would seem 02:20
audreyt but Perl6::Export::Attrs says it's not a method
TreyHarris yes, but with 15 named blocks as compared to 4, it seems much more likely in P6 that collisions will occur (causing that colon to control whether the block is handled specially or not). Bad Huffmanizing.
audreyt but a closure trait
like INIT (so it'd go into S04 and cannot be called as that) 02:21
so maybe a default .import() walks all IMPORT{} blocks
in that module
would that make (some) sense?
TimToady cup have full/empty, but yes
audreyt i.e. use the P6::E::A semantics
TimToady *half
The whole export thing is underspecced from an infrastructural point of view. 02:22
audreyt .import would first handle all "is export" stuff, then call all the IMPORT blocks
that's what dconway's P6::E::A does, and I think it's somewhat sane 02:23
TimToady possibly the is export stuff just turns into an IMPORT block...
possibly they should be called EXPORT blocks. 02:24
I wonder if they should work like macros...
It's kinda like "use foo;" turns into 02:26
use foo; EXPORT1(); EXPORT2();
or some such
and EXPORT blocks could use quasiquoting to return thunks to the compiler. 02:27
well, ASTs
TreyHarris how odd. i can't find any file in the source that contains all of the named closure trait blocks... did one of them change names since the current rev of S04, or are some of them unimplemented? 02:28
TimToady I sincerely doubt they're all implemented yet. 02:29
And the places they are called from are going to be scattered all over. 02:30
TreyHarris TimToady: yeah, I see that now. I'm still finding my way around the source code 02:31
TimToady I would have little reason to expect to see them all in one place except maybe for parsing.
TreyHarris well, that was what i was expecting
02:31 cmarcelo joined
TimToady And I suspect the current parser just generalizes FOO {...} as a form. 02:31
though I'm just guessing. 02:32
or maybe in has only a subset of the names.
TreyHarris trying to find the right place to inject a warning if you use the name of one of those blocks becomes more difficult. 02:34
ah, well, i'll ponder on the bus. 02:35
TreyHarris &
TimToady I should probably go for a walk myself, being underexercised.
plus, hanami shitai... & 02:36
audreyt TimToady: it's fixed set of names... if we allow extension, probably prefix macros 02:38
i.e. treat them as macros in the prefix category
02:39 cmarcelo left 02:42 Limbic_Region joined 02:43 Quell joined 02:48 DesreveR joined 02:49 elmex joined 03:03 elmex joined 03:33 pdcawley_ joined 03:45 Cryptic_K joined 04:20 FurnaceBoy_ joined 04:28 khisanth_ joined 04:29 khisanth_ is now known as Khisanth 04:42 siosiosios joined 04:54 Khisanth joined 05:18 Quell joined 05:22 Khisanth joined 05:27 nirgle joined 05:37 Cryptic_K joined 05:39 Aankhen`` joined 06:20 coumbes joined 06:25 Quell joined 06:33 Guest27883 joined, siosiosios joined, pdcawley_ joined, chovy joined, hlen joined, ko1_away joined, evalbot_9807 joined, broquaint joined, amv joined, p5evalbot joined, chip joined, webmind joined, wolverian joined, xX[ReP]Xx joined, coignard joined, scw joined, chihchun joined, integral joined, merlyn joined, Odin- joined, buu joined, revdiablo joined, jiing_ joined, jiing joined, knewt joined, PerlJam joined, LeTo joined, Juerd joined, audreyt joined, Eimi joined, tewk joined, pasteling joined, Steve_p joined, Guest27883 joined 06:38 ko1_away is now known as ko1_ 06:39 clkao joined 07:04 stennie joined 07:08 Aankhen`` joined 07:14 Barry joined 07:24 fordinal joined 07:27 Barry left 07:33 nnunley joined 07:43 iblechbot joined, ghenry joined 07:51 clkao joined
clkao audreyt: saw my updates to data::bind? 08:20
i think we are almost there
08:23 nirgle left 08:50 marmic joined 09:30 larsen joined 09:32 nnunley joined 09:59 chris2 joined 10:33 cognominal joined 10:35 elmex joined 11:29 iblechbot joined 12:06 oeon joined
Juerd Re labels: Has #LABEL# ever been considered instead of LABEL:? 12:06
wolverian :label(foo) # :) 12:07
(I mean, :label<foo> ...)
Juerd :label(foo) would be postfix and not as visible
Purely in theory, it's nicer than actual syntactic labels
Hmm 12:08
wolverian why postfix?
Juerd Because that's how :these<things> are commonly used.
They're arguments, not syntactic elements 12:09
wolverian assume an invisible run_statement (+$label?, Statement $statement) for every statement..
Juerd ... 12:10
We're past that, I thought
wolverian hm? I'm obviously joking. kind of.
Juerd Such solutions used to be suggested almost daily :)
wolverian invisible magic? :) 12:11
Juerd I've been reading some old p6l posts, so it wasn't too obivous to me :)
Invisible everything, actually
12:37 pmurias joined
pmurias hi all 12:37
is anyone against changing PCR->match to take a single argument, the string to match or a hash with named arguments 12:42
13:11 nothingmuch joined 13:15 elmex joined
pmurias hi nothingmuch 13:15
nothingmuch hi ho 13:22
pmurias pmurias is fighting calling convention differences between the primitive and user defined rules in lrep 13:31
ruso: was Grammar/Perl6.pm fully generated by dump_rule.pl or hand modified, in the first case commit the newer dump_rule.pl ASAP 13:43
ruso: in the second case i'll extend dump_rule.pl myself 13:46
13:49 theorbtwo joined
pmurias ruoso: sorry for misspelling your nick 13:55
14:11 clkao joined 14:35 turrepurre joined 14:44 b_jonas joined 14:50 masak left 14:51 larsen joined 15:03 larsen_ joined 15:07 drbean_ joined 15:09 siosiosios joined 15:14 larsen joined 15:19 KingDiamond joined 15:25 Khisanth joined, autark joined 15:39 larsen_ joined 15:46 weinig_ joined 16:29 knewt joined 16:32 ko1_ is now known as ko1_away 16:54 manbou joined 17:07 nnunley joined 17:39 chris2 joined 17:49 clkao joined 17:58 hlen joined 18:27 kisu left 18:31 chris2 joined 18:34 nnunley joined
gaal what does this do? func(:arg<1> :arg<2>) # same arg, twice 18:44
18:44 KingDiamond joined
audreyt gaal: please read the April fools batch of commits! 18:45
(trickling in p6l now)
gaal is there any signature in which $arg or @arg may be populated?
ah :)
audreyt: would openfoundry host svn for a tiny p5 module? (Class::Rebless, for which which szabgab++ has been writing tests)? 18:46
audreyt to answer your question, that is simply :arg<2>
gaal: sure, just click "New project" 18:47
gaal audreyt: too bad, that means p6 argument lists can't express command line syntax
audreyt: saw the link, didn't know if non-.tw projects were welcomed. I'll take that as a "yes they are" :-)
audreyt yes they are 18:48
gaal openfoundry++
clkao audreyt: yo
audreyt yo 18:53
clkao: check the Arguments spec :)
it's now very well-specced
and Variable::Bind can serve as ref impl :)
gaal openfoundry doesn't have "Perl-style license". should I use "artistic"? (I don't worry very much about this stuff)
audreyt Artistic is fine 18:54
esp. with Artistic2's morphing to GPL
clkao audreyt: where? i didn't see any commit 18:55
audreyt clkao: see p6l 18:57
clkao oh there. 18:58
clkao syncs that mirror
18:59 chris2_ joined
clkao wasn't there a plan to move those into pugs repository and renamed to non-number-based filenames? 18:59
gaal .call is NEXT?
clkao audreyt: what did you do in hackathon? 19:00
(besides calligraphing)
audreyt gaal: &call is
.call is not
clkao: 4000+ words of synopses diffs 19:02
perl6 now fits into my brain.
gaal what is an "uninstantiated prototype"? 19:03
audreyt gaal: instead of nameds, make them positional pairs and hoist first? 19:04
gaal: ::Dog
which means, roughly
(undefined :: Dog)
in haskell
gaal heh
audreyt it is an Undef with the klass slot assigned to ^Dog 19:05
(or, in p6 speak, the .meta slot)
gaal *nod*
clkao audreyt: whoot 19:09
audreyt: see the xs in data::bind? i was surprised there's no such api :/
audreyt yeah :/ 19:10
19:26 nnunley joined 19:54 KingDiamond joined
audreyt note on the &?SUB -> &?ROUTINE change: this is done because TimToady clarified that within a sub{...} 20:26
&?BLOCK still just refers to that sub 20:27
so all recursion forms can use &?BLOCK
regardless of whether it's sub{...} or ->{...}
that means &?ROUTINE is useful only for .wrap or return-control 20:28
and would then 1)work for methods too via &?ROUTINE($inv: $arg)
and 2) deserve a longer huffmanizing
gaal is coro still a keyword? 20:37
pmurias gaal: no, all subs are coroutines 20:40
integral where are coroutines discussed? I can't find them in S06 20:43
20:44 Barry joined 20:46 SamB joined, Barry left
pmurias integral: i can't find them either, my answer was based on vage memory 20:52
integral I was wondering how a global coroutine's hidden state works in a multi-threaded environment 20:53
pmurias faultless as all things in perl6 ;) 20:54
good night 20:57
21:11 justatheory joined 21:23 nnunley joined 21:37 elmex joined
audreyt Perl6::Spec::Concurrency discusses them, but it's not yet normative 21:43
21:44 chris2__ joined 21:45 hexmode joined
svnbot6 r9814 | clkao++ | (+$a) is now (:$a) 22:10
22:13 badalex joined
meppl gute nacht 22:39
22:40 drbean_ left 22:41 vel joined 22:42 kakos joined 22:44 drbean joined 22:46 Aankhen`` joined 22:49 mako132_ joined
wolverian audreyt, s/unamed/unnamed/ in S06 23:05
23:14 theorbtwo joined
wolverian TimToady, hey, it's april 2nd already here.. that just wasn't funny :) 23:18
23:19 Khisanth joined 23:21 lichtkind joined 23:30 goneri joined 23:35 drbean left 23:38 drbean joined 23:45 drbean joined 23:51 drbean joined 23:59 drbean joined