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