Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2006-05-29

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 bsb joined perl6
00:14 drbean_ is now known as drbean
00:16 justatheory joined perl6
00:20 avarab is now known as avar
00:23 hikozaemon joined perl6
00:23 justatheory joined perl6
00:31 macroron joined perl6
00:48 jsiracusa joined perl6
01:36 sri_ joined perl6
01:46 jserv-- joined perl6
01:50 Quellism joined perl6
01:59 pfenwick joined perl6
02:16 vel joined perl6
02:17 vel left perl6
02:30 svnbot6 r10448 | Darren_Duncan++ | ext/Relation/ : correct private method call syntax to be \!meth() rather than .meth()
02:41 Quellism joined perl6
02:43 trym_ joined perl6
02:55 putter joined perl6
02:56 putter wrong time of day for questions, but I'll backlog...
02:57 putter p6 is a lisp-(5+5+5+1+5), yes?
02:57 putter that is,
02:57 putter env,package,lexical,lexical-sigilless,attribute
02:58 putter with $@%&::, but not @@
02:58 putter {my @@x; my @x;}  is a multiple declaration error?  or not?
02:59 audreyt it's multiecl
02:59 audreyt not an err
02:59 audreyt multidecl in general is now ok as long as the storage class compat
03:00 * putter looks at watch, wonders if audreyt has switched timezones ;)
03:00 audreyt no, just woke up
03:00 putter ah!
03:00 obra Wow. A pugs smoke in 20 minutes.
03:02 audreyt yeah, amazing, isn't it.
03:02 audreyt "make ghci" in 20 seconds.
03:03 obra   how does that compare to your timings? I'm running with .5G
03:05 putter inside methods, submethods, and multimethods (putter tries to remember the difference between multimethods and multisubs...), $x is searched for in  lexical,attribute,(and if not strict: current package(which is a Class), global package)
03:05 audreyt obra: 18 here
03:05 audreyt attribute is just lexical.
03:05 audreyt "has $x"
03:05 audreyt means making a $.x accessor
03:06 audreyt "my $x"
03:06 audreyt is class scope (noninherited) attr
03:06 audreyt under strict $x is _always_ lexical
03:07 audreyt mm both embed is borken on macintel
03:07 putter class A { my $x = 3; has $.y; method m1...} ... class A { my $x = 4; method m2...}  m2 can see $y (just $y, not $.y), yes?
03:08 putter err, m2 can see $y (just $y, not merely $.y), yes?
03:08 audreyt I don't think $y enters the picture here, no
03:08 audreyt $y isn't in scope at all
03:09 audreyt "has $y" is just shorthand for "has $.y"
03:09 audreyt has no bearing on the lexical scope
03:09 putter hmm.  I thought in m1, $y was short for $!y.
03:10 putter a closely related question is whether m2 can use $!y.
03:11 audreyt er sorry, typo
03:11 audreyt "has $y" is shorthand for "has $!y"
03:11 audreyt your example has "has $.y"
03:11 audreyt making it a public field
03:12 audreyt now if it's "has $!y" to begin with, then yes, current spec has it that you can refer to it as simply "$y in both m1 and m2.
03:12 audreyt also, the m2 declaration should have "class A is extended" or something
03:12 putter hmm.  I thought even with a public field, one could say $!y to directly access without going though the accessor.
03:12 SamB joined perl6
03:15 putter if m2 can say $!y for a not-in-a-surrounding-block  has $!y...  attributes are looking a bit un-lexical, no?
03:15 audreyt it's conceptually extending the lexical scope
03:16 audreyt you may be correct in saying that $y can refer to $.y.
03:16 audreyt but I think it's broken
03:16 putter or are class decl blocks doing some kind of weird lexical fusion in addition to package var fusion... putter squints...
03:16 audreyt i.e. though conceptually that may be sound, I think it's too confusing.
03:17 audreyt I also think one should write "has $x" but use it as "$!x" not just "$x"...
03:17 putter err, I thought $y referred to $!y, _not_ $.y...
03:17 audreyt but at least TimToady specced the latter point clearly
03:17 audreyt well, S12 can be read as that "has $.y" is just "has $y" with automagic accessor
03:17 audreyt it's a bit vague
03:18 * putter 's head hurts.  goes back to read spec...
03:18 audreyt TimToady: whats the motivation in letting undecoarated "$x" refer to private atts?
03:18 putter thanks audreyt :)
03:18 audreyt and if that's going to stay, can we get it to _not_ apply to "has $.y" style public atts?
03:18 audreyt np :)
03:24 putter hmmm.  I do like abbreviating $!x to $x.  But it does make $x a one-missing-visually-small-character-typo away from $.x, inviting "why isn't my accessor being called!#$%@$!" bugs. :/
03:24 audreyt yup.
03:29 audreyt yay, I got my US 5yr visa.
03:29 audreyt now going to submit for norway visa...
03:29 * audreyt wishes for a more portable passport ;)
03:30 putter regardless, $!x is at least un-lexical in that more than the current block nest needs to be consulted.  so it still seems a lisp-(5+5+5+1+5). :)
03:30 putter "audreyt's visa tips for the world traveler" blog entry?
03:32 putter re multidecl not an err... I thought {my $x; my $x;} had become a compiletime error.  or am I out of date...
03:32 audreyt it's now okay
03:33 putter ok.  putter looks for vaguely remembered obsolete test...
03:35 audreyt bbiab
03:36 putter given the pugs speedup, it might be worth doing a postmortem-like summary of what went into it.
03:37 audreyt aka, release notes :)
03:37 putter lol
03:40 audreyt macintel ghc (wish post-install scripts that sets everything up for pugs): http://perlcabal.org/~audreyt/tmp/ghc-6​.5.20060526-i686-apple-darwin8.tar.bz2
03:41 audreyt s/wish/with/
03:41 audreyt obra++ for testing
03:44 putter re the sigilless-lexical namespace, the ways one creates names are sub and 0-ary-method decl, and &,:: parameters.  yes?  anything else?
03:47 dduncan regarding travelling ...
03:47 dduncan while I said I wanted to recently, I now know that I can't make it to YAPC NA this year, or any conference in the next few months ...
03:48 dduncan financial reasons fundamentally, though the late reg would still be difficult anyway
03:48 dduncan but I'll try to participate in the hackathon remotely
03:50 putter hmm.  it might be nice to have a list of namespace "quirks".  eg, &/:: as params creating bare names; search for package/module/class/role/subset/enum/type/grammar is different than for scalar/array/hash/code/rule/token/regex; @@ is a singular "not a namespace" sigil; ...
03:50 spinclad cmarcelo: pong  (or just ask here, or /msg me, and we could shout across the clock at each other.  not the swiftest of converse, i know)
03:51 cmarcelo @localtime spinclad
03:51 cmarcelo spinclad: hey. =)
03:51 spinclad good @turningearth, cmarcelo
03:51 cmarcelo (not lambdabot here =( )
03:51 audreyt I wouldn't mind getting it invited here
03:52 audreyt how do we do that?
03:52 cmarcelo audreyt: ask dons i think
03:52 spinclad how would it know my $localtime?
03:52 cmarcelo spinclad: he ask you with CTCP
03:52 spinclad makes sense
03:55 spinclad so...  comments?  complaints?  sekrit meetings of cabals to hold out here in plain sight?  things i should be designing in?
03:55 cmarcelo spinclad: just a question, why the third-party/judy doesnt have the auto* infrastructure from original distribution? just asking because to test it know i'm "hardwiring" HsJudy's Makefile to get to your impl., and for make a cabal package from it, i think it'll be kind of odd to use impl. from /home/work/pugs/... [if you didnt understand something i said, ask again, i'm newbie at english too]
03:55 lambdabot joined perl6
03:55 cmarcelo @localtime spinclad
03:55 lambdabot Local time for spinclad is Sun May 28 23:55:48 2006
03:56 spinclad good to 1 second
03:56 putter re lookup for package(/module/class/role​/subset/enum/type/grammar) names - given {module A { module One {}} module X { module A {} sub f(){ ... A::One ...} } }, does this succeed or fail?  ie, do we commit once we find A, and then fail when it doesnt have a One, or keep looking?
03:56 audreyt ?eval [+] 1..100
03:56 lambdabot Parse error
03:56 evalbot_10446 is now known as evalbot_10448
03:56 evalbot_10448 5050
03:57 audreyt heh, that's rather unfortunate ;)
03:57 cmarcelo hehe
03:57 audreyt > foldl1 (+) [1..100]
03:57 lambdabot 5050
03:58 audreyt putter: conceptually the latter modules has to say "is extended" to extend the same module
03:58 audreyt and it has to be within the same compilation unit to be seen
03:59 cmarcelo spinclad: ops! "i'm newbie at english too" doesnt intended to mean that you are.. =D
03:59 putter I like both options.  Power vs clarity.  Module shadowing would be really nice.  But... I'm not sure this really gets us that?  If it does, it seems worth the clarity/typo-catching cost.
03:59 putter ah
03:59 putter hmm...
04:00 spinclad i started out only checking in the src/ and doc/ trees, on audreyt's suggestion.  I don't know what best practice for third-party check-ins of one project into another is; planning to submit back to judy.sourceforge when my patch is ready.  I have the original .tar handy
04:01 spinclad perhaps check in the .tar here...
04:01 audreyt no... just check in the auto* infrastructure
04:02 audreyt or, alterntely, check in the whole tree layout
04:02 audreyt and rm the inessential parts :)
04:04 putter does that really answer the question?  X::A is distinct from A.  the question is how the name ::A::One is resolved inside of X.  simple ::A inside of X is resolved to X::A.  so is ::A::One then a resolution  error, as there is no X::A::One?  or is ::A::One considered an atomic pattern, and failing to find a X::A::One, we keep looking, and find A::One?
04:05 spinclad src/ here is up to 9880 with temp files (not to check in), doc/ is 860, autom4te.cache is 2000, aclocal.m4 is 264, the biggest other is test/ at 696.
04:05 audreyt putter: wait a second
04:05 cmarcelo isn't autom4te.cache autogenerated?
04:06 audreyt putter: sorry I misunderstood yer q
04:06 spinclad at this point we'll have most of the dist tree checked in; simplest to check it all in from .tar so anyone can do ./configure && make ?
04:06 audreyt putter: inside module X, A::One always refer to either X::A::One or GLOBAL::A::One
04:06 audreyt never A::One, I think
04:07 audreyt spinclad: yes.
04:07 spinclad cmarcelo: could be, i'm looking at my local tree that i've been making in
04:07 audreyt spinclad: check in the whole judy-tarball-extracted
04:07 spinclad ok, will do now
04:09 cmarcelo tks
04:12 putter hmm.  that was an unexpected answer.  package names get resolved by crawling up the package nesting (after a lexical crawl).  With global being the last package of the package crawl.  so I would have expected either
04:12 lambdabot joined perl6
04:13 putter a resolution failure (X::A exists but not X::A::One), or success with (some enclosing package, maybe global)::A::One), but not a mix
04:20 audreyt thinking.
04:21 audreyt I was under the impression that only ::A is searched from inner to outer
04:21 audreyt but it seems that it can be argued that A::One is merely looking for lexical ::A, and then get One from it
04:22 audreyt not sure.
04:22 audreyt (again less than well-specced)
04:22 audreyt which way would you prefer?
04:24 putter hmm
04:31 putter incremental and fail is simple.  one problem with it is you can use package search to shadow an A::fun, but if A gets reorganized so it's A::One::fun, then boom, A::One::otherfun will start failing.  err, no.  but replace fun with Pkg.  Eg, shadow Control::Basic and Control::Caller disappears.
04:31 putter while unfortunate, I'm not really pursuaded
04:33 putter basically, while in most things p6 is very "include anything folks have found useful", our namespace management story is still a bit crippled.
04:34 putter ie, we dont have something like "namespaces are first class objects, creating an binding algebra, which is scoped, ...".  we have bits of it, and
04:36 putter implementing... hmm, lexically scoped multisub/method alternatives... may get us thinking about it more?  but a lot of namespace challenges are still... filed under unspecced, or "for perl7".
04:36 putter it seems.
04:37 putter so... I'm still too fuzzy to have a real preference.  sorry...
04:42 putter btw, is there a story on a connection between lvalue subs and Captures?  I'd be tempted to return a Capture when want.LValue, but then there is want.rw, suggesting you can't always know when your context is lhs or rhs?  Scalar as a Capture?
04:43 putter other btw, congrats on pugs speedup.  audreyt++ ;)
04:43 putter etal++
04:45 spinclad cmarcelo, audreyt: done, r10449
04:45 svnbot6 r10449 | spinclad++ | - Judy:  checking in rest of unpacked tarball
04:45 putter eep. 1pm.  good night all.  will backlog. &
04:45 spinclad (the autom4te.cache may be autogenerated, but it's in the tarball)
04:46 putter err, 1am. :)
04:46 spinclad putter, sweet dreams
04:49 cmarcelo spinclad: tks
04:52 spinclad np, this way makes sense to me
05:17 dduncan left perl6
05:26 putter joined perl6
05:28 putter typing while asleep... s/Capture/Signature/.  and resolution in pkg crawl should probably match that in earlier lexical crawl.  which is incremental, non-atomic.  ah well.
05:52 Alias_ joined perl6
05:57 unobe__ joined perl6
05:57 unobe__ is now known as unobe
06:32 iblechbot joined perl6
06:43 spinclad svn question: shouldn't r10449 have updated third-party/judy/Judy-1.0.3 to know about its new children?  it seems to still only know about src/ and doc/.
06:47 cmarcelo spinclad: what do you mean by know? here "svn info test" and "svn info test/README" indicate that both are under version control...
07:07 spinclad true, but I was seeing C<svn ls> in Judy-1.0.3 only listing src and doc, and C<svn ls -R> likewise.  but i see it acting properly now, listing all its svn children.  seems to have changed while i wasn't looking.
07:07 Ymmv joined perl6
07:09 Aankhen`` joined perl6
07:11 spinclad (and other similar anomalies have cleared themselves up in the meantime)
07:12 spinclad so, i don't seem to have a question anymore, only a mystery: "what was it thinking?"
07:14 cmarcelo hehe =)
07:15 spinclad anyway, 3am here... think i'll go to bed early for a change,  night, all  &
07:17 elmex joined perl6
07:24 mj41_ joined perl6
07:33 coumbes joined perl6
07:43 SM_ax joined perl6
07:46 AngolaHacker joined perl6
07:47 AngolaHacker left perl6
07:47 AngolaHacker joined perl6
07:56 pjcj joined perl6
08:16 Southen_ is now known as Southen
08:29 trampel joined perl6
08:31 bjoern_ joined perl6
08:47 jabbot joined perl6
08:47 ludan joined perl6
08:48 ludan hello
08:53 pfenwic1 joined perl6
09:06 mjk joined perl6
09:19 kanru_ joined perl6
09:21 kanru_ is now known as kanru2
09:34 Ymmv joined perl6
09:35 cognominal_ joined perl6
09:36 kanru2 is now known as kanru
09:40 b_jonas joined perl6
10:00 kane_ is now known as kane-xs
10:02 svnbot6 r10450 | cmarcelo++ | HsJudy
10:02 svnbot6 r10450 | cmarcelo++ | * added JudyL functions to Judy/Private.hsc
10:02 svnbot6 r10450 | cmarcelo++ | * make test: a few tests to check Judy1 (via BitSet) and JudyL
10:05 cmarcelo audreyt: commited some work. could you take a look and see if it's in right direction? specially, are these kind of tests enough for now? i'll try to get all functions being called at least once in these test files...
10:10 kane-xs joined perl6
10:34 iblechbot joined perl6
10:43 bsb left perl6
11:00 penk joined perl6
11:13 weinig joined perl6
11:13 elmex joined perl6
11:20 elmex joined perl6
11:37 penk joined perl6
11:40 Alias_ joined perl6
11:43 marmic_ joined perl6
11:56 trym_ joined perl6
12:09 turrepurre joined perl6
12:15 iblechbot joined perl6
12:17 ludan joined perl6
12:32 chris2 joined perl6
12:55 trym_ joined perl6
13:04 lxuser joined perl6
13:07 weinig is now known as weinig|away
13:17 lisppaste3 joined perl6
13:24 weinig|away_ joined perl6
13:24 fglock joined perl6
13:25 weinig|away_ is now known as weinig|away
13:27 Coleoid joined perl6
13:28 fglock cmarcelo: are you in Campinas, Brazil?
13:29 Qiang joined perl6
13:30 fglock left perl6
13:32 Limbic_Region joined perl6
13:39 rdice joined perl6
13:45 neoesque joined perl6
13:49 jserv-- joined perl6
13:50 jsiracusa joined perl6
13:55 pfenwic1 is now known as pfenwick
13:55 pfenwick is now known as PJF
13:55 weinig|away is now known as weinig
14:21 justatheory joined perl6
14:59 elmex joined perl6
15:16 FurnaceBoy joined perl6
15:20 neoesque joined perl6
15:24 lxuser left perl6
15:25 macroron joined perl6
16:00 Khisanth joined perl6
16:05 b_jonas left perl6
16:08 Khisanth joined perl6
16:15 weinig joined perl6
16:22 putter joined perl6
16:23 putter another question for the backlog -
16:24 putter S03/Precedence has a "method postfix" line.  most/all? of them dont seem to really be postfix.  but I'm most puzzled by .=
16:26 putter .= is both a "method postfix" and an "assignment" infix.  one is no-leading-whitespace, the other required-whitespace.  but they both seem to be infix, no?  so what are the called?  they can't both be infix:<.=>;  or is somethhing weird going on with the method postfix one?
16:28 putter
16:29 putter observation next - there seem to be a few places where Snn says "list context" but I think it now means Capture context.
16:30 putter next - it might be nice to have a table of what contexts exist, and where/how they are used.  anyone?
16:31 putter next - it might also be nice to have a table of all the namespaces, how variables are declared into and used from them, and what the lookup strategy is.
16:34 putter next - is S10's ArgList now a Capture?  $+ARGLIST ?
16:38 putter next - could we get a section on [Cc]ontainers?  the existing Snn info on them seems scattered, and "by implication when discussing something else".  I'm still quite unclear on the concept(s?).
16:42 MojOrow joined perl6
16:42 putter next - does anyone else keep getting Signatures and Captures confused, or is it just me.  also cognitive interference between the names "captures" and "closures".  Perhaps Lhs and Rhs ? :)   Not really.  I dont have a good alternative.  I merely note it's been a month or few now, and I'm still tripping on them.
16:43 putter to repeat from earlier,
16:45 putter next - what is the connection, if any, between lvalue subs and Captu, arg!$#!, Signatures?
16:47 putter next -  re the sigilless-lexical namespace, the ways one creates names are sub and 0-ary-method decl, and &,:: parameters. yes? anything else?
16:50 beppu joined perl6
16:51 putter next - puzzled followup on something audreyt said - extending a class requires "is extended", ok.  but has to be in the same compilation unit to be seen?!?  I thought the story was anything can be extended anywhere?
16:52 putter next - the whole "just how lexical are attributes" conversation from earlier today.
16:52 MojOrow left perl6
16:53 putter and... I think that's it for now.
16:53 putter :)
16:53 putter guidance appreciated.
16:54 szbalint signatures - captures get me confused too.
16:56 putter ah.  (not just me!:)
16:57 putter the concepts seem clear - generalized left and right hand sides of "assignment".  but the names...
16:58 putter maybe I'll try to just think of them as lhs and rhs.
17:04 putter part of the problem might be that if one thinks in terms of lhs/rhs, the lhs "takes" the values, rhs "provides", and the word "capture" has very strong "taking" vibes.
17:04 putter szbalint: anything similar?
17:09 putter next - this has come up before, but perhaps now...  it would be really really nice to have a complete package/module/class/role/type is/does/subset graph for just the core of the prelude.  even if it has lots of "this is uncertain" caveats.  even if it is sure to change.  just so folks don't have to keep reverse engineering the
17:09 putter Snn just to get an even fuzzier version of it.
17:11 putter just having it all in one place, fuzziness and all, would be quite nice.
17:16 kanru joined perl6
17:16 putter random thought - some languages are so verbose, name oriented, (scheme, python?), that code can aspire to be self documenting, with comments merely filling in the gaps.  some languages are
17:16 ruoso joined perl6
17:17 nothingmuch joined perl6
17:17 putter are so terse (apl), that documentation and implementation are almost entirely separate, with documentation handled almost entirely by comments.
17:19 putter p6 seems inbetween, with the ability to go either way.  what does that mean for writing maintainably documented p6 code?  do we need any new doc infrastructure to handle it?
17:20 putter Eg, ... I don't know... footnotes? #(1,4) comments and #1:... lines?  ...?
17:24 bernhard joined perl6
17:29 putter Footnotes, is they have pod-ish "link to section of another file" capability, might allow one to place code introduction, design discussion, implementation notes, etc, in a separate-but-linked file, avoiding code clutter, but capable of being presented together (via popups and such).
17:30 putter literate programming witht the default state being unwoven rather than woven.
17:30 szbalint putter++, lhs rhs seems to make me visualize it better.
17:30 putter :)
17:32 Alias_ WinSCP++
17:38 putter cheers &
17:51 vel6608 joined perl6
18:03 KingDillyDilly joined perl6
18:03 KingDillyDilly Way ahead of you guys. http://perlmonks.com/?node_id=321138
18:17 Raftman joined perl6
18:26 trym_ joined perl6
18:26 jsiracusa joined perl6
18:27 KingDillyDilly Yeah, well, as long as you know
18:28 KingDillyDilly left perl6
18:40 DaGo joined perl6
18:48 Ymmv joined perl6
18:50 macroron joined perl6
18:56 b_jonas joined perl6
19:05 vel6608 joined perl6
19:08 bjoern_ joined perl6
19:09 bjoern_ joined perl6
19:35 larsen joined perl6
19:44 spo0nman joined perl6
19:52 cmarcelo left perl6
19:56 Odin- joined perl6
20:36 larsen_ joined perl6
21:10 imperator joined perl6
21:31 FurnaceBoy_ joined perl6
21:45 vv3 joined perl6
21:57 vv3 left perl6
22:30 putter joined perl6
22:31 pasteling "putter" at 66.30.119.55 pasted "fyi, Data.Yaml.Syck Makefile.PL errors" (156 lines, 6K) at http://sial.org/pbot/17414
22:58 FurnaceBoy joined perl6
23:02 Gothmog__ joined perl6
23:03 froh-doh joined perl6
23:22 putter so.... after a make test was clearly running slowly, went back and uncommented the config.yml Test precomp line.  Reran Makefile.PL, make.  In Makefile, ByteString got built this time, and no errors from Syck, but still Could not find module `Data.ByteString'.  And this time, make failed with
23:23 putter Skipping  DrIFT.Perl5... The interface for `DrIFT.Perl5':  Can't find interface-file declaration for Data.ByteString.ByteString... .  thud.
23:23 Gothmog_ joined perl6
23:24 putter so, no joy.  ah well.  another day.
23:24 putter &
23:33 cmarcelo joined perl6
23:34 bsb joined perl6
23:39 imperator joined perl6
23:40 audreyt narrowly missed putter :/
23:40 audreyt I wonder if just nuking dist/build/DriFT will work. or nuke dist/
23:42 Odin-LAP joined perl6
23:42 audreyt fixed in trunk.
23:45 svnbot6 r10451 | audreyt++ | * First-time build of fps should precede HsSyck.
23:45 svnbot6 r10451 | audreyt++ |   Reported by putter++
23:48 cmarcelo audreyt: hey. if you're not busy, could you take a look on my changes on third-party/HsJudy to see if it's that what you mean by low-level FFI and sanity checking?
23:49 audreyt looking.
23:50 cmarcelo tks
23:51 ruoso joined perl6
23:54 audreyt mm
23:54 audreyt does it compile for you?
23:55 audreyt I'm getting  duplicate declaration of WordPtr
23:56 audreyt I'll rename WordPtr to JudyValue.
23:57 audreyt or just Value, since it's private
23:59 cmarcelo audreyt: i'll check it again, but it compiles fine here..
23:59 svnbot6 r10452 | audreyt++ | * Rename WordPtr to Value to avoid name clashing with newer GHC,
23:59 svnbot6 r10452 | audreyt++ |   which also defines WordPtr in its Foreign.Ptr.

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

Perl 6 | Reference Documentation | Rakudo