Time  Nick            Message
00:00 rafl            I installed the last Debian system for my personal use 3 years ago. It saw 4 systems since then, afaik. It also survived some hardware crashes.
00:01 r0nny           well - hw fail = hd fail
00:01 r0nny           other broken stuff is no problem for linux in geral
00:01 r0nny           well - at least cpu ram and hd interface should work, too ;P
00:02 rafl            hard disk failures as well. There are redundant disks and backups, of course.
00:02 r0nny           yeah
00:02 r0nny           but sonmeone needs to pay all this
00:02 Jooon           I know kane is thinking/working on 6pan and have thought lots about how to support different package managers in a sane way. are there other efforts?
00:02 rafl            Hardware is cheap.
00:02 r0nny           i usually just backup important data
00:03 Jooon           does freepan have anything like that at all?
00:03 rafl            Jooon: No and no, afaik.
00:08 undrdawg        Yaakov is gay and eats poop
00:08 undrdawg        jfyi
00:10 Juerd           undrdawg: Yaakov is not here.
00:10 r0nny           hmm
00:11 r0nny           again such kind of person ...
00:12 undrdawg        yzyz
00:12 undrdawg        asshole 4 lyfe
00:13 rafl            As a friend of mine keeps to say in such situations: "Dei Mudder Sei G'sicht!"
00:14 Jooon           "yo mama in your face!"? :)
00:15 r0nny           rafl: where are u from ?
00:16 rafl            Jooon: I don't think that's a good translation. You probably need to know the movie with the same name to get the joke.
00:16 rafl            r0nny: Chemnitz, Germany.
00:19 r0nny           cool
00:19 r0nny           im from germany, too
00:21 r0nny           omg
00:21 r0nny           ghc build made me see gnu-as on 99% cpu for the first time
00:22 r0nny           well - good night
00:34 dduncan         quick question ...
00:35 dduncan         inside a class, are non-method routines that should be callable by users of the class be 'sub' or 'submethod'?
00:35 dduncan         I say non-method because they can be invoked either on the class name or on an object of the class, but they don't apply to any object
00:35 dduncan         some utilities would be this kind, as would new()
00:36 dduncan         eg, is new() a sub or a submethod or something else?
00:36 dduncan         or I'll try looking it up ...
01:33 theorbtwo       ./pugs -CPerl5 ./src/perl6/Prelude.pm dies.
01:33 theorbtwo       Is there some better way to get the PIL for the Prelude?
01:35 mugwump         bah, me-- # not reading higher levels of thread before posting on leaf
03:25 svnbot6         r7819 | stevan++ | Perl6::ObjectSpace -
03:25 svnbot6         r7819 | stevan++ | * added block type, which is a parameterless version of closure
03:25 svnbot6         r7819 | stevan++ |   (although you can still access it's local env if needed)
03:25 svnbot6         r7819 | stevan++ | * added &bit::and and &bit::or both which take a block and return
03:25 svnbot6         r7819 | stevan++ |   the appropriate boolean value, this can be used to implement
03:25 svnbot6         r7819 | stevan++ |   conditionals instead of using the native control strucutres
03:25 svnbot6         r7819 | stevan++ |     - added tests for these
03:25 svnbot6         r7819 | stevan++ | * added &list::each and &list::apply which can each take either
03:25 svnbot6         r7819 | stevan++ |   a closure or a block, and apply it to each element of the list
03:26 svnbot6         r7819 | stevan++ |   (&each is rw access to list elements, while &apply is ro)
03:26 svnbot6         r7819 | stevan++ |      - added tests for these
03:26 svnbot6         r7819 | stevan++ | * some refactoring in Bootstrap.pm as well, nothing major
07:05 r0nny           yo
07:06 azuroth         hey
09:40 r0nny           anyone there ?
09:40 r0nny           pugs told Could not find module `Distribution.Simple':
09:40 r0nny           while compile setup
09:43 rafl            Gentoo seems to seperate moduel like Distribution.Simple and Cabal from the ghc distribution. There's an own package for it.
09:46 r0nny           darn - something is broken :/
09:46 r0nny           dome commands cant get the actual wd :/
09:46 r0nny           damn this ghc
09:46 r0nny           everything just broke after i installed it
09:49 rafl            Yes, ghc seems to be the culprit.
09:50 r0nny           culprit?
09:50 rafl            Indeed.
09:51 r0nny           whats the german word for this ?
09:51 r0nny           oh
09:51 rafl            Schuldige, der. Or maybe Uebeltaeter, der.
09:52 r0nny           darn
09:53 r0nny           it jsut boke the env of the parrent processes while installing
09:53 r0nny           maybe it will work now
09:53 r0nny           yay - works
09:53 * r0nny         beats the hell out of ghc's build system
09:54 r0nny           it is really stupid made
09:54 rafl            The env of a parrent process? I doubt that's possible (not sure though)
09:55 r0nny           who knows
09:55 r0nny           linux is a mess
09:55 r0nny           a real mess ;P
09:57 rafl            I don't think so.
09:57 rafl            It's also not specific to linux. It's POSIX that defines such shings.
09:57 rafl            s/shings/things/
09:58 r0nny           in the linux kernel there are soo many stupid things
09:59 r0nny           well - its stable and good enough, to be considered in production envs instead of win32
09:59 rafl            Go ahead, fix them. It's free software.
10:00 r0nny           rafl: some of themarent easy to fix without breaking binary combatibility to older apps
10:01 r0nny           for example the missuses of the preprocessor in the syscall tables for archs with multiple syscall calling modes
10:01 rafl            I doubt it's a bug then. Programs should only rely on standards like POSIX.
10:01 r0nny           sell - source-combatibility wont break
10:01 r0nny           well ;P
10:02 rafl            The Linux kernel breaks source compatibility often enough.
10:02 r0nny           hence the linux mess ;P
10:06 r0nny           yay - pugs compiles good now :)
10:08 r0nny           omg - pugs:run takes way too long ;P
10:09 rafl            Try compiling with --omg-optimized
10:10 r0nny_          re
10:11 r0nny_          rafl: om actully doing - how else should it take sooo long ?
10:11 r0nny_          hmm
10:11 r0nny_          or is there really a --omg-optimized flag ;P
10:12 r0nny_          damn - still the error in prelude.pm
10:12 r0nny_          again "Could not find module `Pugs.Internals':
10:12 rafl            Really? I must have muddled something up.
10:13 r0nny_          darn
10:13 r0nny_          where to get Pugs::Internals
10:17 rafl            I doubt you're doing this right.
10:17 r0nny_          i dont know, what is wrong
10:17 rafl            Pugs.Internals is a haskell module inside the src tree.
10:17 r0nny_          pugscc tells it cant find it
10:18 r0nny_          so i think thats the problem
10:19 rafl            Registered the pugs haskell interface with your ghc?
10:22 r0nny_          i think thats missing
10:26 r0nny_          but what else might be broken - the pugs binary seems to be incappable of using it, too
10:26 rafl            It's statically compiled into the pugs binary.
10:27 r0nny_          hmm
10:27 r0nny_          then it shouldnt fail on calls to it from prelude
10:31 r0nny_          ARGH
10:31 r0nny_          i think i found the problem
10:34 r0nny_          the calls in prelude to the internal stuff seem to call to the wrong anmespace
10:35 * rafl          doesn't think so, again.
10:36 r0nny_          well - it might just be my stuff is damn broken
10:44 r0nny_          but i stil dont understand why exactly this happens
10:45 rafl            If you would nopaste some errors people might help.
10:45 r0nny_          it allways the same error
10:46 r0nny_          it just doesnt like the call to the pugsinternal eval stuff like yaml, pir, ... - but the perl6 ecal actually works :/
10:46 wolverian       autrijus, re: Conc naming. just Concurrent? long names aren't always that bad, and one can alias things anyway.
10:47 rafl            r0nny_: Paste something.
10:53 r0nny_          ok - prepared http://rafb.net/paste/results/OgLcGU99.html
10:53 r0nny_          im using the actual svn version
10:54 rafl            Try a make realclean and recompile again.
10:56 r0nny_          portage does a complete cleanup on rebuild
10:57 rafl            If the maintainer did it right.
10:57 r0nny_          it allways deletes the working dir, creates a new working dir, and copyes the svn sync dir of pugs there
10:58 rafl            I can only speak of the Debian package which is totally perfect, of course. ;-)
10:58 azuroth         rafl: oh yeah... I never did end up testing that for you ^_^;
10:59 rafl            azuroth: I can't even remember what there was to be tested. So I think the problem solved itself. :-)
10:59 r0nny_          btw - rafl does my example work on your machine ?
11:01 rafl            It doesn't croak, yes.
11:01 r0nny_          hmm
11:02 r0nny_          time to submitt a bug report to gentoo
11:04 r0nny_          hmm - im disabling the perl5 an dparrot integration
11:04 rafl            Yeah, gentoo users usually write funny bug reports: http://bugs.gentoo.org/show_bug.cgi?id=74072
11:06 r0nny_          omg
11:06 azuroth         I feel sorry for anyone without apt...
11:06 r0nny_          idiots
11:07 r0nny_          apt broke my system too much and too often
11:07 rafl            It's always apt, yes. Isn't it, azuroth? :-)
11:08 r0nny_          portage used sane never breaks the system in a unrepairable way
11:09 rafl            As I said yesterday: I'm using a combination of unstable and experimental for three years now without reinstalling. This installation also saw 4 or more systems it ran on.
11:10 azuroth         I accidently broke my ubuntu system with apt. well, half-accidently
11:11 azuroth         argh accidentally
11:11 rafl            I can't think of a situation where an error on a Debian system which was produced by apt/dpkg can't be recovered.
11:11 r0nny_          i had them on many machines
11:12 rafl            Even stuff like 'dpkg -P apt dpkg tar' can be recovered.
11:12 r0nny_          where different libs where blocking themself
11:12 azuroth         hmm. yeah, I probably would've been able to fix it by changing my sources back to real ones
11:12 rafl            Oh well... how does a library that is blocked break a system?
11:12 azuroth         but I wanted to try real debian anyway
11:12 r0nny_          libc ?
11:12 r0nny_          after tat apt stoped working
11:13 r0nny_          it just complained about boken stuff to receover, and couldnt recover
11:13 rafl            r0nny_: If it's blocked it simply doesn't get upgraded. Oh well.. wait two days until it works again and upgrade then.
11:13 rafl            apt stoped working with a new libc version? I doubt that because libc uses versioned symbols. However. You can still install packages and upgrade your apt to something working without using apt.
11:14 r0nny_          apt stopped working vasue id allways tols stuff about broken packages
11:14 r0nny_          eh told
11:15 rafl            That's always recoverable, as I said. Packages also don't break on their own. However, this is getting way too much off topic again for me.
11:15 r0nny_          yeah
11:16 r0nny_          well - i never want debian on my private systems again
11:33 xinming         r0nny_: well, then which distribution will you follow? ;-)
11:35 rafl            xinming: Make a guess.. :-)
11:36 xinming         Debian is perfect most time. though, It's abit outdated for testing.
11:38 r0nny_          hmm
11:38 r0nny_          im going to uni now
11:38 webmind         xinming, tried experimental?
11:38 r0nny_          after that im going to find the wrong thing the gentoo ppl did to the pugs ebuild
12:18 xinming         webmind: yes, I've used sid for over months, But tired of doing dist-upgrade everyday. >_<
12:19 theorbtwo       Hm, now that there are actually people here...
12:19 theorbtwo       ./pugs -CPerl5 ./src/perl6/Prelude.pm dies.
12:20 theorbtwo       Is there a better way to get the PIL of the Prelude?
12:20 theorbtwo       Also, what does
12:20 theorbtwo       When an alarm object is garbage collected, the alarm is stopped automatically.
12:20 theorbtwo       Under void context, the implicit alarm object can only be stopped by querying
12:20 theorbtwo       C<.alarms> on the current process.
12:20 theorbtwo       (S17 draft) mean.  Does it mean to have an unless in there?
12:21 webmind         xinming, hmk
12:21 theorbtwo       If the alarm method is called in void context, surely that means it's return is garbage-collected immediately...
12:24 liz6            theorbtwo: the idea was that in void context, nothing is returned and therefore nothing would be gc'd
12:24 liz6            and therefore the alarm would not be stopped
12:26 liz6            doesn't that make sense?
12:27 liz6            or is that too magical?
12:27 theorbtwo       It makes some sense, but seems too easy for a niave user to do by accident.
12:27 theorbtwo       My worry is mostly just with the wording, though, which seems contridictory.
12:28 liz6            the naive user probably doesn't know about anything but alarm() in void context?
12:28 theorbtwo       Perhaps just have the effect by a forever adverb?
12:28 theorbtwo       The naive user, I thought, would think it'd do the same thing it does in p5.
12:29 theorbtwo       It occours to me that the void-context behavor described /is/ closer to p5, though.
12:29 liz6            indeed, that was the idea...
12:29 theorbtwo       Yeah, thinking about it again, just a silly wording complaint that I probably should have not vocalized.
12:30 theorbtwo       The first question is the one I really want to know the answer to, though.
12:31 liz6            the PIL of the Prelude?
12:31 liz6            no idea, I'm a pugs n00by
12:32 theorbtwo       I used to be a non-n00by, but was away for several months, and regressed into n00byhood.
12:34 autrijus        theorbtwo: ./pugs -CPIL
12:34 autrijus        that gives the pil in haskell format
12:34 autrijus        which may or may not be more readable than -CPerl5 and -CJS
12:35 theorbtwo       Right, but ./pugs -CPerl5 ./src/perl6/Prelude.pm dies.
12:35 theorbtwo       *** Compile error -- invalid Pugs.PIL1.PIL_Expr:
12:35 theorbtwo           Stmts (App (Var "&postfix:++") Nothing [Var "$?FIRST_RUN"]) (Syn "=" [Var "$?FIRST_RESULT",App (Val (VCode (MkCode {isMulti = False, subName = "", subType = SubBlock, subEnv = Nothing, subAssoc = "pre", subParams = [], subBindings = [], subSlurpLimit = [], subReturns = (mkType "Any"), subLValue = False, subBody = Noop, subCont = Nothing}))) Nothing []])
12:36 theorbtwo       (Same with -CPIL.)
12:36 theorbtwo       ./pugs -CPerl5 -e 'say "Hello, world"' works just fine.
13:38 wolverian       damn the prefix = is ugly
13:41 Limbic_Region   salutations all
13:42 theorbtwo       Greetings, Joshua.
13:44 xinming         wolverian: but it is meaningful
13:44 wolverian       xinming, not enough, I think.
13:45 xinming         wolverian: think it would get the line from file one by one. :-)
13:45 theorbtwo       It is meaningful, but still too ugly.
13:45 wolverian       theorbtwo++
13:45 wolverian       maybe we could use read()? :)
13:45 theorbtwo       I think the .readline and .readlines methods aren't going away.
13:45 xinming         wolverian: well, @Larry like punctuation.
13:46 xinming         It's hope, Not think. :-P
13:46 xinming         hmm, I agree with you, But I'd prefer meaningful rather than beautiful.
13:47 xinming         I should use noun here.
13:47 theorbtwo       I tend to think that my @lines = =$fh; is ugly.
13:47 * xinming       is scraching his head about his ugly English...
13:48 theorbtwo       xinming: It reads OK as "meaningful rather then beautiful" or as "meaning rather then beauty".
13:48 xinming         s/about/for/
13:48 Limbic_Region   theorbtwo - out of curiosity, what are you doing these days to keep yourself busy?
13:49 theorbtwo       Hacking on DVB stuff lately.
13:49 xinming         theorbtwo: yes, I agree, But @lines = $fh, for $fh will be evaluate in list context, So, It might read all lines into @lines.
13:49 xinming         hmm, maybe I am wrong. :-(
13:49 theorbtwo       No, that'd assign $fh to @lines, not read anything, because that's an infix = and not a prefix =.
13:50 xinming         hmm, how about this? *$fh?
13:51 theorbtwo       Donno what that would do.
13:51 xinming         neither do I. :-P
15:00 xinming         hmm, anyone here knows how to get the content using post from CGI?
15:18 Khisanth        xinming: read from STDIN? :)
15:20 xinming         Khisanth: yeah, I finally find it myself. thanks anyway, But found It's a problem to decode %num into chinese character. :-(
15:21 Khisanth        hmm well you would have to know the encoding?
15:22 theorbtwo       Khisanth: It'd probably be URI-encoded UTF-8.
15:23 xinming         yes, I tried to know how cgi works underneath.
15:23 xinming         hmm, not a problem, will try to google.
15:31 raptorXXX       In ---->   sub foo (:blah ...)
15:31 raptorXXX       what :blah means
15:32 raptorXXX       is it a "note" or what?
15:32 eric256         :blah(10) is the same as (blah => 10)
15:32 eric256         hold on. in the definition of a sub? or the call to it?
15:33 raptorXXX       call to it
15:33 raptorXXX       oops, in both
15:33 eric256         i've never seen it in the defintion. but thats what it means in the call
15:34 raptorXXX       yeah , thanx
15:34 xinming         raptorXXX: if no (10) is specified, It's a key pair without value
15:35 xinming         A bit like ( blah => undef ) maybe.
15:35 raptorXXX       i see.. cant rememeber where i saw it..so that i can post a link
15:37 xinming         hmm, Not sure if this is obselete as I hadn't read Synopsis over 2 month. Sorry,
15:37 raptorXXX       one stupid question :)
15:38 raptorXXX       i was always wondering why all ppl use for examples : foo & bar
15:38 raptorXXX       does they have some real meaning
15:38 raptorXXX       or it is just coincidence
15:39 eric256         foo and bar are just standard example variables...its like a big flag  * THIS ISN'T REALY*
15:40 fanf2           rfc 3092
15:41 liz6            see http://search.cpan.org/~book/Acme-MetaSyntactic/ if you don't like to use foo and bar yourself
15:42 raptorXXX       i see :)
15:43 raptorXXX       FUBAR (`Fucked Up Beyond All       Repair'), later modified to foobar.
15:43 raptorXXX       he he
15:43 liz6            but please refrain from using http://search.cpan.org/~jfenal/Acme-MetaSyntactic-RefactorCode  ;-)
15:46 Limbic_Region   liz6 - did you get a chance to read the meeting minutes from latest Perl6 Meeting?
15:46 Limbic_Region   http://use.perl.org/~luqui/journal/27425
15:47 liz6            L~R: nope, will do now
15:51 liz6            anything in particular that should have triggered my attention?
15:51 wolverian       eric256, : in sig means named variable, changed from +
15:51 liz6            apart from the S17 draft
15:51 liz6            ?
15:56 eric256         wolverian ahhh. recent change?
15:57 wolverian       eric256, fairly
16:00 fanf2           liz6: have you seen http://research.microsoft.com/users/simonpj/papers/stm/  ?
16:07 Limbic_Region   liz6 - no sorry, just the S17 stuff
16:07 Limbic_Region   specifically the potential concern about STM
16:08 * Limbic_Region only glanced over it
16:08 liz6            just printed the STM stuff...  will read later today...
16:20 Juerd           I think I never did a luqui++ for those minutes
16:21 Juerd           luqui++
16:21 Juerd           Journals should have ++ and -- buttons :)
16:23 eric256         ?eval say 'luqui++" for (1..10);
16:24 evalbot_7819    Error:  unexpected "'" expecting block construct, ":", "\\", "$!", "$/", "$", "'", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input
16:24 eric256         ?eval say 'luqui++' for (1..10);
16:24 evalbot_7819    luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ undef
16:24 eric256         karma luqui
16:24 jabbot          eric256: luqui has karma of 10
16:24 eric256         ?eval say 'luqui++' for (1..10);
16:24 evalbot_7819    luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ luqui++ undef
16:24 eric256         karma luqui
16:24 jabbot          eric256: luqui has karma of 10
16:24 eric256         ahhh... bummer. lol
16:25 xinming         karma xinming
16:25 jabbot          xinming: xinming  has neutral karma
16:25 xinming         karma xinming
16:25 jabbot          xinming: xinming  has neutral karma
16:25 liz6            karma liz6
16:25 jabbot          liz6: liz6 has neutral karma
16:25 xinming         ?? Why I am neutral?
16:25 xinming         ?eval "haha".say for 1..10
16:25 evalbot_7819    haha haha haha haha haha haha haha haha haha haha undef
16:25 liz6            (it's not the same as neutered, you know  ;-)
16:26 xinming         karma xinming
16:26 jabbot          xinming: xinming has neutral karma
16:26 gugod           and it's not the same karma
16:26 eric256         xinming++
16:26 eric256         karma xinming
16:26 jabbot          eric256: xinming has neutral karma
16:26 eric256         karma bot borked?
16:26 jabbot          eric256: bot borked? has neutral karma
16:27 eric256         LOL
16:27 wolverian       xinming++
16:27 wolverian       karma xinming?
16:27 jabbot          wolverian: xinming? has neutral karma
16:27 wolverian       sheesh.
16:27 wolverian       karma xinming
16:27 jabbot          wolverian: xinming has neutral karma
16:27 wolverian       okay. just checking if he had -1 previously
16:27 gugod           not that's something for me todo
16:27 gugod           s/not/now/
16:28 * xinming       loves perl more and more, as it is so natural to xinming...
16:31 Limbic_Region   heh - I actually told a prospective employer that he loved Perl the other day as though it were the most natural thing in the world to say
16:31 Limbic_Region   s/he/I/
16:33 eric256         heeh
16:37 * Limbic_Region only briefly mentions Perl on his resume which had confounded the prospective employer
16:37 * Limbic_Region had to explain that "systems engineers" made a lot more money and that I programmed for pleasure ;-)
16:39 eric256         what is a systems engineer?
16:40 Limbic_Region   um - a general IT weenie
16:40 Limbic_Region   or - problem solver
16:40 Limbic_Region   http://en.wikipedia.org/wiki/Systems_engineering
16:41 Limbic_Region   http://www.graduatingengineer.com/careerprofiles/system-eng2.html
16:42 Limbic_Region   does that help eric256?
16:42 * Limbic_Region heads off to lunch
16:43 eric256         that makes me programmer/webmaster/accountant/systems engineer....i need paid more ;)
17:18 Juerd           eric256: Why paid more? You're obviously not a specialist :)
17:19 eric256         lol
17:19 eric256         too true
17:26 xinming         Juerd: well, I can say, I am a specialist... :-P
17:27 * xinming       thinks hunting job is a bit like doing business...
17:27 Juerd           You hunt?
17:27 xinming         No, I didn't, I still need to learn.
17:46 * eric256       puts his accountant hat on...i should get some degrees in this crap so i can charge more ;)
18:03 aufrank         anyone up for a roles question?
18:03 aufrank         I mean, um, hi!
18:06 kolibrie        h
18:08 eric256         hey
18:08 kolibrie        how weird, I typed that 'h' after my dialup disconnected, and then it was applied when I reattached my screen
18:08 aufrank         heh
18:09 aufrank         so can anyone spare some cycles on a question of mine?
18:09 kolibrie        ask, then we'll see if we have cycles
18:10 aufrank         can a class implicity do a role?
18:10 aufrank         if I have
18:10 aufrank         role Dog {
18:11 aufrank         method bark { ... }
18:11 aufrank         }
18:11 aufrank         and then have
18:11 aufrank         Class Dog {
18:11 aufrank         method Bark { ... }
18:11 aufrank         }
18:11 aufrank         and later say
18:12 aufrank         my Dog fido;
18:12 aufrank         wait, scratch the fido part
18:12 aufrank         darn it
18:12 aufrank         I swear I had this thought through
18:12 kolibrie        I think role Dog and class Dog have a namespace clash, I don't think they can be named the same
18:12 xinming         aufrank: I think you can't make role and class the same name.
18:12 aufrank         yeah, that's right
18:13 aufrank         what I want to know is something different that I haven't successfully asked yet
18:13 xinming         I think you can't -> I don't think you can
18:13 xinming         aufrank: go on then.
18:13 aufrank         if role requires a cerain method foo
18:13 aufrank         and a class provides that method without specifically saying it does the role
18:13 aufrank         does it do the role anyway?
18:14 aufrank         role Pet { method eat { ... } }
18:14 xinming         aufrank: I don't think so, as role is used for code reused, and class is used for instance creation.
18:14 wolverian       aufrank, no.
18:14 xinming         But you might need `multi sub`
18:14 aufrank         class FierceLion { method eat { ... } }
18:14 aufrank         does FierceLion do Pet?
18:15 wolverian       no.
18:15 xinming         aufrank: No,
18:15 aufrank         it fulfills the interface requirements of Pet
18:15 stevan          aufrank: what you are asking about is pure allomorphism
18:15 wolverian       aufrank, it could also fulfill the interface requirements of, say, HugeWorldEatingMonster, and McDonaldsCustomer.
18:15 stevan          it is not specced to work that way, however, it is still being discussed, so it may eventually work that way
18:16 wolverian       stevan, I hope not. :)
18:16 stevan          wolverian: there is some value to having it work that way
18:16 xinming         aufrank: But, You can write the example like this
18:16 kolibrie        stevan: I'm with wolverian on that one, I think
18:16 stevan          although I think it should not be as implicit as aufrank suggests
18:16 aufrank         I got confused on the "roles are interfaces with defaults" view of roles
18:16 stevan          aufrank: even in Java, things don't work that way
18:16 aufrank         and came up with this quesiton of implicitly doing a role just by matching its interface
18:16 stevan          you must explicitly add a interface
18:17 aufrank         but I didn't know if it was worth a p6l post, so I figured I'd throw it out here first
18:17 xinming         class Pet { ... }; class Animal { ... }; multi sub eat ( Pet|Animal ) { ... };
18:17 svnbot6         r7820 | stevan++ | Perl6::ObjectSpace
18:17 svnbot6         r7820 | stevan++ | * translation of Metamorph is now complete, which means
18:17 svnbot6         r7820 | stevan++ |   we can do Class.new()
18:17 svnbot6         r7820 | stevan++ |     - added many tests for this
18:17 svnbot6         r7820 | stevan++ | * added &reverse to list and make &tail return a list
18:17 svnbot6         r7820 | stevan++ | * fixed &remove in hash
18:17 svnbot6         r7820 | stevan++ | * symbols now can be compared for equality (name and type)
18:17 svnbot6         r7820 | stevan++ | * attributes can instantiate their container types
18:17 svnbot6         r7820 | stevan++ | * closures now check for too many arguments
18:17 svnbot6         r7820 | stevan++ |     - added tests for these
18:17 stevan          aufrank: you could bring it up,.. I know chromatic seems to be leaning in that direction
18:18 aufrank         I am sort of looking around for something to start writing in p6 that would help me think type-ly
18:18 aufrank         and there's a linguistic theory called HPSG
18:18 xinming         aufrank: look at the example code in pugs dir. ;-)
18:18 wolverian       aufrank, feel free to mail perl6-language with your view on this. :)
18:18 aufrank         head-driven phrase structure grammar
18:18 wolverian       aufrank, the more people thinking on it, the better.
18:18 aufrank         and it's got a pretty well defined type hierarchy
18:19 aufrank         (thanks for the encouragement!)
18:19 aufrank         so I started trying to think of HPSG in terms of kinds and types and classes and roles
18:19 aufrank         and came up with a few places where implicitly doing a role might be helpful
18:20 aufrank         so I guess I'll try to write up a p6l post :)
18:20 stevan          aufrank: can you explicitly do the role too?
18:21 stevan          why is implicitness more helpful?
18:21 aufrank         rules get applied to structures based on types
18:21 aufrank         and types can change when rules are applied
18:22 stevan          kolibrie: wolverian: a can_fufill() method would be fairly simple to write,.. which would tell if a class fufills all a roles methods
18:22 stevan          aufrank: you can add roles at runtime
18:22 stevan          $fido does Cat;
18:23 stevan          it doesn't work now in Pugs,.. but soon,... once the objectspace/metamodel is in
18:23 aufrank         in pseudo-code (or pseudo linguistics, or something)
18:23 aufrank         headed-phrase -> headed-element (optional-element)
18:24 aufrank         so it would make sense to say that there's some method that takes at least one headed-element and turns it into a headed-phrase
18:25 aufrank         but lots of different types can be headed elements
18:25 aufrank         they just have to have a head attribute defined
18:25 stevan          aufrank: I think runtime roles might be what you need
18:25 aufrank         so really, I think headed-element is better as a role
18:26 aufrank         but the grammar rules can add or change heads on elements, so something might all of a sudden become a headed-element (might all of a sudden do the headed-element role)
18:26 stevan          sub make_headed_phrase ($headed_element) { $headed_element does HeadedPhrase }
18:26 aufrank         yeah, that's the ticket
18:27 stevan          but here does is not a question, but an action
18:27 aufrank         right, which is sort of backwards from how I was thinking of it
18:27 aufrank         but I can see it this way, too
18:28 stevan          aufrank: this would be an interesting test of roles, you should write it up and commit it, it will help in testing the metamodel
18:28 stevan          do you have a commiter bit?
18:28 aufrank         I got one when I told autrijus when I suggested wake_on and alarm clocks to autrijus for S17 :)
18:29 aufrank         s/when I told autrijus//
18:29 aufrank         there's an event going on called National Novel Writing Month (NaNoWriMo)
18:30 aufrank         I'm decalaring AuCoWriMo for myself (austin's code writing month) ;)
18:30 eric256         NaNo Nanu? ;)
18:30 aufrank         so I decided to stop lurking on p6l and come play with you guys
18:31 stevan          aufrank: excellent,.. welcome aboard
18:31 aufrank         with runtime role assignment I think I no longer have an opinion on implicitly doing roles, though
18:33 * aufrank       changes subject
18:33 aufrank         did anyone read the arstechnica review of microsoft's monad shell a few weeks back?
18:34 stevan          I saw it, but didnt read it
18:34 stevan          interesting?
18:34 aufrank         I want one for p6 ;)
18:34 * eric256       wonders what the hell a monad shell is..
18:35 stevan          eric256: it is what a monad wears in it's back to protect itself ,.. duh
18:35 aufrank         http://arstechnica.com/guides/other/msh.ars
18:36 aufrank         eric256: it's MS's .net object-aware replacement for CMD
18:38 aufrank         it seems like they've done some cool things with using object introspection to provide useful command line tools
18:43 xinming         Note that CALLE$?FOO might discover the same variable as COMPILING::<$?FOO>
18:43 xinming         is CALLE$?FOO a typo?
18:45 eric256         i've thought soo. but havn't heard officialy..i always read it CALLER::$?FOO
18:45 cognominal      is there an official motto for Perl6? I like the "dynamic when needed, static when possible
18:45 cognominal      " from autrijus
18:46 eric256         they made the command line into a scripting language?  odd
18:47 xinming         perl 5 in fact is an amazing language. :-)
18:47 eric256         xinming...that was random
18:47 xinming         I've ever met someone who do a one-line programming defeat my 10 lines script... >_<
18:48 xinming         eric256: hmm, In fact, I don't like it to be a programming for perl 5, as It is so anonnying on creating objects. :-P
18:50 eric256         i have no idea what any of your last there messages mean.
18:50 eric256         s/there/three/
18:51 * eric256       just notices in the artice that microsofts langauge looks alot like perl.  $, $_, |, 1..$n, hehe.
18:52 aufrank         do stubs take a terminator at the end of the block?
18:52 aufrank         class Foo { ...}
18:52 aufrank         or class Foo { ... } ;
18:52 aufrank         ?
18:52 eric256         i beleive either are legal.  ; is always a safe bet though
18:52 xinming         hmm, I ever make a script which will parse /var/lib/dpkg/status
18:53 xinming         and that script is about 10 lines,
18:53 xinming         But Someone do a one-line programming which will do what my 10-lines script do...
18:53 wolverian       aufrank, no. class is a statement.
18:54 wolverian       aufrank, you can turn any statement into an expression with 'do', though, if you really want.
18:54 wolverian       (my $foo = do if 1 { 42 } else { "huh" };)
18:56 xinming         wolverian: hmm, In fact, autrijus want to make ever statement an expression IIRC
18:56 xinming         s/ever/every/
18:57 aufrank         wolverian: that makes more sense to me, but cperl6-mode does wonky indentation if I don't terminate my stub declarations
18:57 aufrank         I thought it maybe was doing it for a reason
18:58 xinming         aufrank: everyone wants the semi-colon. ;-)
18:59 xinming         You may interpolate double-quotish text into a single-quoted string using the \qq[...] construct.
18:59 xinming         what does this mean please?
18:59 theorbtwo       'c:\windows\fooqq[$bar].txt'
19:00 xinming         thanks.
19:01 xinming         for windows. the path specification is ugly compared with Unix.
19:02 theorbtwo       Eh.
19:02 theorbtwo       It's not that ugly; it's just that the backslash-means-escape crowd and the backslash-is-directory-seperator crowd don't get along well.
19:03 wolverian       aufrank, that's a bug, then.
19:03 aufrank         I'll look at it
19:04 sili            :(
19:05 xinming         theorbtwo: hmm, In fact, If my opinion is correct, C use '\
19:05 xinming         oop
19:05 eric256         you can interpolate in a single quote string....that seems wrong
19:05 xinming         oops
19:05 aufrank         sili: what happened?
19:05 sili            p6 confuses me
19:06 eric256         ?eval my $x = "hello"; say ' Hello qq[$x]';
19:06 evalbot_7820     Hello qq[$x] bool::true
19:06 xinming         C use '\' first to indicate it is an "escape", But M$ still choose '\' as a dir delimeter. That makes no sense. :-X
19:06 sili            and i think sub foo {sub bar {} print bar() + 10} would be cool if i could do foo.bar = sub { ...
19:06 xinming         ?eval my $s = "hello"; 'abc\qq[$s]'.say;
19:06 evalbot_7820    abchello bool::true
19:06 sili            no more confusing submethodness
19:07 eric256         \me realy doesn't like that....now you can't be certain that ' ' isn't interpolating? and the compiler can't make any optimizations on it...seems very very wrong
19:07 eric256         all that slash talk got my /me backwards!
19:07 xinming         sili: In my understanding, that submethod is the same as method except the inheritance.
19:07 theorbtwo       eric256: The compiler can determine at compile-time if there are any \qq[...]s, as can the reader.
19:08 theorbtwo       If you /really/ don't want it, you can use q:0'...', which really doesn't interpolate /at all/.  (IIRC on the exact spelling, but I'm sure there's something like that...)
19:12 sili            xinming: ehhh... i still it'd be cool if functions could have their own functions
19:13 xinming         sili: hmm, `my sub` won't fit your needs?
19:14 stevan          xinming: I think he wants to be able to assign bar
19:14 sili            xinming: only if that sub were available to the outside
19:14 stevan          which wont work
19:14 xinming         sub foo { my sub bar { "haha".say } ; bar; };
19:14 xinming         ?sub foo { my sub bar { "haha".say } ; bar; };
19:14 xinming         ?sub foo { my sub bar { "haha".say } ; bar; }; foo;
19:14 xinming         ?eval sub foo { my sub bar { "haha".say } ; bar; }; foo;
19:14 evalbot_7820    haha bool::true
19:14 sili            xinming: not *just* assign to it. it'd be neat if i could do anything with it
19:15 xinming         sili: for example?
19:15 xinming         use state
19:15 wolverian       sili, you seem to want python :)
19:15 stevan          sili: thats what objects are for ;)
19:15 sili            xinming: sub foo { sub bar {shift+10} print bar(shift)*2}
19:16 sili            then i could use bar by itself: say foo.bar(10)# 20
19:16 sili            or foo.bar = sub { ....
19:16 sili            (excuse my perl5ness, i'm not up to par with p6)
19:16 ingy            hola
19:16 whiteg          ingy: !
19:17 aufrank         hello!
19:17 sili            err crap
19:17 xinming         sili: hmm, In fact, @Larry might consider `class A { method foo { .. }; A( .. ).foo;
19:17 xinming         sili: and we can make a method lvalue maybe...
19:18 xinming         that might do what you wish.
19:18 sili            hmm that'd be complicated
19:18 xinming         But not works for now.
19:18 xinming         sili: they are the same to me. :-P
19:18 * sili          makes some references about the way javascript/ecma works
19:18 chip            autrijus about?
19:18 * stevan        references the way javascript/ecma is broken
19:19 stevan          chip: havent seen him in a while
19:19 sili            stevan: well, not exactly like ecma. it does do some interesting things
19:19 xinming         ?eval class A { has $.a; method haha { "hello".say } }; A.haha;
19:19 evalbot_7820    hello bool::true
19:20 xinming         This works for now,
19:20 xinming         but...
19:20 stevan          sili: that is a prototype based OO system.. and what it looks like on the surface is very different than what it is actually doing
19:20 xinming         ?eval class A { has $.a; method haha { "hello".say } }; A( a => 5 ).haha;
19:20 evalbot_7820    Error: cannot cast from VObject (MkObject {objType = (mkType "Class"), objAttrs = <ref>, objOpaque = Nothing, objId = 51}) to Pugs.AST.Internals.VCode (VCode)
19:20 xinming         this doesn't. :'(
19:20 stevan          sili: what you want is easily accomplished by passing a block into foo()
19:21 stevan          sub foo (Code $bar) { $bar.() }
19:21 stevan          and with a default
19:21 stevan          sub foo (Code $bar) { $bar //= sub { "hello"} ; $bar.() }
19:21 stevan          you can also curry it and use it later
19:22 sili            i suppose
19:22 eric256         theorbtwo....then what is the point of ' versus " ?? and you say the compiler and reader can see the \qq[ ...sure we can. but its an extra gotcha with little or no benefit../me goes off to continue lunch.  still feels wrong after perl5
19:22 stevan          bar := foo.assuming(sub { "hello bar" };
19:22 xinming         sili: Larry will keep what people wished most. :-)
19:22 stevan          sili: TIMTOWTDI
19:22 sili            always
19:23 wolverian       stevan, sub foo (&bar) { bar }
19:23 wolverian       stevan, (just throwing syntaxes around..)
19:24 stevan          wolverian: so the &bar in the arg would create a local sub named bar?
19:25 wolverian       stevan, approximately. :)
19:25 aufrank         wolverian: is that a named code parameter?
19:25 wolverian       aufrank, named? no.
19:28 xinming         Oops. rapterXXX is gone, I found I mislead him wih :blah :-P
19:29 wolverian       (that would be :&bar)
19:30 aufrank         thanks wolverian
19:31 xinming         Is there a method or fun to get the bit property?
19:31 xinming         ?eval "".perl;
19:31 evalbot_7820    "\"\""
19:33 theorbtwo       (0 but true).perl
19:33 wolverian       bit property?
19:34 wolverian       if you mean the truth value, .bool as specced in S12 currently
19:34 xinming          0 but true;
19:34 theorbtwo       ?eval [(0 but true), (1 but false)].perl
19:34 sili            is pugs ready enough for me to start writing my system scripts in it?
19:34 evalbot_7820    Error:  unexpected "[" expecting program
19:34 sili            mostly basic text processing, a few system commands, directory traversal
19:34 theorbtwo       ?eval [(0 but true), (1 but false)]
19:34 evalbot_7820    Error:  unexpected "[" expecting program
19:35 wolverian       ?eval 0 but true
19:35 evalbot_7820    Error:  unexpected end of input expecting term
19:35 Limbic_Region   sili - I would be hesitent about investing a large effort in something you are going to rely on for production
19:35 Limbic_Region   stability is an issue
19:35 xinming         sili: hmm, if you don't wish to capture the system command output, and don't wish to use perl 6 rules ;-)
19:35 Limbic_Region   two examples off the top of my head
19:35 sili            fooey.
19:35 Limbic_Region   ternary and named arguments
19:35 wolverian       file system API is incomplete
19:36 xinming         yeap, write to file is still not implemented.
19:36 sili            hmm
19:36 sili            "omgwtf"?
19:38 xinming         sili: But IMHO, You can use system "/bin/echo $var"; and system "/bin/cat $f_path"; :-P
19:38 sili            evil.
19:39 Juerd           Implement OO wrappers :)
19:42 xinming         hmm, not `system "/bin/echo $var" `  try this, `system "/bin/echo $var > $f_name";` for ">$f_name" mode, and >> for "+>$f_name" mode. :-P
19:43 aufrank         if I declare a public accessor in a class, and then want to modify that public variable in one of the methods defined in the class, do I have to put a 'my' on the variable in the method?
19:45 xinming         no
19:46 lisppaste3      aufrank pasted "question:" at http://paste.lisp.org/display/13182
19:46 aufrank         so the has declaration already lexicalizes the variable?
19:47 xinming         ?eval class A { has $.a; method get { $.a = 3; $.a.say } }; A.new( a => 10 ).get;
19:47 evalbot_7820    3 bool::true
19:48 xinming         for your example
19:48 xinming         ?eval class A { has $.a; method get { $.a ++; $.a.say } }; A.new( a => 10 ).get;
19:48 evalbot_7820    11 bool::true
19:48 aufrank         thanks
19:50 aufrank         ?eval class A { has $:a; method say_me {say $:a; }} A.new( a => "hi" ).say_me;
19:50 evalbot_7820    hi bool::true
19:50 aufrank         ?eval class A { my $a; method say_me {say $a; }} A.new( a => "hi" ).say_me;
19:50 evalbot_7820     bool::true
19:51 aufrank         hrm
19:51 xinming         ?eval class A { my $a; method say_me {say $a; }} say_me A.new( a => "hi" );
19:51 evalbot_7820     bool::true
19:51 xinming         a bug... :-P
19:51 aufrank         what's the scoping difference between my $a and has $:a in a class?
19:52 xinming         ?eval class A { my $a; method say_me {say $a; }}; my $o = A.new( a => "hi" ); say_me $o;
19:52 evalbot_7820     bool::true
19:52 xinming         oops.
19:52 xinming         ?eval class A { my $.a; method say_me {say $.a; }}; my $o = A.new( a => "hi" ); say_me $o;
19:52 evalbot_7820    hi bool::true
19:53 xinming         hmm, in my opinion, the attribute declared using my won't be able to initialized through contructor.
19:53 xinming         though, method BUILD can do this.
19:53 aufrank         so has is a my that is initialized during BUILD, sort of?
19:54 xinming         aufrank: No,
19:54 xinming         you see the example?
19:55 aufrank         yes, it seems like $a isn't initialized where $.a is
19:55 xinming         a => "hi" pair will automatically assign to class attribute a
19:56 xinming         $.a
19:56 xinming         not $a
19:56 xinming         that might be the difference.
19:56 xinming         ?eval class A { my $.a; method say_me {say $.a; }}; say A.new( a => "hi" );
19:56 evalbot_7820    <obj:A> bool::true
19:56 xinming         ?eval class A { my $.a; method say_me {say $.a; }}; say_me A.new( a => "hi" );
19:56 evalbot_7820    hi bool::true
19:56 xinming         Ok, not bug.
19:57 * xinming       don't know if the attribute declared by my will be inherited.
19:58 aufrank         what's the name of the readonly accessor generated by has $.a ?
19:59 aufrank         ?eval class A { has $.a } A.new(a => "hi").a
19:59 evalbot_7820    \"hi"
19:59 xinming         a
19:59 aufrank         i'm catching on a little ;)
20:01 xinming         ?eval my $s = "abc"; $s ~| "b";
20:01 aufrank         ?eval class A { my $:a; method say_me {say $:a; }}; my $o = A.new( a => "hi" ); say_me $o;
20:01 evalbot_7820    "cbc"
20:01 evalbot_7820    hi bool::true
20:01 * xinming       wonders how does bitwise operator works for strings.
20:02 * xinming       wonders how bitwise operator works for strings.
20:02 * xinming       scraches his head.
20:06 * aufrank       has to go to class
20:11 stevan          autrijus: ping
20:12 Limbic_Region   oh - everyone here has seen the article about Florida judges throwing out DUI cases because the manufacturer refuses to show the source code right?
20:19 theorbtwo       AFAIK, at this point, it's just the one case, but no doubt it will spread.
20:21 Limbic_Region   theorbtwo - more than 1 according to the article I just read
20:22 Limbic_Region   of course I am rather confused why I heard about this today as it appears to be old news
20:22 Limbic_Region   http://www.boingboing.net/2005/06/06/judges_toss_out_duis.html
20:22 Limbic_Region   http://tampatrib.com/floridametronews/MGBUBJ5QK9E.html
20:25 theorbtwo       Oh, lots more then one.
20:25 Limbic_Region   yep
20:25 theorbtwo       I think the news before was the rulling, and the news now is lower court judges going with the precident, then?
20:26 Limbic_Region   *shrug* - I think it is just plain cool
20:26 theorbtwo       So do I.
20:26 Limbic_Region   granted, I think there are ways of convicting the criminals without making the source public
20:26 theorbtwo       So do I.
20:27 Limbic_Region   that doesn't mean we should just be blindly trusting the evidence of blackboxes to convict people
20:27 theorbtwo       No, but it's possible to trust it without it being a white-box.
20:28 theorbtwo       "Dr. Soandso, is it possible that the defense's claim, that the test came back positive because the defendant was using mouthwash is true?"
20:29 Limbic_Region   or even had a breath mint in
20:29 theorbtwo       "No, Counsolor, it's not.  We conducted a rigiorous double-blind test with 500 college students, half of whom were drunk and half of whom had used mouthwash, and in no case did the device fail to pass those who had been using mouthwash, or fail those who were drunk."
20:30 theorbtwo       OTOH, the State's evidence can't be "because the device showed a red light, and the device is infailable."
20:34 r0nny_          re
20:34 r0nny_          rafl: ping?
20:35 r0nny_          autrijus: ping?
20:39 xinming         Submethods (keyword: submethod) are non-inheritable methods, or subroutines masquerading as methods. They have an invocant and belong to a particular kind or class.
20:40 xinming         hmm, what does subroutines masquerading as methods mean here?
20:42 Limbic_Region   just what it says
20:42 Limbic_Region   they are not regular subs that can be thought of as methods
20:43 Limbic_Region   so don't try and make that association
20:44 xinming         Oh, Ok, So, this means submethod is neither sub nor method, right?
20:44 xinming         for this sentence.
20:50 Limbic_Region   no - it means they are methods that behave differently then other methods (they are non-inheritable)
20:50 Limbic_Region   that wording without a larger context is probably confusing and rewording should be considered
20:51 xinming         Limbic_Region: Ok,thanks,
21:06 autrijus        stevan: pong
21:08 Limbic_Region   autrijus - still at liz and wendy's?
21:08 r0nny_          autrijus: still broken on my sys
21:08 r0nny_          im going for a last try with some special magic
21:08 stevan          hey autrijus
21:08 liz6            L~R: yes
21:09 stevan          autrijus: I am in the process of converting as much as I can of the bootstrap into just message sends
21:09 Limbic_Region   liz - how much longer do you have to put up with him ;-)
21:10 stevan          I have added an and and or messages to the bit type, which gives me pretty good support for conditionals
21:11 stevan          and a each and apply method for lists,.. which covers any list interations
21:11 stevan          the only thing I am having trouble with is replacing while loops
21:11 stevan          any thoughts?
21:12 autrijus        Limbic_Region: yes
21:12 autrijus        stevan: yup, I got your commits
21:12 autrijus        stevan: while loops are tail calls
21:13 liz6            L~R: as long as it takes  ;-)
21:13 svnbot6         r7821 | stevan++ | Perl6::ObjectSpace -
21:13 svnbot6         r7821 | stevan++ | * making everything into message sends
21:13 autrijus        stevan: or better, have Code take .do_while(Code) message/
21:14 autrijus        &body.do_while(&cond_that_evaluates_to_bool)
21:14 stevan          the second code is the conditional
21:14 stevan          ah yes
21:14 stevan          thats a thought
21:14 stevan          I was thinking of it the wrong way,..  with the conditional as the invocant
21:14 autrijus        the p6 way is a kern &statement_control<while>
21:14 Limbic_Region   liz - oh, good to hear
21:14 autrijus        that takes two Code
21:15 stevan          autrijus: yes, your way is better
21:15 autrijus        both are essentially the same, but I like the method one better
21:15 autrijus        the stmtctrl has chance of MMD
21:15 autrijus        but I can't quite imagine MMD on the cond/body types
21:15 autrijus        actually I can, but let's not go there here
21:15 autrijus        :)
21:15 stevan          autrijus: I was also experimenting with s-expressions as an intermediate format,.. those are the lispy things under the p6 code in the POD sections
21:16 stevan          not sure if that is crazy or not,.. but I figured parsing s-expressions is pretty easy, and they are naturally ASTs
21:16 autrijus        that is not crazy... they are designed as ASTs
21:16 autrijus        it's just their surface syntax never appeared
21:16 autrijus        for (gasp) 40 years now
21:16 autrijus        ;)
21:16 stevan          :)
21:17 * stevan        checks CPAN for a s-exp parser
21:18 autrijus        Language::MzScheme (grin)
21:25 svnbot6         r7822 | liz++ | added proxy to alarm object specification
21:25 liz6            karma liz
21:25 jabbot          liz6: liz has neutral karma
21:25 * stevan        ponders using mzperl ;)
21:26 autrijus        yeah and you get free support from the author :)
21:27 Limbic_Region   ?eval say 'liz6++' for 1 .. 10
21:27 evalbot_7822    liz6++ liz6++ liz6++ liz6++ liz6++ liz6++ liz6++ liz6++ liz6++ liz6++ undef
21:27 Limbic_Region   karma liz
21:27 jabbot          Limbic_Region: liz has neutral karma
21:28 Limbic_Region   karma liz6
21:28 jabbot          Limbic_Region: liz6 has neutral karma
21:28 Limbic_Region   hmm
21:28 Limbic_Region   both results unexpected
21:28 Limbic_Region   the undef at the end
21:28 Limbic_Region   and the no impact on the karma
21:28 Limbic_Region   *shrug*
21:28 Limbic_Region   karma c
21:28 jabbot          Limbic_Region: c has karma of 27
21:28 Limbic_Region   that's just wrong
21:28 * Limbic_Region calls it a night
21:29 Limbic_Region   TTFN
21:43 * stevan        laughs at control structures,.. bah.. who needs them muhahahahaha
21:43 svnbot6         r7823 | stevan++ | Perl6::ObjectSpace
21:43 svnbot6         r7823 | stevan++ | * added &do_while to the block type :)
21:44 autrijus        stevan++
21:44 autrijus        hmm, anyone has suggestions on the Conc class name?
21:44 autrijus        it's supposed to be the common base class for lightweight threads (POEish), Threads, and Processes
21:45 autrijus        but "a Conc object" doesn't really work
21:45 PerlJam         Every time I see "Conc" I think "conch"  :)
21:45 liz6            I was thinking "Phrod"
21:47 azuroth         fork?
21:47 theorbtwo       A conc shell.
21:47 PerlJam         no,no, fork would give the wrong idea.
21:47 azuroth         hm, yeah
21:47 liz6            nobody likes "phrod" ?
21:47 stevan          what is it Stackless calls those mini-thread things?
21:47 theorbtwo       What's a phrod?
21:47 azuroth         what does it mean??
21:47 PerlJam         liz6: I have no clue what phrod referes to.
21:48 PerlJam         s/res/rs/
21:50 PerlJam         autrijus: perhaps it would be better to focus on the "current" part of concurrency.  Like an ocean current.
21:50 liz6            its a mashup of process and thread
21:51 azuroth         how about steamtrain??
21:51 PerlJam         A good evocative word would be nice.
21:51 stevan          if it is a base class (and I assume not used heavily in user-land) then why not call it Concurrency?
21:52 stevan          or just "Concurrent"
21:52 autrijus        because "one Concurrency" doesn't computer
21:52 autrijus        "one Concurrent" maybe
21:52 * azuroth       ad work
21:52 azuroth         bye
21:54 r0nny_          darn
21:54 xinming         ?eval class A { method method { "test".say } }; A.new.method
21:54 evalbot_7824    test bool::true
21:54 r0nny_          autrijus: i still got the problems with eval other then perl6 code
21:54 xinming         ?eval class A { method print { "test".say }}; A.new.print;
21:54 evalbot_7824    test bool::true
21:54 svnbot6         r7824 | stevan++ | Perl6::ObjectSpace
21:54 svnbot6         r7824 | stevan++ | * added &do_until for blocks as well
21:54 svnbot6         r7824 | stevan++ | * Bootstrap now uses this in a few places,.. more to come :)
21:55 xinming         ?eval class A { method say { "test".say } }; A.new.say;
21:55 PerlJam         autrijus: how about "Sim" (simultaneous) or "Coin" (concurrent paths of execution are coincident)  or "Coop" (cooperation)  or maybe just "Conc"  ;-)
21:55 xinming         These 3 tests seems all are illegal.
21:55 evalbot_7824    (no output)
21:55 autrijus        r0nny_: can you give me a shell account?
21:55 stevan          or we could go Java on it "ThingsWhichRunInParrallelToOneAnother" ;)
21:56 r0nny_          autrijus: atm im preparing one
21:56 xinming         hmm, I will ask later. :-P sorry.
21:58 * leo           likes Phrod - but is fred a fraud then?`
21:59 leo             hi Liz btw - long not seen
22:00 PerlJam         autrijus: other suggestions:  mu, parl, waft, bend, bight, weave, spin, warp
22:00 PerlJam         (I like Mu personally :-)
22:04 r0nny_          autrijus: fixed it :)
22:04 r0nny_          removed the pir line from prelude, then it worked sweet
22:05 autrijus        okay...
22:05 autrijus        r0nny_: I'd like to see that line :)
22:05 autrijus                    when 'pir'     { Pugs::Internals::eval_parrot($code) };
22:05 autrijus        like this?
22:05 liz6            leo: yes, it's been too long...
22:06 r0nny_          in Prelude.pm an line 66 is the line of put - it allway broke on this one, but with the line removed it works fine
22:06 r0nny_          eh pir not put
22:07 r0nny_          autrijus: yeah - this one broke it all the time
22:07 r0nny_          testing it again with my script
22:07 r0nny_          hmm
22:07 r0nny_          now it breaks on line 67 :/
22:09 autrijus        can you nopaste your Prelude.pm?
22:10 r0nny_          hmm - think i need to get a nopaste script first
22:10 r0nny_          and i need to know, why the command worked on command line
22:10 r0nny_          but doesnt work in file
22:10 autrijus        paste is in http://paste.lisp.org/new/perl6
22:12 r0nny_          not what i had in mind - its painfull to paste large files from xterm
22:13 autrijus        you can type
22:13 autrijus        "svn diff"
22:13 autrijus        and see what had changed.
22:13 r0nny_          all i changed was putting a # in front of the line of pir
22:14 autrijus        alright, I think I want a shell, as it's not really easy to do it over irc :)
22:15 r0nny_          ok - opened the ssh account again
22:15 svnbot6         r7825 | autrijus++ | * S22 (CPAN) stub, for tomorrow's design session with with kane
22:16 r0nny_          autrijus: u got the querry data - right ?
22:17 autrijus        r0nny_: no -- in freenode you need to register your nick
22:17 autrijus        to /msg people :/
22:17 r0nny_          darn
22:18 autrijus        you can send the info to [email@hidden.address] maybe?
22:19 obra            autrijus: is autrijus.org still toast?
22:20 autrijus        obra: it is
22:20 autrijus        though mails are not really bouncing
22:20 autrijus        I'll remove it from my registerfly forwarding for now
22:20 autrijus        (I got [email@hidden.address] thru gmail)
22:22 rafl_           r0nny: pong
22:24 nothingmuch     liz6: ping
22:24 rafl_           Hm. We should chat using the IMCP protocoll.
22:25 liz6            nothingmuch: pong
22:25 nothingmuch     is 10.4.3 + memcached fixed?
22:26 liz6            good question...
22:27 leo             liz6: I'm in .nl, if my talk gets accepted: http://www.sane.nl/sane2006/
22:27 liz6            leo: cool!
22:28 r0nny           rafl_: pingpong!
22:28 autrijus        r0nny's reported bug fixed
22:28 autrijus        it's syntax error in YAML
22:28 autrijus        nothing about prelude
22:29 autrijus        it just happens that syck also raises as "Syntax error"
22:31 autrijus        so, utterly confusing. apologies
22:31 liz6            nothingmuch: I guess I'll need to rebuild memcached...  ;-)
22:32 nothingmuch     i'm doing that too right now
22:33 nothingmuch     seems like recompile doesn't help
22:33 nothingmuch     i'll try libevent CVS head in a few days
22:33 nothingmuch     but too busy right now otherwise
22:33 nothingmuch     i may refer sri_ to you for guidance
22:33 nothingmuch     sri_: ping from freenode
22:34 liz6            I guess the config would need to b e changed as well...
22:34 autrijus        r0nny: fixed, thanks!
22:34 nothingmuch     config? as in ./configure's output?
22:34 sri_            nothingmuch: pong
22:34 nothingmuch     backlog ~30 lines
22:34 sri_            hi liz6
22:35 nothingmuch     sri_: liz6 is my memcached guru
22:35 liz6            it's probably libevent that would need to be remade first
22:36 * nothingmuch   rebuilt libevent-1.1a
22:37 nothingmuch     btw, 1.1.tar.gz, 1 month earlier than 1.1a has "Work around for kqueue bug in Mac OS X 10.4."
22:37 liz6            the configure of libevent now says:
22:37 liz6            checking for working kqueue... yes
22:37 liz6            yeah!
22:38 nothingmuch     btw, make verify worked in the past too
22:38 svnbot6         r7826 | autrijus++ | * r0nny reported the YAML error messages are reported as if they are Pugs errors, which is very confusing when 'syntax error' occurs.  Fix it by prefixing hte error with 'YAML Parse Error: ' for now.
22:41 r0nny           btw - how to not fail on failing eval ?
22:42 autrijus        try {}
22:43 r0nny           hmm
22:49 r0nny           anyone knows how the mutiple stream stuff of yaml works ?
22:50 r0nny           i know there is a way, to assign names to streams
22:54 stevan          autrijus: we now have full bootstrapping :)
22:54 stevan          I just commited it
22:54 PerlJam         stevan++
22:54 * stevan        mumbles something about the third time around for the metamodel :)
22:54 stevan          3 times is the charm :)
22:55 PerlJam         well, stevan++ for trying
22:55 stevan          anyone wanna write a s-expression parser for me??
22:55 PerlJam         and again stvan++ for the third charming time  :)
22:55 svnbot6         r7827 | stevan++ | Perl6::ObjectSpace
22:55 svnbot6         r7827 | stevan++ | * Bootstapping is now complete :)
22:55 svnbot6         r7827 | stevan++ |    - Class is an instance of Class
22:55 svnbot6         r7827 | stevan++ |    - Class is a subclass of Object
22:55 svnbot6         r7827 | stevan++ |    - Object is an instance of Class
22:55 svnbot6         r7827 | stevan++ | (no Package, Module and Eigenclass stuff yet though)
22:55 PerlJam         er, stevan
22:55 svnbot6         r7828 | liz++ | Added explanation of "retry" statement and "also" method on Code blocks
22:55 PerlJam         er, stevan++
22:55 stevan          PerlJam: thanks :)
22:55 r0nny           DARN
22:55 r0nny           now i need to remerge again
22:56 stevan          r0nny: I doubt those two commits touched anything you are working on
22:57 * stevan        ponders writing the s-expression parser in Ruby, serializing it to YAML, then writing the p5 code generator in Python which reads the serialized YAML tree :)
22:58 stevan          and use Javascript to orchestrate the entire thing :P
22:58 r0nny           sounds crazy
22:58 autrijus        that's probably stevan's point :)
22:58 stevan          sanity is overratted :)
22:58 stevan          ok,.. time for dinner &
22:59 r0nny           usually i think JS iss filthy, but sometimes its just cool ;P
22:59 * autrijus      decides to give up journal for tonight and just catch some sleep instead
22:59 stevan          it actually is a little sane since I need to evaluate Ruby and Python for possible $work usage
23:00 autrijus        cool then
23:00 autrijus        you'll probably find no difficulty programming in either :)
23:01 r0nny           can parrot allready run it ?
23:01 autrijus        parrot can run some python
23:01 autrijus        not ruby at all
23:01 leo             autrijus: the lexical pdd is in svn
23:01 autrijus        thank god^Wchip
23:01 autrijus        I'll take a look after shower
23:01 autrijus        bbiab.
23:03 r0nny           btw - are roles working now ?
23:11 chip            autrijus: something not yet addressed is how to make this fail:   sub foo { eval '$a++'; my $a; }
23:11 chip            ... fail at compile time, that is
23:12 r0nny           darn
23:12 r0nny           what to do, if pugscc cant find Pugs.Internals ?
23:13 autrijus        chip: this will not fail at compile time thank you :)
23:13 autrijus        r0nny: oh, you tell autrijus to fix pugscc.
23:14 r0nny           hmm
23:15 autrijus        did you "make install"?
23:16 r0nny           yeah
23:16 r0nny           portage usually does make install to install a package
23:16 autrijus        ok
23:16 autrijus        do this
23:16 autrijus        svn up
23:16 autrijus        make register
23:17 autrijus        perl script/pugscc -e 'say 123'
23:17 autrijus        and see it works
23:17 autrijus        chip: I don't think it's reasonable to make it fail at compile time.
23:19 svnbot6         r7829 | autrijus++ | * don't pass random unneeded GHC flags to pugscc.
23:19 chip            autrijus: hm.  Less work for Parrot?  OK!
23:20 chip            oh wait, I think I was unclear
23:20 r0nny           darn
23:20 chip            autrijus: I want it to fail while compiling the eval, as opposed to failing while running the eval
23:21 * chip          also has an OUTER/CALLER question
23:28 autrijus        chip: ok. when compiling the eval, depending on the resolution of $a is ruled to be "erroneous"
23:28 autrijus        so larry is fine with it actually capturing the inner $a.
23:29 autrijus        what's the O/C question?
23:29 autrijus        btw the CALLER can also make the same problem arise
23:29 chip            what's your preferred primitive to support $OUTER::a ?
23:29 autrijus        in which case it is _also_ erroneous to depend on it.
23:30 autrijus        well, fine_lex with a Int param
23:30 chip            I would think $OUTER::a := ...  is legal
23:31 chip            the integer = number of call frames to skip before beginning the search?
23:32 r0nny           well cu latter
23:32 chip            Oh, no, that's CALLER.  Duh.
23:33 chip            the Int = number of :outer() subs to reach
23:33 autrijus        indeed.
23:33 chip            Question is, do you want it recursive?  In other words, is this valid code?   my $a; if 1 { if 1 { if 1 { print $OUTER::a } } }
23:33 autrijus        sure, because OUTER::a is not specific pad
23:34 autrijus        it's "start looking but skip this lexical block"
23:34 autrijus        to answer your $OUTER::a question, that means a similar form to store_lex.
23:34 autrijus        I'll be right back.
23:34 chip            k
23:36 leo             ?eval my $a=42; if 1 { if 1 { if 1 { print $OUTER::a }}}
23:36 evalbot_7829    42bool::true
23:36 cognominal_     autrijus, you sait once that pugs with haskell backend support STM (software transationnel) backend. That means that ghc is concurrent haskell or what?
23:36 cognominal_     s/sait/said/
23:37 chip            I find this confusing: <autrijus> btw the CALLER can also make the same problem arise
23:37 leo             ?eval my $a=42; if 1 { if 1 { if 1 { print $a }}}
23:37 evalbot_7829    42bool::true
23:37 * cognominal_   is reading SPJ paper about composable memory transactions
23:38 cognominal_     the first time I tried I freaked out because of my lack of Haskell knowledge.
23:47 autrijus        cognominal_: GHC implements concurrent haskell
23:47 autrijus        chip: ok, this is so that
23:48 autrijus        sub foo { blah(); my $x; }; sub blah { $CALLER::x }
23:48 svnbot6         r7830 | autrijus++ | * Give failed pugscc (due to lack of 'make install' or
23:48 svnbot6         r7830 | autrijus++ |   'make register') a better error msg.
23:48 autrijus        see? same problem.
23:48 autrijus        as the eval
23:48 autrijus        chip: your PDD is sane
23:48 chip            autrijus: I see it.  This tells me that while $OUTER::x can cause a compile error, $CALLER::x can't.
23:48 chip            thanks
23:48 autrijus        I had thought that PIR compiler would compile away find_lex into straight reg lookup
23:49 autrijus        but then I thought about interacting HLLs
23:49 autrijus        and LexInfo seems better.
23:49 chip            you need LexInfo for CALLER
23:49 autrijus        chip: yes, I think that is correct.
23:49 autrijus        right.
23:49 autrijus        verily verily.
23:49 autrijus        chip++ # sanity
23:49 autrijus        I'll think about codegenning to it
23:49 chip            autrijus++ # patience and support
23:49 autrijus        I wonder if I can get codegen first or if leo would make it work first
23:49 * chip          rolls his eyes
23:50 chip            "I wonder."
23:50 autrijus        you rolled a 3
23:50 chip            hey, my left eye has two pupils.  neat
23:50 autrijus        you mean they are not 20-sided?
23:51 autrijus        anyway. :) I'll go sleep now and journal this wonderful news tomorrow
23:51 * autrijus      waves... &
23:51 * chip          's vision steps in 15-degree units
23:51 cognominal_     thx autrijus
23:59 cognominal_     ?eval say 'ok' if 0 but true
23:59 evalbot_7830    Error:  unexpected end of input expecting term
23:59 cognominal_     ?eval say 'ok' if 0 but true;
23:59 evalbot_7830    Error:  unexpected ";" expecting term
23:59 cognominal_     ?evak say true
23:59 cognominal_     ?eval say true
23:59 evalbot_7830    Error:  unexpected "t" expecting block construct, ":", term, term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input