6.2.10 released! xrl.us/hxnb | geoffb's column (/. ed): xrl.us/hxhk | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by autrijus on 10 October 2005. |
|||
ajs_home | So, did anyone see a message about S29 from me on p6l today, or is my MTA being flakey? | 01:05 | |
svnbot6 | r7685 | spinclad++ | (First commit!) | 01:52 | |
r7685 | spinclad++ | * Suggested tweaks for larry_mariner.txt; please review. | |||
r7685 | spinclad++ | * AUTHORS.+=(self) | |||
r7686 | spinclad++ | larry_mariner.txt: alternate suggestion. | |||
07:34
|uqu| is now known as luqui
|
|||
luqui | ha'dy nothingmuch | 07:46 | |
autrijus | yo. | 07:47 | |
Aankhen`` | Mawnin'. | ||
luqui | autrijus, how do you suggest I go about fixing lazy {} ? | 07:48 | |
autrijus | luqui: mmm, context? | 07:49 | |
luqui | my $c = 0; my $x = lazy { $c++; } say $x; say $c; # 3 | ||
i.e., the block gets executed 3 times | 07:50 | ||
autrijus | you need to make the thunk mark itself as used after first eval. | 07:51 | |
luqui | presumably throwing away the closure reference, replacing it with the value | ||
but, er, I don't understand how I would do that within Eval? | 07:52 | ||
autrijus | you can do that by creating a (TVar (Maybe Val)) | ||
that holds the evaluated thing | |||
luqui | how about (Either Thunk Val) -- for the appropriate value of Thunk | 07:53 | |
TVar $ ~ | |||
autrijus | well, you need to hide some code into the thunk anyway | ||
so might as well use Maybe | |||
but Either would work too | |||
luqui | huh? | ||
autrijus | improvise :) | ||
op1 "lazy" = \v -> do | 07:54 | ||
luqui | hide some code into the thunk? | ||
autrijus | sub <- fromVal v | ||
res <- liftSTM $ newTVar Nothing | |||
let thunk = ... probe res, etc ... | 07:55 | ||
return . VRef . thunkRef $ MkThunk thunk | |||
the "probe" part would do a liftSTM readTVar, and some maybeM stuff, and liftSTM writeTVar on first eval | |||
luqui | oh, it's very important that the thunk's code be GC'd if possible | ||
oh wait, I'm screwed anyway in that area | 07:56 | ||
autrijus | it will be GCed if possible, I assure you. | 07:57 | |
the exp, once non reachable, will be claimed | |||
autrijus has complete trust in GHC-RTS's GC | |||
luqui | because, in pugs currently: my $closure = { my $x; my $y; -> { $x } }; # $y is not freed here, correct? | ||
how is it no longer reachable? | |||
that is, what happens that gets rid of it | 07:58 | ||
autrijus | if there is nothing in the current env that lets you reach ti | ||
then it's gone | |||
luqui | hm. | 07:59 | |
how about the $closure example? | |||
luqui thinks he groks your code above now | 08:01 | ||
autrijus | :) | 08:06 | |
the closure example, once $closure is out of reach from envLexical | |||
and envOuter envLexical (recursively) | |||
it's not reachable | |||
luqui | I'm asking about $y | ||
which $closure is not referring to, but it is referring to the pad that $y is in | 08:07 | ||
in Perl 5 in this case, $y would be freed immediately upon exiting that block | |||
(and L::AG takes advantage of that fact) | |||
autrijus | oh $y | 08:08 | |
p5 closes over only directly referenced stuff | |||
my $x = sub { my $z = 3; sub { eval '$z' } }; | 08:09 | ||
which is why this doesn't work in p5 | |||
luqui | Oh, it doesn't? | ||
luqui checks | 08:10 | ||
autrijus | ?eval my $x = sub { my $z = 3; sub { eval '$z' } }; $x()() | ||
mm bot gone. this works in pugs | |||
luqui | interesting | ||
heh, ask and ye shall receive | 08:11 | ||
I guess with CALLER:: you can't really help but close over the whole pad | |||
except in really really trivial cases | |||
darn. | |||
autrijus | note that parrot does the same. | ||
(close over the whole pad) | 08:12 | ||
luqui needs a new method to GC intermediate structures in L::AG | |||
and in that case I guess I don't really care about lazy {}. I'll try to fix it anyway | |||
autrijus | please do :) | 08:13 | |
luqui | ?eval 42 | ||
evalbot_7686 | 42 | ||
autrijus | luqui++ | ||
?eval my $x = sub { my $z = 3; sub { eval '$z' } }; $x()() | |||
evalbot_7686 | \3 | ||
autrijus | there's already a test in t/var/lazy.t | ||
luqui saw that | |||
?eval so | 08:14 | ||
evalbot_7686 | Error: No compatible subroutine found: "&so" | ||
luqui | op0 "so" = const (return $ VBool True) -- ?? | 08:15 | |
integral | luqui: so doesn't seem to appear in the big table | 08:16 | |
luqui | and the string "so" only occurs on that one line | 08:17 | |
integral | I hate Prim.hs | ||
autrijus | <aol/> | 08:18 | |
luqui: just kill that line | |||
luqui | ?eval class Foo { submethod DESTROY { say "Bye" } } Foo.new; say "done" | 08:35 | |
evalbot_7686 | done bool::true | ||
luqui | ?eval class Foo { submethod DESTROY { say "Bye" } } say Foo.new; say "done" | ||
evalbot_7686 | <obj:Foo> done bool::true | 08:36 | |
luqui | ?eval class Foo { submethod DESTROY { say "Bye" } } my $f = Foo.new; say $f; say "done" | 08:38 | |
evalbot_7686 | <obj:Foo> done bool::true | ||
luqui | hmm, evalbot doesn't spawn a new pugs it seems, as this is different from the command line | 08:39 | |
autrijus | aye | 08:40 | |
I'll bbiab, keynote endeth | |||
svnbot6 | r7687 | luqui++ | Made lazy {} execute its closure at most once. | 09:17 | |
autrijus | luqui++ | ||
luqui | the last thing is to fix that last todo in that .t | 09:18 | |
make it so you can pass lazies around | |||
any advice? | |||
rafl_ | Yeah.. be lazy. Pass it around. Let it do someone else. | 09:19 | |
09:19
rafl_ is now known as rafl
|
|||
autrijus | rafl++ | 09:19 | |
gaal | heya | 09:21 | |
autrijus | luqui: looking | 09:22 | |
gaal | rafl: I haven't gotten to trying a ghc build yet, sorry | ||
Can you look at bugs.debian.org/cgi-bin/bugreport.cgi?bug=319812 ? It sounds like it should be simple to fix... | |||
rafl | autrijus: I have a new problem with cabal and include-dirs. Isn't there a way to specify directories that should contain include files but which aren't needed to be available when registering the cabalized package? | 09:23 | |
luqui | seems that you can assign and bind lazies freely and they don't get evaluated, so some evaluation must be happening when you pass it to a sub | 09:24 | |
autrijus | ask on #haskell or syntaxninja or the cabal list? | ||
rafl | gaal: That's about ghc-cvs. ghc6 has already done it's gmp transition. | 09:25 | |
autrijus: I got ignored on #haskell twice. syntaxninja wasn't there, iirc. I'll try the list now.. | |||
nothingmuch | morning | 09:28 | |
luqui | morning nothingmuch | 09:29 | |
nothingmuch | evening luqui | 09:30 | |
also morning pdcawley | |||
luqui | 3:30 am is evening? | ||
nothingmuch | conceptually | ||
autrijus | k... | ||
luqui: yes, I'm looking | |||
nothingmuch | you are still awake, not already awake, right? | ||
luqui | autrijus, thanks :-) | 09:31 | |
nothingmuch forgot how nice Nighthawks at the Diner is | |||
luqui | I'm trying to chase it down myself, but it's slow-going because of my unfamiliarity with the source of course (of course) | ||
nothingmuch, L::AG 0.07 is out. backwards-incompatibl | |||
e | 09:32 | ||
nothingmuch_ reroutes through wifi instead of ethernet | |||
pdcawley | Morning all | ||
luqui | hiya pdcawley | 09:34 | |
pdcawley | Well, EUOSCON's fun. | 09:35 | |
luqui wishes he were there | 09:36 | ||
pdcawley | Oh, in that case, it's dull as ditchwater, you wouldn't enjoy it. Don't worry, you're not missing anything. | ||
Like MS releasing some software under a BSD like license. | 09:37 | ||
autrijus | yeah right. | ||
luqui | what!? | ||
rafl | It isn't even far from here. I just can't get there because it takes place just after semester started.. :-/ | ||
pdcawley grins. | |||
Tim's blogged about it. | |||
luqui | rafl, that was my biggest blocker too | ||
autrijus | and they have extremely good licenses! | ||
luqui | except, s/just/much/ | ||
autrijus | # www.microsoft.com/resources/shareds...cense.mspx | ||
pdcawley | That BSD like one's 3 paragraphs long. You don't have to scroll the browser. | ||
rafl | luqui: One week earlier and it woudn't have been a problem. | ||
autrijus | all of them are. | 09:38 | |
pdcawley | Yeah, even the 'look don't touch' one makes sense. | ||
nothingmuch_ would like to take HPUX, put it on a surgical table, and then ram a large chainsaw up it's *$^!% | 09:39 | ||
after which I will repeatedly remove and reinsert said large chainsaw several times | |||
and then I would dump HPUX in an alley so that it can blead to death | |||
pdcawley notes that the plan to make Office talk Opendoc might get a good deal easier... | |||
autrijus | luqui: I see | 09:40 | |
luqui: it's trying to get type information out of a thunk. | |||
and currently you can't know that without evaluting it. | |||
suggestions? | |||
I think we bundle type information with a thunk. | |||
luqui | well, first, if the sub is untyped, don't try to get type information | ||
s/sub/param/ | |||
autrijus | sure | 09:41 | |
but in general case. | |||
luqui | autrijus, yes, we could bundle type info with a thunk... but where do we get it? | ||
autrijus | using evalExpType | ||
which does some inferencing | |||
luqui | ahh | ||
luqui didn't know pugs did that yet | |||
autrijus | it's crude | 09:42 | |
doesn't do two way propagation | |||
luqui | the other question: sub foo ($x where { $_ < 3 }) {...} | ||
I guess we're forced to eval | |||
of course | |||
autrijus | yeah | ||
luqui | no problem | ||
autrijus | the "where" form is sugar | ||
luqui | well, for starters, how can I get rid of eval for untyped params? | 09:43 | |
mostly so I know where to look | |||
what the heck are we doing typechecking for? | 09:48 | ||
?eval sub foo(Int $bar) { say $bar } foo("hello") | |||
evalbot_7687 | hello bool::true | ||
luqui | because it's not working | ||
autrijus | er, we typecheck for mmd | 09:49 | |
and coerce when we give up | |||
luqui | so "hello" as Int eq "hello"? | 09:50 | |
autrijus | the cute thing is that we don't actually coerce the value ;) | ||
(as you must be aware, none of this behaviour is specced, so I just punted) | |||
luqui | ahh right | 09:51 | |
autrijus | anyway, it's all in Eval.Var | ||
findSub and evalExpType | |||
I'll fix the thunk first. | |||
luqui | and what aspect of the thunk are you fixing? | 09:52 | |
autrijus | data VThunk = MkThunk | ||
{ thunkExp :: Eval Val | |||
, thunkType :: VType | |||
} | |||
deriving (Typeable) | |||
this aspect. | |||
luqui | okay | ||
luqui is fading | 10:08 | ||
luqui beds | |||
autrijus | <- with sky in speaker's room | 10:10 | |
trying to hack a PIL-Run based on heavily optimized perl5 opcodes | |||
also praising the sanity of var-reg-as-pad in new parrot | 10:13 | ||
lunch & | 10:17 | ||
coral | autrijus: hi, sky! | 10:25 | |
Juerd_ | Heuh, tehmaze :) | 11:21 | |
Hi :) | |||
tehmaze | heya Juerd_ ;) | ||
greets from Oscon | |||
Juerd_ | Heh, what brings you there? | 11:22 | |
tehmaze | my employer :p | ||
Juerd_ | Are you there with or without a mission? | 11:24 | |
tehmaze | no, I'm ought to find new collegues | ||
Juerd_ | (Or is that confidentian? ;)) | ||
s/ian/ial/ | |||
tehmaze | but I'm off for a python reading now, ttyl | 11:25 | |
Juerd_ | Have fun | ||
tehmaze | thanks | ||
Juerd_ | Watch out for the snake. | ||
tehmaze | teh snake! | ||
Juerd_ | slangetje | ||
11:26
nothingmuch_ is now known as nothingmuch
|
|||
theorbtwo wonders where tehmaze works. | 11:26 | ||
Allo, nm. | |||
coral | tehmaze.nl/about/ | 11:28 | |
nothingmuch | hola theorbtwo | 11:29 | |
we're getting el-cheapo rain here | |||
nothingmuch is delighted | |||
theorbtwo | Ah. The netherlands. A bit too far. | 11:31 | |
Rain in the desert? Sounds ++able. | 11:32 | ||
We're getting very-heavy rain, then no rain, on a loop. | |||
Juerd_ | tehmaze: Did my site inspire you on the blinking ascii art cursor? :) | 11:33 | |
tehmaze | Juerd_: hmm, not really :) | ||
Juerd_ | gmta then :) | 11:34 | |
(fsd) | 11:35 | ||
coral | tehmaze: i nearly tried typing something at the command line. | 11:36 | |
what with all the random dhtml sites these days | |||
i know eventually it'll work somewhere =) | |||
tehmaze | coral: lol :) | 11:37 | |
Juerd_ | heh | ||
Hello, pdcawley | 12:09 | ||
pdcawley | Hi Juerd | 12:10 | |
tehmaze | pdcawley: you stole my ip, bastard! ;) | 12:14 | |
pdcawley | ? | 12:16 | |
I did? | |||
tehmaze | j/k, where are you at ? | 12:17 | |
brb, next conference :p | |||
metaperl | here's one place that usage of "." instead of "->" makes sense: <uv><xsp:expr>$w->{uv}</xsp:expr></uv> | 12:57 | |
already enough greater than signs without one coming from Perl | 12:58 | ||
tehmaze | or get the variable out of the quotes | ||
autrijus | yo | 12:59 | |
autrijus just handed a perl6 shirt to the ironpython guy | |||
Juerd_ | autrijus: You're evil in a very friendly way :) | 13:00 | |
autrijus | :D | 13:01 | |
Juerd_ | tehmaze: Will you be at the post-oscon amsterdam.pm meeting tomorrow? | ||
tehmaze | Juerd_: nope | 13:02 | |
Juerd_ | amsterdam.pm.org/meetings/after_oscon.html | ||
Oh, why not? | |||
I haven't seen you since wth :) | 13:03 | ||
Now, that's nothing special, as we usually only meet once a year (this time not at ne2000, though), but still :) | |||
tehmaze | hehe | ||
just not my cup of tea | |||
Juerd_ | How can it be that #perl6 is your cup of tea, but amsterdam.pm with a light technical perl6 related program is not? :) | 13:04 | |
coral | i do very badly with groups of perl people off of irc | 13:05 | |
tehmaze | Juerd_: I'm more interested in the parrot development than perl6 itself | ||
Juerd_ | Oh | ||
coral: Why's that? | |||
tehmaze: Then don't forget to also join irc.perl.org #parrot, if you haven't already | |||
coral | Juerd: i don't like talking about perl when i'm not on irc, mostly :) | ||
tehmaze | Juerd_: nooo, not yet another irc server :p | 13:06 | |
Juerd_ | tehmaze: You use irssi and must not care. | ||
coral | except for social politics and stuff :) | ||
Juerd_ | coral: Hm. You lead two separate lives? | ||
tehmaze | Juerd_: I lead 3, anything wrong with that? :) | 13:07 | |
Juerd_ | tehmaze: Three? I thought you had just one :) | ||
coral | Juerd: this is the only perl irc channel i'm in. | ||
tehmaze | Juerd_: nope | ||
Juerd_ | coral: I see | ||
coral | no, you perl | ||
Juerd_ | tehmaze: Heh | ||
coral | else you'd be in #c6 or something | 13:08 | |
qed | |||
Juerd_ | coral: see ne c | ||
coral grins | |||
Juerd_ | coral: And is this really what e.d.? | ||
coral | ok, i'm going back to talking about perl now | ||
Juerd_ | :) | ||
And I'm going to my office now | |||
To see if there's anything for me to do. | |||
afk | |||
14:00
rep is now known as r,
r is now known as rep
|
|||
eric256 | morning | 14:15 | |
autrijus | yo eric256 | 14:16 | |
eric256 | talks went well? | 14:19 | |
ingy | seen autrijus | 15:12 | |
jabbot | ingy: autrijus was seen 55 minutes 33 seconds ago | ||
ajs_ | I tried to send mail about S29 to the list yesterday, but it bounced. Seems that the list no longer accepts mail from residential MTAs (or some equally foolish reason for not accepting mail from by 10-year-old mail server. | 16:08 | |
(reason: 550 Blocked. Contact [email@hidden.address] Include this in the subject: 24.61.76.204) | |||
Joy | |||
I'll continue to work on it. I guess when I'm done I can let the channel know, and put a draft up on my Web server. | 16:10 | ||
nothingmuch is upset | 16:48 | ||
the bag I bought for my laptop was advertized as suitable for 17" laptops | |||
today it slipped as I was going out of the car | |||
and fell, from a short distance, on the pavement | |||
it hit a corner which was completely unprotected | |||
now it's dented | |||
Juerd_ | What has the 17" do do with this? | 16:49 | |
nothingmuch | and the two sides of the laptop have been compressed | ||
Juerd_: the laptop was too big to be protected by the backpack | |||
Juerd_ | Oh | ||
eric256 thinks backpacks are for carrying, not for protecting in a fall | |||
Juerd_ | eric256: Mine is for both, but it was expensive | ||
nothingmuch | while the sleeve covered it, and it seemed OK, in effect when you press down on that corner, nothing is stopping you from touching the corner of the laptop | ||
so was mine | |||
$70 or so | 16:50 | ||
which is not $200, but it still advertizes protection | |||
Juerd_ | hmm | ||
Yea | |||
nothingmuch | anyway, so now the mashed up side is scraping the plastic from the screen hinge | ||
and on the other side a connector is slightly deformed | |||
i need to open it up and bend it back from inside | |||
but the hardware store is already closed and all my screwdrivers are too big | 16:51 | ||
*sigh* | |||
Juerd_ | See if your insurance covers this before you open thi thing op | ||
s/thi\b/this/; s/op$/up/ | |||
nothingmuch | i have no insurance =( | ||
Juerd_ | Oh | ||
nothingmuch | i think | ||
there's the 1 year warranty, but it's not against that kind of stuff | 16:52 | ||
Juerd_ | True | ||
Did you pay for it by credit card? Some cc companies provide insurance for all purchases | |||
nothingmuch | hmm... i'll ask | 16:53 | |
i did | |||
crap, no bottom cases on ebay | |||
Juerd_ | Hello, rzeronny | 16:54 | |
pasteling | "Xzanron" at 82.43.184.103 pasted "Code and Output" (21 lines, 513B) at sial.org/pbot/13792 | 17:04 | |
r0nny | hoi | ||
Xzanron | i'm having trouble with a scropt | ||
r0nny | is Juerd_ a bot ? | ||
Xzanron | i'm using CGI to try and create a webpage | ||
Juerd_ | No, I'm not | ||
Xzanron: With Perl 6? | |||
r0nny | then u are fast ;P | 17:05 | |
Xzanron | Hmm.. not sure | ||
eric256 | yea...we can't get him out of the room either | ||
r0nny | script ? | ||
Juerd_ | Xzanron: Then you're probably not. Perl 6 is not finished yet. | ||
Xzanron | ah ok.. | ||
Juerd_ | Xzanron: You'd have known :) | ||
Xzanron: Please visit #perl | |||
Xzanron | is there a normal perl channel around? | ||
ok.. couldn't find that in the list.. sorry :) | |||
Juerd_ | Xzanron: No problem :) | ||
eric256: Oh. | |||
eric256 | lol | 17:06 | |
come on back man. ;) | |||
r0nny | btw - isi wish catalyst was allready ported | 17:07 | |
-si | |||
laterz | 17:08 | ||
Juerd_ | Can I come back yet? :) | 17:23 | |
rep | sure | 17:29 | |
Juerd_ | This channel is big! | 17:35 | |
I had never noticed :) | |||
We have many lurkers | |||
misc | wow, indeed | 17:36 | |
17:36
Juerd_ is now known as Juerd
|
|||
eric256 | yea 113 people, 4 who talk....and me babbling to myself | 17:40 | |
lol | |||
tewk | how is the parrot target going, I haven't heard a status since leo merged, I'd like to start playing with mod_parrot and perl6 ? | 17:42 | |
tewk , A lurker makes asks his monthly question :) | 17:43 | ||
mrborisguy | tewk: I think it's progressing along nicely | 17:44 | |
they released 3.0 not too long ago | |||
I don't follow it very well, but it seems to have lots of activity | |||
tewk | I meant pugs targeting parrot, I follow parrot. | 17:45 | |
r0nny | re | ||
mrborisguy | oh. I can't go in depth on that, either. | 17:46 | |
pugs can output pir based on perl6, but you probably know that. | |||
r0nny | does anyone know a good lib for dynamic depency tracking ? | ||
autrijus | woot | 17:55 | |
gave David Heinemeier Hansson a Pugs shirt :) | |||
(and chatted a while about perl6 and continuations) | 17:56 | ||
xerox | What kind of continuations? :-D | ||
autrijus | serialized :) | ||
xerox | Woot! | ||
stevan | autrijus: automated visiolation of the metamodel :) perlcabal.org/~stevan/mm_viz/test.jpg | 17:57 | |
autrijus | stevan: oh wow | ||
this is visio? | |||
stevan | graph viz | ||
this is just the bare Perl6::MetaModel | |||
autrijus | eggcellent! automated? | ||
stevan | yes | ||
autrijus | :D | ||
stevan | 2 hour hack at this point | ||
I am going to clean it up more | 17:58 | ||
autrijus | nice | ||
Juerd | What happened with graph viz? | ||
autrijus | maybe I'll show that to david | ||
xerox | Smells like reflection | ||
stevan | you can also load any test file,... and see the structure it creates | ||
Juerd | I remember it as something that makes ugly pictures | ||
This looks good. | |||
stevan | Juerd: perlcabal.org/~stevan/mm_viz/test.jpg | ||
xerox: yes, MM is very reflective | |||
autrijus | stevan++ # crazy cool | ||
xerox | The automation itself is written in p6? | 17:59 | |
pasteling | "stevan" at 67.186.136.119 pasted "the code to generate the graph viz models" (92 lines, 2.6K) at sial.org/pbot/13794 | ||
stevan | xerox: that is the code | ||
mrborisguy | stevan: you may want to put a key on that if you're showing it to people | ||
stevan | xerox: no it is still in p5 it is a prototype | ||
mrborisguy: yes, I am working on cleaning it up right now | 18:00 | ||
the basic key is this: | |||
--- subclas of ---> | |||
... instance of ....> | |||
solid lines is does() | |||
it just traverses down from Object | 18:01 | ||
Juerd | What is an EigenClass? | ||
xerox | JavaScript? :D | ||
stevan | Juerd: it is a ruby thing (sort of) | 18:02 | |
Juerd: it stores the class methods in it | |||
so that the dispatcher is still generic | |||
it is basically just an anon class inserted between Foo and Class | |||
I will export another to show what I mean | 18:03 | ||
xerox yummys some chestnuts | |||
stevan | Juerd: look here perlcabal.org/~stevan/mm_viz/test2.jpg | 18:04 | |
EigenClass[Class]<13> holds the class methods for Point3D | |||
and EigenClass[Class]<10> holds the class methods for Point | |||
xerox | o_O | 18:06 | |
stevan | the code this represents is basically just class Point {} and class Point3d is Point {} | ||
xerox | Is there an "Haskell's (.)" in p6? | ||
mrborisguy | xerox: as in the compose operator? | 18:07 | |
xerox | Yep. | ||
autrijus | david likes that :) | 18:08 | |
also mentioned Matz loves the p6 -> but ruby people objected to that in rubyconf | 18:09 | ||
(david prefers the "def { ... }" form) | |||
which is just like "sub { ... }" | |||
eric256 stares at stevans pictures...and stares and stares....someday hopefully i will learn enough by osmosis to understand. lol | 18:10 | ||
eric256 presses his forhead agianst the screen to assit the osmosis. ;) | |||
Juerd | stevan: I don't understand a thing of it, really. Sorry. | ||
stevan | it needs a legend | ||
and better coloring | 18:11 | ||
Juerd | I probably lack the required background knowledge | ||
stevan | which is what I am doing now | ||
Juerd: probably a little yes | |||
however, even when I explain it,.. it is still confusing :) | |||
Juerd | autrijus: In *use*, -> is much like ruby's || | ||
autrijus: Even though it does something else. | 18:12 | ||
kolibrie | stevan: I find it easier if I know where to start, and can find a path to follow (initialization order) | ||
Juerd | autrijus: Or, actually, it's not that different, as Ruby code blocks are also passed as arguments, eventually | ||
stevan | kolibrie: yeah, its hard to get graphviz to cooperate on that | ||
Juerd | autrijus: Except that we first have something return a list and then foreach that, while Ruby lets the methods themselves do the iteration work | 18:13 | |
object.method.each { |x| ... } versus for $object.method -> $x { ... } | 18:14 | ||
We could, in theory have $object.method(-> $x { ... }), but it'd be unperlish | |||
It is a bit weird though, that we go through a lot of trouble to have lazy lists, while Ruby doesn't even need them :) | 18:15 | ||
stevan goes back to reading the graphviz documentation & | |||
mrborisguy | can somebody clarify the '-> $x {...}' construct for me? | 18:43 | |
is it basically like Haskell's (\x -> ... ) construct? | 18:44 | ||
somehwat like an anonymous sub? | |||
Aankhen`` | G'night. | 18:47 | |
ajs_ | mrborisguy: still around? | 18:56 | |
eric256 | mrborisguy - yes it is something like that | 19:03 | |
sub ($x) { } | |||
masak | could someone explain to me more precisely what a "lispish macro" is? | 19:04 | |
they're supposed to be much better than, say, c macros | |||
and perl6 is supposed to have them | 19:06 | ||
are they covered in any of the synopses? | |||
kolibrie | masak: I'm no authority, but what I understand from that is that the macros change the AST, rather than text (which would have to then be parsed into AST) | 19:10 | |
masak | kolibrie: it sounds to me that such macros are functions, more or less | 19:11 | |
eric256 | i think you could consider macros like inline functions...but don't quote me on that ;) | 19:12 | |
masak | eric256: yes, i was thinking of inline functions | ||
i see now that they discussed it a lot in a recent p6-lang thread | 19:13 | ||
ingy | seen autrijus | ||
jabbot | ingy: autrijus was seen 1 hours 4 minutes 20 seconds ago | ||
eric256 | TSA replied to my post but i havn't a clue what he said.... | 19:16 | |
www.perlmonks.org/?node_id=265209 | 19:28 | ||
that discusses the macros and refers to S06 for more info | 19:29 | ||
luqui | ?eval macro foo () { } | 19:36 | |
evalbot_7687 | undef | ||
luqui | ?eval macro foo () { "+1" } 3 foo | ||
evalbot_7687 | Error: unexpected "f" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
luqui | ?eval macro foo () { "1+" } foo 3 | ||
evalbot_7687 | Error: unexpected "3" expecting "(", term postfix, operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
Eimi | ?eval macro postfix:foo () { "+1"}; 3 foo | 19:37 | |
evalbot_7687 | Error: unexpected "f" expecting operator, postfix conditional, postfix loop, postfix iteration, ";" or end of input | ||
eric256 | i don't think macros are implemented yet | 19:38 | |
Eimi | Well, that would explain why it's hard to use them | ||
luqui | :-) | ||
eric256 | ?eval macro foo () { "1" } ; foo; | ||
evalbot_7687 | 1 | ||
eric256 | ?eval macro foo () { "1+2" } ; foo; | ||
evalbot_7687 | 3 | ||
eric256 | or maybe they are. ;0 | 19:39 | |
luqui | Hm | ||
?eval macro foo ($x) { "1+$x" } foo "3" | |||
evalbot_7687 | "1+3" | ||
luqui | that looks like a sub call to me | ||
but it's not *quite*, given your example | |||
?eval macro foo ($x) { "1+$x" } foo 3 | |||
evalbot_7687 | "1+3" | 19:40 | |
luqui | ?eval macro foo ($x) { 1+$x } foo 3 | ||
evalbot_7687 | 4 | ||
luqui | ?eval macro foo ($x) { "" } 1 + foo 3 | ||
evalbot_7687 | 1 | ||
luqui has no idea | 19:41 | ||
?eval macro foo ($x) { "$x+1" } 1 + foo 3 | |||
evalbot_7687 | 5 | ||
luqui | ack | ||
this is weird | |||
ajs_ | To the question of LISP vs. other forms of macros: LISP macros are powerful because they directly manipulate code rather than pre-compiled text. I'll give you an example of why this is powerful: | 19:50 | |
You have a macro that takes a list of functions as its parameter. Each function will start with a conditional. You check the conditionals in the macro and write an optimized switch that jumps into the correct function at the point after the conditional. You do all of this AT RUNTIME. | 19:52 | ||
er, that is AT COMPILE TIME | |||
Juerd | juerd.nl/takahashi/icons.html # first attempt :) | 19:54 | |
obra | juerd: what is that? | 19:56 | |
Juerd | A try | ||
Do you know the takahashi method of presentation? | 19:57 | ||
obra | yeah. | ||
I guess "why all the icons" | |||
Or is this a refinement? | |||
"no words takahashi" | |||
Juerd | It works great with japanese, it works less great with english... I thought maybe it could work with icons :) | 19:58 | |
tehmaze | what is it? | ||
obra | cool | ||
obra has takahashi-ed his talk for npw | |||
Juerd | obra: This is a 30 second presentation, though :) | ||
Just trying it. | |||
obra | Juerd: nice | 19:59 | |
tehmaze | what is takahashi, enlighten me please :) | ||
obra | google 'takahashi method' | 20:00 | |
Juerd | The message basically is: takahashi method with icons / bullet slides / throw them away / takahashi had an idea / small letters suck / enlarge / instant clarity / takes time / makes people happy / japanese / other languages / everyone (understands) / this is an elephant / better! | ||
tehmaze | lol :) | 20:01 | |
takahashi, 'huge characters' | |||
Juerd | Actually | ||
The message basically is: takahashi method with icons / bullet (slides) / throw them away / (takahashi had an) idea / small letters (suck) / enlarge / (instant) clarity / (takes much) time (to prepare) / (but makes people) happy / (works well for) japanese / (not necessarily for) other languages / (but everyone on this) planet (understands) / (this is an) elephant / better! | 20:03 | ||
I hope that a normal takahashi presentation takes less time to prepare per 30 seconds, though :) | 20:05 | ||
This took me an hour | |||
(Finding icons and japanese for "I do not speak Japanese") | |||
theorbtwo | An hour per 30 seconds of talk? | 20:08 | |
GeJ | never attended a takahashi presentation yet, but if you haven't been there, my feeling is that the slides are not so helpful unless you already know what it's talking about. | 20:10 | |
Juerd | theorbtwo: With icons, yeah, apparently :) | 20:11 | |
Shillo | Hullo. :) | 20:49 | |
eric256 | hello | 20:57 | |
anyone know if there is a reason that pugs -V returns the wrong subersion number? | 21:10 | ||
subversion (not the svk or svn but teh actual .28 portion) | |||
PerlJam | ah, such confusing terminology | 21:12 | |
eric256 | lol | ||
Odin- subverts the terms. | 21:18 | ||
stevan | Juerd: diagrams with some explainations perlcabal.org/~stevan/mm_viz/index.html | 21:27 | |
eric256 | on the test 10 pages shouldn't the Point3D class somehow say that is inherits Point? | 21:28 | |
meppl | is anybody planing making a java-compiler for parrot? | 21:29 | |
stevan | eric256; yes :) changing now | ||
eric256: fixed now,.. thanks | 21:31 | ||
PerlJam | meppl: Feel free to write one. | ||
meppl | :D | ||
perljam, i only was interested | |||
eric256 | np...is there a short 15 word or less example of why you want eignclasses? if not thats okay ;) looks like it might have something to do with roles versus classes | ||
stevan | parrot -e "perl -e 'javac @ARGV'" | 21:32 | |
eric256: it is to keep method dispatch consistent | |||
PerlJam | eric256: The "work" of doing class-things needs to happen somewhere. | ||
stevan | method dispatch looks at the class of an instance for methods | 21:33 | |
well Foo is an instance of Class, but class methods for Foo are not stored in Class | |||
so the Eigenclass steps inbetween and can easily hold the class methods for Foo | |||
eric256 | gotcha...i think. ;) | ||
stevan | eric256: we directly stole it from Ruby,.. name and all | 21:34 | |
*cough* s/stole/borrowed/ *cough* | |||
eric256 | so class Foo declares an instance of class Class ? | 21:36 | |
and since its an instance it needs somewhere to exist? kinda the jist of it? | |||
stevan | class Foo is an instance of Class | 21:37 | |
Class being itself a class | |||
eric256 | alright...thats enough to keep my head busy for a while ;) | ||
stevan | :) | ||
eric256 | at least now when i look at your pretty pictures they mean slightly more than before ;) | 21:38 | |
stevan | this used to keep me up at night,.. literally,.. the spinning.... | ||
eric256 | you need like a Perl6 OO for newbs ;) | ||
svnbot6 | r7688 | stevan++ | Perl6::MetaModel - | 21:39 | |
r7688 | stevan++ | * fixed naming of Eigenclasses | |||
r7688 | stevan++ | * minor tweaks in a few tests | |||
r7688 | stevan++ | * added GraphViz driven class grapher,.. see examples at | |||
r7688 | stevan++ | perlcabal.org/~stevan/mm_viz/index.html | |||
GeJ | stevan: how much do you think the average Joe Sixperl should know about the MM? isn't all the EigenClass, Roles & co. too, hum... scary compared to the Class/Interface of let's say Java? | 21:42 | |
eric256 | you don't actualy need to know about EigenClass's at all | ||
btw...Java is terrifiying!!! madness i say madness!!! | |||
stevan | GeJ: You will need to know about classes and roles | 21:43 | |
eric256 | ?eval my @x = (1..5); print shift @x, "hello", @x; | ||
evalbot_7688 | Error: No compatible subroutine found: "&shift" | ||
stevan | anything more is optional | ||
Shillo | stevan: Hiya! | ||
stevan | hey Shillo | ||
Shillo | I feel a bit guilty about being drawn into a completely abstract discussion on the mailing list. :) | 21:44 | |
stevan | GeJ: I expect it will be like symbol tables are in p5, some people use them, others avoid them, but in the right hands, they can be a powerful tool | ||
Shillo: isnt that what p6l is for ;) | 21:45 | ||
Shillo | :) | ||
GeJ | stevan: ok... and for the EigenClass, as I see your diagram (Test30) it seems that there is an e-<ClassName> for every <ClassName> used. Won't that be a big overhead? | 21:47 | |
GeJ nods at eric256... definitely a Perl6 00 for Dummies | 21:48 | ||
stevan | GeJ: yes, it is a bit of overhead, however, they are fairly slim if you dont use them | ||
and to add them in dynamically is very difficult because they must maintain the mirrored hierarchy | |||
GeJ | they're 'auto-generated', right? | ||
stevan | yes, when a class is created, an eigenclass is created for it | 21:49 | |
GeJ | oki | ||
stevan | they are really just an implementation detail | ||
GeJ can't wait to get a 6.28.0 | |||
obra | What's left? | 21:51 | |
stevan | for 6.28.0? the metamodel mostly | ||
GeJ | $work and $life prevent me to get my feet wet yet --while I spend a pretty good amount of time looking at what's happening in the P6 world-- but once I get it, geez I want to play with that babe of yours guys :) | ||
PIL2 implementation wasn't part of it? | |||
obra | How much metamodel work is left? | 21:52 | |
stevan | obra: I am not sure how far autrijus has gotten on the Haskell port | ||
obra | *nodnod* | ||
stevan | there are still some stones left unturned in the prototype, but I think we need to integrate with the container model and runtime to figure those out | 21:53 | |
and that is best done in Pugs itself | |||
obra: also the metamodel is mostly based on A12, with some stuff added from recent discussions, but some of the more recent digressions have not been added/experimented with | 21:55 | ||
svnbot6 | r7689 | stevan++ | Perl6::MetaModel - cleaning up some junk at the end of the file | ||
rafl | stevan: How much faster performs Chaos.pm compared with Chaos/Upoptimized.pm? | 21:56 | |
stevan: And why does the Unoptimized version get installed? Doesn't seem to be used. Let's delete it. It's still in the RCS... | 21:57 | ||
stevan | rafl: Chaos.pm runs about 400% faster I think (something like that) | 21:58 | |
however the recent eigenclass stuff slowed everything down | |||
rafl: the unoptimized version is there for reference mostly, I think it worth keeping in RCS though | 21:59 | ||
rafl | Even if you delete it, it's still in the RCS. History won't get deleted :-) | 22:00 | |
stevan | well this is meant to be a prototype, so keeping a clean readable version is useful I think | ||
at least until autrijus ports it to haskell | |||
rafl | Do you still maintain it and put port the new changes from Chaos.pm? | 22:01 | |
stevan | rafl: yes | ||
rafl | Great. Maybe butting it into a directory that doesn't get installed would be OK. | 22:02 | |
stevan | rafl: that works for me | ||
rafl | Thanks. | 22:03 | |
stevan | rafl: I will move it to docs/ | ||
actually I will do it in a few hours, right now its time for dinner & | 22:04 | ||
rafl | Bon appetit! | ||
22:15
joao is now known as bracaman,
bracaman is now known as joao
|
|||
dduncan | fyi, I just posted to P6L a design problem I've been facing for awhile, and I appreciate feedback | 22:16 | |
it concerns the combination of a pair of related classes that form a solution, and people that want to subclass that solution | 22:17 | ||
any replies should be on P6L, and I now have to leave for a few hours | |||
thanks | |||
Juerd | stevan: It's confusing that there are subclasses of instances | 22:27 | |
stevan: The only way I can read this as a coherent thing is to separate Class into two things :) | |||
stevan: (removing the cycle) | 22:28 | ||
stevan: Also, how something can be a subclass and an instance at the same time is beyond me :) | |||
stevan: This is all highly weird for an outsider | |||
stevan: I hope this is not the way things work in Perl itself? | |||
stevan: Why do paths end in the roles (test30)? | 22:34 | ||
My head hurts. | 22:35 | ||
GeJ | Well, if you need a dummy to test-proof your documentation, I'd be more than willing to play this role... heck with my self esteem ;) | 22:39 | |
Juerd | GeJ: That's a good idea for all documentation. | 22:42 | |
GeJ: Do you have a few years of spare time? | 22:43 | ||
:) | |||
GeJ: You can start with Perl 5, and then move on to Perl 6.5 when you're done :) | |||
GeJ | Juerd: interesting advice... let me consid... "no" :) | 22:55 | |
with all due respect, of course :) | |||
rafl | Juerd: squirremail on feather seems to be broken. | 22:59 | |
Warning: fsockopen(): unable to connect to localhost:143 in /usr/share/squirrelmail/plugins/login_auth/functions.php on line 128 | 23:00 | ||
Why don't we use a webmailer that's written in Perl? :-) | 23:01 | ||
Juerd: I guess that happens because imap is disabled in favour of imaps. | |||
Juerd | rafl: Because all webmailers written in Perl suck even more than squirrelmail. Please prove I'm wrong. | 23:14 | |
svnbot6 | r7690 | juerd++ | A 2-level delegation test I just thought of | ||
Juerd | rafl: imap should be enabled on localhost | ||
rafl | Juerd: telnet localhost 143 doesn't say so. | ||
Juerd | Indeed | 23:15 | |
But see /etc/dovecot/dovecot.conf | |||
It is configured to listen on 127.0.0.1, and listen_ssl on feather.perl6.nl | |||
rafl | Maybe a packet filter? | 23:16 | |
Juerd | The listen on feather.perl6.nl also does not work | ||
In fact, dovecot isn't running. | |||
rafl | :-) | 23:17 | |
Juerd | Oct 20 01:16:47 feather dovecot: pop3-login: Can't load certificate file /etc/ssl/certs/dovecot.pem: error:25066067:DSO support routines:DLFCN_LOAD:could not load the shared library | ||
I wish I knew what this meant. | |||
> Apparently someone did a non-maintainer upload and botched something in the | 23:18 | ||
> process. | |||
lists.alioth.debian.org/pipermail/p...00112.html | |||
Hurrah. | |||
Ah well, it's Debian sid for a reason | 23:19 | ||
(First in a long time that I have this kind of trouble, though) | 23:20 | ||
First time that I have this, not a long time that I have been having this, for the record. | |||
integral | NMU means that someone other than the developer in charge released that version of the package. Usually it's for urgent security fixes afaik | 23:21 | |
Juerd | integral: I know | ||
integral | ah, I seem to have read your comments upside down :) | ||
Juerd | heh | 23:22 | |
Dowside up, then :) | |||
rafl | Juerd: Well, (s|l)trace and try to find that lib to install it? | 23:23 | |
Juerd | I downgraded openssl | 23:25 | |
There was an upgrade available, but this didn't fix. | 23:26 | ||
Dovecot is running again | |||
Hm | |||
rafl | Great, thanks. | ||
Juerd | No it's not | ||
My ps ax was to ofast | |||
Hm | 23:29 | ||
Then I have no idea what is causing it. | |||
Well, it must be libssl | 23:30 | ||
But I don't know precise enough what is wrong, so I cannot fix it :( | |||
Ahh | 23:32 | ||
Downgrading *dovecot* helped | |||
Trying 127.0.0.1... | |||
Connected to localhost. | |||
Escape character is '^]'. | |||
* OK Dovecot ready. | |||
Good night | 23:38 | ||
stevan_ | Juerd: actually it is (probably) how Perl 6 will work | 23:59 |