Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2005-06-15

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:01 mrborisguy has joined #perl6
00:01 wolverian nothingmuch: right. thanks.
00:01 wolverian ("its")
00:03 osfameron has joined #perl6
00:05 ImustDIE has joined #perl6
00:05 rafl_ has quit IRC (brown.freenode.net irc.freenode.net)
00:07 rafl_ has joined #perl6
00:09 spinclad has quit IRC (brown.freenode.net irc.freenode.net)
00:09 knewt has quit IRC (brown.freenode.net irc.freenode.net)
00:09 arcady has quit IRC (brown.freenode.net irc.freenode.net)
00:09 Qiang has quit IRC (brown.freenode.net irc.freenode.net)
00:09 integral has quit IRC (brown.freenode.net irc.freenode.net)
00:13 Qiang has joined #perl6
00:14 knewt has joined #perl6
00:14 arcady has joined #perl6
00:19 integral1 has joined #perl6
00:20 spinclad has joined #perl6
00:20 integral has joined #perl6
00:20 integral has quit IRC (Remote closed the connection)
00:21 Enveigler has quit IRC (Read error: 110 (Connection timed out))
00:24 dkf has quit IRC ()
00:29 dkf has joined #perl6
00:34 justatheory has joined #perl6
00:49 mrborisguy opinion question for you guys...
00:49 mrborisguy I'm thinking about learning Haskell
00:49 mrborisguy but not really to do anything with it, I just think it'd be good to take a step into the functional languages to learn what it's about
00:50 mrborisguy would you say learning Haskell will improve my programming skills/logical skills when it comes to programming?
00:51 mrborisguy (I ask here, 'cause obviously nearly everybody here is still doing perl, but I know quite a few of you know quite abit about Haskell too)
00:52 mugwump so, of course
00:52 mugwump s/so,//
00:52 PerlJam mrborisguy: yes.
00:52 PerlJam mrborisguy: What languages do you know?
00:53 Darren_Duncan large LKT design-based update committed, corres to large p5 update, ... which among other things should simplify getting it working in Perl 6
00:53 Darren_Duncan mainly in that regard, the test suite is more focused on cases that should succeed, rather than fail
00:54 mrborisguy PerlJam: starting in order of learning: QBasic, C, Java, perl5, a bit of perl6 (and probably a few others scattered in there, like a step into php and python)
00:54 svnbot6 r4657, Darren_Duncan++ | large Locale-KeyedText update that corresponds to an in-progress Perl 5 version large update : removed superfluous input filters on Msg/Trn.new() so that you can now set each property element to any defined value ; added input constraint that each Trn property must have at least 1 element; updated POD to reflect the change ; removed and added a lot of MsgProp and TrnProp tests so they focus mainly on success cases rather than failure
00:56 PerlJam mrborisguy: If you're just trying to broaden your knowledge base, I'd suggest picking up a little lisp/scheme too and maybe some prolog.   And if you do haskell after lisp/scheme you'll have a tremendous sense of joy at what you have discovered.  :)
00:56 PerlJam Well, you may have that anyway, but you'll be happier that haskell is *not* lisp/scheme  :-)
00:56 mrborisguy haha, okay
00:56 osfameron has quit IRC (Read error: 148 (No route to host))
00:57 mrborisguy but those would be the best to start off with?
00:57 mugwump elisp
00:57 * mugwump hides
00:57 vcv- has quit IRC (Read error: 145 (Connection timed out))
01:02 PerlJam mrborisguy: lisp/scheem teaches you about functional programming and pain.  Prolog teaches you about declarative programming and pain.    :-)
01:04 PerlJam mrborisguy: oh, and play with bc or postscript too  (I found postscript kind of fun but some people don't quite think of it that way)
01:05 mrborisguy PerlJam: how much time do you think I have on my hands!  ;)
01:05 PerlJam mrborisguy: a whole lifetime
01:06 mrborisguy PerlJam: ah... good point
01:07 PerlJam Also, playing with these other languages and learning to think about things differently will help you better understand and use perl (especially perl6)
01:07 PerlJam Do you have a copy of HOP?   That's a good intro to FP via perl.
01:07 mrborisguy High Order Perl?  no, I don't
01:08 mrborisguy I hear alot of people mention it, I'm guessing it's a good read then?
01:09 PerlJam you could wait for MJD to make it available on his website (or even volunteer to help him make it available on his website)
01:10 PerlJam yes, it's a good book  (modulo the errata)
01:12 rjbs It's great.
01:12 mugwump mrborisguy: one interesting idea might be to learn OCaml and work through Types and Programming Languages
01:13 mugwump as all the examples in that book are in OCaml
01:13 mrborisguy does he plan putting it on the website soon, do you know?
01:14 mrborisguy I'm a bit strapped for cash, and the last couple of times I was in Barnes and Noble, i don't think it was there, otherwise I would have paged through it!
01:14 mugwump I heard mutterings about a PDF being around for it
01:14 mugwump But that might not be entirely endorsed/legitimate
01:17 mugwump Just an idea, anyway.  Getting a book that covers various FP topics, and learning whatever language the book uses.
01:20 Khisanth meh actually tried two B&N :/
01:21 PerlJam I seem to recall the MJD needed help converting the source documents into something more webable.
01:22 meppl gute nacht  -  good night
01:23 PerlJam Ah yes ... http://hop.perl.plover.com/announce/20  
01:24 PerlJam So send mjd a note that you'd like to help and you may get a pre-release version of what goes on the web.  :
01:24 PerlJam :-) even
01:24 Odin-LAP PostScript 'fun'?
01:24 Odin-LAP Hm.
01:25 Odin-LAP That's counter to almost every other description I've heard of it. :)
01:26 Khisanth PerlJam ~~ Masochist :)
01:28 dkf has quit IRC ()
01:28 geoffb I've known several people that enjoyed hand-coding PostScript, including a DJ who designed all his tape and CD covers in raw PS.
01:28 geoffb And yes, he was a freak.  :-)
01:29 arcady I even know someone who wrote a postscript "virus"
01:30 PerlJam arcady: have you seen the postscript web server?
01:30 geoffb At least one friend used to have a ball upping the ante in display wars when running on NeXT boxen -- he would melt their displays along nice curves.  :-)
01:30 Odin-LAP Doesn't there exist a post ... nevermind.
01:30 Odin-LAP PerlJam: Do you have a link? :>
01:31 PerlJam unfortunately no, but I'm sure google does :)
01:31 Odin-LAP True, but I'm lazy. ;)
01:31 PerlJam Since there's no socket code in postscript it obviously has to run via inetd
01:31 Odin-LAP Aren't there network extensions?
01:32 Odin-LAP I'm sure I heard of a server which ran on printers... :p
01:32 nnunley has quit IRC (Read error: 113 (No route to host))
01:33 Odin-LAP Hmm.
01:34 PerlJam anyway, postscript is fun to code.  Not so much by hand but it's really easy to write a compiler that outputs postscript :-)
01:35 Odin-LAP Ahhhh.
01:35 Odin-LAP That's your argument, then. :p
01:36 PerlJam Well, it's fun but tedious to code by hand.   The tediousness kinda saps the fun.
01:36 dkf has joined #perl6
01:37 Odin-LAP Any pointers as to how to learn it? :p
01:37 * Odin-LAP has actually taken a look, once or twice.
01:37 meppl has quit IRC (Remote closed the connection)
01:38 PerlJam Odin-LAP: there are several full books on it available for free (in PDF format no less :)
01:39 Odin-LAP Hmm.
01:39 PerlJam Thinking In Postscript is probably a good start
01:40 PerlJam Also, I believe Adobe has made the complete reference manual available for free too
01:40 PerlJam (It's been a while since I've played with postscript obviously)
01:41 Odin-LAP :)
01:42 Odin-LAP There's quite a bit of stuff from Adobe, actually.
01:42 PerlJam Yep ... http://partners.adobe.com/public/developer/en/ps/psrefman.pdf
01:42 Odin-LAP It's just not very useful to learn from. :p
01:45 PerlJam Try "Thinking In Postscript"
01:45 Odin-LAP Yeah, will do. :)
01:46 PerlJam anyway ... time for me to go hang out with my kids a little bit :)
01:46 PerlJam btw, did I mention here that my wife is pregnant again?
01:47 PerlJam Found out yesterday that it's not just a third child we've having, but a third *and* a fourth.
01:47 Odin-LAP What fun.
01:47 PerlJam we'll see.  Hopefully the twins turn out like their older siblings
01:47 PerlJam anyway, gotta go.
01:47 PerlJam g'night all
01:47 * PerlJam &
02:05 eric256 has joined #perl6
02:05 vcv has quit IRC (Read error: 54 (Connection reset by peer))
02:09 crysta1 has joined #perl6
02:13 osfameron has joined #perl6
02:23 dkf has quit IRC ()
02:27 mrborisguy has quit IRC ()
02:34 vcv has joined #perl6
02:34 scook0 has joined #perl6
02:53 osfameron has quit IRC (Read error: 113 (No route to host))
02:58 ijoyce has joined #perl6
02:59 dkf has joined #perl6
02:59 SamB has quit IRC (Read error: 60 (Operation timed out))
03:02 vcv has quit IRC (Read error: 145 (Connection timed out))
03:10 rafl_ has quit IRC (Read error: 54 (Connection reset by peer))
03:10 rafl has joined #perl6
03:11 SamB has joined #perl6
03:12 sapper has joined #perl6
03:16 dkf has quit IRC ()
03:21 dkf has joined #perl6
03:45 crysta1 has quit IRC ("leaving")
03:47 vcv has joined #perl6
03:47 Boogie__ has joined #perl6
03:47 Boogie__ is now known as Boogie
03:48 geoffb I'm just starting to read the core Haskell source for Pugs . . . and I came across the following in Prim.hs:
03:48 geoffb op2 "~~" = op2Match
03:48 geoffb op2 "!~" = op2Cmp vCastStr (/=)
03:49 geoffb That seems very wrong to me.  Shouldn't !~ just be the opposite of ~~ ?
03:51 arcady I think so
03:52 scook0 try to come up with a simple test case to check
03:52 arcady ne is string inequality
03:53 gaal good catch - it can't be *just* the opposite though, because ~~ returns an "interesting" value.
03:54 gaal so i'd expect you need something like  (not . VBool) op2Match
03:54 arcady yeah, that's what I was going to say
03:54 arcady had I known haskell syntax
03:54 gaal er, no; s/VBool/the thing that casts to vbool/
03:54 gaal :-p
03:55 gaal good morning, btw :)
03:55 geoffb good morning, gaal!
03:56 Boogie_ has quit IRC (Read error: 60 (Operation timed out))
03:56 gaal try vCast
03:57 geoffb as above "I'm just starting to read the core Haskell source for Pugs . . ." -- it'll be a bit before I go hacking
03:57 geoffb :-)
03:58 gaal oh, i seem to recall that !~ is not an oversight, it was added so that certain tests can parse
03:58 gaal before there was a full ~~
03:59 QtPlatypus BTW is there an introspective thing that gives you a list of methods that an object supports?
03:59 gaal (~~ was once just a test for equality)
03:59 arcady maybe a "methods" method
03:59 gaal Qt, not yet, and even when we have introspection, that's impossible to fully do in a language that has AUTOLOAD :)
04:00 * QtPlatypus nods "I'm aware of the AUTOLOAD limitation"
04:01 gaal i think there's some symtable stuff already? in a pinch, you can ref the object, and grep { Code } its class' symtable
04:01 gaal then walk its @INC etc
04:01 mugwump that will be at $object.ref.meta.methods
04:02 mugwump eventually :)
04:02 arcady that looks kind of icky
04:02 mugwump you can judge your age by the amount of pain you feel when coming across a new idea
04:03 mugwump It works like this.  $object.ref returns the type of the object
04:03 arcady $object.meta.getmethods is mentioned in S12
04:04 mugwump ah, you're right
04:05 wolverian I wonder why it has 'get' in the name
04:05 mugwump with that awful .dispatcher
04:05 arcady $object.ref.meta.methods would give you the methods of the metaclass
04:05 arcady the ones that you can call on the class object
04:06 mugwump so if $object is a MyClass, then $obj.ref =:= ::MyClass
04:06 arcady and if $object is some anonymous type, then $obj.ref is the only way you can actually get at its class object
04:11 mugwump you might want to look at ext/Perl-MetaModel/docs/perl6_meta_model.pod
04:12 mugwump I am expecting to get the .dispatcher anomaly addressed eventually.  .ref() is all you need
04:12 mugwump .ref() returns a type, which is a dispatcher - something like a package in P5 land
04:12 mugwump it might not be a class at all
04:13 mugwump .meta() can be called on that object and returns the Class (or whatever) object that is the "master" for this class
04:13 mugwump s/class$/type/
04:16 geoffb Augh, finally:
04:16 geoffb pugs> not(0 !~ rx:Perl5/0/)
04:16 geoffb bool::false
04:16 geoffb pugs> not(0 ~~ rx:Perl5/0/)
04:16 geoffb bool::false
04:16 mugwump the proxy methods, like $object.meta, ::($foo).getmethods, etc are shortcuts which bely the structure of the metamodel, so I don't like using them :)
04:17 geoffb It turns out things tend to stringify in such a way that it takes a little effort to find a case where string match doesn't give the same answer as smart match
04:19 elmex has joined #perl6
04:20 arcady come to think of it, $foo.ref.methods makes sense
04:21 arcady it all depends on where you want to think the methods live
04:21 Steve_p_ has joined #perl6
04:22 Steve_p has quit IRC (Remote closed the connection)
04:22 mugwump yes, .ref.meta.methods might reasonably only return the methods defined in that class
04:22 elmex_ has joined #perl6
04:22 mugwump .ref.methods would probably return everything that the .ref.can()
04:22 elmex_ has quit IRC (Client Quit)
04:24 dkf has quit IRC ()
04:24 elmex_ has joined #perl6
04:25 elmex_ has quit IRC (Client Quit)
04:29 elmex has quit IRC (Read error: 60 (Operation timed out))
04:29 svnbot6 r4658, geoffb++ | Test for bug: !~ is treated as string ne
04:33 * geoffb absentmindedly does 'make un<tab>' in his shell and gets a list of matching make targets
04:33 geoffb oooooh, shiny
04:34 justatheory has quit IRC ()
04:34 vcv- has joined #perl6
04:42 ijoyce has quit IRC ("Leaving")
04:43 wolverian geoffb: what shell is that?
04:43 geoffb bash
04:43 wolverian what do I have to do to get that feature? :)
04:43 geoffb I'm guessing "enable bash_completion"
04:44 geoffb What distro are you running?
04:44 wolverian ubuntu and debian
04:45 mugwump oh yeah, that annoying feature
04:45 geoffb Assuming ubuntu shares Debian's bash config (one would hope), then give me a sec and I'll look it up
04:45 wolverian thanks!
04:45 wolverian mugwump: why is it annoying?
04:46 mugwump the one that always makes me think directories are empty when I can't tab complete the files in it, then realise that it's because of the `cd' at the beginning of the line
04:46 wolverian does 'cd'ing to a file make any sense? :)
04:47 geoffb wolverian, uncomment the 3-line bash_completion block in either /etc/bash.bashrc or ~/.bashrc
04:47 mugwump It's just the way I've grown used to the shell tbh.  I'm sure if it had always behaved like that for me, it would be nice
04:47 wolverian geoffb: oh, that's easy. thanks!
04:47 wolverian mugwump: right. oh well.
04:47 geoffb wolverian, it doesn't, which is why the behavior is technically correct, but I've been annoyed by that just like mugwump.  Some kind of out-of-band notice that the tab completion is being artificially limited would be nice
04:48 wolverian hmm. it doesn't work.
04:48 wolverian it works for 'ssh' though.
04:48 geoffb mugwump: you could always tune bash_completion to not do that for cd . . . .
04:48 wolverian I guess I'm missing the 'make' thing for the completion
04:48 geoffb wolverian, did you source your .bashrc?
04:48 wolverian yes
04:48 wolverian as I said, 'ssh <tab>' works
04:49 wolverian (shows remembered hosts)
04:49 mugwump sure, I could.  Just like I could set a VIM option to turn off auto-indent.  But what happens when I paste some code in there and VIM f*cks it up?  I quit and start nvi :)
04:49 geoffb (I was behind in my responses)
04:49 wolverian mugwump: :paste
04:49 geoffb mugwump, chuckle
04:51 wolverian nice, perl -l<tab>
04:51 wolverian er, perl -<tab>
04:52 geoffb Heh, interesting
04:53 mugwump you could make it search through your command history for one liners when you:
04:53 mugwump perl -e '<tab>
04:54 geoffb Ouch: disk grinds when you do perl -M<tab> -- It seems to search for all available modules!
04:54 geoffb Yep, very interesting.  perl -MTe<tab> gets me a nice chunk of Test:: and Text:: modules
05:09 geoffb Interesting . . . if (...) { ... } else { ... } parses faster than ... ?? ... :: ...
05:10 mugwump backtracking
05:11 geoffb The question is, what about the if form reduces backtracking . . . or conversely, what about ternary op increases it?
05:13 geoffb Could someone who knows makefiles please make Pugs stop spuriously building on 'make install' when it is unchanged?
05:14 geoffb link_time_frustration++
05:14 geoffb Or, since I guess that is interpreted as karma:
05:15 geoffb link_time_frustration--
05:15 geoffb link_time_frustration--
05:18 vcv- has quit IRC (Read error: 145 (Connection timed out))
05:21 QtPlatypus Seems with the PGE and rules its quite easy to create rules that suck up all the memory and Bus error.
05:22 SM_ax has joined #perl6
05:35 lumi_ has joined #perl6
05:40 _jql has joined #perl6
05:41 jql has quit IRC ("konversation")
05:41 _jql is now known as jql
05:43 tcliou has quit IRC (Read error: 145 (Connection timed out))
05:50 geoffb I've managed to pull about 13% out of the parse time of Test.pm in my local tree, but it's been like pulling teeth the whole way
05:50 rjbs_ has joined #perl6
05:50 rjbs has quit IRC (Read error: 104 (Connection reset by peer))
05:51 mugwump nice
05:51 jql has quit IRC (Read error: 104 (Connection reset by peer))
05:51 mugwump by changing the source?
05:51 mugwump or hacking Parser.hs et al?
05:53 geoffb so far, by doing transforms of the source
05:54 jql has joined #perl6
05:57 geoffb I have a feeling that to get much more, I may have to understand Parser.hs even to know what Test.pm source transforms will help
05:58 geoffb Of course, there's the nifty fact that about half of the test scripts use nothing other than plan, ok, and is . . . so a Test::Minimal or suchlike would have a huge impact on make test time
05:59 mugwump Sounds like a job for an autoloader!  :-D
06:03 Aankhen`` has joined #perl6
06:04 geoffb If only . . .
06:05 geoffb If I knew how to autoload w/ "is export", I'd do that
06:05 Shachaf has quit IRC (Remote closed the connection)
06:08 pasteling "geoffb" at 69.110.115.185 pasted "Cumulative count of test files using various Test.pm functions" (20 lines, 691B) at http://sial.org/pbot/11074
06:09 sdtr443w has joined #perl6
06:09 sdtr443w How would I define an array of hashes and/or vice versa in Perl 6?
06:09 sdtr443w Or rather, declare?
06:09 mugwump my Array %HoA
06:09 geoffb As mentioned above, with just 3 functions, Test::Minimal would have 50% test file coverage; with half of Test.pm's functions, it would have met the 80/20 rule
06:09 mugwump my Hash @AoH
06:10 wolverian or my @AoH is Array of Hash;
06:11 geoffb It's somewhat silly that Test.pm includes functions that never get used at all, and we have to pay the parse cost for them over and over (removing those is *not* included in the 13% figure above)
06:11 sdtr443w in Pugs I just tried "my @array_of_hashes is Array of Hash;" and it didn't seem to work
06:12 geoffb well, it's getting late here.
06:12 mugwump sdtr443w: for now you can use my Hash @array_of_hashes
06:12 geoffb Time to trundle off to bed, I think
06:13 wolverian geoffb: can't we precompile Test.pm?
06:13 nothingmuch morning
06:13 * wolverian has no idea about the compiling features pugs currently has
06:13 sdtr443w mugwump: What then, of an array of hashes of arrays?
06:14 wolverian my Hash of Array @AoHoA
06:14 mugwump which is also currently parsefail ;)
06:14 geoffb wolverian, that *might* be possible . . . but I don't recall pugs being able to compile just one module and use that, as opposed to an entire script
06:14 wolverian geoffb: right.
06:15 wolverian just a thought. :)
06:15 sdtr443w Hmm yeah Pugs wasn't reaching a say statement right after "Hash @array_of_hashes;" either so I'm thinking it's not enjoying that.
06:15 Aankhen`` sdtr443w >> The sigil determines the primary type if it's @ or %, and any type restrictions apply to the elements.
06:15 sdtr443w To be fair, I'm using 6.0.11 -- I think.
06:15 Aankhen`` ?eval my Hash @array_of_hashes;
06:15 wolverian wow. that is ancient.
06:15 evalbot6 undef
06:15 sdtr443w I tried building the new one and had some trouble with ghc coming up in interactive mode during the build
06:15 Aankhen`` ?eval my Hash @array_of_hashes; @array_of_hashes[0] = (foo => "bar", baz => "quux");
06:15 evalbot6 [('foo' => 'bar'), ('baz' => 'quux')]
06:15 wolverian sdtr443w: mail juerd for an account on feather.perl6.nl?
06:16 Aankhen`` ?eval my Hash @array_of_hashes; @array_of_hashes[0] = (foo => "bar", baz => "quux"); @array_of_hashes
06:16 evalbot6 [[('foo' => 'bar'), ('baz' => 'quux')]]
06:16 mugwump sdtr443w: you have ghc 6.4?
06:16 Aankhen`` ?eval my Hash @array_of_hashes; @array_of_hashes[0] = { foo => "bar", baz => "quux" }; @array_of_hashes
06:16 evalbot6 [{('baz' => 'quux'), ('foo' => 'bar')}]
06:16 * geoffb is really going now
06:16 geoffb sleeping &
06:16 wolverian ?eval my Hash @aoh; @aoh[0] = "hi"; # should fail?
06:16 evalbot6 \'hi'
06:17 sdtr443w mugwump: Yes, that's how I got this version of Pugs to build...
06:17 Aankhen`` Shouldn't that be: ({ 'baz' => "quux", 'foo' => "bar" })
06:17 wolverian Aankhen``: yes. pugs doesn't do typing very well yet
06:17 QtPlatypus I don't think it does typing at all..
06:17 wolverian exactly. :)
06:17 mugwump sure it does
06:17 Aankhen`` wolverian >> If what Larry said about "my Dog $spot is just a statement" still holds true, the line you tried shouldn't fail.
06:18 mugwump MMD is basically type-based method dispatch
06:18 QtPlatypus ?eval my Int $anint = "BooWhoo";$anint;
06:18 evalbot6 \'BooWhoo'
06:18 iblechbot has joined #perl6
06:19 SM_ax has quit IRC (Read error: 145 (Connection timed out))
06:19 Aankhen`` mugwump >> It handles the primary type of the variable fine, but if the variable is a container, it doesn't seem to be handling the types of its elements very well...
06:20 wolverian Aankhen``: the @aoh[0] = "hi" should fail, I think
06:20 Aankhen`` wolverian >> Depends on whether types are supposed to be enforced outside of signatures.
06:20 QtPlatypus And my example should fail as well.
06:20 Aankhen`` Although I guess what I quoted above is quite outdated.
06:21 QtPlatypus Aankhen``: Why declear then if you don't wish them to be enforced?
06:21 mugwump ?eval multi sub foo(Int $foo) { "int $foo" };multi sub foo(Str $foo) { "str $foo" }; "&foo(1), &foo('bar')"
06:21 sdtr443w Well ok presuming Pugs is having a little bit of trouble with AoHoA or anything like that, then how would I dereference that.  Could it be something like my $final_scalar = @AoHoA[1]{"I like cake"}[3];
06:21 evalbot6 'int 1, str bar'
06:21 wolverian Aankhen``: yes, they are. saying my Foo @bar is a statement that only Foo-type things can be put into @bar. I don't see a way for an Str to be coerced into a Hash :)
06:21 Aankhen`` wolverian >> OK. :-)
06:21 Aankhen`` QtPlatypus >> Dunno, read the relevant Apocalypse...
06:22 wolverian Synopses are the recommended reading now.
06:22 wolverian (they are actually updated.)
06:22 Aankhen`` I know.
06:22 wolverian (sometimes.)
06:22 Aankhen`` That's why I said my quote was outdated.
06:22 arcady I think the "my Dog $spot is just a statement" means that it doesn't actually make a new Dog
06:22 mugwump in theory my Hash $foo; $foo = "bar"; should be a *compile time* error
06:22 Aankhen`` RFC 218: my Dog $spot Is Just an Assertion
06:22 Aankhen`` I expect that a declaration of the form:
06:22 Aankhen``    my Dog $spot;
06:22 Aankhen`` is merely an assertion that you will not use $spot inconsistently with it being a Dog.
06:23 wolverian isn't that RFC about not instantiating an object immediately?
06:23 Aankhen`` Guess that's pretty old. :-)
06:23 wolverian mugwump: should $foo = bar; when bar is known and well typed be a compile time error, if bar is incompatible with $foo?
06:24 mugwump yes, the error should be detected as early as possible if types are declared
06:24 wolverian I'm just wondering how that can happen when the sub can be swapped out at runtime.
06:25 Aankhen`` It's ye old question of: "should it be an error, or should I grab something to eat?"
06:26 mugwump well, if you're going to change method signatures incompatibly at runtime, you deserve any problems you get :)
06:26 wolverian Aankhen``: I want to have the cake and eat it too!
06:26 wolverian er. or something like that.
06:26 mugwump In fact that's an interesting case.  In some cases it should be an exception to change the signature of a method that has already had that signature used to shortcut evaluation in any way
06:26 sdtr443w Ah well I have some more reading to do about regex and OOP.  This stuff is all very overwhelming.
06:26 sdtr443w has quit IRC ("Leaving")
06:27 Aankhen`` wolverian >> Sorry, we're all out of cake...
06:27 Aankhen`` I finished the last bit yesterday...
06:27 Aankhen`` Would you like some soap instead?
06:28 mugwump The exception *could*, in theory, go back and compile the pieces of code that used its signature...
06:28 wolverian no, I _hate_ SOAP. I prefer REST. :)
06:28 mugwump which in that case would then give you an exception when you try to alter the method's signature
06:28 lumi_ There's blue ice cubes in the freezer
06:28 Aankhen`` Hmm.
06:28 Aankhen`` Maybe we could work out something.
06:28 Aankhen`` A compromise.
06:29 Aankhen`` I'll, uh, give you SOAP, and you, uh, eat SOAP.
06:29 * mugwump & # home...
06:29 * QtPlatypus suggeses "use strict <types>"
06:29 wolverian I'm not sure if I see the compromise there...
06:30 Aankhen`` That's okay, you don't have to. :-D
06:30 Aankhen`` That's the beauty of it. :-D
06:30 wolverian that only applies in a relationship.
06:31 Aankhen`` You just have to eat the SOAP -- even lazily, if you want! -- and I'll just point and laugh. :-D
06:31 QtPlatypus The Appocalype seems to be more permissive then I would like.
06:36 wolverian than
06:48 lumi_ has quit IRC ()
06:48 Darren_Duncan has left
06:54 vcv- has joined #perl6
06:54 svnbot6 r4659, Aankhen++ | * libs/pugs/run.pod -- English tweaks.
06:58 * nothingmuch goes to work
06:58 nothingmuch ,
07:03 nothingmuch has quit IRC ()
07:07 Limbic_Region has quit IRC ("CGI:IRC (EOF)")
07:12 Nattfodd has joined #perl6
07:14 Jouke has joined #perl6
07:14 Jouke has left
07:16 vcv- has quit IRC (Read error: 145 (Connection timed out))
07:18 lightstep has joined #perl6
07:25 Aankh|Clone has joined #perl6
07:25 lightste1 has joined #perl6
07:25 Aankh|Clone has quit IRC (Client Quit)
07:28 lightstep has quit IRC (Read error: 54 (Connection reset by peer))
07:28 alinbsp has joined #perl6
07:32 lightstep has joined #perl6
07:32 Aankhen`` has quit IRC (Read error: 60 (Operation timed out))
07:35 lightstep has quit IRC (Client Quit)
07:36 lightste1 has quit IRC (Read error: 145 (Connection timed out))
07:38 nothingmuch has joined #perl6
07:40 sapper has quit IRC ("bye")
07:51 gaal_ has joined #perl6
07:53 xinming has joined #perl6
07:53 Aankhen`` has joined #perl6
07:58 gaal has quit IRC (Read error: 60 (Operation timed out))
08:03 Ninthwave has quit IRC ("Leaving")
08:09 integral1 is now known as integral
08:27 zuulvin has quit IRC (Remote closed the connection)
08:27 vcv has quit IRC (Read error: 54 (Connection reset by peer))
08:34 JZ_ has joined #perl6
08:38 xerox has quit IRC (Read error: 145 (Connection timed out))
08:42 bsb has joined #perl6
08:49 dada has joined #perl6
08:50 broquaint has joined #perl6
08:52 Enveigler has joined #perl6
08:52 nnunley has joined #perl6
09:00 JZ_ has left
09:03 vcv has joined #perl6
09:04 xinming has quit IRC ("I really love GNU")
09:10 nnunley_ has joined #perl6
09:12 nnunley has quit IRC (Read error: 148 (No route to host))
09:20 elmex has joined #perl6
09:24 zuulvin has joined #perl6
09:27 wolverian hmm, nice. dan is still blogging a bit.
09:47 Aankhen`` has quit IRC ("Powercut [Time wasted online: 1hr 54mins 14secs]")
09:48 crysflame .
09:52 wolverian that's an interesting dot
09:55 Aankhen`` has joined #perl6
09:56 vcv has quit IRC (Read error: 145 (Connection timed out))
10:05 chip I wonder what stopped him from working on the register allocator before he quit.
10:09 vcv has joined #perl6
10:09 QtPlatypus ?eval "alphachars" ~~ m/<alpha>+/
10:09 evalbot6 pugs: src/events.c:265: init_events_first: Assertion `rc == 0' failed.
10:10 QtPlatypus ?eval "alphachars" ~~ m/char/
10:10 evalbot6 pugs: src/events.c:265: init_events_first: Assertion `rc == 0' failed.
10:15 wolverian chip: me too.
10:18 Steve_p_ is now known as Steve_p
10:23 QtPlatypus How do you say "Match alpha charicters" in perl6 rules.  A05 says its <alpha> but PGE doesn't seem recognize it.
10:27 bsb has left
10:28 wolverian I don't think the builtin rules are implemented yet
10:31 iblechbot has quit IRC (Read error: 104 (Connection reset by peer))
10:33 joy has joined #perl6
10:34 Enveigler has quit IRC (Read error: 110 (Connection timed out))
10:35 mr_ank ?eval (1,1)+(1,1)
10:35 evalbot6 4.0
10:35 joy has left
10:40 knewt has quit IRC (Read error: 54 (Connection reset by peer))
10:40 svnbot6 r4660, autrijus++ | * Emit.PIR - does not depend on Pugs.* anymore; Harrorth can just use it.
10:40 svnbot6 r4660, autrijus++ | * abstract syntax for preludePIR landed.
10:42 chip so a list in a scalar context is its length?  I thought Perl 5 was the end of that
10:43 Juerd I understand that PIR generation is far from complete, but isn't the error message for pugs -C PIR -e'for(1..2){say}' not a little too verbose?
10:44 Juerd chip: Lists don't exist *at all* in scalar context.
10:44 Juerd chip: So the question I have to ask you is whether you mean "," in scalar context, or an array.
10:45 Juerd Doesn't matter much, because , in scalar context returns an array reference
10:45 Juerd An array in scalar context returns a reference to itself.
10:45 Juerd If you further specify scalar context, you get more interesting stuff out of it
10:46 Juerd String context will stringify (by default: join on whitespace)
10:46 Juerd Num context will evaluate to the number of arguments
10:46 Juerd Bool context will evaluate to "does it have elements?"
10:46 Juerd (Possibly by falling back to Num)
10:47 mr_ank ?eval ?()
10:47 evalbot6 bool::false
10:47 Juerd All the same is true for array references too, except for bare scalar context, because it is already a reference
10:47 mr_ank i don't know enough of perl 6 yet - i found it strange that it returned a 4.0 and not a 4
10:48 Juerd mr_ank: That's a pugs thing, not necessarily perl 6
10:49 mr_ank Why? Does it depend on an internal type?
10:55 cognominal has quit IRC (Read error: 110 (Connection timed out))
10:55 mr_ank (i.e., is it a bug we should write a test case for?)
10:57 wolverian ?eval ref 2+2
10:57 evalbot6 ::Int
10:57 wolverian ?eval 2+2
10:57 evalbot6 4
10:57 wolverian hmm.
10:57 wolverian ?eval (1,1)+(1,1), ref (1,1)+(1,1)
10:57 evalbot6 (4.0, ::Num)
10:57 wolverian ?eval ref +(1,1)
10:57 evalbot6 ::Int
10:58 wolverian er. that looks weird. Int+Int -> Num?
10:58 * Juerd doesn't understand the 4.
10:58 wolverian Juerd: why not?
10:58 Juerd Oh, I do.
10:58 wolverian okay.
10:58 Juerd The ones are misleading
10:58 Juerd (Damnit, use fantasy values!)
10:58 Juerd ?eval (15,42)+(99,69)
10:58 evalbot6 4.0
10:59 mr_ank ?eval ()+1
10:59 Juerd Never ones, or 1, 2, 3, 4
10:59 evalbot6 1.0
10:59 Juerd 0, 1, 2 is bad too
10:59 wolverian Juerd: right. good point.
11:00 Juerd And, of course, this is better written as [15,42]+[99,69] anyway.
11:00 wolverian at least it confuses the hell out of perl5 coders.
11:00 wolverian well, they both do.
11:00 Juerd In fact, I wouldn't mind if Perl disallowed comma in scalar context.
11:00 Juerd It's great in void and list context
11:00 wolverian I like the fleeting List type :)
11:00 mr_ank (134,184,33)+314
11:00 mr_ank ?eval (134,184,33)+314
11:00 Juerd In scalar it's always better written as [LIST].
11:01 evalbot6 317.0
11:01 wolverian ?eval +[1,2,3] ~ "a"
11:01 evalbot6 '3a'
11:01 wolverian ?eval +[1,2,3]
11:01 Juerd 1, 2, 3 is misleading
11:01 evalbot6 3
11:01 wolverian yes. sorry.
11:02 Juerd Is the resulting '3' the number of elements, or the -1th element
11:02 Juerd ?eval +[42, 15, 99]
11:02 evalbot6 3
11:02 wolverian ?eval [42,15,99]+[99,12,94]
11:02 evalbot6 6.0
11:02 wolverian okay, they work the same then.
11:02 Juerd Yes.
11:02 mr_ank yep
11:02 wolverian bogus Int+Int -> Num in both
11:02 Juerd Comma in scalar context returns an arrayref.
11:02 wolverian right.
11:03 Juerd And yes, pugs uses nums always iirc
11:03 wolverian in expressions you mean?
11:03 mr_ank I keep punching random bits in just to see what happens
11:03 wolverian (as in, results of them)
11:03 Juerd wolverian: Yes
11:03 Juerd I think it doesn't really know what ints are
11:03 wolverian okay. that explains it then :)
11:03 wolverian ?eval +[49]
11:03 mr_ank thought so
11:03 wolverian er
11:03 evalbot6 1
11:03 wolverian ?eval ref +[49]
11:03 evalbot6 ::Int
11:04 wolverian it knows it up to that point, or at least pretends it does
11:04 Juerd Hm
11:04 mr_ank ?eval [34,134]
11:04 Juerd ?eval ref +1
11:04 evalbot6 [34, 134]
11:04 evalbot6 ::Int
11:04 mr_ank hm
11:05 Juerd ?eval ~('x' xx 42)
11:05 mr_ank ?eval 33+7.0
11:05 evalbot6 'x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x'
11:05 evalbot6 40
11:05 Juerd ?eval ('x' xx 42)
11:05 evalbot6 ('x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x', 'x')
11:05 Juerd :)
11:05 Juerd ?eval want
11:05 evalbot6 'Scalar (Any), LValue'
11:05 Juerd hm? not list context?
11:05 mr_ank weird
11:05 Juerd Then how can 'x' xx 42 be a list here?
11:06 mr_ank 33+7.0 --> no floating bit [list]+[list} --> floating?
11:06 Juerd mr_ank:
11:06 Juerd ?eval 1+1
11:06 mr_ank ?eval 33.0+7.0
11:06 evalbot6 2
11:06 evalbot6 40
11:06 Juerd hm
11:06 Juerd o...kay.
11:06 Juerd Now I don't get it anymore.
11:06 Juerd ?eval ref 1+1
11:06 evalbot6 ::Int
11:06 wolverian literals are optimised
11:06 wolverian apparently
11:07 wolverian ?eval ref 3.0
11:07 evalbot6 ::Rat
11:07 mr_ank ?eval 3.1-0.1
11:07 wolverian well. at least in an expression!
11:07 evalbot6 3
11:07 dkf has joined #perl6
11:07 Juerd ?eval ref eval("1") + eval("1")
11:07 evalbot6 ::Int
11:07 Juerd Rat?!~
11:07 Juerd s/~//
11:07 wolverian rational
11:07 Juerd Why not just Num?
11:07 Juerd does Rat, sure, but is?
11:07 wolverian I have no idea.
11:07 wolverian I don't know if pugs's numeric type system is specced at all
11:08 wolverian or perl6's, for that matter
11:08 cognominal has joined #perl6
11:09 wolverian ?eval "1.0" + "4.0"
11:09 evalbot6 5.0
11:10 wolverian okay!
11:11 Juerd ?eval "1" + "4"
11:11 evalbot6 5.0
11:12 dkf has quit IRC ()
11:13 saorge has quit IRC (Read error: 110 (Connection timed out))
11:20 elmex has quit IRC ("leaving")
11:27 vcv- has joined #perl6
11:38 dkf has joined #perl6
11:55 Limbic_Region has joined #perl6
11:55 vcv has quit IRC (Read error: 131 (Connection reset by peer))
12:03 vcv- has quit IRC (Read error: 145 (Connection timed out))
12:06 iblechbot has joined #perl6
12:34 Boogie_ has joined #perl6
12:34 svnbot6 r4661, Aankhen++ | * added 'temp-ex*' and 'unlink-test*' to clean targets for Makefile.PL.
12:39 iblechbot has quit IRC (Read error: 60 (Operation timed out))
12:39 svnbot6 r4662, Aankhen++ | * lib/pugs/hack.pod -- small tweaks.
12:43 autrijus Juerd: pugs uses the scheme numeric tower.
12:45 Aankhen`` autrijus, got a minute?
12:45 svnbot6 r4663, andras++ | fake type methods
12:46 autrijus Aankhen``: yes
12:46 Aankhen`` http://svn.perl.org/perl6/pugs/trunk/docs/01Overview.html
12:46 Aankhen`` Could you look over the answer to "Can Pugs work with Perl 5..."?
12:46 autrijus sure
12:46 Aankhen`` (I modified it last night, just want to make sure that it's correct)
12:47 autrijus Aankhen``: they're fine.
12:47 autrijus thanks!
12:47 Aankhen`` OK.
12:47 Aankhen`` NP. :-D
12:47 autrijus also please note that pugs can already interface hs-plugins
12:47 autrijus as well as dynload haskell modules
12:47 autrijus and eval_haskell
12:47 Aankhen`` Alright.
12:47 autrijus so the question below it
12:47 autrijus can be changed as well
12:47 Aankhen`` I was thinking of adding that, but I'm not very familiar with the Haskell side of it, so I held back.
12:48 * Aankhen`` goes to update it.
12:49 Aankhen`` hs-plugins basically allows Pugs to use Haskell libraries, right?
12:49 autrijus right.
12:49 Aankhen`` OK.
12:50 * Limbic_Region wonders if there is some cosmic force that intentionally attempts to take a very focused thread off on tangents
12:50 Aankhen`` Can I expand "dynload" to "dynamically load" without losing accuracy?
12:51 dkf L~R: Entropy, baby!
12:51 Limbic_Region More likely - people want to push their own agenda and take any opportunity to do so even if the originator of the thread has made their intention to stay focused very clear
12:51 Aankhen`` &eval_haskell == &eval('...', :lang<haskell>)?
12:53 autrijus nod
12:53 autrijus Aankhen``: yes
12:54 Aankhen`` Committed.
12:54 Aankhen`` s/ed/ing/
12:55 Aankhen`` s/ing/ed/ now. :-)
12:56 Aankhen`` Hmm... would it be appropriate to add "What is the relationship between Pugs and Parrot?" with the answer including the fact that Pugs can/will target Parrot?
12:56 svnbot6 r4664, Aankhen++ | * docs/01Overview.html -- updated "Can Pugs work with Haskell libraries?".
12:57 nothingmuch has quit IRC ()
12:59 _ICH_ has joined #perl6
13:00 autrijus Aankhen``: yes. make it "can"
13:00 autrijus "already"
13:00 autrijus "and is improving steadily"
13:00 Aankhen`` OK.
13:00 Aankhen`` I'll do it in a sec.
13:00 * autrijus is working on getting svnbot.p6 compiled.
13:00 Aankhen`` Just tweaking the HTML.
13:01 autrijus it's so nice that it doesn't use OO :)
13:01 autrijus or rather, it uses OO without using "class" keyword
13:02 Aankhen`` Heh.
13:05 Aankhen`` Shall I add the relationship question after "How can Pugs help the Perl 6 language design?"?
13:06 Limbic_Region Aankhen`` - 1.  By helping flesh out corner cases
13:06 Limbic_Region 2.  By exposing unspecced areas
13:06 svnbot6 r4665, Aankhen++ | * docs/01Overview.html -- HTML tweaks.
13:06 Aankhen`` Limbic_Region >> I'll add that, but what I'm asking is where to add "What is the relationship between Pugs and Parrot?".
13:07 Limbic_Region sorry - misunderstood
13:07 Limbic_Region was helping answer the proposed new question
13:07 Aankhen`` No problem, those are good points to add. :-)
13:07 Aankhen`` Limbic_Region++
13:08 Aankhen`` I have to say, that file has some very strange formatting.
13:08 Limbic_Region well - the 3rd I am thinking about is hard to boil down
13:08 Aankhen`` I understand the 80 chars wrapping thing, but I don't understand the seemingly random 60 chars wrapping thing.
13:08 Limbic_Region but basically writing examples of "real" code helps decision makers make sane decisions
13:08 Aankhen`` Well, not 60, more like 70.
13:08 Aankhen`` Hmm.
13:09 Aankhen`` "By providing concrete examples for the language designers to use in the decision making process"?
13:09 autrijus it's Nvu.
13:09 Aankhen`` autrijus >> Ah, I see.
13:09 autrijus I wonder if we should dig out 01Overview.kwid/.pod
13:09 autrijus and just modify that instead.
13:09 autrijus that's prolly Good Idea (tm).
13:10 Aankhen`` Dig out as in find a buried file or convert this one?
13:10 Limbic_Region Aankhen`` I like how you phrased it - I might only add "real world"
13:10 Aankhen`` Limbic_Region >> A'right.
13:10 autrijus http://search.cpan.org/src/AUTRIJUS/Perl6-Pugs-6.0.12/ext/Pugs-Documentation/PA01.kwid
13:11 autrijus Aankhen``: buried file... you can trace a bit and replay the html changes (not many) to this
13:11 Aankhen`` Hmm.
13:11 autrijus and replace it, in the source tree, as 01Overview.kwid
13:11 autrijus I think.
13:11 Aankhen`` OK.
13:11 autrijus danke.
13:11 Limbic_Region autrijus - hit chip for us - he didn't journal up yesterday
13:11 Limbic_Region ;-)
13:11 Aankhen`` I shall try. :-)
13:11 autrijus chip: Hit!
13:11 * autrijus hits chip! autrijus kicks chip! --More--
13:12 * autrijus casts a "summon journal" at chip.  You hear distant rumbling... --More--
13:13 Aankhen`` LMAO.
13:13 Aankhen`` Where can I find a brief listing of Kwid syntax?
13:13 Limbic_Region the masses demand blood err writing
13:13 Aankhen`` Just need something to refer to if I get confused.
13:13 Limbic_Region where's ingy
13:13 stevan violence at the hackathon!!!
13:14 stevan in a street fight, who do you think would win? the dog with the squished up nose, or the bird with the colorful feathers?
13:15 Limbic_Region I think the dog eats the bird whole, the bird starts pecking away at the dog from the inside, and we end up with a mutant
13:15 stevan that sounds about right
13:15 stevan throw an AST or 2 in there, and we got a hackathon
13:20 QtPlatypus Could someone confirm to me that it makes no sence for 0-nary subs to be defined as (post|pre)fix: ?  
13:20 svnbot6 r4666, Aankhen++ | * docs/01Overview.html -- tiny language tweaks.
13:20 Limbic_Region I am not sure I am following QtPlatypus
13:21 autrijus Aankhen``: p6bible s26
13:21 Limbic_Region if you don't have any arguments - that doesn't mean you don't need to check something before doing what you are doing
13:21 QtPlatypus multi sub postfix:<silly> () {...}
13:21 steveq has joined #perl6
13:21 Limbic_Region no - I know what you mean
13:21 Limbic_Region I just don't understand why you think it doesn't make any sense
13:22 Limbic_Region the arguments aren't the only thing a sub may need to check before doing work right?
13:22 Limbic_Region or am I missing the boat here?
13:22 QtPlatypus Well isn't that going to act in exactly the same mannor as
13:22 QtPlatypus multi sub silly () {...}
13:23 Limbic_Region I guess I need to read up on postfix: and prefix: then
13:26 iblechbot has joined #perl6
13:26 Limbic_Region woah - do I feel dumb
13:26 Limbic_Region QtPlatypus - not at all what I was thinking they were - I thought you were talking about sub wrappers
13:27 Aankhen`` autrijus >> Ah, thanks.
13:27 Limbic_Region I agree, though obviously you shouldn't take just my word for it, that 0-ary subs don't make sense in (post|pre)fix:
13:27 QtPlatypus Limbic_Region: I'm constenstently feeling dumb.
13:27 scook0 has quit IRC ("Leaving")
13:29 Limbic_Region fwiw - I was thinking about PRE/POST/FIRST/LAST/NEXT/KEEP/UNDO stuff
13:29 QtPlatypus Arh
13:29 Limbic_Region where the PRE/POST ne prefix: postfix:
13:30 Aankhen`` Considering the whole TMTOWTDI thing, and how Perl offers choices of pattern matching grammar, documentation syntax, and even the language itself, with macros, Perl 6 seems to be less of a language and more of a meta-language.
13:30 Aankhen`` s/Perl offers/Perl 6 offers/
13:37 * q[merlyn] waits for Limbic_Region
13:38 vcv has joined #perl6
13:38 vcv- has joined #perl6
13:49 gaal|work has joined #perl6
13:50 gaal|work hola
13:52 lumi Hi Gaal
13:52 gaal|work hey lumi
13:53 gaal|work was kinda swamped with $work lately, what's up? what's preludePIR i see in the svnlog?
13:54 elmex has joined #perl6
13:54 Aankhen`` I've added PA01.kwid.  Will work some more on it later (I've chosen a few sections to work on).  Going out for a movie. &
13:54 svnbot6 r4667, Aankhen++ | * readded and updated docs/PA01.kwid
13:58 gaal|work sub "&say" in Emit.PIR is wrong for a Perl 6 &say, i think? is it meant to be a demo?
14:06 iblech has joined #perl6
14:07 cjeris has joined #perl6
14:11 cjeris has left
14:19 svnbot6 r4668, iblech++ | * Usual svn props added to examples/typefunctions/.
14:19 svnbot6 r4668, iblech++ | * Not so usual svn props (charset: iso-8859-15) added to t/pugsbugs/hyper_latin1.t.
14:19 svnbot6 r4668, iblech++ | * New test: macro postfix:<!> (t/macros/operator_macros.t).
14:19 svnbot6 r4669, iblech++ | * Added "*.hi" to the svn:ignore of src/Emit and added the usual svn props to
14:19 svnbot6 r4669, iblech++ |   docs/PA01.kwid.
14:19 svnbot6 r4669, iblech++ | * Renamed examples/typefunctions to examples/unitfunctions.
14:19 svnbot6 r4669, iblech++ | * Fixed "!~" to mean "not(... ~~ ...)", instead of "ne".
14:19 iamchaos has joined #perl6
14:19 svnbot6 r4669, iblech++ | * Moved now succeeding t/pugsbugs/inverted_smartmatch.t out of pugsbugs/.
14:22 Boogie_ iblech: ping
14:22 iblech Boogie_: pong
14:23 gaal|work iblech,  iso-8859-15 is latin-9, not latin1 :)
14:23 Boogie_ iblech: why did you renamed typefunctions? it's not a problem, I just interested why do you think it's a better name?
14:24 rhandom has joined #perl6
14:24 Boogie_ iblech: maybe the right name is fakemethods, but I'm not sure
14:25 iblech Boogie_: Sure: Many folks here associate type with the types like Int or (map :: (a -> b) -> [a] -> [b]). Units is not ambiguous
14:25 iblech gaal|work: Oh, yes, of course, fixing
14:26 svnbot6 r4670, iblech++ | Fixef svn:mime-type of t/pugsbugs/hyper_latin1.t, gaal++.
14:27 Boogie_ iblech: when I named it, I used type in this way. 5 is an Int, and 5.bytes is a function for the the Int. 10.minutes is the same with the type time (what is an Int)
14:28 nothingmuch has joined #perl6
14:28 Boogie_ iblech: but I know, that it's not the best name for it. :)
14:28 nothingmuch evening
14:29 Boogie_ iblech: fakemethods is maybe better, it looks like methods for the type Int, but just sample functions that can be called with Ints
14:29 iblech Boogie_: Yep, but, if I understand the code correctly, the key of your examples is not a function minuts which has type Int -> Time, but the unit conversions -- minutes to hours, etc. But I maybe I'
14:29 iblech Boogie_: Yep, but, if I understand the code correctly, the key of your examples is not a function minuts which has type Int -> Time, but the unit conversions -- minutes to hours, etc. But I maybe I've complete misunderstood your code :)
14:29 iblech Boogie_: Like fakemethods, too
14:30 eric256 i can't seem to find that unitfunctions directory or file....
14:30 Boogie_ iblech: oh, now I got the meaning of "unit". :) I thought it the Pascal "unit" way, which as I remembers is like a module...
14:31 iblech ETOOMANYMEANINGS :)
14:33 Boogie_ iblech: My examples are about presenting, that you can extend types, and the subject of the examples are unit convesions. :)) Like you don't call the dir of hangman hangman, you call it games. Maybe not the best example why I gave that name for it.
14:34 Boogie_ yes, toooooo many meanings. :)
14:34 Boogie_ while just unit conversions inside, I think the name is ok, and better than the initial one. ;)
14:35 iblech Boogie_: Hm, then maybe we should rename it to fakemethods and add a non-unit example :)
14:35 eric256 where is the file Boogie_? i can't seem to find it at all
14:36 Boogie_ eric256: examples/unitfunctions
14:36 eric256 thats what i thought, but svn isn't bringing it to me...hmm
14:37 Boogie_ eric256: examples/typefunctions?
14:37 Boogie_ iblech: do you have any idea for a non-unit example? :)
14:37 eric256 neither where there... svn was choking on one file and stoping with what apparently was a fatal error.
14:37 _meppl_ has joined #perl6
14:38 iblech Boogie_: Hm... maybe "some_string".escape(:html)?
14:38 eric256 "some string".words;
14:39 Boogie_ iblech & eric256: good idea. do you have time for it?
14:39 iblech Boogie_: I'll do .escape(:html)
14:39 Boogie_ cool. :)
14:40 steveq How about Base64?
14:40 eric256 i will. but i'm off to work for now. ;) back in a bit
14:40 eric256 has left
14:40 steveq is there/could there be a method to do that?
14:40 _meppl_ has quit IRC (Read error: 131 (Connection reset by peer))
14:40 Forth_ has quit IRC (Remote closed the connection)
14:41 Boogie_ steveq: I like this idea, too. I think not yet a Perl6 module for it, but you can use the Perl5 module.
14:41 steveq yeah, I often have to load the MIME::Base64 module to do that encoding
14:41 kungfuftr hhhmmm p6 VMethods
14:42 Boogie_ I'm going back to work, too. ;)
14:42 Boogie_ kungfuftr: yes! 'virtual method' is the right expression for it. I wasn't able to remember for it.
14:43 kungfuftr Boogie_: yar, is what Template Toolkit calls it
14:43 Shachaf has joined #perl6
14:49 svnbot6 r4671, iblech++ | Added escape example to unitfunctions/.
14:50 Nattfodd has quit IRC (Read error: 110 (Connection timed out))
14:52 locksy has quit IRC (Read error: 113 (No route to host))
14:56 Boogie_ iblech: nice!
14:56 Boogie_ I love Perl6... :)
14:56 iblech :)
14:56 iblech Ok, should we rename it to fakemethods of virtualmethods now?
14:56 iblech or virtual_methods
14:57 Boogie_ virtual_methods looks fine, yes.
14:58 iblech Ok. Will you do the svn mv or should I?
14:59 Forth has joined #perl6
14:59 kungfuftr vmethods
15:00 kungfuftr !!!
15:00 iblech I'm fine with that, too
15:01 kungfuftr =0)
15:03 ninereasons has joined #perl6
15:06 * iblech renames it to virtual_methods now
15:09 Boogie_ boogie thinks he was faster. :)
15:09 svnbot6 r4672, andras++ | rename unitfunctions to vmethods
15:15 Boogie_ anyway: thanks for the help
15:15 svnbot6 r4673, iblech++ | Added examples/output/vmethods/escape and modified example.t accordingly so it
15:15 svnbot6 r4673, iblech++ | tests escape.p6.
15:15 Nattfodd has joined #perl6
15:16 Boogie_ iblech: what does it mean: "Usual svn props added to examples/typefunctions/"?
15:16 iblech See docs/other/development_tips
15:16 steveq svn proplist foo
15:16 iblech These are Subversion properties so svn converts "\n" to the linebreak of your current OS
15:17 Boogie_ ah, ok. I'll check the doc.
15:20 autrijus nested expressions works!
15:20 autrijus now moving on to user subs and named params
15:20 chip nested expressions .. you mean like (1+2)*3?
15:21 autrijus chip: right
15:21 chip ok
15:21 autrijus sooner or later I'll need help on transcribing the entire Prim.hs into the prim table in Emit.PIR
15:21 chip darn it, everything is working but threading.  this is soooo weird
15:21 autrijus i.e. having a one-to-one correspondence between our ops and parrot ones
15:21 autrijus I'll check in now if peopl want to take a look.
15:21 autrijus iblech++ # virtual methods is darned cool
15:22 autrijus    10.minutes.ago        == time()-600
15:22 autrijus    10.minutes.until(x)   == x-600
15:22 iblech Boogie_++ # They're Boogie_'s files :)
15:22 autrijus ok :)
15:24 iblech BTW, autrijus, are there any reasons that we don't create a src/parrot/prelude.pir, similar to Prelude.pm? (Just wondering)
15:24 chip OK, I'm really not liking this 10.iminutes thing
15:28 autrijus iblech: well, the prelude pir isn't written in pir
15:28 svnbot6 r4674, autrijus++ | * nested expressions and function calls (no `is lazy` support yet)
15:28 svnbot6 r4674, autrijus++ | * a much saner preludePIR syntax.
15:28 svnbot6 r4675, iblech++ | * t/pugsbugs/hyper_latin1.t -- Use \ddd notation so we can safe the file as
15:28 svnbot6 r4675, iblech++ |   utf-8 (so we don't confuse editors and my add-the-usual-svn-props script).
15:28 svnbot6 r4675, iblech++ | * Added a new pugsbugs test: t/pugsbugs/assuming_and_mmd.t.
15:28 autrijus chip: it's not builtin
15:28 autrijus iblech: programs written in PIR, at this moment, are almost guaranteed to net you segfaults.
15:28 autrijus ;)
15:29 autrijus so I write in the "PIR" data structure sublanguage in haskell
15:29 autrijus that implements a segfaultless, typed, well-formed subset of PIR.
15:29 autrijus iblech: so unlike Prelude.pm, the prelude pir is actually in haskell.
15:29 gaal|work autrijus, except as an optimization, why do we need to write pir ops in pir at all?
15:29 autrijus iblech: look at the preludePIR for examples
15:29 gaal|work oh
15:29 gaal|work hmm
15:29 autrijus gaal|work: there's no optimisation involved.
15:29 iblech autrijus: Ah, makes sense :)
15:30 autrijus gaal|work: we need to have our Prims in a form parrot can understand.
15:30 autrijus that is just no avoiding it :)
15:30 autrijus just like Prim.hs
15:30 gaal|work problem is that they do less than the (current) prims
15:30 autrijus right, but the current prims is of no use to parrot
15:30 autrijus unless you statically link ghc or something
15:30 autrijus or always embed parrot and foreign export them
15:30 gaal|work say $*ERR: for example works in the main prim
15:30 autrijus both ways aren't happen
15:30 autrijus to be interesting enough
15:30 gaal|work right
15:30 autrijus hmmmmmmm
15:31 autrijus actually no.
15:31 autrijus there is a chance.
15:31 autrijus to just use Prim.hs in embedparrot case.
15:31 gaal|work okay, this is serious incentive to push more and more to Prelude.pm :)
15:31 autrijus that will nest us a faster runloop
15:31 autrijus but nothing more
15:31 autrijus and is harder to maintain
15:31 autrijus so perhaps not a good idea after all.
15:31 gaal|work *nod*
15:31 autrijus gaal|work: right. whatever in Purelude.pm is shared.
15:31 autrijus gaal|work: so Prims are truly Prims
15:31 autrijus and Prelude is Prelude.
15:32 autrijus (the apparent tautology notwithstanding)
15:32 gaal|work heh, except that *most* of what's there now at least relies on very specific semantics from the internals.
15:32 autrijus gaal|work: we can recreate them at pir level.
15:32 autrijus i.e. all Pugs::Internals::* should be carried to pir.
15:32 autrijus in the P::I namespace
15:33 gaal|work what was it that i saw in the channel logs a while ago? ETOOMANYLANGUAGES :-)
15:33 gaal|work but i agree we do need this
15:33 autrijus gaal|work: perl6
15:33 Odin-LAP Hm.
15:34 chip FUCK FUCK FUCK
15:34 Odin-LAP What'd that be, teleported to p6 exceptions?
15:34 chip DISTCLEAN ME HARDER
15:34 gaal|work how do you write Pugs::Internals::openFile in perl6? what actually opens the file?
15:34 Odin-LAP chip: O_o
15:34 chip OK, parrot's distclean just DELETED MY TODO AND MY OTHER SIDE DOCUMENTS
15:34 Odin-LAP Ouch.
15:34 gaal|work chip, what fs?
15:35 gaal|work "FAT has to be better for something" :-)
15:35 Limbic_Region chip - linux?
15:35 Limbic_Region http://perlmonks.org/index.pl?node_id=106709 # restoring deleted files on linux
15:35 * Limbic_Region was literally just reading that moments ago
15:36 gaal|work grep -500 "my data" /dev/hda1 ?
15:37 gaal|work whaddya know, essentially yes.
15:38 gaal|work in any case you want to remount ro asap
15:38 chip ext3
15:38 chip it's too late
15:38 crysflame ow smashy
15:40 chip autrijus: I think it's time to test your memeory
15:40 chip autrijus: whatever I said was on my TODO list is now toast
15:40 autrijus ok...
15:40 autrijus problem is you didn't tell me anything about your todo list.
15:41 * autrijus tries to imagine
15:41 chip it was all the things you said you wanted.  single-quoted strings in PIR, := vs. =, that sort of thing
15:41 gaal|work item #1: fix "make distclean" target
15:41 autrijus oh!
15:41 autrijus actually, those two, yes, but you said you'd like to fix the parsing too, like not relying on the [a;b;c] to parse different things
15:41 autrijus .namespace [P0]
15:41 nothingmuch autrijus: buahahaha
15:41 nothingmuch -- Forth CPS ;-)
15:41 nothingmuch execute ((Call word):exps) = execute ((body word) ++ exps)
15:41 Odin-LAP gaal|work: "What, the kid already fell down the well. No need to board it *now*."
15:42 autrijus chip: but for me... '' and := are the two big ones
15:42 autrijus nothingmuch: right... that _is_ CPS
15:42 autrijus nothingmuch: Emit.PIR is ready for you to target, btw.
15:42 autrijus nothingmuch: I'm still trying to get svnbot working
15:42 nothingmuch how much will it keep me from learning PIR, btw?
15:42 autrijus nothingmuch: you need to learn an idealised form of PIR :)
15:43 autrijus nothingmuch: just look at Emit.PIR.preludePIR
15:43 nothingmuch =)
15:43 autrijus I'll populate it with lots of other prims
15:43 autrijus to get svnbot and mandel working
15:43 nothingmuch okies ;-)
15:43 autrijus and then you can help me :D and target that.
15:43 nothingmuch anybody got a nice PIR tutorial?
15:43 nothingmuch well, you can target forth
15:43 nothingmuch ;-)
15:44 autrijus nothingmuch: right... just give me the INFIX_LEFT_ANGLE_BRACKET_STAR_RIGHT_ANGLE_BRACKET word!
15:44 autrijus oh and I want MMD too
15:44 autrijus ;)
15:44 chip nothingmuch: anyone who knows PIR wants to talk about it
15:44 chip s/anyone/no one/  # so much for that joke
15:44 nothingmuch dan had a wonderful blog topic some time ago.. something like 'forth love if honk then'
15:44 autrijus that's lovely.
15:44 autrijus nothingmuch: but in all seriousness, parrot/imcc/docs/ is not actively misleading.
15:44 Boogie_ gaal|work: ETOOMANYLANGUAGES means, that we totally misunderstood each other with iblech. He mean units like minutes, etc., I mean units like Pascal's modules. And ecetera, we did it with some words. :)
15:45 autrijus nothingmuch: and parrot/docs/compiler_faq is not all wrong either.
15:45 nothingmuch okay, i'll take a look
15:45 nothingmuch first I need to document this progress
15:45 autrijus cool. you r0x0rz.
15:45 autrijus right, that has priority
15:45 * nothingmuch dances the r0x0rz dance
15:45 autrijus I count on your tutorial to teach other yapc hackathoners haskell
15:46 * gaal|work homewardses &
15:46 nothingmuch hurrah
15:46 chip That's my old like
15:46 chip line
15:46 nothingmuch btw, does Interp and Eval belong in AST now?
15:46 chip YOU FORTH LOVE IF HONK THEN  ... Forth bumper sticker
15:46 nothingmuch otherwise I need recursive modules
15:46 autrijus nothingmuch: you can factor them to AST, yes.
15:46 gaal|work Boogie_ - oh. i thought it was a babelfish fatigue error.
15:46 autrijus nothingmuch: or create a new Types and shuffle them there.
15:46 gaal|work anyway, i'm outta here, see y'all!
15:47 nothingmuch ciao gaal_
15:47 autrijus gaal|work: ciao
15:47 chip YOU SPEAK YODA SPEAK LIKE IF FORTH LANGUAGE FAVORITE IS THEN
15:47 nothingmuch Aankhen``: heads up, editing work soon
15:47 autrijus chip: *lol*
15:47 SamB that doesn't look right to me... I thought there was some bracket usage in the words for conditionals...
15:47 gaal|work has quit IRC ("Trillian (http://www.ceruleanstudios.com")
15:47 chip parentheses are an infix plot
15:47 nothingmuch you speak yoda =
15:47 nothingmuch oh wait, I get it
15:48 nothingmuch damn, forth *IS* confusing
15:48 chip it's a mystery of the INNER CIRCLE!! GET IT?!?!
15:48 nothingmuch no, i missed that =/
15:49 * chip links to timecube.com and wonders why the world has more than four time zones
15:49 Odin-LAP Forth. It's lisp, the other way around without all the parentheses? :D
15:53 SamB not exactly.
15:53 svnbot6 r4676, andras++ | vmethods: some example, sample outputs, etc.
15:53 svnbot6 r4677, andras++ | vmethods: extra comments
15:57 steveq has quit IRC ("Client exiting")
15:58 svnbot6 r4678, iblech++ | Added the usual svn props to andras++'s new examples/vmethods outputs and
15:58 svnbot6 r4678, iblech++ | updated example.t so the examples are actually run.
16:01 Limbic_Region has quit IRC ("tiuq\")
16:02 chip Lisp programmers work with grand concepts.  Forth programmers work with a 4K stack.
16:03 _ICH_ has quit IRC ()
16:06 Odin-LAP Hehe.
16:08 chip And if your brain is shaped like Chuck Moore's, that's OK with you.
16:23 pjcj_ has joined #perl6
16:24 xinming has joined #perl6
16:25 nothingmuch has quit IRC (Read error: 60 (Operation timed out))
16:27 sapper has joined #perl6
16:30 nothingmuch has joined #perl6
16:31 Nattfodd has quit IRC (Read error: 110 (Connection timed out))
16:31 vcv- has quit IRC (Read error: 145 (Connection timed out))
16:34 locksy has joined #perl6
16:36 alinbsp has quit IRC ()
16:36 jabbot has joined #perl6
16:40 pjcj has quit IRC (Read error: 110 (Connection timed out))
16:41 arcady has quit IRC ("Leaving")
16:43 gaal_ has quit IRC ("goodbye")
16:43 gaal has joined #perl6
16:45 pjcj_ has quit IRC (Read error: 110 (Connection timed out))
16:52 locksy has quit IRC (No route to host)
16:56 Limbic_Region has joined #perl6
17:03 nnunley_ has quit IRC ("Leaving")
17:03 geoffb Chuck Moore's brain apparently being shaped like a 16x16 square with pretty colors . . . .
17:03 geoffb Questions about last night's (my timezone) scrollback:
17:04 geoffb iblech: would you mind putting your svnprop-adding script in util/ ?
17:04 nothingmuch has quit IRC ()
17:04 iblech geoffb: It's a two-line sh-script :)
17:05 iblech geoffb: But yes, will do so in ten minutes or so
17:05 geoffb chip: Will parrot (or more accurately Perl6 on parrot) be doing the crazy crap that P5 does to try to downgrade numbers whenever you operate on them (trying to fit an NV into a UV or IV)?
17:06 geoffb That just can't be good for performance on modern branch-hating processors
17:06 geoffb iblech, thanks
17:08 sapper has quit IRC ("bye")
17:09 putter has joined #perl6
17:10 Limbic_Region has quit IRC ("leafChat IRC client: http://www.leafdigital.com/Software/leafChat/")
17:12 putter autrijus: Could you give a one-line description of <-- .- <-& .& -->?  Thanks.
17:16 geoffb sometimes svnbot6 is ripping fast, and sometimes it takes quite a while . . . though I suppose it could be receiving brain surgery from autrijus
17:17 svnbot6 r4679, geoffb++ | Added description entry for examples/vmethods to pugs::hack
17:17 geoffb speak of the devil
17:18 iblech geoffb: That's because the readline() of the socket to the IRC server is blocking. That means: As long as the bot doesn't receive something from IRC, it can't check for new revisions.
17:19 iblech geoffb: You can force an immediate check for new revisions by /msg svnbot6 ?check (this will cause readline() to return and svnbot to check for new revs)
17:20 broquaint has quit IRC ("teh home")
17:22 autrijus
17:22 svnbot6 r4680, iblech++ | Added util/add-svn-props.sh, per geoffb++'s request.
17:23 geoffb iblech, very interesting!
17:23 geoffb autrijus, you were trying to say something?
17:24 sahadev has quit IRC ("Client exiting")
17:24 svnbot6 r4681, iblech++ | pugs::hack -- Filled in description of examples/p6explain.
17:24 arcady has joined #perl6
17:24 iblech food &
17:24 * geoffb does svk pull just to see that description
17:27 Aankhen`` Back!
17:27 Aankhen`` autrijus >> Should I delete docs/01Overview.html?
17:27 Darren_Duncan has joined #perl6
17:28 ninereasons has quit IRC (Read error: 104 (Connection reset by peer))
17:29 Aankhen`` Support for `where` would be really useful for cases like that escape vmethod example. :-)
17:31 sahadev has joined #perl6
17:33 Aankhen`` Hrm... are any Pugs binaries available apart from the Windows binaries included in PXPerl?
17:36 gaal vmethods/README says that in a file called "bytes.p6", 1.megabyte is 1024. that can't be right :)
17:37 vel has left
17:38 meppl has joined #perl6
17:41 chip geoffb: You are SO looking at the small potatoes.  Branch-hating CPUs will die of apoplexy when running Parrot.
17:41 svnbot6 r4682, gaal++ | fix README's idea of a megabyte
17:41 svnbot6 r4683, Aankhen++ | * PA01: updated bit about binaries.
17:41 geoffb chip: LOL
17:41 geoffb Well, fair enough
17:42 geoffb I only thought of it because of the early-morning discussion about Pugs numbers varying almost randomly between Int, Rat, and Num
17:42 chip Mm.  Parrot numbers will convert either according to the PMC's whim or according to the compiler's exact request.
17:43 chip e.g. $I0 = $N0 or vice versa
17:43 geoffb And I remember just *retching* looking at the morphing code in perl . . . which I only discovered because that morphing code exposed some bugs in SDL_perl, which expected exactly NVs in a few cases, and did bad things when an NV "promoted" itself to IV
17:44 geoffb fair enough
17:45 chip well, SDL will be a bunch of specialized PMCs in Parrot, and I think it'll be happy
17:46 geoffb As long as it won't happen "behind my back", at least when writing raw PIR, I'm fine.  And Perl 6 damn well better not try to change type under me when I specify a lowercase type . . . .
17:46 geoffb chip, yeah, I'm wondering how OpenGL will be supported for Parrot's SDL
17:49 justatheory has joined #perl6
17:52 Aankhen`` On the subject of wondering, I'm still wondering how a language can be parsed and compiled by a compiler written in itself... the mind boggles. :-)
17:54 Enveigler has joined #perl6
17:55 arcady Aankhen``, ever heard of gcc? : )
17:56 Aankhen`` Yes, and GHC...
17:56 Aankhen`` I know that these things exist.
17:56 Aankhen`` It's just one of those things that defies comprehension until you take a closer look. :-)
17:56 Aankhen`` (perhaps a much closer look :-P)
17:57 Aankhen`` Hmm... what backends are available for Pugs?
17:57 Aankhen`` Oh, wait.
17:57 svnbot6 r4684, putter++ | Added some 0-ary primatives to Emit/PIR.hs.
17:58 * Aankhen`` checks the svn log.
17:59 Aankhen`` In case it's of any interest to anyone: I'm going out of town Friday morning, will be back on the 3rd of July, and cheerfully resume Pugs hacking in the next few days. :-)
18:00 dada has quit IRC ("zu spaet um makellos zu sein")
18:02 iblech You'll be be away for approx. half a month? We'll miss you...
18:02 Aankhen`` iblech++ # flattery will get you everywhere ;-)
18:04 iblech But it doesn't work at my school's director (I wanted to attend APW and the hackaton, but as we write tests ATM, I had to stay...)
18:05 putter "Welcome back Aankhen``!  Pugs achieved sentience last tuesday and..."
18:05 Aankhen`` Awww. :-(
18:05 Aankhen`` putter >> I wouldn't be in the least surprised. ;-)
18:06 Aankhen`` iblech >> I guess he's not quite as malleable as me...
18:08 vcv- has joined #perl6
18:10 dkf has quit IRC ()
18:13 pjcj has joined #perl6
18:13 dkf has joined #perl6
18:13 cognominal what is the purpose of calling a directory "t e s t" (with spaces)?
18:14 arcady about the same as calling a program "oo, ick"
18:14 arcady to annoy people
18:14 putter cognominal: breaking my find scripts?
18:14 cognominal I know how to use "find -print 0¨  and "xargs -0" but I don see the purpose
18:15 cognominal except to gratuitouly annoy unix people
18:15 PerlJam cognominal: What is the purpose of calling a directory "test"  or "foo" or "lib"?  Whoever named that one "t e s t" probably had a reason that made sense to them.
18:15 gaal it was to test filenames with spaces, actually.
18:16 PerlJam Off hand, I'd guess that they wanted it to stand out a little more on thier terminal.
18:16 svnbot6 r4685, putter++ | Added int registers to Emit/PIR.hs.
18:16 cognominal a fxg='find -type f -print0 | xargs -0 grep  -n'
18:16 cognominal a fxgi='find -type f -print0 | xargs -0 grep  -ni'
18:16 PerlJam See? gaal gave good reason
18:16 cognominal that should to the trick for me
18:16 gaal though arguably the tests can generate that directory.
18:17 gaal (arguably they should. there's not much much to argue that they *can* :)
18:17 cognominal next is using control chars...
18:18 gaal heh
18:18 gaal utf8
18:18 cognominal I am probably too old skool
18:18 gaal ^G^G^G
18:19 gaal or, as screen would put it, "Wuff! Wuff!"
18:19 iblech has quit IRC ("off, school and tests tomorrow &")
18:20 cognominal now, I have forgotten what I searched in the first place :(
18:25 pjcj has quit IRC (Remote closed the connection)
18:25 svnbot6 r4686, Aankhen++ | docs/PA01.kwid: * thorough edit.
18:25 svnbot6 r4686, Aankhen++ | * added bit about writing tests under "I have learned some Perl 6..."
18:25 svnbot6 r4686, Aankhen++ | * added link to porting HOWTO under "I know Perl 5 but not Haskell..."
18:25 pjcj has joined #perl6
18:32 justatheory has quit IRC ()
18:32 svnbot6 r4687, Aankhen++ | * PA01: updated "Which compiler backends...".
18:33 pjcj has quit IRC (Remote closed the connection)
18:35 Darren_Duncan question: what is the proper way to declare constructor methods, namely new(), so they get invoked?
18:35 Darren_Duncan case in point, the classes in my Locale::KeyedText module
18:35 Darren_Duncan the new() used to be invoked a few weeks back, but now most of my current test failures seem to be that they aren't
18:35 Darren_Duncan its like some default constructor is being invoked instead
18:36 Darren_Duncan is what I'm doing out of date, or is Pugs broken?
18:36 Aankhen`` Could someone look over the "Which compiler backends..." question and verify the accuracy of the answer?
18:37 Darren_Duncan the version in the repository now (since yesterday) is the newest
18:37 Aankhen`` Darren_Duncan >> I'm not able to answer whether Pugs is broken, but in general, it's better to use C<submethod BUILD ($foo, $bar) { $.foo = $foo; .perform_some_initialisation; }> and so on.
18:37 Darren_Duncan the signiture is: method new( $class: Str $msg_key, Str ?%msg_vars ) returns Locale::KeyedText::Message {
18:38 Aankhen`` (atleast, that's my understanding)
18:38 svnbot6 r4688, putter++ | Added lit Double to Emit/PIR.hs.
18:38 Darren_Duncan so 'submethod' is what you invoke on a class name, whereas 'method' is invoked on an object?
18:38 pjcj has joined #perl6
18:39 Darren_Duncan will try something like that
18:39 Aankhen`` No, see, when you do C<my $foo = Foo.new()>, the C<new> method of class Foo will return an object, and then C<BUILDALL> will be called on that object, which in turn will call C<BUILD>.
18:39 Aankhen`` So you already have an empty object, you just need to fill in the blanks.
18:40 Aankhen`` Once again, that's my understanding of it.  I have been known to be wrong. :-)
18:40 Aankhen`` Take a look at the Tree and Set modules.
18:40 Aankhen`` And HTTP::Headers.
18:40 Darren_Duncan will do
18:41 putter autrijus: ping?
18:43 Darren_Duncan I'm getting something ...
18:43 Aankhen`` Goodie. ^_^
18:43 svnbot6 r4689, Aankhen++ | * PA01: added "What is the relationship between Pugs and Parrot?".
18:43 cognominal are the tests backend agnostic?
18:46 locksy has joined #perl6
18:46 pjcj has quit IRC (Remote closed the connection)
18:47 pjcj has joined #perl6
18:48 gaal they're all interpreted, cognominal.
18:48 autrijus putter: pong
18:48 autrijus putter: please add comment / haddock for me
18:48 autrijus <--
18:48 svnbot6 r4690, autrijus++ | * Emit.PIR - move `&bool::*` into the "bool" namespace.
18:48 svnbot6 r4690, autrijus++ | * Lexical pads and assignments.  This now works:
18:48 svnbot6 r4690, autrijus++ |     my $x = $x = $x = 123; say $x;
18:49 autrijus is calling opcode
18:49 autrijus that returns a value
18:49 autrijus .-
18:49 autrijus is calling opcode without a rv
18:49 autrijus <-&
18:49 autrijus is calling a user-defined function
18:49 autrijus that returns a list of values
18:49 autrijus assigning to lhs
18:49 autrijus .&
18:49 autrijus is calling user-defined function
18:49 autrijus without a rv.
18:49 clkao autrijus: hey! dont fix bug just by half!
18:50 autrijus clkao: huh?
18:50 Aankhen`` autrijus >> Are you still busy?
18:50 alinbsp has joined #perl6
18:50 clkao autrijus: svk ls -f doesn't have depotname part anymore
18:50 Aankhen`` I mean, are you still working on Emit.PIR?
18:50 Aankhen`` (I need review for a modification in PA01 :-)
18:51 autrijus clkao: oh. sorry.
18:51 autrijus Aankhen``: yes.
18:52 Aankhen`` OK.
18:52 Aankhen`` I shall ask another time, then. :-)
18:52 autrijus Aankhen``: mv it to 01Overview.kwid
18:52 autrijus when you have a bit time :)
18:52 Aankhen`` Alright.
18:52 cognominal how can one see the code emitted by pugs for a given backend?
18:52 pjcj has quit IRC (Remote closed the connection)
18:52 putter autrijus: re haddoc, will do
18:52 autrijus Aankhen``: also the bootstrap plan needs to be revised in light of hw2005.tex
18:52 autrijus putter: danke
18:52 pjcj has joined #perl6
18:52 autrijus cognominal: ./pugs -CPIR -e 'say 123'
18:52 autrijus cat dump.ast
18:52 Aankhen`` cognominal >> `pugs -C backend foo.p6`, `cat dump.ast`?
18:52 autrijus ditto for -CPugs etc
18:52 Aankhen`` autrijus >> I will revise it tomorrow morning.
18:53 autrijus andynu: danke!
18:53 cognominal thx
18:53 Aankhen`` (I'd do it right now, but I'm guessing I'd have to actually grok hw2005.txt, which would require more mental power than I possess at the moment)
18:53 Aankhen`` Also, should I delete 01Overview.html?
18:54 * Aankhen`` goes to do something brainless.
18:54 Aankhen`` UT2004, here I come...
18:54 Aankhen`` &
18:55 autrijus Aankhen``: don't delete it just now... :)
18:59 autrijus has quit IRC ("leaving")
18:59 svnbot6 r4691, Aankhen++ | * moved docs/PA01.kwid to docs/01Overview.kwid
19:00 autrijus has joined #perl6
19:02 dkf has quit IRC ()
19:05 dkf has joined #perl6
19:10 putter autrijus: fyi, I'm getting a type error on the new/current PIR.hs.
19:10 autrijus !.
19:10 autrijus really. what's it?
19:11 pasteling "putter" at 66.30.119.55 pasted "type error" (16 lines, 672B) at http://sial.org/pbot/11096
19:11 autrijus it worksforme. you don't have local additions?
19:11 putter I'll try a clean build.
19:13 autrijus fwiw, my line 105 doesn't look like that.
19:13 autrijus so you mean want to resync.
19:13 autrijus my l105is
19:13 autrijus        funC    <- compile fun
19:14 putter Thanks.
19:14 autrijus np :)
19:14 autrijus thank _you_
19:14 gaal nice meta line.
19:15 * autrijus purrs
19:15 * autrijus trying to think how to express C-style loops.
19:15 autrijus say... if you don't have c-style loops and have to reinvent it in perl6
19:15 svnbot6 r4692, putter++ | Added comment to Emit/PIR.hs.
19:15 autrijus how will you do it?
19:15 autrijus goto label?
19:15 autrijus and if you don't have goto label?
19:16 * autrijus ponders some more.
19:16 integral you have while loops?
19:16 autrijus currently I have nothing... all I have is function calls that get tail optimised automagically
19:17 autrijus but if you see a need for a fundamental while loop
19:17 autrijus I can add it too
19:17 autrijus basically I'm thinking in term of the primitive semantics
19:17 integral tail optimised function call == goto
19:17 autrijus you need letrec for that
19:17 autrijus oh wait. no, there's Y.
19:17 * autrijus forgot about Y.
19:17 autrijus so maybe we Y everything?
19:18 gaal Y not.
19:18 autrijus but Y...
19:18 integral this is in PIR?
19:18 autrijus integral: this is in PugsAST
19:18 autrijus the conceptual Perl6 ast
19:18 integral there isn't a &?CURRENT_FUNCTION equivalent?
19:18 autrijus has nothing to do with parse tree
19:18 autrijus nothing to do with pir either.
19:18 autrijus raw perl 6 semantic ast
19:18 integral oh, ok, you're deciding on basic perl6 primitives, I get it
19:18 autrijus yup.
19:19 autrijus which is something nobody had thought about until now :p
19:19 autrijus (but I see it as essential to get retargetable compilation)
19:19 autrijus I should look at PyPy's tree again.
19:20 Enveigler has quit IRC (Read error: 110 (Connection timed out))
19:21 * autrijus decides to look at what pypy considers as prim
19:23 Enveigler has joined #perl6
19:24 hlen_ has joined #perl6
19:29 putter autrijus: What would pop look like?  This: sub "&pop" [tempPMC] [tempPMC <-- "pop" $ [tempPMC]] --> [tempPMC]  not being it.  Once there are a few more examples it will be easier for folks to add things.
19:30 autrijus putter: right.
19:30 G2 has joined #perl6
19:30 autrijus putter: let me write pop etc
19:30 putter ok.  Thanks. ;)
19:35 Darren_Duncan ?eval class Foo { submethod BUILD( Str $bar ) { say "bar is '$bar'" } } my $baz = Foo.new( 'hello' );
19:35 evalbot6 Error: No compatible subroutine found: "&say"
19:35 autrijus my @a = (1,2,3); say (pop @a);
19:35 autrijus that should be a good example.
19:36 putter Thanks!
19:36 Darren_Duncan ?eval class Foo { submethod BUILD( Str $bar ) { say "bar is '$bar'"; } } my $baz = Foo.new( 'hello' );
19:36 evalbot6 Error: No compatible subroutine found: "&say"
19:37 Darren_Duncan what I get for output on my Pugs is: bar is ''
19:38 Darren_Duncan what is the problem here?
19:41 putter Re primatives, one might do a kernel language... (like Oz)
19:47 Boogie should something like this have to work? $num % all(2..$num/2) != 0;
19:47 svnbot6 r4693, andras++ | vmethods: add some math
19:47 autrijus putter: right... what's in Pugs.Compile.PIR as PAST
19:47 autrijus will end up as Pugs's kenrel lang
19:48 putter ah
19:48 autrijus so need to keep the nodes very narrow
19:48 Darren_Duncan ?eval my $z = 13; class Foo { submethod BUILD( Str $bar ) { $z = 26; } } my $baz = Foo.new( 'hello' ); say "z is '$z'"
19:49 evalbot6 Error: No compatible subroutine found: "&say"
19:49 autrijus in order for Eval to be fast and for retargetting other VMs.
19:49 autrijus (and Ms)
19:49 Darren_Duncan this is getting frustrating
19:49 autrijus Darren_Duncan: er. "say" is disabled in safe mode
19:49 Aankhen`` ?eval my $z = 13; class Foo { submethod BUILD( Str $bar ) { $z = 26; } } my $baz = Foo.new( 'hello' ); "z is '$z'"
19:49 evalbot6 'z is \'26\''
19:49 autrijus Darren_Duncan: so I think you'll be frustrated to no end.
19:49 Darren_Duncan how do we debug then?
19:50 autrijus Darren_Duncan: like Aankhen`` did
19:50 autrijus (or run it on feather)
19:50 Darren_Duncan uhuh
19:50 Darren_Duncan just a minute ...
19:50 Darren_Duncan ?eval class Foo { submethod BUILD( Str $bar ) { "bar is '$bar'"; } } my $baz = Foo.new( 'hello' );
19:50 evalbot6 \{obj:Foo}
19:50 autrijus that sounds correct.
19:51 Boogie is there somebody can answer my junctions question? ;)
19:51 Aankhen`` Darren_Duncan >> C<BUILD> doesn't return the value...
19:51 autrijus ?eval my @out; class Foo { submethod BUILD( Str $bar ) { push @out, "bar is '$bar'"; } } my $baz = Foo.new( 'hello' ); @out
19:51 Darren_Duncan class Foo { submethod BUILD( $bon: Str $bar ) { "bar is '$bar'"; } } my $baz = Foo.new( 'hello' );
19:51 evalbot6 ['bar is \'\'']
19:51 autrijus ?eval my @out; class Foo { submethod BUILD( Str $bar ) { push @out, "bar is '$bar'"; } } my $baz = Foo.new( bar => 'hello' ); @out
19:51 evalbot6 ['bar is \'hello\'']
19:51 Aankhen`` Also, C<BUILD> expects named parameters.
19:51 autrijus I think it's named only.
19:51 Aankhen`` So, you need to do it like autrijus did.
19:51 autrijus all *%_ is.
19:51 Aankhen`` submethod (*%_) { ... }
19:52 Aankhen`` submethod BUILD (*%_) { ... }
19:52 Darren_Duncan just a minute ...
19:52 PerlJam From whence does this idea that BUILD needs named parameters come?
19:52 Aankhen`` PerlJam >> One of the Apocalypses.
19:53 Aankhen`` Hmm, according to S12, it could take regular positional parameters too...
19:53 autrijus oh?
19:53 autrijus bug!
19:53 PerlJam indeed
19:53 autrijus write test!
19:53 Aankhen`` OK.
19:53 autrijus I completely missed that paragraph.
19:53 PerlJam Aankhen``++
19:53 autrijus but that's kind of usual with S12.
19:53 autrijus ;)
19:53 Darren_Duncan FYI, what I *really* want to do is wrap the built-in new() that checks its input arguments first and causes new() to return undef instead of an object if they are bad ... how do I do this?
19:54 Aankhen`` autrijus >> It's not specifically mentioned.
19:54 Aankhen`` However, there's an example.
19:54 Aankhen`` Submethods are for declaring infrastructural methods that shouldn't be inherited by subclasses, such as initializers:
19:54 Aankhen``    submethod BUILD ($arg) {
19:54 autrijus Darren_Duncan: well you can do your own new and call to super new
19:54 Darren_Duncan I did that before (checked in) but it wasn't being executed
19:54 autrijus ?eval class Foo { sub new { 123} } Foo.new
19:54 evalbot6 123
19:55 Darren_Duncan see the Locale-KeyedText I have checked in now ... maybe you can tell me why new() isn't being executed
19:55 Darren_Duncan run test LKT_20_MsgProps.t
19:55 autrijus ?eval class Foo { method new { 123} } Foo.new
19:55 evalbot6 123
19:56 autrijus you mean _10
19:56 autrijus ok
19:56 Darren_Duncan yes _10
19:56 autrijus Locale::KeyedText.new_message should do undef
19:56 autrijus is that the idea?
19:57 Darren_Duncan the first call should, the rest shouuldn't
19:57 Darren_Duncan in the test file
19:57 autrijus ?eval class Foo { method new { return } } Foo.new
19:57 evalbot6 undef
19:57 lumi_ has joined #perl6
19:57 Darren_Duncan maybe it has something to do with my class name having a :: in it
19:57 autrijus probably not
19:57 Darren_Duncan or that I say 'use' in a different file
19:58 Darren_Duncan the Locale::KeyedText::Message.new() gives a "can't find" error without the preceeding ::
19:58 svnbot6 r4694, Aankhen++ | * added bug test for positional parameters not being passed on to the BUILD submethod.
19:59 Darren_Duncan I put 'say' inside new_message and Message.new ... the first was printed, the second wasn't ...
19:59 Darren_Duncan suggesting that something like SUPER::new was being executed rather than my new() ...
19:59 Darren_Duncan since an object is always returned having empty properties
19:59 autrijus ?eval class Foo { method new { return } } ::Foo.new
19:59 evalbot6 undef
20:00 autrijus ?eval ::Foo.new(1); class Foo { method new ($x) { return } }
20:00 evalbot6 undef
20:00 Aankhen`` ?eval class Foo { method new { return "foo" } } ::Foo.new
20:00 evalbot6 'foo'
20:00 autrijus weird.
20:00 autrijus Darren_Duncan: hm, weird indeed.
20:00 Darren_Duncan did you run my test and can you see the problem?
20:01 autrijus I did run your test and I can't easily see the problem.
20:01 autrijus :-(
20:01 Darren_Duncan do the tests all say 'ok' then?
20:01 putter pugs: internal error: startTask: Can't create new task Please report this as a bug to glasgow-haskell-bugs@haskell.org,
20:01 Aankhen`` Darren_Duncan >> Where is the test?
20:01 Darren_Duncan see /ext/Locale-KeyedText/t/
20:02 autrijus Darren_Duncan: no, 12 failed
20:02 autrijus putter: er?
20:02 Aankhen`` Darren_Duncan >> I see only LKT_20_TrnProps.t, not MsgProps.t.
20:02 Darren_Duncan see 10_MsgProps
20:02 Aankhen`` OK.
20:03 Darren_Duncan I get 12 failed too, but I haven't been able to figure out why
20:03 Aankhen`` C:\Development\pugs\ext\Locale-KeyedText\t>pugs LKT_10_MsgProps.t
20:03 Aankhen`` pugs: *** Can't locate t_LKT_Util.pm in @*INC (@*INC contains: t/lib ext/Locale-
20:03 Aankhen`` KeyedText/t/lib C:\Development\Perl6\lib C:\Development\Perl6\lib C:\Development
20:03 Aankhen`` \Perl6\site\lib C:\Development\Perl6\site\lib .).
20:03 Darren_Duncan I put a 'say' at the start of my new() and it doesn't print anything
20:03 autrijus Darren_Duncan: right, because your new() is not being dispatched to.
20:03 Darren_Duncan so you confirmed that
20:03 Darren_Duncan the question is why
20:03 autrijus Darren_Duncan: move the entire class to before the declaration and drop the ::?
20:03 autrijus yeah the question is why since it's not a mmd.
20:04 Darren_Duncan will try that
20:05 Darren_Duncan er, move what before what?
20:05 autrijus move the entire class
20:05 autrijus before the other class that calls its new
20:05 Darren_Duncan just a minute
20:06 Darren_Duncan thanks, that improved things it seems
20:07 autrijus cool!
20:07 putter autrijus: re "er?", I went to add a say() to evalbot which raises a "sorry, no"... but the following made ghc go boom:
20:07 Darren_Duncan still other problems, but that seems to have helped ... will know soon
20:08 Darren_Duncan please keep watching this channel
20:08 putter EVALBOT_CODE='42' EVALBOT_TMPFILE=./deleteme EVALBOT_PUGS=/.../pugs perl -w evalhelper.p5
20:08 autrijus Darren_Duncan: sure
20:10 hlen_ has quit IRC ("Client exiting")
20:10 Aankhen`` autrijus, in the meantime, could you look over something for me to verify its accuracy? :-)
20:10 autrijus Aankhen``: sure.. ?
20:10 Aankhen`` http://rt.openfoundry.org/Foundry/Project/Source/index.html/pugs/checkout/docs/01Overview.kwid?rev=4691
20:10 Aankhen`` "What is the relationship between Pugs and Parrot?"
20:10 Aankhen`` And "Which compiler backends are available?  Will more be added?"
20:11 autrijus Aankhen``: ok... change Parrot AST to Parrot PIR.
20:11 Aankhen`` Ahh!
20:11 Aankhen`` One sec.
20:11 autrijus because there's no such thing as Parrot AST :)
20:11 Aankhen`` Yeh, I was a little confused about that.
20:12 autrijus otherwise fine.
20:12 putter Ahem.  Could someone on a non-x86_64 machine try the following:
20:12 putter EVALBOT_CODE='42' EVALBOT_TMPFILE=/tmp/deleteme EVALBOT_PUGS=`pwd`/pugs perl -w examples/network/evalbot/evalhelper.p5; cat /tmp/deleteme
20:12 Aankhen`` OK.
20:12 Aankhen`` OK.
20:12 Aankhen`` Er.
20:12 Aankhen`` Sorry
20:12 putter Thanks.  I get a ghc error.
20:12 Aankhen`` .
20:13 autrijus I'll brb.
20:13 Aankhen`` Um, I'm on Windows... should I still test?
20:14 Boogie I solved the prime question. But just another. Is :by() supported by Pugs? If yes, how should I use it?
20:14 Aankhen`` Apparently not.  No BSD::Resource. :-P
20:15 putter Aankhen``: Probably not worth the... yes, trouble.  Thanks anyway.
20:15 Aankhen`` Heh.
20:15 Aankhen`` NP.
20:15 orafu has quit IRC ("leaving")
20:15 svnbot6 r4695, Aankhen++ | * docs/01Overview.kwid: s:g/Parrot AST/Parrot PIR/.
20:18 Aankhen`` Boogie >> It doesn't seem to be supported.
20:18 Aankhen`` Reading A03, it seems to be an adverbial trait for the range operator, so you'd probably use it like so: 1..10 :by(2)
20:19 Boogie OK, thx. It was my opinion, too, but not worked.
20:20 Aankhen`` C<..>'s full name is C<< infix:<..>:(Int, Int) >>, so you can always use C<< infix:<..>($int, $other_int, :by($step)) >> to test.
20:22 Boogie Aankhen``, I think it's alien language to me... ;)
20:22 Aankhen`` Heh.
20:22 autrijus alien as in space aliens.
20:23 pasteling "Aankhen``" at 61.246.21.218 pasted "Testing :by" (7 lines, 226B) at http://sial.org/pbot/11104
20:23 Boogie repeat: it's chinese to me. :)
20:23 Aankhen`` Bah. :-P
20:24 putter Sigh.  And ghc head isn't even building at the moment.  Punt.
20:24 Aankhen`` I could try explaining if you want to understand. :-)
20:24 putter Hmm, unless there is a snapshot...
20:24 Boogie oh, not your paste code is "alien" to me. I check it.
20:24 Aankhen`` Ah.
20:25 Aankhen`` I wish learning new languages was as easy as "push @brain, $lang".
20:25 autrijus you think CPU thinks it's easy? ;)
20:25 Aankhen`` Hmm, but then again, that wouldn't be any fun.
20:25 Aankhen`` Hehe.
20:25 autrijus indeed.
20:26 Aankhen`` OK, I have a new wish.
20:26 autrijus For what do you wish? --More--
20:26 Boogie Ok, I understand it. So it seems, that it's not working yet. ;)
20:26 autrijus Boogie: that would be Totally Correct.
20:26 Aankhen`` I wish taking time out to do stuff was as easy as "push @day, $hours;".
20:26 autrijus Boogie: I don't even know how to parse it ;)
20:26 autrijus ?eval 3 :by(3)
20:26 evalbot6 Error:  unexpected ":" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
20:27 Aankhen`` It has to be used on a range.
20:27 Aankhen`` Something like:
20:27 autrijus ?eval 3,:by(3)
20:27 evalbot6 (3, ('by' => 3))
20:27 Aankhen`` ?eval 1..10:by(3)
20:27 evalbot6 Error:  unexpected ":" expecting digit, fraction, exponent, term postfix, operator, "does", "but", "is", "^..^", "cmp", "<=>", "^..", "..^", "..", postfix conditional, postfix loop, postfix iteration, ";" or end of input
20:27 autrijus right... what I'm not getting is
20:27 autrijus does all infix get that?
20:27 Aankhen`` Parse error...?
20:27 autrijus no
20:27 autrijus adverb
20:27 Boogie 1..10:by(3) is 1, 4, 7, 10
20:27 autrijus 100 * 200 :modulo(10)
20:27 Aankhen`` I didn't understand what you said. :-P
20:27 Aankhen`` Oh, wait.
20:28 Aankhen`` I think only range gets :by.
20:28 autrijus sure
20:28 autrijus but does all infix get potentially adverbs.
20:28 Aankhen`` Doesn't make sense to have 1+5:by(3).
20:28 autrijus is what I'm asking :)
20:28 Aankhen`` Ah.
20:28 Aankhen`` Yes, AFAIK.
20:28 autrijus ok, that makes it significantly easier.
20:28 Aankhen`` Any operator could get an adverbial modifier.
20:28 Aankhen`` But please wait.
20:28 Aankhen`` I am checking the Synposes.
20:29 autrijus also, an adverbial?
20:29 autrijus what about multiple?
20:29 Boogie S09 has a short info about it.
20:29 Aankhen`` Ah.
20:29 Aankhen`` As a unary prefix operator, you may also apply adverbs:
20:29 Aankhen``    for *$handle :prompt('$ ') { say $_ + 1 }
20:30 Aankhen`` I think all operators can get adverbial modifiers.
20:30 Aankhen`` (if not all functions)
20:30 autrijus cool. write tests then :)
20:30 Boogie And it should work, too: 1...:by(2)
20:30 autrijus for userdefined too.
20:30 Aankhen`` I'll do that, just going to read some more to make sure I grok it.
20:30 autrijus Aankhen++
20:31 vcv has quit IRC (Nick collision from services.)
20:32 vcv has joined #perl6
20:32 vcv has quit IRC (Nick collision from services.)
20:33 vcv-- has joined #perl6
20:35 Darren_Duncan I committed what I have so far so we're all on the same page
20:35 dkf has quit IRC ()
20:35 autrijus yay. "1=2" is now a compile time error in the compile monad.
20:36 * autrijus is happy that more and more things are catched/warned/strictness-controlled at compile level
20:36 integral autrijus++
20:36 Darren_Duncan I agree
20:37 autrijus integral: I found that GADTs partially obsoletes metacomputation.
20:37 autrijus because data types are now as good as functions.
20:37 autrijus so it can guide the dynam monad while being fully reified.
20:37 integral wow, that sounds good
20:37 autrijus integral: Pugs.Compile.PIR's PAST structure is that
20:37 autrijus it guides the underlying Trans monad
20:37 autrijus instance Translate (PAST a) a where
20:37 autrijus   ...
20:37 svnbot6 r4696, Darren_Duncan++ | Locale-KeyedText updates : moved 'Locale::KeyedText' class declaration so it is the last one rather than the first; this is so that Message.new() and Translator.new() actually get executed; also fixed a syntax error in Translator.new()
20:38 integral hmm, so is AST.Internals looking any better now?
20:38 rjbs_ is now known as rjbs
20:38 autrijus integral: it will, once I switch the current Eval
20:38 autrijus to eval PAST (the syntax tree) instead of Exp (the parse tree)
20:38 integral sounds good :-) autrijus++
20:38 Aankhen`` ?eval 1..10[0,1]
20:38 autrijus we can finally do away with this "evaluate the parse tree" mess!
20:38 evalbot6 (1, 2)
20:39 Aankhen`` ?eval 1...[0,1]
20:39 evalbot6 Error:  unexpected "[" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
20:39 Aankhen`` ?eval (1...)[0,1]
20:39 evalbot6 [1, 2]
20:39 integral it's a pity all these cool ideas have a "hack lots and lots and lots of code" stage =)
20:39 autrijus integral: nah, you just have to spec them down.
20:40 autrijus it's a nice byproduct that our specification language, which is called Haskell, is also executable
20:40 autrijus ;)
20:40 Aankhen`` ?eval my @foo = (1...); @foo[0,1]
20:40 evalbot6 pugs: out of memory (requested 1048576 bytes)
20:40 integral hmm, maybe,  but you can't get away from the "convert everything in Eval.hs at once" thing
20:40 Aankhen`` Hmm.
20:40 Aankhen`` How does that work?
20:41 integral Aankhen``: afaik it's because = for an array is eager
20:41 Aankhen`` Can I use lazy { (1...) }?
20:41 Darren_Duncan currently debugging a problem where an array arg seems to always contain exactly 1 element ...
20:41 Darren_Duncan affecting 20_TrnProps ...
20:41 Aankhen`` Bleh, that doesn't work.
20:41 Boogie oh_my_god: ?none(2..sqrt($value)).is_factor_of($value); :D
20:42 Aankhen`` ?eval 1...[0,1]
20:42 evalbot6 Error:  unexpected "[" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
20:42 Aankhen`` ?eval (1...)[0,1]
20:42 evalbot6 [1, 2]
20:42 Aankhen`` That works, but assigning it to an array doesn't. :-(
20:45 autrijus integral: I can :)
20:45 autrijus integral: by having a PAST backdoor to Exp.
20:45 autrijus integral: so what's not compiled gets interpreted.
20:46 integral 8-)   ok, that's scary :)
20:48 autrijus PRaw Exp
20:48 autrijus just like that :)
20:48 autrijus so have two runloops
20:48 autrijus I've got it all worked out :D
20:50 putter ghc bug report sent.  pop task_stack.
20:50 svnbot6 r4697, andras++ | vmethods: more more math
20:51 Aankhen`` autrijus >> I will submit the test in the morning.
20:51 Aankhen`` My mother's telling me to go sleep.
20:51 Aankhen`` G'night.
20:51 autrijus Aankhen``: you rock. go sleep.
20:51 Aankhen`` has quit IRC ("Giant robots are cool. [Time wasted online: 10hrs 56mins 31secs]")
20:51 autrijus ntie!
20:58 arcady too bad "for 1... -> $i { last if $i > 10 }" doesn't work
21:02 Shillo has joined #perl6
21:02 putter I propose to add the following line to evalbot.p6 evalhelper():
21:02 putter  $code = 'sub say(*@a){die("Cant say() in evalbot")};' + $code;
21:02 putter But I can't really test it.
21:02 autrijus putter: just commit ahead then.
21:03 autrijus we'll fix when it's broken
21:03 putter Ok.  Tnx.
21:03 Shillo Hullo, folks!
21:03 arcady except you don't use '+' for string concatenation!
21:03 autrijus right.
21:03 Shillo Hey, just occured to me to check whether I remember an apocalypse correctly...
21:03 Shillo What exactly is the left side of := supposed to be?
21:04 Shillo I think I remember that := really imitates parameter binding in a function call.
21:04 Shillo Or... ?
21:04 iamchaos has left
21:04 autrijus Shillo: that's right.
21:04 autrijus however it's poorly implemented at the moment.
21:04 * Shillo nods. 'what I wanted to ask next.
21:05 Shillo (+$x, +$y) = (:x<foo>, :y<bar>) should parse?
21:05 autrijus yes, but currently not
21:06 * Shillo noddles.
21:07 arcady well, it does parse... as something... something not very correct
21:07 * Shillo looks into writing a test, just for fun....
21:12 chip what does that + mean?
21:12 svnbot6 r4698, putter++ | evalbot.p6 now says it cant say().
21:12 svnbot6 r4699, putter++ | evalbot.p6 tweak.
21:12 svnbot6 r4700, putter++ | evalbot.p6 another tweak.  Sigh.
21:12 chip oh dear, that's 'named parameter' +?
21:13 chip ?eval (+$x) := (:x<1>)
21:13 evalbot6 Error: Cannot bind this as lhs: Pos (MkPos "<eval>" 1 2 1 5) (App (Var "&prefix:+") Nothing [Var "$x"])
21:13 chip jeepers
21:13 Shillo chip: I think := in pugs currently just behaves like =
21:14 Shillo That's kinda bleh, I so liked [foo, bar, *baz] = list idiom that I added it in the one scripting language that was *fully* subjected to my design hackery. :)
21:15 Shillo chip: Er, I mean, just /parses/ like =
21:15 * putter , in wait state for PIR.hs examples, ponders what to do next.
21:17 putter Aankhen``++ # perl6 as "meta-language"
21:19 putter autrijus: Is there any community you wish was more involved in pugs development?  (so many languages, so little time)
21:19 svnbot6 r4701, Darren_Duncan++ | Locale-KeyedText update : changed all LKT_20_TrnProps.t tests that passed array ref args so they pass parenthesized lists instead; previously each Translator array argument was always getting a single argument that was an Array
21:23 nothingmuch has joined #perl6
21:24 autrijus putter: elaborate?
21:24 Shillo ($a, @rest) = (1,2,3) <-- works
21:24 * autrijus is hunting down a rather weird bug in the Writer monad's "pass" function
21:24 Shillo ($a, *@rest) = (1,2,3) <-- works but @rest ends up empty. Bug?
21:25 nothingmuch fucking ISP
21:25 nothingmuch every 25 minutes the connection goes down
21:25 autrijus Shillo: slurpy star at assignment lhs is compile time error
21:25 autrijus ideally
21:25 autrijus that only makes sense in rvalue context.
21:25 autrijus but becaus pugs's Eval has no notion of compile time error
21:25 autrijus it ends up being a runtime bogusness.
21:25 Shillo Duh! I meant :=... testing again...
21:26 Shillo ($a, *@rest) := (1,2,3) <-- parse error
21:26 Shillo ($a, @rest) := (1,2,3) <-- works but @rest == (2)
21:26 Shillo Hm, I think the latter is okay, actually.
21:27 autrijus right.
21:27 lumi_ has quit IRC (Read error: 131 (Connection reset by peer))
21:27 Shillo Former?
21:27 lumi_ has joined #perl6
21:28 autrijus former is borken.
21:32 vitaminmoo has quit IRC ("Leaving")
21:32 Darren_Duncan based on what I've seen so far with such as @foo arguments, I'm thinking of making my Perl 6 code look more Perl 5 ish and use a $foo argument instead, which would hold an Array reference ... then invoking said function with ['a','b','c'] should do what I expect
21:33 Darren_Duncan and for the near future it is important that my Perl 5 and Perl 6 versions of the same modules can be used in the same way
21:33 G2 has quit IRC ("oops")
21:34 Darren_Duncan so I'll probably undo my last commit as part of this change
21:34 justatheory has joined #perl6
21:34 Darren_Duncan anyway, have to leave comp for awhile and will attend to this later ... have a good day y'all!
21:35 Darren_Duncan fyi, in the meantime, the checked-in LKT_20_TrnProps.t currently passes all tests
21:35 autrijus woot
21:35 autrijus Darren_Duncan++
21:36 Darren_Duncan I'm still having problems with hashes though, which affects 10_MsgProps
21:36 Darren_Duncan 20_TrnProps is arrays by contrast
21:36 Limbic_Region has joined #perl6
21:37 * Shillo commits the tests for the conversation I just had. :)
21:37 dkf has joined #perl6
21:37 svnbot6 r4702, shillo++ | tests: lhs of := is a parameter list (tested keywords and the slurpy)
21:37 Darren_Duncan autrijus, I would appreciate it if you could improve Pugs so I can declare my classes in any order and calling new() would still work
21:37 Enveigler has quit IRC (Read error: 110 (Connection timed out))
21:38 autrijus Darren_Duncan: I am in fact working on that.
21:38 autrijus (compilation phase)
21:38 autrijus please be patient :)
21:39 khisanth_ has joined #perl6
21:40 Khisanth has quit IRC (Nick collision from services.)
21:40 khisanth_ is now known as Khisanth
21:40 Ovid has joined #perl6
21:43 autrijus putter: I checked in some more pir prims.
21:43 Darren_Duncan great ... anyway, back in while
21:43 autrijus Darren_Duncan: the thing is that currently there's only parse time and runtime
21:43 autrijus so any info (like classes) not available immediately in parse time
21:43 autrijus is lost.
21:43 Darren_Duncan yes
21:43 autrijus so another compiler phase will fix this.
21:43 Darren_Duncan okay
21:44 Darren_Duncan this probably goes without saying, but I would like the flexability I have in Perl 5 with most reasonable things
21:44 autrijus right.
21:44 autrijus me too.
21:44 autrijus <- heavily invested in perl5 :)
21:45 lumi_ has quit IRC ()
21:45 Darren_Duncan it also occurs to me that as I've continued hacking LKT for Perl 6, its looking more like perl 5 as I go along
21:45 autrijus nod.
21:45 Darren_Duncan so I'm not really using that many Perl-6-added features
21:45 autrijus because pugs is currently implementing very few p6 oo features.
21:45 autrijus that will also improve with time :)
21:45 Darren_Duncan question: how long are you online today?
21:45 Darren_Duncan how much longer that is
21:46 autrijus Darren_Duncan: not much...
21:46 autrijus <.5hr
21:46 autrijus I hope.
21:46 Darren_Duncan so I thought
21:46 Shillo autrijus: Hey, ye still in the neibourhood? :)
21:46 autrijus Shillo: you mean austria?
21:46 Darren_Duncan so I'll work on my own the rest of the day and discuss with you again tomorrow, for the most part
21:46 Shillo autrijus: Yep!
21:46 autrijus Darren_Duncan: cool. thanks
21:46 autrijus Shillo: yes
21:47 Shillo Heh... been doing 1 trip to Vianna/month till about half a year ago (project at work).
21:47 Darren_Duncan that said, I will try to confirm a fix for the new() thing while you are online now if it is committed soon ... otherwise tomorrow
21:48 Darren_Duncan just give the word ...
21:48 svnbot6 r4703, autrijus++ | * Sequentialised even more evaluation order.  This now works:
21:48 svnbot6 r4703, autrijus++ |     my $x = 9; say $x++; say $x
21:48 Shillo So it's neighbourhood. ;)
21:49 vitaminmoo has joined #perl6
21:51 putter autrijus: re elaborate?  Embedding languages in p6 is so easy, I had to start n of them.  So I was trying to find a way to choose which to poke further.
21:52 putter autrijus: re pir, great.  will putter.
21:53 iblechbot has quit IRC (Connection timed out)
21:54 putter Thanks, autrijus.
21:57 autrijus np :)
21:57 autrijus I'm feeling like Day 4 all over again.
21:57 pasteling has quit IRC (Client Quit)
21:57 * autrijus just got substr() working
21:58 mugwump including lvalue ?
21:58 mugwump hi btw
21:58 autrijus hi mugwump.
21:58 autrijus no, rvalue only at the moment because parrot doesn't do lvalue substr natively.
21:58 pasteling has joined #perl6
22:00 mugwump on other subjects, I was wondering if there was some kind of model of PMCs that might be relevant to study for the MetaModel...
22:01 mugwump do you model PMCs at all or just target them?
22:03 autrijus just target them.
22:03 hlen has quit IRC (Remote closed the connection)
22:03 autrijus but we get to create our own PMC/ParrotObjects.
22:04 alinbsp has quit IRC ()
22:07 mugwump which source file is best to read?
22:07 mugwump Emit/PIR.hs?
22:10 autrijus mugwump: no, the PDDs
22:10 autrijus pdd15
22:11 mugwump oh cool
22:32 G2 has joined #perl6
22:32 vcv-- has quit IRC (Read error: 104 (Connection reset by peer))
22:40 vcv- has quit IRC (Read error: 145 (Connection timed out))
22:40 svnbot6 r4704, autrijus++ | * Add backdoors to raw Exp in PAST, and to raw Doc in PIR.
22:40 svnbot6 r4704, autrijus++ |   This is to get the "compile if you can, interpret if you can't"
22:40 svnbot6 r4704, autrijus++ |   semantic working for gradual transition of Eval.hs.
22:40 svnbot6 r4704, autrijus++ | * As an example, the old Parrot backend is now bridged for
22:40 svnbot6 r4704, autrijus++ |   (Syn "loop") syntax; this means mandelbrot runs for free. ;)
22:40 svnbot6 r4704, autrijus++ | * For lexical names, generate a ".local" name instead of using
22:40 svnbot6 r4704, autrijus++ |   fresh supply of registers.  That will make lexical access
22:40 svnbot6 r4704, autrijus++ |   potentially much faster (constant time) without going thru
22:40 svnbot6 r4704, autrijus++ |   the fetch_lex code.
22:43 G2 has quit IRC ("oops")
22:45 * autrijus waves &
22:49 rhandom has quit IRC (Read error: 60 (Operation timed out))
22:59 knewt_ has joined #perl6
23:03 Shillo has quit IRC ("Leaving")
23:15 Limbic_Region has quit IRC ("tiuq\")
23:34 elmex has quit IRC ("leaving")
23:34 svnbot6 r4705, putter++ | Added abs() and prefix:- to Emit/PIR.hs.  But - seems to be returning a ResizablePMCArray?!?
23:34 obra Where do the tests of synopses live these days?
23:37 _meppl_ has joined #perl6
23:38 meppl has quit IRC (Read error: 60 (Operation timed out))
23:43 dkf has quit IRC ()
23:54 putter Any parrot-familiar folk around?  (I seek clarity on infix .MMD_foo)

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

Perl 6 | Reference Documentation | Rakudo