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.
markstos Here's a variation without the infinite loop. It illustrates that an object method is being called on a lexical hash: 00:01
?eval class Foo { method a { my %s; %s.b } method b { 1 } } say Foo.new.a;
evalbot_r13076 OUTPUT[1 ] Bool::True
markstos That seems wrong to me.
svnbot6 r13077 | markstos++ | Add failing test for: method a { my %s; %s.b } method b { 1 } 00:12
r13077 | markstos++ | (%s should be able to call the b method, because it is not a %b object)
r13077 | markstos++ | Could use peer review for spec compliance, but it looked wrong to me!
markstos It doesn't seem like this should work either: 00:15
?eval class Foo { method a { my %s; b(%s) } method b { 1 } } say Foo.new.a;
00:15 evalbot_r13076 is now known as evalbot_r13077
evalbot_r13077 OUTPUT[1 ] Bool::True 00:15
markstos The "b" method is being invoked, even though b(%s) doesn't look like a method-call syntax. 00:16
SamB smiles at his r ;-) 00:18
markstos Samb: huh?
SamB markstos: the one I added to evalbot's nickname ;-)
markstos Ah right. I saw that patch go by. 00:19
theorbtwo BS looks a lot like a method call syntax to me. 00:22
svnbot6 r13078 | markstos++ | New failing test: 'meth(%h) is not a valid methd call syntax'
r13078 | markstos++ | Could use peer review for spec compliance.
theorbtwo Are you sure b(%s) isn't a valid method call syntax? 00:23
00:25 nekokak joined
markstos no. Are you sure it is valid ? 00:26
I think this settles it for me: "Indirect object notation now requires a colon after the invocant if there are any arguments" 00:28
If override a builtin method in an object, how I call the bultin version from within the override? Basically, I'm still stuck on my yaml re-defition from above. 00:34
class Foo { method yaml { my %s; return %s.yaml } } # how to call the standard ".yaml" there ? 00:35
avar multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n*($n-1)! } <- in S06, how does this make sense? 00:48
It uses the ! postfix which it's defining in the definition
theorbtwo Ah, but it doesn't always run it. 00:49
2!
The test is false, so it's 2*(2-1)!. Evaluate that 1!, the test is true, and it's 1.
OTOH, you might get a "deep recursion" warning if you try to compute 150! that way. 00:50
Of course, you'd also run out of memory trying to store a number that big.
(OK, not really.)
avar multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } would work
theorbtwo You don't actually need the test on there at all. 00:51
avar the S06 code does not compile under pugs, and I don't see how it could be logical anyway, the definition for the ! postfix uses the ! postfix
theorbtwo It's legal to call a subroutine inside it's own definition, why not an operator? 00:52
avar eval: multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } my $n = 5; say $n*($n-1)!
buubot avar: Error: Search pattern not terminated or ternary operator parsed as search pattern at eval line 1.
avar eval? multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } my $n = 5; say $n*($n-1)!
theorbtwo This shouldn't be taking that long... 00:53
Oh, you used a ?
eval:
avar what eval: $] 00:54
buubot what: 5.008008
avar I mean the perl 6 one
eh, how do I call that
theorbtwo ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } my $n = 5; say $n!
00:54 evalbot_r13077 is now known as evalbot_r13078
evalbot_r13078 OUTPUT[120 ] Bool::True 00:54
00:54 hikozaemon joined
theorbtwo ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n*($n-1)! } my $n = 5; say $n! 00:54
evalbot_r13078 Error: unexpected "!" expecting term postfix, comment, operator, "\187xx\171", ">>xx<<", "\187+&\171", "\187+<\171", ">>+&<<", ">>+<<<", "\187+>\171", "\187~&\171", "\187~<\171", "\187~>\171", "\187?&\171", ">>+><<", ">>~&<<", ">>~<<<", ">>~><<", ">>?&<<", "\187*\171", ">>*<<", "\187/\171", "\187%\171", "\187x\171", ">>/<<", ">>%<<", ">>x<<", "xx", "+&", "+<", "+>", "~&", "~<", "~>", "?&", "*", "/", "%", "x", "??", postfix conditional, postfix lo
avar ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } my $n = 5; 00:55
evalbot_r13078 \5
avar ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! [*] 1 .. $n } 5!
evalbot_r13078 120
theorbtwo Yeah, I expect pugs isn't putting the new operator in the table until after the definition is finished parsing, which shouldn't be neccessary.
[particle] ?eval multi sub postfix:<!> (Int $n > 1) { [*] 1 .. $n } 5!
evalbot_r13078 Error: unexpected ">" expecting comment, "?", "!", trait, "=", "-->" or ")"
theorbtwo (It should go in when the declaration part is finished. 00:56
avar theorbtwo: That's not what I mean, I don't see how it could make sense under any implementation
theorbtwo [particle]: I think you need to write that as a where clause, or did that change?
[particle] i'm checking the spec now
theorbtwo ?eval multi sub fac (Int $n) { $n < 2 ?? 1 !! $n*fac($n-1) }; fac(5)
evalbot_r13078 120 00:57
theorbtwo avar: It's just garden-variety recursion.
avar Ah, of course
If you put it that way:)
00:58 NamelessOne joined 01:00 NamelessOne joined
[particle] ?eval multi sub fac (Int $n) { $n < 2 ?? 1 !! $n* &?ROUTINE.name($n-1) }; fac(5) 01:02
evalbot_r13078 Error: No compatible subroutine found: "&name"
[particle] ?eval multi sub fac (Int $n) { $n < 2 ?? 1 !! $n* &?ROUTINE($n-1) }; fac(5)
evalbot_r13078 120
[particle] kewl
hrmm, are there only type constraints on params? 01:04
avar ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } 5! 01:05
evalbot_r13078 120
[particle] &?ROUTINE allows you to do tail recursion in anon subs/ops
*subs/methods
so it's not really needed in this case, but it's kewl :) 01:06
avar ?eval my $fac = sub { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) } $fac(5) 01:09
evalbot_r13078 Error: unexpected "$" expecting comment, operator, "\187=>\171", ">>=><<", "=>", "=", ".=", "?^=", "?|=", "~^=", "~|=", "~&=", "+^=", "+|=", "+&=", "~>=", "~<=", "+>=", "+<=", "^^=", "//=", "&&=", "||=", "xx=", "**=", "\165=", "&=", "^=", "|=", "Y=", "x=", "%=", "/=", "*=", "-=", "+=", ":=", "~=", postfix conditional, postfix loop, postfix iteration, ";" or end of input
avar ?eval my $fac = sub { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) }; $fac(5)
evalbot_r13078 120
[particle] :)
?eval my $fac = sub(Int $x) { $x < 2 ?? 1 !! $x * &?ROUTINE($x - 1) }; $fac(5) 01:10
01:10 Aankhen`` joined
[particle] ?eval my $fac = sub(Int $x) { $^x < 2 ?? 1 !! $^x * &?ROUTINE($^x - 1) }; $fac(5) 01:11
rats
avar ?eval my $fac = sub(Int $x) { $^x < 2 ?? 1 !! $^x * &?ROUTINE($^x - 1) }; 01:12
evalbot_r13078 Error: unexpected ";" expecting comment Cannot mix placeholder variables with formal parameters
01:12 bcorn joined
avar ?eval my $fac = sub(Int $x) { $^X < 2 ?? 1 !! $^X * &?ROUTINE($^X - 1) }; $fac(5) 01:12
evalbot_r13078 Error: unexpected ";" expecting comment Cannot mix placeholder variables with formal parameters
avar eh, fleh
Anyway, it seems to me that there's no testcase for &?ROUTINE inside an op 01:13
[particle] ?eval my $fac = sub { $^x < 2 ?? 1 !! $^x * &?ROUTINE($^x - 1) }; $fac(5)
can't hurt to add! and nice that it works 01:14
avar should it be in operators/operator_overloading.t or magicals/sub.t ? 01:15
[particle] i'd put it closer to the &?ROUTINE def, so magicals/sub.t
avar mm 01:16
actually S06 says:
C<&?ROUTINE> is always an alias for the lexically innermost C<Routine>
(which may be a C<Sub>, C<Method>, or C<Submethod>)
that presumably includes sub *fix*:<foo> ?
[particle] yep 01:17
still, it's good to have one more test to cover that case 01:18
avar tries to add a test case 01:19
01:21 bcorn joined
[particle] ?eval multi sub postfix:<!> (Int $n) will do { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } 5! 01:21
evalbot_r13078 Error: unexpected "w" expecting comment, bare trait, trait or block
[particle] ?eval multi sub postfix:<!> (Int $n) returns(Int) { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } 5! 01:22
evalbot_r13078 Error: unexpected "r" expecting comment, qualified identifier, trait or block
[particle] doesn't like traits, eh?
?eval multi sub postfix:<!> (Int $n) is rw { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } 5! 01:23
evalbot_r13078 120
[particle] ah, doesn't like *some* traits
01:25 rodi joined
[particle] ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } -5! 01:26
evalbot_r13078 1
[particle] ?eval multi sub postfix:<!> (Int $n) PRE{ $n > 0 } { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } -5! 01:27
evalbot_r13078 Error: unexpected "P" expecting comment, bare trait, trait or block
[particle] ?eval multi sub postfix:<!> (Int $n) is PRE{ $n > 0 } { $n < 2 ?? 1 !! $n * &?ROUTINE($n-1) } -5!
evalbot_r13078 Error: unexpected "$" expecting operator or "!!"
[particle] probably also unimp 01:28
markstos particle: do you have a local pugs ? the repeated evalbot workout is a litte noisy.
01:28 lightstep joined
[particle] i'm done playing, sorry 01:28
and no, pugs won't build on win32 right now :(
markstos Sorry for you then.
theorbtwo ?eval multi sub postfix:<!> (Int $n where { $n > 0 }) { $n*2 }; foo(3) 01:29
evalbot_r13078 Error: unexpected "w" expecting comment, "?", "!", trait, "=", "-->" or ")"
theorbtwo OK, that was my only go.
[particle] where isn't listed as a parameter trait :(
markstos I encourage you to play, but if you way to experiment offline, that could be nice to use for repeated testing. But apparently, you don't right now. 01:30
01:31 ruz joined
[particle] oh, i see in the polymorphic types section it may be possible to use a where {} clause 01:31
markstos: sure
oh, theorbtwo, your code is wrong anyway
avar someone here have commit access and can run make test? 01:32
[particle] you have foo(3) instead of 3!
avar I made two more test cases, but I can't run make test here so they might possibly be broken:)
theorbtwo Er, so it is.
[particle] no commit bit avar? that should be fixed! wish i had the power...
theorbtwo checks if he still does.
avar I can commit 01:33
[particle] oh, just commit then
avar I just might break stuff since I haven't actually tested it:)
[particle] if something breaks, someone else will rollback
and it's pretty doubtful two tests will cause any major breakage
avar ?eval sub postfix:<!> { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) } my $result3 = 3!; $result3
evalbot_r13078 Error: unexpected "!" expecting "_", fraction, exponent, term postfix, comment, operator, "\187=>\171", ">>=><<", "=>", "=", ".=", "?^=", "?|=", "~^=", "~|=", "~&=", "+^=", "+|=", "+&=", "~>=", "~<=", "+>=", "+<=", "^^=", "//=", "&&=", "||=", "xx=", "**=", "\165=", "&=", "^=", "|=", "Y=", "x=", "%=", "/=", "*=", "-=", "+=", ":=", "~=", postfix conditional, postfix loop, postfix iteration, ";" or end of input
[particle] but if you want to nopaste a patch, i'll look it over 01:34
avar ?eval sub postfix:<!> { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) } 3!
evalbot_r13078 Error: unexpected "!" expecting "_", fraction, exponent, term postfix, comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input 01:35
[particle] avar: where's the multi?
avar ?eval multi sub postfix:<!> { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) } my $result3 = 3!; $result3
evalbot_r13078 Error: unexpected "!" expecting "_", fraction, exponent, term postfix, comment, operator, "\187=>\171", ">>=><<", "=>", "=", ".=", "?^=", "?|=", "~^=", "~|=", "~&=", "+^=", "+|=", "+&=", "~>=", "~<=", "+>=", "+<=", "^^=", "//=", "&&=", "||=", "xx=", "**=", "\165=", "&=", "^=", "|=", "Y=", "x=", "%=", "/=", "*=", "-=", "+=", ":=", "~=", postfix conditional, postfix loop, postfix iteration, ";" or end of input
svnbot6 r13079 | markstos++ | Fix some failing tests in t/params.t for CGI.pm.
r13079 | markstos++ | Also, add new as_yaml method get the params back as a YAML stream.
avar argh
[particle] why isn't it seeing term postfix? 01:36
avar don't know what, if anything, I'm doing wrong there 01:37
[particle] well, before you had a sig, now you don't 01:38
also, before you didn't assign to a var
5! instead of my $foo = 5!;
it'd be nice to have a #perl6-eval channel (or something) to play with evalbot more privately 01:39
avar ?eval multi sub postfix:<!> { @_[0] < 2 ?? 1 !! @_[0] * &?ROUTINE(@_[0] - 1) }; 5!
evalbot_r13078 Error: unexpected "!" expecting "_", fraction, exponent, term postfix, comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
[particle] so maybe it doesn't like @_[0] 01:40
pfenwick Perhaps just being able to /msg evalbot and get a private reply could be enough? Easier than having a new channel.
[particle] perhaps without a sig it's not expecting any args?
01:40 lightstep left
[particle] true, paul 01:40
avar ?eval multi sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n * &?ROUTINE($n - 1) }; 5!
evalbot_r13078 120
avar so it fails without a paramater list
[particle] you could try implicit params ... no sig, and $^n 01:41
01:41 weinig|bbl is now known as weinig
[particle] but i don't know if it'll work either 01:41
avar those look like they're mandatory if I'm reading S06 somewhat correctly
at least it has no examples of an overloaded operator definition without a paramater list 01:42
?eval sub postfix:<!> (Int $n) { $n < 2 ?? 1 !! $n * &?ROUTINE($n - 1) }; 5!
01:42 evalbot_r13078 is now known as evalbot_r13079
evalbot_r13079 120 01:42
[particle] ok, i guess placeholder vars ($^n etc) are for blocks only
*bare blocks
avar ?eval my $ret; { package Bar; sub bar { return &?ROUTINE.name } $ret = bar(); } $ret 01:44
evalbot_r13079 Error: unexpected "$" expecting comment, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
avar ?eval my $ret; { package Bar; sub bar { return &?ROUTINE.name } $ret = bar(); }; $ret
evalbot_r13079 \"\&Bar::bar"
svnbot6 r13080 | avar++ | * Further testcases for &?ROUTINE, sorry if these break 01:50
avar [particle]: could you see if these work? It's magicals/sub[name]?\.t 01:51
[particle] i can't compile pugs :(
but i'll have a look at the diff
avar avar.lir.dk/diff.txt 01:53
[particle] they look good. why do you think your test is redundant? 01:55
oops 01:56
subname test looks bad
package Bar; sub bar {...} is( bar(), '&Bar::foo', ...) # what's wrong here?
seems like a cut-and-paste-o 01:57
avar oh noes!:)
avar fixes
svnbot6 r13081 | avar++ | * That's 'bar' apperently, not 'foo', danm you metasyntactic variable names 02:02
02:05 crem joined
avar [particle]: better?:) 02:05
markstos Is there a way to see the stack trace attached to "$!" without calling die? 02:07
[particle] yep better. avar++ 02:09
markstos: $!.say ?? 02:13
oh, not value, stack trace
i don't know of any method on $! for that 02:14
but maybe .say will do what you want
02:19 ruz joined
svnbot6 r13082 | audreyt++ | * Attempt to fix ActivePerl embedding by restoring -I/-D/-L flags. 02:23
02:32 xinming joined 02:46 ruz joined 02:54 xinming joined 02:56 bsb joined 02:58 dduncan joined 03:06 dduncan left 03:12 nachos joined
nachos Hi! 03:12
What is ment by 'coroutines' ?
saw it on the p6 page, don't understand what it is. 03:13
TreyHarris ?seen markstos
lambdabot I saw markstos leaving #perl6 43m 52s ago, and .
TreyHarris ah.
03:17 Trey2 joined
Trey2 ? 03:17
lambdabot Trey2: You have 1 new message. '/msg lambdabot @messages' to read it.
TreyHarris @tell markstos I think the meth(%s) behavior is a result of pugs currently only doing arg-num checking against signatures presently. meth() has one argument, self. so when you call meth(%s), it works. the $obj.s.b behavior is definitely broken separately, though. 03:20
lambdabot Consider it noted.
TreyHarris lambdabot: except s/currently // ;-) 03:21
audreyt nachos: en.wikipedia.org/wiki/Coroutine 03:35
nachos Thanks audreyt 03:37
Do you know of any p6 coroutine examples that i can have a look at, audreyt ?
They sound _very_ interesting. 03:38
audreyt t/unspecced/coro.t 03:39
in the Pugs tree
nachos thanks
audreyt or better, search.cpan.org/dist/Coro/
lambdabot Title: Marc Lehmann / Coro - search.cpan.org
audreyt np :)
nachos audreyt: any estimation on when p6 is due to be released ( stable version ) ? 03:40
audreyt nachos: it's not up for me to say 03:41
p6 the language will become "stable" only after sufficient people field-test it
which will happen over the next 12 months
and Pugs typically lags spec changes for about 3 months, depending on the size of the change 03:42
however the good news is that the syntax is the least stable of the bunch 03:43
the lower-level semantics, as provided by Moose.pm or Pugs::Compiler::Rule on perl5, is quite useful right now 03:44
and will probably stabilize within this year
so if you just want the semantics, consider using those modules from CPAN on existing perl5 codebase :)
nachos cool, thanks audreyt! 03:48
audreyt np :) 03:49
obra morning audrey
audreyt greetings obra
audreyt is fighting with travelocity to book OOPSLA+YAPC::SA tickets 03:50
obra is orbitz any less evil?
or do they only book .us originating travel?
audreyt well it's .us originating... 03:52
obra oh. then start with beta.itasoftware.com
audreyt travelocity still yields lowest price. 03:55
obra impressive.
beta.ita is supposed to be loaded with all published prices.
audreyt thing is there's not much choice in <->sao paulo
obra heh 03:56
audreyt so they found the same things
and travelocity seems to have a $99/each discount
obra not bad
"damn good"
03:58 weinig is now known as weinig|zZz 04:06 nothingmuch_ joined 04:26 pinPoint left
nothingmuch_ morning 04:32
04:32 nothingmuch_ is now known as nothingmuch 04:37 gaal joined
nothingmuch gaal: what is the state of p6ast? 04:37
it's not yet in use, right?
audreyt it is 04:38
partly
?eval :($x)
04:38 evalbot_r13079 is now known as evalbot_r13082
evalbot_r13082 CCall "perl" CaptMeth {c_invocant = VPure (SigSubSingle {s_requiredPositionalCount = 1, s_requiredNames = {"x"}, s_positionalList = [MkParam {p_variable = "$x", p_types = [], p_constraints = [], p_unpacking = Nothing, p_default = <Param.Default>, p_label = "x", p_slots = {}, p_hasAccess = AccessRO, p_isRef = False, p_isContext = False, p_isLazy = False}], s_namedSet = {}, s_slurpyScalarList = [], s_slurpyArray = Nothing, s_slurpyHash = Nothing, s_ 04:38
audreyt ?eval vv "x"
evalbot_r13082 CCall "perl" CaptMeth {c_invocant = VPure (MkStr "x"), c_feeds = [MkFeed {f_positionals = [], f_nameds = {}}]}
04:38 christopher joined
nothingmuch ah 04:38
audreyt ?eval \($x) 04:39
evalbot_r13082 Error: Undeclared variable: "$x"
audreyt ?eval \(1,2,3)
evalbot_r13082 CCall "perl" CaptMeth {c_invocant = VPure (CaptSub {c_feeds = [MkFeed {f_positionals = [VPure (IFinite 1),VPure (IFinite 2),VPure (IFinite 3)], f_nameds = {}}]}), c_feeds = [MkFeed {f_positionals = [], f_nameds = {}}]}
nothingmuch audreyt: will you be free for brain picking today?
audreyt yes I think 04:40
after food that is
what time is it for you now?
nothingmuch 7:40 am
audreyt oh. then definitely
nothingmuch okies 04:41
nothingmuch is going to make a big breakfast
04:46 avar joined
nothingmuch hmm... weird YAML::Syck bug on RT 04:48
does exporter have a dynaloader?
or does xsloader try to add one?
s/dynaloader/AUTOLOAD/;
audreyt huh? 04:49
neither
nothingmuch that's what I thought =/
rt.cpan.org/Public/Bug/Display.html?id=21361
lambdabot Title: #21361: Use of inherited AUTOLOAD for non-method YAML::Syck::Load&#40;&#41;, tinyurl.com/k9egw
nothingmuch huh
i don't *have* a line 45 in my Syck.pm 04:50
05:21 bsb left 05:32 Fr33b33r joined
gaal spooky 05:34
05:35 Fr33b33r left
nothingmuch spooky? 05:36
gaal The ghost line 45 thing. 05:37
also, the fact that you woke up before eight
audreyt: moose 05:38
audreyt moose
gaal existential coerce and 'Maybe PureSig'
src/Pugs/Internals.hs:194 05:39
is it wrong?
sure looks it, because when using it in src/Pugs/Parser.hs:1462 I get an error :) 05:40
audreyt that is the same as Typeable.cast
you want to fromJust and then cast
or, better
fromTypeable :: Monad m, Typeable a, Typeable b => a -> m b 05:41
gaal it's *so good* to have make ghci working :) 05:42
audreyt fromTypeable x = case Typeable.cast x of
Just y -> return y
Nothing -> fail $ "Cannot cast from " ++ typeOf x ++ " to " ++ typeOf (undefined :: b) 05:43
gaal trying
audreyt except "show typeOf " instead of "typeOf", and you need to write foralls
fromTypeable :: forall m a b. Monad m ...
yeah, ghci easily makes it 10x easier for me :)
05:43 dvorak_ joined
nothingmuch gaal: the second part was easy, i just went to bed before 3 05:44
nothingmuch was asleep at 00:<something> or so
audreyt also, use fromTypeable in the RuleParse monad 05:46
foo <- fromTypeable bar
is recommended
gaal wtf: <no location info>: file name does not match module name `Main'
audreyt you hit ghci bug 05:47
quit and make ghci again
gaal same err
I'll clean up
audreyt say what?
wow.
gaal actually i'll strace to see which .o triggers it. :p
audreyt tries building pugs with crazy optimization flags
thanks to the crazy inlining paper you referred me to :) 05:48
gaal :)
fun paper, isn't it
audreyt yup
gaal i've only gottent to the easy part so far
uh, looks like i need a clean. 05:51
btw: make ghci is broken when PUGS_EMBED e parrot
er, parrot e PUGS_EMBED 05:52
also, do we need this in the 'clean' target? 05:53
find src -name \*.hi -o -name \*.o | xargs rm
audreyt fixed
we probably do, yes 05:54
gaal except that's not portable :)
svnbot6 r13083 | audreyt++ | * fix ghci vs parrot embed
audreyt just add those to clean_files 05:55
gaal that doesn't grok /**/ paths, does it?
nothingmuch what is the inlining paper?
audreyt it does. 05:56
er wait
gaal @google secrets ghc inliner
lambdabot research.microsoft.com/~simonpj/Papers/inlining/
audreyt you mean explicit **
lambdabot Title: Simon Peyton Jones: papers
audreyt no 'course not
but you can /*/*.{hi.o}* /*/*/ etc 05:57
gaal sure
06:04 perlbot joined 06:06 perlbot joined
nothingmuch i need a sanity check 06:12
i'm expressing submehtods as methods wrapped in a Method::Private thing
a Method::Private contains a list, visible_to
this compiles to a responder interface that has a table for regular methods 06:13
and a subtable for every specially treated caller context
(visible_to entries)
if a private method exists in the subtable, it will be used
always falling back to the "regular" list
does that make sense?
private attrs generate submethod accessors 06:14
and lastly, the punchline
attribute grammars are just roles
which are compiled down to private attrs viewable only from other ag-instance roles belonging to the same AG
audreyt sane. 06:16
a set, though, not a list.
(visible_to ordering not important)
nothingmuch list is perl 5ism
*nod* 06:17
it'll be a Util::Collection
audreyt good enough
nothingmuch which is internally a Set::Object + Hash
so unordered behavior is enforced ;-)
audreyt all this seems to be very moose.
gaal oops, I gotta moose for a bit
see ya &
nothingmuch moose-bye!
audreyt: did you mean Moose or moose? 06:18
that is, was moose an adjective or noun?
audreyt adjective I think 06:20
nothingmuch ok =)
a little more on AGs:
audreyt which makes it a role
nothingmuch heh
audreyt I think roles are the counterpart to adjectives in perl 06:21
nothingmuch type AG ( name, instances );
instances is a set of classes
audreyt has been reading the Synopses of the English language
it's called "The Element of Style"; it's shorter than our synopses ;)
nothingmuch every class that is in the instance list has an ag instance for the AG
i think i saw that book once at $office
our doc writer has it
i was fascinated
but i didn't know him well so i didn't feel comfortable lending it
audreyt spec writers would do well to write specs like that book :) 06:22
nothingmuch ag instance meta objects isa role
i'll add it to my wish list
an ag can inherit another ag
when you compose an ag, it looks at all it's inheritence thingies, and merges the ag roles for every instance with role composition
that is, ag x inherits ag y, 06:23
class a { instance ag x { ... } , instance ag y { } }
in this example instance ag y implicitly does instance ag x
all the merged role methods are then emitted as private methods visible to the instances of that AG 06:24
such that self.foo as an attr in the ag will shadow self.foo the method
at runtime an ag <foo> is instantiated
synthesized attrs are just method calls
but are auto memoized 06:25
foo.parent can be a synthesized attr of a child to get any inherited attr
if it's not provided then the call stack will be searched upwards
calling $obj.parent_for($child)
if thhe entire stack can't place the child an error is thrown
aside from that all attrs are computed lazily
sounds fair?
audreyt I need to see tests to make sense out of it 06:26
but it sounds fair.
nothingmuch is implementing private methods right now 06:27
once i have private attr tests passing
i will write the ag meta model
it should be almost no code
then i will port luqui's tests
after that i want to have a go at emitting simple responder interface back into p5-space 06:28
www.amazon.com/Elements-Style-Illus...mp;s=books ?
or www.amazon.com/Elements-Style-Fourt...mp;s=books ?
i'll go for the illustrated
i like pictures =)
audreyt sure, though I read the latter 06:34
jdv79 what's that for? think i used that in college... 06:41
06:43 SubStack joined 06:47 iblechbot joined
nothingmuch i love writing 'sub merge' 06:48
i dunno why ^_^
audreyt: please definie the notion of "from" 06:54
in visible_from
should it be a namespace?
a meta object?
i mean, what is conveninent for the runtime to provide from the call stack
07:04 dvorak joined
audreyt absolutely qualified namespace ID 07:12
07:25 kane-xs joined 07:30 avar joined
svnbot6 r13084 | trey++ | [t/unspecced/coro.t] 07:31
r13084 | trey++ | Probably not a good idea to overlay C<take>
r13084 | trey++ | with an unrelated sub, so renamed it.
nothingmuch audreyt: #moose please
TreyHarris moose
nothingmuch moose moose 07:33
TreyHarris nothingmuch: why should "method a { my %s; %s.b } method b { 1 }" fail? because methods without an explicit invocant have an implicit invocant typed as ::?CLASS ? so change method b to "method b (Any $self:) { 1 }" and then the %s.b call should work? 07:38
nothingmuch becase the class of %s.b is not necessarily the one that you are defining 07:39
%s.b dispatches to Hash or whatever
TreyHarris right, but assuming Hash::b does not exist 07:40
nothingmuch well
Hash doesn't inherit ::?CLASS
TreyHarris then it will sub fallback to b(%s), which would work if b's invocant was specified as type Any?
or is the colon required even if there are no non-invocant args? 07:41
nothingmuch i doubt it
it's not OO per se
you can do class Any { method b { } }
if Any is actually UNIVERSAL
but that's evilā„¢
TreyHarris yes, but $obj.meth fallback to meth($obj) is well specced
nothingmuch it will probably be a closed class
really?
INSANITY
where?!
TreyHarris one moment. i *think* it's well specced. it might just be that TimToady has repeated it here often enough to where I think it's well specced :-) 07:43
nothingmuch that really DOES NOT COMPUTE
that fallback is absolutely insane
it means we can't get any compile time error checking
and it also changes $obj's appearant interface based on the dynamic/lexical scope it's being invoked in
for *every* object 07:44
TreyHarris S12, Method call vs. Subroutine call 07:45
nothingmuch oh
you got it the wrong way around =)
TreyHarris "fails over to the subroutine dispatcher as a last resort only if no method can be found"
nothingmuch oi
TreyHarris no, it fails in both directions
nothingmuch uRHGGGGGGGGGGGGGGGGGGGGG 07:46
nothingmuch cries
the first fallback makes sense
close($handle) really meaning $handle.close
but this... this..... *cries*
lumi Isn't that how the ever-popular '"Hello World".say' works? 07:47
nothingmuch isn't that just that say is a method on Str?
TreyHarris no, because say is a method on io
nothingmuch it can be a method in both io and str
TreyHarris say is also multisubs on other things which redispatch to that method
nothingmuch $handle.say("foo"); 07:48
say("foo"); # multisub
"foo".say; # a method that dispatches to the multisub
the multisub will take the selected handle and call $handle.say on it
in my realm of sanity, at least
TreyHarris nothingmuch: pretending that S12 doesn't say what it says won't make it so ;-)
nothingmuch well, it doesn't contradict it
it just doesn't require it
lumi That sounds like sanity, except that you need to define method thrice for it to dwym 07:49
Well, dwem
TreyHarris granted. it could work either way.
nothingmuch the global subroutine scope is fairly rich
if it's implicitly also invocable as methods for every object...
urf
TreyHarris but i'm still trying to grok the assertion that you lose compile time error checking. do subs never check errors at compile time?
nothingmuch is still in shock 07:50
TreyHarris er... wrong invocant
are sub calls never checked for errors....
nothingmuch you can only rely on static checking for closed syms
subroutine space is far less likely to be closed
in scripted perspectives
you lose the benefit that if you load a closed class and invoke typos on it you get compile time errors 07:51
because that is potentially not a typo
the tradeoff you can make is to close your current scope
but then it's not really perl anymore
TreyHarris how does it do it in AUTOLOAD contexts in Perl 5? or does the mere mention of an AUTOLOAD cause all sub calls to be deferred till runtime?
nothingmuch AUTOLOAD is now several beasts at once
sub, meth, can, etc are all their own AUTO thing 07:52
and yes, the mere existence of an AUTOLOAD in a certain scope will do away with no staticness
TreyHarris ok. but... neglecting AUTOLOAD for a moment...
at a certain point in the literal code... 07:53
nothingmuch fwiw
your specific cxode will still not work
because it's a method, not a sub
if you have sub b { } then it should work
TreyHarris the compile is aware what imports have been done, and what named subs are mentioned in the current scope 07:54
so how can, if i type 'blah($foo)', it be impossible for the compiler to know whether blah exists in that scope or not? since it's a named sub 07:55
nothingmuch it isn't impossible
it's very unlikely
because closing it by default is not perlish behavior
TreyHarris yes, but in perl 5, we do a forward declaration if we want to avoid the warning 07:56
nothingmuch hmm?
only for foo $bar;
07:56 lambdabot joined
nothingmuch foo($bar) is *always* dynamic 07:56
TreyHarris ah, true. if you use parens
but why is hardthingtotype($moose) harder to type than $moose.hardthingtotype? why are you more worried about typos in the latter than the former? 07:57
nothingmuch i'm not
TreyHarris s/harder/easier/
nothingmuch if $moose is strongly typed
and it's fairly trivial to infer it's type 07:58
and it's a closed class
then the compiler can easily do compile time checks for $moose.foo
assuming that .foo will only dispatch ot $moose and it's [closed] superclasses
since it won't, it'll also look in the current scope
which is very unlikely to be open
(unlike an installed module) 07:59
s/open/closed/;
it means that for regular scripting you don't get the benefit of closing classes
TreyHarris i see. i don't know. 08:02
when is TimToady due back?
nothingmuch and the mier
merit is not really visible, IMHO
i mean, why confusingly make calls that appear to be methods
when they actually aren't?
what's wrong with say "Hello World" ?
ask any OO head and they will say that "foo".say is invoking the say method on the Str class 08:03
even if they don't really know perl 6
if that is only there to please them
then it should be what they expect
otherwise it should just be say "foo"
08:05 avar joined 08:06 lambdabot joined
TreyHarris nothingmuch: i really don't know. i wish TimToady were here. i tend to click into Rule 1 mode when he's not. I hear and understand your arguments, but I assume there must be a solution lurking somewhere 08:06
nothingmuch *nod* 08:07
nothingmuch tends to rant
don't mind me that much
yay! private methods pass all tests
TreyHarris mooses for joy
can I verb moose? 08:08
nothingmuch of course
moose can be anything you like
TreyHarris @moosethings = all(@things) ~~ self.like($_); moose := none(@moosethings) 08:10
lambdabot Unknown command, try @list
TreyHarris how about now?
er, s/all/any/ 08:11
08:26 drrho joined
svnbot6 r13085 | malon++ | smartlinks-server.pl - get_revision() added 08:34
gaal nothingmuch: L<S0E> is online at www.bartleby.com/141/ 08:42
lambdabot Title: Strunk, William, Jr. 1918. The Elements of Style
TreyHarris and if you'd like some comic relief, i have a link to a webpage somewhere that has recommendations from that book followed by sentences from the book that blatantly violate it :-) 08:43
08:43 buetow joined
gaal TreyHarris: do send link 08:43
nothingmuch gaal++ # awesome
TreyHarris gaal: i'll look for it. in the morning. must sleep 08:44
08:44 NamelessOne joined
gaal remember a keyword perhaps to search with? 08:44
08:50 kane-xs joined
lumi I think you should look at Language Log 08:55
gaal: ^^ 08:56
09:01 marmic joined
gaal he hates S&W, but I don't think he's very funny about it 09:01
lumi Maybe someone else, then 09:02
09:08 ludan joined
gaal audreyt: how do I get 'make ghci' to depend on third-party? 09:33
svnbot6 r13086 | gaal++ | * have 'make clean' delete ghci intermediate files
gaal note that the '@prereqs' dep is 2/3rds bogus: cbits and syck globs don't contain anything 09:34
audreyt gaal: have it run build_upugs with some bogus flag that let it stop after third party 09:35
perhas
perhaps
or split build_pugs into build_third_party
gaal hmm 09:36
i forgot about that
huh, also need to moose out prelude building so that we can have a prelude yml target in makefule
ouch! my build is real borked, remmeber that Main error? i'm now getting it on make fast... prolly i mangled a file or something 09:37
audreyt that's very moose... 09:38
gaal that's very unmoose if you ask me
audreyt moose is also antimoose
gaal it's moosed up 09:39
and moosed down
also moosed over sideways
avar I made some more test case commits yesterday, first in a few months
audreyt "a moose that could be moosed up has not the true moose" 09:40
avar: yay!
avar it looks like someone has to go over the synopses and make sure that all the stuff described there is being tested by make test, I'll do that over the weekend maybe
And some syn/ stuff needs clearing up also, probably
09:41 ruoso joined
pasteling "gaal" at 192.115.25.249 pasted "minimal repro" (3 lines, 369B) at sial.org/pbot/19509 09:42
gaal the file I guess would be src/Prereqs.hs 09:44
09:49 norageek2 joined
gaal I'm checking if it's lossage in my runcompiler... 09:49
no, it's not :( 09:50
audreyt: does it workforyou?
audreyt it worksforme. 09:52
gaal ah found it. wow, this was evil:
I had a stray leading ')' in src/Pugs/Internals.hs, on the same line as the ghc options
audreyt wow, oy.
gaal totally screwed up ghc's coordinates :( 09:53
audreyt: is it kosher to export 'PureSig' from Val? 10:00
10:01 Fuzie joined
gaal oh, we already do 10:01
but we call it Sig
hm. the coercion breaks sig-unpacking. the parser presumably fails. but why? 10:02
pasteling "gaal" at 192.115.25.249 pasted "this fails after consuming input, thus not being guarded by the optional" (2 lines, 407B) at sial.org/pbot/19510 10:03
audreyt it can't... 10:15
oh wait, lexeme consumes ws.
try $ lexeme $ ...
gaal but it consumes it after the rule, no? 10:17
lexeme is what I had called withTrailingSpace, isn't it?
lexeme r = do { rv <- r ; whiteSpace ; return rv } 10:18
audreyt yes
gaal so this shouldn't be a problem... lexeme $ option Nothing $ try $ do
audreyt but "return" cannot consume input
you shouldn't need to try, even 10:19
anyway, so it's castfail?
gaal i think I do need the try, because I don't have a predictive strategy to commit to an unpacking
yes. the same code with 'Maybe Val' guts works. 10:20
re predictive, what i mean is that because of the "optional $ char ':'" there, I need the try 10:21
audreyt *nod*
gaal in case I am really looking at a where block or whatever.
audreyt maybe you can fix verbatimParens
gaal ....which needs to be fixed, right? I'm using try in a few places here and I probably shouldn't be.
audreyt and make the start part of "between" a oneOf. 10:22
er I mean, a choice.
gaal choice what?
audreyt between (string ":(" <|> string "(") (...)
gaal ahh
well, not for the verbatimParens rule right? verbatimSigParens or something 10:23
also, the opener is a lexeme, I think
audreyt yup 10:24
lexeme (...)
gaal so maybe:
parameterize ruleSignatureVal with the optionaliry of the colon 10:25
er no
in ruleSignatureVal the closer is a lexeme too
but anyway, that's not the problem here, is it? the problem is the castfail 10:26
audreyt *nod*
gaal I don't grok the cast here, actually.
araujo hello all :-) 10:28
audreyt, i took the rawTree to a DAG using Graph.Inductive ...... 10:29
audreyt araujo: oooh 10:30
is it checked in? :)
10:31 chris2 joined
araujo i am checking ... i still don't commit though 10:31
gaal has anyone had any luck with 'set path' and ':find' in vim? it doesn't seem to work for me 10:32
audreyt never used either here..
gaal ah, got it to work partially. 'set path+=./src/**' and now I can do ':fin Val.hs' 10:33
but it doens't work with completions, and I **/*hs didn't work.
still, useful. 10:34
so: why I don't get the cast
we have a VPure PureSig
10:34 iblechbot_ joined
gaal only, that's an exsistential antler 10:35
araujo audreyt, i see some functions should be re-written or replaced. (addNode, initTree ...)
gaal (Val (VV sig')) <- verbatimParens ruleSignature
now sig' is not yet a PureSig
there's the VPure layer to peel off too
audreyt araujo: aye. 10:36
(Val (VV (VPure sig'))) <- verbatimParens ruleSignature 10:37
and then cast sig' ?
gaal yes
sig' is a newVal
araujo audreyt, so i suppose i got enough permissions to do the necessary changes right? :-)
gaal I want to extract the PureSig from it
ah 10:38
gaal exports VPure
(though, I thought we wanted to avoid that?)
audreyt araujo: in pugs we asks for forgiveness rrather than permission
easier that way 10:39
gaal: another way is to push it inside Val
gaal how?
araujo haha
gaal oh, the extraction?
audreyt castVal :: Monad m, Typeable a => Val -> m a
gaal Val -> PureSig
audreyt yes. seems sensible
probably even very good idea 10:40
gaal oh you can do it that way? excellent
I tried to figure out how
audreyt need () around the context though
gaal sure
audreyt (Monad m, Typeable a) => Val -> m a
gaal yes
audreyt case into val and use fromTypeable... you know the rest :)
gaal hmm this is just a function even, not a method 10:41
okay
audreyt yeah, that's because we inherit Typeable 10:43
in all Val variant's nodes 10:44
10:45 ofer0 joined
gaal it works, but I wish there was a way to make it work for ValNative and ValUndef too. 10:55
audreyt we'll make it work when we need it work... 10:59
(you can case into valnative variants too)
gaal i dig that
no, it's the rigidity of 'a' in the sig that throws it 11:00
committing 11:01
audreyt as in fixed and committing? 11:03
gaal not the concrete ones, no
audreyt 'k 11:04
svnbot6 r13087 | gaal++ | * introduce 'castVal' to unwrap Vals into concrete types. audreyt++ for
r13087 | gaal++ | the existential counselling.
r13087 | gaal++ | * Pugs.Val.Code.Param.p_unpacking can now be made a (Maybe PureSig) again.
gaal audreyt: in Text.Parser.Kwid, can you point me to an example of something that's exploiting arrowhood and is thus different from parsec? 11:08
11:08 TimToady joined
audreyt uh nothing there is 11:10
gaal i'm looking for an example *usage* of PArrow to study
audreyt PArrow is only used in Text.Parser.Rule
in particular &&& and >>^ 11:11
dinner, bbiab :) 11:13
gaal I'm wondering.. the combinators are so similar, and we're going to have to revisit most of the parser anyway, why not redo it with PArrow? but I don't know enough about it 11:21
bbiab also & 11:22
11:22 NamelessOne joined 11:27 weinig joined 11:49 markstos joined
markstos ? 11:54
lambdabot markstos: You have 1 new message. '/msg lambdabot @messages' to read it.
markstos I read about CATCH blocks, but what if the condition I want to test isn't something to compare $! against? It seems the normal 'when{}' syntax doesn't work then. 11:58
Instead, I want to check if an "error mode" has been defined to handle the error or not. 11:59
theorbtwo markstos: You can give a closure to when, IIRC: 12:00
markstos I almost had a solution myself, but by handling $! myself, I lost the valuable trace that come when $! is thrown "naturally".
interesting.... 12:04
?eval { when 0 ~~ 1 { say "surprise!" } }
12:04 evalbot_r13082 is now known as evalbot_r13087
evalbot_r13087 OUTPUT[surprise! ] Bool::True 12:04
markstos I think that's a bug. The spec says: "a switch statement can be any block that sets C<$_>, including a C<for> loop (in which the first loop parameter is the topic) or the body of a method" 12:08
In my example, I can't see what set $_
12:12 nachos left
markstos hmm, the docs say the error in CATCH will be rethrown if no error is handled, but it doesn't seem like it is: 12:17
?eval try { boom(); CATCH { when 'yours' { say "found yours" } } };
evalbot_r13087 undef
markstos It looks like a case like that is already :todo<bug> in t/builtins/control_flow/try.t , so I won't add another. 12:21
off to work!
12:22 Limbic_Region joined
jdv79 hey Limbic_Region, whaaaats haaaaappenin? 12:23
Limbic_Region not much yet - still going through my morning routine 12:24
wondering if the Win32 build problems were magically fixed while I slept
you?
jdv79 not too much really. been checkin out moose lately. wonderin' when the p6 metamodel'll be available:) 12:25
i just got in to work, just winding down from the bike ride... 12:26
Limbic_Region ok, I see that audreyt attempted a fix, going to verify now 12:28
hrm - new error, I only have about a half hour to investigate 12:32
jdv79 the heat is on... 12:34
bad 80s song wasn't it? 12:35
Limbic_Region well, depends on your definition of bad 12:37
12:43 buetow joined
Limbic_Region hopes audreyt's dinner is better than his breakfast 12:43
A co-worker was kind enough to bring in fancy donuts 12:44
which are now reaking havoc with my stomach
jdv79 frosted mini-wheats here
Limbic_Region thinks it was an evil plot
jdv79 the motive is what though?
Limbic_Region conspiracy theorists don't necessarily come up with the motive first 12:45
I got it: With weird abdominal goings on, I will be less likely to try and convert them to Perl addicts like myself 12:46
it is a defense mechanism
well, Win32 seems to be progressing quite nicely. So far so good 12:52
audreyt yay! 12:53
the news that win32 works well sends dopaime through my limbic region :)
Limbic_Region well, the compile isn't finished 12:54
but the p5 embedding works again
audreyt cool
Limbic_Region on 87 of 95
audreyt I verified the Vanilla branch in Makefile.PL
but forgot to fix ActivePerl
Limbic_Region no worries
audreyt :) 12:55
Limbic_Region that's what I (and particle) are here for
FYI - the Win32 build machine for ghc fell over
also - obra was asking about the state of the JS backend. Apparently the smoke status has been at 0% for many months due to a single file being missing 12:56
know who to poke on that?
audreyt which file? 12:57
I verified it works on previous release
I know it's bitrotten now but it was customary to fix right before release
Limbic_Region checks last night's log
hmm. every single test is saying "Error: Precompiled Prelude ("...perl5/PIL2JS/pil2js.pl") does 12:58
not exist... Can't bless non-reference value at "...pil2js.pl line 77"
audreyt right.
iblech is no longer around, so I guess poke me :)
(but it's part of releng for me)
Limbic_Region isn't sure his wife would like him poking another woman 12:59
well - I guess she would probably be more distraught if I was poking a man
um, let's get back on topic
audreyt moving right along...
avar mm, manpoking
Limbic_Region so iblech was the JS champion and he is not available 13:00
avar eh yes, sorry:)
13:00 crem_ joined
audreyt aye 13:00
Limbic_Region personally, I would rather nudge you to work on the haskell and parrot backends
ah good, back to the error I had before the p5 embedding issue 13:01
audreyt that error is fixed in GHC
it's a GHC bug on that particular day
Limbic_Region oddly enough - this is only affecting my work computer so I am not sure what it is
audreyt it's fixed the next day
Limbic_Region audreyt - except it works fine on the same version at home
audreyt Wed Sep 6 19:27:50 CST 2006 Ian Lynagh [email@hidden.address] 13:02
* Fix the Windows "VirtualAlloc MEM_COMMIT failed" bug
We had
base=01100000 size=1048576 size_delta=0 it->size=2097152
it->base=00F00000 base-it->base=00200000
Limbic_Region and there is no next day for Win32 - it stops on the 1st
audreyt in commitBlocks.
Esa Ilari Vuokko identified this inequality test as the cause.
Limbic_Region is extremely confused then
audreyt the diff for that is...
hunk ./rts/MBlock.c 445
- for( ; it!=0 && (it->base+it->size)<base; it=it->next ) {}
+ for( ; it!=0 && (it->base+it->size)<=base; it=it->next ) {}
Limbic_Region how could the exact same build work on one machine and not the other 13:03
audreyt apparently it only affects system that allocs on some memory boundary
Limbic_Region ahhh
so then at work at least, I have to revert back to the 19th?
audreyt or prod Igloo or Simon for another bindist
good that this is caught before 6.6's release 13:04
Limbic_Region well actually, I wouldn't be opposed to building from source if they fix the Happy bug
Limbic_Region wanders over to #haskell
13:04 vel joined
Limbic_Region the binary dists of Happy and Alex are not new enough to properly build the latest GHC but Happy at least can't be built using the current GHC because of a bounds issue 13:06
it won't pain me terribly to revert to 08-19 if I can't get a new binary build
audreyt *nod* 13:08
so, if it's your report that triggered evuokko's investigation
I'm much indebted :)
13:08 gantrixx joined 13:09 drbean joined
Limbic_Region I doubt seriously I did any more than put the hounds on the scent 13:10
audreyt yeah but without that 6.6 will be released and broke win32 everywhere for a while :)
gaal mooses 13:11
Limbic_Region well, I will be sure to validate the next bin release as soon as the machine is back on its feet
and Win32 at least will be released with the extralibs included so no Cabal required for the neophytes like myself 13:12
audreyt it's like ActivePerl! :)
(referring specifically to LWP and DBI) 13:13
13:13 penk joined
Limbic_Region AS has released build 819 which includes the patch that bart, intrepid, and myself found to make Module::Build work again 13:14
13:14 markstos joined
Limbic_Region this is very important for those compiling XS modules with AS and MinGW 13:15
audreyt excellent
yup
Limbic_Region Is there an automatic smoke down for Win32 now for every rev? 13:16
audreyt no there is not
Limbic_Region hrm - someone has been a busy beaver than
Michal Jurosz apparently 13:17
audreyt oh wait
there is
I was looking at wrong column
yeah
it sure looks automatic 13:18
that's excellent
Limbic_Region that's what I was thinking
13:18 kuuz joined 13:19 cjeris joined
Limbic_Region cjeris is another Win32 user IIRC 13:20
and there goes particle - another Win32 user
He giveth and He taketh away 13:21
rodi I note that key of a Pair seems to automagically coerce to a String in assignment, but not in retrieval from a Hash... is this an intended behavior?
Limbic_Region audreyt - any insight into the gcc-lib/ld.exe issue with setup.exe ?
rodi ?eval my %a = ( (1,2) => "buckle my shoe" ); %a{(1,2)} #gives undef 13:22
evalbot_r13087 [undef, undef]
cjeris Limbic_Region: yes, unfortunately
rodi ?eval my %a = ( (1,2) => "buckle my shoe" ); %a{~(1,2)} #gives value
evalbot_r13087 \"buckle my shoe"
Limbic_Region cjeris - don't look at it that way. Look at it as paving the way so those less technically savvy than you can enjoy software 13:23
audreyt rodi: yes, because you are slicing on the first
rodi audreyt: awesome, thanks. 13:24
audreyt Limbic_Region++ # very constructive
cjeris paves the road with the calcined bone-ash of microsoft -- except simon peyton-jones
audreyt SPJ's work is copyrighted by Glasgow anyway ;)
13:24 agentzh joined
Limbic_Region ?eval my @foo = 1..3; @foo>>++; ~@foo 13:25
evalbot_r13087 Error: Can't modify constant item: VInt 1
Limbic_Region there is a failing test for that right?
cjeris yup
audreyt I remember there is
agentzh ah, that's a todo.
Limbic_Region ok, so let me run down my mental list of things to bug audreyt about
agentzh in long_dot.t
Limbic_Region 1. setup.exe not properly finding gcc-lib/ld.exe 13:26
2. removing the need for parrot to do rules
hrm - that's a short list
audreyt fwiw, 2) is part of release
1) is good to have
Limbic_Region woooot
audreyt but I can accept the horrible workaround.
Limbic_Region me too
audreyt I mean, it's not like ld.exe is huge or something :)
Limbic_Region I don't actively develop pugs though, so my microcosm of things to improve is quite small 13:27
rodi this next question may be a question for #haskell, but I'll give it a shot anyhow:
?eval sprintf("%b",10)
evalbot_r13087 pugs: Printf.printf: bad formatting char b
rodi The GHC and Hugs Printf both lack "b" as a formatting char, 13:28
audreyt rodi: so you can prolly remedy it
in src/perl6/Prelude.pm line 566
handle %b in a separate ase 13:29
improvise, etc :)
rodi Great, I've got my dec2bin working already,
audreyt *separate case
in Hs ot in p6?
rodi will try to make it handle all the formatting.
audreyt in Hs or in p6?
rodi p6.
Wrong thing?
audreyt excellent.
no ,absolutely correct.
rodi Cool. It may have some unique behaviors on my first try :-D 13:30
agentzh rodi++
Limbic_Region rodi plus plus
Limbic_Region wonders if audreyt is trying to type in the shower as her fingers seem to be slipping
agentzh gaal++ # fixed the pugs parser to make all the tests in start.t pass. 13:31
audreyt Limbic_Region: no, it's the plastic case above my keyboard
s/case/slip/ 13:32
Limbic_Region designed to prevent crumbs and what not
audreyt not used to that, but presumably it can preent some of disasters
prevent, even
judged by the sheer amount of stuff on that after just one day of use
I'd say it's wise to get used to it
Limbic_Region thinks he could design a better keyboard provided sufficient motivation 13:33
audreyt I don't doubt that at all
agentzh audreyt: do multiple NEXT {} run in the reversed order?
audreyt I don't know, actually. 13:34
agentzh :)
audreyt I don't have a clear intuision of what makes sense.
agentzh larry once said on p6l that quitting blocks should run in reversed order. 13:35
audreyt I read that too. thing is, is NEXT quitting or entering...
agentzh just not quite sure if NEXT {} falls in that category.
yeah 13:36
13:36 [particle] joined
audreyt I can argue either way eloquently, which means it's best deferred to TimToady, sorry :) 13:36
[particle] grr. net--
Limbic_Region could either of you provide a small snippet to illustrate this?
agentzh audreyt: aye
Limbic_Region particle - your p5 embedding issues should be gone now
audreyt plus plus
[particle] yay
i'll check now 13:37
Limbic_Region I have already confirmed on the release candidate - reverting back to 6.5 bin from 08-19 due to other reasons
[particle] irc log link not in channel title :(
Limbic_Region but the pugs homepage is 13:38
and almost everything pugs related is linked from there
agentzh has found that p6l is a great source of test cases for pugs. :)
Limbic_Region actually - the homepage is missing from the topic
[particle] actually, no, it's not (it's not a link)
right
Limbic_Region pugscode.org
[particle] sure, i'm there already :) 13:39
Limbic_Region you are on 6.4.1 right? 13:41
[particle] yes
Limbic_Region audreyt - any idea when pugs compatibility with the 6.4 branch is going to end 13:42
audreyt the release after this
[particle] hopefully after 6.6 is working
great
i plan to go to 6.6 from here
audreyt which won't happen until 6.6 bindist is made available to all common platforms
Limbic_Region and the release after next is 6.28.0 right? 13:43
[particle] agentzh++ # smartlinks is looking great!
agentzh particle: :)
audreyt Limbic_Region: it fnally is looking that way, yes
nothingmuch's MOP stuff is looking nice
and I figured out how to hook native types into that 13:44
and gaal figured out how to refactor and extend it cleanly ...
...providedthat we can ditch 6.4 compat...
so yeah.
Limbic_Region woot
[particle] agentzh: what would you think about much smaller links, with a hover message that gives the details?
agentzh details of the tests themselves? 13:45
[particle] no
agentzh stats info?
[particle] link appears like [see tests]
hover, and it says "Show the snippet from t/.../ (line xxx)" 13:46
agentzh hmm...
[particle] just a smaller marker, so flow isn't interrupted
or, highlighting of keyphrases with the same hover content 13:47
Limbic_Region audreyt - Win32 100% functional on 08-19
[particle] and making the keyphrases the link instead
agentzh particle: i like it. :)
particle: feel free to hack that into smartlinks.pl. ;-) 13:48
Limbic_Region running smoke now and likely going to wander
audreyt Limbic_Region: nice!
agentzh particle: yes, keyphrases are much more descriptive than test file paths.
[particle] agentzh: okay, i'll hack when i can :) 13:49
agentzh particle++
Limbic_Region concurrency not supported on your platform - does that mean on other platforms the smoke tests are done in parallel? 13:51
cause if that's the case, Parallel::ForkManager works fine on Win32
audreyt oooh
line 225 utl/yaml_harness 13:52
if you can hack in P::FM that'd be great.
Limbic_Region taking notes as I have to wander ATM
audreyt but it won't actually improve things on uniprocessor, I think
Limbic_Region I bet it might 13:53
agentzh dual core cpu?
Limbic_Region no - on a uniprocessor
agentzh when blocking I/O is common, then yes. 13:54
[particle] hrmm... my pugs build still fails :(
Limbic_Region the limited testing I have done shows that n tasks done in parallel using time slicing still complete faster than the same tasks in serial
[particle] i'll try realclean
Limbic_Region assuming the CPU is not at 100% for any of the tasks
agentzh fyi, my pugs build on win32 succeeded tonight.
audreyt [particle]: possibly it's a 6.4.1 thing, or the headers conflicted with each other 13:55
Limbic_Region particle - as I have said before, I always do a realclean
audreyt I wonder if you have some tuits to try 6.4.2
[particle] i was hoping to skip 4.2 and go to 6
Limbic_Region in any case, I will try and hack in P::FM and then test the timing
[particle] is that likely within the next days?
Limbic_Region but that will have to be after I do some $work
audreyt [particle]: well, 0819 build is good enough 6.6 for me
and for $work
so I'd suggest that
[particle] ok, will do 13:56
14:03 agentzh joined 14:04 xerox joined
agentzh audreyt: ping 14:05
audreyt: could you fix the "modifer" typo in S04 for me? :) 14:06
audreyt I'll quote that line as my commit log ;) 14:07
14:07 weinig is now known as weinig|bbl
audreyt r11817. 14:07
agentzh audreyt++ 14:08
already seen that mail on p6l. :)
hehe, funny. ;-) 14:09
audreyt :D 14:11
Limbic_Region audreyt - what version of Perl are we assuming with yaml_harness.pl? It looks like we are shooting for very old backwards compatability
audreyt 5.006 at that time 14:12
but I think we can reasonably expect 5.8 for next release
Limbic_Region ok, so the fisher yates was because List::Util wasn't core until 5.7 14:13
I won't change stuff just to change it though - I just saw local *FH instead of using lexical and what not 14:14
suprised me a bit
audreyt that's prolly archiac and can go 14:15
in any case don't be limited by it for new code you write
agentzh anyone here wanting to give a quick implementation of the NEXT blocks to pugs? :)
Limbic_Region well, the new code I write is going to be an eval require Parallel::ForkManager
and if present - use it instead of the homegrown code for parallelization
which gets Win32 working 14:16
audreyt k
Limbic_Region if not present - fall back and Win32 is SOL
audreyt aye
Limbic_Region I can certainly clean up the remainder of the code though
and can also do some other conditionals such that if List::Util is present, it uses that shuffle instead (which is XS) 14:17
yeah - a fun project that I can actually do myself
agentzh audreyt: i think we should rename "vcode2firstBlock" to "vcode2startBlock" under src/ 14:20
[particle] D:\usr\local\pugs>ghc --version
The Glorious Glasgow Haskell Compilation System, version 6.5.20060819
:)
[particle] builds pugs with confidence it will finish 14:21
audreyt agentzh: I think you can do the commit :) 14:22
agentzh audreyt: okay
audreyt s///g on Parser.hs should be sufficient
"make fast" is your friend...
and if it compiles, ship, er, commit it 14:23
Limbic_Region particle - it will
agentzh audreyt: sure! 14:24
i think i should write a Makefile for Win32's judy build system. 14:25
it's currently required to compile C Judy from scratch everytime we make. 14:26
that's becoming annoying now. :(
audreyt I second that 14:27
agentzh will give it a shot once i have some time.
Limbic_Region oh, either Obra or TreyHarris was saying that make smoke recompiled pugs every time regardless if they had just finished building 14:29
I thought that was fixed?
svnbot6 r13088 | agentz++ | [src/Pugs/Parser.hs]
r13088 | agentz++ | - s/vcode2firstBlock/vcode2startBlock/g
obra hat wasn't me
agentzh audreyt: can you give me some guide to make unimplemented traits blocks "inline blocks" instead of emptyExp?
audreyt "inline blocks" ? 14:30
agentzh audreyt: to serve as a temporary hack.
audreyt as in run it immeidately?
agentzh audreyt: i need that to bootstrap my tests.
pasteling "[particle]" at 144.81.84.199 pasted ":( :( :(" (642 lines, 29.4K) at sial.org/pbot/19513
agentzh audreyt: aye
audreyt ok, try
retBlock block
instead of 14:31
return emptyExp
14:31 prefiks joined
audreyt thats all 14:31
agentzh that's all?
audreyt make sure to throw plenty of XXXs
sure
agentzh i'm impressed. :)
audreyt: XXXs, okay
audreyt as in comments
agentzh gotcha
Limbic_Region @ARGV = sort map glob, "t/*/*.t", "t/*/*/*.t", "ext/*/t/*.t" if ! @ARGV ?
audreyt [particle]: which kind of perl is in d:\usr\local\perl ?
lambdabot Unknown command, try @list
Limbic_Region audreyt - you mind if I just re-write yaml_harness.pl ? 14:32
audreyt code ownership is a wildly unpopular idea here :)
(as in, I'd be very happy)
Limbic_Region ok
audreyt [particle]: is it activeperl or cygperl? 14:33
[particle] audreyt: as 5.8.6
agentzh LR: don't forget to use Test::TAP::Model to generate the "meat" part of the AST (as in tests.yml)
audreyt Limbic_Region: when did activestate fix mingw compat?
I wonder if [particle] is hitting that
it looks very similar to cmpiling XS modules for actcivestate sing MinGW 14:34
and it's been fixed a while ago, but I don't remember if it's 5.8.6
Limbic_Region just a sec
I posted about it on PerlMonks so I can find it 14:35
Limbic_Region doesn't see particle's error though
oh, just off my screen
Limbic_Region takes a look
[particle] D:/usr/local/perl/lib/CORE/win32.h:245: error: redefinition of typedef 'intptr_t
'
audreyt aha
it's fixed in 5.8.7 build 815
[particle] aargh!
audreyt Gisle's work 14:36
[particle] okay, i'll get the latest AS perl
audreyt cool
AS 5.8.6 and below only works with VC+
VC++
[particle] i have vc++
audreyt which the GHC team has been reluctant to support in their bindist
[particle] oh
Limbic_Region it might be getting confused
audreyt so the bindist they use is MinGW
[particle] i don't have mingw
audreyt GHC bundles it
which should work ine, just like VanillaPerl 14:37
[particle] ic
audreyt on 5.8.7.817+
[particle] is there a compat or prereq file for that info to be added to?
Limbic_Region particle - you were looking for an excuse to upgrade - weren't you
[particle] perl? not really :(
perhaps i'll stick with 5.8.7, i here 5.8.8 is a bit buggy 14:38
s/stick with/move to/
i think AS 5.8.8 has a new ppm which doesn't play nice with some existing repos
like tcool 14:39
agentzh audreyt: GHC compilation error: Probable cause: `retBlock' is applied to too few arguments in the call (retBlock block)
[particle] which has a DBI that works with Jifty head
PerlJam forget AS; use strawberry perl :)
14:40 hexmode joined
[particle] darn, can't get 5.8.7 from AS site 14:40
agentzh PerlJam: i couldn't install GraphViz.pm on strawberry perl the last time i checked. 14:41
PerlJam agentzh: well, then fix *that*. That seems like something useful. 14:42
lumi agentzh: Look in vcode2firstBlock, maybe
PerlJam :-)
[particle] thinks the strawberrys aren't ripe yet
svnbot6 r13089 | audreyt++ | * Die on ActivePerl 5.8.7 and below with Perl5 embedding.
audreyt there you go :)
agentzh lumi: looking now
audreyt fwiw, the new PPM is only on latested 5.8.8 build
I think 5.8.8 build 817 is safe 14:43
[particle] audreyt: 819 only available on AS
audreyt not 100% sure though
downloads.activestate.com/ActivePer...257965.msi
is 817
more archives at downloads.activestate.com/ActivePer...ndows/5.8/
lambdabot Title: Index of /ActivePerl/Windows/5.8, tinyurl.com/75cs3
[particle] ooh, audreyt++
agentzh lumi: there's no retBlock calls there. :/
auderyt: "retBlock block" can't compile.
*audreyt 14:44
lumi agentzh: s_postIterate
block <- retBlock SubBlock Nothing False body
audreyt sorry.
agentzh ah, thanks. :)
14:44 christopher joined
audreyt retBlock SubBlock Nothing False block 14:44
agentzh retry now 14:45
14:46 elmex joined
svnbot6 r13090 | iblech++ | The smokeserv on m19s28.vlinux.de now uses malon++'s shiny smartlinks-server. 14:48
r13090 | iblech++ | malon++ malon++ for making smartlinks-server a very seamless update :)
r13090 | iblech++ | (All problems I encountered were the results of various forms of typos)
agentzh wow
malon++ malon++ malon++ 14:49
audreyt wow
svnbot6 r13091 | iblech++ | Renaming smartlinks-server.pl to smokeserv-server.pl, part 1.
r13092 | iblech++ | Renamed smartlinks-server.pl to smokeserv-server.pl (part 2).
audreyt iblech is alive!
agentzh hooray 14:50
audreyt iblech++ malon++ agentzh++
agentzh auderyt: surprisingly, all tests in t/closure_traits/next.t pass now. :)
audreyt that means you don't have enough tests, tsk! :)
agentzh audreyt: *nod* 14:51
Limbic_Region wooot
pasteling "Limbic_Region" at 129.33.119.12 pasted "Please confirm this is an "ok" thing to do" (15 lines, 398B) at sial.org/pbot/19514 14:52
Limbic_Region audreyt - would you mind taking a look at that
I am a bit self-concious about just doing things my way
audreyt I'm saying yes without looking 14:53
now I'm looking...
[particle] :)
audreyt well, it's purely style
but I'll probably do
local $@; my $has_list_utils = eval { require List::Util; 1 }; 14:54
*shuffle = $has_list_utils ? ...
to avoid clobbering $@
and avoid negative ?:
but sure, the idea and implementation both looks valid enough 14:55
or we just depend on List::Util
which would be fine also.
Limbic_Region well, I would prefer to offer flexibility
audreyt yeah, then sure, check that in :)
localizing $@ is probably a good idea though. 14:56
Limbic_Region oh, going to finish the whole thing before check-in
just getting a sanity check before moving on
audreyt k
sane :)
Limbic_Region localized and moving on
svnbot6 r13093 | agentz++ | [src/Pugs/Parser.hs] 14:57
r13093 | agentz++ | - *temporarily* made unimplemented traits blocks as
r13093 | agentz++ | immediate inline blocks to ease testing. the closure
r13093 | agentz++ | traits affected are ENTER, LEAVE, KEEP, UNDO, FIRST,
r13093 | agentz++ | NEXT, LAST, PRE, POST, CATCH, and CONTROL.
r13093 | agentz++ | anyway, their full implementations will still be very
r13093 | agentz++ | appreciated!
lumi agentzh: I've got something half-done on that (trait implementation, I mean), maybe I can get it done this weekend 14:58
agentzh lumi: yay! thank __you__! 14:59
audreyt woot
agentzh thinks he should login to feather often, or he would forget his password there. 15:02
15:04 Eimi joined
svnbot6 r13094 | rodi++ | test for "%b" in sprintf context- currently unsupported by Hs Printf 15:09
r13095 | rodi++ | "%b" in sprintf- currently unsupported by Haskell Printf.
agentzh oh...there're a lot of broken links on m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl?
they're broken because they have no tests.yml, i guess.
lambdabot Title: Pugs Smoke Reports, tinyurl.com/zs247
rodi audreyt: I blame you and your damn commit bits
15:10 agentzh joined
agentzh oh...there're a lot of broken links on m19s28.vlinux.de/cgi-bin/pugs-smokeserv.pl? 15:10
lambdabot Title: Pugs Smoke Reports, tinyurl.com/zs247
agentzh they're broken because they have no tests.yml, i guess.
so...new smoke reports welcome! 15:11
audreyt ok... running a new smoke now 15:18
good that it's 9min here again :)
svnbot6 r13096 | rodi++ | Several additional tests for sprintf("%b",$string) 15:21
agentzh audreyt: leave not implemented yet, confirmed? 15:24
rodi hangs his head and commits failing tests for his own committed code :(
agentzh ?eval { leave; say 'hi' }
15:24 evalbot_r13087 is now known as evalbot_r13095
evalbot_r13095 Error: No compatible subroutine found: "&leave" 15:24
agentzh wants "leave" in his tests. 15:30
svnbot6 r13097 | agentz++ | [t/closure_traits/next.t] 15:45
r13097 | agentz++ | - added this new test file to test NEXT {}
r13097 | agentz++ | Status:
r13097 | agentz++ | - 10 of 12 tests are failing now because no serious
r13097 | agentz++ | implementation for NEXT blocks exists in pugs.
audreyt rodi: I'm happy to be blamed that way :))) 15:48
15:50 ruz joined
svnbot6 r13098 | malon++ | smokeserv-server.pl - try to avoid making broken SYN links 15:50
r13099 | rodi++ | Added test for mixed-up padding and multiple arguments for sprintf using 15:53
r13099 | rodi++ | %b, and patched Prelude to pass the tests. More tests welcome.
r13100 | malon++ | smokeserv-server.pl - typo in r13098 fixed
agentzh malon++ # JIT fixing 15:55
agentzh wonders if malon is also in this room.
svnbot6 r13101 | rodi++ | Added printing of the rule set, using shiny new sprintf("%b,$str) 15:56
audreyt new smoke sent 15:58
on r13095 I think
clkao audreyt: hey 15:59
audreyt hey
I'm just about to sleep :)
clkao sleep well
agentzh 0:00 here... :)
audreyt :)
svnbot6 r13102 | agentz++ | [t/closure_traits/first.t]
r13102 | agentz++ | - rewrote all the existing tests since the new FIRST
r13102 | agentz++ | block is no longer the old one. ;)
r13102 | agentz++ | Status:
r13102 | agentz++ | - all tests are failing due to the lack of
r13102 | agentz++ | implementation for FIRST {}
16:04 weinig|bbl is now known as weinig 16:06 kanru joined
audreyt waves and sleeps & 16:06
clkao not "journal up and sleep &" ? 16:07
16:13 Psyche^ joined
kane-xs seen knewt 16:15
seen frakkle
ehm, ww :)
Limbic_Region ?seen knewt 16:23
lambdabot knewt is in #perl6 and #darcs. I don't know when knewt last spoke.
Limbic_Region ?seen frakkle
lambdabot I haven't seen frakkle.
agentzh ?eval { KEEP { say 'hi' } } 16:24
16:24 evalbot_r13095 is now known as evalbot_r13102
evalbot_r13102 OUTPUT[hi ] Bool::True 16:24
agentzh ?eval { UNDO { say 'hi' } } 16:25
evalbot_r13102 OUTPUT[hi ] Bool::True
16:27 Psyche^ is now known as Patterner
agentzh i've encountered an interesting pugs bug. :( 16:29
UNDO blocks can cause mysterious parsefail in t/closure_traits/keep_undo.t 16:30
i have no idea what it is.
svnbot6 r13103 | agentz++ | [t/closure_traits/keep_undo.t] 16:39
r13103 | agentz++ | - added this new test file to test KEEP and UNDO blocks
r13103 | agentz++ | Status:
r13103 | agentz++ | - there's a mysterious parsefail in the test file. i
r13103 | agentz++ | have no idea what it is. can anyone fix that for me.
r13103 | agentz++ | thank you! :)
agentzh sorry, i didn't wrap the parsefail in keep_undo.t because...because... 16:40
because i hope it can be fixed sooner.
nothingmuch ooooooooooose
jam sessions++
nothingmuch hasn't had much fun in a long while
agentzh classes will begin in less than 8 hours...gotta run to bed... 16:41
night &
16:41 agentzh left 16:42 jferrero joined
TreyHarris argh! 16:42
three days in a row, I miss agentzh... this time by less than one minute 16:43
qmole perhaps you're the same person 16:46
svnbot6 r13104 | iblech++ | * Fix the smokeserver to not display SYN links when there's no associated .yml 16:51
r13104 | iblech++ | for a smoke. (malon++'s approach did not work correctly; my bad for not
r13104 | iblech++ | better commenting @smokes:239)
r13104 | iblech++ | * smokeserv-server outputs a warning if no .yml is sent along the .html.
r13104 | iblech++ | * Sync the version on the server with this revision.
16:56 [particle] joined 17:04 mauke_ joined
svnbot6 r13105 | malon++ | Makefile.PL - change upload-smoke target (noticed by iblech++) 17:09
Limbic_Region once again attempts to build GHC from source on Win32 17:10
17:14 mauke_ is now known as mauke 17:22 mauke_ joined
gaal wow, iblech! 17:23
17:32 weinig is now known as weinig|bbl 17:44 mauke_ is now known as mauke 17:47 avarab joined 17:55 elmex joined 18:04 avarab is now known as avar 18:06 weinig|bbl is now known as weinig 18:16 lanny joined 18:20 larsen joined 18:21 onsen joined 18:40 elmex joined 18:48 ruz_ joined 18:50 frankg joined 18:53 larsen_ joined
lanny How does someone get a commit bit? I've got some tests (ok, 2 tiny little tests) that I'd like to commit to pugs. 18:53
18:54 frobnitz joined
Limbic_Region lanny - give me your email address (either in the channel or via /msg) 18:55
it may take me a few minutes cause I don't do it that often
lanny lanny _at_ cisco.com 18:56
Limbic_Region ok, will be on its way
lanny Thanks.
Limbic_Region even if you are comitting tests, be sure to add yourself to AUTHORS 18:57
lanny Will do.
TreyHarris should i be running 'make', or 'make optimized'? 18:59
Limbic_Region let me know if you don't receive it - someone complained yesterday that their's didn't show up
make defaults currently to optimized 19:00
but that is likely to change once support for ghc 6.4 is gone
make defaults to make optimized and make fast is a synonym for make unoptimized 19:01
TreyHarris ah, ok. i was wondering if the fact that my smoke takes 350 minutes and audreyt's takes 9 (when I'm on a PPC G4 1.5GHz and she's an a macbook core duo 2GHz) suggests that i need to make differently
guess i just need GHC 6.6 ;-)
Limbic_Region TreyHarris - you have a problem that isn't related to your version of ghc 19:02
on a wimpy Win32 box with 6.4.2 - I was still able to complete the smoke in about an hour
and that was running all the tests in serial not parallel (which isn't currently possible on Win32 though I am working on it) 19:03
TreyHarris hm
19:03 kasei left
Limbic_Region upgrading your ghc will certainly help 19:03
TreyHarris is there an os x binary build for 6.6 yet? my last source build took almost 48 hours
Limbic_Region TreyHarris - was that a bootstrap build or with a pre-existing ghc? 19:04
Limbic_Region is in the process of building from scratch himself ATM
TreyHarris Limbic_Region: I don't actually remember. I think I used ports, so that would have been bootstrap. I think. Actually the *last* source build i tried to do never completed, and I ended up getting a tar of someone else's /opt :-) 19:05
Limbic_Region maybe I shouldn't be too quick to judge - but that seems like a long time to me - checking for os x binary dists 19:06
the smoke time that is - not the build time
TreyHarris haskell.org only shows me 6.4.2 binaries, unless i don't know where to look
Limbic_Region they only provide bin distros for linux and win32 it appears as well as src 19:07
TreyHarris Limbic_Region: well, it's certainly odd, but i don't see anybody else smoking on ppc recently, and back in february 350 minutes would be about average
Limbic_Region see www.haskell.org/ghc/dist/current/dist/
lambdabot Title: Index of /ghc/dist/current/dist
TreyHarris so i don't know if i'm outlying or not. it's certainly not unlikely that intel would be vastly optimized over ppc
and i know a lot of GHC optimizations can result in order-of-magnitude speedups, not just incremental ones 19:08
Limbic_Region I just asked #haskell if anyone was building regularly on OS X and if so could I get a bin dist tarball
TreyHarris Limbic_Region: thanks, though i'll bet if anyone responds, they'll be intel, not ppc 19:09
Limbic_Region actually, I clarified that point
apparently it doesn't yet run on intel and the guy who responded didn't have PPC 19:10
TreyHarris oh. i thought audreyt was on 6.6?
maybe she has her own private good-enough fork :-)
[particle] yep, win32 i think
TreyHarris oh... i thought she said her macbook was back in service
[particle] yep, winxp on macbook 19:11
TreyHarris ohhhh
19:11 justatheory joined
TreyHarris she was using os x at yapc, so i assumed she still was 19:11
[particle] she uses both
one processor per each
Limbic_Region audreyt is using the build from 08-19 when she uses Win32 which she says is close enough for her
AFAIK, I am the only one running 6.6RC on Win32 19:12
[particle] i've d/l'd 0819
running makefile.pl now
TreyHarris ahh. i can't remember who else here was on darwin-ppc... there was somebody
Limbic_Region particle - heh, ghc 0819 or AS Perl 5.8.8 build 819? 19:13
TreyHarris IIRC, they were even on 10.3 Panther, not 10.4 Tiger
[particle] close, build 817
819 has a funky new ppm that i don't want to use 19:14
Limbic_Region ok, you don't use mingw right ? 19:15
[particle] ENOMINGW
TreyHarris Limbic_Region: but i think you're probably right that something funky is in my installation. i get SIGBUS's ("illegal hardware instruction") errors from pugs regularly, and usually running the same code again causes the problem to mysteriously go away 19:16
Limbic_Region hmmm - yeah 19:17
19:32 elmex joined
Limbic_Region (coworkers who bring in gourmet donuts for everyone)++ # plus plus since this client will eat them 19:38
oh wait, it didn't - Juerd must have hacked in a fix
[particle] juerd++ plus plus :) 19:40
Juerd juerd-- 19:42
I didn't hack anything in
They might actually, finally, have found it themselves.
svnbot6 r13106 | lanny++ | basic srand() tests
Limbic_Region Juerd - except I am pretty sure it was b0rk after the last upgrade 19:44
TreyHarris lanny: good first test... but FYI, C<repeat> is a reserved word now, so you might want to choose a different name for your sub 19:46
see S04
(of course, nothing is truly reserved for a subname, even 'sub'... but best not to stretch the compiler in ways you're not actually testing ;-)
lanny Hmm. Named the sub repeat_rand(). Not good enough? 19:51
TreyHarris ohhh! sorry :-) 19:52
lanny Ok. Was worried someone had made '_' an operator. :)
TreyHarris i switched terminal fonts this morning, and I now see that _ is almost invisible
bleh, otherwise i was liking this font
Limbic_Region ok, approaching 1 hr of compiling ghc 6.6rc 2006-09-06 19:54
19:54 weinig is now known as weinig|bbl
TreyHarris lanny: actually, until late 2003, _ was the new string-concat operator. now it's ~ 19:55
:-)
Limbic_Region TreyHarris - you really keep up to date with the latest changes to the spec don't you 19:56
Limbic_Region is impressed
I mostly just look things up when it is no longer what I thought it was
TreyHarris not well enough :-) 19:57
Juerd Limbic_Region: Maybe someone else with root access did something
lanny Yeah. Read the early specs. Took a long break. Reread the synopsis. It's much better now. :)
Limbic_Region yeah, I thought about that after I remember you asking audreyt to do something and gaal requesting to be added to the sudoers 19:58
TreyHarris the synopses are very high signal-to-noise and very low redundancy. so you miss one delta, and you can easily miss a big change
Limbic_Region yep yep
TreyHarris that's why i got so panicky when synopsis svn logs broke and stopped going to p6-l for a few days :-) now i keep my own synopsis tree :-) 19:59
Juerd I'm upgrading feather again. We'll see if that breaks things. 20:01
(If it does, whoever fixed it made the same mistake I did: not disallowing debian to upgrade the thing)
Limbic_Region upgrading as in currently? 20:02
Juerd Hm, no new version of cgi:irc available
Limbic_Region and will that drop my session?
Juerd Yes, currently.
I have no idea.
20:03 onsen joined
Limbic_Region ok - I get the feeling ghc won't be finished compiling in the next 27 minutes anyway 20:03
Juerd Heh
Upgrading shouldn't take that long
TreyHarris ahhh... OS upgrades overwriting local changes. that brings me back :-) 20:05
anyone read the 500-mile email story? :-) 20:06
20:06 prefiks left
lanny Yeah. That's a good one 20:07
Read it at 1000 though
TreyHarris at 1000?
20:07 onsen_ joined
lanny This is the speed-of-light thing? My email stops after insert-distance-here? 20:07
TreyHarris yeah
lanny Yeah.
TreyHarris oh, did somebody modify my story to say 1000 miles and pass it off as their own? lol 20:08
lanny No idea. I could easily be misremembering.
I didn't think the actual distance was the take away from the story.
TreyHarris i once had a professor of folklore contact me to track down where I heard this "urban myth" from. she was simply incapable of believing me when I said it really happened to me :-) 20:09
no, it wasn't
Juerd Ah, there they go :)
TreyHarris: I've read this story. Did *you* experience that? 20:10
TreyHarris yes, i wrote the story.
Juerd That wasn't my question
But I'll assume the answer to it is also yes.
TreyHarris oh. yes, it was true.
Juerd That implies that the answer is yes, but still isn't exactly an answer to my question :) 20:11
TreyHarris oh... sorry... to be explicit, 1) i wrote it, 2) i did not write it as fiction, 3) it's not an exact retelling as that would have been boring, 4) there's a faq if you have any other questions ;-) 20:12
but it was 500 miles.
Juerd Heh. The answer to my question is clearly: "Yes, I experienced that"
possibly shortened to "Yes, I did", or just "Yes" :) 20:13
But thanks for answering a lot of other questions. I have no idea why I'd still have any FAQ left :)
TreyHarris lol. i didn't just say 'yes' because i wasn't sure if you meant did i experience the folklore professor contacting me, or did i experience the story being modified, or etc. etc. :-)
Juerd Heh :) 20:14
TreyHarris unlike the synopses, i always throw a little bit of redundancy in for error-correction ;-)
Juerd It's not really redundancy, though. It's more like parity, from which you can calculate the original value if you want it :) 20:15
TreyHarris *nod* i said i strive for redundancy, i didn't say accuracy ;-) 20:16
it's why i like Perl, I need the world to DWIM a lot 20:17
rodi oh. my. goodness. I just read www.ibiblio.org/harris/500milemail.html. That's hilarious, TreyHarris. 20:18
lambdabot Title: The case of the 500-mile email, tinyurl.com/t6pb
TreyHarris rodi: thanks, i'm glad you enjoyed it :-)
rodi And I can tell my children I "met" the man... 20:19
20:19 Limbic_Region joined
TreyHarris lol 20:20
Juerd TreyHarris: You didn't really say anything about striving, but I'll drop it altogether because I could go on for hours :) 20:22
rodi: Even better: the 500 mile email man likes Perl! Woohoo! 20:23
kane-xs TreyHarris: that story is cool mate :) 20:28
Limbic_Region has accidently rebooted an email server over 500 miles away
TreyHarris Limbic_Region: can't blame the speed of light for that :-) 20:29
Limbic_Region what I find the most interesting about that story is that the geostatistician was right and that they would think to trouble shoot it that way
TreyHarris well, i'm not sure they didn't just get lucky. GIS was their bread-and-butter, and when you have a hammer, everything's a nail. so when you luck out and it actually *is* a nail... 20:30
rodi type `rm -rf /var /cache/mason/cache` (<-- note the space between /var and /cache) on the load balancer for a very large cluster...
err...
typed
Limbic_Region oops 20:31
rodi that was a sad day.
TreyHarris rodi: i was wondering why you were advising us to take such questionable action :-)
rodi TreyHarris: my cow orkers from that time remind me of it whenever I suggest *any* action. 20:32
Limbic_Region ok, I am not going to stick around for ghc to finish compiling but it certainly looks like it is going to succeed
Limbic_Region heads home
TreyHarris rodi: one of my coworkers once was closing out a terminated employee's home directory for retention, and ran a setactl to recursively remove all permissions. unfortunately, he was cd'd to the top of the AFS tree.
rodi heh, oops. 20:33
TreyHarris of course, he then went home... and i got paged some hours later once the setacl had progressed through several million volumes.... 20:34
PerlJam And this is why you never do things like that *manually*
TreyHarris PerlJam: yes. unfortunately, many sysadmins can't or won't code, and even those that do generally don't until they notice that something is taking up a lot of their time... 20:35
but a lot of sysadmin tasks can't be tested, or at least can't be without putting orders of magnitude more time into the testing than into the task. so even when automated, mistakes like this often crop up the first time.... 20:36
20:41 kanru joined
TreyHarris hmm. i actually think hypothetical variables will be a great boon to sysadmins. not properly rolling back values after failure is a common class of bug i see in automation programming... 20:54
21:09 ruz joined 21:13 weinig|bbl is now known as weinig 21:20 crem joined 21:41 lanny joined 21:42 Limbic_Region joined 21:45 elmex joined 21:46 larsen joined
lanny In S03 on the range (..) operator it says *..* will match any value that supports the Ordered role. Anyone have any insight on the Ordered role or know where I might look it up? 21:49
21:52 Alchemy joined, larsen_ joined
pasteling "[particle]" at 144.81.84.199 pasted "all mentions of /ordered/i in the A/E/S" (22 lines, 765B) at sial.org/pbot/19523 21:53
[particle] lanny: looks like ENOSPEC
lanny Yeah. The crickets gave it away. 22:00
Was wondering if the idea was to implement a partial order and if so how that would interact with multiple sets of Ordered of which the super-set might not be Ordered. 22:02
But I guess I'll wait a bit for that part of the spec to be filled in. 22:05
Limbic_Region lanny - don't wait 22:06
do one of two things, suggest a patch to the spec
or put forward a test that looks something like what you think it may look like and ask for validation on the syntax as well as spec update
squeeky wheels get the greese 22:07
lanny Ok. Thanks for the direction.
22:14 jon_ joined 22:15 weinig is now known as weinig|bbl 22:20 cjeris left 22:24 elmex joined
TreyHarris lanny: inferring from other things TimToady has said along these lines, I would hypothesize that Ordered is anything which defines infix:<cmp> 22:36
oh, he's gone 22:37
@tell lanny inferring from other things TimToady has said along these lines, I would hypothesize that Ordered is anything which defines infix:<cmp>
lambdabot Consider it noted.
22:44 Aankhen`` joined 22:46 meppl joined 23:01 markstos joined
avar What's the current status of the non-pugs Perl 6 implementations? 23:04
E.g. parrot and the Pure-Perl6 implementation
markstos avar: You can see smoke results for them on smoke.pugscode.org 23:06
lambdabot Title: Pugs Smoke Reports
markstos avar: Also see "prove6 -h". It has flags to select different backends, so you can see how any specific test script (or scripts) work with a specific backend.
TreyHarris markstos: nothingmuch and I had an interesting discussion about 16hrs ago on the questions raised by your meth(%h) test 23:08
unresolved without TimToady, but you may want to have a look at the logs
markstos TreyHarris: Although I usually don't I backlogged this morning and read your specific response to me. 23:09
I saw that you agreed that my two cases were bugs.
But I'll take a second look to see other detalis.
(sp)
TreyHarris basically, since $obj.sub falls bock to sub($obj) and meth($obj) falls back to $obj.meth, it comes to the question of typing. in the absense of a multimethod foo, is the Int in sub foo (Int $x) advisory, or binding? 23:10
Perl 6 canonically supports typeless code. It canonically also supports some sort of typing but is largely unspecced. So... like I said, we need TimToady to resolve it :-) 23:11
markstos TreyHarris: from the spec, I didn't think meth($obj) should do that, unless there was a colon involved.
23:11 elmex joined
markstos But "my %h; %h.meth" looked just wrong, where "meth" was a homegrown method, not one of the built-ins. 23:12
TreyHarris it should. see S12, feather.perl6.nl/~agentzh/syn/S12.h...utine_call 23:13
lambdabot Title: S12, tinyurl.com/gbdh2
TreyHarris all classes are open.
so the only thing preventing %h.meth from dispatching to ::?CLASS::meth is the typing of the invocant to ::?CLASS, not Hash. 23:14
so in 'typeless code', I can't see why, given the current Synopsis state, %h.meth should not work. though i conceptually agree it probably shouldn't.
markstos It does say: "A method call first considers methods (including multi-methods and submethods) from the class hierarchy of $handle," 23:15
23:15 justatheory joined
markstos I just didn't think "m %h" sould be in an class/object heirarchy, as a lexical variable. 23:15
s/m /my/
so you posted to p6l ?
TreyHarris i'm not aware of truly classless variables... everything is an object or can be treated like one, is it not? 23:16
obra seen audreyt
TreyHarris no, i didn't post to p6l because i don't have any strong opinions on the matter, just making talmudic observations. i probably could write something up though. 23:17
i will
23:18 prism joined, Limbic_Region joined
markstos TreyHarris: Thanks! 23:18
I post brewing about some CATCH details I plan to post later. 23:19
TreyHarris oh, i forgot about that
you said something about when that i took objection to
hrm
markstos my questions are about 1: changing the topic in CATCH and 2. preserving the trace stack. 23:20
I had posted this as a bug, but I realized how I was confused now: 23:21
?eval { when 0 ~~ 1 { say "surprise!" } }
23:21 evalbot_r13102 is now known as evalbot_r13106
evalbot_r13106 OUTPUT[surprise! ] Bool::True 23:22
23:22 elmex_ joined
markstos Although maybe there is a bug: Should "when" complain when it's a block where no topic is set ? 23:22
I think so.
From the spec, I think the behavior in this case is "undefined". 23:23
TreyHarris no, I think $_ is always declared, isn't it? when must work when $_ is undefined 23:31
otherwise we'd have to write $_.defined and given..... 23:32
errr.... XXX.defined and given XXX....
sorry, i was looking in scrollback for that when 0 ~~ 1, and once I found it, you had already repasted it :-)
?eval { when 0 ~~ 0 { say "surprise!" } } 23:33
evalbot_r13106 undef
TreyHarris do you see now?
$_ is undef. so it's false. 0 ~~ 1 is false. so that matches
markstos I realized that was part of my confusion, but it still doesn't make sense. In the example $_ will /always/ be undef, so having a switch statement for that case is senseless. 23:34
If we want to set a topic manually, we already have 'given' for that.
So they way I see it, using 'when' inside of a block that doesn't set the topic might as well parsefail. 23:35
TreyHarris so you want an error for $_ not being possibly set when C<when> is called?
every block has a topic
at least it is the outside block's topic.
the top-level program's topic is $_
every block either topicalizes a new topic, or inherits the topic from the calling block
23:36 weinig|bbl is now known as weinig
[particle] when seems the same as do if topic is unset 23:36
TreyHarris ?eval { $_ = "hiya"; .say }
markstos TreyHarris: so you are in favor of declaring "when" anywhere and having it be valid ?
evalbot_r13106 OUTPUT[hiya ] Bool::True
[particle] hrm, perhaps that's untrue
do returns, i don't think when returns value 23:37
Limbic_Region particle - I may have a 6.6 bin dist for you by later tonight
[particle] ooh, shiny!
still compiling?
TreyHarris markstos: unsure. smartmatching against the topic quickly seems like useful behavior. but "and then jump to the end of the current block" seems a bit odd outside of a given
Limbic_Region oh no
It busted when it found I didn't have gmp
and instead of just compiling gmp
I decided to darc the ghc repository 23:38
[particle] ack!
Limbic_Region that way I can keep up to date by just doing the equivalent of svn up
markstos darcs++
TreyHarris i've advocated that an exiting when should throw an ExitWhenSuccess exception, which by given would be intercepted and cause ExitSuccess of the given, but by any other block would just be ignored, causing continuance.
Limbic_Region and recompiling every day will only compile the stuff that has changed
sorta like the way Pugs works
so I can provide a Win32 bin dist daily
TreyHarris but that's certainly not specced behavior or blessed by TimToady (yet). it's just unspecced currently.
Limbic_Region provided I have some place to upload it to 23:39
[particle] well there's always sendover.com etc
Limbic_Region actually, I was thinking feather
[particle] but a site would be better
right
Limbic_Region I have an acct - I just don't know how to make it available for those without an acct via the web 23:40
ok, just started the new build
gmp in place
as well as darcs repo
so provided all goes well - I can update daily
Limbic_Region assumes it links staticaly 23:41
[particle] lr: there's probably a dir under %home% you can put it in to make it web accessable
feather.nl/~<user>
Limbic_Region come to think of it - I have my own website
duh
[particle] heh
Limbic_Region also, I have a perlmonk.org acct
so yeah, 3 different locations I should be able to provide it
fwiw - compiling from source isn't for the faint of heart 23:42
but - I think once you get it done once, keeping it up to date is fairly trivial
TreyHarris ?eval .perl
evalbot_r13106 "\\undef"
Limbic_Region ?
?eval "hello".perl
evalbot_r13106 "\"hello\""
Limbic_Region ?eval ~"hello" 23:43
evalbot_r13106 "hello"
Limbic_Region interesting
I thought they were synonyms
oh wait
?eval hello.perl
evalbot_r13106 Error: No compatible subroutine found: "&hello"
Limbic_Region I think that first one is likely a bug
Juerd [particle]: Under UNIX, and Linux too, we call "%home%" either $HOME or simply ~. 23:44
[particle] ?eval say.perl
evalbot_r13106 OUTPUT[ ] "Bool::True"
[particle] juerd: i knew that *blush*
TreyHarris Limbic_Region: which first one?
Juerd [particle]: Naughty Windows boy.
Limbic_Region TreyHarris - I would have thought that both "hello".perl and ~
err
[particle] juerd: is it possible to set up gobby server on feather?
Limbic_Region ~
grr 23:45
Juerd [particle]: I assume so.
Limbic_Region ~"hello"
would have produced the same output
Juerd [particle]: I presume this doesn't take root access, so you could do it yourself
[particle] 't would be nice to do group editing sessions
well, i could try, but my linux skills are 5 years rusty
i'll give it a try when i need it 23:46
heck, i might learn something!
Juerd sobby - a dedicated server for collaborative editing
There's a debian package!
TreyHarris Limbic_Region: I don't think it's a bug... .perl produces a string, hence the first set of quotes. if it contains a string, it needs another set of quotes, which have to be backwacked 23:47
Juerd [particle]: Installed now. You only have to find a way to run it. :)
[particle] i think i can learn that part, thanks! 23:48
TreyHarris markstos: interestingly enough, if you run your when in a pugs program's top level (not inside any closure), neitheng when 0 ~~ 1 nor when 1 ~~ 1 runs its block. but just stick an empty closure in there and suddenly when 1 ~~ 0 runs
markstos TreyHarris: Interesting: as if the top level doesn't set the topic.
...but empty braces do ... seems inconsistent. 23:49
TreyHarris ahhhhh 23:50
i think that may be exactly right
markstos But "when 0 ~~ 1" is just a visual trick anyway, but I think it really means comparing "false" to the current topic, /not/ being executed when 0 ~~ 1.
TreyHarris oh. yes. i think any conditional in a when should raise a warning without ?(), because it will be a common mistake. i'll add that to the mail i'm writing 23:52
23:52 kanru joined
markstos doesn't know about ?() yet. 23:53
TreyHarris boolean context
markstos Ah.
TreyHarris like @() is array context, ~() string context, etc.
Limbic_Region particle - what timezone are you? 23:55
lovely arizona? 23:56
TreyHarris @localtime [particle]
lambdabot Local time for [particle] is Thu Sep 07 16:56:37 2006
Limbic_Region that looks like westcoast alright 23:57