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