Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-05-10

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 Shillo has quit IRC ("Leaving")
00:02 stevan mugwump: should I add visibility in MetaMethod as well?
00:03 mugwump sure, if you like.  I'm not sure what will be "private" on the Class model yet, but no doubt there will be something eventually
00:03 stevan ok
00:04 stevan and you have it with Assoc in Pugs/Class.hs
00:05 mugwump yep.  they're all things tacked onto the class, which can be for private or public use
00:05 stevan should we default to Public? or is that not okay?
00:06 ihb has quit IRC (Connection timed out)
00:08 mugwump er, dunno.  I'd say public by default
00:08 mugwump but that's a language design issue, we're writing a compiler not a language ;)
00:08 stevan ok
00:10 stevan I am still barely on the edge of "getting this" :)
00:14 simcop2387 has joined #perl6
00:17 Odin- mugwump: That depends on various things. Like, for instance, sunspot conditions.
00:18 mugwump well, the position of the moon is more significant.  but yes sunspots affect it.
00:19 mugwump it's the third of the month!  still a good time to be planting new ideas
00:21 stevan mugwump: BTW - does it look like I got (? MetaClass A, B | A.clsSuper = B ? A ? B.clsSubClasses) right?
00:23 mugwump ok, well that mutator can't remove the superclass entirely
00:24 stevan mugwump: doh! i didnt even think about removing
00:24 mugwump and neither can the subClasses one remove subclasses etc.
00:24 stevan so if I change the superclass i need to remove it from the list of subclasses
00:25 mugwump yes.  In general, when you change the members in an association that has a "companion"...
00:25 mugwump you need to send a message to the objects removed to remove self, and a message to the new objects to add self
00:25 stevan ok, actually I think once I refactor subclasses to be a hash (and get our "set") that might not be too bad
00:26 mugwump Having a "Set" class as a primitive makes this a lot easier than doing set operations with hashes
00:26 stevan true
00:26 mugwump I had a look at the hash tests, they don't seem to test hashes with object keys
00:27 stevan our objects are still strings
00:27 stevan so we can get away with hash for now
00:27 mugwump a Set is just a Map with no values, whereas a Hash is a Map with string keys
00:27 stevan eventually when we have real object, then we can refactor into a proper set
00:27 mugwump oh true didn't consider that :)
00:29 iheartcanada has left "Leaving"
00:31 stevan mugwump: ok, subclasses are now stored in hashes
00:31 stevan %self<subclasses>{$subclass} = undef;
00:31 stevan at this point all it does is avoid duplicates
00:33 mugwump ok
00:34 stevan should I be checking anything else when I add the subclass? I already check to make sure the superclass of the subclass is the class
00:35 putter I'm trying to understand a regexp test case m:words/.../.  Has anyone heard of a ! ("shriek") modifying the interpretation of adjacent whitespace?
00:35 stevan let me commit so you can see it
00:35 mugwump perhaps check that it doesn't make a loop
00:36 stevan so that my subclass is no a superclass of my class
00:36 stevan s/no/not/
00:36 putter As in ok( "abc!  def" !~ m/abc!  def/, 'Literal post-shriek nonmatch' );
00:37 putter and ok( "abc!def" =~ m:words/abc!  def/, 'Word nonspace post-shriek nonmatch' );
00:38 mugwump putter: according to S05, ! negates the meaning of a <> section, and makes it zero width.  maybe the person who wrote the test mis-read the synopsis, or was basing it on a mailing list post that hasn't been incorporated into the synopses.
00:39 putter Both odd, and the last not even matching its own documentation.  Perhaps its an historical artifact, but I havent turned up discussion.
00:40 mugwump then remove it.  It can lie forever in peace in the version control system :)
00:40 putter mugwump: thanks.  Ok, I think I'll just comment it out, rather than pursuing detective work into the Perl6::Rules implementation.
00:45 stevan mugwump: no loops (although that only applies to one level deep)
01:02 stevan mugwump: commited and tested loop free (one level deep)
01:03 stevan mugwump: should I write something which can check more than one level deep?
01:03 stevan more like .isa() would behave?
01:05 stevan all this meta-logic is making me hungry, bbiab
01:15 castaway_ has joined #perl6
01:16 Skywind has quit IRC (Read error: 131 (Connection reset by peer))
01:30 castaway has quit IRC (Read error: 110 (Connection timed out))
01:30 simcop2387-vnc has joined #perl6
01:42 ninereasons has quit IRC ("later")
02:02 * mugwump burps loudly
02:03 mugwump stevan: if .isa() works, enforcing no circular inheritance should be easy
02:04 mugwump or .clsIsa(), perhaps
02:10 meppl gute nacht
02:12 stevan mugwump: ok I will do clsIsa() since we don't have a working .isa()
02:12 stevan mugwump: BTW - changing superclasses now removes the inv from the old super classes subclasses
02:12 stevan try and say that 10 times fast :P
02:13 mugwump mmm.  That one little axiom sure translates into a lot of code...
02:14 stevan thats how these things always go
02:15 stevan I thought Class::Trait would be simple
02:15 stevan but I ended up writing and re-writing it 3 times, and in the end it was almost 1K of code
02:15 stevan s/code/LOC/
02:16 mugwump I've implemented this companion association thing before, in Class::Tangram
02:17 stevan I will have to look at that when i get to that part
02:17 stevan (or you can do it :)
02:19 mugwump That ended up being 1,000 LOC; mostly due to the lack of an inheritance relationship between the four different collection types C::T supports (ref, set, array, hash)
02:21 mugwump (er, C::T in this case meaning Class::Tangram :))
02:21 mugwump Class::Traits is like Luke Palmer's Class::Role, no?
02:22 stevan yes and no
02:22 stevan it is based strictly on the Traits paper
02:22 stevan Class::roles was more like the perl6 roles
02:22 stevan Ovid actually start it
02:22 stevan then ran out of time
02:22 stevan and so I took it on
02:23 stevan then I found a paper on the formal defintion of traits
02:23 mugwump What do you see as being the fundamental difference between these Traits and Perl 6 Roles, then?
02:23 stevan Roles can have state
02:23 stevan Traits cannot
02:24 stevan although apparently the newer version of Traits will allow state (according to some of the guys who are working on it)
02:24 stevan other than that, most of the differences are minor (at least as far as I remember)
02:24 mugwump (from S12:)
02:24 mugwump A role may not inherit from a class, but may be composed of other roles. A role doesn't know its own type until it is composed. Any mention of its main type (such as ::?CLASS) is generic, as is any reference to the type of the invocant. You can use a role name as a type, but only for constraints, not for declaring actual objects.
02:26 stevan that is very much like Traits
02:26 stevan SUPER:: in Traits refers to the super class of the class which implements the trait
02:26 mugwump where "superclass" means "the roles that this thing belongs to" presumably
02:27 stevan no, the $class->SUPER::
02:27 stevan basically resolution of SUPER is deferred until the last possible moment
02:31 mugwump "Stevan Little implementated Traits in Perl 5. In his series about the unfolding of the Perl 6 design, Larry Wall, the creator of Perl, gives a description of Roles, the variation of Traits that is planned as a fundamental language element of Perl 6."
02:32 mugwump -- http://www.iam.unibe.ch/~scg/Research/Traits/, linked from your Class::Traits module :)
02:32 stevan yup :)
02:32 stevan i had some interesting talks with some of those guys
02:32 stevan they were very interested to know about Perl6 Roles
02:34 mugwump cool.  the Object equivalent of lambda calculus is roles-based rather than inheritance-based, too
02:36 meppl has quit IRC (Remote closed the connection)
02:37 stevan roles make so much more sense for code re-use too
02:37 stevan although it is easy to get carried away with over-abstraction
02:38 stevan which is basically why I never /actually/ did anything with Class::Trait
02:38 mugwump heh
02:44 stevan mugwump: I have questions about .clsIsa() if you have a moment
02:44 mugwump ok
02:48 stevan so if I check the .clsIsa() if a class, i should check it's super, and then the super-super and the super-super-super
02:48 stevan until I find a match
02:48 stevan always checking against the .clsName()
02:48 mugwump may as well be recursive
02:48 stevan yes
02:50 stevan ok, so I thinking about this correctly then?
02:51 stevan and should it be
02:51 stevan $inv.clsIsa('Class Name') or $inv.clsIsa($class)
02:52 mugwump I think so, yes
02:52 stevan or both?
02:52 mugwump either?  :)
02:52 stevan LOL
03:02 kelan has joined #perl6
03:13 vitaminmoo has joined #perl6
03:16 kelan has quit IRC ("!")
03:22 lord_of_istanbul has joined #perl6
03:23 lord_of_istanbul has left
03:47 f0rth has joined #perl6
03:50 b00t has joined #perl6
04:54 justatheory has quit IRC ()
04:59 elmex has joined #perl6
05:01 cognominal $ pugs /tmp/roundtrip.p6
05:01 cognominal No compatible subroutine found: &eval_parrot
05:01 cognominal what I should do to get that to execute?
05:16 mugwump did you install libparrot?
05:18 Jouke has joined #perl6
05:18 Jouke has left
05:20 theorbtwo has joined #perl6
05:24 elmex has quit IRC ("uni fools")
05:25 f0rth nmake win32 pugs failed for hours, src/Pugs/Types/Hash.hs:83:45:  Couldn't match `Maybe' against `[]'
05:25 mugwump have you run `make clean' recently?
05:25 mugwump might be waving a dead chicken, but worth a try...
05:26 f0rth I've svn up a clean one
05:30 mugwump I only say that because someone was mentioning build weirdness with that file earlier
05:39 cognominal pugs -e 'my &say = sub { *say("toto") };  say "tutu"'
05:39 cognominal this loops...
05:40 cognominal I thought that would call the lexical &say that would itself call the global &say
05:42 mugwump night all!
05:43 gaal_ mugwump, oh, i just wanted to ask you a quick question :)
05:43 cognominal more like the morning here :)
05:43 gaal_ in Hack::Instances, shouldn't there be a global counter for instance ids as well as some randomness?
05:44 pasteling "gaal" at 192.115.25.249 pasted "good morning, the build is broken" (7 lines, 283B) at http://sial.org/pbot/10032
05:45 gaal_ oh, it's been noticed, sorry.
05:45 gaal_ just backlogging
05:48 hachi has joined #perl6
05:54 gaal_ System.Posix.Env.getEnv and System.Environment.getEnv have different signatures.
05:55 gaal_ f0rth, what platform are you on, windows, right?
05:57 f0rth gaal_: windows 2000
05:57 gaal_ yeah. i'm attempting a fix.
05:59 simcop2387 has quit IRC ("Client exiting")
06:01 rob__ has joined #perl6
06:04 putter has quit IRC (Read error: 110 (Connection timed out))
06:05 theorbtwo Define a function in Pugs.Compat that always has the right signature.
06:05 gaal_ yes, that's what i'm doing.
06:05 gaal_ Trying to figure out how to transform IO String to IO (Maybe String)
06:06 gaal_ clues welcome :)
06:06 theorbtwo do {foo <- thingReturningIOString; return Just foo}
06:07 Shachaf has quit IRC ("So long, and thanks for all the fish!")
06:09 joepurl has joined #perl6
06:10 rob_ has quit IRC (Read error: 110 (Connection timed out))
06:15 nothingmuch has joined #perl6
06:20 simcop2387-vnc has quit IRC (Read error: 110 (Connection timed out))
06:26 gaal_ fixed in r2917.
06:38 castaway_ is now known as castaway
06:42 mj41 has joined #perl6
07:04 iheartcanada has joined #perl6
07:09 iheartcanada has left "Leaving"
07:11 hachi I see that the syntax docs for p6 say : cannot be used as a quote delimiter "since it will always be taken to mean something else regardless of what's in front of it.", wouldn't q:::string: be a clear (to the interpreter anyways) way of delimiting 'string' ?
07:12 hachi maybe there's some usage of : that I'm missing in that context, but as I'm reading all of this the third : has to be the delimiter, where am I going wrong?
07:14 Juerd hachi: It's technically possible, but requires huge workarounds and blurs a lot. Is being able to do this worth such a sacrifice?
07:15 hachi no, but the language design docs say there is some reason to which it cannot be done
07:15 hachi the most likely thing then is that I'm missing some usage of : in string quote context, and I would like to know what it is
07:16 Juerd It can't be done with a single :
07:16 hachi of course, but that's not what it says
07:17 Juerd A single character is what works for all other characters.
07:17 Juerd (that are valid)
07:17 Jouke_ has joined #perl6
07:17 Juerd And it's rather stupid to *assume* exceptions, IMO
07:18 hachi hey, all I'm looking for is either the docs to be wrong, or me to be missing something... personally I think the latter is far more likely. You are saying that it's the former though?
07:19 Juerd You're missing that the documentation is the specification
07:19 Juerd If it says something cannot be done, and there is no technical reason for that, then it is *declaring* that it cannot be done.
07:20 hachi but if you read my quote, it says there is a reason... but it doesn't say what
07:21 Juerd I think you can safely assume that the reason is keeping people from having to learn weird exceptions.
07:21 hachi "it will always be taken to mean something else regardless of what's in front of it." -- Okay, assuming true, what does a third : mean in quoting syntax?
07:21 hachi syntax error?
07:21 wilx has quit IRC (Read error: 131 (Connection reset by peer))
07:21 Juerd I hope so!
07:22 Juerd In fact, q:: is a namespace, so at that point it's already no longer q//
07:22 hachi ahh!
07:22 hachi see, that's what I was looking for
07:22 hachi not your opinion
07:22 b00t has quit IRC (Read error: 131 (Connection reset by peer))
07:22 Juerd I'm truly amazed.
07:25 Jouke_ has left
07:36 hachi sorry, I need to not be an ass... bad start
07:37 iblechbot has joined #perl6
07:37 dvtoo_ has joined #perl6
07:42 dvtoo has quit IRC (Read error: 110 (Connection timed out))
07:43 elmex has joined #perl6
07:44 chady_ is now known as chady
07:57 osfameron has joined #perl6
07:58 Aankhen`` has joined #perl6
08:00 gaal_ what unicode terminal fonts are you folks using? I want one that has, for example, ?. (recently seen in MetaClass.pm)
08:08 wilx has joined #perl6
08:10 rootmj has quit IRC ("Miranda IM! Smaller, Faster, Easier. http://miranda-im.org")
08:18 luqui has joined #perl6
08:22 gaal_ Corion: ping
08:52 machack666 has joined #perl6
09:01 nothingmuch has quit IRC (Remote closed the connection)
09:10 nothingmuch has joined #perl6
09:15 Qiang has quit IRC (Read error: 104 (Connection reset by peer))
09:19 machack666 has quit IRC ("clever quit message")
09:27 scook0 has joined #perl6
09:45 theorbtw1 has joined #perl6
09:50 meppl has joined #perl6
09:58 meppl has quit IRC (Remote closed the connection)
10:07 dada has joined #perl6
10:07 larsen has joined #perl6
10:14 kolibrie has joined #perl6
10:16 puetzk has quit IRC (Read error: 110 (Connection timed out))
10:16 puetzk has joined #perl6
10:29 osfameron_ has joined #perl6
10:30 luqui has quit IRC ("Leaving")
10:47 osfameron has quit IRC (Read error: 110 (Connection timed out))
10:54 malaire has joined #perl6
10:56 malaire has quit IRC (Client Quit)
11:02 kolibrie has quit IRC ("leaving")
11:02 kolibrie has joined #perl6
11:08 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
11:08 Odin- has joined #perl6
11:16 iblechbot has quit IRC (Read error: 104 (Connection reset by peer))
11:25 elmex has quit IRC ("viel zu tun")
11:27 puetzk has quit IRC (Read error: 110 (Connection timed out))
11:43 b00t has joined #perl6
11:45 iblechbot has joined #perl6
11:52 broquaint has joined #perl6
11:53 chady is now known as chady_
11:57 gaal has joined #perl6
12:01 adamc00 has joined #perl6
12:03 adamc00 has left
12:04 gaal_ has quit IRC (Read error: 60 (Operation timed out))
12:07 Limbic_Region has joined #perl6
12:12 sekimura has quit IRC ("zzz...")
12:22 kolibrie autrijus: I'm always getting true for rules when using embedded parrot, but they work correctly when not embedded
12:42 Limbic_Region salutations all - anyone mind giving me an edumacation on binding := ?
12:43 Limbic_Region I got a blast from the past email from someone who recognized my name on the p6.Language list
12:43 Limbic_Region they sent me an email as they didn't want to appear "stupid" on the list
12:43 Limbic_Region when taking a reference to a subroutine as in my $s_ref = \&foo;
12:44 Limbic_Region they wanted to know why wouldn't (or perhaps couldn't) that be my $sub := foo(); # or something like that with the binding operator
12:44 gaal_ has joined #perl6
12:44 ajs has joined #perl6
12:45 Limbic_Region oh good, perhaps gaal_ will have the answer
12:45 stevan Limbic_Region: $sub := foo() would bind to foo()'s return value
12:45 stevan Limbic_Region: you would want $sub := foo;
12:46 Limbic_Region nope
12:46 Limbic_Region he wanted $sub := foo()
12:46 gaal_ the gaal that has an underscore tucked to his name is not the true gaal.
12:46 Limbic_Region at least I think he did
12:46 stevan gaal_: what have you dont with the real gaal
12:46 Limbic_Region let me expand the question a bit further
12:46 stevan Limbic_Region: the () implies execution though
12:46 Limbic_Region right
12:46 gaal_ is now known as thetruegaal
12:47 thetruegaal is now known as gaal_
12:47 Limbic_Region foo returns a sub ref itself
12:47 Limbic_Region which is a closure over a static variable
12:47 stevan ah
12:47 stevan then I would expect $sub := foo() to work then
12:47 Limbic_Region he want's $variable to always be the value of the static variable inside foo
12:47 iblech has joined #perl6
12:47 Limbic_Region only it won't
12:48 Limbic_Region since the return value isn't actually the static variable
12:48 stevan hmm,.. it won't in pugs? or perl6?
12:48 Limbic_Region it is an anon sub that when executed returns the static variable
12:48 stevan ah
12:48 Limbic_Region so now that I understand - I can explain it to him (and encourage him again to ask on list since it is obviously a good question)
12:48 stevan sounds like insanity to me :)
12:49 stevan gaal_: ping
12:49 integral hmm, why are src/Pugs/Types/* not modules?
12:50 stevan integral: perl6 modules ?
12:50 integral sorry, I mean Haskell modules.   They're just #include'd into Pugs.AST
12:51 stevan integral: no idea, autrijus is best to answer that
12:51 integral hmm
12:52 autark-jp module dependency maybe?
12:52 integral maybe, I do know at one point there was a AST.hs-boot
12:52 integral it's just that it makes Pugs.AST a right pain to compile optimized for me
12:52 stevan integral: yes there was an AST.hs-boot
12:53 nothingmuch has quit IRC ()
12:54 stevan integral: what would be involved in doing that?
12:54 integral doing what?
12:54 stevan changing src/Pugs/Types/* to modules
12:54 integral hmm, depends how many circular dependencies there are :-)
12:55 stevan you can always try it, if you have some time
12:55 integral *nod*
12:55 gaal_ stevan, pong, but i really have to go now for a few hours :(
12:55 gaal_ &
12:55 stevan gaal_: just wanted to say Hack::Instances/Perl::MetaClass is mugwump's model and my code,... so any questions you can refer to me
12:56 stevan gaal_: and the reason I dont use a global counter as well as the rand() is that rand() seemed to work fairly well
12:57 stevan I created a 10000 key hash and found no dups
12:57 Aankh|Clone has joined #perl6
12:57 Aankhen`` has quit IRC (Read error: 104 (Connection reset by peer))
13:09 gaal has quit IRC (Read error: 113 (No route to host))
13:20 wilx has quit IRC (Remote closed the connection)
13:29 BigBear has joined #perl6
13:31 estel has joined #perl6
13:42 scook0 has quit IRC ("Leaving")
13:46 stevan jabbot: seen mugwump
13:46 jabbot stevan: mugwump was seen 8 hours 3 minutes 34 seconds ago
13:59 b00t has quit IRC (Remote closed the connection)
14:04 BigBear has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.2/20050321]")
14:20 estel has quit IRC (Remote closed the connection)
14:22 sproingie has joined #perl6
14:27 broquaint has quit IRC (Read error: 60 (Operation timed out))
14:32 Forth has joined #perl6
14:32 pmichaud has joined #perl6
14:33 pmichaud good morning (afternoon, evening) #perl6
14:33 Shachaf has joined #perl6
14:34 kolibrie pmichaud: good morning
14:35 pmichaud hey, can someone briefly tell me what format pugs generates that is executable by parrot -- i.e., does it output PAST or PIR or ...?
14:35 iblech PIR
14:35 pmichaud is it easy to locate the PIR generator?
14:36 iblech src/Pugs/Compile/Parrot.hs
14:36 pmichaud excellent
14:36 pmichaud many thanks
14:37 PerlJam greets pm
14:37 puetzk has joined #perl6
14:37 pmichaud greets, pj
14:38 PerlJam Are you working on the first stab p5 RE parser or the glob parser that you mentioned in your email to p6[cl]?
14:38 pmichaud pj: at the moment, no -- I'm working on a shift/reduce expression parser
14:39 pmichaud w/operator precedence :)
14:39 PerlJam pmichaud: geez ... next thing you know, you'll be working on a perl6 grammar  ;)
14:39 pmichaud It's likely I'll be evaluating P6 expressions by the end of the week
14:40 pmichaud I already have the operator tables and precedence handling working
14:41 autrijus yo.
14:41 pmichaud so, it's just a matter of generating the resulting executable code (thus my question about PIR vs. PAST)
14:41 PerlJam wow.  Didn't you start just yesterday?
14:41 autrijus pmichaud: I'm not sure PAST is in anywhere near usable
14:41 pmichaud autrijus:  I agree with you -- I just wanted to verify it
14:41 autrijus pmichaud: I think though, it may make sense to simply represent PIR idioms as objects
14:41 pmichaud autrijus: I remember you were targeting PAST (however briefly) at one point and so I was going to follow suit
14:42 autrijus and build a bottom-up ast out of it
14:42 autrijus at least that's what I'm trying to do with PugsAST->PIR
14:42 autrijus by re-using the interpreter logic in a compiler setting
14:43 pmichaud well, I need to get just a bit farther on the expression parser and then I'll be looking at codegen in more detail :)
14:44 autrijus sure :)
14:44 autrijus btw, parsec's behaviour of addming a <commit> by default has been useful
14:44 autrijus i.e. it greatly speeds up parsing
14:44 pmichaud yup
14:44 autrijus however, there are some corner cases eg with
14:44 autrijus (int => 3)
14:45 autrijus where you need to basically lookahead to => as part of identifier/unary function token)
14:45 autrijus I'm handling them with explicit lookAhead calls... not sure if there's a cleaner way out of this
14:45 pmichaud yeah, I'm not sure there's a clean way out either
14:45 pmichaud autoquoting is indeed a pain
14:46 autrijus yeah
14:46 pmichaud however, in my case I have the text immediately available, so when I see a => I can probably easily manipulate the operand/operator stacks and fix them as if we knew it was a quoted term beforehand
14:47 pmichaud that shouldn't be too difficult
14:47 autrijus true, but you need to check that the left hand is an identifier-like too
14:47 autrijus ~ => 3 # syntax error
14:47 autrijus if => 3 # works
14:47 pmichaud that actually makes it easier :-)
14:48 autrijus mm, nod
14:48 autrijus oh btw. any chance you know what should this print?
14:48 autrijus say (split /(..)*/, 1234567890);
14:48 sproingie i havent kept up with apocalypses.  is => still a stringifying comma or does it make pairs now?
14:48 autrijus sproingie: pair
14:48 autrijus er, I mean
14:48 PerlJam sproingie: both
14:48 broquaint has joined #perl6
14:48 autrijus say (split /(..)*/, 1234567890).perl
14:48 pmichaud => is a pair constructor
14:49 PerlJam sproingie: => makes a pair with its LHS stringified
14:49 autrijus i.e. quantified captures in split//
14:49 pmichaud autrijus: no, I don't know what it should do
14:49 autrijus ok. pugs currently flattens each nested match
14:49 autrijus so '12', '34' etc
14:49 autrijus I'll ask p6l
14:49 pmichaud that seems reasonable
14:49 jhorwitz has joined #perl6
14:49 pmichaud but yes, we need to re-examine split in light of the capture semantics
14:49 sproingie PerlJam: do those still automagically interpolate as lists?  i still sometimes chain them, foo => bar => 123
14:50 autrijus that is (foo => (bar => 123))
14:50 autrijus i.e. think => as consing
14:50 stevan sproingie: nested pairs :)
14:51 * PerlJam doubts that nested pairs will flatten
14:51 pmichaud there's nothing to flatten there :-)
14:52 PerlJam pm: if you say @foo = a => b => 1, does @foo get ('a','b',1) or ('a', Pair('b',1))
14:52 sproingie hm.  not quite what  I was used to.  then again i've largely stopped doing the chaining thing
14:52 PerlJam ?
14:52 pmichaud pj: neither
14:53 pmichaud @foo gets   Pair('a', Pair('b', 1))
14:53 PerlJam er, that's what I meant ...
14:53 stevan sproingie: we have all abused the "fat comma" to some degree, I am very guilty of it myself
14:53 * pmichaud never abused the fat comma :-)
14:54 stevan pmichaud: you can admit it, we are all friends here :)
14:54 * sproingie liked the stringifying aspect.  harkened back to barewords, but in a safe sort of way
14:54 PerlJam I think Abigail is one of the people who is going to jump ship rather than use perl6  He abuses all sorts of features :)
14:54 * autrijus finds stevan's metamodel work fascinating
14:54 autrijus sproingie: use <> to stringify now :)
14:54 * stevan finds autrijus *work fascinating
14:54 sproingie oh i'm going to hate perl6.  and love it.  and oscillate madly between the two states.
14:54 autrijus PerlJam: Abigail will love [.]
14:54 autrijus [.] is da bomb
14:55 sproingie i already have that relationship with perl5, just not quite as passionately
14:55 stevan sproingie: passion is good :)
14:55 pmichaud perl 6 has lots more to love and hate, that's for sure :)
14:55 stevan autrijus: [.] is folding right? like foldl and foldr?
14:55 sproingie my swing with python is even flatter.  it does what it does and nothing more or less
14:55 justatheory has joined #perl6
14:55 sproingie occasionally it surprises me, but rarely
14:56 autrijus stevan: no, reduce() is folding
14:56 autrijus stevan: [.] is folded method call
14:56 stevan ooooh
14:56 autrijus [.] $a, $b, $c
14:56 autrijus means
14:56 autrijus ($a.$b).$c
14:56 PerlJam sproingie: so ... what do you think about guido's desire to make The One True Way list comprehensions?
14:56 * sproingie wonders how far he can stretch the romantic metaphors.  lisp: unrequited love, it just won't love him back
14:56 stevan autrijus: damn thats nice :)
14:57 stevan sproingie: Lisp just gives you lots of hugs (), but no real love
14:57 sproingie PerlJam: i think he has no understanding of higher order functions.  of course, python's lambda made that obvious.  doesn't he want to get rid of that too?
14:57 PerlJam I believe he does
14:57 sproingie list comprehensions are great.  show me how to compose a list comprehension as a function
14:58 sproingie they're a literal syntax.  literals also need a functional equivalent
14:58 osfameron_ what's the difference between a comprehension and grep/map ?
14:58 PerlJam osfameron_: syntax :-)
14:58 pmichaud Is there an option to pugs to see the PIR it generates?
14:58 Qiang has joined #perl6
14:58 sproingie i would get that kind of prickly from lisp when i discovered my favorite feature was a macro
14:59 stevan aren't compressions usually lazy?
14:59 sproingie so the only way to extend it was with another macro
14:59 osfameron_ PerlJam: cool, I was worried I'd missed something...
14:59 sproingie now python's generator comprehensions are something interesting
15:00 autrijus pmichaud: yes...
15:00 autrijus $ ./pugs -CParrot -e 'say 123'; cat dump.ast
15:00 pmichaud perfect, thanks
15:00 pmichaud (I know, I should probably rtfm, but...)
15:00 autrijus np :)
15:00 PerlJam I think guido is trying to take a page from perl by introducing any() and all() too  (I believe he did that in the same message where he announced the demise of reduce/filter/etc)
15:00 autrijus yeah, there's this pugs -h :)
15:00 sproingie PerlJam: i'll give him credit for removing the rather broken reducee
15:00 autrijus pmichaud: the compiler backend is a mess, though. I eagerly awaits your codegen design :)
15:01 * sproingie -e
15:01 pmichaud autrijus: me too :-)
15:01 PerlJam pm: Around here, I think it's usually that you need to wtfm rather than rtfm  ;)
15:01 autrijus isn't it good that tfm is rw :)
15:02 PerlJam autrijus: indeed
15:02 stevan :D
15:02 autrijus pmichaud: want committer bit? :)
15:02 autrijus (so that tfm can be rw)
15:02 pmichaud autrijus:  thanks, but not yet
15:02 PerlJam autrijus: When this is all done, you should write a little paper about the experience of handing out committer status so liberally.
15:02 pmichaud right now I'm working more on wtfc than wtfm :-)
15:02 * integral wonders why AST.hs #includes Type/*.hs
15:08 autrijus integral: because .hs-boot is a greater evil than #include
15:08 integral it is?   Having to maintain it?
15:08 autrijus that, and it triggers all sort of weird ghc bugs.
15:08 integral ah.
15:08 autrijus lots of "impossible"s
15:09 integral I'm looking at splitting some of the bigger files up a bit so GHC doesn't eat quite so much of my swap
15:09 autrijus so it ends up requiring razing src and rebuild
15:09 autrijus integral: I'd very much appreciate AST.hs refactoring
15:09 autrijus I've started by putting simple things to Types.hs
15:09 integral ok, cool :-)
15:09 autrijus but the codep is too strong :)
15:09 autrijus you're welcome to put even more things into Types.hs or AST/*
15:09 * integral spots some easy targets like naturalOrRat
15:10 autrijus easy? :)
15:10 integral no cyclic dependencies ;-)
15:10 autrijus true :)
15:10 autrijus please be bold :)
15:10 autrijus and refactor mercilessly
15:10 * integral switched to svk too
15:10 * autrijus is happy that s/// and // Just Works now
15:10 integral svk++
15:10 autrijus it really feels like writing perl :)
15:10 autrijus pmichaud++
15:12 pmichaud I'm glad it actually works :-)
15:12 osfameron_ it's always nice when that happens ;-)
15:15 kolibrie it works for me not embedded, but all matches evaluate to true with PUGS_EMBED=parrot
15:16 autrijus kolibrie: really.
15:16 autrijus 1 ~~ /2/
15:16 autrijus is true?
15:16 kolibrie yes
15:16 autrijus latest trunk?
15:16 kolibrie checked out latest parrot and pugs about six hours ago
15:16 ingy hola
15:16 autrijus kolibrie: oh. that's ancient!
15:16 autrijus try pugs trunk again :)
15:16 autrijus (parrot side doesn't matter)
15:16 autrijus yo integral
15:17 autrijus er
15:17 autrijus yo ingy
15:17 kolibrie autrijus: ok, I'll try again
15:17 ingy hi autrijus, how are classes coming?
15:17 autrijus ingy: stevan is doing most of the work
15:17 ingy cool
15:18 ingy btw, I looked at LectroTest but couldn't get excited about it yet...
15:18 autrijus alright :)
15:19 ingy how is rules coming?
15:20 autrijus ingy: completely supported.
15:20 kolibrie autrijus: PARROT_PATH goes to parrot directory, or parrot/src?
15:20 autrijus well, as complete as PGE
15:20 ingy !
15:20 autrijus which is quite complete.
15:20 autrijus kolibrie: src
15:20 ingy are you doing native support?
15:20 autrijus yes.
15:20 autrijus er, wrong window
15:20 autrijus or external parrot
15:21 autrijus that works too
15:22 jhorwitz autrijus: i'm working out a new parrot/embed.h for leo.  for now i'll add prototypes used by mod_parrot and pugs, and add public APIs where necessary.  did you have any other ideas before i start?
15:22 autrijus no
15:22 autrijus that's pretty good
15:23 jhorwitz okay then.
15:23 autrijus kolibrie: I see what you mean. fixing
15:23 kolibrie autrijus: hovering mid air...
15:24 Juerd kolibrie: I'm guessing you're dutch
15:25 kolibrie Juerd: ik kan wel nederlands, maar ik ben amerikaner
15:25 Juerd kolibrie: Then why the dutch nickname? :)
15:25 ingy Juerd: I'm gueesing you're dutch
15:25 Juerd And "amerikaan" :)
15:25 Juerd ("amerikaner" I think is afrikaans for american)
15:25 kolibrie Juerd: it's been a while since I was there
15:25 Juerd ingy: I'm not from this planet
15:26 ingy Juerd: I lay corrected
15:26 kolibrie Juerd: I wanted a nick I could probably get anywhere - and it seems to work -mostly
15:26 Juerd kolibrie: heh
15:27 kolibrie Juerd: if I go back six generations, I'm from Borssele, Zeeland
15:29 Juerd Ah, nuclear powerplant city
15:29 kolibrie lots of windmills, too
15:30 kolibrie and that's about it
15:41 lumi has joined #perl6
15:41 autrijus kolibrie: fixed. enjoy!
15:43 lumi Morning
15:43 autrijus yo.
15:44 kolibrie autrijus: ok, pulling now
15:45 lumi Should non-exhaustive patterns ever happen?
15:45 Juerd lumi: Not with normal non-code syntax
15:46 Juerd lumi: []* should be finite, even though there's a big bunch of nothingness matchable.
15:46 Juerd (That's (?:)* in Perl 5)
15:46 lumi Hmmm
15:46 Juerd svnbot6++
15:46 lumi Allow me to recontextualize, and berate myself for assuming waaay too many things
15:47 Juerd lumi: We couldn't forbid you even if we wanted.
15:47 lumi Should pugs die with a "non-exhaustive patterns in lambda" ever?
15:48 estel has joined #perl6
15:49 lumi Specifically, '"foo" ~~ :foo'
15:49 lumi I'm not sure what it should be doing, but prolly not dying with that?
15:52 theorbtw1 lumi: No, it should never die like that.
15:54 pmichaud has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.3/20050414]")
15:55 Corion has joined #perl6
15:55 theorbtwo has quit IRC (Nick collision from services.)
15:55 theorbtw1 is now known as theorbtwo
15:55 Corion gaal: pong # heh
15:55 theorbtw1 has joined #perl6
15:59 autrijus lumi: write a test :)
16:00 ninereasons has joined #perl6
16:01 PerlJam Would the :foo in lumi's example be a modifier on ~~ or just an error or what?
16:01 * PerlJam votes error
16:02 autrijus obvious an error
16:02 PerlJam nothing is obvious to me anymore in perl6.
16:03 PerlJam ;-)
16:03 PerlJam man ... my parrot compile is just zipping along while the pugs compile seems stalled.
16:04 * Corion notes that the build worksforhim
16:05 lumi Ehm, anyone have p6 syntax for vim?
16:06 stevan_ has joined #perl6
16:06 autrijus lumi: util/perl6.vim
16:06 stevan has quit IRC (Read error: 104 (Connection reset by peer))
16:07 Corion Does anyone know who changed the signature of getEnv from getEnv :: String -> IO String to getEnv :: String -> IO (Maybe String) ?
16:07 iblech lumi: There's util/perl6.vim, but I prefer the Perl 5 syntax highlighting over perl6.vim
16:07 PerlJam Corion: svn blame will tell you
16:07 integral hmm, I don't think it was me
16:07 Juerd For Perl 6, I don't use syntax highlighting
16:07 Corion PerlJam: I don't know which file to look at. Gaal fixed it in src/Pugs/Compat.hs, but I don't know what prompted that change.
16:08 wolverian Juerd: why not?
16:08 lumi Ack, I'll write it later, gots go
16:08 Juerd They first need to figure out a way to make %foo{"bar%baz{"quux"}"} and /foo { /bar/ and fail }/ look good.
16:08 kolibrie autrijus++ embedded parrot evaluates matches nicely
16:09 kolibrie and s/// works awesome, too
16:09 kolibrie thank you
16:10 meppl has joined #perl6
16:11 putter has joined #perl6
16:11 autrijus kolibrie: np
16:11 autrijus kolibrie: and it's actually not slow :)
16:12 wolverian Juerd: I think you'll need perl6 integration in vim for that.
16:13 kolibrie autrijus: yep, seems pretty zippy
16:14 autrijus hmm :p6do in vim
16:14 Corion How do I convert IO String to String ? GHC complains that liftIO is not in scope - where would I find it or what should I use instead?
16:14 autrijus not hard really
16:14 autrijus Corion: you do it by using <-
16:15 autrijus liftIO can be imported with Control.Monad.Trans (liftIO)
16:15 Corion autrijus: D'oh ... I've done it so often, but still don't remember ;)
16:15 Corion Now it at least compiles :)
16:16 kolibrie could p6 grammars be used to define syntax highlighting - then highlighting could be perfect
16:16 autrijus kolibrie: not sure vim likes that
16:17 autrijus but sure, write a p6rules or parsec -> vimsyntax compiler!
16:17 autrijus glory is yours!
16:17 kolibrie autrijus: it is a little different from the current .vim format
16:17 kolibrie ah, the challenge
16:18 kolibrie maybe
16:18 meppl guten abend
16:19 Corion autrijus: Should Compat.hs be split up into Compat.hs and Compat.Win32.hs ? I'm hacking in more and more Win32 specifics in the non-PUGS_HAVE_POSIX part ... On the other hand, nobody has complained yet ...
16:19 autrijus Corion: I'm pretty sure the only nonposix is win32 ;)
16:20 autrijus but if you want to refactor, that is fine by me too
16:20 Corion autrijus: Ah, wait until we need to port to Symbian, CE and V;S ;)
16:20 Corion err - VMS
16:20 Corion But I'll postpone refactoring until then
16:20 Corion ;)
16:21 putter Status update: I'm currently banging on Perl6::Rules t/*.t.  Early "post"mortem - blech.  Substantial rewriting was needed, not just to convert p5 to p6 (expected),
16:21 putter but because the regexp dialect was very outdated (unexpected:).  Perhaps t/rules/Disabled should have been done first.  Or brand new tests written.
16:21 autrijus putter: btw, t/perl6.t is almost there now (from Disabled)
16:21 autrijus been working at it
16:21 Corion Oooo - svnbot6++ # showing the comitter
16:22 wolverian svnbot6-- # said 2931 twice
16:22 putter autrijus: good to know.  sorry - I should have followed your suggestion and done that first.
16:22 Corion Oh. And BTW, GHC is _very_ picky when linking DLL symbols - the case must match exactly.
16:22 Corion wolverian: But two different lines from the comitt message, so that's OK
16:23 Corion BTW, any other Win32 users here with a specific feature they are missing? I'm mostly working on implementing the Win32 equivalents of what POSIX provides, but maybe somebody can tell me a better thing to focus on ;)
16:24 wolverian Corion: no, he said the same two lines at 19:05
16:24 iblech wolverian: That's because autrijus' commit log was a multi-line message (it'd be simple to display the author and revnum only in the first line of each commit, but then we'd lose horizontal alignment)
16:24 wolverian same to iblech.
16:24 wolverian I can paste them if you want. :p
16:24 Corion wolverian: We trust you there ;)
16:24 wolverian that was.. 19 minutes ago.
16:24 osfameron_ Corion: would be great if threads/forking abstraction works well on Win32
16:25 * integral believes wolverian ;-)
16:25 wolverian OH FOR THE LOVE OF GOD
16:25 wolverian :(
16:25 Corion osfameron_: Ugh. That part is with GHC ;)
16:25 iblech wolverian: You're right... Shouldn't happen
16:25 Corion osfameron_: Threads work, and forking never will.
16:25 osfameron_ Corion: yeah, and it's a biggy...
16:25 wolverian iblech: yay!
16:26 iblech And svnbot6 showed the two commits in reverse, strange
16:26 Corion And personally, I'll never touch fork emulation. It doesn't work with Perl5 and it won't with Perl6.
16:26 * iblech is investigating
16:26 putter Before I go back and build pugs embedded, does anyone recognize: pugs> "a" ~~ /a/
16:26 putter pugs: waitForProcess: interrupted (Interrupted system call)
16:26 putter ?
16:26 integral *blink* it did it again!
16:26 Corion putter: What platform? Sounds like your Pugs got sent a signal...
16:27 Corion Looks like weird polling logic to me - it seems to use a sliding window instead of checking off stuff as "seen" and not posting it again.
16:27 putter Corion: x86_64, parrot HEAD, nonembedded,
16:27 autrijus jhorwitz: I want warnings and error control
16:27 autrijus jhorwitz: i.e. warnings.h should be exported
16:28 Corion putter: I don't recognize x86_64 as OS.
16:28 putter Corion: ;), FC3 current
16:28 Corion putter: But it still sounds like Pugs (resp. Haskell) got sent a signal and didn't handle it
16:29 putter Corion: tnx.  I'll add it to my stack of potential bugs to check later, and try embedded.
16:30 Corion putter: Maybe because the interactive loop of readline/pugs waits for signals...
16:30 Corion I don't have/use readline
16:30 Corion gaal: I've unified your patch with the main (Win32) version of getEnv
16:31 iblech [svnbot6] I understand. It seems svn.openfoundry.org sent the log messages in reverse (once). So, $cur_svnrev was set to the smaller one (r2931). Then, 300s later, svnbot6 looked for new commits, and treated r2932 as new, because $cur_svnref was, at that time, r2931.
16:33 wolverian would it be smart to just refuse to decrease $cur_svnrev?
16:34 iblech wolverian: I think so. Unfortunately, we can't test easily if this fix works, as svn.openfoundry.org "normally" sends the messages in the correct order
16:35 wolverian spoof some packets? :)
16:36 justatheory has quit IRC ()
16:36 iblech Not so easy with TCP ;) -- Fix commited as r2934
16:37 elmex has joined #perl6
16:38 pmichaud has joined #perl6
16:40 xinming has quit IRC (Client Quit)
16:40 chady has joined #perl6
16:42 osfameron_ has quit IRC ("Leaving")
16:45 Limbic_Region seen Jonathan
16:45 jabbot Limbic_Region: Jonathan was seen 1 days 14 hours 51 minutes 47 seconds ago
16:45 Limbic_Region seen Jonathan_
16:45 jabbot Limbic_Region: Jonathan_ was seen 6 days 23 hours 37 minutes 16 seconds ago
16:46 Limbic_Region hmmm - I wonder if he knows his nightly binary builds of Pugs for Win32 hasn't worked since the 7th
16:46 justatheory has joined #perl6
16:52 autrijus _metaperl:
16:52 autrijus http://www.metaperl.com/talks/p6/hangman-elucidated/slide2.html
16:52 autrijus the any<> is unescaped
16:52 autrijus you want &lt; &gt;
16:53 _metaperl oh thanks
16:53 autrijus np. great slides btw.
16:53 putter autrijus: Damian's email "Perl 6 rules capturing semantics" which you linked from the Journal is quite useful, and (recently) wasn't in pugs.  Should it be?
16:53 autrijus putter: what wasn't in pugs?
16:54 putter http://www.nntp.perl.org/group/perl.perl6.language/20985
16:54 pmichaud Damian is working on adding the document to S05
16:54 autrijus pmichaud: I added some error handling to pge
16:54 autrijus so perl6.t is running...
16:54 autrijus /a\N+?c/
16:54 autrijus segfaults badly
16:54 pmichaud ...that segfaults?
16:55 pmichaud (is there a "good" segfault? )
16:55 pmichaud :-)
16:55 chady has quit IRC ("leaving")
16:55 autrijus no :)
16:55 autrijus try it with your demo.pir?
16:55 autrijus it segfaults both here and there
16:55 ajs should "sub foo($a,$b){...} foo(1,2)" work? I keep getting an error invoking anything I define that takes more than one arg...
16:55 pmichaud indeed it does
16:55 pmichaud okay, working on it
16:55 ajs kill('SEGV',$$) would be a "good segfault" ;-)
16:55 putter ok.  it's rather critical for understanding rules.
16:56 Aankh|Clone is now known as Aankhen``
16:56 pmichaud if you think it's critical for understanding how to use rules, think of what it was like trying to write PGE w/o it :-)
16:57 pmichaud Hmm, I wonder if it's the '?' that's doing it
16:57 Corion r2933 - http://datenzoo.de/pugs/win2k.html
16:58 * pmichaud runs a trace
16:58 putter sigh.  When doing PUGS_EMBED=parrot, does anyone recognize this one...
16:58 putter pugs> "a" ~~ /a/
16:59 putter pugs: internal error: adjustor creation not supported on this platform
16:59 putter    Please report this as a bug to glasgow-haskell-bugs@haskell.org,
16:59 putter ?
16:59 autrijus oh wow.
16:59 autrijus x86 64?
16:59 putter t
16:59 autrijus 6.4.0?
16:59 putter t
16:59 * autrijus wonders if ghc-cvs helps
16:59 autrijus but, well, try using external parrot :(
16:59 obra autrijus: broken links in your last journal post
17:00 putter autrijus: re ghc-cvs... could be.  would save me always doing +RTS -A500M...
17:01 putter autrijus: re external... that was the previous "waitForProcess:  interrupted (Interrupted system call)" failure case ;)
17:01 autrijus obra: fixed
17:01 * autrijus mumbles something about x8664.
17:01 * autrijus mumbles something about ghc as well
17:01 autrijus try ghc cvs
17:02 autrijus and if it fails too, tell them to fix it :)
17:02 putter autrijus: will do.  thanks.
17:04 * putter remembers thinking "_64 porting problems aren't a _problem_, they're an _opportunity_ for writing more patches"... sigh.
17:04 putter er, just before deciding to buy one.
17:04 autrijus /a\N*?c/ segfaults too, but that's the same cause I think
17:04 pmichaud autrijus:  /a\N+c/ now fixed, r8046
17:04 autrijus woot.
17:04 pmichaud oops,
17:04 pmichaud autrijus:  /a\N+?c/ now fixed, r8046
17:05 autrijus pmichaud++ fast
17:05 pmichaud forgot a parameter in the minimal match for quantified character classes
17:05 pmichaud (try saying that quickly!)
17:06 autrijus I think I see an infinite loop...
17:06 pmichaud in PGE?
17:06 autrijus "a--" ~~ /^[a?b?]*$/
17:07 pmichaud yes
17:07 pmichaud PGE doesn't handle repeats of zero-length subpatterns yet
17:07 autrijus k
17:07 Limbic_Region did anyone change any unlink() code recently?
17:07 pmichaud it's coming -- basically each group has to know to repeat only once if the position hasn't updated
17:07 autrijus but other than that, it's faring quite well :)
17:08 autrijus (huge numbers of failures still, but hey)
17:08 Corion Limbic_Region: Not that I know of
17:08 pmichaud what sorts of failures?
17:08 Limbic_Region Corion - looking into why a couple io tests are failing (according to your last smoke)
17:09 Limbic_Region at least 1 I am responsible for
17:09 Limbic_Region and it worked fine on my box
17:09 autrijus hm
17:09 Limbic_Region does the smoke run in order?
17:09 autrijus this is abysmally slow
17:09 autrijus "bbbbXcXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ~~ /\NX(\N+)+X/
17:09 autrijus PCRE finishes it in 3 seconds
17:09 autrijus took PGE more than 1min and counting
17:09 autrijus I breaked it
17:09 Corion Limbic_Region: Yes it runs in order, but unlink on Win32 doesn't want to remove files still held open by the process.
17:09 Limbic_Region Corion - I know
17:09 pmichaud PGE's running unoptimized at the moment.  Purpose was to get something that works that we can evaluate :)
17:10 Limbic_Region there is an explicit close before the unlink
17:10 Corion Hmmm...
17:10 Limbic_Region and it worked fine on my Win32 build
17:10 knewt has joined #perl6
17:10 Corion Let's wait until the next smoke finishes :)
17:10 Limbic_Region ok
17:11 autrijus I keep seeing
17:11 autrijus SO=..
17:11 autrijus what is this?
17:11 Limbic_Region pasm
17:11 Limbic_Region ;-)
17:11 pmichaud it's in quantified ranges code somewhere
17:11 pmichaud must be some debugging trace I put in
17:11 autrijus ok.
17:11 theorbtw1 It's letting you know that your significant other is one dot sort of a full ellipsis.
17:11 autrijus also try feeding this to pge:
17:11 autrijus rule /^\N**{3..4}(\N+?)$1$/
17:12 autrijus it's segfault as well (I think)
17:12 dada has quit IRC ("1;")
17:12 pmichaud works for me
17:12 pmichaud at least as far as compiling the rule
17:12 autrijus try matching it with "foobarbar"
17:13 pmichaud yup, that segfaults
17:13 mauke what's \N again?
17:13 pmichaud not a newline
17:13 * knewt reads the latest in the circular dereference thread and shakes his head
17:13 mauke ah, thanks
17:13 _metaperl let's really get English like: my @basket has <apples oranges bananas> ;
17:13 autrijus knewt: /ignore ;)
17:14 _metaperl my $age is 35;
17:15 knewt autrijus: tried joining #perl6 on rhizo for a moment, and found it to exist but with a channel key
17:15 autrijus not having anything to do with me
17:15 * theorbtw1 was wondering earlier...
17:15 jhorwitz autrijus: back from lunch.  you need Parrot_warn, etc.?
17:15 * theorbtw1 wonders what it was that he was wondering earlier.
17:15 knewt yeah. when i saw the error i remembered the channel was actually over here
17:15 pmichaud autrijus: looks like it's a problem with the $ anchor
17:16 theorbtw1 Oh -- would it be possible to emulate the do { ... ; ... ; ... ; } form for non-IO monads in p6 / pugs?
17:16 theorbtw1 ; used to be an operator (and thus overloadable), but I think the recent [...] thing got rid of that.
17:16 pmichaud ^\N**{3..4}(\N+)$1 works
17:16 autrijus pmichaud: can you take the SO=.. away as well?
17:17 pmichaud done -- just haven't committed yet
17:17 autrijus okie
17:17 * autrijus waits for pmichaud's commit for a rerun
17:17 autrijus .pbc++ # cross-platform, requires no recompilation
17:17 autrijus vm++ # damn good idea
17:17 pmichaud Committed w/o S0=,  r8047
17:18 pmichaud ^\N**{3..4}(.+)$1$ works
17:18 pmichaud hmmmm
17:19 pmichaud and rule ^\N**{3..4}(\N+)$1$     works for me now for some reason
17:19 Limbic_Region autrijus - .pbc files work universally but depending on 32/64 bit may need to be re-aligned.  The plan was to provide a utility so that you could convert 1 time instead of incurring the miniscule penalty each time it ran
17:20 Corion r2935 - http://datenzoo.de/pugs/win2k.html
17:20 Limbic_Region regardless - transparent to end user
17:20 pmichaud oh, wait, minimal match
17:20 Limbic_Region Corion - still failing
17:21 Corion Limbic_Region: Which one is the test you're looking at?
17:21 Limbic_Region t/pugsbugs/io_finalize_part2.t for instance
17:21 Limbic_Region and t/builtins/io/io.t # which it was modeled after
17:22 pmichaud hmm, another bug in lazy cclasses...
17:22 autrijus pmichaud: can we backref to submatch?
17:22 Limbic_Region the weird thing is the test closing the file right before the unlink succedes
17:22 pmichaud autrijus: not yet in PGE
17:22 autrijus k
17:22 pmichaud autrijus: once I have it reasonably embedded with perl one will be able to do  $1[0] for a backref to submatch
17:22 Corion Limbic_Region: Hmmm. Interesting ...
17:22 pmichaud (or any other variable name)
17:23 Limbic_Region It worked when I wrote/tested it
17:23 Corion Limbic_Region: I guess I'll look if I can put a trace() call into Pugs at the "right" position so I can see if/when the Pugs FileHandle object gets destroyed and if it flushes its buffers...
17:23 Corion (although say() should never buffer)
17:24 Limbic_Region Corion - that's not the bug I am worried about right now
17:24 Corion Limbic_Region: Which bug is it then?
17:24 Limbic_Region that bug is something I think needs to be fleshed out with Larry and Chip
17:24 Limbic_Region ok - let me start at the beginning
17:24 pmichaud I bet I'm going beyond the string boundary there
17:24 Limbic_Region I noticed that a filehandle wasn't flushed when the program ended (assuming no explicit close)
17:25 autrijus pmichaud:
17:25 autrijus /[:i a]b/
17:25 autrijus why is it bad?
17:25 pmichaud :i isn't implemented yet
17:25 xinming has joined #perl6
17:25 Limbic_Region since I am not sure if p6 and/or parrot is guaranteeing timely destruction - going out of scope isn't necessarily enough to force the flush
17:25 pmichaud none of the case-insensitive things are implemented
17:25 xinming has quit IRC (Client Quit)
17:25 Limbic_Region regardless - program ending should be
17:25 Limbic_Region so I wrote a test to show it as a bug
17:25 pmichaud because I didn't have anything in Parrot to be able to do case-insensitive matches until this morning :-)
17:25 Limbic_Region but now in addition to that bug, the file is no longer being removed
17:26 pmichaud (oh, I could do a bunch of tolowers, I suspect)
17:26 Limbic_Region that is something that *was* working correctly
17:26 autrijus pmichaud: ok. parsefails:
17:26 autrijus http://autrijus.org/pge_run.txt
17:26 Limbic_Region Corion - got it?
17:26 pmichaud I don' t have character classes yet either (same reason)
17:26 pmichaud or lookaround
17:27 Corion Limbic_Region: That still doesn't really tell me which test is now failing for you that previously did not. I assume that you are talking about test #4 in t/pugsbugs/io_finalize_part2.t, correct?
17:27 pmichaud I can probably get it to parse (but not honor) :i
17:27 Limbic_Region Corion - only 1 of the tests in the file should have failed
17:27 Limbic_Region now 2 are
17:28 Limbic_Region the last one should pass but fails
17:28 Limbic_Region as does the last one in t/builtins/io/io.t
17:28 Limbic_Region which is also unlinking a file (that has been closed)
17:29 wolverian Limbic_Region: there's a parrot op to force a dod sweep, and you can (if not now, eventually) mark which objects you want to be timely destructed. there is no default timely destruction in parrot, and perl6 doesn't require it
17:29 Corion Limbic_Region: Ah. So. I was correct in the presumption that you are talking about test #4 in t/pugsbugs/io_finalize_part2.t . This sounds to me as if Win32::API close() is not called/executed at the "right" time.
17:29 Corion wolverian: We are not on parrot.
17:29 wolverian that's a good point.
17:29 wolverian :)
17:29 Corion wolverian: Of course does Perl6 require it, if you're trying to unlink a file on Win32.
17:29 Limbic_Region wolverian - besides, just because it is possible doesn't mean someone has spec'd what p6 will do
17:30 Limbic_Region Corion - yes, test4 - which should not be failing now and was not failing in the past
17:30 wolverian I distinctly remember seeing a p6i post with larry saying perl6 doesn't need timely destruction (by default)
17:30 Limbic_Region wolverian - so do I but that was some time ago - he changes his mind you know
17:30 wolverian or on some other mailing list, I guess.
17:30 wolverian Limbic_Region: true enough. :)
17:31 pmichaud autrijus: what should PGE do when a parse fails?
17:31 pmichaud right now it just kinda slops around :)
17:31 Corion wolverian: I don't care what Larry says the default is, but if close() and unlink(); is ever to work on Win32 it will either need special-casing magic or timely destruction/buffer-flushing.
17:31 pmichaud should it return an undef, or as larry puts it, an "interesting" undef?
17:31 Limbic_Region Corion - my mistake, your mind dump of what the problem might be sounded like you were attempting to solve the original problem I wrote the bug test for
17:31 Limbic_Region we are on the same sheet of music
17:31 wolverian Corion: yes, of course. the objects that need timely destruction should be marked as such.
17:31 _metaperl what does "PGE" mean?
17:31 Limbic_Region I am just wondering why it mysteriously stopped working
17:31 nothingmuch has joined #perl6
17:31 pmichaud PGE = Parrot Grammar Engine
17:31 Limbic_Region Grammar Engine
17:31 pmichaud it's the piece that implements perl 6 rules and string matching
17:32 autrijus pmichaud: I made it throw Exception
17:32 _metaperl oh, so if ruby/python compile to parrot, they will be pcre... interesting
17:32 Corion Limbic_Region: Ah. Well, maybe "svn blame" on Prim.hs or src/Pugs/Types/Handle.hs can tell you something.
17:32 simcop2387 has joined #perl6
17:32 Limbic_Region Corion - I am out of the svn/svk game for sometime
17:33 Limbic_Region no net connection from the new house until at least this saturday and no-go from work
17:33 Corion Limbic_Region: Ow! Well, maybe I find something that either allows us to delete open files or maybe I even find the bug there.
17:34 elmex did someone test parrot/perl6 on HURD ? ;)
17:34 broquaint has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.3/20050414]")
17:34 Corion Hmmm. Pugs should get Win32::OLE and/or Win32::COM as soon as possible. Maybe GHC provides us with that already?
17:35 autrijus Corion: look at Win32.*
17:35 autrijus I think GHC gets us that already
17:35 Corion autrijus: So Just some glue magic is needed. Plus magic reflection, like $AUTOLOAD.
17:35 pmichaud autrijus:  ^\N**{3..4}(\N+)$1$ now works
17:36 pmichaud er
17:36 pmichaud autrijus:  ^\N**{3..4}(\N+?)$1$ now works
17:36 pmichaud (I keep forgetting those ?'s)
17:36 autrijus great
17:36 pmichaud now to :i
17:37 Corion Hmmm. Should I give Pugs CreateHardLink() ? That would make Pugs only work on Win2k upwards ...
17:37 Limbic_Region Corion - well I am still trying to learn p6 so I can't be much help from the Haskell side
17:37 justatheory has quit IRC ()
17:37 * Limbic_Region is just poking people when things don't look right
17:37 Limbic_Region and attempting to find bugs along the way of his self-edumacation
17:38 autrijus Corion: just go ahead :) let it fail on win9x
17:38 autrijus Corion: oh and it works with ntfs only
17:38 Corion autrijus: It would also fail on WinNT, which is what I have at work ;)
17:38 autrijus with ntfs you can do symlinks on dirs too
17:38 autrijus I think it can be made to work on winnt
17:38 autrijus see my cpan modules:
17:38 autrijus Win32::Hardlink Win32::Symlink
17:38 Corion autrijus: True - I forgot about the non-NTFS part ...
17:39 Corion Oh. And Win32 has LZOpen(), LZClose() and LZRead() :))
17:39 * autrijus wonders how long it will take to write another 100ish perl6 modules
17:40 Corion ... it's been a long time since I looked through the Win32 API ;)
17:40 Limbic_Region autrijus - I was smart, I only wrote 1 public p5 module
17:40 Limbic_Region won't take me long at all to re-write mine
17:41 * Limbic_Region is waiting for proper OO though
17:43 Limbic_Region out of curiosity - are there any examples of doing tied variables?
17:43 autrijus no..
17:43 stevan_ Limbic_Region: did you see Hack::Instances :)
17:44 Limbic_Region stevan_ (did you see "proper") :P
17:44 stevan_ proper?
17:44 Limbic_Region IOW - I am being lazy and making excuses
17:45 stevan_ LOL
17:45 stevan_ Hack::Instances is kinda fragile, but your external code should be able to stay (mostly) the same
17:45 Limbic_Region ok so in p6 tied variables will be done with traits right as in my $debbie does Dallas?
17:45 stevan_ the internals will only need re-writing
17:46 pasteling "iblech" at 80.81.4.211 pasted "Limbic_Region: tied scalars are simple" (8 lines, 168B) at http://sial.org/pbot/10051
17:46 stevan_ anyway, lunch time &'
17:47 Limbic_Region interesting
17:47 pmichaud autrijus: [:i a]b now parses
17:47 pmichaud r 8049
17:48 iblech the Proxy object is specced in S06, IIRC
17:49 pmichaud it gets a one-line mention
17:49 pmichaud oh, as "Proxy" it's one-line
17:49 pmichaud it's actually covered in more detail at Lvalue subs
17:49 Limbic_Region iblech - I am going to spend some time reading my Perl6::Bible
17:50 * Limbic_Region needs to spend some more time reading The Bible too
17:51 iblech (BTW, FYI, at http://freepan.org/repos/iblech/Perl6-Bible there's a fully working p6bible and perl6doc (both written in Perl 6, though perl6doc calls perldoc after having set some %*ENV vars)
17:51 Limbic_Region iblech  
17:51 Limbic_Region grrr
17:51 Limbic_Region iblech plus plus
17:51 ninereasons iblech++ # always making such useful things
17:51 Corion Heh. Looking at the length.t failure, it seems that PCRE doesn't cope well with unicode?
17:52 pmichaud pcre doesn't cope well with unicode in some respects, no
17:52 Corion pmichaud: Ah, so then there is no sense in looking into that ;)
17:52 iblech Stevan++ # /me's waiting for a POD::Simple written in Perl 6 :)
17:52 pmichaud well, I've run into problems with pcre and unicode in the past
17:53 integral hmm, what's the word you put after `import` to not import something?
17:53 Corion integral: You put "--" before "import" :)
17:53 integral heh.   I mean just one function from the module
17:53 pmichaud import "something" but not really;
17:53 Corion integral: import qualified Module.Name
17:53 pmichaud :-)
17:53 integral hiding :-)
17:53 Corion And then you use Module.Name.Function
17:54 Corion (or, as I do, localFunction = Module.Name.function)
17:54 boogie has quit IRC ("Chatzilla 0.9.67+ [Mozilla rv:1.8b2/20050423]")
17:54 G2 has joined #perl6
17:54 autrijus Corion: the fault is mine. sec
17:56 autrijus Corion: basically the matchFrom and matchTo returned was bytes
17:57 autrijus Corion: but I'm too tired to fix. maybe you can take a try
17:57 autrijus it's in Prim.hs line 766
17:57 Corion autrijus: I'll look at that ;)
17:57 autrijus the key is that the offsets as returned from rv
17:57 autrijus are in bytes
17:57 autrijus even though PCRE correctly matches against unicode
17:57 autrijus i.e. the match is unicode
17:57 autrijus but the offsets are in bytes
17:57 autrijus p6 demands that we recalculate offsets in chars
17:58 autrijus one way to do this is to do the genericDrop etc to cs'
17:58 autrijus where cs' = encodeUTF8 cs
17:58 autrijus then recalculate from and len with genericLength of the portion dropped
18:00 autrijus pmichaud: btw, you were using latin1 << and >> in ascii encoding
18:00 autrijus pmichaud: so I texanised them
18:01 pmichaud yeah, I noticed that -- no problem
18:01 autrijus k :)
18:01 pmichaud I haven't got a good utf-8 editor here
18:01 pmichaud earlier this week I was wondering what encoding we would be using for perl programs
18:02 theorbtw1 At present, pugs /requires/ that the input be utf8.
18:02 theorbtw1 I think that's a very good default.
18:02 pmichaud yes, but there may be a goodly number of editors that cannot edit/display utf8
18:02 pmichaud we may discover that someone will read a file into an editor and have it become garbage upon save
18:03 pmichaud well, not garbage, but something that perl no longer understands
18:03 * Juerd must be careful to stay friendly
18:03 justatheory has joined #perl6
18:03 integral 7-bit ascii is still a subset of utf-8...
18:03 ingy autrijus: 11:03 < purl> couldn't get the headlines:
18:03 ingy              http://wagner.elixus.org/~autrijus/cpan.rdf wasn't successful
18:03 Juerd All ASCII is 7-bit
18:03 ingy is that you?
18:04 autrijus ingy: wagner is offline
18:04 autrijus maybe permanently
18:04 Juerd integral: I think it's better described as: ascii is represented with unmodified bytes in utf-8
18:04 autrijus be patient while we deal
18:04 ingy ouch
18:04 zuulvin_ has joined #perl6
18:04 integral Juerd: true
18:04 ingy autrijus: I'm a Perl programmer, but OK
18:06 theorbtw1 A pure ASCII file is valid utf-8, with identical semantics.
18:06 theorbtw1 (By definition.)
18:06 autrijus pmichaud: yeah. problem is, a parser needs to be two-pass
18:06 autrijus to accurately accomodate for both utf8 and latin1
18:06 pmichaud sure, but let's say I grab a file from cpan that has utf-8 characters in it into my non-utf8 editor
18:06 autrijus pmichaud: either that, or allocate a fixsize buffer to guess
18:07 pmichaud or, my editor understands utf-8, and happily converts the utf-8 sequences into iso-8859-1 for me
18:07 autrijus pmichaud: the latter is rare
18:07 autrijus pmichaud: the first is quite possible.
18:07 autrijus (note that I was against the utf8 form of << >> and Y.)
18:07 autrijus (mostly because they are not in big5 ;))
18:07 pmichaud oh, I don't mind the utf8 forms -- I'm just curious how we'll end up dealing with them when it's all said and done :)
18:07 autrijus I still am, but it's part of spec, so I implement the utf8 form. :)
18:08 theorbtw1 pmichaud, if the editor is sane, you'll see two-byte sequences where there should be unicode chars, and if you don't touch them, you'll be fine.
18:08 autrijus theorbtw1: the "don't touch them" part is hard
18:08 integral maybe just easier to bail, and print "You have a weird idea of utf-8, run perl6-fix-non-utf-8-encodings"
18:08 autrijus because you may be writing new code.
18:08 theorbtw1 Big5 doesn't have Â¥?  That seems like an odd omission...
18:09 pmichaud theorbtw1:  yes, I know one can probably get by with simply not touching the "funny looking characters", but I'm sure there will be a lot of programmers who struggle with it for a time
18:09 autrijus theorbtw1: it has ï¿¥
18:09 pmichaud for me personally it won't be a problem -- I know about charsets and char encodings :-)
18:10 ajs autrijus: keep in mind that the unicode << and >> are ISO-8859-1 as well as Unicode, which is why Larry suggested them.
18:10 ajs I don't know of any editor that does not support 8859-1
18:10 pmichaud yes, but ISO-8859-1 is not  utf-8
18:10 ajs yes....
18:11 pmichaud so, the parser has to have some idea of what encoding it's seeing when it's reading the file, or we have to decree that all perl programs are utf-8 or something like that
18:11 autrijus ajs: notepad on win32, chinese edition
18:11 autrijus does not support latin1.
18:12 autrijus I think it's the same for CJK.
18:12 autrijus also the Yen sign if typed in a JIS keyboard
18:12 autrijus will become backslash sign \ in ascii.
18:12 autrijus so I'd be very wary of using Yen sign in latin1.
18:13 Corion autrijus: Does wordpad support anything good? Because notepad.exe also doesn't support unix newlines.
18:13 autrijus Corion: the same, I think.
18:13 autrijus you can use utf8 or codepage
18:13 Corion autrijus: Ugh
18:13 * PerlJam is *so* glad that Larry is the language designer  ;)
18:13 autrijus and the default codepage is not latin1 for CJK people.
18:13 autrijus (actually you can also use ucs2.)
18:16 ajs If your editor spits out ASCII \ for yen, then I'm not sure there's much we can do for you. I honestly think you're better off writing in your native set and using a special module like "encoding" in Perl 5 (though hopefully better)
18:17 autrijus ajs: that's why JPerl :)
18:17 * theorbtw1 wonders how hard it would be to support something like 'use encoding "foo"'.
18:17 * autrijus ponders $x<y> ¥ $z[$w]
18:17 Corion PERL6OPT=-Mdecode=... :)
18:17 theorbtw1 autrijus, those are with the fullwidth chars?
18:17 autrijus theorbtw1: right.
18:18 autrijus theorbtw1: there's no halfwidth "high-bit" special symbols in big5
18:18 ajs remember that perl5 "encoding" is not sufficient, but hopefully Perl 6 won't have the same problems with unparsable text after the pragma.
18:18 autrijus theorbtw1: all of them are fullwidth
18:18 theorbtw1 Eh, ajs?
18:18 kolibrie autrijus: what font do I need to see those characters correctly?
18:18 autrijus kolibrie: I don't know... arphic maybe
18:18 ajs lemme get the quote from the docs....
18:18 iblech Hm... it seems P5 regexes, when inside a given { when rx:P5/.../ {...} }, don't capture correctly, but I was yet unable to deduca a test case
18:19 kolibrie autrijus: thanks, I'll try
18:19 theorbtw1 /who
18:19 theorbtw1 Grr.
18:19 theorbtwo has quit IRC (Nick collision from services.)
18:19 theorbtw1 is now known as theorbtwo
18:20 ajs Oh nevermind. Perl 5.8.1 fixed the encoding / Big-5 scan-ahead problme
18:20 ajs er problem
18:20 autrijus right.
18:21 iblech P6 regexes seem to not work, either (when inside a bigger program)... /me continues to investigate
18:21 kolibrie autrijus: ttf-arphic-ukai or ttf-arphic-uming or both?
18:21 autrijus pmichaud: hey, is this legal?
18:21 autrijus rx  /foo/
18:21 autrijus rx   :P5/foo/
18:21 autrijus kolibrie: ming may be better
18:21 autrijus either would do
18:21 pmichaud well, it's going to be    rx :perl5 /foo/
18:21 kolibrie autrijus: ok
18:22 autrijus er, larry hinted that it's changing to :P5
18:22 autrijus is that retracted?
18:22 pmichaud actually, it was :p5 for some time and then I noticed it changed in the synopsis
18:22 * autrijus mumbles something about sunspot activity
18:22 autrijus pmichaud: but anyway. is
18:22 autrijus rx /foo/
18:22 autrijus legal?
18:23 pmichaud yes, why?
18:23 pmichaud I'm pretty sure it is
18:23 pmichaud you mean as a statement by itself?
18:23 pmichaud or...
18:23 pmichaud ?
18:24 autrijus the space
18:24 autrijus between rx and /
18:25 autrijus I had it as legal
18:25 autrijus not terribly sure
18:25 pmichaud S05.pod:    $rule = rx :g :w :i / my name is (.*) /;
18:25 stevan_ has quit IRC ("Leaving")
18:26 stevan has joined #perl6
18:27 lightstep has joined #perl6
18:28 iblech autrijus: Both P5 and P6 regexes capture correctly (and promote $1, etc. correctly), but $/ and $1, $2, etc. are not lexical, it seems -- you know that bug?
18:28 autrijus iblech: it's a XXX
18:28 iblech autrijus: Ok
18:29 autrijus not really sure how to do that
18:29 autrijus we can let each scope introduce its own $/
18:29 autrijus or, only add $/ to the pad when match happens
18:29 autrijus or, make it effectively a temp()
18:29 autrijus the last one is easiest
18:29 pmichaud I'd add $/ to the pad when match happens
18:29 stevan iblech: re: POD::Simple, what do you need?
18:29 autrijus pmichaud: right, but runtime pad?
18:30 autrijus sub foo { m//; return -> { $/ } }
18:30 autrijus maybe a static analysis at parsing time
18:30 pmichaud yeah, probably
18:30 iblech stevan: Currently, my perl6doc is just a wrapper around perldoc. It'd be cool if we had a pod2man/pod2text in pure Perl 6 :)
18:30 autrijus ok, I'll go with static analysis then
18:31 autrijus good that eval "m//" will terminate at the "" scope
18:35 kolibrie autrijus: ttf-arphic-uming installed - do I have to restart my terminal, or will characters show up properly if you were to send again?
18:36 zuulvin_ has quit IRC (Read error: 110 (Connection timed out))
18:36 zuulvin_ has joined #perl6
18:37 autrijus kolibrie: M=E/C²
18:37 putter re static analysis: eval("m//") ?
18:37 autrijus putter: eval triggers reparse
18:37 putter k
18:37 autrijus putter: and the scope is in ""
18:37 autrijus so all's good
18:37 autrijus I worry about (m// + m//) though.
18:37 autrijus does the second m// see $/ from the first?
18:38 autrijus i.e. is the pad creation pushed to statement level?
18:38 pmichaud once a new match is started, $/ is bound to it
18:38 autrijus ok. but what about
18:38 pmichaud i.e., any $/ used in a match refers to the current match object
18:38 autrijus return (->{$/}, m//);
18:38 pmichaud (the one being built)
18:38 autrijus does the $/ bind to the pad created by m// ?
18:39 kolibrie autrijus: hmm.  looks different, but still a few missing characters
18:40 pmichaud autrijus: I dunno about that one -- I'd have to review my notes a bit
18:40 * putter wonders if "defined $1" sheds any light
18:41 wilx has joined #perl6
18:42 Khisanth $/ is still kicking around in p6? I thought all those punctionation type variables were going the way of the dodo...
18:42 lightstep has quit IRC ("leaving")
18:42 Corion Khisanth: $/ is now per =$fh , so I doubt that it's still called $/
18:42 Khisanth heh $fh./
18:43 Khisanth how is that for ugly? :)
18:43 pmichaud $/ is the "replacement" for $0
18:43 theorbtwo $/ in p6 is something completely different from $/ in p5.
18:43 autrijus $fh.irs I think
18:43 autrijus irs is a weird name.
18:43 pmichaud $/ is the result of the last match
18:43 theorbtwo Reminds me of taxes, autrijus.
18:43 Corion IRS is perfectly fine if you know awk ;(
18:43 Corion err - :)
18:43 theorbtwo (The US Internal Revenue Service.)
18:43 Corion (and shell, of course)
18:43 clkao inland revenue!
18:44 Corion Except there it's called "$IFS" :)
18:44 autrijus clkao: hey. congrats for svk1.0
18:44 Khisanth irs conjures too much hatred
18:44 clkao autrijus: thank you! and party!
18:44 clkao autrijus: obra is flying over for the party. you can, too!
18:45 autrijus ...
18:45 nothingmuch has quit IRC (Read error: 113 (No route to host))
18:45 autrijus I guess I can.
18:45 clkao no, but, have a party in taipei maybe
18:46 clkao ha, for sure? it's this thursday
18:46 autrijus like, 48 hours from now?
18:46 autrijus mmm. challenging
18:46 clkao correct
18:46 autrijus but not infeasible
18:46 autrijus what's usd$2k among friends? ;)
18:47 Aankhen`` What the...?
18:47 Aankhen`` Notices?
18:47 * Aankhen`` cries.
18:47 autrijus yeah, a bot written in perl6
18:47 Aankhen`` msg #perl6 wasn't good enough?
18:47 iblech Aankhen``: The IRC RFC mandates that bots always use /NOTICEs to send stuff
18:48 autrijus oh there's an IRC RFC?
18:48 Aankhen`` Sadly, notices are rather annoying.
18:48 autrijus also it's not logged
18:48 autrijus maybe for the better.
18:48 obra autrijus: frequent flyer miles
18:48 Aankhen`` Anyway, it's cool to hear of the new bot. :-)
18:49 iblech autrijus: Yes, there'is RFC 1459 (from 1991 IIRC), and there're four new RFCs from 2000 (RFCs 2810 - 2814)
18:49 autrijus ah. didn't know about the 28xx one
18:50 kolibrie autrijus: did I read that right - 'rule' is now implemented?
18:50 autrijus kolibrie: rule{} yes.
18:50 kolibrie very nice
18:50 PerlJam yeah, autrijus++ and pmichaud++
18:50 iblech Aankhen``: Plus, as there's now a working Net::IRC, writing new bots is very simple :) You may want to look at examples/network/{svnbot,logbot,seenbot}.p6
18:51 Aankhen`` Will do.
18:51 autrijus pmichaud: rules live in their own namespace right?
18:51 autrijus pmichaud: i.e. you can have a grammar Foo, a rule Foo, a class Foo and a role Foo
18:51 pmichaud I haven't worked out the namespace issues yet
18:51 Aankhen`` I was recently called on to write a bot for someone, so maybe it'll end up being in Perl 6... :-D
18:52 Aankhen`` Although I dunno.  It's not likely they'll be able to run Pugs, since they'll be at the mercy of the server admin.
18:52 pmichaud can we have a class Foo and a package Foo?
18:53 PerlJam modules, classes and packages all share the same namespace I thought
18:54 pmichaud if that's the case, then grammars are there too :)
18:54 PerlJam er, no pun intended
18:54 PerlJam pm: that makes sense to me.
18:54 pmichaud supposedly,   grammar : rule  -> class : method
18:55 saorge_ has joined #perl6
18:55 PerlJam right, so grammar Foo and rule Foo can live peacefully together
18:55 pmichaud either that or grammar : rule -> module : method
18:56 putter Re eval... thinking about Ruby's "functions can participate in class declaration" (eg, "has $.foo is rw" is "attr_accessor :foo",
18:56 putter where atter_accessor is an ordinary function doing something like class_eval("def foo ..."))
18:57 putter how does one do this in p6?  macros?
18:58 Juerd pmichaud: Yes, there can be a class Foo and a package Foo, but they share the same namespace :)
18:58 iblech putter: I think has() could be implemented as a macro, yes. Because of BEGIN{}, Perl programs can freely "chat" with the compiler, so a thing like attr_accessor is relatively simple implemented (I think)
19:00 wolverian don't we have a Class.methods.push( { ... } ) or so? :)
19:00 pmichaud juerd:  in that case I'd say that grammar Foo shares the same namespace as well :)
19:00 stevan wolverian: maybe with the metaclases
19:00 pmichaud a rule is just a funny sort of sub
19:00 wolverian stevan: that'd make sense.
19:01 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
19:01 pmichaud that's certainly the way rules are implemented in parrot / PGE :)
19:01 Odin- has joined #perl6
19:01 putter iblech: so the next question is whether/how one can modify a class decl at later runtime.  In ruby its class_eval or somesuch, in python $class.something_more_specialized_like_define_method...
19:02 wolverian ask p6l?
19:02 Juerd pmichaud: I've been wondering the past few days if rules need their own sigils
19:02 saorge has quit IRC (Read error: 60 (Operation timed out))
19:03 Juerd pmichaud: And perhaps not be called with <...> but be "interpolated" with their sigils, accepting arguments the same way a &sub does
19:03 pmichaud I think it's best to leave them as & and subs
19:03 PerlJam Juerd: no way!
19:03 Juerd PerlJam: Why?
19:03 Juerd It's a very major, important and omnipresent data type
19:04 pmichaud and the <...> for subrules works extremely well
19:04 Juerd pmichaud: Then perhaps, and this may sound horrible, <> should be the sigil :)
19:04 pmichaud syntactically it's almost exactly what we want.  In that sense, you could think of <...> as being the rule's sigil :)
19:04 Juerd Outside of rules
19:04 putter Ruby's eval, method_eval, class_eval has been much more flexible than the python equivalents.  though apparently they are slated for downgrading (eg, new vars decled in eval have only eval in scope).
19:04 pmichaud no, I much prefer having <...> as the {'...'}  replacement
19:05 Juerd If they share namespace, they mustn't clash with ANY other identifier
19:05 Juerd pmichaud: I badly want '' to be {''}'s replacement
19:05 Juerd pmichaud: And $foo to be <$foo>'s replacement
19:05 Juerd pmichaud: And "$foo" to be $foo's replacement
19:05 Juerd It makes everything MUCH cleaner
19:05 pmichaud I'm not sure I agree that it makes everything MUCH cleaner
19:05 Juerd from simple matching, like '(' \w+ ')' to anything involving $foo
19:06 autrijus ok. < is now a sigil in Pugs's pad for rules :)
19:06 * autrijus has been listening.
19:06 Juerd If <> calls rules, then <$foo> should call the rule NAMED $foo
19:07 pmichaud <...> is overloaded with lots of things
19:07 Juerd i.e. $key := (\w+) = $value := (<$key>)
19:08 Juerd pmichaud: Yes, and interpolation of strings or subrules doesn't belong there, imo
19:08 Juerd Certainly literals don't belong in <>
19:08 pmichaud in this instance, you're wanting <$key> to be the rule that was assigned to $key earlier in the match?
19:08 Juerd Oh, damn, I read your {''} as <''>
19:08 Juerd in rules
19:08 Juerd For clarity, I want:
19:08 Juerd    <''> => ''
19:08 Juerd    <$foo> => $foo
19:09 Juerd    $foo => "$foo"
19:09 pmichaud you want quotes to be metachars in rules?
19:09 Juerd Yes! Very much!
19:09 PerlJam no way!
19:09 Juerd pmichaud: And <$key> should call <addr> if \w+ matched "addr"
19:10 Juerd PerlJam: For anything's sake, stop the lame "no way" replies, and bring in some reasoning.
19:10 pmichaud I like <$key>'s current interpretation better
19:10 theorbtwo Hm, I'm not sure I try to match on ' or " in REs any more or less then < and >.
19:10 PerlJam Juerd: sorry I'm talking  IRL
19:10 Juerd PerlJam: Then stfu
19:10 pmichaud <$key> treats the value of $key as a subrule to be matched
19:10 knotty has joined #perl6
19:10 theorbtwo In any case, I suspect I'll use p5 REs for simple ones, and p6 REs for complicated ones.
19:10 Juerd pmichaud: To be honest, I don't like <$foo> calling a rule named $foo
19:11 Juerd pmichaud: But I *hate* <''>, $foo and <$foo> as they are right now
19:11 pmichaud what exactly do you hate about them?
19:11 Juerd <''> because every <> matches something dynamic, but this one matches something static
19:12 Juerd <$foo> because it's ugly and can be $foo if $foo is "$foo", which makes sense
19:12 pmichaud <[...]> isn't dynamic
19:12 theorbtwo <> matches something strange.  Trying to match nothing at all counts as something strange to me.
19:12 Juerd That way, you are left with only one literal interpolator: '' and ""
19:12 Juerd Instead of  <''>, <""> and <$foo>
19:13 pmichaud would we do the same for matching arrays and hashes?
19:13 pmichaud i.e.,   "@array",  "%hash"  ?
19:13 Juerd pmichaud: It's dynamic in the sense that <[a..z]> matches no dot, but one of a, b, c, ... z
19:13 Juerd pmichaud: "" would follow normal interpolation for q:2
19:13 pmichaud well, that wouldn't be the same as <@array> and <%hash> then, or @array and %hash as they are now
19:14 Juerd pmichaud: Making "$foo" the obvious way to match $foo literally in the same way that s/.../{ foo() }/ is s///e's natural replacement
19:14 Juerd This all greatly simplifies
19:14 pmichaud except for @array and %hash
19:14 gaal_ good morning.
19:14 Juerd No, those become more clear even
19:15 Juerd @array now intepolates a disjunction of *rules*
19:15 Juerd while $string interpolates a *string*, that is matched literally
19:15 Juerd That's inconsistent
19:15 pmichaud and not true
19:15 Juerd Oh?
19:15 pmichaud @array interpolates a disjunction of strings
19:15 * theorbtwo wonders if you can do a C< rule :P5 {...} >
19:15 Juerd I see
19:15 pmichaud <@array> interpolates a disjunction of rules
19:15 Juerd Then at least it is consistent
19:15 Juerd I still don't like it, though.
19:15 pmichaud well, the nice thing about PGE is that everyone can write their own RE syntax :-)
19:16 Juerd And I want '' and "" to be metacharacters because <''> sucks
19:16 Juerd \( \w+ \) is hardly readable
19:16 Juerd <'('> \w+ <')'> is worse and hard to write as an extra bonus
19:16 BigBear has joined #perl6
19:16 Juerd '(' \w+ ')' is clean, easy to read and write
19:17 PerlJam Juerd: so is <lp> \w+ <rp>   :-)
19:17 putter is there a reason Internals.hs imports Data.Ratio twice?  i thought that was a no-no.
19:17 theorbtwo It is, PerlJam?
19:17 Juerd In a world of readable rules (as opposed to linenoise regexes), I would love to be able to avoid using the backslash to escape to literal interpretation
19:17 PerlJam theorbtwo: It looks clean to me and I found it easy to write  :)
19:17 Juerd The same way you don't do $foo = '<' and not $foo = \<
19:18 Juerd Rules are a language, no longer you should consider them string-like, I'm convinced.
19:18 pmichaud indeed, rules are a language unto themselves.  That's why they have their own compiler
19:18 PerlJam Juerd: so ... where's your proposal to p6l?
19:18 Juerd It's also why \( is needlessly ugly
19:18 Juerd PerlJam: I must read S05 again before I bug p6l.
19:19 ajs Juerd: \( \w+ \) isn't readable? Hmmm... I guess I must be too much of an old-school Unix guy. Looks clean to me. I always loved Perl for cleaning up the \ usage in regexen
19:19 PerlJam Juerd: Then I eagerly await your post.  At least then I'll have the time to shoot at it appropriately  :)
19:19 Juerd PerlJam: And for that I haven't yet had the time. Read logs of this channel to find that I'm pondering this for more than a month now.
19:20 Juerd ajs: Don't you think '(' \w+ ')' is more readable?
19:20 Juerd ajs: And what about [email@hidden.address] compared to either of foo\@example\.com and <'foo@example.com'>
19:20 Juerd Honestly, <''> breaks my fingers.
19:21 theorbtwo Juerd: You're using a sane keyboard layout, right?
19:21 estel has quit IRC (Read error: 104 (Connection reset by peer))
19:21 Juerd theorbtwo: Yes, dvorak.
19:21 Juerd theorbtwo: It's *worse* with QWERTY.
19:21 ajs Hmmm... no, because '' is not visually balancing, so '('('('\w+')')')' is REALLY hard to read, even with spaces added appropriately '(' ( '(' \w+ ')' ) ')' where I find \((\(\w+\))\) to be much easier to count up \s
19:21 theorbtwo <'...'> isn't /that/ hard to type.
19:21 Juerd theorbtwo: Oh, yes, it is /that/ hard.
19:21 Juerd ajs: I disagree.
19:22 theorbtwo Is there a reason not to allow both <'('> and \( ?
19:22 * integral agrees with ajs
19:22 Juerd ajs: But -- my thinking is not that \ should go away. It should stay.
19:22 ajs Juerd: your perogative
19:22 gaal has joined #perl6
19:22 Juerd ajs: And '' and "" should be added to the list of metacharacters
19:22 iblech has quit IRC ("school tommorow, off &")
19:22 PerlJam Juerd: I find <''> fine for longish strings, but I agree that it's slightly annoying for one or two char strings.
19:22 PerlJam Juerd: I take it that something like <(> \w+ <)> wouldn't do it for you either?
19:22 decay_ has quit IRC (Read error: 54 (Connection reset by peer))
19:22 decay_ has joined #perl6
19:23 ajs I have no gripe with your WTDI. There are cases where it would be clearer
19:23 Juerd PerlJam: No, it's better than the <''> thing, but not by far good enough. Besides that, I'd like to pull weird exceptions out of <>, rather than adding even more.
19:23 Juerd <> is way, WAAY too overloaded in rules.
19:23 PerlJam Juerd: Just like I'd like to have fewer metacharacters rather than more :-)
19:23 estel has joined #perl6
19:24 pmichaud sometimes it's better to put most of the overloading in one place
19:24 PerlJam Juerd: I think the overloading of <> is fine.
19:24 Juerd PerlJam: IMO, anything that is \W can be a metacharacter without trouble, *especially* if '' is added
19:24 PerlJam Juerd: It allows you to escape into yet another sub-genre of the rule language.
19:25 Juerd pmichaud: Yes, certainly. But in my opinion, it is always better to find a way without any overloading at all, if it's within reach and reason.
19:25 pmichaud the nice thing about <$file> is that you get a capture in the process
19:25 pmichaud whereas that wouldn't happen with $file
19:25 Juerd pmichaud: Why? Following my proposal, $file would be identical to the current <$file>.
19:26 pmichaud you want string interpolations to automatically capture to the hash?
19:26 pmichaud er, to the match's hash?
19:26 Juerd pmichaud: And - I have no real use for <$var>. The symbolic reference thing was thinking out loud.
19:26 Juerd pmichaud: So they can both be available even
19:26 Juerd pmichaud: No, I want $foo to be rule interpolation, and string interpolation to be strictly associated with quotes
19:27 autrijus so, while you're chatting...
19:27 pmichaud I think that's the wrong huffmanization
19:27 autrijus ...I've finished named rules and subrules support.
19:27 Juerd pmichaud: I think it's a better one than the current
19:27 Juerd I won't suggest this on p6l. There's too much opposition.
19:27 pmichaud I'm actually not opposed
19:28 pmichaud I'm just pointing out possible advantages of the current system
19:28 PerlJam Juerd: suggest it anyway.  Good ideas often spring from the discussion.
19:29 Juerd PerlJam: I'm a bit tired of floods of dozens of messages bashing my suggestion, then waiting a few months, and then seeing something that is suspiciously close to what I suggested.
19:29 Juerd PerlJam: Unless I think there are people supporting my ideas, I just wait until I see other people come up with whatever I thought.
19:29 qmole nice, autrijus
19:29 gaal_ has quit IRC (Read error: 60 (Operation timed out))
19:30 PerlJam of course, you may get another message from Larry to the effect of "I wish people would at least try to see that we've put alot of thought into the current system and that there are reasons why we made the choices we did"   ;-)
19:31 Juerd pmichaud: I'm not really concerned with huffmanization for single character things, in rules. I'm much more concerned with aesthetics, typeability (from my perspective as a chronic RSI patient), and logic in communication ("->" looks like an arrow, not minus greater than, and + obviously has something to do with numbers -- "" to programmers clearly indicates something stringy)
19:32 Corion How do I index a (Haskell UTF8) String by character (instead of byte) ? If I have a byte index, I can get at the char index, but how to do the reverse?
19:33 theorbtwo I'm not terribly sure about that last bit, Juerd.
19:33 autrijus Corion: you can get at the char index?
19:33 theorbtwo If you want the value of $foo, a string, you write $foo, not "$foo", generally.
19:33 autrijus Corion: the only method I had was just encodeUTF8 and decodeUTF8
19:34 autrijus use them like Encode.pm equiv
19:34 Corion autrijus: I get at the char index by doing encodeUTF8 . takeGeneric . dropGeneric
19:34 Corion autrijus: Which is what you did via encode/decode. So I'll try decodeUTF8
19:34 autrijus pugs> rule bar { 3 }; rule foo { <bar> }; say "Yes!" if 3 ~~ /<foo>/
19:34 autrijus Yes!
19:35 autrijus I imagine interesting things happening with this support :)
19:35 theorbtwo Woo, cool, autrijus!
19:35 autrijus like, a perl 6 grammar. ;)
19:35 autrijus or at least URI.pm can take advantage of this
19:36 autrijus by using named captures and subrules
19:36 madhouse has joined #perl6
19:36 Juerd theorbtwo: If you want a string, in Perl 6, you write ~$foo or "$foo" if you must have string interpretation. $foo is a value that can be anything. If you know it'll be a string, ~$foo and "$foo" are bad style indeed. However, in rules, I think it's more natural to assume $foo will contain a rule, as in "", you assume $foo is as string.
19:36 autrijus isn't technology great? :)
19:36 pmichaud has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.3/20050414]")
19:37 theorbtwo I'm not sure about that.
19:37 theorbtwo Perhaps $foo should do the right thing depending on if it does Rule or not?
19:37 Juerd theorbtwo: That would be nice too.
19:38 Juerd theorbtwo: The most important wish I have is that '' and "" be made to work without the surrounding <>
19:38 theorbtwo I'm not sure if that's mishuffmanization or not.
19:38 Juerd theorbtwo: "$foo" as string $foo flows from that, and allows <$foo> to become $foo, which isn't entirely important to me.
19:39 theorbtwo ' and " are awful common chars to make meta.
19:39 Juerd theorbtwo: Why?
19:39 Juerd theorbtwo: How often do you match them?
19:39 Corion Heh. The Prim.hs refactoring decreased the (unoptimized) rebuild time vastly!
19:39 theorbtwo Very often.
19:40 Juerd theorbtwo: I personally have not been able to find any example of that in a grammar where escapes for characters aren't used much more often
19:40 Juerd theorbtwo: And you can still match " with either \" (same as in a string!!) or '"' (same as you would declare it as a string)
19:40 integral great :-)
19:40 PerlJam Juerd:  if the current <$foo> were changed to $foo, how would you pass arguments to it?
19:42 Juerd PerlJam: $foo(), with in (), expression syntax
19:42 PerlJam So would $foo.() work too?
19:42 Juerd PerlJam: This is a good argument for not doing this, by the way.
19:42 Juerd PerlJam: Still, I want the quotes.
19:44 PerlJam Juerd: Well, adding " and ' to the list of metacharacters doesn't seem too far fetched at the moment.
19:44 Juerd So currently, you've succesfully changed my mind about both <$foo> becoming $foo and <$foo> being symbolically referring.
19:44 PerlJam (though I'd prefer fewer metacharacters_
19:44 autrijus Corion: yes. refactor early refactor often!
19:44 PerlJam s/_/)/
19:44 autrijus (AST.hs particularly needs love, but I've said that)
19:44 Juerd I like the suggestion of bare $foo being <$foo> if  $foo.does(Rule)
19:44 * integral is loving AST
19:44 Limbic_Region question - does my $rv := some_routine(); bind $rv to the underlying variable being returned in the sub if it is like sub some_routine () { my $foo = 42; return $foo; }
19:44 Limbic_Region or just a copy?
19:44 PerlJam Limbic_Region: yes.
19:44 Juerd PerlJam: It's not far fetched at all. It's really close. See also the many forms of BNF.
19:45 Limbic_Region PerlJam - so if that value changed $rv should change too?
19:46 Alias_ has joined #perl6
19:46 Limbic_Region cause if it isn't supposed to be a copy - I think Pugs is broke
19:46 PerlJam Limbic_Region: pugs mayn't be broken.  I may be wrong.
19:46 Limbic_Region oh - lots of help you are
19:46 Limbic_Region :P
19:47 jhorwitz has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.3/20050414]")
19:47 PerlJam Limbic_Region: I don't think anyone has asked that question before  (but if they have, it's on p6l somewhere)
19:48 * Limbic_Region is writing p6.l now
19:48 Corion autrijus: I don't understand the doMatch and why it has UTF8 problems. What charset is Pugs internally?
19:48 Corion Or bytes?
19:48 estel has quit IRC (Remote closed the connection)
19:48 Corion ... or rather, what format are the Strings stored in?
19:49 knewt hmm. methinks it might take a while to sync down the pugs tree
19:50 theorbtwo We probably shouldn't rely on them being anything specific... but they are probably utf8.
19:50 * Juerd tries to refrain from raising the usual perl 5 red flag: you mustn't care about the internal representation, assume it's vogon for all you care.
19:50 integral knewt: use --skipto
19:50 knewt integral: it's nice to have the history
19:50 integral *all* of it 8-)?
19:51 PerlJam integral: --skipto --mylou --mydarling?
19:51 knewt well ok, i could probably have done without the majority :)
19:51 knewt but now it's started...
19:51 Corion theorbtwo: Hmmm. We need to rely on them being something, or rather, there is some cognitive dissonance between what PCRE returns indices to, and what is returned to Pugs / Run.hs, and how they don't fit together.
19:51 knewt ghc6 is what i need once i've grabbed it, right?
19:51 integral killing it is fine.   You can tell I did this earlier ;-)
19:51 integral knewt: 6.4
19:52 knewt damn. only got 6.2.2 in hoary
19:52 knewt it won't work with 6.2.2 ?
19:52 Juerd No
19:52 integral nope
19:52 autrijus Corion: Strings are stored in Char
19:52 autrijus Corion: Char are unicode.
19:52 Juerd knewt: Get ghc-cvs from universal/sid
19:52 autrijus Corion: but to pass things into PCRE, we need to encodeUTF8 them.
19:52 autrijus Corion: so think of it as converting a u-string into bytestring
19:52 autrijus Corion: now when PCRE passes back offset
19:53 autrijus they are in byte offset
19:53 autrijus even though PCRE does unicode matching just fine
19:53 autrijus the only thing we need to do
19:53 knewt Juerd: what, the source, and then build my own local package?
19:53 autrijus is to convert the array of offsets from byte to char unit
19:53 autrijus everything else will Just Work
19:53 autrijus end of explanation :)
19:53 Corion autrijus: Hmmm ... We also return a substring. I don't know what it is used for, as we also return the offsets.
19:54 Corion But that must be converted as well I think
19:54 autrijus Corion: it's used to avoid keeping a copy of orig string around
19:54 Corion Aaah. OK.
19:54 autrijus Corion: which may or may not make sense :)
19:54 autrijus but yeah, if the offsets are correct
19:54 autrijus then just use offsets on the orig string (in u-char)
19:54 Corion autrijus: It will prevent later ugly hunting of weird interaction.
19:54 autrijus will yield the correct substring
19:54 autrijus yes, that too.
19:55 Juerd knewt: No, it's the cvs version, compiled
19:55 Juerd knewt: apt-get install ghc-cvs, after you've enabled universal
19:56 knewt Juerd: i'm running ubuntu, not debian
19:56 Corion Yay! Seems after talking through it again, I changed something that makes length.t Just Work! Thanks autrijus !
19:56 knewt prefer not to mix/match
19:57 * Corion hurries to commit, just after the smoke test :)
19:57 Limbic_Region Corion - but do you know WHAT that something is and WHY it just works?
19:57 zuulvin_ has quit IRC ("Leaving")
19:57 Alias_ what exactly is $bot<add_handler>("runloop", &svn_check)
19:57 Alias_ is that a method call?
19:57 Juerd knewt: universal is an ubuntu repository
19:58 Corion I even realize what I had wrong. I thought that Haskell used UTF8, but it doesn't. It needs a gateway via encodeUTF8 on the way to PCRE and decodeUTF8 on the way from PCRE
19:58 Juerd knewt: in debian, it's called sid.
19:58 Limbic_Region Alias_ sort of
19:58 Juerd knewt: It's the same thing.
19:58 Limbic_Region since we don't have real methods yet
19:58 Alias_ ah
19:58 Limbic_Region using dispatch table
19:58 Alias_ So I'll almost never see it in real P6 code?
19:58 Juerd knewt: Do you want to run pugs, or not? You can (must) trust apt to handle things correctly and reversible. Besides, multiple ghc versions can be installed alongside.
19:59 Limbic_Region Alias_ - you will most assuredly see it in real P6 code, but just not for that purpose
19:59 Alias_ good enough for me
19:59 knewt Juerd: universe is an ubuntu repo, and i've got "hoary universe" enabled. but the ghc-cvs in that is dated 2004-07-25, and 6.4 wasn't released until march 2005
19:59 Juerd Limbic_Region: Sorry I missed your question when you asked it here. I had an answer :)
19:59 Juerd Limbic_Region: Mailed now.
19:59 theorbtwo $bot{'add_handler'} has a coderef.
19:59 Limbic_Region thanks Juerd
20:00 Alias_ so it's basically ->() ?
20:00 * Limbic_Region likes instant gratification
20:00 Alias_ oh wait..
20:00 theorbtwo Yup.
20:00 Limbic_Region in p5 speak yes
20:00 Alias_ ->{foo}->()
20:00 Corion Ah great. And now when I want to test my stuff, the build is broken :/
20:00 theorbtwo The second -> is optional in p5 too.
20:00 Limbic_Region well, p5 only forces you to dereference at 1 level
20:00 Juerd knewt: That sucks. Then pick the package from sid. Still won't hurt your system, AFAIK
20:00 Limbic_Region but yeah
20:00 integral urk, (broken builds)--
20:00 Alias_ theorbtwo: But only by people that prefer terseness over clarity :)
20:00 Juerd knewt: If you really don't want to "infect" your system with perfectly compatible debian packages, install debian in a chroot with debootstrap
20:01 Khisanth Alias_: all the other -> would make for a lot of clutter
20:01 autrijus for how things will eventually look like, see http://svn.openfoundry.org/pugs/ext/Test-Builder/lib/Test/Builder.pm :)
20:01 Alias_ Khisanth: Easy to read clutter
20:02 autrijus build's broken?
20:02 Limbic_Region Alias_ - in any case, dispatch tables are going to be as useful in p6 as they were in p5 for the right situations - for OO though it is best to use OO
20:02 Juerd knewt: Which is a matter of mkdir ~/debian; debootstrap ~/debian sarge http://ftp.debian.nl/debian; cd ~debian/etc/apt; rm sources.list; wget juerd.nl/sources.list; chroot ~debian; apt-get install ghc-cvs svk
20:02 Alias_ Limbic_Region: Of course
20:02 Khisanth ->{}->[]->{}->() doesn't really add anything helpful
20:02 Alias_ Limbic_Region: But there's normal code, and then there's fun stuff
20:02 Khisanth and .{}.[].{}.() even less!
20:03 Limbic_Region Alias_ - we don't have OO yet so we get to say "We did OO before it existed"
20:03 Alias_ I heard :)
20:03 * Limbic_Region ported Config::Tiny and thought it was a lot of fun
20:03 Limbic_Region discovered 3 pugsbugs in the process
20:04 Alias_ Limbic_Region: It should have been. Config::Tiny is pretty... dense :)
20:04 autrijus Corion: unbroken
20:06 Limbic_Region I really need to study the Perl6::Bible as most of my p6 code is still just a straightforward translation of p5
20:07 Corion Yay. Build is progressing nicely and should soonish start smoking ;)
20:07 Alias_ Limbic_Region: Especially to find a way to implement a blessed HASH properly :)
20:07 Alias_ Because I noticed you had to call a method to get the hash, and then get the value :)
20:08 Alias_ Which is somewhat against the spirit of the original
20:08 Limbic_Region Alias_ - that's a bug I found
20:08 knewt Juerd: ok, see, unless i force the dependencies it won't work to install a sid package into hoary. [[ Depends: libc6 (>= 2.3.2.ds1-21) but 2.3.2.ds1-20ubuntu13 is to be installed ]]
20:09 Limbic_Region you don't really need the blessed hash to do the spirit of Config::Tiny
20:09 Juerd knewt: I personally have never had problems replacing ubuntu pakages with newer debian ones
20:09 Limbic_Region you just need to be able to store a hash reference as the value to a key in another hash (which will act as an accessor/mutator method)
20:09 knewt Juerd: except that now sid has a new version number on its libc6 than hoary does
20:10 Limbic_Region unfortunately - sticking a hash reference to another hash doesn't work correctly
20:10 knewt Juerd: and when a package depends on that version number it won't install without forcing (no thanks)
20:10 Limbic_Region subsequently I found the bug is only a bug if you are initializing/creating the hash
20:10 Limbic_Region if you create it and then add the reference it works as expected
20:10 Limbic_Region as soon as I get  a machine I can commit with I will make it prettier
20:11 Limbic_Region Alias_ - like I said, a lot of fun
20:11 Alias_ heh
20:11 Juerd knewt: I have replaced ubuntu's libc with debian's.
20:11 Alias_ I was curious how it would be done though
20:11 Corion Limbic_Region: You should work on my JavaScript text editor. Maybe you could make a telnet emulator out of it as well :)
20:11 Alias_ It was really just a curious confluence of Perl 5 oddities that allowed it to work in the first place
20:11 Juerd knewt: But I use bare debian now, because ubuntu was as limiting as many other distros
20:11 Alias_ I couldn't resist having a "plain" hash that you could call methods on
20:12 Juerd knewt: There's still the debootstrap+chroot method if you don't want to take risks
20:12 Alias_ especially for something like .ini files which are SO obviously just a HoH
20:13 autrijus journal up; g'nite *wave*
20:13 Juerd Sleep well
20:13 integral be prepared for a new AST.hs in the morning :-)
20:13 Limbic_Region Alias_ - it will work in the dispatch table with just 1 extra level
20:13 ajs Ok, I give up. What am I doing wrong: ./pugs -BParrot -e 'sub factorial($n){if $n>1 {$n*factorial($n-1)} else {$n}} say factorial(3)'
20:14 Corion BTW, there is one unguarded test (failure) in undef.t : pugs: user error (Cannot find the parrot executable in PATH) ...
20:14 Limbic_Region In fact Alias_ - I may be able to nopaste something for you - give me a minute or two
20:14 Alias_ sure
20:15 autrijus integral++ # I'll be prepared :)
20:16 autrijus ajs: I think, obviously, the bug is in the -BParrot
20:16 autrijus take it away and it will work ;)
20:16 autrijus (but seriously, Parrot.hs codegen needs to be rewritten using MonadEval to keep track of temp PMCs.)
20:16 ajs Ok, I thought I was doing something dumb. Let me poke around and see what Parrot is thinking
20:17 Aankhen`` has quit IRC ("Sleep [Time wasted online: 7hrs 19mins 37secs]")
20:17 Limbic_Region Alias_ - after working around the bug I changed the code enough to make changing it back non-trivial (more than 10 minutes worth of work)
20:17 Limbic_Region I should have net access again after Saturday
20:17 autrijus Corion: "Cannot find parrot executable" should perhaps to be tryIO'ed in Prim's evalPGE.
20:17 Limbic_Region will ping you then
20:17 Alias_ ok
20:17 autrijus Corion: i.e. catch it and rethrow using Eval monad's fail""
20:17 autrijus but I need to sleep. :) &
20:18 Corion autrijus: Ah. Maybe tomorrow. I need to sleep in one hour ;)
20:18 Corion good night autrijus
20:18 autrijus nite
20:19 mj41 g'night
20:21 Juerd autrijus: I don't know how to write a test for it, but can we have __END__?
20:21 * Juerd uses pod for now
20:22 Limbic_Region Juerd - is __END__ a parse error?
20:22 Limbic_Region now I mean
20:23 Juerd AFAICT
20:23 Juerd push @foo, [ 1, 2 ]
20:23 Limbic_Region ok - so I think I figured out how to test it
20:23 Juerd Add 1 or 2 elements to @foo?
20:23 Juerd I'm really hoping for 2
20:23 Juerd eh
20:23 Juerd 1
20:23 Juerd It's adding 1, 2 now
20:23 Juerd Instead of an arrayref
20:23 Juerd Is current behaviour a bug?
20:24 gaal Juerd, is __END__ specced?
20:24 gaal isn't it spelled =for END or something
20:24 gaal ?
20:24 ninereasons =begin END
20:24 Alias_ has left
20:24 Juerd gaal: No, it's not specced.
20:24 gaal this is the end, my only friend, etc.
20:24 Juerd Okay - why do arrayrefs flatten in list context?
20:24 Juerd That way I can't nest them :(
20:24 Limbic_Region Juerd - WRT to testing for __END__ - create a module that has an __END__ and modify an exported variable after the __END__
20:25 Limbic_Region in the test script that uses the module, check the value of the exported variable
20:25 Juerd Limbic_Region: Ah, good idea
20:25 Limbic_Region right now it would be a parsefail
20:25 gaal Juerd, do you just need something that ignores everythign after the __END__? i think i can add that
20:25 Limbic_Region after implementation it should be the last value before __END__
20:25 Juerd But I do wonder if __END__ is valid. I hadn't considered the possibility it'd go away.
20:25 Juerd gaal: I have =end now, which works too :)
20:26 Limbic_Region probably should ask @larry
20:26 Juerd gaal: I converted some script to p6 long time ago, I'm testing it for the first time now
20:26 Juerd I need to do it line by line
20:26 Limbic_Region cause people tend to like inline files
20:26 Juerd Because pugs isn't quite ready enough for this :)
20:26 Limbic_Region __DATA__
20:26 ninereasons @=DATA
20:26 gaal i think data has also gone away
20:26 gaal yeah
20:27 Juerd pugs> [scalar [1,2, scalar [3, 4]]]
20:27 Juerd (1, 2, (3, 4))
20:27 Forth has quit IRC (Nick collision from services.)
20:27 Limbic_Region but has __END__ ?
20:27 gaal now accessible consistently and programmatically like ninereasons says.
20:27 Juerd This is HARD to work with.
20:27 gaal i think so, yes.
20:27 ninereasons SO2 Limbic_Region
20:27 Forth_ has joined #perl6
20:29 Juerd AAAAAAAAARGH. I'm going nuts here :)
20:29 Limbic_Region ninereasons - [16:06] <Limbic_Region> I really need to study the Perl6::Bible as most of my p6 code is still just a straightforward translation of p5
20:29 Juerd I want very simple nested literal arrays :(
20:29 Juerd (flattening of references is madness. I wonder why it works like this)
20:29 ninereasons i'm pretty sure it's a persistent bug, Juerd
20:29 ninereasons squashed and resurrected, repeated.y
20:30 _metaperl isnt Perl6 a community rewrite of Perl? can the community vote on your issue Juerd? so far, it looks like it is no longer a community language
20:30 Limbic_Region has quit IRC ("hometime")
20:30 Juerd _metaperl: It's not the community's language.
20:30 Juerd _metaperl: The community writes the code.
20:30 hachi "@numbers >>++;" is throwing an error in pugs, are the hyper-operators working?
20:30 _metaperl perl6 is a community rewrite of Perl
20:30 integral the community's input was some RFCs ages ago
20:30 Juerd Larry makes the final decisions.
20:30 Corion I don't believe in "voting". That assumes that all voters are equally competent.
20:31 ninereasons I suppose that someone might say that, "final" decisions are made in usage
20:32 Corion Of course, we are free to implement "useful" things in Pugs and see if they survive until Perl6
20:33 gaal http://forum2.org/gaal/pugs/smoke-cygwin.html incidentally.
20:33 elmex has quit IRC ("leaving")
20:34 Juerd Corion: My wish is a wish for rules.
20:35 Juerd Corion: Which has some impact on compatibility.
20:35 Corion gaal: I unified your patch with my reimplementation of getEnv and it all Just Works for the moment ;)
20:35 gaal yes, thanks - works great here!
20:35 Juerd Is there any haskeller around who could make arrayrefs in list context non-flattening?
20:36 Juerd Currently, [] and () are treated equally.
20:36 gaal my wish is for fluency in haskell like my fluency in perl
20:36 hachi ow!
20:36 Corion Juerd: I think I could find the place, but I only got one more hour today ...
20:36 Juerd Corion: Do what suits you best
20:37 Corion ... and I want to hack up some nice graph display thing in HTML, like GraphViz but more restricted. For displaying a MUD map.
20:37 Corion So, if anybody has a nice MUD map renderer that I can access / feed from Perl, ... :)
20:37 elmex has joined #perl6
20:37 gaal (not to say my perl is perfect of course, only that i don't get stuck with it so often as i do with relatively basic things)
20:37 Juerd Hm
20:37 Corion (actually it's a dual-lived project - MUD map renderer to edit a MUD, and also to display the dataflow/system structure for $work)
20:38 Juerd Corion: If you write it in perl 6, you'd need arrayrefs probably, so do that ;)
20:38 Corion ... but the data structure is quite similar.
20:38 Corion Juerd: Hah. We'll have to wait until my boss adopts Perl6 as new development language :)
20:38 elmex has quit IRC (Client Quit)
20:38 Juerd You write muds for work? Nice job!
20:39 castaway define nice, Corion ;)
20:40 Juerd 17466 juerd     25   0  180m 177m  10m R 96.3 35.1   3:38.42 ghc-6.5            
20:40 Juerd holy puppy
20:40 Juerd It's very memory hungry.
20:40 hachi err, I thought it was eating up over 500 MB last night when I compiled
20:40 Corion castaway: Ah, at least like GraphViz, if not better. I'd prefer something like SVG or DHTML with drag-and-drop or a very good automatic layout of course.
20:40 castaway aehm..
20:40 castaway well theres a pic of mine somewheres..
20:41 Corion Juerd: No, I don't write MUDs for work, but I realize that the (simplified) data structure of a MUD is the same as the data structure of our IT architecture and its dataflow :)
20:41 Corion (and $boss ran a MUD in his university days)
20:41 crysflame are you neu too?
20:42 * castaway doesnt like much of GraphViz' output
20:42 Juerd Corion: wheh
20:42 castaway Corion, http://desert-island.dynodns.net/perl/telnetclient.html
20:42 theorbtwo Your IT arch is like a dungeon?  That's scary.
20:43 Corion r2948 -  4860 test cases: 4783 ok, 77 failed
20:43 Corion (at http://datenzoo.de/pugs/win2k.html )
20:43 castaway hmm.. I wonder.. you could probably make pretty ones with zMapper actually :)
20:43 Corion theorbtwo: Well, the systems are like MUD rooms, the import/export interfaces are like doors and the data transport is a connection between doors.
20:43 castaway and that one uses a "real" DB
20:44 castaway (and is customizable..)
20:44 castaway that'd be interesting, to use it for a network layout..
20:45 Corion castaway: That's my plan, at least for $work ;)
20:45 Corion anyway - afk for the moment
20:45 theorbtwo I'm convinced that it's possible to get useful graphviz output... I just haven't figured out how yet.
20:46 castaway which is the plan?
20:46 castaway yeah, I'm still hoping you will :)
20:46 Corion theorbtwo: I don't know how to tell GraphViz that a certain passage has to connect to the "north" of a cell
20:46 Juerd theorbtwo: Ignorance isn't bliss in this case. It's a huge waste of time.
20:46 Corion still - afk &
20:47 kolibrie has quit IRC ("leaving")
20:47 Juerd PackFile_unpack: Bytecode not valid for this interpreter: version mismatch
20:47 Juerd Parrot VM: Can't unpack packfile /home/juerd/project/pugs/src/pge/PGE-Hs.pbc.
20:47 Juerd What does it mean and how can I avoid it?
20:48 * theorbtwo bets the file is zero-length?
20:52 Juerd I have no idea which file and why.
20:52 stevan gaal: ping
20:52 Juerd Okay, I give up.
20:52 Juerd I'm going to hard code
20:52 Juerd Arrayrefs are utterly useless if they flatten
20:53 gaal plong!
20:53 stevan gaal: did you see my comments re: Hack::Instances
20:53 gaal nope! shall i grep the logs?
20:53 stevan nah I can tell you
20:53 gaal yes plz
20:54 revdiablo Juerd: fwiw, I wrote up some tests to show the weird flattening behavior in t/pugsbugs/flattening.t
20:54 stevan well, originally I had a counter
20:54 Juerd revdiablo: Thanks
20:54 stevan but I changed it to the rand number later
20:54 stevan to get a more identifiable string
20:55 gaal a random number is more identifiable? :)
20:55 stevan in a weird way yes
20:55 stevan but it would really function the same either way
20:55 gaal hahaha!!! lookie this:
20:55 gaal ./pugs.exe -V | egrep path_sep\|osname
20:55 gaal osname: cygwin
20:55 gaal path_sep: :
20:55 ajs grats!
20:55 ninereasons wow. many of the tests work now, in   t/rules/Disabled/rules.t
20:56 gaal i think i know why pugscc &c didn't work on cygwin ;-)
20:56 ninereasons pmichaud++
20:56 ajs gaal: oh heh, I thought you were pointing out having gotten it working,
20:56 BigBear has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.2/20050321]")
20:56 ajs yeah, : isn't quite right is it :)
20:56 gaal stevan, a rand number is just a wee bit less safe, isnt' it?
20:56 stevan how so?
20:56 Juerd Anyone any idea how to use a literal hash ref?
20:56 gaal better have both imho
20:56 Juerd both { } and hash { } are broken
20:57 stevan I ran about 10,000 random numbers and got no dups
20:57 stevan gaal: we can do both I suppoer
20:57 gaal ajs, this could have been the bug that was preventing it from work
20:57 stevan suppose
20:57 * Juerd hard codes again
20:57 stevan gaal: it is also a very temporary hack (at least I hope it is)
20:57 stevan Juerd: welcome to the wonderful world of Pugs hacking :)
20:58 gaal stevan: well, a reasonable person would say that you and me, and all the pugs hackers together might never get a collision until real objects land
20:58 gaal but i am unreasonable! :)
20:58 stevan LOL
20:58 putter Fyi, rules are apparently not usable on FC3 x86_64.  Embedded due to a ghc bug which may or may not have been fixed yesterday in cvs-ghc, and parrot standalone due to an undiagnosed interrupted system call failure.
20:58 stevan gaal: ok, adding the counter in now ...
20:58 gaal just make sure you don't *add* the counter :))
20:58 stevan LOL
20:59 stevan gaal: concat-ing the counter :)
20:59 gaal this reminds me of a riddle (which of course will now be easy to solve)
20:59 gaal join it witha  delim, stevan :)
20:59 stevan yes
20:59 stevan OBJECT;<class>;<rand>;<counter>
20:59 gaal n programmers are siting at a table and they want to know their average salaray
21:00 putter Fyi, as of ghc-6.4.20050506, on FC3 x86_64 the pugs-kill gc bug has _not_ yet been fixed (hopes to the contrary not withstanding;).  A ghc bug report has been submitted.
21:00 gaal however, they don't want evryone to know each other's particular salary.
21:00 putter err, s/pugs-kill/pugs-killing/
21:00 gaal what scheme can they use to know the average w/o losing privacy?
21:00 gaal n > 2
21:01 * theorbtwo wonders if it's a card table.
21:01 stevan gaal: r2949
21:01 gaal stevan++
21:01 stevan gaal++
21:02 gaal stevan+=rand+$counter++
21:02 stevan gaal: the answer is 0, they were all outsourced
21:02 theorbtwo Everybody gets some chits, closes their eyes, and throws the chips representing their salary into one hat, and the rest into the other.
21:02 stevan :D
21:03 G2 has quit IRC ("oops")
21:03 theorbtwo This may involve more aim then programmers are capable of, though.
21:03 stevan more athleticism at least
21:03 stevan wow, bsmith++
21:04 gaal svnbot6 is teh bomb
21:04 putter Re Perl6::Rules t/*.t port, I hope to clean it up tomorrow to reflect Damian's S05 draft post, and check it in largely untested. :(
21:04 stevan I love svnbot :)
21:04 integral Pugs.AST.Internals is still >1500 lines :-)
21:04 Corion bsmith is on a refactoring rampage :)
21:04 stevan jabbot: do you love svnbot?
21:04 jabbot stevan: We were discussing you -- not me.
21:04 Corion but that's cool, because that reduces (re)build times while developing
21:04 stevan jabbot: are you jealous of svnbot
21:04 jabbot stevan: What are your feelings now?
21:05 stevan jabbot: I am feeling that your days are numbered
21:05 jabbot stevan: Really, my days are numbered?
21:05 castaway ;)
21:05 * theorbtwo wonders if anybody has a better plan.
21:05 stevan jabbot: yes, it is only a matter of time before ingo write you out of existence
21:05 jabbot stevan: 原來如此
21:05 * putter wishes svnbot "notices" were logged...
21:06 Juerd Fsck. No gather/take yet?
21:06 stevan Juerd: nope
21:06 integral putter: svn log ...
21:06 Juerd grumble
21:06 ajs a tells b "s(a)+rand(1)", b tells c "s(b)+s(a)+rand(1)+rand(2)" c tells a "s(c)+s(b)+s(a)+rand(1)+rand(2)+rand(3)" a subtracts rand(1) and passes result to b, b subtracts rand(2) and passes to c, c announces "(s(a)+s(b)+s(c))/3"
21:07 Juerd Is "is copy" implemented?
21:08 Corion I doubt it...
21:08 stevan yes
21:08 stevan although maybe not 100% for really big/nested/odd structures
21:08 Juerd I'm getting complaints about trying to change a readonly value
21:08 Juerd But I can't find it
21:08 gaal ajs++
21:08 gaal except that rand(1) is not really needed
21:08 gaal it can be any random number
21:08 gaal oh
21:08 putter integral: http://colabti.de/irclogger/irclogger_log/perl6?date=2005-05-10,Tue  : "bsmith is on a refactoring rampage :)"... but you wouldn't know it, or have much idea what's being discussed, by looking at the irc log. :(
21:08 Juerd http://tnx.nl/3763VEZF
21:08 stevan Juerd: you can always make a new local copy
21:09 integral putter: oh, right
21:09 Juerd *** Error: Can't modify constant item: VRef <Hash>: NonTerm (MkPos "examples/matrix.p6" 38 18 38 31) at examples/matrix.p6 line 51, column 2-18
21:09 gaal you were using rand(1) as "a first randome number". yes, that's right.
21:09 Juerd That's the build_re line
21:09 Juerd The bottom line in the paste
21:09 gaal bbiab
21:09 integral and it's less a rampage, and more a let's wait for ghc to finish, _again_
21:09 ajs gaal: yep... sorry, subscripts not available ;-)
21:09 gaal integral: make unoptimized
21:09 gaal is much much faster to compile.
21:09 integral yeah, still slow
21:10 cjn has quit IRC (Remote closed the connection)
21:10 stevan Juerd: which one is not able to copy? %had?
21:10 Juerd stevan: It still complains if I copy manually
21:10 Juerd stevan: I have no idea which one!
21:10 stevan my %new_had = %had;
21:10 stevan as the first line of the sub
21:10 Juerd stevan: Still complains
21:10 Juerd sub build_re ($y, $x, $todoX, ?%hadX) {
21:10 Juerd    my $todo = $todoX;
21:10 Juerd    my %had = %hadX;
21:11 stevan Juerd: where is @matrix coming from
21:11 Juerd stevan: Defined earlier. It is in scope
21:11 Juerd As is @adj
21:11 stevan Juerd: then your problem is likely in @matrix
21:11 Juerd How so?
21:11 stevan I have had issues with this before
21:11 Juerd @matrix isn't changed
21:12 stevan oh
21:12 stevan ok
21:12 stevan lemme look closer
21:12 Juerd The function's pure with dependencies
21:13 putter has quit IRC ("'night all")
21:15 stevan Juerd: what is line 38
21:16 Juerd stevan: my @next;
21:16 Juerd Oh, no, line numbers changed
21:16 Juerd I'll repaste current first
21:16 stevan ok
21:17 gaal beh, that bug i though i found, it wasn't a bug :(
21:17 gaal whcih sucks because if it was, we'd probably have had a working pugscc on cygwin
21:17 Juerd http://tnx.nl/3764JXCT
21:17 Juerd I hate Terminal.app
21:17 Juerd It scrolls on selecting text
21:17 iblechbot has quit IRC (Success)
21:18 stevan Juerd: so which is line 40
21:18 gaal p5 $Config{'path_sep'} isn't the, uh, subdirectory separator, it's the $PATH separator :)
21:18 Juerd stevan: %had{...}++ and next
21:19 stevan Juerd: have you tried breaking that up a bit
21:19 stevan %has{ $_<y> ~ "/" ~ $_<x> }++
21:19 Juerd I'll try that
21:19 Juerd Tried; doesn't work
21:19 Juerd Same error
21:21 Juerd It's in the push line
21:21 Juerd Now to find out why...
21:21 Juerd Hm, no, it doesn't have to be
21:21 stevan $y and $x need to be is copy maybe?
21:21 Juerd They're not changed
21:21 stevan ok
21:22 simcop2387 has quit IRC (Read error: 110 (Connection timed out))
21:22 Juerd The problem somehow has to do with the inner build_re call
21:22 wilx has quit IRC (Read error: 131 (Connection reset by peer))
21:22 Juerd Hm, no, even if I put its arguments in a bare list it croaks
21:22 stevan how about try adding a topic var to the loop
21:23 stevan no using $_
21:23 stevan s/no/not/
21:23 * Corion slumps into bed.
21:24 Juerd Any use of %$_ is wrong I think
21:24 Juerd So let's try that indeed
21:24 gaal should i be getting this? pugs.exe: user error (Cannot find the parrot executable in PATH)
21:24 Corion r2950 - http://datenzoo.de/pugs/win2k.html
21:24 Corion gaal: See the backlog. Autrijus hinted at what should be done about it.
21:24 Corion (tryIO)
21:24 Corion g'night
21:24 Corion &
21:24 Corion has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.3/20050414]")
21:24 gaal night Corion
21:25 Juerd Argh, $_ is undef
21:25 wilx has joined #perl6
21:26 mugwump morning all
21:26 mj41 has quit IRC (Read error: 131 (Connection reset by peer))
21:27 Juerd Oh, fscking hell
21:27 Juerd Hashes are flattened too
21:27 Juerd So essentially, list context is fucked up entirely
21:27 Juerd I give up for now
21:27 Juerd Thanks for the help, stevan
21:28 stevan Juerd: your welcome
21:28 stevan mugwump: hey there
21:30 stevan mugwump: I have a few questions when you have a moment
21:32 simcop2387 has joined #perl6
21:41 wilx has quit IRC (Read error: 145 (Connection timed out))
21:41 gaal bug: s:p5/aaa/bbb/ goes to parrot, s:P5 does not.
21:42 gaal s:perl5 works too. maybe i got it wrong and :p5 is invalid?
21:48 mugwump hey stevan.  I notice that there are two dists in ext/ now ...
21:49 stevan mugwump: I moved it all to MetaModel
21:49 stevan you probably need to remove metaClass manuaully
21:51 knewt woot, stage1 has finally built, and it's moved on to stage2
21:51 revdiablo gaal: I remember reading somewhere that you could use :P5 :perl5 and :Perl5 but not :p5
21:51 gaal hey, anyone looking for a Prim to add?
21:52 gaal i'd like rename and chmod :)
21:53 gaal octal is spelled like 0o755 now, right?
21:54 gaal ....and how do you say qx? is there a final word?
21:55 mugwump ah, right.  I wonder why svn didn't do that for me
21:55 stevan mugwump: maybe you had local mods?
21:55 stevan svn can be picky sometimes
21:56 mugwump that must have been it
21:56 mugwump it saw all my emacs ~ backups and just couldn't bring itself to delete them
21:56 stevan :)
21:57 stevan mugwump: so, I am wondering about MetaAssoc
21:57 stevan we are not using it to assoc properties to classes are we?
21:58 stevan properties == MetaProperty
21:58 cognominal has quit IRC (Read error: 104 (Connection reset by peer))
21:58 mugwump Not directly.  The association between MetaClass and MetaProperty is simply a hash
21:58 stevan ok
21:59 stevan I noticed (somewhere, not recalling right now) that methods can only ever be associated with one class
21:59 stevan and same with properties
21:59 stevan so should those two have a 'class' slot added?
21:59 cognominal has joined #perl6
21:59 stevan so we can enforce that?
21:59 mugwump Sure
21:59 stevan ok
22:00 stevan we surely can make Visibility and AssociateClassWith Roles when we have them
22:00 stevan but for now I will cut and paste :)
22:00 jaap has joined #perl6
22:01 jaap I'm trying to download pugs from the darcs repository, but the link on the pugs website doesn't work
22:01 stevan also I think the SuperClass -> Class -> SubClass relationship is pretty solid now
22:01 jaap i'm trying darcs get http://wagner.elixus.org/~autrijus/darcs/pugs
22:01 stevan I die if we have circular inheritence
22:01 stevan jaap: I think wagner.elixus is down
22:01 jaap stevan: is that temporary, or should i use a different repo?
22:01 stevan jaap: I would recommend the SVN repo
22:02 stevan I think i heard autrijus say it will be down indefinetly
22:02 jaap okay. such a pity, i much prefer darcs :-(, ah well, i'll get it from svn then, thanks
22:04 jaap has left
22:07 stevan mugwump: so, when a property is added to a class, I set the properties 'class' slot with $inv
22:07 stevan s/class/metaclass/
22:08 stevan and can properties be removed from metaclasses?
22:08 stevan I assume they can
22:09 mugwump naturally, this sort of thing should be able to be abstracted
22:12 mugwump but I'd worry more about making that work in classes that will be generated by MetaModel objects
22:12 stevan mugwump: I am not sure what you mean
22:14 mugwump ok, well these assertions that we're making about the relationship between "superclass" and "subclasses" - at least, the generic one that membership in one implies a corresponding membership in the other - apply to all associations
22:15 stevan ok
22:15 stevan but in meta-meta-models properties will more than likely be fixed?
22:15 mugwump I see this as an application of Set Theory style relationships to in-memory objects.  But that's my connection, I don't have a thesis to back that up :)
22:16 mugwump It's unlikely that the set of objects at Perl::MetaModel::$Model (or whatever) will change at runtime
22:16 stevan I know nothing (much) about set theory, so I'll buy that
22:16 stevan mugwump: so I can assume for now, that its set-once and then read-only
22:17 stevan and maybe in later refactoring, ... we can add the ability
22:17 mugwump If you know how to use a foreign key or a link table in a database, you at least know the concept driving this relationship companionship...
22:17 mugwump changing at runtime basically means that a person is loading a module to parse another language or mutate the language
22:17 stevan mugwump: and they are on crack
22:17 stevan so I wont worry about that then
22:17 mugwump :)
22:18 stevan I will only enforce the rule for inserting
22:18 stevan I wont bother with taking it out
22:18 knewt feck. i just ran out of disk space. this means that the entire build process from bootstrap -> stage1 -> stage2 will run again. aarrrggghhh.
22:18 mugwump Yep.  It's an interesting condition to try to assert.  Basically you have to catch updates to the containers, do set operations to find out the "differences", then send messages to the affected objects
22:19 stevan mugwump: for now I was just going to make a removeClsProperty method and make everyone go through that
22:20 mugwump right.  Now you're arriving at another conclusion I came to in Class::Tangram, this is very good :)
22:20 stevan :)
22:21 stevan meta-meta-hacking is fun
22:21 stevan I also found a book on MetaCLasses on my bookshelf
22:21 stevan I dont have it with me at the moment
22:21 mugwump cool... any good?
22:21 stevan havent fliped through it yet
22:22 stevan got it a while ago in a tech-book grabbag on ebay
22:22 stevan never had a use for it until now
22:23 stevan ok next question
22:23 stevan what are methodParams?
22:23 stevan the method args?
22:24 stevan or something else
22:24 stevan more mysterious maybe :P
22:24 mugwump it's a signature, really.  there are lots of parts on the MetaModel that are pre-echos of what will only really be needed on the next level
22:25 stevan ok
22:25 stevan so should I break that up? returnType, argTypeMap, etc?
22:26 stevan ooh, the Metaclass book has  symbol glossary,
22:26 stevan which means no more guessing at what all those funny bits mean
22:28 mugwump we want all that magic to happen on the Class Model, it happening on MetaModel is ok but perhaps superfluous for "bootstrapping"
22:28 stevan ok
22:29 stevan so I leave params as just a list? or hash?
22:29 stevan hash seems to make the most sense
22:33 mugwump if it makes sense to you that a hash represents a parameter specification :).
22:36 stevan mugwump: well it all depends on the details of the parameter spec, a hash seems pretty flexible
22:38 mugwump It needs to be something like the Params definition in src/Pugs/AST.hs
22:38 mugwump sorry, src/Pugs/AST/Internals.hs
22:39 mugwump but again - doing that in full might end up being unnecessary in the Meta-Model..
22:41 stevan line 561 ->  data Param = MkParam
22:41 stevan that one?
22:41 mugwump yes, that's it
22:43 mugwump the metamodel objects we're building would ideally be generated from these parts of the haskell source
22:43 mugwump perhaps, anyway.
22:43 stevan ok
22:43 stevan well I think a list is better
22:43 stevan as we will likely have a list of param objects
22:44 mugwump yes.  besides, the MetaModel is supposed to be as simple as possible
22:44 stevan ok
23:19 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
23:20 Odin- has joined #perl6
23:35 justatheory has quit IRC ()
23:43 plasmabal has quit IRC (Remote closed the connection)

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

Perl 6 | Reference Documentation | Rakudo