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 TimToady: so far I've found very few gaps. 00:00
TreyHarris markstos: that's just because there are so few things unchanged ;-) 00:01
markstos Ha. I agree.
TreyHarris @tell Limbic_Region there have been a number of tests added in the past couple months with big loops, which have caused smokes to take longer. all_parse.t, for example, i wonder who's to blame for that one? ;-) 00:05
lambdabot Consider it noted.
svnbot6 r13203 | markstos++ | not.t and true.t now have links. TimToady++ pointed to their
r13203 | markstos++ | passing reference in the precendence table able in S03.
TimToady and Inf and NaN are really defined by IEEE, not by us... 00:06
markstos Can we at least include a stub with a pointer to that definition, then ? 00:07
TimToady well, you could certainly point to the paragraph in S02 that says 00:08
Perl 6 should by default make standard IEEE floating point concepts
visible, such as C<Inf> (infinity) and C<NaN> (not a number).
markstos Ok. I'll look at that.
TreyHarris TimToady: did you see my earlier eval: 00:10
?eval my @a = <a b>; my @b = <1 2>; @a >>~<< (([@b],) xx @a.elems)
00:10 evalbot_r13197 is now known as evalbot_r13202
evalbot_r13202 (("a1", "a2"), ("b1", "b2")) 00:10
TreyHarris Is there a simpler way? And how can I flatten the result? [,] doesn't work 00:11
00:12 rodi joined
markstos TreyHarris: you mean [,] doesn't work in Perl 6 for this, or it is unimplemented in pugs? I got the sense it wasn't finished yet. 00:12
svnbot6 r13204 | markstos++ | infinity.t now has a smartlink. TimToady++ for pointing out the right place.
TreyHarris markstos: oh, that's certainly plausible. for some reason i got the idea that [,] was working 00:14
i think i'll write a private CSS for smoke.html that makes failing todo's look like fails rather than passes, that will make it easier for me to keep track of what's implemented and what's not 00:15
putter TreyHarris++
markstos TreyHarris: I found the tests with [,] in them and ran them, and lots of things failed. 00:16
putter A color scheme which is user-oriented, "what WORKS", rather than "what surprises the developers", has been a todo item for a long time. 00:17
I think one "recent" suggestion was to have todo's be purple (ie, redish, but not quite). 00:18
TreyHarris yeah, list nesting and unnesting i think (maybe i should say, i hope) is missing pieces. for instance: 00:19
?eval my @a = <a b>; my @b = <1 2>; @a >>~<< (([@b],) xx @a.elems)
00:19 evalbot_r13202 is now known as evalbot_r13204
evalbot_r13204 (("a1", "a2"), ("b1", "b2")) 00:19
TreyHarris but:
?eval (("a1", "a2"), ("b1", "b2"))
evalbot_r13204 ("a1", "a2", "b1", "b2")
TreyHarris grins
TimToady bugs aside, I wonder if there's a missing metaoperator to do "outer" operations. 00:23
TreyHarris outer? does outer = tensor? 00:25
i.e., circle-cross product?
TimToady except "product" being generalized to any op applied pairwise to all possible pairings. 00:26
or is that what circle-cross means?
00:27 nekokak joined
TreyHarris well, i think circle- is a visual metaoperator for that... circle-plus is outer sum, circle-cross is outer product, etc? 00:27
it's been a looooong time since i took those classes though 00:28
TimToady unfortunately we've already used (+) etc for set ops, so we couldn't also use it for a metaoperator. 00:29
00:30 hikozaemon joined
TimToady {+} maybe 00:30
though }+{ is more like hyperops
which would give you @a }~{ @b for what you were trying to do. 00:31
wouldn't that drive syntax hilighters nuts...
TreyHarris *nod* braces won't throw the parser for a loop, but it would...
yes. :-)
i haven't thought it through yet, but should it still be theoretically possible to run a compiler without executing the source code in order to extract a syntax tree for a syntax highlighter to work perfectly without having to reverse-engineer the parser? i guess, code outside of macros, i suppose you can't avoid that unless you're willing to skip any syntax provided by macros... 00:35
00:35 prism joined
TreyHarris renormalist++ and i were talking a few days ago about how monstrously complicated even the smallest change to cperl-mode has become 00:35
audreyt the synhiliter can run with pure (i.e. memory access forbidden) or atomic (I/O forbidden) modes 00:36
TimToady Perl 6 is not a single language. I really don't expect any single syntax highlighting strategy to work.
markstos Good morning audreyt.
audreyt and depending on how the macro is written, it may still be processed fine under a restricted runloop 00:37
TimToady and I think it's really kinda silly to try to combine P5 and P6 modes
Juerd TimToady: Very few syntax highlighters are actually singular :)
audreyt hi markstos :)
Juerd They all use nested grammars :)
What we need to do is make our grammar easy to export :)
TreyHarris TimToady: yeah, that's another thing renormalist and I were talking about. all attepmts at multi-mode-modes in emacs at least have been rather problematic to say the least
TimToady eval "... 00:38
eval "...", :lang<elisp>
only inside out
TreyHarris shudders
Juerd TimToady: To a syntax highlighter, "" should just be quoting :)
TimToady $?GRAMMAR.elisp, I guess 00:39
Juerd It shouldn't try to be too smart.
audreyt goes get ready for $job
obra woo!
putter Unicode unfortunately does seem (very brief search) to have bare half circles. Just + and x half circles. :( 00:40
TimToady another approach to "outer" hypers is to commandeer junctions in list context: all(@a) ~ all(@b)
putter Circle unary prefix operator? 00:41
:/
TimToady ()*
()~
hmm
Juerd What are outer hypers? 00:43
TimToady what TreyHarris has been trying to express with his @a = <1,2> thingies 00:44
<a b> rather
sequence in Haskell, only maybe more general 00:45
TreyHarris @tell Limbic_Region duration 8464 (or 2h21m). much better than my last 4h6m. ghc-6.5++
lambdabot Consider it noted.
TimToady so <a b> mumble~ <1 2> produces a1 a2 b1 b2 00:46
00:46 frederico joined
TreyHarris Juerd: given <a b>, <1 2>, get <a1 a2 b1 b2>, or ... durnit, TimToady does it again :-) 00:46
TreyHarris thinks TimToady has ESP
Juerd Hmm
audreyt @tell Limbic_Region please rm blib6/lib/Test.pm.yml and try again... 00:47
lambdabot Consider it noted.
Juerd Can't we just hyper the hyper? :)
svnbot6 r13205 | markstos++ | [t/operators]
r13205 | markstos++ | all smart links working here now. added or fixed them in 6 files.
bsb what about a zip-permute instead of another hyper op
Juerd <a b> Ā»Ā»~Ā«Ā« <1 2> :)
TimToady did think about \>>~<<
00:47 lollan joined
TimToady briefly 00:47
very briefly...
audreyt @tell lumi please remmeber to update CompUnitVersion the next time Pugs.AST.Internals.Instances broke backcompat :) 00:48
lambdabot Consider it noted.
00:48 penk joined
TimToady >>\~<< also possible 00:48
Even \~ is possible
rodi "given <a b>, <1 2>, get <a1 a2 b1 b2>" looks suspiciously like Tensor product or Kronecker product...
TimToady but not terribly mnemonic
Juerd TimToady: I'm a fan of symmetric operators, so how about Ā»\~/Ā«? :)
00:49 Aankh|Clone joined
rodi except not flat, I guess. 00:49
markstos still hasn't figured out how to type unicode characters yet.
TimToady I'd just as soon keep Ā»Ā« meaning parallel
Juerd Ā»Ā«~Ā»Ā«. Beautiful and still easier to type than any other permutation loop set. :)
TimToady Could go with Ā«~Ā» for that matter 00:50
but the visual metaphor is a bit off
rodi suggests įšø, the runic letter GAR (u+16b8)
TimToady and risks confusion with ordinary hypers
Juerd TimToady: Must this be an operator?
TimToady Maybe set ops don't get (+)
Juerd <a b> ==> <1 2> ==> permute &infix:<~>; 00:51
TimToady almost nothing *must* be an operator. See Lisp.
TreyHarris <<~>> means ('~'), does it not?
Juerd TimToady: Will it be a good idea to have this as an operator?
TreyHarris: In current Perl 6, yes.
TimToady that I don't know yet. 00:52
bsb Juerd: I agree, make it something that produces the permutations, then maps an op
TimToady TreyHarris: <<~>> means qw// only where a term is expected. 00:53
(or a subscript)
TreyHarris i've been rather prolific in my use of <<>> wrt what is inside... i don't know that i want to stop to think about "does this look like an op"? that brings the problem of Perl 5 { } hash indexer
TimToady: ohhhh. good point...
TreyHarris lets it sink in
|+|? for either outer or set? 00:55
and let (+) be the other one?
svnbot6 r13206 | rodi++ | Added a few more tests for A::C objects where there was an obscure class
r13206 | rodi++ | instantiation issue.
Juerd TreyHarris: Very confusing because of +|, ~| and ?|
rodi ?eval class a { has $.b; }; my $b; my a $c .= new(:$b); # works 00:56
00:56 evalbot_r13204 is now known as evalbot_r13205
evalbot_r13205 \a.new(("b" => undef),) 00:56
rodi ?eval class a { has $.b; }; my $b; my a $c .= new(:$b ); # doesn't work
evalbot_r13205 Error: unexpected " " expecting "::", ":", identifier, "\\(", term or ")"
rodi anyone have a suggestion where to put that test?
TreyHarris has used bitwise-or perhaps ten times in his career, so he doesn't care about confusion :-)
Juerd I think I'll use bitwise ops a bit [no pun intended] more often than hyperhypers. 00:57
You see, I already have glob "{a,b}{1,2}" in my toolbox :)
3am. Sleepy time. 00:58
Good night 00:59
putter www.python.org/dev/peps/pep-0225/
lambdabot Title: PEP 225 -- Elementwise/Objectwise Operators
TreyHarris Juerd: interesting. what sort of programming do you do that frequently requires bitwise ops? (not challenging you, just curious.) or is it a "have a hammer" thing? Since bitwise ops aren't a frequently-used hammer in my toolbox, almost nothing looks like the right nail.
TimToady but that only works for ~
TreyHarris durnit.
Juerd TreyHarris: High traffic IP stuff.
TreyHarris *laugh* yeah, that'd do it :-)
Juerd TreyHarris: Too much traffic to do it with anything that sounds like a subcall. Too much work to do it with anything that's not perl. 01:00
Anyway, afk # z
TreyHarris TimToady: exactly, I actually tried to use it for * originally, and I turned it into ~ for the channel only because it was easier to see the parts going into the whole
TimToady I'm really thinking that (*) and (~) are the right general notation, and set ops can just go hang... :) 01:03
01:04 Dr_Pi joined
TimToady The ascii workaround for āˆ© can just be "intersect" or some such 01:04
01:04 Dr_Pi left
putter Ooo. Apl o.OP :) 01:05
TimToady I like the pillness of (OP) better
putter I don't disagree. Just brainstorming... 01:06
TreyHarris rodi: that would explain a bug i was seeing the other day, I thought :$x was unimpl and switched it to :x($x) and it worked, but I bet I removed the space in so doing. I don't see an obvious test... stick it into t/block/ or t/oo/ somewhere i guess, or maybe make a new test 01:08
TimToady these would all be the precedence known as "list infix", so you can just say 'a', 'b' (~) 1, 2
TreyHarris rodi: it's very much like one i was seeing the other day that audreyt fixed. ?(@($foo)) didn't work, but ?(@($foo) ) did....
or <a b> (~) <1 2>
TimToady same thing
TreyHarris ?eval my $foo = 1..3; ?(@($foo) ) 01:09
01:09 evalbot_r13205 is now known as evalbot_r13206
evalbot_r13206 Bool::True 01:09
TimToady <a b> is not the same as ['a', 'b'], but ('a', 'b')
and parens just disappear in list context.
?eval my $foo = 1..3; ?$foo[] 01:10
TreyHarris which means that that '
evalbot_r13206 Bool::True
TreyHarris (("a1", "a2"), ("b1", "b2"))' business was just nonsensical
01:11 Limbic_Region joined
TimToady well, depends on whether those nested tuples get bound to something scalar or listy 01:11
TreyHarris ?eval [?(@(undef,)), ?(list(undef,))].say
evalbot_r13206 OUTPUT[1 ] Bool::True
TimToady my ($a, $b) := (("a1", "a2"), ("b1", "b2"));
TreyHarris urgh
?eval ?(@(undef,))
evalbot_r13206 Bool::True
TreyHarris ?eval ?(list(undef,))
evalbot_r13206 Bool::False
TreyHarris TimToady: is that sane? it mirrors Perl 5, but I'm not sure that's a good thing 01:12
because it continues this idea markstos and others have gotten that "references are still there, we're just pretending they're not"
TimToady undef in list context is supposed to be 0 width but still cause error if accessed, so I'd say both of those should be false. 01:13
markstos [] is still there. What's it for, if not related to referencing ? 01:14
TreyHarris makes a note of the timestamp so he can smartlink TimToady's comment in the test he'll be writing ;-)
markstos and { name => 'value' }
TimToady it makes an array object out of a list.
or a hash object out of a list 01:15
markstos Different than @() and %() ?
TreyHarris will be back in 10 &
01:16 NamelessOne joined
TimToady yes, @() and %() merely require that an array or list be returned without mandating the construction of a new one. 01:16
s/list/hash/
markstos So {} and [] are constructors, while @() and %() ask for a particular return context
bsb what about 3-way permutations: <a b> (~) <1 2> (~) <x y> <a1x a1y a2x ...>? 01:17
TimToady yes. Similarly, new Dog requires a new Dog, whereas Dog() does not.
int() is a no-op on an int...
markstos Thanks for the clarification. 01:18
TimToady bsb: good question.
they could just be list associative.
01:18 Dr_Pi joined
TimToady like Y 01:18
markstos hmm, I thought 'method BUILD' would be inherited, but it appears it is not. 01:19
TimToady method BUILD is non-sensical, in general.
BUILD should almost always be a submethod
markstos I'm trying to port "new()" for Perl 5, and BUILD seems like it should be part of the solution, but all my code expects new() to be inherited. 01:20
TimToady it's fine to inherit new
just not BUILD
markstos should "method BUILD" be a parsefail ? It doesn't seem to inherit now with pugs. 01:21
TimToady the purpose of new nowadays is mostly just to translate positional to named form for BUILD
probably, but maybe the .META should decide. 01:22
markstos I would be nice to have a simple example of new() is S12. Is it just new (Str $class) { ... } ? 01:24
s/I would/It would/
TimToady classes aren't strings
and they aren't even Classes anymore.
markstos new ($class) { ... } ? 01:25
new (Moose $class) { ... } ?
rodi TreyHarris: sounds good, tx. (baby was crying, had to run upstairs)
svnbot6 r13207 | rodi++ | Output to terminal uses character(s) of choice, Rule.pm and Automata.pm
r13207 | rodi++ | use same interface for printchars, and example script updated
TimToady Moose is the undefined prototype object that knows it's a Moose without knowing which Moose it is.
markstos groans 01:26
In otherwords, it's anonymoose at that point ?
TimToady all you really need is method new ($a,$b) { self.bless(:$a, :$b) } 01:27
the constructor doesn't care whether you use a real object or not to name the class.
so if you say Moose.does(X) you never have to worry about whether you're getting confused by the metaclass. 01:28
markstos Doesn't the universe explode of I use "self." before there is an object that has been blessed ? 01:29
I mean, I could check myself, but I don't wan to explode.
TimToady Moose.does(X) and $moose.does(X) are entirely equivalent, except the latter is presumably a defined moose.
Moose is a surrogate self that works as long as you don't try to access its attributes 01:30
but you can reason with the platonic Moose just as if it were a real Moose, up to that point.
TreyHarris submethod BUILD does not preclude a subclass from running self.SUPER::build, does it?
markstos I see. Neat trick.
TimToady a submethod basically is constrained to say "next METHOD" if its self isn't an exact match. 01:31
markstos: thanks. and the metaobject is always Moose.META or $moose.META 01:32
(or .HOW if we do my proposed renaming)
TreyHarris ok. that's where I've been hung up: it seems a shame to copy-and-paste one's superclass's BUILD code just because it's a submethod
TimToady BUILD code should generally be just setting private attributes for that class. 01:33
markstos I just tested with 'method new', and it doesn't seem to be inherited either. That could be garden variety pugsbug?
TimToady yep
markstos I'll review the oo tests and see what's expected to be passing now.
TreyHarris TimToady: right, but if you're implementing Pugs is Dog, you may want Dog to handle the :tail_wagging_velocity correctly, since you never need to refer to it in your Pugs code other than to set it 01:34
rodi my $b; Someclass a .= new(:$b) ## is there a name for this kind of implicitly-named argument to a method? 01:35
TimToady hmm. 01:36
"self pair" doesn't quite work.
rodi it's close, though.
TimToady autopair maybe
good question though
rodi I like autopair. I'll add autopair.t to t/oo/class for this test. 01:37
TimToady need to decommute now, or risk starvation. :) 01:38
rodi have a good dinner :) 01:39
TimToady bbl &
TreyHarris TimToady: in DBC it's often important to differentiate (in parameter types or return types) between "my class, exactly" and "my virtual class" (to borrow a term). So class Dog { method sire returns Dog { } } guarantees $dog.sire.isa(Dog), but class Dog { method littermate returns ::?CLASS { } } guarantees that $dog.littermate.isa($dog.HOW), even if $dog is Pugs or Dalmatian or whatever.
commute, I'll ask again later :-)
markstos It looks like about 9/10 tests in t/oo/inheritence fail, which could explain why I can't get bless to work, or new to inherit... 01:45
TreyHarris markstos: audreyt says she has a mess of backlogged changes in the object model, but is waiting until after this release to commit them 01:46
markstos when might "this release" be? 01:47
Christmas? :)
TreyHarris next weekend i think she was shooting for 01:48
svnbot6 r13208 | audreyt++ | * more trivial test triaging...
TreyHarris as you can see, she's triaging tests to get ready ;-) 01:49
markstos Inheritence plays a fairly key role in CGI::Application. I suppose I'll have to set aside getting the remaining tests to pass until then
01:50 weinig|afk is now known as weinig|zZz
TreyHarris speaking of committing, anyone know if there's a policy on branching in pugs? i'd like to branch smoke to implement that CSS switcher thing (because I'm not sure how/if changing the format of smoke.html will affect the smoke server and want to get iblech etc. to look at the changes before I commit them) 01:52
i notice pugs is not rooted in a trunk/, but i just need a few files, so i could svn copy them within util/ 01:54
markstos TreyHarris: There's a precendent in: ./misc/pX/Common/P5_to_P6_Translation 01:55
the developer just added his username to some files to indicate they are his "personal" copies. 01:56
His intent was to provide stable and development versions of those files.
svnbot6 r13209 | rodi++ | Instantiation of class using adverbial autopair (e.g. .= new(:$a)) seems 02:04
r13209 | rodi++ | to currently not be working with a space after the autopair. Works fine
r13209 | rodi++ | without space around it, added test for both ways.
putter Could folks take a minute to run perl -MExtUtils::Embed -e ldopts and tell me whether -L/usr/local/lib (or some other localish library path) is present, and if so, is it before or after -L...versionmumble/CORE? 02:25
I have two perls which have the wrong thing (local first), and I'm trying to determine if they are merely broken, or indicative of a wider problem that Makefile.PL needs to dealwith. 02:26
markstos before.
putter Oh, I should have asked for version too.
markstos: thanks :)
markstos 5.8.8, that's on feather. 02:27
putter my thanks
markstos Linux, debian or ubuntu, I htink.
02:27 markstos left
wolverian debian sid 02:30
putter tnx 02:32
rodi putter: before, perl 5.8.7, Ubuntu 02:37
svnbot6 r13210 | rodi++ | added some additional documentation (README and pod) 02:49
TimToady TreyHarris: on the DBC thing, Dog $a is asserting that $a.does(Dog), and where Dog is a class, that degenerates to .isa(Dog). 02:51
to get exact match you say $a where { .WHAT === Dog } or some such. 02:52
submethods give you an exact match on self automatically though.
That'd be where { .WHAT === $?CLASS }, since it's the lexical class. 02:55
rodi perldoc is written, baby is in bed, puppy is walked, lady is asleep... time for a cold one. Can I get anybody else one? 03:03
03:10 radians joined
cj TreyHarris: do you do audio stuff? 03:14
TimToady: I didn't know you IRC'd :) 03:15
putter Ok, I'm going to declare my build problems simply a broken site. Unless others run into the same problem. 03:17
Namely, the ccopts and ldopts provided by (the Config of) the perl which runs Makefile.pl, must result in headers (eg, perl.h) and a libperl which are compatible with each other and with that Config. 03:19
03:27 \nrg joined
putter One way for this to fail is if ccopts or ldopts -I or -L a "general" directory, like /usr/local/{include,lib}, and there are headers or libraries there from a different version of perl. 03:27
I can't think of a plausibly easy way to guard against this. The pugs build failing at link time may have to be sufficient, though hypothetically at least, the failure mode might be more subtle. 03:30
svnbot6 r13211 | lanny++ | L<S29/List/"=item sort"> in perl6. Eventually move to prelude. 03:37
TreyHarris cj: yes you did, we've talked here before: colabti.de/irclogger/irclogger_log/...,Mon#l1335 ;-) 04:26
lambdabot Title: #perl6 2006-08-21,Mon, tinyurl.com/z76pf
TreyHarris audio stuff? i speak. sometimes, i listen. 04:27
04:27 hcchien joined
TreyHarris TimToady: "submethods give you an exact match on self automatically though." That sounds like submethods like BUILD are *not* subject to calling via SUPER or NEXT 04:29
svnbot6 r13212 | putter++ | Created a new file, PROBLEMS.
r13212 | putter++ | It is not uncommon for us to do a release, and find some particular system configuration somewhere is having difficulties. This file is intended as a place to accumulate information on symptoms and work arounds for the current release. It is mainly intended for developers, rather than users.
r13212 | putter++ | I included a description of make pugs failing to link because of a mismatched libperl.
04:30 \nrg left
TimToady TreyHarris: it really depends on which dispatcher you're talking about. The submethod itself doesn't necessarily do the exact match check. 04:42
use of SUPER is rather frowned on in Perl 6 because it tends to shut out siblings, unless you're careful to define it as C3 order, kind of emulating SI. 04:43
there is no NEXT.
"next METHOD" is just assuming that the dispatcher loop has a list that it's iterating over, 04:44
and that the loop label is NEXT:
*METHOD, that is
but infrastructural dispatchers may in fact lie to the methods their calling
the BUILDALL in particular must tell the BUILD to do it's magic as if it's the current object, ignoring the "real" type of the object. 04:45
it really just ends up calling all the BUILD routines as if they're subs, not methods at all. 04:46
likewise all the WALK[...] iterators define an order to call the methods as subs. 04:47
but with ordinary method calls the call into a particular class is allowed to inherit methods from parent classes, whereas submethods in parent classes are invisible. 04:49
svnbot6 r13213 | trey++ | [t/builtins/undef.t]
r13213 | trey++ | Added tests for ?(@(undef,)) and
r13213 | trey++ | ?(list(undef,)). One fails. Fixed a
r13213 | trey++ | broken smartlink.
TreyHarris i think i see
TimToady the discussion in A12 is still pretty accurate when it comes to SMD. 04:50
MMD has evolved rather more in the meanwhile. 04:51
TreyHarris ok. But I'm not sure your earlier answer got the gist of what I was asking. Let me give a quick example:
class Dog { method sire returns MUMBLE1 { ... }; method littermate returns MUMBLE2 { ... } }; class Dalmatian is Dog { # no reimplementation of either .sire or .littermate } 04:52
in DBC, I would like to use one MUMBLE1 to indicate that sire will return anything that does Dog. MUMBLE2 indicates that littermate will return only things that do $self's type. I was thinking that 'Dog' is MUMBLE1, and '::?CLASS' is MUMBLE2. sane? 04:54
TimToady No, ::?CLASS is equivalent to Dog 04:55
both of those would be a "does".
you want "returns Dog where { .WHAT === Dog }" or some such. 04:56
we don't encourage exact type matches...
TreyHarris ok, that's what I wondered. So ::?CLASS is static, not virtual.
TimToady it's no more virtual than Dog, though class names *can* be virtual. 04:57
TreyHarris 'returns Dog where { .WHAT === Dog}' is specifically what I *don't* want, I think. I'm not claiming that .sire will be exactly a Dog. I'm just claiming that .sire.does(Dog). (.isa is gone, or just discouraged?). so 'returns Dog' should be sufficient there.
because a Mutt might have a Dalmatian sire, or a Mutt sire, or a Chihuahua sire... 04:58
TimToady all such assertions are "does"
it's just that if the typename happens to be a class, it devolves to isa
if the typename happens to be both a class and a role, then .does is true if either this class does the role or isa subtype of the class 05:00
TreyHarris but if self is Mutt, self.littermate will do Mutt. not Dalmatian or Chihuahua, Mutt (though maybe Runt, where Runt is Mutt). and i'd like to make this assertion declaratively, in Dog. In Eiffel, one uses "like self" to describe this.
"like self" is a pretend type that just means "does self" 05:01
but you use "like self" just as you would use Num or Str or Mutt 05:02
do you get the distinction i'm making? 05:03
TimToady within the Dog class, "Dog" virtualizes to "Mutt", according to the current spec. Not sure if this is what you're looking for... 05:04
more precisely, within the virtual methods Dog is virtualized. 05:05
outside of them, Dog just means Dog.
so basically, inside methods, Dog means "like self", I think. 05:06
and the signature would count as "inside"
05:07 mdiep joined
TimToady this is also discussed in A12--don't know how much made it into S12... 05:07
TreyHarris ah. ok. so that's where you invoked the where clause. if you really were expressing the idea "this method returns something that may not be compatible with self's type", you'd have to say "returns Dog where { .HOW.does(Dog) }" 05:08
and so there the two cases of 'Dog' are treated differently. the first is effectively rewritten to whatever class you're in now; the second is really truly ::Dog 05:09
TimToady no, .HOW is a MetaClass object, or a Class object maybe. It's emphatically *not* a Dog object...
and doesn't do Dog.
TreyHarris hmmmm
TimToady but yes, if the methods are virtual, the referenced class names virtualize along with the current object's class. 05:10
I believe the example in A12 was deriving a Japanese::Forest from Forest and having the frogs say "ribbet" in Japanese automatically...
however, I'm not familiar enough with the Eiffel usage to know whether this maps everything well enough. 05:12
hmm, I guess { .WHAT eq 'Dog' } would certainly devirtualize 05:13
whereas { .WHAT === Dog } might still be virtual, but require an exact match to the current self, whatever it is. 05:14
TreyHarris it sounds like, then, that class Routine { method outer returns Routine { ... } } and class Method is Routine { method invocant { ... } } couldn't work, because you might do $method.outer.invocant. and unless $method.outer is a Method, that will fail. but according to DBC, that must work.
unless you explicitly reimplement Method::outer to return Routine 05:15
TimToady it's possible that there's some hanky panky going on there of a covariant/contravariant nature that devirtualizes other instances of Routine, such as in a returns, I suppose. 05:18
I'm still sufficiently jetlagged that it seems like the middle of the night... 05:19
TreyHarris ok. i'll think about this some more. thanks :-)
TimToady so I'm in a bit of a muddle at the moment. 'course, could just be senility too... 05:20
TreyHarris i'll try to come up with a very simple use case and post to p6-l so you can think about it at your leisure 05:21
TimToady k.
well, I should really sleep now.
zzz &
TreyHarris g'night :-) 05:22
?eval class Foo { ... }; Foo ~~ Foo 05:37
05:37 evalbot_r13206 is now known as evalbot_r13213
evalbot_r13213 *** ... - not yet implemented at <eval> line 1, column 13-17 05:37
TreyHarris ?eval class Foo { }; Foo ~~ Foo 05:38
evalbot_r13213 Bool::True
05:47 nothingmuch joined 05:51 corpse joined 06:00 marmic joined 06:38 ludan joined 06:48 kane-xs joined, iblechbot joined 06:51 Kattana joined 06:55 xerox joined 07:15 mugwump joined 07:43 KingDiamond joined 07:44 premshree_ joined
gaal moose 08:01
08:09 traecer joined, ruoso joined 08:21 lisppaste3 joined 08:24 notThis joined 08:40 drrho joined 08:50 hugues23 joined 08:52 hugues23 joined 09:04 prefiks joined 09:39 chris2 joined 09:40 cognominal joined 09:49 penk joined 09:59 elmex joined 10:02 iblechbot joined 10:05 KingDiamond joined 10:11 traecer joined 10:33 markstos joined 10:37 rodi joined
rodi Openfoundry's subversion a little sad this any(<morning afternoon night>)? 10:43
svnbot6 r13214 | markstos++ | Add smart links to numify.t 10:44
r13215 | markstos++ | Move tests for "+" from builtins to operators to reflect how it appears in the Spec.
markstos working OK from here. ($here eq 'Richmond, Indiana', probably via Sprint)
rodi if I'm lucky, maybe they've taken away my commit bit :-D 10:45
gaal rodi: very slow for me
waiting on a commit maybe 5 minutes now
svnbot6 r13216 | gaal++ | * Pretty printing of Signature objects. 10:47
r13216 | gaal++ | - Should work ok (see t/syntax/signature.t): invocant, positional,
r13216 | gaal++ | named, optional/required, parameter traits.
r13216 | gaal++ | - Partially supported: :(MyType $x), :($x = "default")
r13216 | gaal++ | (lossy/messy output)
r13216 | gaal++ | - Still not perfect. Please add more tests!
rodi well, thar she blows, gaal :)
gaal good. This seriously eases writing test for introspection :) 10:48
rodi w00t!
svnbot6 r13217 | markstos++ | [t/builtins/system/create_files.pl] 10:56
r13217 | markstos++ | [t/builtins/system/dump_args-p5.pl]
r13217 | markstos++ | [t/builtins/system/dump_args.pl]
r13217 | markstos++ | [t/builtins/system/system_tests]
r13217 | markstos++ | Added a request for comment to all of these files. They don't
r13217 | markstos++ | appear to be directly part of the test suite and it's not clear
r13217 | markstos++ | what their reason to exist is.
10:58 avarab joined
xerox How do you see the ++ overall score? :D 10:59
10:59 avarab joined 11:03 avarab joined
markstos @tell Limbric_Region take a look at t/builtins/system/01-strings-with-spaces.t and if it can be enabled on Win32 now. Thanks! 11:08
lambdabot Consider it noted.
svnbot6 r13218 | markstos++ | [t/builtins/system/01-strings-with-spaces.t]
r13218 | markstos++ | very minor cleanups.
lumi markstos: Limbic I think 11:10
lambdabot lumi: You have 1 new message. '/msg lambdabot @messages' to read it.
markstos @tell Limbic_Region take a look at t/builtins/system/01-strings-with-spaces.t and if it can be enabled on Win32 now. Thanks! 11:11
lambdabot Consider it noted.
11:11 bcorn_ joined 11:12 avarab is now known as avar
svnbot6 r13219 | markstos++ | [t/builtins/system/chmod.t] 11:20
r13219 | markstos++ | Add placeholder link to S16. It fails now because S16 isn't written yet.
r13220 | markstos++ | mv evalfile.t to builtins/control_flow, to match how it appears in the spec. 11:23
11:24 buetow joined
svnbot6 r13221 | markstos++ | [t/builtins/io] 11:33
r13221 | markstos++ | Three smart links here, including some more to the yet-to-appear S16.
r13222 | markstos++ | Add smart link to exit.t 11:36
r13223 | markstos++ | move exit tests to builtins/control_flow to be consistent with the spec. 11:39
r13224 | audreyt++ | * GHC probing on Win32 now no longer fails when \ghc\unrelated-directory exists. 11:45
r13224 | audreyt++ | * Also allow installation of GHC directly inside \ghc\ to be probed.
r13225 | markstos++ | Add smart link, typo fix and clean up to io_edge_error_cases.t 11:48
r13226 | markstos++ | rename io_edge_error_cases.t to open.t, since that's all 11:51
r13226 | markstos++ | it tested and there are no other open() tests.
r13226 | markstos++ | Also, a smart link for getc.t.
markstos @tell agentzh: I've made several links to L<S16>, which is described in S29, but doesn't exist. Perhaps these shouldn't be considered errors now since we know the document will eventually exist. 11:53
lambdabot Consider it noted.
svnbot6 r13227 | markstos++ | [t/builtins/io] 12:06
r13227 | markstos++ | several more smart links.
12:06 Limbic_Region joined 12:08 iblechbot joined
svnbot6 r13228 | markstos++ | move sleep.t to control_flow/ for spec consistency. 12:12
markstos so system() has been renamed to run() ? It appears so, but it's confusing because at the end of the run docs in S29, there's a note from Larry that "maybe system() should be renamed to run()". If this has already happened, that note should be converted to the past tense or removed. 12:18
@tell TimToady so system() has been renamed to run() ? It appears so, but it's confusing because at the end of the run docs in S29, there's a note from Larry that "maybe system() should be renamed to run()". If this has already happened, that note should be converted to the past tense or removed.
lambdabot Consider it noted.
audreyt it havn't already happened 12:19
audreyt is in awe of markstos's massive t/ work
markstos but it will ?
audreyt I don't know, run() seems like an awfully good userspace name
Limbic_Region audreyt - s/havn't/hasn't/
lambdabot Limbic_Region: You have 4 new messages. '/msg lambdabot @messages' to read them.
markstos Should system() tests be converted to run() :todo tets ?
audreyt Limbic_Region: thanks
markstos run() is a method named used by ever CGI::App based application... 12:20
audreyt Limbic_Region: I finally got my adapter -- can resume win32 hacking
the main concern is system() returning true instead of 0 is confusing
markstos Ok, I'll leave the system() tests alone for now, just adding a smart link
audreyt yup
Limbic_Region audreyt - ok, not sure I remember everything I wanted you to look at
for one though - the libwww tests in ext are causing *my* Win32 to fail
for another - the oddity that requires $debug to be on for File::Find 12:21
audreyt Limbic_Region: add them to TASKS or hiveminder.com or somewhere?
markstos audreyt: It's easier to create a ton of test clean up commits than a bunch of code commits. :) I would actually make /less/ commits, but svk/svn seems to have a limitation about moving modified files.
Limbic_Region but more importantly, all_parse.t doesn't apparently work at all under the harness on Win32
audreyt right, it's two-stage
I just made precompile.t pass. will commit in a bit
Limbic_Region has never used hiveminder but he will look into it
audreyt still settling down after $job
Limbic_Region markstos - you still need me to validate a test on Win32 for you? 12:22
audreyt it's really nice that the bandwidth on the taxi back home is better than the ADSL at home.
12:22 agentzh joined
Limbic_Region t/builtins/system/01-strings-with-spaces.t ? 12:22
markstos Limbric_Region: The referenced test has over 300 tests that are disabled.
It would be cool if they could be enabled, but they only apply to Win32, apparently.
But I didn't want to enable them, since I can't test the Win32 breakage that might happen. 12:23
Limbic_Region ok - let me try and remember all the things that are currently quirky on Win32 and then I will look into that
markstos :)
12:24 integral_ joined 12:26 integral_ is now known as integral
agentzh at least the following modules can't build on strawberry perl: libwin32, IRC::Run, and GraphViz. 12:26
*IPC
svnbot6 r13229 | markstos++ | Add smart link to io/system.t 12:28
r13230 | markstos++ | mkdir t/builtins/os and move system.t there, to be consistent with spec layout.
agentzh but on the other hand, a lot of other modules failing on AS perl builds happily on strawberry. :)
12:28 markstos left 12:29 weinig joined
agentzh my PerlMaple also fails on strawberry perl. i don't have a fix since i'll have to link windows' .lib files using mingw, which seems to be impossible. 12:30
Limbic_Region audreyt - I assume you wanted me to hiveminder stuff so that you could see it too? I am not sure how to do that
agentzh Limbic_Region: are you using strawberry perl or activeperl? 12:31
Limbic_Region agentzh - ActivePerl
though I have a couple of Win32 perl's at my disposal (cygwin, source from mingw) 12:32
audreyt Limbic_Region: create task and assign to [email@hidden.address]
Limbic_Region ahhh
agentzh LR: i have a cygwin perl too. 12:33
i'll try installing Jifty to strawberry perl.
audreyt: do you think it possible to link .lib files to strawberry perl? 12:35
audreyt agentzh: irc.perl.org #win32 is the place for such questions
agentzh audreyt: thanks. :) 12:36
audreyt np :)
Limbic_Region grrr - how can I tell which tasks I have assigned to you audreyt - tasks disappear after creation so I can't be sure I entered them correctly 12:38
12:39 agentzh joined
audreyt Limbic_Region: it's done correctly 12:40
Limbic_Region audreyt - there is not way for you to know either unless you know how many tasks I have entered :P 12:41
I have several duplicates already showing up so it can't all be going well
ok, should have been 3 tasks which is all I can think of at the moment 12:44
audreyt Limbic_Region: you can also view them under the "pugs" group 12:45
Limbic_Region neat 12:47
12:48 weinig is now known as weinig|voting
svnbot6 r13231 | audreyt++ | * t/unspecced/precompile.t: Some filesystems only have 12:49
r13231 | audreyt++ | two-second-level time granularity, so we "sleep 2" for
r13231 | audreyt++ | testing .yml/.pm staleness.
r13231 | audreyt++ | * Implement staleness checking for .yml/.pm loader.
nothingmuch @tell TreyHarris The TTH changes sound good, ping me when you wake up 12:54
lambdabot Consider it noted.
kolibrie lambdabot is so friendly 12:56
nothingmuch lambdabot++
Limbic_Region OT - anyone know a decent way of parsing ethereal/wireshark dumps? 12:59
agentzh perlbot: karma lambdabot
jabbot agentzh: lambdabot has karma of 1
perlbot Karma for lambdabot: 1
agentzh perlbot: karma agentzh 13:00
jabbot agentzh: agentzh has karma of 16
perlbot Karma for agentzh: 46
13:12 fglock joined 13:13 integral joined 13:23 weinig|voting is now known as weinig
gaal Limbic_Region: what do you need to do with them? fwiw tethereal provides a command line tool you can use to filter, etc. 13:24
Limbic_Region gaal - actually, I was able to get by with just exporting the column headers to csv 13:27
I need to parse them without ethereal/wireshark - I know about the built-in filters and utilities
gaal what protocol? 13:29
Limbic_Region mostly udp
audreyt $job++ # prompted me to cleanup and re-release PDF::FromHTML
gaal yo audreyt
audreyt $job-- # out of tuits and I have to sleep now :/
gaal: hi :)
gaal bye audreyt :) 13:30
13:30 hexmode joined
Limbic_Region is running a smoke but notices the time has jumped by nearly 100% (25 mins to 50 mins) since around the 7th 13:30
sleep well audreyt
obra audreyt: any other fun job stuff?
audreyt obra: nothiing much... a rico widget that remembers its checkbox state 13:32
much better than paging for 500+ rows of data
obra heh
audreyt but I donn't (yet) have that many todos on hm :)
obra I'm currently attempting to sort out a useful login plugin. but I don't think that's useful for you
audreyt no, not really. $coworkers are busy writing documentation for RPS 13:33
both hacking and using, but I don't expect many reusable-in-jiftyland things
obra nodnodno
sleep well
audreyt the other fun stuff will become commits back to the GHC tree :) 13:34
*wave* &
obra heh
agentzh obra: when will be the next release of jifty? 13:37
13:41 ofer0 joined 13:50 cjeris joined
agentzh is going to disable his perl 5 embedding just like putter. 13:50
13:58 fglock joined 13:59 iblechbot joined 14:07 vel joined 14:23 amnesiac joined 14:37 onsen joined
agentzh yay! cron says that we have 400 smartlinks in the test suite now. :) 14:37
svnbot6 r13232 | audreyt++ | * 15:50 * agentzh is going to disable his perl 5 embedding just like putter. 14:38
r13232 | audreyt++ | To save agentzh++'s sanity, relax the ActivePerl requirement to 5.8.7 build 815,
r13232 | audreyt++ | which is the first build that offers MinGW compatibility.
agentzh audreyt: yay!
oh, my AS build is 813. 14:39
sigh.
but pugs doesn't check my AS build number, it seems. :) 14:42
svnbot6 r13233 | audreyt++ | * Perl6::Spec updater: Change the initial timeout to 10sec
r13233 | audreyt++ | for people running Pugs's Makefile.PL without a working
r13233 | audreyt++ | internet conection.
agentzh and the build fails. so i need to upgrade at least to build 815. 14:44
14:46 elmex joined
Limbic_Region @tell TreyHarris WRT t/builtins/system/01-strings-with-spaces.t on Win32 - only 1 test passed and that was the establishment of the test files (I am disabling again locally) 14:53
lambdabot Consider it noted.
pasteling "agentzh" at 210.22.200.67 pasted "Pugs build failure on ActivePerl 5.8.7 build 815" (72 lines, 3.2K) at sial.org/pbot/19634 14:56
agentzh even build 815 fails. alas.
Limbic_Region agentzh - is there a reason not to just upgrade all the way and replace ppm4 with ppm3 (assuming that is why you are avoiding the upgrade) 14:58
agentzh Limbic_Region: because i have installed all those tricky modules on AS 5.8.7, which are invaluable.
Limbic_Region um, so set PERL5LIB env variable? 14:59
AFAIK, they are binary compatible
agentzh PERL5LIB env sounds like a good idea. 15:00
will try it out
:)
Limbic_Region please ensure to test as I may be wrong about the bin compatibility
15:01 frankg joined
agentzh i'm not believe in the 5.8.8 to 5.8.7 binary compatibility at all 15:02
(to be honest)
rgs why ?
agentzh because i'm having a lot of problems after installing 5.8.8 directly over 5.8.7's installation directory. 15:03
rgs such as linking problems ?
agentzh rgs: nope 15:04
weird errors like...
a sec...
colabti.de/irclogger/irclogger_log/...1,Mon#l495 15:06
lambdabot Title: #perl6 2006-09-11,Mon, tinyurl.com/k5qmu
Limbic_Region directly over? woah - wouldn't have suggested that
agentzh and also...
15:07 dakkar joined
rgs hmm. on windows ? 15:07
obra agentzh: as soon as I get a cacne to changelog
agentzh yeah
obra: what is the status of jifty on win32? 15:08
rgs: ActivePerl
obra: audreyt suggested using the "notest install" trick to install Jifty on Windows. 15:09
rgs might be a mismatch or a misinstallation of re.pm. did you reboot after having upgraded perl ?
obra agentzh: actually, kenichi ishigaki has built a PPM repository for it 15:10
agentzh obra: really? where's it?
rgs: no.
rgs might be it 15:11
(cargo culting problems seen on P5P)
agentzh ah
obra agentzh: hm. pop on to #jifty and ask charsbar to mail to the list? I thought he had 15:13
agentzh #jifty is on freenode?
rgs: upgrading to 5.8.8 has caused a *lot* more problems than 5.8.7.
rgs: i've been fighting since the day 5.8.8 was released. 15:14
mostly it's actvestate's fault, i think. 15:15
rgs strange, because we (P5P) haven't received broken compat bug reports
and Nicholas is quite paranoid about that
agentzh LOL
almost all the problems are specific to ActivePerl, iirc. 15:16
obra #jifty on freenode
agentzh obra: thanks :)
obra activestate changed a bunch of stuff for their 5.8.8 release
agentzh indeed...
15:17 frankg joined 15:19 nine joined 15:21 kanru joined
svnbot6 r13234 | audreyt++ | * Another attempt at fixing ActivePerl build once and for all, 15:33
r13234 | audreyt++ | including older 5.8 builds.
obra impressive for a sleeping ms tang 15:35
svnbot6 r13235 | audreyt++ | * extend the backward-compat fix to 5.8.x on other Win32 distributions as well.
agentzh chortles. 15:41
23:40 for audreyt...err, not extremely late. :)
15:42 kisu joined, traecer joined
agentzh oh, i shouldn't have mentioned her name... 15:42
15:59 marin joined
marin freelance-job.blogspot.com/2006/09/...eport.html 16:01
lambdabot Title: FREELANCE JOB, tinyurl.com/freye
16:02 amnesiac joined 16:04 Psyche^ joined 16:07 Alchemy joined 16:11 Psyche^ is now known as Patterner 16:14 Khisanth joined 16:28 weinig is now known as weinig|bbl 16:31 justatheory joined 16:53 [particle] joined 16:54 araujo joined
cj TreyHarris: 20:15 < cj> TimToady: I didn't know you IRC'd :) 16:55
TreyHarris: you're not TimToady
Limbic_Region cj - perhaps TreyHarris pasted it for TimToady's benefit as he was AFK at the time? 16:56
cj Limbic_Region: but TreyHarris said: 21:26 < TreyHarris> cj: yes you did, we've talked here before: 16:58
colabti.de/irclogger/irclogger_log/...,Mon#l1335 ;-)
lambdabot Title: #perl6 2006-08-21,Mon, tinyurl.com/z76pf
cj which makes me think that he thought I was saying that I didn't know that he IRC'd. 16:59
anyway, good morning folks :)
Limbic_Region oh, *shrug* 17:00
well, both TreyHarris and TimToady IRC and have for some time now
good localtime to you
TreyHarris cj: earlier i screwed up the highlighting of comments with my name, and didn't look closely at your comment :-) 17:01
lambdabot TreyHarris: You have 2 new messages. '/msg lambdabot @messages' to read them.
TreyHarris Limbic_Region: why were you telling me about 01-string-with-spaces.t? 17:02
Limbic_Region one of those comments is from me
misfire
TreyHarris ah. "confusing people for other people, it's the hit new game that everyone is playing!" 17:03
Limbic_Region @tell markstos WRT t/builtins/system/01-strings-with-spaces.t on Win32 - only 1 test passed and that was the establishment of the test files (I am disabling again locally)
lambdabot Consider it noted.
Limbic_Region heh 17:04
I had 4 msgs from @lamdabot myself and yours was adjacent to the one from markstos
17:04 Psyche^ joined 17:07 mdiep joined
TreyHarris hm. could someone look at audreyt's diff -r13230:13231 t/unspecced/precompile.t, and tell me why the BEGIN block that was added is needed? 17:07
[particle] (or if you're using svn 1.4, that's diff -c 13231) # svn++ 17:08
rodi [particle]: wasn't that just released an hour ago? ;)
[particle] yes, and it works great :)
17:10 ludan joined
Limbic_Region TreyHarris - you mean, why the code needed to be added as a BEGIN block or why a distinction in OS was necessary? 17:10
TreyHarris eh? 17:12
TreyHarris looks at the diff again
Limbic_Region fwiw, I think I know why the skiprest was added for Win32ish platforms but not why it was in a BEGIN block
TreyHarris the OS distinction wasn't added, it was already there. the BEGIN block is what was added....
I'm asking about the BEGIN block 17:13
errr.... surrounding that preexisting code in a BEGIN block. I guess it's not quite correct to say the BEGIN block was "added".
Limbic_Region that's what I am talking about - which is testing what platform it is being run on and then skipping rest if Win32
TreyHarris Limbic_Region: lol... I have such trouble making myself clear. I mean the *lines* "BEGIN {" and "}" were added. Why? I don't care about what's inside those lines except as it relates to why those two lines were added :-) 17:14
Limbic_Region TreyHarris, that's what I asked you. - Why in a begin block or why at all 17:15
[particle] waits painfully while his pugs working copy is upgraded to svn 1.4
Limbic_Region I have no idea why it is in a begin block
doesn't make much sense to me
TreyHarris I guess I'll ask audreyt when she returns 17:16
Limbic_Region and I was parsing the diff wrong anyway - I thought the Win32 skip lines (diff context) were being added as well
TreyHarris Limbic_Region: ah, ok. I reread my question and couldn't figure out why it was misinterpreted that way. :-) 17:17
17:17 Psyche^ is now known as Patterner
Limbic_Region TreyHarris - BEGIN block lead me to believe there was a chunk of code so that's what my eyes showed me 17:18
TreyHarris But last night I spent an hour talking to TimToady about notions of self's type, and I still don't think I got the point of my question across. As they say in French, "I'm unlucky in thought" ;-)
Limbic_Region if you had said - can anyone tell me why that block of code was put in BEGIN braces, I would have not been so fast to confuse myself
[particle] TreyHarris: possible so the exit occurs before other modules are loaded? 17:19
TreyHarris applauds [particle]
yep, that's exactly it.
thanks
[particle] anytime :)
TreyHarris oohrm. is unless try({ eval("1", :lang<perl5>) }) legal? I copied-and-pasted it from elsewhere... but doesn't that a) call try() as a sub, which i may not be, and b) need to be written unless do try { ... }, to treat the block as an expression? 17:22
[particle] what does C<[=] $x;> do? 17:27
TreyHarris nullop, I would assume, given the discussion of identity relationships and reduce operators 17:28
the identity value for = would be undef, I suppose, so [=] $x would be equiv to undef = $x 17:29
I think [X] $x; is supposed to always be a nullop, regardless of X
[particle] perfect, thanks. 17:30
TreyHarris (except maybe it will throw an error if $x can't be the RHS of X?)
PerlJam TreyHarris: What's the value of [+] 5 ? 17:31
[particle] pj: i assume you mean $x = [+] 5 or something 17:32
?eval [+] 5
17:32 evalbot_r13213 is now known as evalbot_r13235
evalbot_r13235 5 17:32
PerlJam I'm trying to ascertain what TreyHarris means by "nullop" exactly. 17:33
[particle] ?eval [+=] 5
evalbot_r13235 Error: unexpected "[" or "=" expecting program
[particle] ah, that an ENOIMPL
PerlJam [particle]: did someone add tests for those? 17:34
TreyHarris PerlJam: ([X] $x) is equivalent to ($x). putting the reduce op there is an operation that does nothing. a null operation, or a nullop.
[particle] yeah, i think the add/sub/etc ops should act differently from assign ops in reduce
PerlJam TreyHarris: okay, just checking.
[particle] ?eval [=] 5
evalbot_r13235 5
TreyHarris heads out for meetings & 17:35
agentzh heads out for sleep & 17:36
17:36 agentzh left, traecer joined
svnbot6 r13236 | fglock++ | v6, Pugs-Compiler-Rule: fixed Grammar::Rule compilation 17:45
Limbic_Region is Num -> Num a valid signature for a function? 17:48
err, haskell question
Limbic_Region wanders on over to #haskell
PerlJam Limbic_Region: why wouldn't it be? 17:49
Limbic_Region PerlJam - type class versus type
fglock is there a way to declare a variable local to a rule? "rule{{local $x}}" is only local to the closure
Limbic_Region PerlJam - and no, it is not 17:50
since Num is not a type
PerlJam Limbic_Region: yeah, I'm conflating perl6 and haskell in my head.
ETOOMANYPROGRAMMINGLANGUAGES
Limbic_Region PerlJam - no worries, haskell has a way around it Num a => a -> a 17:51
PerlJam fglock: why would you want to do that?
fglock: (I can't think of a way that doesn't involve a surrounding block { my $foo; rule { ... } }
)
Limbic_Region fglock - obviously if you are asking it is because it means doing something useful - so ask on the list 17:53
fglock PerlJam: I need a place to collect variable names that are declared in submatches
my other choice is to post-process the syntax tree
PerlJam fglock: the match object is a good place to collect things. 17:54
fglock PerlJam: but the match object is too local - I need to add things to the parent object - maybe I could pass the parent object as a parameter to the submatch 17:55
PerlJam I'm with L~R on this one. Ask p6l. Maybe you'll get some good answers, maybe you're incite a language change :) 17:57
fglock ok!
17:59 gattocarlo joined 18:01 gattocarlo joined
svnbot6 r13237 | fglock++ | Pugs-Compiler-Rule - cleanup aliased captures grammar 18:19
18:25 wrbl joined 18:29 frederico joined 18:30 renormalist joined 18:33 mauke joined 18:35 spinclad joined 18:42 integral_ joined
gaal Limbic_Region: indeed. You can use haskell.org/hoogle/ or here: 18:46
lambdabot Title: Hoogle
gaal @hoogle (+)
lambdabot Did you mean: (+)
Prelude.undefined :: a
Control.Monad.Reader.ask :: MonadReader r m => m r
svnbot6 r13238 | fglock++ | Pugs-Compiler-Rule - cleanup aliased captures grammar (more)
gaal wha--??
@hoogle +
lambdabot Prelude.(+) :: Num a => a -> a -> a
Prelude.(++) :: [a] -> [a] -> [a]
Control.Arrow.(+++) :: ArrowChoice a => a b c -> a b' c' -> a (Either b b') (Either c c')
gaal the first one of these is what I wanted to show. always pick something familiar and go from there. Or if you know the type, from there to functions... 18:47
18:47 prefiks left 18:54 integral_ is now known as integral 18:55 Odin- joined
svnbot6 r13239 | putter++ | docs/notes/characterize_perl6 - Created. 18:58
r13239 | putter++ | This file is an attempt to create a one to three paragraph answer to the question "What is perl6?", asked from the perspective of language design. The work is in its infancy.
r13239 | putter++ | "What is a characterization of the design of the perl6 language? Perl6 is a flexible hybrid language." ;)
r13239 | putter++ | This is a strawman/placeholder/template for something I think would be useful, but haven't had time to work on. Please feel free to bash at it.
19:00 putter joined, mdiep joined
putter Re "disable p5 just like putter"-isms, sigh, I knew I should have posted a line of context here. 19:01
I've p5 embedding working just fine. It took only a few seconds to _work around_, using a load path. *But*, with embedding becoming the default, it becomes important that it "just work". Thus the extra couple of hours exploring perl installation behavior, pondering was to add a headers+library+perl match check, etc. 19:05
And shaving the yak of getting non-embedding to actually work right.
Perl5 embedding, and non-embedding, currently seems to work fine. With only one counter case (my odd libraries lying around), and perhaps now a second? 19:06
19:06 weinig|bbl is now known as weinig
putter Though it looks like audreyt fixed agentzh's ActiveState problem. So the only known exception to embedded p5 just working is putter's "really needs a spring cleaning" machine. 19:08
To summarize - p5 embedding just works. 19:09
Limbic_Region putter - s/([Pp]erl)(5|6)/$1 $2/g
putter Please report any exceptions to that one-liner.
Limbic_Region: Add a space between "perl" and "5"? 19:10
putter looks puzzled
19:10 corpse joined
Limbic_Region I am fairly certain that is the preference of the ficticious cabal 19:11
TimToady .oO(nobody here) 19:12
lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region at least chromatic is pretty emphatic about it
and I can't find an example on dev.perl.org/perl6/ that has the space omitted
putter (It's like watching neighbors pick up their mail...;) 19:13
lambdabot Title: Perl 6 - perl6
TimToady Dear lambdabot: I already backlog, so I don't need a messaging system.
Limbic_Region I take that back, the FAQ link
putter Hmm. p5, p6...
Limbic_Region those don't match the pattern 19:15
putter Is there a concept/tag for perl 6, the language which is incompatible with perl 5, as opposed to perl 6, the code recognizing "language" which is backwards compatible with p5, and likely python, ruby, CL, and apl?
Limbic_Region TimToady - do me a favor and type something into the channel - experimenting 19:16
PerlJam TimToady: perhaps you could answer a question for me and help Limbic_Region at the same time: Should character class shorcuts be allowed inside of character classes (as in perl5)? 19:17
Limbic_Region suspects it is possible to give notes to lambdabot without announcing it in the channel by using /msg lambdabot @tell <person> <msg>
putter I buy "perl 5"/"perl 6" as versions of "perl". But how does one refer to that portion of "perl 6" which is excludes "perl 5". We've been calling that perl 6 too. And there, the case for the space seems weaker. 19:18
PerlJam <[\w\s]> seems less good now that we have the long forms (which are clearer IMHO)
gaal @tell gaal stop being silly 19:20
lambdabot You can tell yourself!
putter lol
Limbic_Region doesn't work if it is yourself 19:21
Limbic_Region tried that to test as well
kolibrie I always thought perl 6 with a space is the language, and perl6 without the space are the computer programs that implement the language
gaal yeah, would I listen?
19:21 larsen joined
Limbic_Region ok, since others are more active, I will pick on gaal 19:21
gaal type something please
what - no one wants to be my guinea pig 19:22
gaal poets have been mysteriously silent on the subject of cheese
lambdabot gaal: You have 1 new message. '/msg lambdabot @messages' to read it.
Limbic_Region yeah, it worked
s/yeah/yay/
gaal lambdabot: I'm not talking to you
Limbic_Region I was merely testing the ability to leave a /msg for someone without letting the whole channel know what it was 19:23
kolibrie sneaky sneaky
Limbic_Region also tested if a phone a is forwarded to phone b which was forwarded to phone c which was forwarded to phone a if an endless ring loop would be established 19:24
it was
19:24 bernhard joined
putter perl -MPoly foo.p5 bar.p6 hee.py qux.rb What is the version of the (6.001) executable called? The contents of file bar.p6? The "language" (executable+CPAN) which permits that mind-blowing command line? The set of all implementations/distributions which could provide that executable? What else? 19:25
putter wonders if with delay and forward, one could set up oscillations 19:26
logic on office phone nets!
gaal putter: on #haskell there are two \bot instances. mayhem did not ensue. yet. 19:27
putter gaal: question is whether you can create a nand gate... 19:31
svnbot6 r13240 | lanny++ | modified mergesort to use Pair spans rather than array slices.
gaal oh, you're not talking about bots responding to each other, are you 19:32
putter late night reception phones are an oscillator clock, accounting phones are latches, sales phones are the logic, the line of trading desk phones is the input, and resulting ringing the output... 19:34
silliness
19:36 lanny joined
svnbot6 r13241 | fglock++ | v6 - added file Grammar::P6Rule2 - This is the bootstrapped version of 19:36
r13241 | fglock++ | Grammar::Rule (it calls back the p6 compiler to parse closures)
19:38 rafl_ joined
putter So without being too creative, what do we have to play with to reduce our shortage of names? Capitalization and upcasing (perl Perl PERL), abbreviation (p5 p6), prefixing (hsPerl, parrotPerl), creative names (pugs), spacing (perl6, perl 6), wordified numbers (Perl Six). What else? 19:39
Maybe we need to be creative.
lanny Um.. Unicode?
[particle] unicode
fglock putter: lrep, v6
mauke Perl VI
PerlJam I like vi ;) 19:40
vi and perl go together well :)
lanny Just pick up a bit of Cherokee and you've already got the unicode alphabet. It's aglutanating I think so you could really go to town. 19:41
gaal "babble" 19:42
TimToady babel xvii 19:43
lambdabot TimToady: You have 1 new message. '/msg lambdabot @messages' to read it.
lanny I think you've hit it, putter. Be creative and pre/suffixing
mauke final fantasy emacs
TimToady Practically Every Rotten Language 19:44
gaal Genesis XI
putter "It's really quite simple, confused newbie user. You can run your Perl 5 code unchanged on Perl 6. Yes, Perl 6 is backwards incompatible with Perl 5. Oh, perl! Yes, perl-6 can run Perl 6 and Perl 5. perl-5 can also run Perl 6 using v6. Oh yes, you can use parrot with perl, it's in CPAN. No, that's ponnie." 19:46
Someone really needs to write a comedy skit. 19:47
lanny You just did.
putter Barely scratched the oxide layer of the surface.
19:48 vel joined
leo There's no ponnie, and ponie is dead, but there's punie, which is partially Perl 1 19:48
putter Ah, so that's a dead horse. What's Perl 6 running on parrot called? Any distinct name for p5 on parrot? 19:49
PerlJam putter: "perl"
:-)
TimToady peony
leo putter: languages/perl6 which is using a p6 grammar and PGE/TGE 19:50
gaal punny
[particle] puny 19:51
leo p5 on parrot was Punie
[particle] pony
leo err s/u/o/
PerlJam so I take it ponie isn't getting a second chance at life any time soon.
[particle] writes a perl puntime engine 19:52
TimToady undead things tend to take the long view...
PerlJam TimToady: I'm all for the longnow, but not if means I'm dead when a useable perl6 compiler is finally released. 19:53
leo PerlJam: use.perl.org/article.pl?sid=06/08/24/1657225 19:54
lambdabot Title: use Perl | Ponie has been put out to pasture, tinyurl.com/eodvl 19:55
svnbot6 r13242 | fglock++ | v6 - Pugs::Grammar::P6Rule TODO 19:56
PerlJam leo: yes, I read that. But I take it to mean that the current ponie effort is door-nail dead and not to preclude any resurrection and transmogrification into some new ponie incarnation.
putter Dramaticus Personae: Perl, perl, Perl 6, Perl 5, perl-6, perl-5, parrot, pugs. perl-6... is parrot, or pugs as perl-6 while not being pugs, which is different, or perl-5 becoming perl-6. 19:59
fglock a mini perl5 could be implemented as a perl6 grammar - but does it makes sense
leo PerlJam: exactly - anyone could pickup the work and continue I presume, given enough perl5-gut tuits 20:00
PerlJam fglock: foregoing bug-for-bug compatibility makes things easier I think :)
putter pugs embeds perl-5 and parrot. also perl-6, when that exists, unless pugs is perl-6, in which case there would be no point, though you could do it anyway. perl-5 can embed parrot and pugs(?). parrot, acting as Perl 5 or as Perl 6, can embed perl-5, pugs, perl-6, and inself. Recursively. 20:01
20:01 lisppaste3 joined
putter Oh, allll is recursively. 20:02
PerlJam putter: it's camels all the way down 20:05
[particle] it thought it was mooses
meese?
leo no parrots 20:06
[particle] that's all the way up :)
PerlJam maybe its a cross breed of some sort
leo ah - yes, indeed
PerlJam moomal
camoose
putter CPAN holds Perl 5 code, but now Perl 6 code too. It includes CPAN6, which runs on perl-5, and which can itself also hold Perl 5 and 6. It also holds perl-5, and eventually perl-6, and v6 which is Perl 6 on Perl 5 and thus on perl-5 and eventually perl-6. 20:07
Perl 6 implemented in Javascript is jsPerl6. Python implemented in Perl 6 is plPython. Python 3.0 implemented in Perl 6.1 running on jsperl-6.2 is ... jsplPython for short. 20:13
Ah, a week with perl, ruby, and python user group meetings, and no conflicts. yay. 20:21
svnbot6 r13243 | fglock++ | v6 - fixed return-object in 'closure' rule 20:24
r13244 | fglock++ | Pugs-Compiler-Rule - replace '$&' with '$1'
20:28 justatheory joined 20:29 hexmode joined 20:34 penk joined 20:44 SubStack joined 20:47 Schmooster joined 21:03 lisppaste3 joined
svnbot6 r13245 | fglock++ | v6, Pugs-Compiler-Rule - the Rule grammar in v6 is a subclass of Grammar::Rule 21:06
mugwump putter: do you have details of the perl6 on cpan? 21:09
21:13 [mago] joined 21:14 weinig is now known as weinig|zabars 21:22 markstos joined
markstos ? 21:22
lambdabot markstos: You have 1 new message. '/msg lambdabot @messages' to read it.
21:26 Limbic_Region joined 21:28 FurnaceBoy joined
svnbot6 r13246 | lanny++ | Added google search of synopses 21:31
markstos If anyone wants to help, I'm looking for the part of the spec covers this syntax: my $ref = @array; 21:34
svnbot6 r13247 | markstos++ | [t/builtins/] 21:37
r13247 | markstos++ | Every .t file in t/builtins has at least one smart link now
markstos this works well enough: # L<S02/"Literals"/"In scalar context, though, the implied parentheses are not removed"> 21:39
Limbic_Region markstos - get the @tell I left for you? 21:40
markstos LR: Yep. thanks!
lambdabot++
svnbot6 r13248 | fglock++ | v6 - reuse 'pod' grammar from PCR. 21:43
r13248 | fglock++ | v6 and PCR no longer rely on Text::Balanced or :P5
r13248 | fglock++ | v6 - bug - Deep recursion warning while compiling Test.pm (no errors)
21:44 xerox_ joined
markstos flgock: could I do a quick IRC interview you for a pugs.blogs.com post ? This would be about your v6 work 21:44
fglock markstos: sure
markstos Ok. Give me a couple minutes to prepare good questions. :) 21:45
fglock markstos: would you mail me? I'm going home :)
markstos Sure.
fglock me at gmail 21:46
markstos got it.
fglock thanks!
21:48 fglock left 21:50 dakkar joined 21:52 weinig|zabars is now known as weinig 21:57 polettix joined
markstos I found in a test that this works: my $a1 = my $b1 = 42; 21:58
I can't find it in the spec to add a smart link though. Any pointers?
I searched for 'chain' and '= my' and didn't get any hits. 21:59
22:00 Eimi joined
markstos mostly aimed at agentzh and TimToady: It would be useful if "S16" started to exist in some form, because there are various smart links pointing there now 22:01
also, it might be useful to have a document that is a target for to use for tests we can't find spec entries for. That way, someone could review them easily all on one page.
These items might be a little different than "unspecced" features. I'm thinking more like the case above, where there is a suspicion that the feature is spec'ed, but it's just difficult to find, like "true" , "not" and "Inf" were yesterday. 22:03
Limbic_Region I understood true and Inf but why does not need to be spec'd
does it behave differently than in p5?
it must else there wouldn't be a test for it 22:04
but I guess I must have missed how
markstos Limbic_Region: because pugs is implemented from scratch, it's useful to test /all/ features, even ones that weren't supposed to change.
It's also useful to have a complete, self-contained spec. 22:05
So far, I've found very little truly missing in my smart linking work.
22:05 markstos left
Limbic_Region no - you misunderstand 22:06
but you just left so now I am talking about myself
but come to think of it - saying that if it isn't explicitly spec'd in one of the synopses that it is the same as p5 isn't really a spec 22:08
and I would agree that the entirety of the language should be spec'd if our goal is to have an independent reference from which multiple implementations can be derived fro
using an existing (and still changing) implementation is a bad idea - even for the most basic things IMO
TimToady - your thoughts on the above? 22:09
22:18 cjeris left
lanny Using an existing and changing implementation for other than research purposes you mean? Or using a still changing spec? 22:38
Limbic_Region lanny - I am referring to the synopses only reflecting the changes between perl 6 and perl 5 22:40
lanny Yep. Was with you all the way up to the last sentence where you switch to speaking of implementations
Limbic_Region it has been said, and I believe the current philosophy to be, that if you don't see something in the synopses it is exactly as it is in perl 5
well, the perl 5 spec *IS* the implemetation 22:41
and it isn't even a static one
lanny Ah. So you meant using the perl5 implementation as the fallback spec.
Limbic_Region yes, that that was a bad idea
though I haven't ever designed a language so my comment is from a completely lay perspective 22:42
lanny I'd say rather that it's a convenient idea.
Because the folks working on Perl 6 are pretty conversant with Perl 5.
Limbic_Region lanny - as a design goal though, that's pretty flimsy 22:43
lanny But yes, eventually the whole language needs to be spec-ed or you'll never be able to build a conformant implementation
Limbic_Region how many places in the perl 5 documentation do you see "... behavior is undefined"
lanny Not really. You have to start somewhere and I think it's an expedient rather than a goal
Limbic_Region has to go check on his daughter
lanny For the language extended by CPAN pretty often. For the core I don't see it so much. 22:44
Limbic_Region you don't see it much in the core - but its there 22:48
sort in scalar context for instance
in any case, I think it is fine for pioneers (such as pugs) to just work off assumptions 22:49
heck - we do that all the time anyway for the stuff we expect to change that hasn't been spec'd yet
such as corouties
coroutines that is
but for the final spec - it should stand on its own IMO 22:50
my question to TimToady was more exploratory for his vision rather than let's solve a problem today
Limbic_Region wanders back off 22:51
svnbot6 r13249 | lanny++ | move search box to top of syn_index 22:58
23:02 zgh joined 23:18 BooK_ joined
TimToady Limbic_Region: I expect that specs to get filled out with P5ish carryovers as the entire P5 test suite (core parts, at least) are ported over to P6, and people notice there's no place to L<> to, and do some cagecleaning on the specs. 23:19
23:20 hexmode joined 23:52 drbean left