Camelia, the Perl 6 bug

IRC log for #perl6, 2006-09-04

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:13 Aankh|Clone joined perl6
00:19 SubStack joined perl6
00:21 weinig|bbl is now known as weinig
00:22 nekokak joined perl6
00:26 hikozaemon joined perl6
00:30 bsb joined perl6
00:47 jferrero joined perl6
00:49 b00t joined perl6
00:52 reZo_ joined perl6
00:56 justatheory joined perl6
00:57 markstos I overhauled the rakudo Perl 6 wiki to have what I think is a more sane site structure and front page. It uses one of the cool features of SocialText, which is embedding RSS feeds into the pages.
00:58 markstos http://rakudo.org/perl6/index.cgi
00:59 markstos audreyt: notice that the pugs.blog.com posts all seem to have the "Audrey Tang: " prefix, even when other bloggers". If you just read the blog post, it's easy to read " I did this..." comments as if you said them, even when someone else is blogging. I'm not sure where that gets set, but it would be good to change to something more generic, like "Pugs Blog: "
01:00 markstos There are still a lot more ways the wiki could be improved, so dig in!
01:01 markstos It has some annoyances, like no comment fields for changes, but I think I like it better than kwiki and twiki, the other Perl-based blogging software I've used before.
01:11 aufrank joined perl6
01:33 audreyt yo
01:33 audreyt markstos: it's planetsix's setting
01:33 markstos I wondered.
01:33 audreyt obra: can we s/Audrey Tang/Pugs Team/ on planet6?
01:34 markstos Good morning Audrey. :)
01:35 markstos You seem to be exactly 12 timezones away from me, making you literally half way around the world, it seems.
01:35 mako132_ joined perl6
01:35 obra audreyt: I'll queue it
01:35 svnbot6 r13000 | trey++ | [t/block/lexical_subs.t]
01:35 svnbot6 r13000 | trey++ | Testing for whether imports work inside a lexical sub.
01:35 svnbot6 r13000 | trey++ | (Whoo-hoo, 13000 commits!)
01:36 [particle] is there a way to view pugs.blogs.com such that code won't scroll under the text box for posts?
01:36 markstos audreyt: I'm working another blog entry how Perl 6 creates massive code reduction. This time, it seems I'll be able to replace about 64 lines of Perl 5 with 1 of Perl 6.
01:36 [particle] egad.
01:36 obra i need to mirror it ;)
01:38 audreyt markstos: nice, 6 orders of magnitude!
01:38 * audreyt lives in a log(2) world
01:38 markstos There's one catch.
01:39 [particle] try me :)
01:39 markstos It's a feature that's not implemented yet:
01:39 markstos self.*meth
01:39 markstos That's OK. I'm patient. :)
01:39 audreyt fixing that ;)
01:40 markstos I didn't think it would work until the meta model / OO foundation was there...
01:40 audreyt are you using the multi axis
01:40 audreyt or the inheritance axis?
01:40 markstos I'm not sure what you mean.
01:40 markstos But I wrote some tests for it yesterday:
01:40 markstos t/oo/methods/calling_sets.t
01:41 audreyt ah, inheritance axis.
01:41 audreyt that we can do right now.
01:41 markstos Cool!
01:41 [particle] markstos: just stay away from the evil axis
01:41 audreyt (multi axis is when .*meth dispatches to the next-fit multi variant)
01:41 audreyt but I love the aevil axis
01:41 markstos I can't think of a use case for the multi axis case.
01:41 [particle] audreyt: i thought you were on the fun axis
01:42 markstos But the inheritence axis provides the core of a plugin system.
01:42 obra pugs doesn't need to work at anywhere but the upper bound of that axis, jerry
01:42 markstos Plugins just add methods named "whatever_hook" throughout the inheritence try, and then...
01:42 * [particle] is quite interested in the development of cgi::app's plugin system in perl 6
01:42 markstos self.$hook_name(@args) replaces 64 lines of code to call them all. :)
01:43 markstos self.*$hook_name, that is.
01:43 markstos Luckily, dynamic method names were added yesterday. :)
01:43 aufrank self.*$hookname(@args) # is this the full call?
01:43 * markstos digs up reference.
01:44 markstos http://feather.perl6.nl/syn/S1​2.html#Calling_sets_of_methods
01:44 weinig joined perl6
01:44 lambdabot Title: S12, http://tinyurl.com/ga3uw
01:44 markstos means "Calls zero or methods with that name, throughout the inheritence tree"
01:44 TreyHarris audreyt: i was trying to fix this, but i realized that since you wrote Module::Install, you'd probably be better-equipped to know the right place to put it.  if i "sudo make install" immediately after running a make, some stuff gets rebuilt anyway, and so now I have root-owned files littering my source tree.  so i was going to add a 'system "chown -R $ENV{SUDO_USER} ." if $ENV{SUDO_USER}' to the install step...
01:44 aufrank right, I just wondered if you include arguments when calling the set
01:45 [particle] obra: given .fun(Inf) { when .evil(hack) { ... } }
01:45 markstos aufrank: Yes.
01:45 aufrank gotcha
01:45 obra :)
01:45 audreyt TreyHarris: hm, that's not really portable
01:45 audreyt TreyHarris: File::Find plus chown() calls prehaps?
01:46 dolmans joined perl6
01:46 markstos particle: I don't see the reason to change much, but I think I'll look at having the callbacks be method names instead of code refs, so this call calling syntax can work.
01:46 TreyHarris audreyt: sudo exists where chown doesn't?
01:46 audreyt TreyHarris: or better, find out which files are those
01:46 markstos s/call/cool/
01:46 audreyt TreyHarris: very good point! I rest my case :)
01:46 audreyt TreyHarris: so let's see... can you find .
01:47 audreyt and get me a list of those files?
01:47 audreyt I think it can be the case that during util/build_pugs.pl
01:47 TreyHarris i'm running a sudo make install now, verified that there were no root files before
01:47 audreyt we use the original EUID
01:47 audreyt okie
01:47 audreyt I need to food. bbiab
01:52 pasteling "TreyHarris" at 216.254.17.198 pasted "root-owned files following make install for audreyt" (25 lines, 841B) at http://sial.org/pbot/19444
01:53 audreyt TreyHarris: ok, do it at line 21
01:53 audreyt util/build_pugs.pl
01:53 audreyt using your orig. plane
01:53 audreyt *plan
01:53 audreyt have fun :)
01:53 audreyt TreyHarris++
01:53 TreyHarris thanks!
02:25 audreyt markstos: so you use .*$ only?
02:26 audreyt not other dispatch quantifiers?
02:26 markstos Yes.
02:26 audreyt do you use .*known_name?
02:26 markstos .*$meth is needed
02:27 audreyt I mean, do you also use .*known?
02:27 markstos No.
02:27 audreyt since Call and DynCall are two opcodes
02:27 audreyt good. I'll hack at one place first
02:27 markstos I don't think I added a test for self.*$dyncall yesterday. Adding.
02:30 TreyHarris audreyt: hmm... it looks like ./third-party/installed/lib/Pugs-6.​2.12/ghc-6.4.2/libHSPugs-6.2.12.a, ./third-party/installed/packages.conf, and ./third-party/installed/packages.conf.old are getting created after build_pugs.pl is done
02:33 svnbot6 r13001 | markstos++ | Adding test for $object.*$meth, as audrey implements in parallel
02:35 svnbot6 r13002 | markstos++ | Add TODO notes about some other easy dynamic method tests to add,
02:35 svnbot6 r13002 | markstos++ | which I'm too sleepy to do myself right now.
02:37 audreyt TreyHarris: mmm that's surprising
02:42 mako132_ joined perl6
02:43 TreyHarris maybe not... let me rm pugs and try again
02:43 Plazma joined perl6
02:43 Plazma left perl6
02:44 SamB joined perl6
02:46 audreyt markstos: C3 is not yet in pugs
02:46 audreyt markstos: would it be a showstopper if .*$meth assumes single inheritnace for this release?
02:46 markstos No.
02:46 audreyt 'k
02:46 audreyt alternately I cau use perl5 dispatch order
02:46 audreyt but that's so broken I don't want to check that in :)
02:48 markstos Not that I need this, but with self.$meth in Perl6, can $meth be a code ref and not just method name, like in Perl 5 ?
02:48 audreyt did TimToady say something about the return value of .*$meth?
02:49 markstos audreyt: the short term effect of your work will be make the blog posting about it sound great. It will be a little while longer before CGI::App is released as a fully working thing.
02:49 audreyt sound great is important.
02:49 markstos I'll check p6l now.
02:49 audreyt re coderef, I don't think so.  I think you want
02:49 audreyt $meth(self: ...)
02:49 markstos Looks like no response from TimToady.
02:50 markstos I just ignore the return values in this case anyway.
02:50 audreyt but otoh, a case can be made for self.$meth() being sugar.
02:50 audreyt hrm hrm.
02:50 markstos so $meth(self:...) would work for both ?
02:50 audreyt I'll leave it for timtoady
02:50 markstos but self.$meth() would nice sugar. :)
02:50 audreyt no, $meth(self) only works if $meth is Code
02:51 markstos Ah.
02:51 audreyt and self.$meth works only if $meth is Str
02:51 audreyt in p5 they are somewhat interchangeable
02:51 audreyt I tend to think it's a mistake
02:51 markstos I have no strong opinion about it.
02:52 markstos In Perl 5- CGI::App, we allow code refs for this use, but for the Perl6 port, I may limit it back to just methods. Seems cleaner.
02:52 markstos or at least simpler to start with. :)
02:53 audreyt ok :)
02:53 markstos $meth(self:) distinction probably makes sense  because I don' t think calling a "collection set" on a code reference makes sense, this distinction seems to disallow the syntax.
02:54 markstos That was a poor, sleepy sentence...
02:55 markstos Unrelated, does it make sense for a signature to be optional /and/ set a default, like this:
02:55 markstos Str  $status?    = '200 OK',
02:56 markstos It seems like setting the default would be enough.
02:58 TreyHarris self.$meth only working if $meth is a Str and $meth(self) only working if $meth is Code is perfect, IMHO
02:58 xinming joined perl6
02:58 markstos works for me.
02:59 gugod joined perl6
03:01 mjk joined perl6
03:01 markstos back in 5
03:02 audreyt hm
03:02 audreyt TimToady: SUPER is still static?
03:03 audreyt $obj.SUPER::new calls something regardless of $obj's actual type?
03:17 svnbot6 r13003 | markstos++ | Add to Differences.pod:  Was: $self.$coderef() / Now: $coderef(self:)
03:21 audreyt markstos: so I'll return a list of each meth
03:21 audreyt hope that's okay with you
03:21 audreyt (a list of the rv of each meth, that is)
03:21 audreyt not concatenated
03:22 audreyt it's in.
03:22 svnbot6 r13004 | markstos++ | In CGI.pm:
03:22 svnbot6 r13004 | markstos++ | - Remove some blank "Content-type: " headers from tests to make them pass
03:23 svnbot6 r13004 | markstos++ | - clean up a signature
03:23 svnbot6 r13004 | markstos++ | - There are are some failing tests in t/params.t which seem unrelated.
03:23 * audreyt looks forward to propagandisque blog post :)
03:23 markstos Thanks audreyt
03:24 svnbot6 r13005 | audreyt++ | * Initial support for dispatch quantifier:
03:24 svnbot6 r13005 | audreyt++ |     class C      { method foo { 1 } };
03:24 svnbot6 r13005 | audreyt++ |     class D is C { method foo { 2 } };
03:24 svnbot6 r13005 | audreyt++ |     my $meth = 'foo';
03:24 svnbot6 r13005 | audreyt++ |     my $obj = D.new;
03:24 svnbot6 r13005 | audreyt++ |     $obj.*$meth;    # (1, 2)
03:24 audreyt thank _you_ :)
03:24 svnbot6 r13005 | audreyt++ |   Currently only the .*$meth form is supported; also the return
03:24 svnbot6 r13005 | audreyt++ |   value (an unconcatenated list of each method's return value)
03:24 svnbot6 r13005 | audreyt++ |   is as of yet unspecced.
03:24 audreyt without a use case, I feel very unmotivated
03:24 audreyt as the dispatch quantifiers was kinda unpopular around here
03:24 audreyt people generally could not find a use case :)
03:24 markstos When you say "return a list of each meth"  , you mean @all_methods_called = self.$meth ?
03:24 audreyt er no. see commit log
03:25 audreyt a list of rv of each meth
03:25 markstos rv = return values. got it.
03:25 markstos The log was clear, my thinking was not.
03:25 audreyt yeah, as opposed to the perl5 RV, which doesn't exist in perl6 vocabulary :)
03:26 markstos But you can't tell where one RV set ends, and the other begins, eh ?
03:26 audreyt "unconcatenated"
03:26 audreyt so if C.foo returns (1,2,3) and D.foo returns(4,5,6)
03:26 audreyt you get
03:26 markstos Which translates to: "You thought of that"
03:26 audreyt $obj.*$meth.[0][0] == 1
03:26 audreyt $obj.*$meth.[1][0] == 4
03:26 audreyt well, yes :)
03:27 markstos Nice solution!
03:27 audreyt *curtsies*
03:27 markstos ?eval 1
03:27 evalbot_12997 is now known as evalbot_13003
03:27 evalbot_13003 1
03:28 TreyHarris ok, touched Makefile.PL to simulate a rebuild and did a new make/sudo make install.  now all I have that's root-owned are Makefiles inside the ./perl5 dir and blib/script/pugs
03:28 audreyt okie. that's somewhat fine
03:30 TreyHarris better, but i still can't make again as myself without chowning
03:31 audreyt if you'd like to fix it for real...
03:31 audreyt add a line before 761 and 772, Makefile.PL
03:32 audreyt that does the equiv
03:33 audreyt \@\$(PERL) -e "system(chown => -R => (ENV->{SUDO_USER} || exit))"
03:33 audreyt will probably do
03:33 audreyt and remove the equiv para from build_pugs.pl
03:33 audreyt (untested)
03:33 audreyt (also overgolfed)
03:36 svnbot6 r13006 | markstos++ | Add $obj.*$meth mention to ChangeLog.
03:36 TreyHarris yup, that was what my original thought was, but i figured that was too crude :-)
03:37 audreyt sorry for leading you sidetracked :)
03:40 cmarcelo audreyt: which macbook is yours?
03:40 markstos ?eval 1
03:40 audreyt cmarcelo: I have two 2Ghz white macbooks
03:40 evalbot_13003 1
03:40 audreyt markstos: ETA 3min
03:41 audreyt (one is broken, and ddrescue is at its "splitting error areas" final stage which doesn't know how long it will take)
03:42 cmarcelo audreyt: the 13' lcd ? are you happy with them? what about the warming / overheating?
03:42 audreyt very happy. warming is manageable
03:42 audreyt the power adapter tends to warm quicker
03:42 audreyt but really happy with it
03:43 cmarcelo is the 13' not the pro, right?
03:43 audreyt right.
03:43 audreyt pro too bulky for me.
03:43 TreyHarris cmarcelo: i loved my eval unit.  going back to my 1.5GHz G4 was really a shock to my system.  especially as building pugs takes 2x as long...
03:46 cmarcelo and did you used / are using Linux?
03:47 TreyHarris cmarcelo: i installed Linux under Parallels.  Worked great.  the pugs build on Ubuntu under Parallels took 1.2 times as long as the native pugs build, which i think is quite respectable.
03:47 audreyt cmarcelo: no, I was planning to install ubuntu
03:47 audreyt but then I switched my desktop box from fbsd to ubuntu
03:47 audreyt so shelling to it is easier than parallels
03:48 cmarcelo parallels =  dual boot?
03:48 audreyt no, VMware
03:48 hermax_ joined perl6
03:48 nperez joined perl6
03:49 hermax_ joined perl6
03:50 cmarcelo oh nice.. but dual boot is possible, i suppose?
03:50 svnbot6 r13007 | markstos++ | [t/oo/methods/calling_sets.t]
03:50 svnbot6 r13007 | markstos++ | After minor test refinement $obj.*$meth(@args) is confirmed to pass!
03:51 audreyt yes, though not as attractive
03:51 SamB oh, how exactly does that nick++ stuff work?
03:51 audreyt ?eval my $meth = 'say'; 1.*$meth
03:51 * SamB wants to implement it for lambdabot...
03:51 TreyHarris perlbot: karma
03:51 perlbot usage: karma (thing)
03:51 TreyHarris perlbot: karma markstos
03:51 perlbot Karma for markstos: 12
03:52 audreyt ?eval 1
03:52 evalbot_13003 is now known as evalbot_13005
03:52 evalbot_13005 (no output)
03:52 SamB perlbot: karma nick
03:52 perlbot Karma for nick: -1
03:52 cmarcelo audreyt: attractive as an technical option or OSX Aqua against linux whatever WM ?
03:52 evalbot_13005 1
03:52 SamB does it work if I say nick++ like this?
03:52 SamB perlbot: karma nick
03:52 perlbot nick doesn't have any karma
03:52 audreyt cmarcelo: technical option. Parallels works much better imho
03:52 markstos Odd: Karma of 12 is exactly my karma on use.perl.org
03:52 audreyt SamB: \bot already has @karma
03:53 SamB audreyt: oh, yes
03:53 markstos ?eval 1
03:53 evalbot_13005 1
03:53 SamB but I saw some people using that style of syntax in #haskell and thought lambdabot should have that too ;-)
03:53 markstos ?eval my $meth = 'say'; 1.*$meth
03:53 SamB does it work twice like nick++ nick++ ?
03:53 SamB perlbot: karma nick
03:53 perlbot Karma for nick: 2
03:54 markstos ?eval my $meth = 'say'; 1.*$meth()
03:54 SamB hmm, I better not implement this tonight...
03:55 audreyt I wonder why it times out
03:55 markstos Hm, I tried that eval on the command line with -e, and it returns blank immediately.
03:56 audreyt ditto here
03:56 audreyt ?eval 1
03:59 markstos ?eval class Foo { method zoo { 42 } }; my $m = "zoo"; Foo.new.*$m.say;
03:59 markstos (That works for me with pugs -e  )
04:00 evalbot_13007 joined perl6
04:05 audreyt ?eval class Foo { method zoo { 42 } }; my $m = "zoo"; Foo.new.*$m.say;
04:08 markstos audreyt? any guesses about the evalbot .*$meth weirdness ?
04:08 evalbot_13007 joined perl6
04:09 audreyt ?eval class Foo { method zoo { 42 } }; my $m = "zoo"; Foo.new.*$m.say;
04:09 evalbot_13007 [[[ class\ Foo\ \{\ method\ zoo\ \{\ 42\ \}\ \}\;\ my\ \$m\ \=\ \"zoo\"\;\ Foo\.new\.\*\$m\.say\; ]]] OUTPUT[42 ] Bool::True
04:09 audreyt debugging
04:12 evalbot_13007 joined perl6
04:12 audreyt ?eval class Foo { method zoo { 42 } }; my $m = "zoo"; Foo.new.*$m.say;
04:12 evalbot_13007 OUTPUT[42 ] Bool::True
04:12 weinig is now known as weinig|zZz
04:12 audreyt ?eval class Foo { method zoo { 42 } }; my $m = "zoo"; Foo.new.*$m;
04:12 evalbot_13007 (42,)
04:12 audreyt ?eval my $meth = 'say'; 1.*$meth
04:12 svnbot6 r13008 | audreyt++ | * correct a test:
04:12 svnbot6 r13008 | audreyt++ |     sub f ($x = 0 is copy)  # bogus
04:13 svnbot6 r13008 | audreyt++ |     sub f ($x is copy = 0)  # fine
04:13 audreyt aha, I see why.
04:13 evalbot_13007 (no output)
04:13 audreyt ?eval my $meth = 'sqrt'; 4.*$meth
04:13 evalbot_13007 ()
04:14 audreyt they didn't work becaue they were not methods, duh.
04:14 markstos say is not a method ?
04:15 audreyt it's a method on IO handle
04:15 araujo joined perl6
04:15 audreyt but not on 4
04:15 markstos hm, that explains why the test in t/ passed, as it tested normal/real methods.
04:15 audreyt yup
04:15 audreyt fixing.
04:16 markstos Shall I submit the 'sqrt' case as a test, then ?
04:19 audreyt yes.
04:19 markstos k
04:25 gaal salty-horse: hey. first off, your changes to Code weren't compiled because for technical GHC 6.4.x reasons, that file isn't a first-class compilation unit
04:25 gaal you need to 'touch src/Pugs/Val.hs' and retry
04:26 gaal second off, your Show instance is a good idea -- but you can't show an Exp so simply, and you don't have an isOptional in scope there
04:26 svnbot6 r13009 | markstos++ | New test:  my $meth = 'sqrt'; my $ans = 0; try { $ans = 4.*$meth };
04:26 svnbot6 r13009 | markstos++ | (failing ATM)
04:27 gaal ParamDefault just has two variants. think of it as a specialized 'Maybe' type for defaults, that _might_ hold an Exp.
04:31 SamB hmm, GHC ought to keep track of dependencies on #included files...
04:32 svnbot6 r13010 | audreyt++ | * evalbot-helper: remove obsolete syntax of *@_.
04:33 markstos If *@_ is obsolete, is it just @_ ?
04:34 gaal 06:53 < SamB> but I saw some people using that style of syntax in #haskell
04:34 gaal haha 0wned
04:34 svnbot6 r13011 | audreyt++ | * .*$meth now redispatches to sub as it should.
04:34 audreyt markstos: yes
04:34 audreyt in expression level
04:34 audreyt in param level there's still *@_ of course.
04:34 audreyt in expression level,
04:34 audreyt [,] @_
04:35 audreyt replaces the old *@_
04:35 markstos Good to know.
04:35 audreyt markstos: fixed. bbiab...
04:35 gaal salty-horse++ # Parsec hacking
04:35 markstos Thanks, audreyt!
04:36 audreyt looking forward to the blogpost :)
04:36 gaal re: .*$meth, it's fine that it returns all rvs, but what happens when people want to identify them by something other than order?
04:37 * gaal looks forward to the motivational blogpost too
04:38 markstos the blog post may need to wait till morning. It's nearing 1 AM $localtime.
04:38 svnbot6 r13012 | markstos++ | CGI.pm:
04:38 svnbot6 r13012 | markstos++ | After reviewing CGI.pm-p5 and various HTTP docs,
04:38 svnbot6 r13012 | markstos++ | it seems that "Status: " is only normal for Redirects,
04:38 svnbot6 r13012 | markstos++ | so it is now only sent by default for redirects. It can
04:38 svnbot6 r13012 | markstos++ | still be added explicitly.
04:38 evalbot_13011 joined perl6
04:41 markstos Conrad and I made a lot of progress of the new Perl 6 wiki this weekend, though:http://rakudo.org/perl6/index.cgi/index.cgi
04:41 gaal audreyt: how do I unpack a PureSig out of Val?
04:42 gaal the existential style makes patmatching harder here
04:43 gaal only thing I could think of was dispatch into a method, but that means an 'asSig' which is dead weight in most cases, and looks unclean roo
04:43 gaal *too
04:44 gaal (roo isn't unclean, unless he spends a lot of time playing with Tigger)
04:45 audreyt gaal: do you know for sure it's puresig?
04:45 markstos ?eval sub foo { my @args = [,]@_; @args.perl.say; } foo('a', ( b => 1 ));
04:45 evalbot_13011 Error:  unexpected "@" expecting "\171", "<<", dot, ":", "(", comment, term postfix, operator, ",", postfix conditional, postfix loop, postfix iteration, ";" or "}"
04:45 audreyt markstos: space after [,]
04:45 markstos Oh.
04:46 audreyt and you really don't need that here...
04:46 gaal audreyt: yes: e.g. in unpacking params, I want to do unpacking <- ruleSignature
04:46 audreyt gaal: fromJust . Typeable.cast
04:46 audreyt or better
04:47 audreyt <- fromJust (Typeable.gcast ruleSignature)
04:47 audreyt you still need to unpack the ValPure part out, of course.
04:47 gaal existentialCoerce# = fromJust . Typeable.cast   -- now why does this sound vaguely familiar
04:47 markstos ?eval sub foo { my ($s,%h) = [,] @_; %h.perl.say; } foo('a', ( b => 1 ));
04:47 evalbot_13011 is now known as evalbot_13012
04:47 evalbot_13012 OUTPUT[{("b" => 1),} ] Bool::True
04:47 audreyt a helper method would be fine
04:47 gaal okay. another problem I ran into was:
04:47 audreyt Typeable a => Val -> Maybe a
04:48 gaal  :($x :($y))   <- the inner sig parser fails on unexpected ')'
04:48 gaal the inner parser was just
04:49 gaal optional $ char ':' >> between (symbol "(") (symbol ")") ruleSignature
04:49 gaal (modulo unpacking etc
04:49 gaal )
04:49 gaal er, existential unpacking that is)
04:49 audreyt weird.
04:50 audreyt I don't easly see why
04:50 gaal let me moose up a patch? got a minute?
04:50 audreyt what about if you just ruleSignatureVal ?
04:50 audreyt sure
04:51 gaal http://perlcabal.org/~gaal​/tmp/reentrant-sig.0.patch
04:51 svnbot6 r13013 | markstos++ | Differences.pod: Was: my ($s,$href) = @_;  /  Now  my ($s,%h) = [,] @_;
04:52 audreyt er, markstos no
04:52 audreyt you don't need the [,]
04:52 audreyt it's entirely optional there
04:52 gaal that uses a crutch against my ignorace re: existential unpacking, but that's not needed now
04:52 audreyt as assignment to list already confer list flattening
04:52 markstos Oh.
04:52 markstos So it works like P5 then there.
04:52 audreyt yes.
04:52 * markstos Backs the Truck Up.
04:53 audreyt in general @Larry worked very hard to make
04:53 audreyt infix assignment work exactly like p5
04:53 audreyt and leave all magic into infix :=
04:53 audreyt the only thing changed in infix assign was parsing
04:53 audreyt @x = 1,2,3
04:53 lambdabot Maybe you meant: . v
04:53 markstos He did a good job. I haven't even learned about := yet. :)
04:53 audreyt :)
04:55 svnbot6 r13014 | markstos++ | Audrey clarified that [,] @_ isn't need there, so Backing The Truck Up on that last patch.
04:56 TreyHarris oh!  i just came back here after seeing markstos's penultimate diff, and it's already been fixed :-)  audreyt++
04:56 audreyt =)
04:56 markstos you mean the [,] @_ snafu ?
04:57 TreyHarris markstos: right.  i see where you got that idea, though... the point is, you only need [,] inside a Capture (or subroutine actual parameter list, which is the same thing)
04:57 markstos penultimate ... I rarely here that word, exact for a folk dance caller  around here, who always refers to the "penultimate dance of the night"
04:58 markstos hm, like sub (Str $s, [,] @_) ?
04:58 markstos hm, like sub (Str $s, [,] @_) {} ?
04:58 TreyHarris no.... that's a Sig, not a Capture....
04:59 markstos s/here/hear/
04:59 * clkao yawns
04:59 markstos I'm should really give up and sleep for the night...
04:59 gaal markstos: "antepenultimate" also exists :)
04:59 audreyt gaal: symbol"" is hardcoded with evasion stuff (aheadSym)
04:59 markstos I've become dump.
04:59 audreyt don't use it :)
04:59 gaal oy
04:59 audreyt verbatimParens is good enough
04:59 audreyt it's in.
04:59 markstos I mean dumb. See what I mean? leaving. &
04:59 gaal whee! audreyt++
04:59 audreyt ?eval my $meth = 'say'; 4.*$meth
04:59 TreyHarris markstos: like sub foo  (Str $s, Str $y, Str $z) { ... }....then foo([,] @_)
05:00 evalbot_13012 is now known as evalbot_13014
05:00 evalbot_13014 OUTPUT[4 ] Bool::True
05:00 svnbot6 r13015 | audreyt++ | * Parameter unpacking, courtesy of gaal++
05:00 gaal I wonder if that fixes the bug reported by salty-horse++
05:00 audreyt markstos: you're just sleepy :) sleep well!
05:00 markstos TreyHarris: So that passes arguments through ?
05:00 audreyt markstos: yes, @_ musthave exactly three elements for that call to work
05:01 audreyt (bbl)
05:03 audreyt gaal: GHC complains "unpacking" is notused
05:03 gaal will fix
05:03 gaal it's just in populating MkParam, there's a Nothing there now maybe
05:03 audreyt yay
05:03 gaal fixes
05:03 gaal *d
05:22 gugod joined perl6
05:26 dibblego joined perl6
05:26 svnbot6 r13016 | gaal++ | * Populate parsed Signature with unpacked Signature (thanks audreyt++):
05:26 svnbot6 r13016 | gaal++ |     :(BinTree $x :($right, $left) )
05:26 svnbot6 r13016 | gaal++ |   We need an indenting pretty printer, the dump is unweildy!
05:26 svnbot6 r13016 | gaal++ | * This uses the incorrect 'p_unpacking :: Val' member in Pugs.Val.Code,
05:26 svnbot6 r13016 | gaal++ |   incomplete coercion code is left commented out.
05:26 dibblego do most people use the Pugs (Haskell) implementation?
05:28 audreyt currently, yes, though that's only if you're talking about perl6 syntax
05:28 audreyt I imagine Moose users already exceeds Pugs users :)
05:28 dibblego what is Moose?
05:28 dibblego another perl6 implementation?
05:28 audreyt it's an implementation of the Perl 6 object system as a Perl 5 module.
05:28 audreyt and part of the p6-on-p6 stack
05:28 dibblego why would it exceed pugs?
05:28 audreyt http://search.cpan.org/dist/Moose/
05:29 lambdabot Title: Stevan Little / Moose - search.cpan.org
05:29 audreyt because it's useful as a perl5 module on production perl5 systems
05:29 audreyt without requiring an extra haskell installation
05:29 nothingmuch joined perl6
05:29 dibblego so if you didn't have an existing perl5 system, you'd use Pugs?
05:30 audreyt might be, yeah
05:30 audreyt do you have the Pugs subversion tree checked out?
05:30 audreyt may I have your email address so I cna send you a commit bit? :)
05:31 dibblego nope, I haven't used perl in years
05:31 dibblego and even then, I didn't use it much at all
05:32 audreyt do you play with Haskell or C or JavaScript or Ruby or CLR? :)
05:33 dibblego yes often
05:33 dibblego though not Javascript so much - only when I have to
05:33 kanru joined perl6
05:33 audreyt oh, so you do play with haskell. please accept a commit bit :)
05:34 dibblego sure if you like
05:34 dibblego tmorris _aatt tmorris.net
05:39 audreyt welcome aboard :) add yourself to AUTHORS to test svn commit, when you got some cycles :)
05:39 pfenwick joined perl6
05:39 dibblego ok cheers :)
05:50 ayrnieu joined perl6
05:59 nothingmuch joined perl6
06:01 Aankhen`` joined perl6
06:13 lambdabot joined perl6
06:13 gugod joined perl6
06:21 ludan joined perl6
06:23 iblechbot joined perl6
06:24 traecer joined perl6
06:24 xinming joined perl6
06:25 xinming ?eval
06:25 xinming ?eval "abc"\                          ; say
06:25 evalbot_13014 is now known as evalbot_13016
06:25 evalbot_13016 Error:  unexpected ";" expecting comment or "."
06:41 audreyt gaal: dons's paper is out, Pugs is mentioned at the front of "applications":
06:41 audreyt http://www.cse.unsw.edu.au/~dons/papers/CSL06.html
06:41 lambdabot Title: Rewriting Haskell Strings, http://tinyurl.com/eobse
07:10 plisk joined perl6
07:23 perlbot joined perl6
07:23 perlbot joined perl6
07:32 gaal yay!
07:44 kanru joined perl6
08:12 drrho joined perl6
08:18 kane-xs joined perl6
08:37 crem_ joined perl6
08:40 Kattana joined perl6
08:41 Psyche^ joined perl6
08:41 Psyche^ is now known as Patterner
08:41 hcchien joined perl6
08:42 autark joined perl6
08:42 sili-babypuncher joined perl6
08:42 cookys joined perl6
08:48 plisk joined perl6
08:48 araujo joined perl6
08:48 dolmans joined perl6
08:48 b00t joined perl6
08:48 hikozaemon joined perl6
08:48 crem joined perl6
08:48 ruz joined perl6
08:48 takanori joined perl6
08:48 Yappo joined perl6
08:48 kattana_ joined perl6
08:48 takanori_ joined perl6
08:58 nothingmuch \
09:11 integral_ joined perl6
09:17 integral_ is now known as integral
09:17 dolmans joined perl6
09:17 ruoso joined perl6
09:21 buetow joined perl6
09:53 SubStack joined perl6
10:03 chris2 joined perl6
10:37 svnbot6 r13017 | masak++ | * mention a paper, and READTOO gets updated, almost automatically
10:45 lambdabot joined perl6
10:47 malaire joined perl6
11:18 elmex joined perl6
11:30 kane-xs_ joined perl6
11:36 wolverian hm. is my @fibs = (0, 1, @fibs »+« @fibs[1..Inf]); supposed to DWIM, or am I doing it wrong? :)
11:36 audreyt that looks correct.
11:37 audreyt though infix:<,> in pugs is currently eager
11:37 audreyt I mean, flattening is currently eager.
11:37 wolverian ah. that's why it didn't work then
11:37 wolverian at least it didn't recurse into bitvoid
11:37 audreyt :)
11:38 wolverian thanks :)
11:38 audreyt np :)
11:38 wolverian quick q - is = still higher prec than ,?
11:38 audreyt only when lhs is scalar
11:38 audreyt when lhs is listish, it drops to lower
11:38 audreyt dwim and all
11:38 wolverian oh. that's eerie
11:39 wolverian yeah :)
11:39 audreyt it's intuitive, though
11:39 wolverian so I can drop the parens
11:39 mauke can I get runtime precedence selection?
11:39 wolverian yes, it is
11:39 audreyt mauke: you realize "runtime" and "precedence" doesn't mix? :)
11:39 audreyt (precedence does not affect runtime)
11:39 mauke why, you can just reparse the tokens at runtime
11:39 audreyt it could effect eval "" I guess.
11:39 audreyt yup, that's the eval
11:40 audreyt without eval, though, I don't think we can force reparsing
11:40 audreyt and if you changed prec, sure, it affects subsequent eval""
11:40 lichtkind joined perl6
11:41 mauke what I really want is overloaded operators with different precedences, depending on the type of their operands. then I could make an infinite loop in the precedence parser
11:41 wolverian that's what = sounds like it's doing
11:41 audreyt it's possible with macros
11:41 audreyt </standard answer>
11:41 audreyt which is what infix:<=> is defined as, yes.
11:41 mauke wolverian: runtime type, I mean
11:41 audreyt runtime type...
11:42 audreyt that somehow does not make sense...
11:42 audreyt you mean we parse hypothetically
11:42 audreyt producing two parse trees
11:42 audreyt and select one based on runtime info?
11:42 mauke yeah, except it's more than two trees
11:42 audreyt that is interesting, definitely possible with eval+macro
11:42 audreyt but not sure I want to have it by default :)
11:49 nothingmuch @seen clkao
11:49 lambdabot clkao is in #perl6. I don't know when clkao last spoke.
11:52 clkao hi
12:16 glasser joined perl6
12:17 agentzh joined perl6
12:18 agentzh oh... #perl6 seems to be accelerating these days. :)
12:19 agentzh so i can compile pugs using GHC 6.6 on win32 and enjoy perl5 embedding of pugs via activeperl soon?
12:19 audreyt there's up and downs, but yeah, the trend seems to be up
12:19 audreyt not "soon", more like "now"
12:20 agentzh ohhhhhh!!!!
12:20 audreyt be sure to use the http://haskell.org/ghc/dist/current/dist/gh​c-6.5.20060819-i386-unknown-mingw32.tar.gz build
12:20 audreyt extract it to c:\ghc\
12:20 agentzh audreyt: okay
12:20 audreyt and build pugs normally (probably need realclean)
12:20 agentzh k
12:21 audreyt pugs should pick up c:\ghc\ghc-6.5.20060819 automatically.
12:21 markstos joined perl6
12:21 audreyt and you'll also notice pugs becomes 2x+ faster :)
12:21 agentzh hehe
12:21 agentzh it's 6.5?
12:21 audreyt yeah
12:21 agentzh okay
12:21 audreyt via a cute lambdaland technology called ByteString stream fusion
12:22 audreyt the good thing is that the details are completely hidden :)
12:22 agentzh oh
12:22 agentzh yeah, it's very nice.
12:23 agentzh audreyt: btw, can i use redo in the do-once loop?
12:23 agentzh and what will happen then?
12:23 agentzh (if yes)
12:23 onsen joined perl6
12:23 audreyt it can, and it will redo it
12:24 audreyt pugs currently doesn't support that. please find/write a test.
12:24 agentzh so it may not be a do-once loop?
12:24 audreyt do { say 3; redo } # says 3 a lot
12:24 agentzh audreyt: there *are* tests in t/statements/do.t
12:24 agentzh i wrote that a few days ago. :)
12:24 audreyt oh right
12:25 audreyt I remembered that.
12:25 agentzh :D
12:26 agentzh sadly school has started, so i can't spend much time here... :(
12:26 svnbot6 r13018 | audreyt++ | * redo.t: Remove the XXX comments as "redo" indeed should work
12:26 svnbot6 r13018 | audreyt++ |   in do {...} loops.
12:26 agentzh audreyt++
12:27 audreyt :)
12:35 svnbot6 r13019 | agentz++ | [t/TASKS]
12:35 svnbot6 r13019 | agentz++ | - removed obsolete items and added new ones.
12:41 * audreyt discovers a fascinating blog :)
12:41 audreyt ( http://agentzh.spaces.live.com/ )
12:42 audreyt it's in Chinese, though :)
12:42 agentzh audreyt: yes!
12:42 agentzh fortunately you know chinese. :)
12:43 audreyt yeah, and you write very well
12:43 agentzh thank __you__
12:44 penk joined perl6
12:44 audreyt so you actually transcribe Synopses on paper?
12:44 audreyt this is fascinating...
12:44 audreyt I usually learn by translating
12:45 audreyt but transcribing is surely more thorough
12:45 agentzh audreyt: yes
12:45 agentzh my fingers hurt. :(
12:46 agentzh however the good thing is that i've found a lot of typos in the synopses.
12:46 agentzh translating deserves more effort and time.
12:47 agentzh i ever translated the documentation of the C# spec and Visual Prolog docs to Chinese. but my brain hurt a lot. ;-)
12:49 audreyt I'm very impressed...
12:49 audreyt :) bbiab
12:56 nnunley joined perl6
12:58 markstos audreyt: Regarding $obj.*$meth, it turns out I could use /both/ the multi axis and the inheritence axis together. I'll explain the use case.
12:59 markstos A parent class may do: use Plugin::Foo; use Plugin::Bar;  Both of them may want to add something what we calll the "init hook"
13:00 markstos So when we call self.*init_hook, we want to look through parent classes, and then call all matching multi methods there.
13:00 svnbot6 r13020 | agentz++ | [t/statements/do.t]
13:00 svnbot6 r13020 | agentz++ | - fixed a broken smartlink (thanks to larry's recent
13:00 svnbot6 r13020 | agentz++ |   clarification (syn r11653) on statement modifiers
13:00 svnbot6 r13020 | agentz++ |   and the do-once loop
13:00 svnbot6 r13020 | agentz++ | - added more tests for the invalid case that do-once
13:00 svnbot6 r13020 | agentz++ |   loops take statement modifiers.
13:00 markstos I know you said the multi axis may need to come later, and I understand. I may go ahead and write a test for it, though.
13:03 audreyt sure!
13:06 svnbot6 r13021 | agentz++ | [t/statements/do.t]
13:06 svnbot6 r13021 | agentz++ | - added IRC notes as a comment on redoing a do-once loop
13:06 svnbot6 r13021 | agentz++ | - fixed a buggy test.
13:14 markstos I just roles for the first time. love 'em.
13:14 svnbot6 r13022 | markstos++ | [t/oo/methods/calling_sets.t]
13:15 svnbot6 r13022 | markstos++ | New test for $obj.*$meth working on both inheritence and multi axis:
13:15 svnbot6 r13022 | markstos++ | We should not only look in parent classes, but for matching  multi methods in parent classes!
13:16 * markstos starts pugs blog post
13:16 svnbot6 r13023 | agentz++ | [t/statements/modifiers/for.t]
13:16 svnbot6 r13023 | agentz++ | - added 2 tests for "{...} for 1..3" and
13:16 svnbot6 r13023 | agentz++ |   "-> $i {...} for 1..3" according to larry's p6l mail
13:16 agentzh markstos++
13:17 clkao win 25
13:18 agentzh a new version of windows?
13:18 markstos agentzh++ for making test writing more fun and useful with smart links.
13:18 agentzh markstos: i'm happy to hear that!
13:20 agentzh feather's cron tells me that we now have 299 working smartlinks.
13:20 agentzh so who will add the 300th?
13:20 agentzh :)
13:20 Juerd Cron talks to you? :)
13:20 agentzh Juerd: yes, via emails.
13:20 agentzh i've received one email from it every hour. :)
13:20 Juerd Cron's just the messenger. Your script tells you this :)
13:21 agentzh but the email is sent from cron. :)
13:21 Juerd That is certainly true.
13:21 agentzh aye
13:21 Juerd Do you mind the mail?
13:21 agentzh Juerd: no. gmail groups them very well.
13:21 Juerd Okay
13:22 agentzh ;)
13:29 markstos If I want to generically pass arguments through a wrapper, I should use  self.*$hook( [,] @args);
13:30 markstos and not just (@args), right ?
13:30 audreyt right
13:30 audreyt but that's a uhm, very perl5ish way of thinking :)
13:30 markstos Yes, teacher ?
13:30 audreyt that only covers positionals
13:31 audreyt the canonical passthru is something like
13:31 markstos How would I cover pos and named ?
13:31 audreyt method f (\$args) { self.*$hook([,] =$args) }
13:31 markstos You're improving the accuracy of my blog post. :)
13:32 audreyt but that may be overkill; if you are not aiming for supporting multiple pipes
13:32 markstos I'll read abou what "=$args" means.
13:32 audreyt then
13:32 audreyt method f { self.*$hook([,] @_, %_) }
13:32 audreyt automagically gets what you want
13:32 audreyt since without a signature, a method autoexpands to
13:32 audreyt method f (*@_, *%_) { ... }
13:33 markstos We do allow people to construct arbitrary hooks, so we don't know what args we might want to pass through
13:33 audreyt dwim and all :)
13:33 markstos and don't want to restrict it.
13:33 audreyt nod. in that case
13:34 markstos So [,] is the list constructor, and then %_ for named, which should come after positional. got it.
13:34 audreyt method f ($self: \$args) { $self.*$hook([,] =$args) }
13:34 audreyt is the current way to do that
13:34 audreyt note that $self is taken out because we don't actually pass that in again as argument
13:34 audreyt but always use it as invocant
13:34 markstos so that's the canonical, preferred way ?
13:34 audreyt I don't know about preferred...
13:35 audreyt I mean, @_ and %_ is explicit
13:35 agentzh ah, [,] is the capture constructor instead of an ordinary list constructor, i think.
13:35 audreyt \$ is "whatever you pass in"
13:35 Limbic_Region joined perl6
13:35 markstos Why include $self in the signature, instead of just using:
13:35 audreyt agentzh: [,] in a capture is the flattener
13:35 markstos method f (\$args) { self.*$hook([,] =$args) }
13:35 audreyt markstos: because that will pass in self twice
13:35 audreyt as \$ also captures the invocant
13:35 markstos Ah.
13:35 audreyt I think the net result is that it gets one more positional
13:36 audreyt with a warning
13:36 audreyt so don't do that :)
13:36 markstos I'm sure that's a good design, if I think about it some more. :)
13:36 audreyt think it as a moral equivalent of
13:36 audreyt $_[0]->SUPER::meth(@_)
13:36 audreyt look, invocant repeated.
13:36 markstos Got it.
13:37 Limbic_Region audreyt - still triaging or should I run a smoke?
13:37 audreyt Limbic_Region: still triaging but sidetracked into reading agentzh's blog and stuff
13:37 agentzh audreyt++
13:38 Limbic_Region ok, will run a benchmark then to see where Win32 sits
13:39 agentzh LR: you're using GHC 6.5?
13:39 agentzh GHC 6.5 is so hard to download, i've only got 54% after hours. sigh.
13:40 audreyt :-/
13:40 Limbic_Region agentzh - no, 6.6rc
13:40 audreyt practically exactly the samew code, though.
13:40 agentzh ahh
13:40 Limbic_Region agentzh - if you have somewhere that I can upload the code it may be faster
13:40 audreyt agentzh: would axel or flashget or something like that help?
13:40 Limbic_Region I have noticed a significant slow down going directly from the haskell/ghc download site
13:41 agentzh audreyt: will try flashget.
13:41 agentzh currently i'm using firefox to get it.
13:41 agentzh LR: sorry, no such good place. :)
13:42 Limbic_Region ok, well - we are here to help if we can
13:42 agentzh LR: thank you all the same. :)
13:42 Limbic_Region 6.5 from the 19th is almost 20mb bigger than the 6.6rc from the 1st
13:43 audreyt because it includes all the extra pkgs
13:43 audreyt like quickcheck, mtl, network, etc
13:43 Limbic_Region ah, that makes sense - but extralibs is only 2mb
13:43 agentzh oh...i have a lot of classes tomorrow morning. have to bbiab now...
13:43 agentzh night all &
13:44 Limbic_Region is there really that big of a difference from source and compiled
13:44 Limbic_Region sleep well agentzh
13:44 agentzh LR: thanks
13:44 agentzh left perl6
13:44 audreyt Limbic_Region: oh yes.
13:44 audreyt GHC prefers static linking
13:45 audreyt and compiles each module two times, one for profiling and one not
13:45 Limbic_Region jeepers
13:45 audreyt which all makes sense, but yeah.
13:45 Limbic_Region shouldn't complain too much - providing binaries with an .msi installer for Win32 is more than a lot of projects do
13:46 Limbic_Region and disk space is cheap
13:46 Limbic_Region audreyt - just got a cc from simon marlow
13:46 Limbic_Region requesting that the extralibs be included in the nightly build
13:47 audreyt cool!
13:47 audreyt JaffaCake++ Limbic_Region++ [particle]++
13:48 audreyt the GHC team resolved to move fully into modern open source project management style a year ago
13:48 audreyt I think they did well :)
13:48 Limbic_Region I will wait a few days and try the snapshot and see if any of the other problems have cleared up before squawking again
13:48 Limbic_Region I know the squeeky wheel gets the greese, but one doesn't want to become a pain either
13:49 Limbic_Region any guestimate as to the number of failing tests I should see in this smoke?
13:53 nothingmuch hmm
13:54 nothingmuch audreyt: any thoughts on wtf is a method/attr collection in an std mop?
13:54 nothingmuch i'm thinking of implementing a bi-indexed (by value and by name) collection
13:54 nothingmuch 'with a hash and Set::Object
13:54 nothingmuch and that enforces name uniqueness
13:54 nothingmuch but the idea is to keep the name as part of the value
13:54 nothingmuch so that you work with encapslated pair like items
13:54 nothingmuch instead of keeping the name separate
13:55 nothingmuch (for attrs etc it is necessary for an attr to know it's own name)
13:56 ofer0 joined perl6
14:01 audreyt Limbic_Region: sorry was disconnected. guesstimate is 500ish maybe less.
14:01 audreyt nothingmuch: you just descried a Judy Map..
14:01 nothingmuch heh
14:01 nothingmuch impl doesn't really matter to me
14:01 muhmuh joined perl6
14:01 nothingmuch it's more the semantics
14:01 nothingmuch but it's nice to know that there's a ready impl
14:02 audreyt sure; it's a set of (name,val) pairs
14:02 audreyt with the uniqueness constraint being mapFst.
14:02 audreyt that's the semantics you want
14:02 nothingmuch well, i'm more concerned with whether or not the semantics make sense
14:02 nothingmuch e.g. you now say:
14:02 nothingmuch "these are not the semantics you are looking for"
14:03 nothingmuch and i repeat in an empty voice
14:03 nothingmuch or you say "sure"
14:03 nothingmuch and i go on hacking ;-)
14:03 _SamB_bot joined perl6
14:03 audreyt "sure".
14:03 nothingmuch are method sets ordered?
14:03 nothingmuch ever?
14:03 audreyt unlikely
14:04 nothingmuch oh well
14:04 audreyt is attr ordered?
14:04 nothingmuch you can always override
14:04 nothingmuch within the structure potentially
14:04 nothingmuch but it's up to the layout to order them
14:04 nothingmuch if it actually cares
14:04 * nothingmuch dreamt about multiple inheritence slot vtables
14:04 nothingmuch i found a nice O(2n) algorithm for compact vtable allocation
14:04 nothingmuch based on reference counts
14:05 nothingmuch will impl later
14:05 marcus_ hot free slots
14:05 nothingmuch marcus_: yes yes we get the picture =)
14:06 marcus_ nothingmuch: It's been a day now, thought I'd refresh you :P
14:06 nothingmuch =)
14:06 audreyt note that p6 we have a constraint
14:06 audreyt subclass never access parent's private slots dircetly
14:06 audreyt so all subclass can be implemented by delegation
14:07 marcus_ audreyt: that's a relief
14:07 audreyt may or may not be relevant, but I've come to agree with TimToady that it's a wonderful constraint to have.
14:07 nothingmuch will we have protected slots at all?
14:07 nothingmuch i've never actually seen the value in those =/
14:07 nothingmuch wait
14:08 nothingmuch how can a subclass ever access a parent's private slots at all?
14:08 audreyt via accessors
14:08 audreyt like ~everybody
14:08 nothingmuch aren't the accessors private?
14:08 audreyt if they are marked private, then you can't ever see them
14:08 audreyt even if you are subclass
14:08 audreyt again like ~everybody.
14:08 nothingmuch okay
14:08 audreyt in other words, parents do not trust their children by default
14:08 nothingmuch right
14:09 nothingmuch so how can the children access private slots if it can't see an accessor for that slot?
14:09 ayrnieu what's this?  Children?  Private slots?  I'm calling the authorities!
14:09 audreyt nothingmuch: they can't; they must go thru public accessors
14:09 nothingmuch ayrnieu: this is our code language for talking about child pornography
14:10 nothingmuch this is the dichotomy i don't get
14:10 audreyt if there's no public accessor, then they just can't.
14:10 nothingmuch how can a public accessor exist for a private attr?
14:10 nothingmuch does the user have to hand-write it?
14:11 audreyt yes.
14:15 audreyt 16:10 < audreyt> if there's no public accessor, then they just can't.
14:15 audreyt think... uhm, inside-out objects.
14:15 nothingmuch okay
14:15 nothingmuch nevermoose
14:15 audreyt which shares this pattern
14:15 nothingmuch i thought you were explaining something else
14:15 nothingmuch if it has to be hand written then it's Not My Problem
14:15 nothingmuch they are just private
14:15 marcus_ so there's no equivalent to 'protected' in java?
14:15 audreyt okay, good
14:15 nothingmuch protected is the odd bird ;-)
14:15 nothingmuch i think it's like private
14:15 nothingmuch but with a constraint
14:15 nothingmuch err
14:15 nothingmuch like public
14:15 nothingmuch but with a constraint on the method that handles it
14:15 marcus_ http://mindprod.com/jgloss/protectedscope.html
14:15 nothingmuch unrelated subclasses have separate interfaces
14:15 audreyt I think Stoustrup renounced it pretty early on
14:15 nothingmuch and related subclasses will just treat it as a public one in their scope
14:15 audreyt saying it's 1)a mistake 2)the fellow who railroaded it in ended up not using it
14:15 nothingmuch =)
14:15 nothingmuch understanably
14:15 Limbic_Region any guestimate as to the number of failing tests I should see in this smoke?
14:15 audreyt 16:01 < audreyt> Limbic_Region: sorry was disconnected. guesstimate is 500ish maybe less.
14:15 nothingmuch okay, /'me goes back to coding MI.pm
14:15 audreyt have fun :)
14:16 theorbtwo joined perl6
14:28 Limbic_Region still 544 tests failing
14:28 audreyt k
14:28 audreyt will look at it tomorrow
14:28 Limbic_Region 829 skipped
14:29 audreyt there were some new tests too.
14:29 weinig|zZz is now known as weinig
14:29 Limbic_Region k
14:29 Limbic_Region takes less than 25 minutes to smoke so that's good
14:29 audreyt nice!
14:29 audreyt takes 30min on this laptop :/
14:29 * audreyt goes to check if ddrescue finished running
14:30 Limbic_Region this thing has dual 1.73ghz processors and 1gb of memory
14:30 Limbic_Region much better than my desktop and my work machine
14:41 mdiep_ joined perl6
14:41 Limbic_Region heh, we are 1377 commits behind parrot
14:43 plisk joined perl6
14:44 audreyt that's still a long way to go :)
14:45 audreyt can easily take another year or so
14:47 Limbic_Region um, I don't think so
14:47 RyanLee joined perl6
14:47 Limbic_Region compare our current average commit rate to theirs
14:49 audreyt the last 1000 commits in pugs took 25 days
14:50 audreyt last 1000 in parrot took 50
14:51 audreyt at rate of 20 per day, it'd take 70 days
14:51 audreyt or 2~3 months
14:51 audreyt but linear extrapolation only goes so far :)
14:51 mdiep_ joined perl6
14:55 gaal different values of 25 may yield different values of 70
14:55 audreyt by compareison, the last 1000 commits in perl5 took 40 days
14:55 audreyt er
14:55 audreyt by compareison, the last 1000 commits in perl5 took 140 days
14:56 markstos But Perl5 is considered "mature", so should have a lower change rate, I'd expect.
14:56 gaal how many Rs has perl5 had, I wonder?
14:57 markstos And a lot of Perl5 extensions go to CPAN, while Perl 6 extensions largely register in the pugs repo.
14:57 audreyt the last 1000 commits in CPAN took... 30 days, considering each release a commit
14:57 audreyt which is of course unfair.
14:57 audreyt perl5 is at r28779
14:57 gaal this is from 5.000?
14:57 gaal looks pretty low to me
14:58 gaal maybe they started with cvs and moved after a few years?
14:58 audreyt no since 5.003
14:58 markstos but probably with a cvs2svn tool that preserved history.
14:58 audreyt [     1] By: mbeattie                              on 1997/03/28  13:17:33
14:58 audreyt        Log: Perl 5.003 check-in
14:59 gaal (how long did it take to release the first 5.0 since 5 was commenced?)
14:59 mdiep joined perl6
15:01 audreyt planned: 1992
15:02 audreyt first alpha: Jul 93
15:02 audreyt first beta: Aug 94
15:02 audreyt release: Oct 94
15:03 audreyt stable and usable by nonwin32 folks: May 97
15:03 audreyt usable on win32: Jul 98
15:03 audreyt stable on win32: Apr 01
15:03 audreyt something like that.
15:04 audreyt "for a commercial adoption, we really need to stabilize perl 4.1 and get someone to coordinate that"
15:05 audreyt "while larry madly hacks away at perl 5"
15:05 audreyt that's first mention of "perl 5", Jul 91
15:05 audreyt (okay, that's paraphrased: the original text is "Larrydevelops Perl 5"
15:05 audreyt )
15:06 amnesiac joined perl6
15:08 gaal hee :)
15:08 audreyt <TimToady> my mid-life crisis turned out to be a rather pitifully small thing, as mid-life crises go...  all I did was scrap my life's work and start over...
15:08 audreyt as seen on #perl6 this april :)
15:15 mako132_ joined perl6
15:16 bernhard joined perl6
15:17 kanru joined perl6
15:28 markstos Apparently, there's a "Ruby until Perl 6" club: http://www.bofh.org.uk/arti​cles/2006/08/03/ruby-til-6
15:28 lambdabot Title: Ruby 'til 6, http://tinyurl.com/paw6z
15:29 cognominal joined perl6
15:37 markstos Ok, blog post is posted:
15:37 markstos http://pugs.blogs.com/pugs/2006​/09/cgiapp_to_perl__3.html#more
15:37 markstos ... and I should really go outside or something. :)
15:49 prefiks joined perl6
16:01 ludan joined perl6
16:05 marmic joined perl6
16:11 Psyche^ joined perl6
16:15 kanru joined perl6
16:16 iblechbot joined perl6
16:27 Psyche^ is now known as Patterner
16:32 mauke_ joined perl6
16:32 nothingmuch gaal: http://gaal.livejournal.com/192439.html ?
16:42 lectus joined perl6
16:44 lectus Where can I find more information about Perl 6 and parrot? Is it already useable?
16:47 obra lectus: pugscode.org, parrotcode.org pugs.blogs.com planetsix.perl.org are all good places to start
16:47 broquaint See. also http://dev.perl.org/perl6
16:47 lambdabot Title: Perl 6 - perl6
16:48 broquaint Quite.
16:49 mauke joined perl6
16:51 markstos lectus: Also try: http://rakudo.org/perl6/index.c​gi/index.cgi?learn_about_perl_6
16:51 markstos lectus: re: "useable", it depends.  pugs is fairly functional, but slow.
16:54 Aankhen`` joined perl6
17:08 salty-horse joined perl6
17:16 gaal nothingmuch: what
17:17 nothingmuch gaal: i was wtfing
17:23 nothingmuch markstos: want a darcs-module-renamer script thing?
17:23 nothingmuch it darcs gets to a tmpdir, does the mv
17:23 nothingmuch clears up empty dirs with rmdir -p
17:23 nothingmuch and does darcs replace with a token of [\w:]
17:24 nothingmuch and then puts you in the tempdir so you can run tests and push the patch back
17:26 obra nothingmuch!
17:26 obra http://fsck.com/~jesse/todo.pl
17:26 nothingmuch awesometown
17:26 nothingmuch sounds like it wants to be App::C(md|LI)
17:26 nothingmuch i'll have a look after i finishin $hack_session
17:26 nothingmuch obra++
17:26 nothingmuch obra++
17:26 nothingmuch obra++
17:27 nothingmuch hmm
17:27 nothingmuch this meta model stuff is melting my brain
17:28 plisk joined perl6
17:29 markstos nothingmuch: I'll take a look at your darcs thingie, but I'm going back out to do more yard work now.
17:30 obra nothingmuch: it's a script. needs to be self-contained
17:31 nothingmuch obra: fairynuff
17:31 nothingmuch from looking at the code i just got the warm toasty feeling that those apps gave me
17:31 nothingmuch s/apps/modules/;
17:31 obra *nod*
17:31 obra I bet it can use refactoring.
17:32 pasteling "nothingmuch" at 84.108.53.74 pasted "a much uglier script ;-)" (70 lines, 1.4K) at http://sial.org/pbot/19449
17:32 nothingmuch markstos: there you go
17:33 nothingmuch hmm
17:33 nothingmuch i should uuse File::Temp's tempdir =/
17:33 nothingmuch *shrug*
17:33 nothingmuch btw, it needs App::ack installed
17:33 nothingmuch but you can replace the ack with grep -r
17:34 miyagawa_ I love ack
17:34 [particle] ack++
17:35 nothingmuch ack++ # indeed
17:35 markstos nothingmuch: I get it. How long might the paste bot URL keep working?
17:35 nothingmuch markstos: no clue...
17:35 nothingmuch you can always ask for it again
17:35 markstos ok. Thanks!
17:35 miyagawa_ ack++
17:43 baest joined perl6
17:43 weinig is now known as weinig|bbl
17:43 cmarcelo obra: $ua->env_proxy; # for your todo.pl
17:46 salty-horse gaal, ping
17:47 obra cmarcelo: thanks
17:49 obra committed: it'll be in the next release
17:49 obra cmarcelo++
17:52 gaal salty-horse: hi, pong, sorry, gotta leave in a few minutes
17:52 salty-horse gaal, tommorow, then
17:52 gaal and have had a long day at work so no time to fix it
17:53 gaal yeah, i have tomorrow
17:53 cmarcelo obra: :).. utf8 seems to be misbehaving but probably is my env, commenting binmode make it work fine. oh, cool script btw. and HM rocks too :)
17:54 * cmarcelo wonders when HM will get public groups...
17:56 obra it's not at the top of our list right now:/
17:56 obra what perl version are you running?
17:58 iblechbot joined perl6
18:02 cmarcelo 5.8.8.. LANG=pt_BR.UTF-8
18:05 obra hm. I wonder if it's the LANG
18:16 cmarcelo prepending LC_ALL=C LANG=C gives me the same behavior..
18:18 heng joined perl6
18:19 obra ok. how's it failing?
18:21 cmarcelo it outputs garbage instead of some latin chars..
18:24 obra hm. I wonder if your proxy is doing something special
18:29 cmarcelo obra:  that's possible..  i'll check this later when I get home in a proxy-less connection.. however, adding a task with latin chars works fine..
18:30 obra ok.
18:40 b_jonas joined perl6
18:41 b_jonas left perl6
19:01 ruz_ joined perl6
19:02 onsen joined perl6
19:11 mako132_ joined perl6
19:12 polettix joined perl6
19:25 nothingmuch_ joined perl6
19:25 nothingmuch_ is now known as nothingmuch
19:26 nothingmuch joined perl6
19:28 lectus Can perl 6 code be compiled to .exe?
19:29 markstos lectus: not that I'm aware of.
19:31 larsen joined perl6
19:38 nothingmuch actually...
19:38 nothingmuch if that works there was a pugscc
19:38 nothingmuch but it's prolly defunct by now
19:42 integral parrot used to have a thing where it's JIT produced a .exe
19:42 integral (mono has this feature now too)
19:44 leo indead, but it's not tested beyond compiling hello.pasm to hello.o{,bj} and linking that
19:45 wolverian in dead :)
19:45 integral and pugs is also shakey at compiling to parrot
19:46 leo wolverian: just pining for the fjords
19:51 miyagawa_ joined perl6
20:06 [particle] left perl6
20:07 pasteling "marktstos" at 12.176.101.89 pasted "any workarounds for passing named arguments through ?" (18 lines, 513B) at http://sial.org/pbot/19450
20:07 markstos bbiab
20:08 onsen_ joined perl6
20:24 weinig|bbl is now known as weinig
20:35 kanru joined perl6
20:38 [particle] joined perl6
20:57 _SamB_bot joined perl6
21:00 _SamB_bot joined perl6
21:10 crem joined perl6
21:10 svnbot6 r13024 | markstos++ | [t/blocks/return.t]
21:10 svnbot6 r13024 | markstos++ | Add a smart link, and move a lonely to test to a location with some company.
21:10 _SamB_bot markstos's karma raised to 1.
21:10 _SamB_bot markstos's karma raised to 2.
21:11 markstos SamB: Are the karma bot notices necessary? They look like noise to me.
21:12 leo indeed - totally unhelpful
21:12 SamB oh, sorry...
21:12 SamB @part #perl6
21:12 _SamB_bot left perl6
21:12 ayrnieu karma bots that respond to karma only discourage use of karma.
21:12 SamB hmm
21:12 SamB well, I'll have to talk about that with dons...
21:13 SamB lambdabot crashed or froze and mine has some experimental code in it...
21:15 SamB I should also add @karma-on and @karma-off or something...
21:15 SamB it is extremely unhelpful when I don't even have a useful karma map...
21:16 leo and not respond to @array[$x] = $y ;)
21:16 markstos ?eval sub foo { return 1; } foo();
21:16 evalbot_13016 is now known as evalbot_13024
21:16 evalbot_13024 1
21:22 svnbot6 r13025 | markstos++ | [t/blocks/return.t]
21:22 svnbot6 r13025 | markstos++ | Another test consolidation for 'return' tests
21:23 SamB what is with evalbot changing nicks like crazy anyway?
21:24 markstos SamB: It helpfully includes the subversion revision it's name, to tell you exactly which pugs is being used.
21:25 markstos pugs is constantly being rebuilt for each new revision. So as long as their are commits are happening,
21:25 markstos evalbot will keep changing it's name.
21:25 markstos s/it's/its/
21:25 SamB ah
21:26 SamB that sounds a lot more useful than what I thought
21:26 * SamB wonders if an "r" would make that clearer
21:27 * markstos agrees on that point
21:28 nothingmuch audreyt: ping
21:29 markstos nothingmuch: It's 5:30am in her time zone...
21:29 nothingmuch she used to be worse at deciding when to sleep ;-)
21:29 markstos I have it easy, then-- sleep decides for me. :)
21:29 svnbot6 r13026 | markstos++ | Add a note about related tests and spec entries.
21:30 * nothingmuch wonders whether to implement role as a role or as a class ;-)
21:30 nothingmuch class is a role
21:30 nothingmuch but roles are stupider
21:30 nothingmuch liskov should suffice
21:31 markstos SamB: if you want to add the "r", look in: examples/network/evalbot/evalbot.pl that's the evalbot script.
21:31 nothingmuch hmmi'll go with a role for consistency
21:31 markstos My question about roles is: Why don't they have an explicit export/import list ?
21:32 nothingmuch because a role is like a java interface
21:32 markstos It's nice to be able to easily find where methods are coming from, and seeing  does Dog <fetches_bone> could help with that.
21:32 nothingmuch you can't do just part of it
21:32 nothingmuch i think that's for the debuggetr
21:32 nothingmuch or intellisense
21:33 nothingmuch to decide
21:33 nothingmuch i don't wnat to update things in two places
21:33 nothingmuch and the way roles are defined is such that you cannot do them partially
21:33 leo roles are used to compose classes, export @all is default, import doesn't make any sense
21:33 markstos Can I inspect a method with  .META or something and have it tell me that it came from a role ?
21:33 nothingmuch or they are more like mixins
21:33 nothingmuch yes
21:33 nothingmuch theoretically, that is
21:33 * nothingmuch is working on making that be so ;-)
21:34 markstos I understand what roles are good for-- we use that pattern for CGI::App  plugins in P5.
21:35 jferrero joined perl6
21:37 markstos I don't see any tests for "the return function", so I'll add a few. And then I need to leave for a grill out.
21:51 svnbot6 r13027 | markstos++ | [t/blocks/return_function.t]
21:51 svnbot6 r13027 | markstos++ | New tests to for S06/"The return function", which didn't have other tests that I could find.
21:54 * SamB wonders where his commit message went
21:54 svnbot6 r13028 | SamB++ | Add "r" to revision in evalbot's nick (please restart it!)
21:54 SamB ah, there it is ;-)
21:54 nothingmuch won't evalbot restart itself?
21:55 SamB nothingmuch: well, I changed something that looks like it runs long-term
21:55 SamB ?eval 1
21:55 evalbot_13024 is now known as evalbot_13026
21:55 evalbot_13026 1
21:55 nothingmuch hmm
21:56 nothingmuch URGHHHHH
21:56 nothingmuch my mind is melting
21:56 SamB oh no!
21:56 nothingmuch yes
21:56 SamB quick, stick your head in the freezer!
21:56 nothingmuch roles have no slots, right?
21:56 nothingmuch because they can't be really instantiatede
21:56 nothingmuch for an attr to compile it's methods
21:57 nothingmuch you need to give it slots to work on
21:57 nothingmuch but a role has none
21:57 nothingmuch i think it's time for another abstraction
21:57 nothingmuch attrs make accessors
21:57 nothingmuch which themselves compile down to methods when presented with slots
21:57 nothingmuch however, that uglifies the whole thing
21:58 nothingmuch since the various accessors are given all the slots, when they could be getting them conveniently from the instance
21:58 nothingmuch but then how do you know which accessors the attr will generate without the slots?
21:58 nothingmuch AAAH
21:58 nothingmuch marcus_: that's your cue
21:59 nothingmuch say something about how ORM meta roles will need a dirty slot
21:59 nothingmuch to know whether or not it needs to write to the DB ;-)
21:59 * nothingmuch becomes a bowl of soup
22:01 TreyHarris "slot" != "attribute"?  roles in Perl 6 can have attributes, see S12
22:01 nothingmuch slot != attribute
22:02 nothingmuch an attr is a high level definition thing
22:02 nothingmuch a slot is something that is given to an attr by the class's meta layout
22:02 nothingmuch so that the attr may store it's data in the instance
22:02 nothingmuch the attr doesn't know about the instance implementation details, only the layout and the slots know
22:02 nothingmuch the attrs talk about fields, which they need
22:02 TreyHarris ok, so mixing in a role might cause the class's slots to change
22:02 nothingmuch yes, of course
22:03 nothingmuch it may add to the attributes
22:03 TreyHarris but the role itself has no slots
22:03 nothingmuch that's what I'm undecided on
22:03 * TreyHarris pats nothingmuch on the head and clucks sympathetically
22:03 nothingmuch heh
22:04 TreyHarris that's probably all the good i'm going to do for you ;-)
22:04 * nothingmuch goes to think using his bass
22:04 nothingmuch heh =)
22:04 nothingmuch i need to trace the path in my head
22:04 nothingmuch to see if attrs are ever needed in the declarative stage of role meta stuff
22:06 mako132_ joined perl6
22:23 vsoni joined perl6
22:24 vsoni left perl6
22:27 weinig joined perl6
22:29 mako132_ joined perl6
22:48 miyagawa_ joined perl6
22:54 TreyHarris perlbot: #perl6
22:54 perlbot #perl6 is for development of the Perl 6 compiler; #perl is for general Perl questions and discussion
22:54 TreyHarris perlbot: #perl6 logs
22:54 perlbot http://colabti.de/irclogger/irclogger_logs/perl6
23:06 ajs_home joined perl6
23:24 Khisanth joined perl6
23:36 lambdabot joined perl6
23:54 miyagawa_ joined perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs