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