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
|