Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-05-19

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 eric256 has left
00:00 svnbot6 r3422, putter++ | Tweaked and unDisabled two t/rules/from_perl6_rules/ files.
00:06 theorbtwo has quit IRC (Remote closed the connection)
00:06 svnbot6 r3423, mugwump++ | It's the Unicode ∅℣℮ℛℒ⓪ÅⅮ‼
00:06 lhooq has quit IRC (Read error: 54 (Connection reset by peer))
00:06 theorbtwo has joined #perl6
00:08 vcv-- has quit IRC (Read error: 145 (Connection timed out))
00:15 putter mugwump: dont forget generalized union/intersection! :)
00:20 putter mugwump: ping?
00:40 sproingie has joined #perl6
00:42 stevan has joined #perl6
00:42 iblechbot has quit IRC (Read error: 110 (Connection timed out))
00:47 putter has anyone seen anything on, i'm not sure what to call it,  "anti duck typing"?  "aggressive multimethods"?  eg, "I, a user, don't care if class C has method m.  I "use Picky;", and if the picky folks havent approved C's m, I don't even want to be able to see it.".  ?
00:47 sproingie eh?
00:47 sproingie generic functions?
00:48 sproingie got a usage example?  could probably tell you the jargon.
00:48 larsen has joined #perl6
00:57 putter the idea is to completely control what a method name means in a lexical context.  which means hiding any external multimethods, "unapproved" object methods, etc.
00:58 sproingie so it would actually dynamically hide methods from another class.  well that certainly has little precedent, so it doesnt have a name, i'd imagine
00:58 sproingie but any reasonably reflective metamodel or generics system could do it
00:59 larsen has quit IRC ("later")
00:59 sproingie with perl5 you could use Hook::LexWrap to override C's methods
01:01 meppl gute nacht
01:01 meppl good night
01:02 putter the motivation is that as folks move to p6 and do a _lot_ more "domain specific language"-style programming, CPAN'ish classes crashing the party with their own little method-api-languages are going to stick out like a sore thumb.
01:03 putter meppl: 'night
01:04 meppl ;)
01:04 putter controling ones own naming means being able to frob everyone elses, even objects which are just wandering through.
01:07 putter use RubyMethodApisForAllCoreObjects;  ;)
01:08 oylenshpeegul has joined #perl6
01:08 sproingie there's always going to be a clash of cultures insofar as modules go
01:08 sproingie this is the story with CPAN now
01:10 sproingie i think you'd probably want a module that adapted another, not mutated it
01:10 sproingie modules that pollute global namespace will be unpopular just as they always are
01:13 mugwump use Set-(Any)-cpan:FOO;
01:14 putter mugwump: huh?
01:15 castaway_ has joined #perl6
01:15 oylenshpeegul has quit IRC ("Download Gaim: http://gaim.sourceforge.net/")
01:15 mugwump don't like namespace pollution?  set your perl to use a different default module namespace (the cpan:FOO bit)
01:16 mugwump putter: what did you mean by "generalised union/intersection", putter ?
01:16 mugwump s/,.* //
01:18 putter eg, 22C2
01:18 mugwump n-ary intersection?
01:19 putter intersection over a set of sets
01:19 mugwump well, for a start, because I don't have a non-unicode-operator implementation :)
01:19 putter (it was mainly just an excuse to throw in more unicode...;)
01:19 mugwump true
01:20 mugwump I mean, ⊨
01:20 sproingie intersection over a set of sets would be a reduction
01:20 sproingie dont know what the math notation for reduce is, if there is one
01:20 mugwump would it?  sounds sufficiently vague to mean just about anything to me ;)
01:20 * sproingie eyes his irc program.  no unicode support, and it's a windows app?  bah
01:22 putter re, namespace, say I want to do some set algebra, but I want all my ops to be lazy.  you provide a lazy union, but your "union" method isnt.  I would like to "use Notation::Set::AllLazy;" and be able to use your implementation, without directly using your names.
01:23 putter Someone other than me can keep track of all the implementations and the characteristics of their assorted methods.
01:24 meppl has quit IRC (Remote closed the connection)
01:24 sproingie sounds like a classic problem of writing an adaptor
01:25 putter I can simply say "In this block of code, I want to use this method language/vocabulary, with these implied semantics, so "use" it."
01:26 sproingie that'd be a pragmatic module, most of those have lexical effect
01:26 sproingie s/effect/extent/
01:27 putter re adaptor, but the combinatorics are all wrong.  the space is too highly dimensional.  so you would have to use adaptor generators, which can be handed around indistinguishably from their wrappees... not going to happen.
01:27 xinming has quit IRC (Client Quit)
01:27 castaway has quit IRC (Read error: 110 (Connection timed out))
01:27 theorbtwo has quit IRC (Read error: 110 (Connection timed out))
01:28 putter { use Way1; ... { use Way2; ... } ...}    adaptor classes arent going to do it.
01:28 putter pragmatics are closer...
01:30 mugwump How is that different from a Role?
01:30 putter sproingie: sorry, but yes.  adapters _do_ address the same problem.  their just so... not good enough. ;)  (see previous assorted exclamations of "software sucks";)
01:31 putter roles are still under the control of the class creator.  the idea is the class user should be able to muck with how the class appears to her.
01:32 putter loosens the tie between "they created an implementation" and "they created an api".
01:33 mugwump ok, I understand, I think
01:33 mugwump What you want to be able to do, is compare Roles based on their definitions and not on their 'is-ness'
01:34 mugwump so, you could define a role, and so long as the thing that implements it is a superset of the role in all regards, then it can be used
01:34 mugwump but if they break the interface it won't work
01:35 * putter reads the paragraph again...
01:35 mugwump like, a version of .does() that performs a deep method signature check, not just checking that the role is linked
01:38 putter signature checks cant do semantics.  as a silly example, one might "use OnlySeeO(n^2)AndBetterMethods;"...
01:39 putter In an extreme case, some object's class has methods m and n, but in some section of code, I want m to mean n and visa versa.
01:43 putter what triggered all this musing was looking at Set.pm, and thinking, here we go again, short human-friendly method names, hello years of pain.
01:43 putter ;)
01:44 sproingie different people will write different interfaces.  and since most perl6 modules won't use generics, you won't get much chance to override them seamlessly
01:45 sproingie best you can do is rewrite or adapt, for the most part.  i think a general case solution would be something of a software engineering silver bullet
01:47 vcv-- has joined #perl6
01:49 putter mugwump: no criticism of Set.pm intended.  its nifty.  my reaction was just "here is something nifty and... pure/non-hairy/simple, and even here we are still going to get burned".
01:51 putter sproingie: might be sufficent to have "undef &foo;" and a multi sub foo() is run_in_preference_to_object_methods.
01:53 putter anyway, back to work.
01:54 putter mugwump: thanks for the module namespace pointer...
01:56 putter to rephrase an old objection to smalltalk, "+ is not a method, and if some object thinks it is, I wish to be able to successfully disagree in my own code" ;)
01:57 putter 'night folks
01:57 putter has quit IRC ("Leaving")
01:57 taki has joined #perl6
01:57 taki hi all
01:57 taki what mean /i in this syntax  ([0-9a-f:]+)/i)
01:59 taki has left
02:00 sbkhh is now known as Odin-
02:03 Odin-LAP has quit IRC (Read error: 104 (Connection reset by peer))
02:03 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
02:03 Odin-LAP has joined #perl6
02:03 Odin- has joined #perl6
02:21 sekimura has joined #perl6
02:29 vcv-- has quit IRC (Read error: 145 (Connection timed out))
02:32 robkinyon has joined #perl6
02:43 robkinyon has left
02:43 robkinyon has joined #perl6
02:45 robkinyon hello?
02:45 * robkinyon has a new chat client ...
02:50 putter has joined #perl6
02:50 svnbot6 r3424, mugwump++ | Add shiny junction-based Set implementation
02:51 putter just for closure, I mention that having groveled over S12, it looks like the games described are already possible.  ;)
02:51 putter mmm, new Set...
02:52 putter has quit IRC (Client Quit)
02:58 theorbtwo has joined #perl6
03:08 stevan mugwump++ # Junction based Set is verrrrry cool
03:10 mugwump glad you like it.  all that hash key nonsense goes away too
03:23 stevan very nice
03:23 svnbot6 r3425, putter++ | Fixed typo in trig.t.
03:24 mugwump It's a shame that you can't remove items from a junction easily
03:24 mugwump eg, that remove could be something like;
03:25 mugwump $:members = $:members & none($to_remove);
03:25 mugwump but it doesn't work like that :)
03:25 stevan that would be nice
03:33 robkinyon has quit IRC ("Chatzilla 0.9.68.3 [Firefox 1.0.4/20050511]")
03:33 svnbot6 r3426, mugwump++ | !($x =:= any(@x)) ≍ ($x =:= none(@x))
03:45 ]ramzi[ has quit IRC (Read error: 54 (Connection reset by peer))
04:02 stevan mugwump: I followed your advice on the eval-into-pugs-object-space
04:02 svnbot6 r3427, Stevan++ | Perl::MetaModel - experimental version of compile() to complile classes to the Pugs object space; compiled classes support meta() and (my version of) isa(); more to come tomorrow,... must,.. get... sleep :)
04:02 mugwump choice
04:02 stevan I am too sleepy to do it right, but that is a proof of concept for now :)
04:03 stevan I think I will create a Perl::Meta::Complier tomorrow which does it better
04:04 stevan (and I think the meta() and isa() functions are not correct per-S12 either)
04:04 vcv-- has joined #perl6
04:04 stevan but I need sleep, so it will have to wait another ~8 hours
04:04 sproingie has quit IRC ("IceChat - Stay K00L")
04:05 mugwump My gut feeling is that the introspection stuff in S12 is only very lightly considered
04:05 stevan Smalltalk Metaclass model ++
04:05 stevan mugwump: yes, I reviewed it earlier and felt the same way
04:05 stevan autrijus thinks our docs/ should eventually be added onto the end of S12
04:06 stevan not yet of course
04:06 stevan anyway must sleep
04:06 mugwump 'night!
04:06 stevan adios &
04:30 eric256 has joined #perl6
04:30 svnbot6 r3428, putter++ | Added atan(_) and fixed broken atan(_,_) tests.
04:31 eric256 did the journal just die?
04:38 vcv-- has quit IRC (Read error: 145 (Connection timed out))
04:38 svnbot6 r3429, putter++ | Fixed typo in Perl-MetaModel/README.
04:42 * eric256 is in love with making his own operators... ;)
05:01 Boogie has quit IRC (Read error: 104 (Connection reset by peer))
05:06 miyagawa has joined #perl6
05:10 eric256 anyone know of a precompiled parrot for windows? or where i should look?
05:11 miyagawa has left
05:13 eric256 google to the rescue
05:15 eric256 hmm or not. only one i found is too old.../me continues the search.....seems kinda sleepy around here
05:16 f0rth I've searched but found nothing
05:16 svnbot6 r3430, eric256++ | Added examples of overloading.  Should be fleshed out a bit but it's a start.
05:16 eric256 http://www.jwcs.net/~jonathan/perl6/  <-- apears to work. but i'm still downloading
05:17 eric256 ack.. somewhere i stopped reading and downloaded pugs. lol.
05:18 f0rth :p
05:21 mugwump what does the  .perl method do?
05:22 eric256 looks like i'm out of luck for now.  and i was just hoping to be able to split a string. ;)
05:22 eric256 officialy? i dunno. but it returns a fairly intuitive representation of the data. it is entirely possible that i shouldn't be using it though
05:24 mugwump oh, right.  probably a pugs-specific hack
05:25 castaway_ .perl does a data-dumper like dump.. I think its p6
05:25 castaway_ is now known as castaway
05:26 eric256 http://dev.perl.org/perl6/doc/design/syn/S02.html
05:26 mugwump I stand corrected.
05:26 mugwump cool
05:27 eric256 i'm learning to use google to search the online documents
05:38 merlyn has quit IRC (Read error: 60 (Operation timed out))
05:39 crysflame has quit IRC ("leaving")
05:41 cjn has quit IRC ("Leaving")
05:45 eric256 isn't % mod?
05:46 mugwump sure
05:46 mugwump or symmetric difference on Sets :)
05:46 mugwump ( $s1 \ $s2 ) U ( $s2 \ $s1 )
05:47 eric256 any ideas why my $t = $M % $N; causes a sub to fail to compile
05:47 eric256 lol nevermind. i overroad % in postfix...i think that messed up the infix version. going to test
05:50 eric256 hmm. i would have thought you could have an operator mean one thing in infix and another in postfix...
05:51 saorge has quit IRC ("Leaving")
05:53 vcv-- has joined #perl6
05:57 Shachaf has quit IRC ("So long, and thanks for all the fish!")
06:01 scook0 has joined #perl6
06:06 saorge_ has quit IRC ("Leaving")
06:07 eric256 has quit IRC ("Trillian (http://www.ceruleanstudios.com")
06:16 Jouke has joined #perl6
06:16 Jouke has left
06:16 svnbot6 r3431, eric256++ | Some minor additions
06:19 obra hm. That commit message could be better :/
06:22 iblechbot has joined #perl6
06:22 svnbot6 r3432, mugwump++ | Express some core Perl entities as Perl code; this should be instructive/educational in developing the MetaModel.  Rough, rough sketches..
06:23 brentdax has joined #perl6
06:23 brentdax has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.4/20050511]")
06:24 brentdax has joined #perl6
06:26 brentdax And *that* is why you don't put "disconnect" right under "part", and why you put an "are you sure?" prompt on said "disconnect" command.
06:33 Jouke has joined #perl6
06:33 Jouke has left
06:45 simcop2387 has quit IRC (Read error: 110 (Connection timed out))
06:52 nothingmuch has joined #perl6
06:54 vcv-- has quit IRC (Read error: 145 (Connection timed out))
07:00 Aankhen`` has joined #perl6
07:00 svnbot6 r3433, scook0++ | Really flaky hack for munge_haddock.pl that lets Haddock
07:00 svnbot6 r3433, scook0++ | document all the private functions.
07:02 autrijus rehi!
07:02 autrijus <- reading Ecma-335 spec about CIL
07:02 theorbtwo Morning, autrijus.
07:02 * autrijus ponders Pugs.Compile.CIL just for fun.
07:05 theorbtwo You have a very strange definition of fun, autrijus.
07:06 theorbtwo CIL is the .NET VM, right?
07:06 castaway Do .JVM while you're at it? ;)
07:06 autrijus well, seeing how the codegen is already there in Modrian and Haskell for .NET
07:09 nothingmuch morning
07:09 scook0 theorbtwo: you wrote munge_haddock.pl, right?
07:10 theorbtwo Yeah.
07:10 scook0 I changed it so that it also nukes long-style module declarations
07:11 theorbtwo I took a quick look at that.
07:11 theorbtwo Looks sane.
07:11 scook0 It /barely/ works, but I think it's good enough for now
07:12 scook0 (my 2nd ever Perl5 program :-)
07:12 theorbtwo I'm not 100% with it at present.
07:12 scook0 Are you aware of the problem that explicit module export declarations cause?
07:13 scook0 Normally, if you just write "module Foo where", all functions in the module are considered public
07:13 theorbtwo The haddocks only show the exported stuff, since that's what the haddock author thinks they're for.
07:13 scook0 which is not what we want, right?
07:14 scook0 Because we're using it for internal documentation, not library documentation
07:14 nothingmuch autrijus: batch pingback
07:14 theorbtwo Exactly.
07:14 scook0 so what my code does is:
07:14 scook0 first, it scans through until it finds the module declaration
07:15 scook0 it extracts the actual module name
07:15 autrijus nothingmuch: yes?
07:15 autrijus bah. Mondrian doesn't seem to run on Mono
07:15 scook0 and prints out "module Foo.Bar where"
07:15 nothingmuch tell me when you feel like continuing the internals chat
07:15 autrijus and the rotor license is not acceptable
07:15 * autrijus suspends thinking about Pugs.Compile.CIL
07:16 scook0 then it chucks away lines until it hits /where$/, which marks the end of the old declaration
07:16 theorbtwo Works for me.
07:16 scook0 I just thought somebody other than myself should know about it, in case it breaks
07:16 * theorbtwo nods.
07:17 theorbtwo I only see what looks like odd corner-cases where it'll break badly, though.
07:17 theorbtwo (Modules trying to export functions named where, or people using really strange formatting.)
07:17 scook0 I had to keep tweaking it until it worked with all our existing source
07:18 scook0 Yeah, that's why it's so flaky
07:18 scook0 But hopefully nobody will be silly enough to trigger them...
07:19 larsen has joined #perl6
07:25 autrijus nothingmuch: I need to run for $work.  will ping you when I get next round of tuir
07:25 autrijus tuit, even
07:25 autrijus &
07:25 svnbot6 r3434, autrijus++ | * Upgrade to Syck 0.55 from «why the lucky stiff».
07:25 nothingmuch ciao
07:27 autrijus btw, I like how http://www.mono-project.com/Main_Page is organised.
07:27 brentdax MediaWiki...heh, funny ow the same things pop up everywhere.
07:27 autrijus it looks professional without much customisation
07:28 autrijus well, you can't do much customisation with it anyway.
07:28 autrijus ;)
07:29 brentdax Munging MediaWiki has convinced me that PHP is evil, incidentally.  And that I'd like to write something nice in Perl 6 so I don't have to use it anymore.
07:30 autrijus port Kwiki to Perl6? :)
07:30 autrijus Perl6: Spiffier than Spiffy!
07:30 autrijus probably just need to port Spoon to Perl6
07:30 brentdax The problem with Kwiki is that it suffers from Ugly Wiki Syndrome.
07:30 autrijus everything else would follow
07:30 autrijus svk.elixus.org is ugly? :)
07:30 brentdax Symptom: it doesn't pretend to not be a wiki.
07:31 autrijus it's not exactly beautiful, but seems workable
07:31 autrijus a Mediawiki skin would be useful as well.
07:31 brentdax Oh, yes, it's workable.  You just wouldn't want to make Wikipedia in it.
07:31 autrijus sure.
07:31 brentdax I found out that Mom has used Wikipedia to research her books.  She didn't even realize it was maintained by the general public.
07:32 brentdax (She writes historical novels set in England.)
07:32 autrijus nice!
07:33 castaway then write a Kwiki::Theme module or something (assuming there arent any already. ,)
07:33 brentdax But when you look at even the SVK site, there are a lot of awkward things about it.  Like camel-case links, for example, although that's not the only one.
07:33 autrijus verily, verily.
07:34 autrijus really &
07:34 brentdax Heh, kay.
07:34 theorbtwo G'work.
07:34 b6s 15:41 <@mjhsieh> b6s: /join #pugs /me crys WE NEED Net::Socket, PLEASE!!
07:34 * b6s flee
07:35 brentdax Is there any sort of file I/O in Pugs, or have you guys been waiting till you have some idea what it'll look like?
07:35 castaway right, but Kwiki doesnt insist on CamelCase links at all.. (tho it would be nice to be able to turn them off completely)
07:40 * castaway runs off to $work
07:41 Aankhen`` PHP is a language with a serious identity crisis.
07:41 brentdax How so?
07:41 Aankhen`` It desperately tries to be Perl and not be Perl at the same time.
07:41 brentdax lol
07:42 Aankhen`` I really dislike it. :-)
07:42 brentdax I don't blame you.
07:43 brentdax When I start working in it, I start thinking like it's Perl, but it's not, so I make lots of little mistakes and write myself into algorithmic corners.
07:43 Aankhen`` Heh.
07:43 Aankhen`` The PHP community is bloody great.
07:43 brentdax Like...the only way to make an anonymous function is by passing a string with your code to create_function.  But that's really equivalent to an eval(), and has a runtime penalty.
07:43 Aankhen`` If you ask someone for help with Perl, they'll help you find a place to learn to do it.
07:44 Aankhen`` If you ask someone for help with PHP, they'll give code to copy and paste, and you'll be right where you were before you asked.
07:44 brentdax Heh.
07:45 Aankhen`` I guess people might like the PHP approach since it means less work for them.
07:45 Aankhen`` I like the Perl approach since I want to keep improving as a programmer.
07:45 brentdax Well, only theoretically.  In the long run it's not very nice.
07:45 Aankhen`` Indeed.
07:45 Aankhen`` It's a very short term view of the situation.
07:47 SM_ax has joined #perl6
07:47 Aankhen`` The most messed up thing I ever heard of was an IRC bot for an MMORPG I play -- it was a real heavy-duty bot, with lots of nifty features -- which numbered thousands of lines of... wait for it... PHP.
07:48 brentdax Ouch.
07:49 brentdax Another channel I hang out in has a guy who's trying to write a PHP bot.  I keep thinking "if you like pain that much, why not just use INTERCAL?"
07:49 Aankhen`` Websites written in PHP are usually laughable.  Command-line PHP is definitely a case of a square peg in a round hole.  PHP and IRC feels like the spawn of...
07:49 Aankhen`` :-)
07:49 Aankhen`` ROTFL.
07:50 Aankhen`` People just seem to think that PHP is the solution to everything.
07:50 SM_ax while it is solution to nothing? :)
07:50 Aankhen`` Well, that's my opinion. :-)
07:50 brentdax One thing I think is interesting about Perl 6 is that if you can convince Perl that your entire code file is a giant literal string, it has much of the inside-outness of PHP.
07:51 Aankhen`` But I suppose "if it works for you" applies there.
07:51 Aankhen`` brentdax >> Inside-outness?
07:52 elmex has joined #perl6
07:52 brentdax ``<html>{ 1+1 }</html>``, instead of ``print "<html>", 1+1, "</html>"``.
07:52 Aankhen`` Ahh.
07:52 SM_ax Hmm, I've never seen a good PHP code or a good piece of software in PHP
07:52 Aankhen`` SM_ax >> One good PHP app is vBulletin.
07:52 Aankhen`` WordPress is another.
07:52 Aankhen`` (I don't like the language, but I'm not biased against the apps)
07:53 brentdax PHP's strength, I think, is that it makes it *really* easy to start small and grow from there.
07:53 Aankhen`` Yes.
07:53 Aankhen`` But the problem is that it encourages many bad practices.
07:53 Aankhen`` And that whole magic quotes thing... *shudders*
07:53 brentdax (Granted, once you've grown it falls on its face, but by then you're stuck.)
07:53 SM_ax brentdax, for some people it is weakness :)
07:53 brentdax Dear God, yes.  That's the most hackish thing I've seen in a language in a long time.
07:53 Aankhen`` Heh, in PHP you have to STAY small.
07:54 brentdax MediaWiki's pretty big...
07:54 Aankhen`` Otherwise you just end up with a ton of spaghetti code.
07:54 Aankhen`` I've seen quite a few large PHP projects.
07:54 Aankhen`` Uuuugly.
07:55 Aankhen`` "Code is poetry" just doesn't apply. :-(
07:55 pjcj has quit IRC (Read error: 145 (Connection timed out))
07:55 brentdax 55.5kloc in includes/, which is most of the code.  It's not too hard to find the section of the code you need to mess with.
07:55 Aankhen`` Hrm, I haven't seen the code for MediaWiki.
07:56 Aankhen`` The greatest thing about Perl 6, IMHO, is pattern matching.
07:57 brentdax Yes.  I actually mentioned that on wikitech-l, that when PHP-on-Parrot and Perl 6 are available, we can replace the creaky multi-pass substitution "parser" they currently have.  (Heck, Perl 6 isn't even really necessary for that, as long as there's a library for PGE access.)
07:57 Aankhen`` Yeah.
07:57 Aankhen`` PGE as a library would be so amazing.
07:58 Aankhen`` Heh... PCRE seems so outdated compared to PGE.
07:58 Aankhen`` Um.
07:58 Aankhen`` Compared to Perl 6's pattern matching, rather.
07:58 brentdax Heh.
07:58 brentdax That's one of those parts of Perl 6 that I wanted *now* when I read about it.
07:58 Aankhen`` Me too!
07:58 Aankhen`` Blasted Micro$haft Winduhs won't let me link Parrot into Pugs. >_>
07:59 Aankhen`` No pattern matching for me. >_<
07:59 brentdax Ack.
07:59 brentdax Windoze--
07:59 Aankhen`` (--Windoze)--
07:59 brentdax Windoze -= Inf;
07:59 Aankhen`` Windows == -Inf;
08:01 brentdax And maybe when Ruby-on-Parrot's available, we can steal Rails.  And there will be much rejoicing.
08:01 Aankhen`` Hehe.
08:01 Aankhen`` Parrot++
08:01 Aankhen`` PGE++
08:02 brentdax Parrot'll be great because it'll let me use all those other languages without having to actually *write* in them.
08:02 Aankhen`` I'm not such a great fan of Ruby-on-Rails, though, after I read their solution to the whole non-idempotent GET links thing.
08:02 Aankhen`` Indeed.
08:02 brentdax (Of course, with the Rubyometer continually rising, we might as well be writing in Ruby.)
08:02 brentdax What's that?
08:03 Aankhen`` The solution?
08:03 brentdax Yes.
08:03 Aankhen`` One sec.
08:03 Aankhen`` I'll have to dig up the link.
08:04 wolverian besides, we have Catalyst on CPAN.
08:04 wolverian why need Rails? :)
08:05 brentdax ...why don't people tell me about these things?
08:05 Aankhen`` brentdax >> http://community.moertel.com/ss/space/start/2005-05-08/1
08:05 wolverian I discovered Catalyst only a while ago, too.
08:05 wolverian it is quite nice.
08:05 Aankhen`` In principle, it was a good solution, but now you're going to have most Rails users putting forms within forms within forms within forms.
08:06 brentdax Oh, God, it's the GWA thing.
08:06 Aankhen`` Yeah.
08:06 brentdax I wnated to kick *so* many faces in when people started complaining about that.
08:06 wolverian Aankhen``: there is no other solution to it.
08:06 Aankhen`` Yep.
08:07 Aankhen`` wolverian >> I know, they did the best they could.
08:07 Aankhen`` I just wasn't particularly happy with it. :-P~~~
08:07 wolverian why not?
08:08 Aankhen`` The whole idea of creating another form to put the button within...
08:09 Aankhen`` So if you have: <form>...(button code goes here)...</form>, you end up with: <form>...<form>...</form>...</form>
08:09 wolverian is there another way to do it?
08:09 Aankhen`` No, like I said, they did the best they could.
08:09 Aankhen`` The only other way would be to educate all their users.
08:09 * Aankhen`` sniggers.
08:09 wolverian ..and they would have to do the exact same thing.
08:10 pjcj has joined #perl6
08:10 Aankhen`` Bleh, Pugs still refuses to link with Parrot.
08:10 Aankhen`` :-(
08:12 osfameron has joined #perl6
08:12 brentdax What does it do?
08:14 pasteling "Aankhen``" at 203.101.19.91 pasted "Compiling Pugs with PUGS_EMBED=parrot fails" (30 lines, 1.1K) at http://sial.org/pbot/10245
08:14 Aankhen`` autrijus told me to use MSYS.
08:14 Aankhen`` I don't understand it very well though.
08:15 brentdax Looks pretty nasty...
08:15 Aankhen`` I did download MinGW... all those files being looked for do exist, with the name libfoo.a, for example, libole32.a
08:17 nothingmuch has quit IRC (Remote closed the connection)
08:21 nothingmuch has joined #perl6
08:33 vcv-- has joined #perl6
08:35 Aankhen`` Is <ws> = \s* or \s+?
08:36 brentdax It Depends.
08:36 brentdax <ws> is the same as the whitespace in a :w rule.
08:36 Aankhen`` On what?
08:36 Aankhen`` Ah.
08:36 brentdax (iirc)
08:36 Aankhen`` Oh well, \s* does just fine.
08:38 brentdax Yeah, S5: / <?ws> /                # match whitespace by :w rules
08:38 Aankhen`` OK, thanks.
08:43 autrijus brentdax: re:
08:43 autrijus "Is there any sort of file I/O in Pugs, or have you guys been waiting till you have some idea what it'll look like?"
08:43 autrijus we have open(), accept(), listen(), say, flush, etc
08:43 autrijus all sorts of things you can reasonably expect :)
08:43 autrijus there's plans for piped open and io() as well.
08:43 autrijus $work &
08:43 brentdax Alright, good, thanks.
08:46 Aankhen`` If a rule in a grammar invokes another rule, does the rule being invoked have to be defined before it?
08:47 brentdax Presumably mutually recursive rules are legal...
08:47 Aankhen`` Okay.
08:54 Aankhen`` Is there any list of builtin rules, like <alpha>?
08:59 estel has joined #perl6
09:13 Darren_Duncan has left
09:14 bsb has joined #perl6
09:22 vcv-- has quit IRC (Read error: 145 (Connection timed out))
10:06 metaperl has quit IRC (Read error: 104 (Connection reset by peer))
10:14 gaal_ has quit IRC ("goodbye")
10:29 estel has quit IRC ("Konversation terminated!")
10:40 Aankh|Clone has joined #perl6
10:52 Aankhen`` has quit IRC (Read error: 110 (Connection timed out))
10:53 Arathorn has joined #perl6
10:54 Aankh|Clone is now known as Aankhen``
10:59 vcv-- has joined #perl6
11:01 nothingmuch has quit IRC (Read error: 104 (Connection reset by peer))
11:01 nothingmuch has joined #perl6
11:25 svnbot6 r3435, iblech++ | * Usual svn properties and EOL at EOF.
11:25 svnbot6 r3435, iblech++ | * Updated svnlog2graph.pl's scaling as we're close to r3500. :)
11:27 * scook0 returns
11:34 vcv-- has quit IRC (Read error: 145 (Connection timed out))
11:39 chady has quit IRC (Read error: 131 (Connection reset by peer))
11:40 chady has joined #perl6
11:41 Aankhen`` has quit IRC ("Restart [Time wasted online: 1hr 40secs]")
11:42 kolibrie has joined #perl6
11:44 chady is now known as chady_
11:49 Limbic_Region has joined #perl6
12:00 * castaway ruffles Limbic
12:00 * Limbic_Region is in the middle of his morning ritual of catching up on the news castaway
12:00 * Limbic_Region hugs castaway anyway then wanders back off
12:01 castaway :)
12:09 autrijus greetings!
12:09 * autrijus is off-$work
12:10 Aankhen`` has joined #perl6
12:10 castaway grats :)
12:11 castaway plus6 right? 8pm?
12:11 autrijus yup
12:11 autrijus I like at least using some Perl 5 at work... it keeps me in perspective :)
12:12 castaway indeed
12:13 * castaway wonders which new shiny functionality we're going to get tonight
12:13 autrijus it's the second half of the week
12:13 autrijus so it's likely I'll move into bugfixing.
12:13 castaway mm, makes sense ,)
12:14 autrijus cleaning the smoke stack, so to speak
12:14 castaway *g*
12:16 Limbic_Region yeah, it is a never ending cycle - bufixes lead to refactoring, refactoring lead to neat new ideas, neat new ideas lead to more bugs
12:17 autrijus o/~ and it moves us all / through despair and hope / through faith and love o/~
12:17 * castaway tosses http://theorbtwo.perlmonk.org/kwiki/index.cgi?VBFAQ at Limbic :)
12:18 Limbic_Region castaway - I haven't gotten to the Yahoo Mail section of my morning routine
12:18 Limbic_Region I am going to see what I can do about devoting a couple of hours a week to the project though
12:18 castaway *g* Ok
12:18 castaway cool
12:19 castaway well the link wasnt in the mail anyways, since I just created it today
12:27 nothingmuch has quit IRC (Read error: 110 (Connection timed out))
12:28 nothingmuch has joined #perl6
12:30 Aankhen`` has quit IRC ("Just another restart... :-\ [Time wasted online: 19mins 28secs]")
12:38 estel has joined #perl6
12:38 estel has quit IRC (Remote closed the connection)
12:49 broquaint has joined #perl6
12:50 CapoeiraB has joined #perl6
12:52 * castaway pokes bro.
12:53 elmex has quit IRC ("...")
12:55 Limbic_Region castaway - almost (but not quite) finished with my morning routine
12:55 svnbot6 r3436, iblech++ | Added (OO) Net::IRC::JoinOnInvite and Net::IRC::SeenExt roles.
12:55 Limbic_Region can I /msg you some initial thoughts?
12:57 castaway sure, go ahead
13:01 vcv-- has joined #perl6
13:07 stevan morning all :)
13:07 svnbot6 r3437, autrijus++ | * remove primitive infix operators from being inserted into the
13:07 svnbot6 r3437, autrijus++ |   user-defined level of the precedence table; previously it was
13:07 svnbot6 r3437, autrijus++ |   breaking "or" and "and".
13:10 Limbic_Region salutations stevan
13:10 stevan morning Limbic_Region
13:14 Limbic_Region autrijus - I often see PAR questions go unanswered (or at least not answered well) at the Monastery - any general advice since I know nothing about PAR?
13:15 Limbic_Region he did say he was off $work right?
13:15 castaway he did
13:15 castaway hmm, I got advised to ask the mailing list, who then told me to search the list archives..
13:16 castaway (but I havent gotten around to it yet)
13:17 Limbic_Region *shrug* - I just don't like to see good questions go unanswered
13:19 Limbic_Region has quit IRC ("CGI:IRC (EOF)")
13:21 castaway yeah me either.. I guess there are not too many PAR experts lurking in the monaster
13:22 Limbic_Region has joined #perl6
13:23 castaway yeah me either.. I guess there are not too many PAR experts lurking in the monaster
13:25 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
13:25 Odin-LAP has quit IRC (Read error: 104 (Connection reset by peer))
13:25 Odin-LAP has joined #perl6
13:25 Odin- has joined #perl6
13:25 castaway bingbong, Odin
13:26 Limbic_Region Is there a Dumper yet for Pugs?
13:26 castaway .perl ?
13:27 castaway $mydatathingy.perl gives you a data::dumperish output, iirc
13:27 Limbic_Region ok - good enough for me
13:32 castaway (duh, if I want to get mail today, I should probably restart fetchmail..)
13:35 Limbic_Region I think I just found a bug
13:35 castaway grats :)
13:36 Limbic_Region my %hash = map -> $_ { $_ => undef } 1..10; # works as expected
13:36 Limbic_Region my %hash = map { $_ => undef } 1..10; # doesn't work at all
13:36 Limbic_Region I thought -> $_ was assumed if not explicitly stated?
13:36 * castaway too
13:37 Limbic_Region anyone else around to confirm/deny?
13:37 castaway Mine takes too long to build.. I could try lilith.. :)
13:38 scook0 pugs: cannot cast from VList [VInt 1,VInt 2,VInt 3,VInt 4,VInt 5,VInt 6,VInt 7,VInt 8,VInt 9,VInt 10] to Pugs.AST.Internals.VCode
13:38 Limbic_Region scook0 - I know that's what it says when it breaks
13:38 Limbic_Region I am asking if breaking is proper behavior or not
13:38 Limbic_Region IOW - does map require -> $var
13:38 castaway Limbic, I get: pugs: cannot cast from VList [VInt 1,VInt 2,VInt 3,VInt 4,VInt 5,VInt 6,VInt 7,VInt 8,VInt 9,VInt 10] to Pugs.AST.Internals.VCode
13:39 castaway ah, hmm
13:39 * castaway dives for the docs
13:39 * Limbic_Region is going to go find out if this copy of HOP he loaned out is available to be borrowed back
13:39 Limbic_Region if you find that it is optional ($_ is assumed) - let me know and I will write a test for it
13:39 scook0 IIRC, {...} is just a special notation for ->{...}
13:40 castaway hmm, no map in S04
13:40 jhorwitz has joined #perl6
13:41 scook0 I think { $_ ... } means { $^_ ... } which means -> $_ { $_ ... }
13:41 castaway A bare closure without placeholder arguments that uses $_ (either explicitly or implicitly) is treated as though $_ were a placeholder argument:
13:41 castaway    $func = { print if $_ };
13:41 castaway    $func("printme");
13:41 broquaint I thought map need to be called with a colon if you wanted to use a bare closure (at this stage) i.e map:{ ... } LIST;
13:41 scook0 Seems to me like it's just a pugs bug, not deliberate behaviour
13:42 Limbic_Region broquaint - you very well may be right
13:42 castaway That implies to me (from S04) that it should work as Limbic expects..
13:42 Limbic_Region I haven't assimilated enough to know for sure yet
13:42 scook0 that might explain why it's expecting 1..10 to be a VCode
13:42 broquaint I think it should work as L~R expects, but I don't know if Pugs supports that style yet.
13:42 Limbic_Region well - it is broken either way
13:42 Limbic_Region so it is a bug
13:43 Limbic_Region just not sure how to test yet
13:43 scook0 Maybe it thinks { $_ => undef } is a hash that it's mapping over, so it assumes that 1..10 must be the mapping function
13:43 Limbic_Region depending on which way is right
13:43 castaway I dont recall seeing "map" mentioned in any of the synopses yet
13:43 broquaint { $_ => whatever } hashifies IIRC
13:43 Limbic_Region my %hash = map:{$_ => undef} 1..10;
13:44 castaway hmm, yes.. somewhere mentions that => implies hashiness..
13:44 Limbic_Region actually, IIRC what it says is
13:44 scook0 my %hash = map { $_ => undef; } 1..10
13:44 Limbic_Region {} is always a block
13:44 scook0 works fine
13:44 Limbic_Region unless
13:44 castaway A bare closure without placeholder arguments that uses $_ (either explicitly or implicitly) is treated as though $_ were a placeholder argument:
13:44 castaway    $func = { print if $_ };
13:44 castaway    $func("printme");
13:44 Limbic_Region it looks very much like a hash
13:44 castaway oops
13:44 castaway On the other hand, anywhere a term is expected, a block is taken to be a closure definition (an anonymous subroutine). If the closure appears to delimit nothing but a comma-separated list starting with a pair (counting a single pair as a list of one element), the closure will be immediately executed as a hash composer.
13:44 castaway    $hashref = { "a" => 1 };
13:44 castaway (that one)
13:45 broquaint http://dev.perl.org/perl6/doc/design/apo/A06.html#Appendix_A:_Rationale_for_pipe_operators
13:45 castaway (which is further down in S04)
13:45 Limbic_Region someone confident they know the right behavior and is willing to write a test it would be greatly appreciated
13:46 Limbic_Region personally, I am just going to wait until after I finish this project
13:46 broquaint If I write the tests will someone commit them?
13:46 Limbic_Region I am sure to find more bugs/questions
13:46 Limbic_Region broquaint - yes - lots of people will be willing to commit them
13:46 castaway I'm guessing that the second statement narrows the first one, so its not a bug
13:46 Limbic_Region but becareful - it may land you a commit bit
13:46 castaway ,)
13:47 broquaint Good point, L~R :)
13:47 * broquaint discovers a bug in his first line of code :/
13:48 broquaint Or is it? pugs -e "say (map {; $_=>1} qw/a b c /).perl"
13:48 castaway Im not sure pugs takes over the {; .. idiom
13:48 castaway I think you want a : (somwhere)
13:48 broquaint I think autrijius said it did ...
13:49 broquaint Yeah, it does.
13:49 castaway ok, I stand corrected
13:49 scook0 well, I must be off
13:49 scook0 bye all
13:50 scook0 has quit IRC ("time for sleep")
13:50 broquaint It seems that () inserts references to keys in that example. Which doesn't seem right.
13:50 nothingmuch how easily could the schwartzian transform be done by hacking itypes? what I mean:
13:51 nothingmuch my @array := map { ... } @original;
13:51 broquaint What does the 'I' stand for in ITypes?
13:51 nothingmuch bind_indices(@array, @orig);
13:51 nothingmuch @array.=sort;
13:51 nothingmuch # @orig sorted as well, due to element relocation being carried over to @orig
13:52 nothingmuch except that it's not a schwartzian transform anymore
13:52 nothingmuch partial binding of the container meta object
13:52 nothingmuch phooey
13:54 bsb has quit IRC (Remote closed the connection)
13:55 Limbic_Region hmmm - found my second piece of strange behavior already
13:55 Limbic_Region likely this is just an unimplemented feature
13:55 broquaint How does one test a parsefail?
13:56 Limbic_Region sub foo (Int $bar is copy, @list is copy) { ... }  foo( 'hello', 1..10);
13:56 nothingmuch broquaint: if it dies in an string eval too, then comment it out
13:56 nothingmuch and put a fail("FIXME: parse fail"); right before it
13:56 Limbic_Region notice the 'hello' is not of type Int
13:56 Limbic_Region but it works just fine
13:56 Limbic_Region when it shouldn't
13:56 nothingmuch Limbic_Region: is this happenning because of is copy?
13:56 broquaint Thanks, nothingmuch.
13:56 nothingmuch i can promise to look at it when I get home
13:57 nothingmuch but I doubt I can solve it
13:57 * broquaint decides to recompile Pugs before writing any tests ...
13:57 Limbic_Region I don't think so nothingmuch
13:57 iblech has joined #perl6
13:58 Limbic_Region in fact - I know it isn't
13:58 Limbic_Region try the following
13:58 nothingmuch i can't try now
13:58 nothingmuch got to hack C++
13:58 nothingmuch if i start with pugs i'll get distracted
13:58 broquaint Poor, poor, nothingmuch ...
13:58 nothingmuch because I don't really feel like doing the C++
13:58 Limbic_Region pugs -e "sub foo (Int $bar) { say $bar; }  foo( 'hello' );"
13:58 iblech I actually think Pugs' behaviour is correct -- the Str is automatically morphed into an Int
13:58 iblech (Which happens to be 0, in this case)
13:59 Limbic_Region no
13:59 Limbic_Region that's not what it does
13:59 nothingmuch i think it's bad for it to do that even if it did
13:59 nothingmuch oh my!
13:59 nothingmuch "hello" + 1 should not work
13:59 Limbic_Region I would be fine if that is what it did iblech
13:59 Limbic_Region but it doesn't
13:59 Limbic_Region it says hello
13:59 nothingmuch but see autrijus's thread on '1.28' * '2.56'
13:59 iblech Limbic_Region: oh...
14:00 nothingmuch i sort of know my way around bindparams, i'll try to look at it when I get back, Limbic_Region
14:00 Limbic_Region so I am just keeping track of oddities I encounter
14:00 Limbic_Region will report them as I encounter them
14:00 nothingmuch test test test!
14:00 Limbic_Region but I don't intend to personally take action until I am finished
14:00 nothingmuch this info tends to get forgotten
14:00 Limbic_Region anyone along the way is happy to add tests
14:00 Limbic_Region nothingmuch - see what I just wrote
14:00 nothingmuch are you writing this stuff down?
14:01 Limbic_Region yep
14:01 Limbic_Region little notepad next to me
14:01 Limbic_Region do it everytime I code p6
14:01 nothingmuch okay, so when I get back if you haven't already tested, I'll ask you to show me a list of bugs
14:01 Limbic_Region it is so new to me, I need to remind myself of things
14:01 Limbic_Region k
14:01 nothingmuch back to work now
14:01 SM_ax has quit IRC ("ChatZilla 0.9.61 [Mozilla rv:1.7.7/20050420]")
14:01 PerlJam Limbic_Region: Isn't that a policy decision?  Sometimes you want strict type checking, sometimes you want autoconversion, and sometimes you just want what you want no matte what you wrote (the behavior you're seeing now)
14:03 Limbic_Region PerlJam - I think when you want it to "just work" you don't explicitly define the type
14:03 Limbic_Region I think if you explicity define the type you want some kind of checking
14:03 Limbic_Region I am pretty sure it was initially a difference between Int and INT and int
14:03 PerlJam Limbic_Region: yeah, I agree.  I'm just being devil's advocate for a minute :)
14:04 Limbic_Region where 1 would convert for you but not remember (cache)
14:04 Limbic_Region and 1 wouldn't convert at all
14:04 Limbic_Region let me try the other two variants to see if either does what I want
14:04 nothingmuch Int is an object, int is autoboxed
14:04 Limbic_Region INT works
14:04 Limbic_Region or rather
14:05 Limbic_Region INT doesn't parsefail
14:05 Limbic_Region int parsefails
14:05 eric256 has joined #perl6
14:05 Limbic_Region Int doesn't parsefail
14:05 Limbic_Region none of them do the right thing
14:05 Limbic_Region grrr
14:05 * Limbic_Region gets back to work
14:09 Limbic_Region should .. have higher precedence than - ?
14:09 Arathorn has quit IRC (Read error: 104 (Connection reset by peer))
14:09 Limbic_Region 0 .. $foo - 3;
14:10 Limbic_Region that doesn't work like p5
14:10 Limbic_Region you have to add parens
14:10 Limbic_Region 0 .. ($foo - 3);
14:11 castaway try it without spaces?
14:11 castaway $foo-3
14:11 castaway (something like that, iirc)
14:12 eric256 pugs -e"my $foo = 5; print for 1 .. $foo-1"
14:12 eric256 prints 4
14:12 eric256 as do any variations on spacing.
14:12 castaway mm, leastways its on purpose, I thihnk :)
14:13 PerlJam which version?
14:13 * Limbic_Region uses a binary build and has no way of knowing revision
14:13 eric256 6.2.3 (r3428) .... freshly built last night
14:14 Limbic_Region http://www.jwcs.net/~jonathan/perl6/
14:14 PerlJam eric256: well it worked on an older revision that I happen to have handy (r3119_
14:14 Limbic_Region mine was built this morning at around 1 AM
14:14 eric256 if you just rung pugs Limbic_Region they fixed it so it shows the correct revision number
14:15 Limbic_Region eric256 - pugs -V has never worked on any of the binary builds I have got from Jonathan
14:15 Limbic_Region unless it was fixed since 1AM this morning
14:15 Limbic_Region I think it is a problem with svk versus svn (but I am not sure - hearsay actually)
14:15 eric256 no need for -V... just start its interactive mode and the splash screen has it
14:15 eric256 they fixed the svk vr svn thing a day or two ago
14:15 Limbic_Region no it doesn't
14:15 eric256 ??? realy?
14:16 Limbic_Region it says the exact same thing as pugs -V
14:16 Limbic_Region which is to say it says 0 for revision
14:16 Limbic_Region I get a version number only (6.2.3)
14:17 eric256 maybe he uses SVK to get it? weird thought because that jsut started working just a day or so ago. wonder if one part got fixed and broke something else. ;)
14:17 Limbic_Region dunno - I am not worried about that
14:17 eric256 either way i can't figure out how that code would print just 4 unless it is trying to do length(1..5) - 1
14:17 Limbic_Region I am worried that PerlJam is saying that 0 .. $foo - 3; used to work and doesn't anymore
14:17 Limbic_Region means we didn't have good enough test coverage
14:18 Limbic_Region anyway - have written it down on my list
14:18 Limbic_Region moving on
14:18 eric256 or someone changed the specs so that now it is correct and before it was wrong.. which seems to be what castaway was hinting at
14:18 PerlJam eric256: I think it's doing something like  (1,2,3,4,5) - 1  and the list is evaluating to the last element
14:18 Limbic_Region grrr - naked blocks as looping constructs aren't available in p6 anymore are they - grrrr
14:19 PerlJam Limbic_Region: nope, they need to have a "do" prefix
14:19 eric256 i think thats suppose to be a loop prefix
14:19 eric256 loop { ... } while <<expre>>;
14:20 PerlJam eric256: I think Limbic_Region was referring to how you can say  { ...; redo }  and it just works (in perl5)
14:20 Limbic_Region it's alright - it really should never have been written the way it was anyway
14:21 eric256 yea... i thought what i read last night said to use a bare loop for that...i guess that would make an infinite loop though
14:21 Limbic_Region infinite loop is what I want
14:21 integral hmm, is there a &? to get the current loop?
14:21 eric256 loop {} works then
14:21 PerlJam Limbic_Region: oh, then loop { ... } is it.
14:21 integral s/loop/block/ ?
14:21 Limbic_Region with a last to break out when appropriate
14:21 Limbic_Region PerlJam - yeah, but it really doesn't make much sense - I was shortcutting the p5
14:21 integral { ...; &?CURRENT_BLOCK() } # ∞ loop using tailcalls
14:23 Limbic_Region it boils down to this loop { ... next if <some condition>; .... last; }
14:23 Limbic_Region which means it may potentially run 1..Inf times
14:24 Limbic_Region s/potentially//
14:24 eric256 whould loop { ... } while ( <<condition>> ) continue { ... }  work?
14:24 svnbot6 r3438, Stevan++ | Perl::MetaModel - more work on the Perl::Meta::Compiler class; currently it only compiles properties of classes and some basic built-in methods; some tests for it too
14:26 PerlJam eric256: I don't think continue blocks exist any more.
14:27 PerlJam It'd be more like:   loop { ...  NEXT { ... } } while $condition;
14:27 eric256 i was just reading that section... didn't get down to the closure traist, didn't dawn on me that it would apply to loops
14:28 PerlJam okay, r3437 ... $ pugs -e 'my $foo = 5; print for 1..$foo-1'
14:28 PerlJam 1234
14:29 Limbic_Region how do I do an array slice ?  @foo[ @bar ] ?
14:30 iblech yep
14:33 nothingmuch has quit IRC ()
14:34 eric256 has left
14:50 * Limbic_Region found another bug
14:50 svnbot6 r3439, putter++ | Switched some parsefails into evals in t/rules/from_perl6_rules/.
14:50 Limbic_Region pugs -e "my $i = 3; my @array = 1..5; @array[ --$i ]  ; say $i"
14:51 Limbic_Region $i should be 2
14:51 Limbic_Region but it is 1
14:51 Limbic_Region unless I missed something about predecrement operators?
14:51 iblech No, you're right, I think.
14:52 Limbic_Region port p5 to p6 code is a great way to find b0rk stuff
14:54 PerlJam again, on r3437 ...
14:54 PerlJam $ pugs -e 'my $i = 3; my @array = 1..5; @array[ --$i ]  ; say $i'
14:54 PerlJam 2
14:54 PerlJam (but write tests anyway if that's your aim :)
14:54 Limbic_Region how new is 3437?
14:55 PerlJam very new.
14:55 Limbic_Region ok - so I will summarize a list of bugs when I am done
14:55 PerlJam svnbot just mentioned a commit by Stevan that put us as 3438
14:55 Limbic_Region all should get tests regardless
14:55 PerlJam s/as/at/
14:55 Limbic_Region but it is good to know some have already been fixed
14:55 PerlJam oh, and there's one from putter
14:56 Limbic_Region having tests ensures things don't get unfixed
14:56 PerlJam Limbic_Region: make sure you have the latest version whenever you do get around to doing something.  It may be that tests have already been added.
14:56 PerlJam (not that more tests would be a bad thing :)
14:57 Limbic_Region well - I am in a bit of a predicement WRT testing ATM
14:58 Limbic_Region would be real nice if there was a way to grep/search svn online
14:58 * Limbic_Region needs to talk to Jonathan about including the tests in the binary build he makes
14:59 vcv-- has quit IRC (Read error: 145 (Connection timed out))
14:59 Limbic_Region hey PerlJam - would you mind running something for me under your build?
14:59 * PerlJam idly wonders if google is indexing svn repos around the world.
14:59 PerlJam Limbic_Region: what do you need run?
14:59 Limbic_Region that way I will be able to keep the syntax clean
15:00 Limbic_Region will nopaste current working version
15:00 Limbic_Region and then will nopaste what I think should work if there were no bugs
15:00 PerlJam okie
15:00 Limbic_Region perlbot nopaste
15:00 perlbot Paste your code here and #<channel> will be able to view it: http://sial.org/pbot/<channel>
15:01 pasteling "Limbic_Region" at 129.33.119.12 pasted "Iterative Combinations (bug workarounds)" (27 lines, 793B) at http://sial.org/pbot/10249
15:01 Limbic_Region first ensure that works
15:02 pasteling "Limbic_Region" at 129.33.119.12 pasted "Iterative Combinations (fewer bug work arounds)" (26 lines, 770B) at http://sial.org/pbot/10250
15:02 PerlJam [1, 2] [1,3] [1,4] etc.
15:02 Limbic_Region then try that
15:02 PerlJam *** Error: Modification of non-creatable array value attempted
15:03 PerlJam on the second one just after it output [1,5]
15:03 Limbic_Region ok - let me try one more version - testing only 1 bug at a time
15:04 pasteling "Limbic_Region" at 129.33.119.12 pasted "Iterative Combinations (1 bug assumed fixed)" (26 lines, 774B) at http://sial.org/pbot/10251
15:04 Limbic_Region this one only assumes 1 bug has been fixed
15:05 Limbic_Region ?
15:05 PerlJam same error
15:05 Limbic_Region ok
15:06 Limbic_Region odd since you said pugs -e 'my $i = 3; my @array = 1..5; @array[ --$i ]  ; say $i' prints 2
15:06 Limbic_Region oh well, I will leave the workarounds in
15:06 Limbic_Region more important to move on at this point
15:06 * PerlJam wanders off to do some work
15:19 putter has joined #perl6
15:21 Shachaf has joined #perl6
15:22 putter seen stevan
15:24 putter mugwump: ping
15:35 iblech Hm... my $hash = { key1 => "baz", key2 => "baz" }; say "Hallo $hash<key1>" doesn't currently work as expected
15:35 svnbot6 r3440, putter++ | Added "has Perl::Type $paramType;" to Perl-MetaModel/lib/Perl/Param.pm.
15:35 svnbot6 r3441, putter++ | Added "Split value and implementation types in Perl-MetaModel/lib/Perl/Param.pm.
15:36 Limbic_Region iblech - doesn't giving it a hint by say my $hash = hash { ... } help?
15:37 iblech iblech: The problem is the output -- it outputs ~$hash (all keys and values, tab and \n delimited) and then "<key1>"
15:37 Limbic_Region errr
15:37 Limbic_Region that should have been does
15:37 iblech Where it should output only "baz"
15:37 Limbic_Region not doesn't
15:39 Aankhen`` has joined #perl6
15:40 stevan putter: pong
15:41 Aankhen`` :-o
15:41 Aankhen`` autrijus >> I just saw your name on the CPANPLUS AUTHORS list.
15:43 Aankhen`` That was a pleasant discovery. :-)
15:46 lumi has quit IRC (Remote closed the connection)
15:46 lumi has joined #perl6
15:55 svnbot6 r3442, iblech++ | Like in Perl 5, die "...\n" now doesn't output the file position etc. where the
15:55 svnbot6 r3442, iblech++ | error has happened.
15:56 putter stevan: I did some toe-in-the-water fiddling with Perl::Param. Added has Perl::Value paramValueType, paramImplType.  Thoughts?
15:57 putter s/Thoughts\?/Any feedback welcome./
15:58 stevan putter: to be honest, that is mugwumps territory
15:58 stevan I am just an implementation monkey :)
15:59 Forth__ hum...have no idea to write a pugsh
16:00 putter ah, ok.  :)  thanks.
16:00 svnbot6 r3443, autrijus++ | * We have OUTER:: scope now.
16:00 svnbot6 r3443, autrijus++ | * Closure (VCode) now captures over the entire Env, instead
16:00 svnbot6 r3443, autrijus++ |   of just the envLexical slot.  This is currently only used to
16:00 svnbot6 r3443, autrijus++ |   restore the original OUTER:: scope when calling a subroutine,
16:00 svnbot6 r3443, autrijus++ |   but once we switch to oleg's CC_2CPST for Eval monad, this will
16:00 svnbot6 r3443, autrijus++ |   get us rubyish coroutines (and serialised subcontinuations) for free.
16:00 stevan ahhh ,... my fingers are starting to code Perl 6,.. even when I am writing perl5 :P
16:04 putter stevan: ;)  yes.  the effect needs a name.  also, after typing "perl" for the order-hundreth time to run pugs, I gave up and created aliases.
16:04 stevan :)
16:04 stevan putter: I just discovered that ~ does not concat strings very well in perl5 :P
16:04 stevan and Perl5::Object.new() does weird things :P
16:05 stevan although I think really what I need is more coffee :)
16:05 putter oh yes. *laugh*
16:06 cognominal "rubyish coroutines": rubyish shouds like rubbish...
16:07 autrijus heh
16:07 autrijus rehi, btw
16:07 stevan hey autrijus :)
16:07 cognominal hi
16:07 * autrijus just woke up -- I somehow fell unconscious ;)
16:08 stevan did you implement ::OUTER while you were sleeping?
16:08 autrijus yeah, I dreamed about it
16:08 autrijus so I woke up and coded it in
16:08 stevan :)
16:08 stevan I did that with the Meta class compiler last night
16:08 stevan too much smalltalk before bed :)
16:09 autrijus that's nice
16:10 autrijus stevan: deriving Ord is just implementing <=> in perl
16:10 stevan ok
16:10 autrijus Typeable is guaranteed -- it's having a .ref
16:10 stevan cool
16:11 autrijus why are you using lots of ~ ?
16:11 stevan autrijus: I am planning (in my head) a basic implentation of Roles using the Meta::Model classes
16:11 stevan autrijus: bad habit of mine
16:11 autrijus 'foo ' ~ $foo.bar() ~ ' bar baz ' ~ $baz.baz()
16:11 stevan it helps me organize it visually
16:12 autrijus so you find "foo $foo.bar() bar baz $baz.baz()" less readable?
16:12 stevan no not less readable
16:12 autrijus in that case, I won't touch the code then
16:12 autrijus ohh
16:12 stevan but I like to indent and format things
16:12 autrijus nod
16:12 stevan (code as ASCII art)
16:12 autrijus cool
16:12 stevan I never studied Comp Sci, I went to art school
16:13 stevan code aesthetics are important to me :)
16:13 autrijus *nod* and we love your figlets
16:13 stevan :)
16:13 autrijus so, there's Roles
16:13 autrijus what else would you like Perl::MetaModel to have?
16:14 stevan oh
16:14 * autrijus is looking for a time point to snapshot that directory and backport to haskell
16:14 stevan I was going to try to make it compile the class with roles
16:14 stevan using the meta-model
16:15 stevan because the compiler right now just builds a string and evals it
16:15 stevan so I am thinking I can add the Role understanding to the compiler maybe
16:15 stevan (just for fun)
16:15 stevan and see if I cannot prototype Roles that wat
16:15 stevan s/wat/way/
16:15 stevan it will just create a plain Pugs Class
16:16 autrijus that sounds intriguing and powerful
16:16 stevan when ultimately the meta-model needs to understand this stuff I think
16:16 autrijus yup
16:16 stevan however I still need to make the compiler deal with methods first
16:17 stevan right now it just creates a meta() (which returns the Perl::Meta::Class instance)
16:17 stevan and an isa() which points to the meta-class isATypeOf for now
16:18 stevan I would do more, but I am starting to get behind in $work so ...
16:19 autrijus nod
16:22 svnbot6 r3444, iblech++ | warn() implemented.
16:22 autrijus iblech++ # core hacking in earnest
16:23 madhouse has quit IRC (Read error: 131 (Connection reset by peer))
16:24 iblech My Perl 6 p6bible needed warn(), but it wasn't yet implemented, so... :)
16:25 putter stevan: I just realized the metamodel typing still needs junctives, hierarchical, *and* subtypes... anything else come to mind?
16:25 stevan oh,.. it needs much more that that too I am sure
16:25 stevan :)
16:25 putter ;)
16:26 autrijus iblech: I'm so looking forward into installing p6bible in p6 by default :)
16:26 iblech :)
16:26 putter yes, please.  and I contribute a script which merges S\d\d.pod to S.pod, making it easier to search...
16:27 autrijus it seems that the Eiffel XSLT app guy succeeded into getting PIR as his scripting language.
16:27 autrijus we need a libpugs :)
16:27 autrijus (so that those xslt functions can be written in perl6)
16:27 autrijus it may just be a simple case of a few "foreign export", really.
16:28 autrijus it looks like GHC has a libghc mode, too.  hopefully it will land to 6.4.1
16:28 putter hmm... use Eiffel;... but probably have to create an additional level of (very light weight) threading...
16:28 autrijus that will magically enable Inline::GHC
16:31 * jhorwitz prays for libpugs
16:31 autrijus jhorwitz: you'll find it useful? :)
16:31 autrijus it will however not be based on parrot at first
16:32 autrijus but you can surely link both in :)
16:32 jhorwitz don't be so coy...  ;-)
16:33 jhorwitz compiling pugs -> parrot w/o running pugs or pugscc would be most excellent.
16:34 * autrijus discovers http://www.volker-wysk.de/hsshellscript/
16:34 saorge has joined #perl6
16:34 vcv-- has joined #perl6
16:35 putter Ha, "Plugging Haskell In" http://www.cse.unsw.edu.au/~dons/hs-plugins/paper/hs-plugins.pdf has an interpreter "Plugs". :)
16:37 iblech autrijus: [+] no longer works, as the fix from earlier today filters non-userdefined ops. Userdefined ops do work
16:38 autrijus iblech: hey. if I define infix Z, I don't get [Z]
16:38 svnbot6 r3445, iblech++ | die() and warn() no longer harddie with "Prelude.last: empty list" if no error
16:38 svnbot6 r3445, iblech++ | message was specified, but output "Died." or "Something's wrong." (like Perl 5).
16:38 autrijus iblech: you know how or why?
16:39 autrijus iblech: ugh. as for [+], I think the true solution is to switch Prim.hs into adding prec info
16:39 iblech autrijus: s/Z/q/ and it works. This seems to be a weird bug I was unable to trace
16:39 autrijus and derive the big table in Parser.hs
16:39 autrijus based on precedence metadata
16:39 autrijus so we don't end up with duplicates
16:40 iblech I think so, too
16:40 autrijus you think you're up for it? :D
16:40 * autrijus is amazed by iblech's lambda-fu
16:40 iblech I'm amazed, too ;) -- But now, I don't think I can do that yet
16:41 iblech s/now//
16:41 decay__ has joined #perl6
16:43 autrijus ok.
16:43 autrijus I'll do it then.
16:43 autrijus btw, you aware that
16:43 autrijus [<] 1,2,3
16:43 autrijus is subtle broken?
16:43 autrijus I'm not sure what to do
16:43 autrijus arguably the op1Fold need to probe for fixity
16:44 autrijus I mean associativity
16:44 autrijus and fold accordingly
16:44 iblech Saw that bug some minutes ago... [<] 1,2,3 seems to reduce to (1<2)<3 instead of 1<2<3
16:44 putter Hey, the May 2005 Haskell Communities and Activities Report is out.  Probably mentioned already, but always worth reading.  http://www.haskell.org/communities/
16:44 autrijus yeah because op1Fold is just leftward
16:44 autrijus putter: ooh, thanks for the info
16:44 decay_ has quit IRC (Read error: 131 (Connection reset by peer))
16:45 autrijus hm, I found a way to easily do linked list consing in Perl6
16:45 autrijus [=>] 1..10;
16:45 Qiang_ has joined #perl6
16:45 Qiang has quit IRC (Read error: 131 (Connection reset by peer))
16:45 autrijus and just remap .key to head, .value to tail
16:47 osfameron Larry wrote he was hoping no-one would notice => for consing..
16:47 osfameron can you really use => in [] ?
16:47 theorbtwo That is very evil, autrijus.
16:47 iblech Of course, => is a infix op like +, *, etc., too
16:47 theorbtwo osfameron, it's (mostly) just an infix operator, so why not?
16:48 autrijus and it's foldr
16:48 autrijus as God^WLisp intended
16:48 autrijus because => is right assoc
16:48 osfameron so [,] is a noop?
16:48 elmex has joined #perl6
16:48 svnbot6 r3446, iblech++ | Added test for [=>].
16:48 autrijus osfameron: yeah
16:49 elmex has quit IRC (Client Quit)
16:49 elmex has joined #perl6
16:49 * iblech wonders what other interesting [some_infix_op] combinations exist...
16:52 putter iblech: are you going to add [,] to reduce.t, or shall I? :)
16:53 iblech putter: :) You can do it
16:53 iblech I'm adding the next one then :)
16:53 ninereasons has joined #perl6
16:53 putter k. *much laughter*
16:55 PerlJam why would you use [,] ?
16:55 PerlJam Are you trying to make perl into lisp?
16:56 stevan autrijus: the meta-compiler handles methods now :)
16:56 stevan I had a flash of inspiration
16:56 stevan back to $work now :)
16:56 autrijus whoa.
16:56 stevan it is kind of primative now though
16:57 stevan I do not deal with arguments and method signatures and such
16:57 stevan (args just get passed in as a *@args)
16:58 osfameron has quit IRC ("Leaving")
16:58 iblech Is for =open(...) {...} supposed to work? (Pugs hangs currently)
16:58 Limbic_Region what's the p6ism for my $count = keys %hash; ?
16:58 svnbot6 r3447, Stevan++ | Perl::MetaModel - meta-compiler now handles methods (and method inheritance too); added C<can(Str) returns Bool> to built-in methods; see the t/50*.t for more info
16:58 Limbic_Region .count ?
16:59 iblech my $count = +%hash, IIRC
16:59 iblech my $count = +keys %hash will work, too
16:59 Limbic_Region that works
16:59 Limbic_Region thanks
16:59 iblech but my $count = heys %hash will give you an arrayref to the list of keys
16:59 iblech s/heys/keys/
17:00 autrijus iblech: I fixed [+] etc
17:00 autrijus it may fix [Z] accidentally as well
17:01 iblech autrijus++ # yay! :) Please tell me what the problem with [Z] was, then :)
17:01 * iblech food &
17:04 autrijus iblech: nvm it's still bad
17:04 svnbot6 r3448, autrijus++ | * [+] rescued
17:06 zuulvin_ has joined #perl6
17:07 autrijus iblech: the bug was
17:07 autrijus ruleApply was after ruleLit
17:07 autrijus and [Z()] is a lit.
17:09 G2 has joined #perl6
17:14 Limbic_Region autrijus - I am working on a small project that I think will get new people on board
17:14 svnbot6 r3449, autrijus++ | * [Z] now works
17:14 * Limbic_Region has uncovered 4 bugs in the process (2 of which may already have been fixed)
17:14 meppl has joined #perl6
17:15 Limbic_Region and it is all because I write bad code
17:15 Limbic_Region ;-)
17:19 broquaint Bad code makes for good tests!
17:19 Limbic_Region also looks like a good candidate to profile pugs and optimize where appropriate
17:19 Limbic_Region broquaint - actually bad code makes for good "improve this code" contests
17:20 G2 has quit IRC ("oops")
17:20 Limbic_Region I do need a way to determine if a list of sorted numbers is in a sequence of 3 or more
17:20 Limbic_Region i.e. 5,6,7
17:21 putter r3450 (reduce.t) is untested.  sorry, I have to unbreak syck.
17:23 autrijus unbreak syck?
17:23 autrijus how is syck broken?
17:23 autrijus (I imported 0.55)
17:24 _metaperl has joined #perl6
17:26 putter syck.h defines some macros using malloc,etc, and memset, etc, but doesnt #include stdlib and string.h.  I patched this before locally, but I'm afraid pushing it upstream is still on my todo list (somewhere...).  Mea culpa.
17:26 svnbot6 r3450, putter++ | Added [,] to reduce.t.  And reordered some tests.
17:26 svnbot6 r3451, autrijus++ | * oops, reverted the precedence, only allowing reduce
17:26 svnbot6 r3451, autrijus++ |   metaoperator to parse before literals
17:32 simcop2387 has joined #perl6
17:32 * Limbic_Region thinks he might have found another bug
17:38 rafl has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 _metaperl has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 decay__ has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 Aankhen`` has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 kolibrie has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 pjcj has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 PerlJam has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 wilx has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 perdix has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 Gruber has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 Chewie[] has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 scw has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 AtnNn has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 knotty has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 clkao has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 erg255 has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 q[acme] has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 mugwump has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 SB9 has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 pasteling has quit IRC (zelazny.freenode.net irc.freenode.net)
17:38 svnbot6 r3452, ninereasons++ | work around unexpected behavior
17:39 osfameron has joined #perl6
17:41 _metaperl has joined #perl6
17:41 decay__ has joined #perl6
17:41 Aankhen`` has joined #perl6
17:41 kolibrie has joined #perl6
17:41 pjcj has joined #perl6
17:41 AtnNn has joined #perl6
17:41 PerlJam has joined #perl6
17:41 wilx has joined #perl6
17:41 rafl has joined #perl6
17:41 perdix has joined #perl6
17:41 Gruber has joined #perl6
17:41 Chewie[] has joined #perl6
17:41 scw has joined #perl6
17:41 knotty has joined #perl6
17:41 clkao has joined #perl6
17:41 erg255 has joined #perl6
17:41 mugwump has joined #perl6
17:41 SB9 has joined #perl6
17:41 pasteling has joined #perl6
17:41 q[acme] has joined #perl6
17:41 vcv-- netsplit, ouch
17:42 autrijus ninereasons: adding "motd.p6 - " as the prefix of commit log, and/or explaining the mishevariour, would be appreciated... (and makes it easier to fix for) :-)
17:43 autrijus (since that looks like a genuine bug)
17:43 xern has quit IRC (Read error: 131 (Connection reset by peer))
17:43 xern has joined #perl6
17:43 gugod has quit IRC (Read error: 131 (Connection reset by peer))
17:47 iblech autrijus: re. Found a bug: ("abc"|"def") ~~ rx:Perl5/.../ works as expected (returns a junctive match object), but my $a = "abc"|"def"; $a ~~ rx:Perl5/.../ returns only one
17:48 iblech autrijus: re. Found a bug: ("abc"|"def") ~~ rx:Perl5/.../ works as expected (returns a junctive match object), but my $a = "abc"|"def"; $a ~~ rx:Perl5/.../ returns only a non-junctive match object
17:48 gugod has joined #perl6
17:49 autrijus weird.
17:49 svnbot6 r3453, putter++ | r2706 reapplied (syck.h required #includes).  And this time, upstream has been notified.
17:49 autrijus but then again, not weird really, because ~~ is rw!
17:49 autrijus ($a|$b) ~~ s:P5/x/y/;
17:49 autrijus I wonder what does that do.
17:49 * autrijus is confused
17:50 Limbic_Region without parrot on my Win32 box, what is the fastest way I can run code (options wise) - or am I stuck with what I got?
17:51 iblech I think: It should try to s:P5/x/y on both $a and $b, and return a junctive object which may evalute to true|false, if, for example $a didn't contain a "x" but $b did
17:51 autrijus Limbic_Region: you can tell autrijus to send you a copy
17:51 Limbic_Region a copy of parrot?
17:51 autrijus of binary parrot build
17:51 autrijus yeah
17:52 Limbic_Region or a pugs.exe linked against parrot with the appropriate library
17:52 clkao *yawn*
17:52 autrijus I hadn't got msys linkning to work.
17:52 Limbic_Region well - I kind of want the code to be slow
17:52 autrijus judging from Aankhen``'s report, nobody did :)
17:52 autrijus I think extern parrot for now
17:52 Limbic_Region I just want to find out if something worked (which will take quite a while)
17:52 autrijus is the surest bet
17:52 autrijus in PGE?
17:52 Limbic_Region nope
17:52 Limbic_Region I will nopaste what I am working on
17:52 autrijus er, what do you want parrot for then
17:53 autrijus sure
17:53 Limbic_Region keep in mind that it is intended as a "how much can you improve this" contest
17:53 Limbic_Region to get people interested
17:53 autrijus http://autrijus.org/tmp/parrot.tgz btw.
17:53 autrijus uploading
17:53 autrijus done
17:53 autrijus win32 vc6.0 build
17:54 vcv-- vc6? ick :)
17:54 Limbic_Region parrot nopaste
17:54 autrijus the only version perl is known to build correct ;)
17:54 Limbic_Region perlbot nopaste
17:54 perlbot Paste your code here and #<channel> will be able to view it: http://sial.org/pbot/<channel>
17:54 autrijus s/correct/correctly/
17:55 autrijus mmm.
17:55 Aankhen`` autrijus >> I didn't try MSYS.
17:55 * autrijus ponders eval_scheme support
17:55 vcv-- perl wont build on vc2002/2003?
17:55 autrijus Aankhen``: oh, you didn't? then somebody else did
17:55 Aankhen`` Atleast...
17:55 Aankhen`` I just installed MinGW.
17:55 autrijus oh ok.
17:55 pasteling "Limbic_Region" at 129.33.119.12 pasted "My Idea for a "Sharpen your P6 skills" contest" (128 lines, 3.6K) at http://sial.org/pbot/10253
17:55 Aankhen`` vcv-- >> Visual Studio?
17:55 autrijus vcv--: yes, but then an extra dependency on VC's libc will be generated
17:56 vcv-- oh.
17:56 autrijus vcv--: and the "free" version is iirc unusable
17:56 autrijus at least no success reports has been found
17:56 vcv-- right
17:56 Limbic_Region specifically, I want to test the right-jack and runs code
17:56 clkao karma vcv
17:56 Aankhen`` The free version sucks. -_-
17:56 autrijus karma vcv
17:56 autrijus karma for vcv
17:56 autrijus hrm, no workee :)
17:56 vcv-- ill have to try getting it to work on the free version
17:56 theorbtwo Seen hasn't been working either.
17:56 simcop2387-vnc has joined #perl6
17:56 autrijus vcv--: I tried... lots of porter tried
17:56 autrijus all failed
17:56 autrijus that's after multihundred metabytes of SDK download
17:57 vcv-- shame :(
17:57 autrijus so it's painful and unrewarding
17:57 Aankhen`` $karma vcv
17:57 Aankhen`` :-(
17:57 Limbic_Region autrijus - would you mind running that code I nopasted
17:57 vcv-- i know someone on the visual studio team, indirectly. he hates perl though, so dont think i could get any info out of him
17:58 Limbic_Region and give me a line that either has a Jack in the first 4 cards or a hand that has a sequence of 3 or more
17:58 * Limbic_Region needs to verify the scoring is working
17:58 Limbic_Region btw - it is going to take a while
17:58 autrijus why does this need parrot?
17:58 Limbic_Region for speed
17:59 autrijus hm? speed?
17:59 Limbic_Region actually - anything that will speed it up will be appreciated
17:59 Limbic_Region except re-writing it to be more efficient
17:59 Aankhen`` How do I link Pugs against an external Parrot?
17:59 Limbic_Region that is what the contest is for
17:59 autrijus I don't think parrot codegen handles this
17:59 Limbic_Region ok
17:59 autrijus Aankhen``: you do nothing :)
17:59 Limbic_Region so is there anything that can make the same code run faster?
17:59 Aankhen`` Parrot is required for PGE, right?
17:59 autrijus Aankhen``: just set parrot in path.
18:00 Aankhen`` Ah.
18:00 autrijus PATH, that is
18:00 Aankhen`` I was wondering what I did wrong, heh.
18:00 autrijus Limbic_Region: yes, work on parrot codegen :)
18:00 Limbic_Region ok - so I guess I just need to be smarter than the average bear
18:00 Limbic_Region seed my test with desired data instead of waiting for the iterator to get to it
18:01 vcv-- autrijus: i know you said its painful and unrewarding, but i took that as a challenge. look what you got me into!
18:01 PerlJam Limbic_Region++  It's great that you're writing so much perl6 :-)
18:01 autrijus vcv--: it's not worth it... :)
18:02 autrijus but hey, if you insist, I can't stop you can I
18:02 wolverian does anyone have a link to something that discusses the definition of reduce as used in perl6? wondering if I could show a friend that it's more mathematical than what other languages use.
18:02 vcv-- i have a deep down hatred for anything vc6 related, and i wish to tinker with parrot..so :p
18:02 kolibrie has quit IRC ("leaving")
18:03 vcv-- wolverian: the best thing i read was damian's 9 use examples of it
18:03 autrijus wolverian: WhatIsAFold
18:03 wolverian vcv--: sure. I'm just wondering specifically about the mathematical definition, since people have been saying the perl6 reduce conforms to that.
18:03 vcv-- oh, gotcha :)
18:03 wolverian autrijus: thanks.
18:03 autrijus wolverian: http://haskell.org/hawiki/WhatIsaFold
18:03 Aankhen`` vcv-- >> Parrot works fine.
18:04 Aankhen`` You just can't link it against Pugs.
18:04 Aankhen`` Or perhaps it was vice-versa. *looks sheepish*
18:04 autrijus same thing... link is twoway :)
18:04 vcv-- well whatever it is.. im going to get my hands dirty
18:04 autrijus wolverian: but that's reduction for lists
18:04 autrijus theoretically you can also fold over trees
18:04 Aankhen`` Yeh, but in this case, Parrot is being linked into the Pugs executable, right?
18:05 autrijus or even function types!
18:05 svnbot6 r3454, autrijus++ | * added a line of hint in Makefile.PL that says parrot.exe needs
18:05 autrijus Aankhen``: yes.
18:05 svnbot6 r3454, autrijus++ |   to be placed in PATH for external parrot to work.  Prompted by Aankhen.
18:05 wolverian autrijus: mm. right.
18:06 wolverian autrijus: that page doesn't really say if mathematics generally consider reduce/fold to take a list sub or a binary sub, which was my point, I think. :) (put in perl6 terms)
18:07 vcv-- binary sub?
18:07 wolverian vcv--: reduce { $^a + $^b } ...
18:07 theorbtwo wolverian: I don't think mathematics generally considers there to be much of a difference between a binary function and a general n-ary function.
18:07 vcv-- oh right
18:07 wolverian theorbtwo: right. :)
18:08 Limbic_Region yay - it appears to work
18:08 vcv-- im surprised by how many terms i dont know that i see you guys on the p6 mailing lists use
18:09 autrijus foldl :: (a -> b -> a) -> a -> [b] -> a
18:09 zuulvin_ has quit IRC (Read error: 110 (Connection timed out))
18:09 autrijus foldr :: (a -> b -> b) -> b -> [a] -> b
18:09 _metaperl has quit IRC (Read error: 60 (Operation timed out))
18:09 autrijus that's the two kind of folds haskell understands... both comes with a base case
18:09 vcv-- Then autrijus comes along with his Haskell and confuses me even more
18:09 ninereasons autrijus - stale reply: I wasn't sure whether it really was a bug, and that's why I was vague.  But I'll work on  being more expressive :)
18:09 zuulvin_ has joined #perl6
18:10 autrijus ninereasons++ # cool
18:10 PerlJam vcv--: why are you surprised?  The denizens of p6l are always using obscure terms  ;-)
18:10 autrijus vcv--: well, the haskell here in foldl is really quite straightforward :)
18:10 vcv-- Heh.. true. surprised isnt an appropriate word to use i guess
18:11 Aankhen`` Yey!
18:11 vcv-- autrijus: yeah.. i just havent wrapped my brain around it yet. my brain doesnt like to learn with conventional methods. ill figure it out eventually :)
18:11 Aankhen`` autrijus++ # Thanks for adding that.
18:11 autrijus vcv--: its translation in Perl6 is somethinglike: sub foldl (&code<::a, ::b> returns ::a, ::a $head, ::b @rest) returns ::a
18:12 * vcv-- nods head
18:12 autrijus see the WhatIsaFold link above to see why it's defined like that :)
18:12 Aankhen`` "&code<::a, ::b> returns ::a" is specifying parameters and a return type for the code block?
18:13 autrijus yes.
18:13 Aankhen`` Neato.
18:13 Aankhen`` Would that work in Pugs?
18:13 autrijus eventually. not yet
18:13 Aankhen`` (mine is still on `nmake`, I haven't even got to `nmake test` :-P)
18:13 autrijus we don't do quantified type parameters yet
18:13 Aankhen`` OK.
18:13 autrijus type variables, even.
18:14 autrijus I'm not sure, in general, how it works in perl6. maybe everything is runtime checked ;)
18:14 * Aankhen`` nods like he understands.
18:14 Aankhen`` s/\.$/ the distinction./
18:15 autrijus oh. the distinction is that whether it can validate the &code<Int> against something that is actually accepting an Int at compile time
18:15 PerlJam autrijus: I don't understand how agressive perl6 will be towards type checking.
18:15 svnbot6 r3455, putter++ | eval_is()d [,] and [=>] in reduce.t.
18:15 autrijus PerlJam: oh, I think it will be checked.
18:15 Aankhen`` Ah.
18:15 autrijus I'm just not sure how early is the check.
18:15 autrijus PerlJam: it looks like everything is until runtime.
18:15 wolverian autrijus: I think it might be &foo:(::a, ::b) nowadays, but it's underspecced, really.
18:15 PerlJam autrijus: sometimes I think it should check what it can at compile-time and defer everything else to runtime.
18:15 jhorwitz has quit IRC ("Chatzilla 0.9.67 [Firefox 1.0.4/20050511]")
18:15 autrijus wolverian: yeah.
18:16 Aankhen`` Windows XP's Remote Desktop looks pretty neat.
18:16 PerlJam But then, as you say, it looks like everything is runtime
18:16 Aankhen`` And really useful.
18:16 vcv-- Hm. I know there was talks of one guy wanting an IDE made specificall for Perl6. Maybe ill get myself into that. by writing it in perl6 of course :)
18:16 autrijus PerlJam: "everything it can" is looking liek not much, unless we apply mad inference-fu
18:16 autrijus vcv--: nice
18:16 Aankhen`` Perl 6 will be all but impossible to parse. :-(
18:16 Aankhen`` Maybe you could just rip it out of Pugs though. ;-)
18:16 autrijus Aankhen``: that's actually the plan
18:16 PerlJam Aankhen``: It's a good thing we'll have perl6 to parse it! ;-)
18:17 autrijus just apply it to a regex.
18:17 vcv-- im a gui nazi. thats my specialty
18:17 autrijus a rule, that is
18:17 Aankhen`` Oh yeah, I forgot... there's going to be a builtin grammar for it, isn't there?
18:17 osfameron and hooks!
18:17 Aankhen`` Excellenté.
18:17 * Aankhen`` takes back his uncalled-for whining.
18:17 PerlJam Aankhen``: built-in, user redefinable, fully introspective grammar
18:17 autrijus and you can even derive that rule by pretty-printing the active "Perl6" grammar object from your current lexical scope!
18:17 vcv-- Aankhen``: i thought so too.. but the foundation of it is what makes it so simple yet powerful. i think its revolutionary :)
18:17 autrijus what a fix!
18:17 putter fyi, [=>] and [,] arent actually working, and [//] @array  where my @array = (undef, undef, 3, undef, 5); nonterminates.
18:17 * osfameron is really excited about a refactoring browser as good as IDEA for Perl...
18:18 * osfameron actually slobbers a little
18:18 Aankhen`` I love pattern matching.
18:18 Aankhen`` I drooled when I read A05.
18:18 Limbic_Region ok - writing perlmonks journal entry now
18:18 putter that's as of r3453
18:18 vcv-- autrijus already put reduce [] into action in pugs??
18:18 autrijus Limbic_Region: url? :)
18:18 autrijus vcv--: er, sure.
18:18 autrijus pugs> [*] 1..10
18:18 autrijus 3628800
18:19 vcv-- you amaze me
18:19 PerlJam vcv--: If you dream it, odds are autrijus has already implemented it ;)
18:19 autrijus thank you.
18:19 autrijus &product = sub { &prefix:<[*]> o (&infix:<..>.assume(1)) }
18:19 autrijus mmm pointless perl6.
18:20 autrijus even more pointless than pointless haskell.
18:20 autrijus and it's .assuming.
18:20 _metaperl has joined #perl6
18:20 autrijus (the use of lots of the "o" operator from fp.pm is called "point-free", aka "pointless", style.)
18:20 putter autrijus: re eval_scheme, it just so happens I have (most of a) scheme to p5 self-hosting transliterator... ;)
18:21 autrijus putter: oh wow!
18:21 vcv-- How about a parrot to x86 assembly convertor? :)
18:21 autrijus there is HScheme, too
18:21 autrijus which is why we can get eval_scheme for free
18:21 Southen[a] has joined #perl6
18:21 PerlJam vcv--: we call that a JIT ;-)
18:21 autrijus vcv--: it's already there :)
18:21 autrijus it's a full ContT monad with call/cc support
18:22 vcv-- no way
18:22 vcv-- so it would be possible to compile to a native executable with little to no overhead?
18:22 autrijus [not|autrijus]~/work/parrot/jit$ ls
18:22 autrijus alpha/  arm/  hppa/  i386/  ia64/  mips/  ppc/  sun4/
18:22 autrijus vcv--: right, and you know, it's already there too!
18:23 autrijus # http://www.parrotcode.org/docs/native_exec.html
18:23 vcv-- I'm at a loss for words
18:23 PerlJam vcv--: go on ... ask for something else that you think is far fetched!
18:23 autrijus (there is a reason why pugs is targetting parrot.)
18:24 vcv-- Perl: I got nothin'!
18:24 putter re hscheme, looks like it has some http://hscheme.sourceforge.net/issues.php .  community report lists it as "stalled"...
18:24 Limbic_Region autrijus - not done yet
18:24 Limbic_Region will post when it is finished
18:24 autrijus cool
18:24 vcv-- "This method wraps the VM runtime engine and a precompiled Parrot program into a single binary."
18:24 vcv-- aww..see..thats cheating!
18:25 autrijus but it's jited :)
18:25 PerlJam cheating?  I say it's all according to plan
18:25 vcv-- Maybe one day there will be true compiling with *no* overhead :)
18:25 Odin_ has joined #perl6
18:25 Odin-LAP has quit IRC (Read error: 104 (Connection reset by peer))
18:25 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
18:26 vcv-- dont get me wrong, im happy with the JIT, its very impressive :)
18:26 Odin- has joined #perl6
18:26 autrijus vcv--: if you look for ansi C codegen, I don't think it's parrot's goal
18:27 autrijus although you're certainly welcome to help out Pugs's _other_ backend, which can one day compile to ansi C with no runtime system :)
18:27 autrijus (Perl6->Haskell->Grin->Jhc)
18:27 vcv-- That I will consider
18:27 putter given the Scheme's... err, minimalist standard, one really wants a scheme implementation factory class.  thus, use Scheme::Guile;.  otherwise snarfing code from the world is just too hard.
18:27 autrijus putter: you know my Inline::MzScheme? :)
18:27 vcv-- If not, I will possibly invest in some programmers who could do it
18:28 autrijus however you lose interop with other parrot languages. :-/
18:28 putter yes.  'fraid I havent used it though.
18:29 Aankhen`` Does a `grammar { ... }` declaration work?
18:29 autrijus Aankhen``: no, not yet.
18:29 Aankhen`` Darn.
18:29 putter I should have said  "use Scheme::Transliterating::Guileish";  One problem with the Inline:: naming scheme is that one might want Guile external common, Guile external dedicated, Guile internal common/dedicated, Guile compatibility package on other foo, etc.
18:30 autrijus I'm not sure qualified rules even work.
18:30 autrijus in PGE, that is
18:30 vcv-- `` isnt still system()?
18:30 Aankhen`` Qualified rules?
18:30 Aankhen`` vcv-- >> `...` is just my way of differentiating code from the rest of the text. :-)
18:30 autrijus /<Foo::bar>/
18:30 vcv-- Ahh... ok :)
18:30 Aankhen`` autrijus >> Ah.
18:30 autrijus (which is what you normally want grammar for)
18:30 Aankhen`` Well, if grammars don't work... :-)
18:31 Aankhen`` vcv-- >> I tried |...| but then I figured since I'm using Markdown syntax for most stuff anyway, I might as well do it for code too. :-P
18:31 autrijus what do you want grammars for?
18:31 Aankhen`` |...| looks uglier anyway.
18:31 Aankhen`` autrijus >> http://groups-beta.google.com/group/perl.perl6.language/browse_frm/thread/76d4ea76b181e160/e99e0455a5a65b9f#e99e0455a5a65b9f
18:31 PerlJam autrijus: that's just a subrule.  subrules work.
18:31 autrijus subrule?
18:31 autrijus oh.
18:31 autrijus you mean if I install Foo::bar by qualified name.
18:31 PerlJam right.
18:32 autrijus but what if <bar> is called in the same grammar package?
18:32 autrijus oh. I need to tell PGE the things in scope.
18:32 vcv-- Aankhen``: i was looking at that. considered giving it a shot
18:32 autrijus and also initialise it with builtin rules.
18:32 autrijus PerlJam: hey, you know if there's a list of builtin rules? if not, can you start assembling one or find people to? :)
18:32 elmex has quit IRC ("leaving")
18:32 vcv-- That XML parser doesn't involve DTDs though.. right? right?
18:32 Aankhen`` Heh, I got most of the productions converted already, vcv--.
18:32 vcv-- DTDs are the devil :(
18:33 Aankhen`` Well.
18:33 PerlJam autrijus: I think Damian posted the beginnings of such a list to p6l once.
18:33 Aankhen`` I'm gonna check out some of the P5 XML parsing modules.
18:33 PerlJam certainly you can mine the As, Es, and Ss to find ones that are probably built-in
18:33 autrijus I'm trying to delegate :)
18:34 PerlJam I know, I just don't have time so I'm delegating back  :)
18:34 autrijus putter++ # notifying why
18:34 Aankhen`` You could start with the common ones -- <sp>, <ws>, <ident>, etc.
18:34 Aankhen`` And then add the POSIX rules -- <alpha>, <digits>, etc.
18:34 autrijus Aankhen``: can you be the delegate? :D docs/quickref/rules will be an excellent place
18:34 autrijus just list the names
18:34 putter re grammars/rules... there is a great deal of red in the smoke...
18:34 autrijus with definitions if you can conjure up, otherwise leave a XXX
18:34 Aankhen`` Mmm, I'll try.
18:35 Aankhen`` You want the list formatted in any particular way?
18:35 autrijus Aankhen``: no, just the usual quickref format
18:35 Aankhen`` OK.
18:35 autrijus (minimal formmatting the way you see fit)
18:35 autrijus Aankhen``++
18:35 Aankhen`` BRB.
18:35 autrijus "grammar" is parsed now, btw.
18:35 vcv-- delegate something easy to me ;)
18:35 svnbot6 r3456, autrijus++ | * parse for "grammar", as suggested by Aankhen.
18:35 PerlJam Aankhen``: <ident> <null> <before ...> <after ...> are a few more I can think of right off but you'll have to check S05 or A05 for their defs
18:36 autrijus vcv--: sure... proofread docs/quickref and maybe add something into it
18:36 PerlJam wait a second ... I may have a list in my notes from when A05 first came out ...
18:36 * PerlJam looks
18:36 autrijus vcv--: oh, are you not a committer? then give me your email and add yourself to AUTHORS
18:36 autrijus as the first assignment :)
18:36 vcv-- whereat?
18:37 theorbtwo In alpha order by first name.
18:37 PerlJam ah yes ...  Aankhen`` look at the bottom of this page: http://lighthouse.tamucc.edu/ScottDuff/Perl6Apocalypse5
18:37 vcv-- er.. which docs?
18:37 theorbtwo First "vcv--" Last    (CPAN) utf-8
18:37 autrijus or just "vcv" :)
18:38 autrijus i.e. give me an address I can send invitation mail to; after getting the invitation, use the newly acquired password to check in to http://svn.openfoundry.org/pugs/
18:38 vcv-- matt @ weakmind . org
18:38 autrijus the quickrefs are in docs/quickref/*; the AUTHORS file is in the base dir.
18:38 autrijus invitation sent. welcome aboard!
18:38 Southen has quit IRC (Connection timed out)
18:38 vcv-- ok. thanks :)
18:38 Limbic_Region autrijus - http://www.perlmonks.org/index.pl?node_id=458728
18:38 Aankhen`` PerlJam >> OK, shall I throw that into a quickref?
18:39 PerlJam Aankhen``: sure.
18:39 Limbic_Region I also want to talk to you about the 5 possible bugs I found
18:39 Limbic_Region everyone is invited to join in the Perl6 challenge btw
18:39 autrijus Limbic_Region++
18:39 Limbic_Region http://perlmonks.org/index.pl?node_id=458728
18:39 autrijus Limbic_Region: sure. which 5?
18:39 PerlJam Aankhen``: Wait, you mean the URL or the stuff on the page?  Better to put the stuff on my page in the docs so that people can hack on it.
18:39 autrijus (if they are made into failing tests, I'll get around to fix them sooner or latter)
18:40 Limbic_Region well - I say possible because I am not sure of behavior
18:40 autrijus the map {=>} thing is not a bug.
18:40 autrijus it's a misfeature.
18:40 zuulvin_ has quit IRC (Read error: 145 (Connection timed out))
18:40 autrijus but I think it's gonna stay.
18:40 autrijus sad but true... write {=>;}
18:40 autrijus i.e.
18:40 Limbic_Region not sure I understand
18:40 autrijus map { $_ => $_; }
18:41 Limbic_Region my %hash = map { $_ => $_ }; #doesn't work
18:41 autrijus map { $_ => $_ } @foo; # illegal
18:41 autrijus yes.
18:41 zuulvin_ has joined #perl6
18:41 autrijus because that's like saying
18:41 autrijus my %hash = map \%another_hash @array;
18:41 _metaperl_ has joined #perl6
18:41 Limbic_Region ok - so -> $_ is necessary?
18:41 autrijus you can use a semicolon.
18:41 PerlJam autrijus: is {=>} related to [=>]  ?  ;>
18:41 autrijus my %hash = map {$_ => $_;} @array;
18:41 autrijus that works.
18:41 autrijus PerlJam: ;)
18:41 autrijus PerlJam: <<=>>>
18:41 Limbic_Region my %hash = map -> $_ { $_ => $_ } @array;
18:42 Limbic_Region also works
18:42 autrijus yup but more verbose.
18:42 autrijus both works
18:42 Limbic_Region ok - so the ; is the succinct way to go
18:42 * Limbic_Region is intentionally disqualifying himself
18:42 Limbic_Region when you define a sub parameter type - is there supposed to be any type checking
18:43 autrijus currently it's only used in MMD.
18:43 Limbic_Region sub foo (Int $bar) { say $bar } foo( 'hello' )
18:43 autrijus it will be used for coercion later maybe
18:43 Limbic_Region ok - so that IS an unimplemented feature then?
18:43 iblech Hmm... »=>« actually has a meaning (surprise! :)): my @array_of_pairs = @keys »=>« @values
18:43 autrijus i.e. coercing 'hello' into 0
18:43 Limbic_Region right - fine by me
18:43 autrijus but I'm not sure when coercion stops and when castfail begins
18:43 Limbic_Region but leaving it as hello isn't the right thing
18:44 autrijus no it's not. problem is I don't know what righ things is
18:44 Limbic_Region I thought it was the difference between Int and int
18:44 autrijus I asked on p6l
18:44 madhouse has joined #perl6
18:44 Limbic_Region 1 was allowed to be typecast but wouldn't remember (cache) result
18:44 Limbic_Region one was a flat out failure
18:44 autrijus Larry gave some sort of answer -- but I think it needs to be reraised
18:44 AtnNn how do you type << and >> on us layout?
18:44 Aankhen`` PerlJam >> Doesn't <ident> only match a character that would be valid within an identifier, not the whole identifier?
18:44 autrijus Limbic_Region: maybe you need to reraise that on p6l
18:44 autrijus sub foo (Int $bar) { say $bar } foo( 'hello' ) # this
18:45 Limbic_Region ok - so I will hold off on #2 until we know WHAT to be testing for
18:45 autrijus I don't think it's been answered before
18:45 Limbic_Region and will instead raise it on p6.l
18:45 Aankhen`` And don't worry, I am putting the stuff from the page in the quickref, not just the URI. :-)
18:45 autrijus Limbic_Region++
18:45 autrijus also ask (int $bar) :)
18:45 Limbic_Region right
18:45 Limbic_Region I intend to explain "my understanding was...."
18:45 svnbot6 r3457, iblech++ | Added the usual svn properties and EOLs at EOFs to the apparently unstoppable
18:45 svnbot6 r3457, iblech++ | efforts of Stevan++ on ext/Perl-MetaModel/. :)
18:45 svnbot6 r3458, iblech++ | Added a preliminary p6explain.
18:45 svnbot6 r3459, ninereasons++ | add t/pugsbugs/unhashify.t | adding a pugsbugs test to demonstrate that when a hash ((key => 'val')) is passed to a sub, it becomes a List \((key => 'val')).
18:46 ninereasons a little more descriptive, autrijus ?   ;-)
18:46 Limbic_Region and then ask what the currently accepted behavior is
18:46 iblech AtnNn: <Compose> <Greater than> <Greater than> and <Compose> <Less than> <Less than>
18:46 Limbic_Region ok - on to #3
18:46 putter Aankhen``: re <ident>, nope, see t/rules/Disabled/from_perl6_rules/stdrules.t
18:46 Limbic_Region it may have been fixed already
18:46 Aankhen`` Alright.
18:46 Limbic_Region 0 .. $foo - 3;
18:46 saorge has quit IRC (Connection timed out)
18:46 PerlJam Aankhen``: I think it matches a sequence of characters that would be valid in identifiers, but don't take my word for it, read the As, Es, and Ss, and ask p6l if there is a lack of clarity or consensus.
18:46 Limbic_Region that didn't do the right thing in the version of pugs I have that Jonathan compiled last night
18:47 AtnNn <Compose>?
18:47 saorge has joined #perl6
18:47 Limbic_Region 0 .. ($foo - 3); # was necessary
18:47 Limbic_Region it may have already been fixed though
18:47 * PerlJam tries to concentrate full on work.
18:47 iblech AtnNn: On Linux, you can declare some unused key to act as a compose key. Don't know about other OSes, though
18:47 iblech Limbic_Region: Already fixed :)
18:47 Limbic_Region in any case - the parens should not be necessary right autrijus?
18:47 Limbic_Region ok - so needs a test to ensure it doesn't get unfixed iblech ?
18:47 Limbic_Region or does it already have a test?
18:48 autrijus pugs> my $foo = 10; say 0..$foo-3;
18:48 autrijus 01234567
18:48 autrijus I don't recall a test
18:48 autrijus but when that was brokenm
18:48 autrijus lots and lots of other tests fail
18:48 iblech No, there's no test for it currently, IIRC -- do you want to write it or should I? :)
18:48 autrijus like shortcircuit.t
18:49 autrijus of course, more tests are always welcome
18:49 Limbic_Region iblech - even if I write it I can't commit
18:49 Limbic_Region so if you have the tuits
18:49 iblech Ok, will do
18:49 autrijus it looks like iblech is gifted with a rich supply of tuits :)
18:49 Limbic_Region on to #4
18:49 putter Aankhen``: Damian uses <ident> in his recent useful capture post http://www.nntp.perl.org/group/perl.perl6.language/20985
18:49 autrijus ident ==> <\w+>
18:49 autrijus also found in pge's demo.pir
18:50 putter yes.
18:50 Limbic_Region pugs -e "my $i=3; my @array = 1..5; @array[ --$i ]  ; say $i"
18:50 Limbic_Region that prints 1 for me and not 2
18:50 Limbic_Region I have heard that it too is fixed already
18:50 autrijus but that gives numeric letter as valid ident
18:50 Limbic_Region but I am not sure about a test
18:50 autrijus it's 2 here.
18:50 autrijus the great infix checkin last night surely broke a lot
18:51 autrijus (it's still very much worth it)
18:51 Limbic_Region ok - so a test to ensure unfixing is in order?
18:51 autrijus sure
18:51 Limbic_Region ok
18:51 Limbic_Region last 1
18:52 autrijus Limbic_Region: latest pugs btw -- http://autrijus.org/tmp/pugs.zip
18:52 autrijus just the .exe
18:52 autrijus so quite small
18:52 autrijus er, wait, wrong link. never mind that :)
18:52 * autrijus will regen
18:52 * Limbic_Region wasn't going to fix stuff up anyway
18:52 autrijus oh ok.
18:52 Limbic_Region that's what the contest is for
18:52 autrijus cool
18:52 autrijus last one?
18:52 Limbic_Region while ( @combo = $next() ) {
18:53 Limbic_Region should I be able to do
18:53 putter Aankhen``: note that ScottDuff/Perl6Apocalypse5 is a bit out of date.  eg, :u1 etc are renamed.
18:53 Aankhen`` OK.
18:53 vcv-- aw. the parrot makefile assumed i had perl in c:\perl\bin when activestate installed it in e:\perl\bin >:/
18:53 Limbic_Region while ( @combo = sort { $^a <=> $^b } $next() ) {
18:53 Limbic_Region I ended up making the @combo = sort ... the first line of the while block as a work around
18:55 _metaperl has quit IRC (Connection timed out)
18:55 _metaperl_ is now known as _metaperl
18:55 autrijus hm
18:55 putter what is more critical path, metamodel or rules?
18:55 Limbic_Region ok - sounds like a good question to have asked
18:55 svnbot6 r3460, iblech++ | Added a test testing &infix:<..>, &infix:<...> and their precedence.
18:57 autrijus Limbic_Region: you should. that's a bug
18:57 autrijus not sure where the bugs lies, though.
18:57 autrijus I'd appreciate a minimised test case
18:58 Limbic_Region autrijus - will do
18:58 Limbic_Region actually - will write it in my journal tonight - might not get a test for it till tomorrow
18:58 * Limbic_Region is kinda burnt out
19:00 zuulvin_ has quit IRC (Read error: 110 (Connection timed out))
19:01 autrijus Limbic_Region: that's fine, take care!
19:01 svnbot6 r3461, iblech++ | reduce.t -- Skipping a hanging test and unTODOed a now working test :)
19:01 vcv-- uh oh. nmake is stuck at:
19:01 vcv-- c1 : warning C4349: /Gf is deprecated and will not be supported in future versio
19:01 vcv-- ns of Visual C++; remove /Gf or use /GF instead
19:02 zuulvin_ has joined #perl6
19:05 putter mugwump: ping
19:06 stevan putter: I think rules is probably more critical now
19:06 stevan (to answer a 10 minute old question)
19:06 svnbot6 r3462, ninereasons++ | t/data_types/hash.t, add tests after t/pugsbugs/unhashify.t, as an exercise against the bug demonstrated there, which changes a Hash into a List when passed to a sub.
19:07 stevan putter: the meta-model stuff may or may not end up being part of the perl6 port of perl6
19:07 stevan (probably not, at least is its current form)
19:08 stevan putter: however, that said, I would love for you to help on the meta-model. But I really see rule support as more important since without rules we cannot have a perl6 port of perl6
19:10 Aankhen`` Anyone know the difference between :overlap and :exhaustive?
19:10 theorbtwo "aaa" ~~ /a*/ gives aaa, aa (twice), and a (three times) with one, and only aaa, aa, and a with the other.
19:11 _metaperl is now known as metaperl
19:11 theorbtwo (One requires unique starting positions, the other does not.)
19:11 Aankhen`` Ah.
19:11 Aankhen`` Hrm.
19:11 Aankhen`` Subtle.
19:11 Aankhen`` Thanks. :-)
19:11 putter stevan: ok. thanks. I was thinking that autrijus sounded like he was in wait mode on classes for some level of progress on meta.  meta as spec rather than meta as impl.
19:12 vcv-- Does anyone know where i can define the GHC path in the makefile for pugs?
19:13 stevan putter: I dont think autrijus is waiting on it
19:13 autrijus putter: oh, no, it's just I'm trying to avoid dup work :)
19:13 stevan LOL
19:13 autrijus I'm /wi36
19:13 autrijus er.
19:13 autrijus ww
19:13 autrijus anyway.
19:14 * autrijus ponders the sanity of maintaining 40 irc subwindows
19:14 stevan sanity--
19:14 theorbtwo You are the west wing?
19:14 autrijus theorbtwo: hm?
19:14 theorbtwo ww = west wing.  American TV show.
19:14 vcv-- stupid makefile! >:/
19:14 autrijus so. where was I. yes, classes. I'm in bugfix mode for rest of this week
19:15 autrijus so it'd be cool if next week I can avoid re-research and apply Perl::MetaModel back
19:15 autrijus but if there's missing spots, I'll fill it up :)
19:16 stevan I think much of the Perl::* level stuff was actually just perl6 versions of Haskell stuff
19:17 vcv-- odd. did a search for "assert_ghc" in all files in c:\source\pugs\ and nothing came up
19:17 autrijus stevan: right, I'm thinking about Meta level
19:17 stevan autrijus: what parts are the most useful for you? I will try to concentrate on that
19:17 autrijus stevan: the Meta stuff, and in particular Role
19:17 * stevan is trying to use recursion with his methods too, to make it easier to backport
19:18 autrijus don't worry about that :)
19:18 stevan autrijus: ok, I will work on the Role stuff then
19:18 autrijus I've got forM defined :)
19:18 autrijus (and forM_)
19:18 stevan autrijus: I like recursion better anyway :)
19:18 stevan so much cleaner
19:18 autrijus cool :)
19:18 putter I was thinking meta-level isATypeOf, types and subtypes needed fleshing out...
19:18 autrijus recursion++
19:18 stevan putter: I agree
19:19 stevan the isATypeOf was really just so support isa(Str)
19:19 stevan beacuse we dont have type dispatched multi-methods :)
19:20 * vcv-- gives up and throws computer out window
19:20 autrijus we don't?
19:20 stevan autrijus: last I checked we didnt
19:20 autrijus oh, we have typedispatched multisubs
19:20 autrijus but not multimethods
19:20 putter are "hierarchical types" subtypes?  they are type constrains, but I havent seen them refered to as such.
19:20 stevan see t/oo/methods/multi.t (i think)
19:20 autrijus is that the case?
19:20 vcv-- autrijus: Where can I define the GHC path for the makefile for pugs? its driving me crazy trying to find it :(
19:20 autrijus putter: I have no ida
19:20 autrijus idea
19:20 stevan putter: I am not familiar with them,.. which Synopsis is it?
19:20 autrijus vcv--: GHC
19:20 autrijus vcv--: just the GHC env
19:21 * putter checks...
19:21 autrijus or put them in PATH
19:21 Corion has joined #perl6
19:21 vcv-- heh.. duh. thanks, im not thinking today.
19:21 stevan putter: if you want to work on the types stuff though, that would be very very very cool.
19:21 Corion Does anyone know if Tye McQueens idea of making require() return a factory was seen by @Larry ? (http://perlmonks.org/index.pl?node_id=424374)
19:22 putter S12.pod:=head1 Types and Subtypes   S06.pod:=head2 Hierarchical types
19:22 autrijus stevan: indeed
19:23 zuulvin_ has quit IRC (Read error: 110 (Connection timed out))
19:23 stevan Corion: nothingmuch kind of does something like that
19:23 stevan his packages always return __PACKAGE__ instead of 1;
19:23 AtnNn pugs> [**](2,3,4) -> Internal error?
19:23 Corion stevan: Ah - I'd like to see that in Perl6, so I'll ask nothingmuch too ...
19:23 stevan produces a similiar efffect I think
19:24 Corion stevan: Basically, returning __PACKAGE__ is the minimum you need, yes.
19:24 Limbic_Region autrijus et all - http://use.perl.org/~Limbic%20Region/journal/24776
19:24 Limbic_Region will work on post to p6.l now
19:25 Corion (backlogging) - I build Perl with the free MSVC7 compiler, but I haven't built Parrot with it. Is there an all-in-one source package that I can try without investing any time other than "gunzip; untar; nmake" ?
19:25 stevan putter: i see what you mean now
19:25 stevan Array of Array of Int
19:25 stevan stuff like that
19:26 stevan Implementation types look interesting too
19:26 iblech AtnNn: Thanks for reporting, fixed, committing in a minute :)
19:27 AtnNn :)
19:28 Corion Gah. I'm teh stupid. I left in some unfinished patches from yesterday and now wonder why the build breaks ...
19:28 Limbic_Region message sent
19:28 vcv-- Corion: you're the windows guy right?
19:29 Corion vcv--: "The" guy is a bit much, but yes, I use Windows (and try to make sure that Pugs works on Win32)
19:29 vcv-- thats what i meant, sorry :p
19:29 vcv-- do you use vc6 then?
19:29 Corion vcv--: No, the free VC7 compiler
19:30 theorbtwo Corion doesn't give himself enough credit -- he's the guy.
19:30 Corion theorbtwo: You forget gaal, he's doing much Win32 stuff too
19:30 vcv-- oh really? i thought they were saying it didnt work with the free vc7 compiler
19:31 theorbtwo I didn't realize gaal used win32.
19:31 vcv-- or maybe it was linking parrot and pugs together?
19:31 putter stevan: I wonder just how costly typechecking may become... you call a sub of one argument, and suddenly your off crawling down a list of junction types with assorted pattern matching constraints... recursively...
19:32 Corion theorbtwo: gaal is trying to keep msys alive :)
19:32 stevan putter: that is true
19:32 svnbot6 r3463, iblech++ | Fixed [**] and added a test for it, thanks to AtnNn++ for reporting.
19:32 Corion vcv--: Maybe Parrot doesn't work with MSVC7. I haven't tried Parrot yet.
19:32 mj has joined #perl6
19:33 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
19:33 Odin_ has quit IRC (Read error: 104 (Connection reset by peer))
19:33 Odin- has joined #perl6
19:33 Odin_ has joined #perl6
19:34 vcv-- Yeah. autrijus said pugs wont link with parrot if you use the free vc7 compiler
19:35 vcv-- which i was planning on seeing if i could figure out why in the near future
19:35 Corion ... maybe they just haven't tried Hard Enough :)
19:35 Corion ... but I don't want to spend hours chasing down various libraries, just to find out that one of these libraries doesn't build. So I want an all-in-one package there ...
19:36 vcv-- Yeah
19:36 * Limbic_Region find coding in p6 very draining
19:37 vcv-- You've never coded in c have you? :P
19:37 Limbic_Region vcv-- very little
19:37 Limbic_Region but it really isn't p6
19:37 Limbic_Region it is any language that I am unfamiliar with
19:37 Aankhen`` vcv-- >> It won't link even if you use the expensive paid version.
19:38 Limbic_Region c qualifies
19:38 vcv-- Aankhen``: must..figure..out..why
19:38 * Limbic_Region does feel a sense of accomplishment after getting something running though (p6 or c)
19:38 Aankhen`` vcv-- >> http://sial.org/pbot/10245
19:38 vcv-- the free version uses the asme compiler and linker.. just lacks the ide and various tools
19:38 Aankhen`` Apparently it needs a bunch of libraries which GHC can't find.
19:38 Aankhen`` The free version has version 1.50 of nmake.
19:39 Aankhen`` VS.NET 2003 has version 7.10.
19:39 vcv-- thats it? i could probably figure those errors out!
19:39 Corion Aankhen``: Wrong. Microsoft (R) Program Maintenance Utility Version 7.10.3077
19:39 Aankhen`` The free version will die at some point while compiling parrot, saying that the command line is too long.
19:39 Aankhen`` Corion >> What's your point?
19:39 Corion (with my free version)
19:39 Aankhen`` Hrm.
19:39 Aankhen`` That's weird.
19:39 Aankhen`` I downloaded nmake and got 1.50.
19:40 Corion Aankhen``: Yes. That's the nmake you can download separately.
19:40 Aankhen`` I also downloaded the toolkit.
19:40 Corion The free version of MSVC7 includes nmake 7.10
19:40 Aankhen`` Still had 1.50...
19:40 Corion Aankhen``: You have the old one in the path then
19:40 Aankhen`` Perhaps.
19:40 vcv-- Yeah.. just checked. it does use 7.10
19:40 Aankhen`` I think I was a little confused about paths at the time.
19:41 chromatic has joined #perl6
19:41 Aankhen`` OK.
19:41 osfameron has quit IRC (Read error: 145 (Connection timed out))
19:41 stevan hey chromatic :)
19:41 Aankhen`` I stand corrected. :-)
19:41 Southen[a] has quit IRC (Client Quit)
19:41 Aankhen`` Well, sit, really.
19:41 Aankhen`` :-P
19:41 chromatic Hi there.
19:42 Southen has joined #perl6
19:42 autrijus greetings chromatic-san.
19:42 chromatic I have a Haskell-ish question.
19:42 vcv-- E:\Program Files\Microsoft Visual C++ Toolkit 2003\lib\oldnames.lib
19:42 vcv-- right there
19:42 autrijus chromatic: I have a Perl6-ish question
19:42 vcv-- is that all that was wrong with the vc7 free compiler??
19:42 autrijus chromatic: but you get to ask yours first :)
19:43 chromatic I was reading through t/oo/magical_vars.t last night and tried to add in $?CLASS support.  It looked pretty easy, but I'm finding Eval.hs a bit confusing.  I think I know where it should go, but the eval monad required to change the pad confuses me and I can't quite get it right.
19:43 chromatic It looks easy still; can I have a hint?
19:43 autrijus sure, you have 3 free hints
19:43 Aankhen`` vcv-- >> I have it too, but it is not found.
19:43 autrijus chromatic: it's in Eval.hs, you need to modify getMagical
19:44 vcv-- put "E:\Program Files\Microsoft Visual C++ Toolkit 2003\lib" in your PATH var maybe?
19:44 chromatic Ah, I was looking at applyExp.
19:44 vcv-- -E+C
19:44 autrijus and it involves a constSym.
19:44 autrijus that's all.
19:44 Aankhen`` It's in a different location, which is in the path.
19:44 chromatic Hm, I was considering refType of the invocant.  Where can I look up the current class?
19:45 autrijus envPackage, surprisingly.
19:45 chromatic Alright, let me find where that is.
19:45 * Limbic_Region would like to kick Rob (dragonchild) sometimes
19:45 autrijus but that is perhaps for $?PACKAGE
19:45 Aankhen`` autrijus >> Can I send you a first draft of docs/quickref/rules?
19:46 autrijus although I confess I'm not sure of the difference
19:46 chromatic Is there no current distinction between packages and classes?
19:46 autrijus Aankhen``: er, you're not committer?
19:46 Aankhen`` No.
19:46 vcv-- thats definately odd Aankhen``. i dont even get to that part of the compile, or else id try to help more
19:46 autrijus Aankhen``: hey. your email please
19:46 saorge has quit IRC ("Leaving")
19:46 Aankhen`` Do you think you could look over it once first, though?
19:47 autrijus chromatic: no, there is not, and I'm a bit unsure about how they interace.
19:47 autrijus chromatic: I mean, a class is a package, right?
19:47 autrijus s/interace/interact/
19:47 autrijus but I need to ask my perl6 question ere I forget it
19:47 chromatic Go ahead.
19:47 autrijus in "Array of Int", the Array role is parameterised by the Int class
19:47 stevan mugwump was thinking that Class isa Package
19:47 autrijus or is it the Array class?
19:48 autrijus but anyway, say I have a userdefined "Set"
19:48 autrijus how do I specify it can be parameterised with "Set of Int"?
19:48 autrijus end of question.
19:48 chromatic I don't think anyone's decided if Array is a class or a role.  I'm not sure it matters.
19:48 chromatic It probably should be a role, though.
19:48 chromatic Is Set a class or a role?
19:48 autrijus is "Set of Int" the same as "Set[Int]"?
19:48 chromatic I *think* so.
19:48 autrijus I don't know, I'm merely asking what the "of" thing is operating on.
19:49 autrijus then all containers needs to be roles
19:49 autrijus parameterising over its element type
19:49 vcv-- Aankhen``: i just ran perl Makefile.PL; nmake; on my system and it worked fine...
19:49 autrijus (which is what Fortress does with its traits system)
19:49 vcv-- er wait
19:49 Aankhen`` vcv-- >> You had PUGS_EMBED set to parrot?
19:49 perdix has quit IRC ("closing this world")
19:49 Aankhen`` And PARROT_PATH set to the location of a built source tree?
19:49 vcv-- yeah.. dont think so. lemme work on that
19:49 Corion autrijus: I have a Haskell / Pugs question, later :)
19:50 chromatic I don't think they *have* to be roles, but they just have to be parametrizable.
19:50 iblech chromatic: Are classes parameterizable? Thought only roles can be parameterized
19:50 Aankhen`` How can you set the path that GHC looks in for .lib files?
19:50 autrijus chromatic: I think larry ruled classes never take type params.
19:50 Corion Aankhen``: -I or -i
19:51 Aankhen`` OK.
19:51 Aankhen`` Er... no environment variable?
19:51 chromatic Ah, I didn't realize that.
19:51 Corion Aankhen``: Not that I know off. http://www.haskell.org has some documentation on it. ghc --help isn't helpful
19:51 Aankhen`` I'm looking at the docs.
19:51 chromatic I can't see it not operating on the Set then, Autrijus.
19:52 vcv-- Aankhen``: mind if i PM you and ask about following the same steps you did to see if i can reproduce the error? ive never tried to link parrot and pugs before
19:52 Aankhen`` vcv-- >> Sure thing.
19:52 chromatic It's clearly making something more specific than an unparametrized Set.
19:52 autrijus chromatic: then how come Hash is only parameterised over one type
19:53 autrijus and the other (key) type needs to be passed over another shape() trait?
19:53 chromatic Default behavior of a hash?  I can only guess.
19:53 autrijus I mean, usually Hash is defined like this
19:53 chromatic @Larry[0] is the only one who really knows what he has in mind here, I think.
19:54 autrijus role HashTable[::KeyType, ::ValueType] {...}
19:54 autrijus but in perl6 it's like
19:54 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
19:54 Odin_ has quit IRC (Read error: 104 (Connection reset by peer))
19:54 autrijus role HashTable[::ValueType] { does shaped; }
19:54 Odin- has joined #perl6
19:54 Odin_ has joined #perl6
19:54 autrijus (or is it?)
19:54 autrijus anyway, it's really strange and I can't reason about it.
19:55 autrijus I'll think about it some more before p6l'ing it :)
19:55 chromatic Yeah, I can't figure out why a normal hash needs shaping.
19:55 autrijus another quick question. say I want to implement ruby yield().
19:55 autrijus I know the coro syntax is still up in the air.
19:55 autrijus but one can implement coro using cont.
19:56 autrijus problem is, what is syntax for cont? ;)
19:56 chromatic callcc is definitely out; it's not ugly enough.
19:56 autrijus if neither are specced, I'll need to improvise.
19:56 autrijus Pugs has &?CALLER_CONTINUATION
19:56 autrijus but it's by definition an escape continuation
19:57 chromatic Yeah, but how great is the difference between a calling continuation and a return continuation?
19:57 autrijus I'm not sure how to expose full cont, coro, or the like.
19:57 autrijus there's none, that's why I chose the CALLER syntax
19:57 autrijus it's clearer than &?CONTINUATION
19:57 autrijus which is ambiguous
19:58 autrijus &Continuation::CallCC
19:58 chromatic &?COME_FROM_CONTINUATION and &?GO_TO_CONTINUATION?  :)
19:58 autrijus &Continuation::Shift
19:58 autrijus &Continuation::Reset
19:58 autrijus is not ambiguous either
19:58 autrijus &Continuation::Yield
19:58 autrijus so maybe go with that?
19:58 chromatic I do like yield.
19:58 autrijus with lower case anyway
19:58 autrijus &Continuation::yield
19:58 autrijus use Continuation <yield>;
19:59 chromatic That implies coros to me though.
19:59 autrijus right, then we need to figure a way to mark a call as a coro call.
19:59 Limbic_Region my favorit subject
19:59 autrijus (or define the language such all call is potentially a coro call.)
19:59 Limbic_Region ;-)
19:59 chromatic I like the latter.
20:00 autrijus I understand that luqui dislikes the latter.
20:00 chromatic He's young; he'll adapt.
20:00 autrijus ooh.
20:00 wolverian doesn't parrot give us that for free, too?
20:01 Aankhen`` How do I pass parameters to GHC using Makefile.PL?
20:01 chromatic Nearly free, yes.
20:01 Limbic_Region autrijus - after further conversations with him, I don't think that is actually the case
20:01 Limbic_Region Luke sees a distinction between gather/take and coroutines
20:01 Limbic_Region the former being already defined (mostly) and the latter undecided on
20:01 autrijus Limbic_Region: er, yes.
20:01 Aankhen`` Nevermind, I think I found it.
20:02 Limbic_Region what he doesn't like about certain coroutine proposals is the mutability of arguments
20:02 chromatic Hm, I can't seem to make envPackage work.  Doesn't it need a getState call?  But that's out of scope here.
20:02 Limbic_Region but some form of a coroutine he is fine with
20:02 autrijus chromatic: getState is only in parser monad
20:02 autrijus chromatic: in Eval monad it's called ask
20:02 Limbic_Region or at least that's how I interpreted our last conversation
20:02 autrijus chromatic: you want
20:02 autrijus asks envPackage
20:03 autrijus the type of it is (Eval String)
20:03 autrijus now try turning it to (Eval (Maybe Val)) :)
20:03 chromatic I have to modify envPackage now?
20:03 Aankhen`` Argh.
20:04 autrijus chromatic: hm? are you still in implementing $?PACKAGE ?
20:04 autrijus (and $?CLASS)
20:04 Aankhen`` I pass in a directory containing oldnames.lib to GHC but it still won't find the file.
20:04 autrijus chromatic: "asks" is a read-only operation
20:04 chromatic Just $?CLASS at the moment, but $?PACKAGE is almost free after that.
20:04 autrijus "asks envPackage" is defined as
20:04 autrijus do { env <- ask; return (envPackage env) }
20:05 chromatic I have so far:
20:05 chromatic getMagical "?$CLASS" = constSym $ asks envPackage
20:06 chromatic (Just guessing on the purpose of $ there based on other examples)
20:06 iblech chromatic: I think what autrijus meant was that you have to make $?CLASS return a Class (Just Val) object (or undef (Nothing)), not a String
20:06 autrijus right. but that doesn't work
20:06 chromatic Yep, big type errors.
20:06 autrijus see
20:06 autrijus constSym :: String -> Eval (Maybe Val)
20:06 autrijus asks envPackage :: Eval String
20:06 autrijus you can't pass in a (Eval String) to a function expecting a String.
20:07 wolverian what on earth is an Eval String? :)
20:07 autrijus you have to first turn that (Eval String) into a String.
20:07 chromatic Ahhh, I wish GHC showed the patterns it tried to apply on error.
20:07 wolverian (I still need to learn Haskell.)
20:07 autrijus wolverian: Eval String is something that calculates a string.
20:07 autrijus wolverian: it's not a string; it's an action that, when performed, returns a string.
20:07 autrijus you can perform an action using
20:07 autrijus result <- action
20:07 autrijus syntax.
20:07 wolverian autrijus: right. a promise?
20:07 autrijus so in chromatic's example here:
20:07 autrijus do
20:08 autrijus    package <- asks envPackage
20:08 autrijus    constSym package
20:08 autrijus will work.
20:08 autrijus but it's maybe easier to write it as
20:08 autrijus constSym =<< asks envPackage
20:08 autrijus where =<< has this type:
20:08 wolverian hmm. I would want to inline the <- (being the perl coder I am)
20:08 chromatic Ahh, I tried to apply it too soon.
20:08 wolverian oh. neat.
20:08 autrijus (=<<) :: (a -> Eval b) -> (Eval a) -> Eval b
20:09 autrijus that is, it accepts two actions
20:09 autrijus performs the right one first
20:09 autrijus then put the result to the left one
20:09 autrijus returning its final result.
20:09 autrijus (look at the a and b types)
20:09 wolverian that hurts my brain.
20:09 * iblech is happy as he had the =<< line in mind before autrijus typed it :)
20:09 autrijus of course, timtowtdi, so you can also write
20:09 autrijus asks envPackage >>= constSym
20:09 autrijus and it will also work
20:09 autrijus as >>= has the type:
20:10 autrijus (>>=) :: Eval a -> (a -> Eval b) -> Eval b
20:10 chromatic I kept thinking constSym had String -> String
20:10 Aankhen`` autrijus >> Shall I send the draft in the morning, then?
20:10 autrijus Aankhen``: what's your email?
20:11 Aankhen`` I /notice'd you.
20:11 Aankhen`` [email@hidden.address]
20:11 wolverian autrijus: an (Eval String) is basically a Code returns Str?
20:11 autrijus I missed it
20:11 autrijus wolverian: well yes.
20:11 wolverian autrijus: hmm. okay. thanks!
20:11 Aankhen`` G'night for now.
20:11 Aankhen`` has quit IRC ("RED ALERT! Tagline theft! Raise shields! Arm photons! Lock on phasers! [Time wasted online: 4hrs 32mins 23secs]")
20:12 autrijus wolverian: but I'd be misleading you.
20:12 autrijus (Eval String) means, more formally:
20:12 autrijus an action that, when performed
20:12 autrijus may cause I/O side effects
20:12 autrijus and/or cause STM transactions in memory
20:12 wolverian autrijus: right. but perl6 defaults the other way.
20:13 chromatic Eval is a monad?
20:13 autrijus within which you can always look up things in your lexical (global) environment
20:13 wolverian (that is, you explicitly mark something as safe, not the as monad)
20:13 wolverian (safe = atomic)
20:13 wolverian s,the,,
20:13 autrijus and within which you can always invoke continuations to return early
20:13 autrijus this action, when fully performed, gives you back a String.
20:13 autrijus chromatic: yes.
20:14 autrijus all Perl 6, as evaluated by Pugs, is in the Eval monad.
20:14 autrijus there will also be CompilePIR and CompileGHC monad.
20:15 autrijus the plan is to unify the three under a class
20:15 autrijus so when you write
20:15 autrijus asks envLexical
20:15 autrijus in interpreter mode it looks up the lex in memory
20:15 autrijus in PIR compiler mode it generates the neccessary opcode to retrieve lex pad
20:15 autrijus and in GHC compiler mode it loads the current binding in topic
20:15 autrijus etc.
20:15 chromatic Hmm, envPackage seems wrong here.
20:15 autrijus so the code in Eval.hs can be shared.
20:16 autrijus chromatic: it's fit for $?PACKAGE
20:16 chromatic Definitely not for $?CLASS though; it's giving 'main';
20:16 autrijus chromatic: $?CLASS likesly wants something else. maybe a test first? :)
20:16 autrijus yeah, because it default to main
20:16 chromatic Let me fix up the $?PACKAGE tests in here and I'll commit the $?PACKAGE part.
20:17 iblech $?CLASS is already tests in t/oo/magical_vars.t
20:17 chromatic Actually yeah.
20:17 iblech s/tests/tested/
20:17 autrijus k
20:17 chromatic I don't know what the difference is between a class and a package; I don't know if there should or shouldn't be one.
20:17 autrijus and I'll make envPackage actually update when you call across package scope
20:17 chromatic Oh, okay.  I'll add the tests then.
20:17 autrijus chromatic: hearing this from one of @Larry is alarming
20:19 chromatic It's a special array.
20:19 chromatic As the index increases, comprehension decreases.
20:19 chromatic What's steeper than the inverse square?
20:19 autrijus threshold
20:20 autrijus ;)
20:20 Corion autrijus: I have rawSystem() die on me with something that is not an ExitCode but something else. How do I trap exceptions in Haskell?
20:20 autrijus Corion: catch
20:21 autrijus Corion: see how tryIO is implemented
20:21 autrijus and grep for catch
20:21 chromatic Hm, undeclared variable $?PACKAGE, but I can't find any declaration of $?CLASS in the parser.
20:21 Corion (I tried to make tryIO work, but it didn't)
20:21 Corion autrijus: Should tryIO work for me in that case? Or should I adapt tryIO to my needs?
20:21 * Corion hunts tryIO
20:21 autrijus chromatic: just commit the code you have first? :)
20:21 autrijus (so I get to look at it)
20:21 autrijus Corion: catch it yourself I think
20:22 autrijus Corion: fallbcak to #haskell if you must :)
20:23 chromatic #3465
20:23 * autrijus discovers p6explain
20:24 autrijus pugs> class Foo { method bar { say $?CLASS } }; Foo.new.bar;
20:24 autrijus Foo
20:24 autrijus as of r3465.
20:24 svnbot6 r3464, autrijus++ | * make envPackage actually update when entering a closure
20:24 svnbot6 r3464, autrijus++ |   defined in another package.
20:24 svnbot6 r3465, chromatic++ | First stab at making $?CLASS and $?PACKAGE work.  It compiles anyway.
20:24 autrijus chromatic++
20:24 autrijus "it compiles! it must work!"
20:24 chromatic It's Haskell.  That's a good metric.
20:25 theorbtwo We have the option to warn when the impossible might happen turned off.
20:25 autrijus theorbtwo: you mean -Wall?
20:25 autrijus but GHC alone can make the impossible happen.
20:25 autrijus "easy things are hard, hard things are trivial, impossible things just happen"
20:26 chromatic "... once you stop seeing type mismatch errors."
20:29 theorbtwo -fwarn-incomplete-patterns
20:29 theorbtwo (OK, not turned off, but not turned on.)
20:33 chromatic Hmm, VCode has subEnv which carries the subroutine's package name, doesn't it?
20:33 autrijus yes.
20:33 autrijus chromatic: r3464 does that
20:34 autrijus (have you synced up to r3464?)
20:34 chromatic Uhh, I might be at 3463.
20:34 autrijus please svn up and it will magically work.
20:34 PerlJam magic++
20:35 chromatic What's maybe?
20:35 svnbot6 r3466, autrijus++ | * bikeshed: align die() and warn() with perl5.
20:35 autrijus chromatic: ask ghci :)
20:35 autrijus make ghci
20:35 autrijus or just "ghci"
20:35 autrijus maybe :: b -> (a -> b) -> Maybe a -> b
20:35 autrijus :t maybe
20:35 autrijus maybe :: b -> (a -> b) -> Maybe a -> b
20:36 autrijus (the ":t" is how to ask ghci about a function)
20:36 autrijus maybe takes three args
20:36 autrijus a default case to use when the candidate Nothing
20:36 autrijus a transformer to use if the candidate is Just a
20:36 autrijus the candidate
20:36 autrijus ...and returns the applicable case.
20:37 chromatic Does the last case recurse?
20:37 autrijus "maybe" does not recurse.
20:37 autrijus if you want recursion, try "until"
20:38 chromatic Oh, I was reading it wrong.
20:39 chromatic Hm, now why does $?CLASS fail?
20:39 chromatic Aside from the fact that it probably shouldn't be a string.
20:39 autrijus pugs> class Foo { method bar { say $?CLASS } } Foo.new.bar
20:39 autrijus Foo
20:39 autrijus is that not correct?
20:39 autrijus (did you recompile?)
20:40 autrijus chromatic: ok, I'll have it yield a Type object.
20:41 chromatic I *think* that's right.
20:41 autrijus pugs>  class Foo { method bar { say $?CLASS.ref } } Foo.new.bar
20:41 autrijus Type
20:45 chromatic Can't find anything in AES about it though.
20:51 elmex has joined #perl6
20:51 svnbot6 r3467, autrijus++ | * $?CLASS is now a type.
20:51 svnbot6 r3468, iblech++ | * Added a test testing method references (t/oo/methods/ref.t).
20:51 svnbot6 r3468, iblech++ | * Added the usual svn properties to ninereasons++ t/pugsbugs/unhashify.t.
20:51 elmex has quit IRC (Client Quit)
20:53 elmex has joined #perl6
20:53 elmex has quit IRC (Client Quit)
20:54 Odin_ has quit IRC (Read error: 104 (Connection reset by peer))
20:54 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
20:54 Odin_ has joined #perl6
20:54 elmex has joined #perl6
20:54 Odin- has joined #perl6
20:57 autrijus g'nite!
20:57 * autrijus waves &
20:57 webmind nite
20:58 ramzi has joined #perl6
20:59 putter 'night
21:02 svnbot6 r3469, iblech++ | * Fixed t/oo/magical_vars.t.
21:02 svnbot6 r3469, iblech++ | * Made $?CLASS a Typoe object, too.
21:02 svnbot6 r3469, iblech++ | * Added $?ROLE to Eval.hs (same as $?CLASS currently).
21:02 svnbot6 r3470, iblech++ | Fixed [**] test.
21:04 iblech has quit IRC ("sleep &")
21:07 coet has joined #perl6
21:08 chromatic has quit IRC ("lunch")
21:11 ingy hola
21:13 brentdax ?que tal?
21:17 putter hey ingy.
21:18 ingy hi putter
21:20 mugwump ingy!
21:20 * mugwump runs over and hugs ingy
21:23 ingy hi mugwump
21:24 mj has quit IRC (Read error: 104 (Connection reset by peer))
21:25 stevan hey mugwump, check out Perl::Meta::Compiler
21:25 stevan it constructs and evals perl6 objects now
21:26 Juerd autrijus: How does the prefix ? operator in your journal's example not clash with Bool context ??
21:27 stevan Juerd: which one?
21:28 wolverian Typoe object :) (re: r3469)
21:28 Corion has quit IRC ("Chatzilla 0.9.68a [Firefox 1.0.4/20050511]")
21:28 stevan Juerd: I dont see ? defined in the journal, maybe the char is not displaying properly for you?
21:29 putter Juerd: fyi, autrijus bid goodnight 1/2 hr ago.
21:29 wolverian same here.
21:29 stevan hey putter, want to talk Perl::Meta::Type? I have given up on $work for the day :)
21:31 ninereasons iblech, what is the procedure for adding those "usual svn properties" ?
21:31 Juerd stevan: "?"
21:32 Juerd stevan: Hm, has to be then :)
21:32 stevan Juerd: what sentence is it in?
21:32 Juerd Hm, yes, it's a non-ascii char :)
21:32 Juerd stevan: It's an example of user defined operators, in a verbatim block.
21:33 wolverian I see infix:<Z>
21:34 wolverian (I mean, it looks like Z. in the newest journal.)
21:34 ninereasons the zorro operator
21:34 wolverian haha.
21:40 ihb has quit IRC (Read error: 104 (Connection reset by peer))
21:43 putter stevan: sure, though
21:43 iblech has joined #perl6
21:44 iblech ninereasons: (couldn't sleep...) it's:
21:44 putter I'm not sure I know much more than I did earlier today.  pursuing individual questions was too inefficient, so I started a "big sweep"... in progress.
21:44 iblech svn propset svn:eol-style "native" foo and
21:44 iblech svn propset svn:mime-type "text/plain; charset=UTF-8" foo
21:45 stevan putter: bug sweep of ?
21:45 stevan Juerd: ping (a perl6 question if you have a moment)
21:45 putter AES, p6l postings, etc.
21:45 stevan putter: s/bug/big/
21:46 stevan putter: ok
21:46 ninereasons got it iblech  thank you.
21:46 putter Faster than pursuing stuff like "so, you define a subtype ST where { defined }.  my ST @array.  what is @array[0]?" ;)
21:46 Juerd stevan: pong
21:47 stevan Juerd: I am trying to make this code:
21:47 stevan pugs -e 'sub i ($f, *@args) { $f(*@args) }; i(sub ($a, $b) { say "a: $a\nb: $b"}, 1, 2, 3)'
21:47 stevan print a: 1 b: 2
21:47 stevan basically take flattened args,.. and then flatten them as I pass then to $f
21:47 Odin_ is now known as Odin-LAP
21:47 stevan so that $f's params work
21:47 Juerd Shouldn't that work as it is?
21:47 stevan is that possible?
21:48 stevan Juerd: that is what I thought :)
21:48 stevan it doesnt
21:48 Juerd I think that's a bug then.
21:48 stevan :)
21:48 stevan cool
21:48 stevan I will make a test
21:48 Odin- has quit IRC (Read error: 104 (Connection reset by peer))
21:48 Odin-LAP has quit IRC (Read error: 104 (Connection reset by peer))
21:49 Odin- has joined #perl6
21:49 Odin-LAP has joined #perl6
21:51 Odin-LAP has quit IRC (Client Quit)
21:53 simcop2387 has quit IRC (Read error: 110 (Connection timed out))
21:53 simcop2387-vnc has quit IRC (Read error: 110 (Connection timed out))
22:02 putter stevan: any idea?: "A role applied with C<does> may be parameterized with an initializer in parentheses, but only if the role supplies exactly one attribute to the mixin class:"
22:02 svnbot6 r3471, Stevan++ | Splaty args dont seem to work well, which makes the method compiler trickier; this tests the error, i will work on a workaround for now
22:03 stevan putter: I have to read more about role paramters
22:03 stevan I dont remember much of their details
22:03 stevan I assume too that any discussions we have will result in many p6l emails
22:04 putter ok.  thanks.  it seemed sufficiently bizarre to be worth ask about, rather than just adding to the pile for later.
22:05 cognominal can someone explain  the beginning of limbic_region journal?
22:05 stevan putter: I will re-read S12 now actually, I need to really look over it in more detail than I have previously
22:05 cognominal why adding a semicolon at the end of a block makes a difference?
22:07 iblech cognominal: Because then it's surely a Code, and not a Hash
22:07 iblech cognominal: { a => 42 } is a Hash
22:07 iblech cognominal: But { a => 42; } or { ; a => 42 } or -> { a => 42 } is a Code
22:08 cognominal oki.
22:08 cognominal that will surprise many people
22:08 putter k
22:10 Khisanth perl needs some other brackets for hashes and code blocks :/
22:30 * mugwump finishes catching up on the day's backlog, very interesting
22:30 svnbot6 r3472, Stevan++ | Perl::MetaModel - comming minor changes
22:30 svnbot6 r3473, autrijus++ | * associativity-preserving reduction over left, right
22:30 svnbot6 r3473, autrijus++ |   and chain infix operators.
22:30 svnbot6 r3474, autrijus++ | * allow addressing &infix:<**> by name.
22:30 svnbot6 r3475, autrijus++ | * "left" == "pre" in reduce
22:30 svnbot6 r3476, autrijus++ | * correctly implement chained ops like [>].
22:30 iblech YAY!
22:31 iblech autrijus++
22:31 iblech autrijus++
22:31 iblech autrijus++
22:31 Khisanth either the bot has a long delay or autrijus is coding in his sleep :)
22:31 iblech The bot has only a marginal delay, so he *is* coding in his sleep :)
22:31 mugwump must ... finish ... committing ... before ... daybreak..
22:32 iblech :D
22:32 elmex ...
22:32 Khisanth iblech: that explains his productiveness
22:32 elmex mygirlfriend++
22:38 vcv-- has quit IRC (Read error: 145 (Connection timed out))
22:39 svnbot6 r3477, autrijus++ | * &reduce always reduce from left to right, unlike [..].
22:39 svnbot6 r3478, autrijus++ | * [...] now evaluates its arguments in slurpy context.
22:56 svnbot6 r3479, iblech++ | unTODOed the now suceeding tests of reduce.t, $autrijus++ for 1..Inf!
23:00 putter stevan: how goes?
23:04 putter mugwump: ping?
23:04 svnbot6 r3480, ingy++ | Perl 6 pragma for Perl 5
23:04 mugwump hey
23:05 putter btw, I added, lets see, what was it... paramValueType and paramImplType to Perl::Param.   A toe-in-the-water effort.  Any feedback welcome.
23:06 mugwump Did those symbols come from the Haskell source?
23:06 mugwump or did you just think they were needed :)
23:06 putter later.  S mumble was rather explicit.
23:06 HobNob has quit IRC (Read error: 110 (Connection timed out))
23:06 putter s/later/latter/
23:07 putter not the right thing?
23:08 osfameron has joined #perl6
23:08 mugwump the idea was that those classes are what you would get out of introspecting the Haskell source
23:10 mugwump does that make sense?
23:10 putter ah.  not right thing then.
23:10 putter should have been in meta somewhere.
23:11 mugwump You are doing the right thing, but the names should be taken from the Haskell source where possible
23:12 putter ah, ok.  (adding note to README...)
23:12 mugwump pugs is a prototype!  so let's build the prototype Perl 6 Perl 6 compiler from the prototype Haskell Perl 6 compiler :)
23:13 mugwump Hopefully at some point there will be enough code there that a massive arc of energy joins the Perl 6 and Haskell code bases together
23:13 putter ;)
23:13 * mugwump bzzzts
23:14 putter just Haskell?  <putter looks dejected>  I have grammars and sometimes runtimes for C, C++, Scheme, ... .  Let's have a nuclear barbeque.
23:15 osfameron and javascript?
23:16 mugwump yes of course... because those languages fit somewhere in between the mathematical purity of Haskell and the irreverant linguistic chaos of Perl.  They will be electrolysed in the process.
23:17 * putter suddenly has images of electroshocking bacteria to get them to swap code.
23:19 putter pugs/p6/parrot/whatever as linguistic membrane perforator...
23:20 putter mugwump: nice metaphor.
23:21 putter just how does one metamodel "A given enum value can function as a subtype, a method, or as an ordinary value (an argumentless sub)."? >O
23:22 mugwump That's a good question
23:24 mugwump that comment is from AST/Internals.hs?
23:26 mugwump You see, usually when I've been working with metamodels, they have been fairly simple.  Like, in T2 there are only four metaclasses - Class, Attribute, Method and Association
23:26 putter S12
23:26 mugwump oh
23:26 wolverian T2?
23:26 mugwump anyway, I had a hunch while starting on this that the metamodel that can describe itself to the language level needs the typing stuff there too
23:26 svnbot6 r3481, putter++ | Removed some inappropriate attributes from Param.pm.  Added clarifying note to README.
23:27 putter makes sense.
23:28 kelan does map take adverbial blocks like grep? ie: %hash = map:{ $_ => $_ } @array
23:28 * putter is a member of the church of Everything Should Be First Class.
23:28 mugwump so the fact that putting the metamodel into Perl 6 seems to be pulling the whole Pugs code base with it doesn't surprise me overly :)
23:28 putter :)
23:29 mugwump kelan: yes, that's right.  But you look like you want a Set with that idiom :)
23:29 kelan that was just an example from limbic region's journal
23:29 kelan he gave two other ways to write it, but left that way out
23:30 kelan just making sure he didn't leave it out on purpose and i was missing something
23:32 * knewt worries about crossing the streams
23:32 knewt *g*
23:34 putter kelan: I don't actually see a test case for  map:{...} @array  .   Care to create one? :)
23:35 kelan ive been thinking about asking for committer. how does it work with darcs? or can you only read with darcs and must use subversion for read+write?
23:35 kelan or does darcs push work?
23:40 iblech has quit IRC ("sleep &")
23:40 putter re, darcs, I'm unsure, but I believe it is ro.
23:42 putter re committer, we're in the middle of the ~4hr daily lull on #perl6.  elsewhen, there are folks with committer committing bits...
23:43 putter re  map:{ $_ => $_ } @array  ...  hmm.  are you sure mugwump?  can adverbs be in the middle of an argument list?
23:43 kelan does no one who works on pugs live in the eastern time zone? its always weird hours in here
23:44 mugwump @array.map:{ $_ => $_ } would be how I'd write it
23:44 kelan ah, maybe thats what im thinking of
23:44 * mugwump is in +12:00
23:44 mugwump So it's Friday!  :D
23:45 kelan heh
23:45 kelan must be nice
23:46 putter so to sum up,  map:{ $_ => $_ } @array  is not valid.  @array.map:{ $_ => $_ }  or map { $_ => $_ ;}, @array
23:48 kelan well if it can't be in the middle, how about: %hash = map @array :{ $_ => $_ };
23:48 revdiablo seen Limbic_Region
23:48 kelan pretty weird lookin
23:48 revdiablo hmm, what bot is that?
23:48 kelan !seen kelan
23:48 kelan shrug
23:48 mugwump seen jabber?
23:48 mugwump doh!
23:48 mugwump jabbot, I mean :)
23:49 revdiablo [2005-05-18 04:18:52] * jabbot [gugod@irc.csie.ntu.edu.tw] has quit [Remote closed the connection]
23:49 revdiablo doh
23:49 putter speaking of timezone...
23:51 putter stevan: perhaps compare notes tomorrow?
23:51 putter 'night folks.
23:51 svnbot6 r3482, autrijus++ | * support I/O in Inline::Pugs.
23:51 putter has quit IRC ("Leaving")
23:57 stevan kelan: I am EST :)
23:57 kelan yay!
23:57 kelan well
23:57 kelan edt?
23:58 stevan edt?
23:58 stevan I am in eastern US
23:58 kelan its day-light savings time right now
23:58 kelan but there are parts of indiana that don't observe it i believe
23:58 stevan oh, I dont pay attention to that stuff :)
23:58 kelan hah
23:58 stevan kelan: where are you?
23:58 kelan nc
23:59 stevan mugwump: ping

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

Perl 6 | Reference Documentation | Rakudo