Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-04-01

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

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

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

Perl 6 | Reference Documentation | Rakudo