Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2007-03-10

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 forsaken joined perl6
00:01 jisom left perl6
00:02 jisom joined perl6
00:09 Lorn joined perl6
00:09 shay_ joined perl6
00:13 Psyche^ joined perl6
00:17 Psyche^ is now known as Patterner
00:23 macli left perl6
00:28 shay joined perl6
00:30 Aankhen`` joined perl6
00:41 specbot6 r14325 | larry++ | As noted by allbery_b++, Smylers++, and david.green++, we've thoroughly
00:41 specbot6 r14325 | larry++ | neglected to thoroughly spec the intended version sharing and emulation model.
01:12 allbery_b okay, I've got that update at least :) saving it as I should at least try to pretend to be a good little almost-jew, even if $job doesn't allow me to do so :/
01:17 Psyche^ joined perl6
01:19 IllvilJa joined perl6
01:29 Psyche^ is now known as Patterner
01:32 gomoku joined perl6
01:33 Psyche^ joined perl6
01:42 dec joined perl6
01:47 Psyche^ is now known as Patterner
02:00 mako132_ joined perl6
02:15 ajs_ joined perl6
02:20 dmq joined perl6
03:07 mako132_ joined perl6
03:39 rashakil left perl6
03:50 gomoku joined perl6
03:54 SamB joined perl6
03:54 charsbar joined perl6
03:54 cls_bsd_ joined perl6
03:54 gaal joined perl6
03:54 qmole_ joined perl6
03:54 statico joined perl6
03:54 aukjan|gone joined perl6
03:54 Gothmog__ joined perl6
03:54 Maddingue joined perl6
03:54 specbot6 joined perl6
03:54 cookys joined perl6
03:54 silug joined perl6
03:54 takesako__ joined perl6
03:54 kolibrie joined perl6
03:54 spo0nman joined perl6
03:54 stef_ joined perl6
03:54 mugwump joined perl6
03:54 Odin- joined perl6
03:54 jamessan joined perl6
03:54 nnunley joined perl6
04:02 offby1 gaah.  Host svn.pugscode.org not found: 2(SERVFAIL)
04:02 offby1 anyone have the IP address of svn.pugscode.org handy?
04:03 TimToady 194.145.200.126
04:03 offby1 thanks
04:08 SamB joined perl6
04:08 charsbar joined perl6
04:08 cls_bsd_ joined perl6
04:08 gaal joined perl6
04:08 qmole_ joined perl6
04:08 statico joined perl6
04:08 aukjan|gone joined perl6
04:08 Gothmog__ joined perl6
04:08 Maddingue joined perl6
04:08 specbot6 joined perl6
04:08 cookys joined perl6
04:08 silug joined perl6
04:08 takesako__ joined perl6
04:08 kolibrie joined perl6
04:08 spo0nman joined perl6
04:08 stef_ joined perl6
04:08 mugwump joined perl6
04:08 Odin- joined perl6
04:08 jamessan joined perl6
04:08 nnunley joined perl6
04:08 mako132_ joined perl6
04:10 Psyche^ joined perl6
04:12 ayrnieu joined perl6
04:13 gomoku is now known as ShoyuRamen
04:16 Psyche^ is now known as Patterner
04:23 ShoyuRamen left perl6
04:27 silug joined perl6
04:28 justatheory joined perl6
04:57 nekokak_ joined perl6
05:01 drupek12 joined perl6
05:17 DebolazX joined perl6
05:57 meppl guten morgen
06:00 offby1 guten stanley
06:01 meppl good morning offby
06:01 * offby1 yawns, stretches, and scratches his ear with his hind leg
06:14 BooK joined perl6
06:42 gaal something really weird is happening inside this IO monad. I refactored the code a little to do the getCPUTime measurements in another function, but now the values don't seem to be sequenced!
06:43 gaal do { v1 <- getCPUTime; results <- dispatch_on_sample ; v2 <- getCPUTime ; ??? }
06:43 gaal at ??? there's a print that happens before dispatch_on_sample completes. v1 and v2 are equal.
06:43 gaal getCPUDuration :: IO a -> IO (a, Integer)
06:45 TimToady this is #perl6.  I don't know what makes you think you'll get Haskell help here.  :)
06:46 gaal huh? I'm doing this inside eval $str :lang<haskell> :-p
06:46 TimToady oh, well that's okay then...
06:49 drupek12 joined perl6
07:20 audreyt greetings \camels
07:20 audreyt gaal: laziness perhaps?
07:34 gaal but how? the two queries are in one bind sequence...
07:34 gaal (and, hi)
07:34 audreyt if you do two readFile on two files
07:35 audreyt it still doesn't guarantee the sequence
07:35 gaal oh, so I have to force dispatch_on_sample up there?
07:35 audreyt v1 <- getCPUTime; results <- seq v1 dispatch_on_sample
07:36 audreyt v2 <- getCPUTime
07:36 gaal nod
07:36 audreyt return (seq results (results, v2 - v1))
07:36 audreyt something like that
07:36 TimToady morning audreyt
07:36 audreyt greetings TimToady
07:36 TimToady how'd it go a gooooogle
07:36 audreyt well the talk went fabulously
07:37 TimToady did they like it?
07:37 audreyt sure
07:37 audreyt back in the MS talk I changed 10**10**10 to 9**9**9
07:37 audreyt because it formats better
07:37 TimToady did they ask any good questions?
07:37 audreyt but I erroneously kept the slide and mentioned it's a googol
07:37 audreyt was promptly corrected
07:37 audreyt cuz they of all people should know :)
07:38 TimToady ya think?
07:38 audreyt re good questions... they have this internal language designed by Rob Pike
07:38 audreyt Sawmill
07:38 TimToady sides, a googol is only 10**10**2
07:39 TimToady saw a short talk from Pike mentioning it here in MV
07:39 TimToady though it was mostly about stats gathering
07:39 audreyt er, 10**10*10, right.
07:40 TimToady er, not that either without parens...
07:40 audreyt it's a bit more than stats gathering
07:40 audreyt it's the native language of MapReduce
07:41 audreyt you remiliar with that particular architecture?
07:41 audreyt *familiar
07:41 TimToady pretty much
07:41 TimToady should I add anything to Perl 6?  :)
07:41 gaal audreyt: still too lazy, somehow.
07:41 audreyt if feeds are made to work suitably well, no :)
07:42 audreyt none of them has heard of STM
07:42 audreyt someone commented they are still using stone-age tools
07:42 audreyt (compared to STM and hyperops)
07:42 TimToady things with whitespace as syntax maybe?
07:42 audreyt aye.
07:42 gaal audreyt: I was looking in Eval for whatever it is that makes hyper -N2-fast
07:43 audreyt well, many are perl5ers who really don't like perl being nonofficial lang
07:43 gaal couldn't find it... is ghc simply That Smart?
07:43 audreyt I think the rationale is that autochecked readability for perl5 wasn't there
07:43 TimToady we'll just have to write a stone-age to space-age translator for them.  :)
07:43 audreyt and even today I'm not sure Perl::Critic is on par with existing tools for Java/Python
07:44 audreyt they mentioned that as a possibly July google hackathon project yes.
07:44 audreyt python frontend; not exactly sure how to go about it :)
07:44 TimToady but it looks like not much of anyone is signing up to be a mentor
07:45 audreyt oh, as in mountain-view-pugs-hackathon, not SoC
07:45 TimToady ah
07:45 TimToady that I'm willing to help mentor.  :D
07:46 audreyt :D
07:47 avarab joined perl6
07:47 TimToady they're putting a Python grammar onto Parrot under the name of pynie, if you hadn't noticed, or even if you had.
07:47 audreyt gaal: grep -r forkIO src/Pugs/{Junc,Prim/List}.hs
07:47 audreyt I had
07:47 audreyt not sure that it can progress beyond piethon with the current infrastructure though
07:48 TimToady given it's in pge it'd probably be pretty easy to filch.
07:48 audreyt (not about compiler tools, but about the undrelying OO support)
07:48 TimToady I'm still thinking translator
07:48 gaal audreyt: thanks
07:49 audreyt gaal: np :) commit your new borked-by-laziness bench code to qc-dispatch and let me take a look?
07:49 * audreyt just woke up
07:49 ayrnieu audreyt - particle has been saying that OO is coming along.
07:49 pasteling "gaal" at 192.115.25.249 pasted "borked by laziness, ravaged by io" (43 lines, 1.6K) at http://sial.org/pbot/23401
07:51 audreyt ayrnieu: I've been following commits :)
07:53 audreyt ayrnieu: pdd15 is coming along. not seeing things at the implementation front, though :)
07:54 TimToady maybe someone should just port haskell to run on parrot.
07:54 ayrnieu looks like 326 lines of PIR in compiler/smop
07:54 TimToady after all, there's only 2 or 3 actual primitives in haskell...
07:55 ayrnieu TimToady - take Yhc and write a Parrot backend is easiest.
07:55 ayrnieu :-)
07:55 audreyt avarab expressed interest in #perl a few minutes ago :)
07:55 audreyt ayrnieu: heh :)
07:55 TimToady great minds *cough*
07:55 avarab audreyt: I'd never finish it:)
07:55 audreyt :D
07:55 avarab well, maybe the parser
07:56 audreyt yhc gets you the parser
07:56 audreyt you just need to write codegen :)
07:56 TimToady a SMOP
07:56 avarab ah, to generate parrot bytecode?
07:56 audreyt right.
07:56 ayrnieu avarab - or PIR, which is good enough.
07:56 avarab I've only done PAST in my limited ventures with parrot
07:57 audreyt PAST doesn't quite map to haskell semantics
07:57 audreyt but if you can extend PAST along the way, yay :)
07:58 TimToady that's the idea; porting haskell would keep the parrot folks honest, albeit not without some swearing here and there.
07:58 TimToady it's really easy to just keep porting the languages that are easy.
07:58 TimToady (relatively speaking)
07:58 audreyt *nod*
07:59 TimToady now, porting Perl 5 to run on Parrot just involves swearing without a lot of honesty.  :)
08:00 jisom joined perl6
08:00 ayrnieu (only a few of the ports seem sincere, right now, if that makes sense.)
08:02 TimToady speaking of taking over the world, I just defined the module declaration syntax to allow a Perl module to claim to support the API defined by a module in another language.  it fell out naturally from the ability to claim to support older versions of the same module...
08:02 TimToady 'course, claiming to support the API and actually doing so are two different things
08:03 TimToady I think a Python to Perl 6 translator would be not terribly difficult, but I think the world really needs a refactoring PHP to Perl 6 translator more.
08:04 audreyt gaal: again laziness; seq a list doesn't seq the entire producer. fixing
08:05 gaal ah
08:05 tene TimToady: what would the typical usage scenario of a PHP-Perl 6 translator be?
08:05 avarab a better runtime for php
08:06 avarab is now known as avar
08:06 gaal I was going to ask if there weren't a strict version of IO, but that comment makes me realize that probably not
08:09 audreyt gaal: done
08:09 TimToady the problem with PHP is that people are slowing getting boiled to death without realizing it.  I don't think of a translator as something they will look for without prompting, but something that will become popular if Perl 6 gets cool.
08:10 audreyt *nod*
08:10 TimToady and just remove the impediment to migration when they want to for other reasons
08:10 svnbot6 r15548 | audreyt++ | * qc-dispatch: forcing evaluation the right way
08:10 TimToady same for any other language, really, even COBOL or Java.
08:10 audreyt 9.692064 seconds, 103177.1973441364 dispatches/sec
08:10 audreyt gaal: that looks correct?
08:11 gaal that's inside ghci, right? or was your computer busy?
08:11 audreyt that was compiling with -O2
08:11 gaal because eariler you had gotten way more throughput
08:12 gaal iirc
08:12 audreyt really?
08:12 gaal you said it took you ~1sec to run the 100k
08:12 audreyt I increased the times by 10x
08:12 gaal ah
08:12 audreyt it's now 1m
08:12 TimToady is that recalculating the candidates each time or with checking last lookup to see if it's the same type profile or some other kind of caching?
08:12 audreyt TimToady: no, this is raw uncached
08:12 gaal no caching, but no randomness (== hardcoded seed)
08:13 audreyt won't matter
08:13 TimToady not too bad then, if 90% is same type profile
08:13 gaal oh right: audreyt your throughput figure looks reasonable
08:13 audreyt now we need to make type narrowness comparison really fast
08:13 gaal what cpu are you using btw?
08:13 audreyt working on that...
08:13 audreyt 2Ghz CoreDuo x2
08:13 audreyt but only using 1
08:14 gaal can the algo be parallelized, I'm wondering
08:14 audreyt doing that!
08:14 TimToady candidate mismatch detection probably could
08:15 gaal @index rnf
08:15 lambdabot Control.Parallel.Strategies
08:15 gaal huh
08:15 audreyt reduce-to-normal-form
08:16 audreyt aka fully sequencing
08:23 Squern joined perl6
08:29 iblechbot joined perl6
08:38 gaal audreyt: any idea why the following slows down testing so much?
08:38 gaal -sequence_ [quickCheck prop_dispatch | _ <- [1..10]]
08:38 gaal +check defaultConfig{ configMaxTest = 1000 } prop_dispatch
08:39 gaal is random data generation nubbed?
08:40 audreyt not sure...
08:40 gaal I
08:41 gaal 'm inclined to say if the data is repeated ten times we don't need ten tests, but the slowdown may be just by the fact that there's a nub running, not necessarily that it's discarding inputs...
08:42 audreyt nodnod
08:42 svnbot6 r15549 | gaal++ | * cleanups
08:43 gaal (oleg Text.Printf) would be so interesting
08:44 svnbot6 r15550 | audreyt++ | * More tidying up to reduce overhead
08:47 audreyt need to go out to get catstuff... be back in O(3hr) and finish up multis and VRef refactoring
08:47 gaal audreyt: my throughput went down by half
08:47 audreyt by r15550?
08:47 audreyt !?
08:47 devbot6 audreyt: Error: "?" is not a valid command.
08:47 gaal heh
08:47 audreyt mine stayed constant
08:47 Schwern joined perl6
08:48 audreyt I compiled with -O2. feel free to revert...
08:48 audreyt I improved 10% here
08:48 gaal making sure
08:48 audreyt I put times back to 100000 from 1m too
08:49 gaal fwiw i'm running 6.6 and ghci, so your benchmarks win, i think
08:49 gaal though it's curious.
08:50 gaal yes: definitely r15550
08:51 gaal even worse than half
08:51 gaal but I guess that just means the interpreter misses some important optimization
09:27 ozo_ joined perl6
10:13 larsen_ joined perl6
10:17 dec_ joined perl6
10:24 svnbot6 r15551 | gabriele++ | 99problems:first dummy solution for #54
10:33 dec_ is now known as dec
10:47 marmic joined perl6
11:10 chris2 joined perl6
11:10 explorer joined perl6
11:32 eden_c joined perl6
11:35 iblechbot joined perl6
12:00 Gothmog_ joined perl6
12:44 eden_c left perl6
12:49 bonesss joined perl6
12:59 cognominal joined perl6
13:00 cognominal joined perl6
13:14 eden_c joined perl6
13:40 kanru joined perl6
13:43 eden_c left perl6
13:45 ayrnieu joined perl6
13:46 ayrnieu audreyt - belatedly, I get the same errors with those settings.  Set in mk/config.mk (which sets them) rather than mk/build.mk , which doesn't seem to exist.
14:04 pmurias joined perl6
14:07 bonesss joined perl6
14:15 audreyt ayrnieu: you'e supposed to create one...
14:15 audreyt nopaste the errors? also try ghc-usesrs and #haskell?
14:18 ayrnieu I don't have them now; I'll run it again with the created one.
14:24 wilx joined perl6
14:24 * gaal meows
14:26 * moritz unleashes the hunting dogs ;)
14:27 * gaal outcutes the dogs
14:28 * moritz is 0wned ;)
14:34 pmurias left perl6
14:44 * audreyt purrs
14:44 audreyt finally back to pugspace
14:45 gaal heya A
14:45 gaal were you LIL again?
14:46 audreyt no... was teaching isis haskell
14:46 sisi joined perl6
14:46 * gaal goes to grab a sandwich; brb
14:46 gaal oh cool
14:46 audreyt er, she's here now. hi :)
14:47 sisi hi audreyt
14:47 audreyt a wonder that how natural it seems when one does not have to unlearn anything...
14:47 clkao fnord
14:47 audreyt clkao: greetings
14:47 clkao audreyt: how goes
14:47 sisi hi clkao
14:48 clkao just spent the last hour putting contact lens on.. my glasses destroyed themselves yesterday
14:48 audreyt mm spotaneous combusting lenses
14:48 moritz well, every decent weapon has as self destruction button ;)
14:49 clkao audreyt: have you seen s∀kura ?
14:49 audreyt I've seen sakura yes
14:49 audreyt cute unicody name
14:49 clkao the screenshot?
14:49 buetow joined perl6
14:49 audreyt yeah
14:50 clkao must have css fu. and must make it actually work
14:51 penk joined perl6
14:52 JYC joined perl6
14:57 putter joined perl6
14:58 gaal sakura?
14:59 clkao some cherry picking ui for svk
14:59 gaal good name :)
15:00 audreyt hopefully evolving into jifty-based svkgui?
15:01 putter re what's up with yet_another_regex_engine, unless anyone has a better idea, my current thought is to focus on shaking down the STD opp definition.
15:01 putter btw, hi all
15:01 putter which prompts two questions
15:01 gaal hi putter
15:02 shay hi
15:02 putter are we back to associating a pos with a string?  there was talk at one point (long ago) of trying to avoid pos being a property of a string (threads and all).  but current spec,
15:03 putter seems to at least weakly imply that the two are tied.  most is consistent with a <str,pos> tuple object, but $_.pos is set at one point, outside of any regex context.  what's the scoop?
15:04 putter 2nd q,
15:05 putter "how does one know oneself".  perhaps the name by which others call you is not your true self, but it would be convenient at times (eg, to pick up externally defined post actions).  ROUTINE.name
15:06 putter seems to follow the p5 model of "you just can't tell".  btw, so when you "import as", do you get a completely distinct ROUTINE, or its .name fudged somehow?
15:06 putter bascally, I'd like  B->f() and B->g() to be distinguishable, even if *f = \&mumble and *g=\&f.
15:08 putter oh, third q.  it looks from STD that named regex and methods are in the same namespace.  at one point they were distinct.  yes?
15:08 putter err, "yes?" as in this is current spec, rather than a STD "typo".
15:09 putter think that's it.  first thoughts from eyeballing opp and thinking about doing it under yet_another.
15:12 gaal audreyt mentioned something about TimToady unifying rules and methods, possibly it that. makes sense to me
15:13 gaal regarding routine names, once again it sounds reasonable to me that there is no canonical name. it's like hardlinks in a filesystem in that sense
15:14 gaal there'd better be a less hacky-looking way of dynamically giving names to anonymous closures for debugging purposes than *__ANON__
15:15 putter :)
15:17 audreyt yes re same namespace.
15:17 putter k
15:17 audreyt "B<Regexes> (keyword: C<regex>) are methods (of a grammar) that perform pattern matching"
15:17 audreyt S06:37
15:17 audreyt you can see them as macros that expand finally to "method"
15:19 putter ah. hmm...
15:19 putter k
15:31 * audreyt goes back finishing up MMD and then user-defined classes
15:31 putter the name issue arises because yet_another currently uses a  Mumble->foo('foo') hack internally to pass along the calling name.  which permits import() as, and using the same regex in multiple "roles" in the grammar, but, not pretty.  caller() only provides the defining name.  one might be able to hack up a "look for OP_METHOD* node" like Devel::Caller does for its called_as_method predicate, but I don't think that helps you in the face
15:31 putter ok, thanks audreyt, gaal.
15:33 buetow joined perl6
15:33 putter to summarize, as I head out to lunch, two open questions - what connection between string and pos (not pressing at all), and naming (if someone has a good story, that would be great, but no big deal).
15:35 putter the macro->method story looks very shiny :)
15:36 putter bbl &
15:44 [particle] joined perl6
15:44 Limbic_Region joined perl6
15:49 [particle] left perl6
15:51 [particle] joined perl6
16:00 Belaf_ joined perl6
16:03 larsen_ joined perl6
16:10 specbot6 r14326 | audreyt++ | * S12: Remove self-contractictory paragraph about indirect
16:10 specbot6 r14326 | audreyt++ |   object notation -- because the colon is needed regardless
16:10 specbot6 r14326 | audreyt++ |   of whether there are arguments after it -- and also
16:10 specbot6 r14326 | audreyt++ |   clarify that a fallback to sub call is _always_ performed,
16:10 specbot6 r14326 | audreyt++ |   not only for method calls with no arguments.
16:12 Belaf_ is now known as Belaf
16:15 larsen__ joined perl6
16:19 TimToady putter: people keep talking about the recent unification of regex and method, but in fact if you go back and look at A05 they were already unified in 2002.
16:19 TimToady as for the naming problem, you'll note that methods generally have names.  :)
16:21 Limbic_Region after this past week, I am going to finally sit down and digest S12 and MOP.  Anything but the most simple OO in p5 sucks - big time!
16:21 audreyt Limbic_Region: use Moose;
16:21 Limbic_Region I couldn't afford the learning curve
16:21 allbery_b ?
16:21 Limbic_Region for a change, I actually developed code for work
16:21 allbery_b Moose is P6 OO in Perl5
16:21 allbery_b if you're going to do the one, might as well do the other
16:22 audreyt but using moose doesn't break your code :)
16:22 audreyt it just makes defining new classes easier
16:22 Limbic_Region allbery_b - execpt I don't yet know p6 OO
16:22 audreyt (and introspecting older ones easier, via Class::MOP)
16:22 Limbic_Region and couldn't afford to take the time to learn
16:22 Limbic_Region project needed to be done under tight timeline
16:22 audreyt oh. in which case Moose is still easier to learn than reading S12 :)
16:22 Limbic_Region project is now mostly done
16:22 audreyt or rather, it's a gentle introduction to S12, of sorts...
16:23 Limbic_Region so now the learning is for personal reasons rather than professional
16:23 * Limbic_Region doesn't want to have to go through what he went through last week ever agin
16:23 Limbic_Region s/agin/again/
16:23 Limbic_Region on the off chance I am asked to write code again that is
16:24 * allbery_b kinda wishes he'd known about Moose.pm earlier; maybe he wouldn't have rewritten the p5 script that tripped over every shortcoming of p5 OO in the book into ruby to get around them
16:25 * Limbic_Region wonders how he survived nearly 5 years of p5 without ever building a complex OO project involving multiple inheritence, avoiding property collision, abstract methods, etc
16:25 Juerd Ignorance is bliss.
16:25 Limbic_Region exactly
16:26 Juerd PHP people seem to survive just fine, without basic things like lexical variables, dynamic scope, real unicode support, etc.
16:26 TimToady minimalism is always a bit seductive
16:26 Juerd But once they learn Perl or another superior language, they feel insanely handicapped when going back to PHP, I imagine.
16:26 Juerd Ergo: learning has its dangers.
16:27 audreyt Ergo: Haskell/Oz/Perl6 etc makes pretty good first-language for beginners :)
16:27 Limbic_Region up until now, all my OO projects involved only a few classes and a straight inheritence chain which I wrote all myself so I didn't have to worry about how to avoid problems that might arise from others subclassing
16:28 Juerd Absolutely. Doing the hard things /first/ is better in the long run.
16:28 TimToady I always said Perl should be a "last" language.  :)
16:28 audreyt and if you don't have anything to compare you don't actually find it hard! :)
16:28 Limbic_Region well, Alice is on the top of my languages to learn queue
16:28 audreyt SML dialect?
16:29 Limbic_Region I am not sure what the S in SML is, but ML yes
16:29 audreyt cool, if you grok Alice, Haskell should be almost as natural
16:29 audreyt S = Standard
16:29 Limbic_Region actually - quite a bit like Oz/Motzart
16:29 Limbic_Region ah
16:29 audreyt Alice shares part of Haskell's concurrency model
16:29 * Limbic_Region finds it sexy because of its auto parallelism
16:30 audreyt the spawn/spark model
16:30 Limbic_Region I have a specific project in mind for it
16:30 Limbic_Region and since Jean and Jasmine are headed for the Philippines in about a week - it might actually come off the back burner
16:30 audreyt yeah, we got those too here :) (plus data parallelism and transactional parallelism)
16:31 Limbic_Region what about constraint programming?
16:31 TimToady Turing: All heres are created equal, but some are more here than others.
16:31 Limbic_Region those are the two things I need for the project
16:33 Limbic_Region interesting - http://www.perlmonks.org/?node_id=604136
16:33 lambdabot Title: State variables and recursion
16:33 TimToady Haskell is completely constrained by the compiler, so there's no point in thinking about constraints anywhere else.  :P
16:33 Limbic_Region heh
16:33 * Limbic_Region agrees with Anno
16:33 Limbic_Region state appears to be b0rk in bleed
16:34 audreyt Limbic_Region: Curry got those (and SearchT in haskell)
16:34 Limbic_Region well - Haskell is now number 2 on the list so....
16:42 webmind joined perl6
16:43 webmind gaal, -pester-
16:43 gaal hmmmmm?
16:44 webmind I mailed to Yuval about a broken Test::TAP::HTMLMatrix, and since he is on vacantion, he told me to pester you about it
16:45 gaal did you cc: me? :)
16:45 webmind no, but I can forward it to you
16:45 gaal please do
16:45 webmind if I have your e-mail address
16:45 rindolf joined perl6
16:45 rindolf Hi all.
16:45 Limbic_Region salutations rindolf
16:45 rindolf Hi Limbic_Region
16:46 rindolf Limbic_Region: what's up?
16:46 webmind which it apears I do
16:46 Limbic_Region rindolf - planning which projects that have been on the back burner will actually get worked on while the rest of the family is on vacation for 35 days
16:47 rindolf Limbic_Region: I see.
16:47 webmind gaal, you have mail.
16:50 gaal webmind: which version of Test::TAP::Model do you have installed?
16:51 gaal (not HTMLMatrix)
16:51 gaal there was a Test::Harness compatibility chase going on that had similar symptoms to yours
16:51 webmind uhm, I did a fresh cpan install
16:51 webmind I'll look
16:52 webmind 0.08 it seems
16:52 gaal hmm
17:06 gaal I could reproduce one failure. Working on fixing it.
17:07 webmind cool
17:09 webmind I wanted to setup a parrot smoke setup
17:11 nwc10 joined perl6
17:13 TimToady putter: on StrPos, it is not precisely required that a StrPos track its string, though that is one implementation.  What is required is the invariant that a given StrPos will end up at the same position when used on the same string even if the current unicode level is different from when the StrPos was generated.
17:14 TimToady so a StrPos can cut itself loose from a string if it translates itself to a tuple of offsets by byte, codepoint, graphame, char (however many apply)
17:14 TimToady such a translation may not be cheap, though
17:17 baest joined perl6
17:29 Psyche^ joined perl6
17:36 Psyche^_ joined perl6
17:43 lichtkind joined perl6
17:43 specbot6 r14327 | larry++ | Clarifications on StrPos and StrLen requested by putter++.
17:45 Psyche^_ is now known as Patterner
17:52 larsen_ joined perl6
17:58 audreyt TimToady: what does this do?
17:58 audreyt sub f { 1 }; proto f { 2 }
17:58 audreyt warning: "redeclaration of sub &f ..." ?
18:01 gaal protos have bodies?
18:01 specbot6 r14328 | larry++ | further clarifications of substitution and reported string positions
18:01 gaal i thought they were, like, protoreal
18:06 audreyt gaal: they may have bodies, which gets used when all multis fail
18:25 TimToady I don't think you can put a proto after an only at the same level
18:25 audreyt but two onlies?
18:25 TimToady it's like a multi in that regard
18:25 audreyt two onlies shadow with a warning?
18:25 TimToady two onlies would warn about redef
18:25 audreyt and multi after sub is... fatal?
18:25 TimToady yeah
18:25 TimToady fatal is fine by me
18:26 audreyt and only after multi is... fatal?
18:26 gaal webmind: fixed. I'll give you a d/l url in a few minutes....
18:26 TimToady also fine
18:26 TimToady (in same scope)
18:26 webmind gaal, cool, thanks
18:26 webmind gaal, what was the problem ?
18:26 jisom joined perl6
18:27 lichtkind TimToady if you would be so kind to answer some question i want to have answered for a perl6 article for german perl magazin, for now i have some question on your perspective about parrot
18:28 gaal webmind: same problem that affected TTM really, and same kind of fix, in the tests only
18:28 gaal you can actually force install if you feel like it.
18:28 webmind ah ok
18:29 shay yo folks
18:30 TimToady lichtkind: okay
18:30 ShoyuRamen joined perl6
18:31 avar gaal: what's new in htmlmatrix?:)
18:31 lichtkind TimToady danke :) the initial need for new interpreter came from you but who said that it would to be multilingual?
18:31 ozo_ left perl6
18:32 ozo_ joined perl6
18:32 gaal avar: passing tests.
18:32 avar :)
18:33 gaal seriously, no changed features.
18:33 gaal well, a doc fix; template.html is detailed_view.html for a while now but the doc wasn't consistent about it :)
18:33 audreyt woot, down to <1000 fails now
18:34 gaal audreyt++
18:34 audreyt gaal: a lot of it is your "import UTF8" caused :)
18:34 audreyt Pugs.Types must use Char8
18:34 audreyt because we were treating the latin quotes as 2bytes (for speed)
18:35 audreyt (because of hardcoded (drop 2))
18:35 TimToady lichtkind: several of us were saying it at the same time.  it seemed like a good approach to keep us from messing up interoperability.  the first "official" mention of the idea was the april fool's joke, but it was already in the air.
18:37 rashakil joined perl6
18:38 gaal audreyt: hmm. the doc for Char8 doesn't make sense
18:38 gaal "More specifically these byte strings are taken to be in the subset of Unicode covered by code points 0-255"
18:39 gaal how do you look only at 1-byte utf-8 chars and get the non-ascii basic block?
18:39 audreyt "Unicode"
18:39 fglock joined perl6
18:39 audreyt not "utf-8"
18:39 gaal sure: but also "All Chars will be truncated to 8 bits."
18:40 audreyt Char is unicode
18:40 audreyt if you take only the bottom 8 bit
18:40 audreyt you get latin1
18:40 audreyt or something like latin1.
18:40 gaal by ord you mean?
18:40 gaal not by byte pattern...
18:40 audreyt by byte pattern too
18:40 audreyt as Char is internally UTF32
18:40 gaal how come?
18:40 audreyt not UTF8
18:41 audreyt take UTF32. 4 bytes. drop 3. you get latin1 :)
18:41 gaal errrr, ok, but then it isn't utf-8 encoded
18:41 audreyt no it is not.
18:41 lichtkind TimToady i simply want to know how much of the concept is dans mindset and how much it was prerequests. Good, the multilingo thing was some thelepatical groupthink, but to me it seemed that da extended the concept
18:41 fglock on feather svk up, I'm getting: RA layer request failed: REPORT request failed on 'http://svn.pugscode.org/pugs': REPORT of 'http://svn.pugscode.org/pugs': 302 Found (http://svn.pugscode.org)at /usr/local/share/perl/5.8.8/​SVK/Mirror/Backend/SVNRa.pm line 310.
18:42 audreyt fglock: yeah :-/ the workaround is get file:///data/svn/pugs
18:42 audreyt (DNS on feather is borked. fixing)
18:42 gaal audreyt: I see. this feels... dirty. :)
18:43 fglock audreyt: sorry, what's the command line for that?
18:43 audreyt gaal: yeah. but it's the same dirtiness as perl5 :)
18:44 audreyt fglock: nvm fixed
18:44 audreyt svk should work now
18:45 gaal audreyt++
18:45 gaal Pugs.Types has "drop 2" all over the place :(
18:45 audreyt TimToady: at Bytes unicode level... is there a default encoding?
18:45 gaal which one did you refer to?
18:45 rindolf Hi gaal, audreyt . What's up?
18:45 gaal and: how do we treat << as two bytes?
18:46 gaal I mean, why does it win speed?
18:46 gaal hello rindolf
18:47 TimToady um, yeah, ascii.
18:47 TimToady I wouldn't go so far as to even assume Latin-1 though
18:48 rindolf Hi TimToady
18:48 TimToady howdy
18:48 fglock mm - Syncing http://svn.pugscode.org/pugs / Retrieving log information from 15257 to 15551 / (in cleanup) Svndiff data ends unexpectedly: Unexpected end of svndiff input
18:48 lambdabot Title: Revision 15551: /
18:48 rindolf What do you think of http://perl-begin.berlios.de/new-design-Plasu/ , especially in comparison to http://perl-begin.berlios.de/ .
18:48 lambdabot Title: Perl Beginners' Site
18:49 amnesiac joined perl6
18:51 justatheory joined perl6
18:51 audreyt gaal: line 442,443
18:51 audreyt gaal: Char8 is faster than UTf8 because a blind drop 2 in Char8 is just that
18:51 audreyt but a "drop 1" in UTF8 needs a peekChar to determine the bytelen of the first char
18:52 elmex joined perl6
18:52 rindolf is now known as geboren
18:52 geboren is now known as rindolf
18:53 gaal whoa, this whole bufToVar cache... huh
18:53 webmind gaal, thanks, did a force install, can now run 'make smoke'
18:53 gaal I didn't know it was there
18:53 gaal webmind: yay!
18:54 gaal it caches var_names_?
18:54 webmind now if only parrot's make test would not loop on my sparc64 :)
18:54 jisom how's it loop?
18:54 audreyt gaal: this caches the parsing
18:54 audreyt of var components
18:54 gaal of a string to a particular Var
18:54 audreyt it essentially memoises "cast"
18:54 audreyt yes.
18:54 gaal nod
18:55 gaal when'd you add it?
18:55 webmind jisom, one of the tests it just doesn't continue and uses up 99% of my cpu
18:55 gaal now she'll say r400 :)
18:55 audreyt the same day as interning
18:55 audreyt last August
18:56 jisom do you happen to know which test? parrot's aiming to be portable, so getting sparc to work would be good
18:56 audreyt r12318
18:56 webmind jisom, yes, if you give me a minute I'll look it up
18:56 lichtkind TimToady excuse me, you dont have any answer to that (i wanted leave soon, but wanted wait if you want to answer)
18:56 svnbot6 r15552 | audreyt++ | * Pugs.Types: Hypers really need Char8.
18:57 gaal hey! we didn't celebrate Pugs' birthday this year, did we?
18:57 * offby1 glances around nervously.
18:57 chris2 joined perl6
18:57 TimToady lichtkind: I didn't realize there was another question
18:57 Psyche^ joined perl6
18:58 webmind jisom, t/stm/runtime.t
18:58 TimToady basically, april's fool jokes don't work unless the idea is already plausible
18:58 audreyt we didnot :)
18:58 audreyt gaal: I was quite ill at that time :)
18:58 gaal yeah... ain't it nice you
18:58 gaal re better now!
18:58 audreyt indeed
18:58 jisom what's "prove -v t/stm/runtime.t" put out?
18:58 webmind jisom, and I'll gladly let the machine do regular smoke tests, but currently that doesn't seem like an option if it doesn't end
18:58 TimToady I remember a year before we announced Perl 6 getting funny looks from people at a CPAN meeting when I suggest cooperating with the Python folks...
18:59 lichtkind TimToady i didnt could find dan or chip on IRC so i wanted to ask you how much das extendend the original concept?
18:59 webmind jisom, running
18:59 jisom if the testing facilities provided a timeout, things like this could be found with just a smoke
18:59 TimToady such questions are impossible to answer quantitatively
19:00 webmind jisom, yes
19:00 TimToady Dan certainly thought of the cross language thing independently, and certainly did a great deal of work to bring it about.
19:00 webmind jisom, might script arround that
19:00 xinming joined perl6
19:01 webmind jisom, dunno how long it needs, but it's up eating cpu again
19:01 webmind n$ prove -v t/stm/runtime.t
19:01 webmind t/stm/runtime....1..5
19:01 webmind ok 1 - choice (one thread)
19:01 webmind is all it gives me
19:01 TimToady but then so did other people.
19:01 jisom ok, so test 2's failing
19:02 jisom "B0rked at least on x86_64" so maybe we need to add sparc64 as well
19:02 jisom what "cpuarch" do you have?
19:03 webmind cpuarch ?
19:03 jisom eh, nm, found a good guess
19:03 webmind ok
19:05 audreyt bbiab
19:07 nwc10 left perl6
19:07 lichtkind TimToady of course it cant be quantified but i dont like to write it complete flase things in my article :)
19:08 jisom webmind, try a svn up now, and hopefully those tests should be skipped
19:09 webmind jisom, just did
19:09 webmind compiling now
19:09 Psyche^ is now known as Patterner
19:18 prism joined perl6
19:18 explorer joined perl6
19:19 ShoyuRamen left perl6
19:20 lichtkind TimToady thanks even if it dint helped much but it clarified a bit
19:27 fglock joined perl6
19:33 fglock I can't commit the changes at feather /home/fglock/pugs/perl5/Pugs-Compiler-Rule - 'Merge conflict during commit'
19:34 rhr any comments on my p6l post from a week ago "Some questions about miltislices and other things"?  It got Warnocked
19:35 moritz fglock: well, du a "svn up", merge it, remove the conflict files and recommit
19:35 moritz s/du/do/ ;)
19:36 fglock moritz: svn up doesn't fix it; svn up -s gives '(in cleanup) Svndiff data ends unexpectedly'
19:37 fglock moritz: svn up -s then hangs
19:38 moritz fglock: do you have $file.r$revision-files in that dir?
19:39 TimToady rhr: when you ask that many questions at the same time, the tendency is to mark it for later analysis, and then to not get back to it.
19:39 rhr TimToady: sorry :)
19:40 TimToady at least, that's my tendency...
19:40 moritz fglock: btw svn sucks ;)
19:40 fglock moritz: no files like that
19:41 moritz fglock: my only other idea ist to backup the changed files, do a 'svn revert', apply the diffs manually, and then commit
19:41 TimToady so basically it was still marked as N in my list.
19:41 rhr I'm in no hurry to have them answered, just the usual Dilemma :)
19:41 TimToady I still hope to look at it.
19:42 fglock moritz: I did that already - no luck
19:42 rhr TimToady: thanks for looking at it
19:43 moritz fglock: then I have no idea what else to do - except for a new checkout :(
19:43 moritz but maybe somebody else knows more about svn than I do ;)
19:43 moritz hopefully ;)
19:43 fglock moritz: I did that too
19:44 moritz wtf?
19:44 moritz then I can only be server side problem (or a b0rked binary on your client, but that's not very likely)
19:46 fglock ok - I left the commit log in 'log.txt'; will retry later
20:04 fglock plain svn works :)
20:04 svnbot6 r15553 | fglock++ | PCR - passes >4000 tests more in the pugs test suite
20:04 svnbot6 r15553 | fglock++ | - fixed StrPos overloading
20:04 svnbot6 r15553 | fglock++ | - reverted: Match.to returning StrPos; fails pugs tests
20:04 svnbot6 r15553 | fglock++ | - char classes and unicode property rules are generated on-demand
20:04 svnbot6 r15553 | fglock++ | - implemented hex/octal/named constants
20:10 erg joined perl6
20:26 gaal when were closures introduced to Perl?
20:30 audreyt gaal: perl5
20:30 audreyt hm. how are there different?
20:30 audreyt sub f { my sub g {...} }
20:30 audreyt sub f { state sub g {...} }
20:31 audreyt s/there/these/
20:31 gaal audreyt: thanks
20:32 audreyt TimToady: are &-sigilled (and ::-sigilled) variables exempt from pad refresh upon lexical reentry?
20:32 audreyt that is, are they not refreshed by virtue of the sigil alone?
20:33 audreyt s/not refreshed/unrefreshed/
20:34 audreyt (luqui used to hard code that logic; just want to check canonicality and maybe make it into spec)
20:35 audreyt that is, upon pad refresh, the content gets cloned instead of cleared
20:36 gaal what is there to clear, exactly? closed inner lexicals?
20:36 gaal (/clone)
20:38 audreyt yeah
20:38 audreyt sub f ($x) { my sub g {...}; if $x { &g := $x }; &g }
20:38 audreyt ideally each time f() gets called, inner &g is a fresh copy of the original g
20:38 audreyt regardless of rebinds
20:38 audreyt I think
20:40 gaal uh why would that be the case?
20:40 audreyt because my sub g {} is conceptualy
20:40 audreyt my &g ::= sub {...}
20:40 audreyt or rather
20:40 audreyt my Sub &g ::= sub { ... }
20:41 gaal sure, but there's an explicit rebind?
20:41 pmurias joined perl6
20:41 audreyt sure, but what is rebound?
20:41 audreyt if you say
20:41 audreyt $x = f(undef);
20:41 audreyt $y = f(sub {...});
20:41 audreyt $z = f(undef);
20:41 audreyt surely $x === $z !== $y?
20:42 audreyt if it had been "state sub g {...}" then we'd expect
20:42 audreyt $x !== $z === $y
20:42 audreyt I think anyway
20:42 audreyt (shower bbiab)
20:44 gaal oh, I agree that on entry it's the original g; I thought you meant ideally the bind doesn't take place or something
20:55 avar Is there anything in Perl 6 that couldn't be emulated in common lisp?
20:56 Daveman joined perl6
20:56 avar the though occoured to me that targeting something like sbcl might be neat:)
20:56 TimToady Turing says that's a silly question
20:56 audreyt avar: turing completeness says sure
20:56 elmex there is nothing in perl 6 that couldn't be emulated in a turing machine
20:57 audreyt I kinda wish that Church says it's a silly question and Turing comes later
20:57 moritz elmex: you're wrong: elegance ;)
20:57 avar Yes, turing also says that you can do everything CL can in brainfuck by writing a CL compiler in brainfuck, but you know what I mean (I guess:)
20:57 audreyt but oh well :)
20:57 audreyt avar: CL would be a fair target, yes. I havn't studied the concurrency story yet
20:57 audreyt but iirc sbcl is certainly capable enough
20:58 avar What I really mean is since perl has a built in grammar you could in theory just output sexp from the parser and then implement stuff as macros:)
20:58 avar (multi-sub my-sub ...)
20:58 audreyt that is more or less what pugs is trying to do yes :)
20:59 audreyt avar: so you grok sbcl? :)
20:59 audreyt TimToady: another related question:
20:59 avar audreyt: not really, but I use it;)
21:00 avar it's very sexy:0
21:00 audreyt sub f { my multi g ($x) { 1 }; sub inner { &g(1) }; my multi g (Int $x) { 2 } }
21:01 audreyt TimToady: i.e. does a closure close over the pad entry "g" of the variants-so-far, or does it close over one object that is later amended with mul variants?
21:01 audreyt currently pugs has it at "inner() === 1"
21:01 audreyt i.e. it only closes over the half-formed pad
21:01 audreyt but I don't really have an intuition here...
21:02 audreyt (seems clear it should close over the long name &g:(Int))
21:02 audreyt (so the question is more of, what does the short name really point to)
21:02 audreyt er, should _not_ close over the long name
21:02 TimToady I think the abstract view of the short name is more correct
21:03 audreyt elaborate?
21:03 TimToady most of the time we've gotten away from so-far-ness in a lexical scope
21:04 audreyt sub f { my $x; sub g { $y = 2 }; my $y } # error, no?
21:04 audreyt so there's still a so-far-ness involved
21:04 audreyt but otoh you can argue that it's a compile time check and
21:04 audreyt sub f { my $x; sub g { eval '$y' }; my $y } # ought to give $y
21:04 TimToady it's a failure of consistent meaning
21:04 audreyt I'd be fine with that too.
21:05 TimToady I thought that's how eval already did it
21:05 TimToady and why my $x; my $x are the same var
21:05 TimToady I was just bragging about 'one name always means the same thing in a lexical scope' on p5p
21:05 audreyt ok. next question:
21:06 audreyt my multi g ($x) { 1 } my multi g () { 0 }
21:06 audreyt &g := sub { ... }
21:06 audreyt does it cancel the whole multi dispatch?
21:06 audreyt or is it an error because there is no concrete &g to bind with?
21:07 audreyt i.e. are short names a fiction of lexical pad, or is it an indirection to the variants?
21:07 TimToady might fall into the category of trying to bind a type inconsistent with the type associated by declaration with the name
21:07 TimToady I think the compiler knows that manifest type of 'g' is multi
21:08 audreyt my multi g ($x) {1} my multi g () {0}
21:08 audreyt my multi f () {123}
21:08 audreyt &g := &f;
21:08 audreyt kosher?
21:09 TimToady arguable either way, I think
21:10 audreyt a way to think about it is that shortnames are "constants"
21:10 audreyt which simply calls into multidispatcher
21:10 audreyt (as is currently implemented on the to-be-committed-pugs)
21:11 audreyt in which case it falls into the "constants cannot be rebound" rule.
21:11 TimToady so &g := &f just replaces the set
21:11 audreyt uh, that's dangerous
21:11 audreyt because there may be outer multis
21:11 audreyt a short name crosses pads
21:11 TimToady I don't mind outlawing it for now even if that's not the longterm right answer
21:11 audreyt k.
21:12 TimToady yes, a short name is more like a Scheme symbol
21:12 TimToady so I think that's fine
21:13 audreyt yay. that simplifies stuffs a lot.
21:13 moritz ... and Scheme is yet another Lisp dialect ;)
21:13 audreyt it follows then that &g.wrap is nonsensical
21:13 audreyt or, alternatively, it distributes into the current variants
21:13 audreyt which would be fine with me too
21:13 audreyt but it couldn't have its own wrap-identity
21:13 audreyt (alternatively, it wraps the proto, but that's icky)
21:14 avar is now known as XxXxXxXxXxX
21:15 TimToady I think anything that is an & object needs to be wrappable, even it it represents a set of candidates.
21:15 audreyt hm.
21:15 audreyt ok. so it's a constant symbol
21:15 audreyt but with a mutable body built like a Routine's
21:16 audreyt so it can't be rebound, but can be maimed
21:16 audreyt I mean, modified
21:16 audreyt k
21:16 TimToady can't really do AOP otherwise.
21:16 audreyt multi f () { ... }
21:16 audreyt multi f ($x) { ... }
21:17 audreyt { &f.wrap(...); f(...) }
21:17 audreyt f(...); # no longer wrapped
21:17 audreyt correct? (assuming that shortnames are per-pad)
21:17 TimToady only if the .wrap is temporized
21:17 audreyt interesting!
21:17 audreyt multi f () {...} multi f ($x) { ...}
21:17 audreyt { multi f ($x, $y) { ... }; &f.wrap(...) }
21:17 audreyt f(...)
21:17 audreyt er
21:18 audreyt assume "my multi" instead of "multi" everywhere
21:18 audreyt so the outer call doesn't see the inner variant
21:18 audreyt but the inner wrap still affects the outer call?
21:18 XxXxXxXxXxX is now known as avar
21:18 audreyt not exactly sure how it'd work, then
21:19 audreyt my multi f () {...};
21:19 audreyt { my multi f ($x) {...}; &f.wrap(...) }
21:19 audreyt { my multi f ($x) {...}; f(...) }
21:19 audreyt illustrates the point better
21:22 TimToady I think the &f is reclosed over the new multi in the first block, so while the .wrap is written as a global effect, perhaps it's a global effect to a container that is lost on exit to the preclosed state
21:23 TimToady so the wrapping isn't seen by the second block because it's accessing &f the old way
21:23 audreyt ok.
21:23 audreyt so it's the definition of new variants in the same scope
21:23 audreyt that causes a new sym to be regen?
21:23 audreyt i.e. if the first block did not have "my multi f"
21:23 TimToady seems like
21:24 audreyt ok.
21:24 audreyt but if the first block had
21:24 audreyt { multi f ($x) {...} }
21:24 audreyt which is synonym to our
21:24 audreyt still I think it causes recalc
21:24 audreyt (because of our's implicit lexicaling)
21:24 audreyt and so .wrap is still effectively lexical
21:24 audreyt sane?
21:25 TimToady doesn't seem insane, but I'm not perhaps the best judge of that...
21:25 audreyt heh :)
21:25 audreyt ok, that's all I need to make this go
21:25 audreyt thanks :))
21:25 TimToady welcom
21:25 audreyt expect commits tomorrow
21:25 * audreyt waves and sleeps &
21:25 TimToady night
21:26 Aankhen`` joined perl6
21:27 TimToady bbl &
21:36 Psyche^ joined perl6
21:41 Psyche^_ joined perl6
21:46 Psyche^_ is now known as Patterner
22:00 putter re methods generally have names, yes, the question is what to do when they have more than one?  f := method {...}; g := &f;  X.g()  what does the method think its name is?
22:01 putter it may come down to ROUTINE.name being .defined_as_name and caller() (unspeced) returning the interesting stuff about the call point.
22:03 putter package A { import X::fibble as f is export; } package B { import A::f2 as g is export }  B.g()  who does the method think it is?
22:04 putter p6: "invalid arguments to X::fribble", user of B: "what the heck is a fribble?"
22:08 Psyche^ joined perl6
22:10 putter gaal: re ANON, I note http://search.cpan.org/~xmath/​Sub-Name-0.02/lib/Sub/Name.pm can be helpful.
22:10 lambdabot Title: Sub::Name - (re)name a sub - search.cpan.org
22:16 putter grammar frogalike { rule for_red_frogs {...} for_green_frogs := for_blue_frogs := &for_red_frogs } grammar blue_frog_swimming is frogalike { rule for_blue_frog... }
22:17 putter just one method, but it would be nice for it to know in any given call what color frog is being served.
22:18 putter s/{grammar,rule}/{class,method}/g and the issue is the same.
22:21 Psyche^ is now known as Patterner
22:48 audreyt in perl5:
22:48 audreyt [T|audreyt]~$ perl -e 'sub f { die((caller(1))[3]) }; sub g { f } *h = *g; h() '
22:48 audreyt main::g at -e line 1.
22:49 audreyt putter: are you saying that the dynamic scope should remember the method (aka the message) chain?
22:49 audreyt it could certainly be arranged
22:49 audreyt agreed that it'd be nice
22:52 audreyt S06:1683 specs caller
22:52 audreyt it already returns a object reprensenting dynamic scope
22:53 audreyt rather than representing the routine
22:53 audreyt so maybe a caller.name is sufficient?
22:54 audreyt caller.invoked_as
22:54 audreyt etc
22:57 putter re S06, hmm, maybe I should include it in *all* my Snn searches. :)  I'll update Functions.pod.
22:57 audreyt k.
22:58 putter re method chain, just the last bit of it.  I guess it goes like this.  Once there was lambda, it and it was none of its business what assorted environments bound it to.  But since the human usuallly thought of
23:00 putter it as having a name, it variously got access to that, but often(usually? allways?) only to the initial binding.  It remained ignorant of subsequent bindings.
23:01 putter Now we use import, which seems likely to do raw := binding, and also deals with user known names, which it would be good for the code to know about (report errors, look up derivitively named things in the same packages, etc), but the old "only know the name of the first defining boundary" won't support that.
23:01 putter s/boundary/binding/
23:02 putter thus the interest in a "what name shall I call myself which wont surprise my caller". :)
23:02 svnbot6 r15554 | audreyt++ | * FA::DFA - Fix incorrect BUILD usage.
23:03 putter a myself.was_invoked_as
23:03 audreyt nod. agreed on all accounts.
23:03 offby1 joined perl6
23:04 putter :)
23:05 audreyt TimToady: thought on amending S06:1683 to say that the dynscope object retured by caller must support .called_as (more ergonomic names welcome)?
23:07 svnbot6 r15555 | putter++ | Functions.pod - aka S29 - Link empty "TODO" caller() spec to S06.
23:08 putter awesome.
23:13 TimToady as long as it's something that can be reconstructed on demand like the line number of the call, and not something that has to be physically done on every call, I'm fine with it.
23:16 audreyt that sounds reasonably doable
23:18 putter re S06/caller(), it might be nice if instead of starting with the calling frame, it started with its own.  eg, so a stack dump could be for(0...){caller(:skip<$_>).sub.confess} rather than having to special case the treatment of ones own frame.
23:19 TimToady It shouldn't be called caller() then
23:19 TimToady maybe caller is &frame.assuming(1)
23:19 putter ah
23:20 audreyt &frame sounds GUIish
23:20 TimToady it's what it's called in gdb
23:21 TimToady dynamic_context is a bit longish
23:21 putter caller :skip<-1>  ? ;)
23:21 audreyt caller(0) in perl5 already starts with one's one
23:21 TimToady now where did I put my puke bucket?
23:22 putter lol
23:22 audreyt so I don't think rrename is warranted :))
23:22 audreyt nor subtle offbyone adjustments...
23:24 putter I'd be happy with that.
23:24 TimToady $+foo is short for CONTEXT:: so maybe switch the whole thing to context(0) etc
23:26 TimToady and maybe leave caller as &context.assuming(1)
23:26 TimToady since we also have CALLER:: to refer to the immediate caller
23:27 audreyt makes sense...
23:27 * audreyt ponders to have &want take the same thing as &context so they are exactly duals
23:28 TimToady they don't already?
23:29 TimToady hmm, they did at one point, or were at least close
23:30 TimToady but maybe we decided &context.want was sufficient
23:30 audreyt that also = unspecce
23:30 TimToady and want() is &context(0).want
23:30 audreyt either way is fine
23:30 audreyt sure...
23:32 svnbot6 r15556 | putter++ | Neatening pX/Common/.  Moved various old regex stuff to Aside/regex_assorted/.
23:35 svnbot6 r15557 | putter++ | Neatening pX/Common/.  Moved an old regex project to Aside/regex_assorted/.
23:37 putter Common/regexp_and_parser_spike/parser_spike.pl and Common/regexp_and_parser_sp​ike/parser_spike_target.pl make an interesting browse.  Here we are 3 days short of a year later... and it all looks so very familiar.  sigh.
23:41 weinig is now known as weinig_
23:43 Psyche^ joined perl6
23:45 putter A few weeks back a friend I only rarely see gave me a very odd look.  Had asked what I was working on.  Said operator precedence parser for perl6.  Friend remembered hearing the same answer a year earlier.... ;)
23:45 meppl gute nacht
23:45 putter g'night
23:45 meppl ;)
23:48 audreyt well, two years ago I was writing multi dispatch code ;)
23:48 audreyt familiar, yet quite different :)
23:49 putter oh, yeah.  wow.  time flies.
23:50 weinig_ is now known as weinig
23:50 putter so no Boston visit this year?  there seemed some interest here in having you do a dynamic languages seminar talk at mit.
23:51 putter http://blackdog.net/holida​y/christmas/countdown.html (caveat - popups)
23:51 lambdabot Title: BlackDog's Countdown To Christmas
23:51 audreyt unfortunately sponsorship never got confirmed and my financial state isn't well enough that I can skip $job for that long
23:51 audreyt so mountain view seems a more fruitful destination
23:52 putter k
23:53 svnbot6 r15558 | audreyt++ | * state.t: move away irrelevant .perl artifact vs testing
23:53 putter one thing which came up at the local .pm was a concensus that the pl community was unaware of how badly we were getting hosed by you're not having funding.  suggested it was an "advertising" failure.
23:54 putter this suggests its an ongoing issue.  ie, raising p6 visibility/respect should be a no-brainer.
23:56 putter well, no-brainer as long as it doesn't cut into hacking, is too expensive, etc.  but $job conflict?  as a community, I suspect we collectively don't want to be there.  but our optical ganglia havent communicated with our motor ganglia.
23:56 putter perhaps?
23:57 audreyt might be. still the current $job is the best I can find that allows some p6/p5/hs use
23:57 putter k
23:57 audreyt and I've been unable to find a sponsor for me to work fulltime on p6 that does not involve making pugs proprietary
23:57 putter eep
23:57 audreyt I'm grateful as-is :)
23:57 Psyche^ is now known as Patterner
23:58 putter as are we all. ;)

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

Perl 6 | Reference Documentation | Rakudo