Pugs t-shirts www.cafepress.com/pugscode | Pugs 6.2.9 released | pugscode.org | pugs.kwiki.org | paste: sial.org/pbot/perl6 | www.geeksunite.net Set by stevan on 15 August 2005. |
|||
stevan | autrijus: nothingmuch helped me golf WALKMETH down even further,. you will like this one | 03:51 | |
my $dispatcher = shift; | |||
{ ($dispatcher->() || return)->get_method(@_) || redo } | |||
thats all of it,.. it just works ;) | |||
stevan wanders off to sleep & | 03:52 | ||
svnbot6 | r7180 | stevan++ | Perl6::MetaModel 2.0 - | 03:54 | |
r7180 | stevan++ | * further distillation of WALKMETH thanks to nothingmuch++ | |||
r7180 | stevan++ | it has now been golfed down to just 2 lines: | |||
r7180 | stevan++ | my $dispatcher = shift; | |||
r7180 | stevan++ | { ($dispatcher->() || return)->get_method(@_) || redo } | |||
guorke | hi,can you see "" ? | 03:55 | |
QtPlatypus can see | 03:57 | ||
guorke | i download a patch,let mirc can display chinese words | 03:58 | |
QtPlatypus just sees double quote, double quote, space, questionmark | 04:00 | ||
guorke | oh, maybe it can not covert GBK to utf-8 | 04:03 | |
masak sings 'can you see the "" tonight?' | 04:15 | ||
guorke | ? | 04:18 | |
nothingmuch | morning | 05:57 | |
but ciao | |||
geoffb | heh | 05:58 | |
nothingmuch 's ride to work is *finally* getting here soon | |||
(it's 9am already, which means i'll be at work around 9:45, and the std here is 8:15-8:30) | |||
geoffb | rideshare? | ||
nothingmuch | aye, either with someone who makes a big commute daily or with the folks | 05:59 | |
the problem is that folks aren't teaching right now - it's between semesters | |||
so they are slacking | |||
geoffb | What do your parents teach? | ||
nothingmuch | degenerates | ||
geoffb | *smirk* | ||
nothingmuch | dad: www.math.bgu.ac.il/~kojman/ | 06:00 | |
and mom: profiler.bgu.ac.il/site/public_site...er_id=1045 | |||
geoffb | Interesting pairing | 06:01 | |
nothingmuch | aye | ||
geoffb | Though I can completely see math + language = CS | 06:02 | |
(genetically speaking) | |||
nothingmuch wants to study math & linguistics | |||
and some compsci for the hobby aspect | |||
*poof* | 06:03 | ||
see you soon | |||
geoffb | sys | ||
nothingmuch | luqui: ping | 06:33 | |
two things: | |||
a. go to sleep young man | |||
b. can you open up the repo for L::AG? | |||
luqui | the repo is already open | 06:34 | |
nothingmuch | so can you point me to it? | ||
luqui | svn.luqui.org/svn/misc/luke/work/co...uteGrammar | ||
nothingmuch | goody | ||
blog.moertel.com/articles/2005/09/2...arithmetic | |||
i think perl 6 should truncate upwards when the number is 409.999999994 | 06:35 | ||
anyway, off to work... finally | |||
luqui (and one of my friends) thinks that perl should have a builtin round() function | |||
to complement int() | |||
er, *his* friends :-) | 06:36 | ||
nothingmuch | yes, we should | ||
geoffb | That does a proper round, not just +.5 / trunc | ||
nothingmuch | but we should also have a truncate that also DWIMs around 0.99999 | ||
luqui | oh nothingmuch | 06:37 | |
nothingmuch | while 'float::int()' will do the bare metal truncate | ||
luqui | if you want to commit to the repo, you should give yourself a commit bit at luqui.org/svn-adduser | ||
nothingmuch | okies | ||
geoffb | Anyone specifying rules for floating point math should be forced to take classes with Prof. W. Kahan first | ||
luqui | agreed, for various values of Prof. W. Kahan | 06:38 | |
geoffb | The value I'm thinking of was one of the guys behind the IEEE FP design, wrote the transcedental microcode for early Intel processors, and spends his days writing papers about how incredibly bad the tiniest FP errors are. | 06:39 | |
Crazy, but Real Damn Smart | |||
Funny how often those go hand in hand | 06:42 | ||
Aankhen`` | Normal people aren't smart. You have to go beyond normality if you are to be smart. | 06:43 | |
geoffb | valid point | ||
Khisanth | and creative/inventive :) | 06:44 | |
Aankhen`` | Indeed. | ||
Khisanth | if you are normal any thing you thought of is likely to have been thought of by other people already! | ||
luqui | but the converse is not necessarily true | 06:45 | |
smart people can have pedestrian ideas, but the genius/hubris to actually do them :-) | |||
Aankhen`` | Heh. | ||
geoffb | I would argue that even the smartest people are so strongly influenced by past creations that it's unrealistic to think that anything is "completely new" | ||
luqui | "shoulders of giants" and whatnot | 06:46 | |
geoffb | nodnod | ||
Aankhen`` | Too bad being smart and being creative don't go hand in hand. | ||
Khisanth | but even while standing on the shoulders of giants you still have to know which way to look! | 06:47 | |
geoffb | heh | ||
Aankhen`` | ROTFLMAO. GameSpot has a countdown to the release of the F.E.A.R. (ugh) Multiplayer Demo. Time left? NaN hours: NaN minutes: NaN seconds. | 06:50 | |
geoffb | LOL | 06:51 | |
Sorta like seeing a blue screen on a kiosk | |||
Aankhen`` | It's the little, thoughtful touches like this which make me loath GameSpot. :-D | ||
Khisanth | geoffb: or an atm | 06:52 | |
geoffb | Khisanth, nodnod, though that just kinda worries me. "You're handling my money using Windows? Are you INSANE?!?" | 06:53 | |
Aankhen`` | Heh. | ||
LMAO. | |||
autrijus | yo :) | 07:15 | |
geoffb | yo, boyee | ||
From 1984: "... newer processors handle 32-bit addressing, allowing unimaginably large programs." | 07:17 | ||
luqui | 32 bit in 1984? | 07:18 | |
man, I need to catch up on my history | |||
geoffb | I can't remember if the 386 was '84 or '85, but certainly the VAX was around by then | ||
nothingmuch | hah | 07:20 | |
the rails team is teh sux0r | |||
geoffb | ? | ||
nothingmuch | weblog.rubyonrails.com/archives/200...12-members | ||
after 6 months rails core team members finally got commit bits | |||
... from 4 to 8 (!!!) | 07:21 | ||
uh, there were 4, 8 new ones got acess | |||
Khisanth | pugs has what? over 100? in 7/8 months? :) | 07:22 | |
nothingmuch | let me check | ||
dduncan | yes | ||
geoffb | "Anarchy with an audit trail" | ||
autrijus | :D | 07:23 | |
nothingmuch | 127 | ||
Khisanth | that :D is slightly disturbing | ||
QtPlatypus | 2^x -1 | 07:24 | |
autrijus | we need to find 128 others | 07:25 | |
and jump to 255 in a run | |||
nothingmuch tried recruiting people on perlmonks | 07:26 | ||
only Detonite came | |||
we can try #perl | 07:27 | ||
Khisanth | that would not be a good idea | 07:29 | |
dduncan | isn't #perl more a newbie channel? ... I don't know, never went there | 07:30 | |
Khisanth is starting to hate modern software | |||
nothingmuch | Khisanth: hate hate hate | ||
Khisanth | newbie? not really but it is partially a help channel | ||
geoffb | Welcome to the club, Khisanth | ||
nothingmuch | what are you hating? | ||
geoffb | And is clkao involved? | ||
dduncan | doesn't have to be anything ... | ||
just the standard 2 minutes of hate | 07:31 | ||
Khisanth | the fact that compiling this thing seem to require over 300MB of space ... SO FAR! | ||
dduncan | I noticed | ||
nothingmuch | ever tried openoffice? | ||
2GB | |||
=( | |||
Khisanth | what the hell is it doing that it's generating that much data? | ||
geoffb literally bought his new machine because compiling Pugs became untenable on the old one | 07:32 | ||
dduncan | I think its just GHC | ||
nothingmuch | geoffb++ | ||
Khisanth | I didn't know openoffice was written in Haskell ... | ||
dduncan | GHC has to do a lot of work to optimally convert functional constructs to the procedural ones that machines use | ||
nothingmuch | no, it isn't | ||
autrijus | Khisanth: is it all in Pugs.Run? | ||
dduncan | probably lots to keep in memory and cross check, etc | ||
nothingmuch | Khisanth: you can complain to spj et all | ||
Khisanth | or the xorg X server :) | ||
nothingmuch | they had a survey | ||
autrijus | nothingmuch: the space behaviour is indeed better on 6.4.1 here | ||
Khisanth | autrijus: ah this isn't pugs | 07:33 | |
autrijus | eh heh ;) | ||
okay then :) | |||
nothingmuch | oh, then what is it? | ||
dduncan | by the way, is 6.4.1 in release status, or still pre-release? | ||
Khisanth | pugs just eats up several hundred MB while compiling | ||
dduncan | s/release/stable/ | ||
autrijus | dduncan: it's full released | ||
Khisanth | or was it the linking ... | ||
dduncan | then I'll have to go get it some time | ||
I think the linking is minimal; the compiling is the big memory eater | 07:34 | ||
geoffb | Don't know if it's still true (haven't checked), but one of the problems was that the makefile had GHC run the compile and link in a single pass -- so at one point, both GHC and LD are taking piles of VM | ||
Khisanth | I think top indicated around 500MB that one time I checked and I have 256MB of ram so you can imagine how often I build pugs :) | ||
autrijus | geoffb: indeed... cabalize would fix that | ||
I think | |||
geoffb | Don't sell the link short -- I hit 200+ MB in ld at one point, IIRC | 07:35 | |
autrijus, cool | |||
nothingmuch | memory? | 07:36 | |
or disk? | |||
what was Khisanth complaining about? | |||
Khisanth | nothingmuch: the 500MB? that was memory | ||
nothingmuch | the 300? | ||
geoffb | I was talking about VM | ||
Khisanth | nothingmuch: xorg | 07:37 | |
nothingmuch | oh! | ||
hehe | |||
nothingmuch wonders whether he should have a lambda tatooed on his forehead | |||
that would make me look as if I know haskell and stuff | |||
Khisanth says no | |||
nothing wrong with the lambda but forehead just doesn't seem like a good choice | 07:38 | ||
nothingmuch | ass? | ||
luqui wants a lambdacamel tattoo, or if I'm feeling like a wimp, shirt | |||
nothingmuch | i know i know | ||
palm | |||
Khisanth | hrm | ||
geoffb | The only proper forehead tattoo is "Poor Impulse Control" | ||
luqui | :-) | ||
Khisanth | nothingmuch: across your right eye! :) | ||
luqui | mmm eyelid tattoos. That could be really creepy | 07:39 | |
especially if it's a lambda | |||
nothingmuch | images.google.com/images?q=lambda+camel | ||
luqui | it would have to be the left (for lambda) eye | ||
nothingmuch | we need to hack something up | ||
Khisanth | heh contacts with a lambda in the middle :) | ||
luqui | uh yes, that's what I think of when somebody says "lambdacamel" | ||
nothingmuch | if you goodle images for lambda you get a lot of pictures of wannabe-gangstars | 07:40 | |
Khisanth | frmb.org/images/lambda.gif or that! | 07:42 | |
nothingmuch | digital.library.mcgill.ca/fishstein...atsub1=11I | ||
Khisanth | lambda the storm trooper? | 07:43 | |
nothingmuch | hello Administrator | 07:45 | |
Administrator | hoi :/ | 07:46 | |
damn | |||
wrong nick | |||
07:46
Administrator is now known as r0nny
|
|||
autrijus hops on taxi toward the conferece, bbiab & | 07:47 | ||
geoffb | g'night all | 07:49 | |
nothingmuch | night | 07:50 | |
darn... i can't type a lambda into gimp! | 07:53 | ||
that's what you get for not pirating expensive software, eh? | |||
luqui | that's odd | ||
gimp ought to have truetype ability | 07:54 | ||
nothingmuch | it's because it's under osx's x11, and i guess that doesn't get along very well | ||
nope, not working | 07:55 | ||
fsck it | |||
back to unit testing | 07:56 | ||
can anyone send me a gimp file with a lambda in it, doesn't matter what font, so that I can merge with this file? | |||
luqui | what about the lambdacamel picture? | ||
08:54
r0nny is now known as r0n|-_-
|
|||
Aankhen`` | GHC 6.4 blows up when building Pugs, 6.4.1 blows up politely. Wonderful. | 09:50 | |
clkao | agent autrijus, are you on holiday, there hasn't been updates from you | 10:11 | |
wilx | Got caught why spying, convicted of treason and executed, in some less-than-deocratic republic. | 10:26 | |
while | |||
Err. | |||
broquaint | The Republic of Paskalovia - The Land of Imperative Righteousness! | 10:42 | |
autrijus | rehi! | 10:44 | |
Aankhen``: politely how | 10:45 | ||
? | |||
er I mean, blow up how? | 10:47 | ||
broquaint | How's the conferencing going, autrijus? | ||
autrijus | broquaint: very well -- nonstop hacking | 10:48 | |
broquaint | Hacking and listening? Skills! | ||
autrijus | darcs hackers invented a domain specific language for patch merging, resolution, commuting | 10:49 | |
verified by the type system so the implementation can be verified at compile time | |||
very cool stuff | |||
broquaint | Nifty! What's the most interesting thing (to you) to come out of the conference? | 10:50 | |
autrijus | there's too many to list... but mostly that people seem to regard Pugs quite positively | ||
and Dylan is the true perl6-without-advertising, not Ruby | |||
clkao | oh oh | 10:51 | |
broquaint | Have you managed to recruit any more suck^Whackers to Pugs? | 10:52 | |
autrijus | yes... SyntaxNinja is helping me cabalising pugz | 10:55 | |
and there's many discussions on more efficient compilation and making PIL2 more expressive | |||
also I'm now hacking GHC core to make some features Pugs want from GHC available on GHC 6.6 | 10:56 | ||
broquaint | You're hacking GHC for Pugs? Madness! | ||
autrijus | it's not bad at all | ||
broquaint | So you're hacking 6.6 features into 6.4? | 10:58 | |
clkao | www.pugvillage.com/ten_healthy.htm | 10:59 | |
wolverian | autrijus, cabalising? | 11:00 | |
autrijus | turn things to cabal | 11:05 | |
but I'm now going to hack with spj some more so bbiab & | |||
wolverian | okay, bye :) | ||
autrijus | :)) | 11:08 | |
wolverian: see Pugs.cabal | |||
or rather pil.cabal | |||
wolverian | ah, thanks | ||
time to go check these linear algebra (really) assignments, though | |||
bbl & | 11:09 | ||
autrijus | rehi | 11:43 | |
knewt | autrijus: do you have a moment? had a problem with Module::Install yesterday | 11:45 | |
autrijus | knewt: sure | 11:46 | |
what is it? | |||
knewt: mm? | 11:55 | ||
broquaint | What does SPJ think of Pugs, autrijus? | 11:56 | |
autrijus | broquaint: he thinks it's very cool | 11:59 | |
also for some reason he thought it has been around for far longer than it had. | |||
so he was quite positively surprised that it's less than a year old. | |||
broquaint | It has made quite a lot of progress, compared to say, most other languages. | 12:00 | |
autrijus | :) also he said Pugs exercises several GHC features no-one was exercising to that degree | 12:01 | |
(darcs in comparison was very mild in using GHC extensinos) | |||
so he'd be delighted to help making Haskell-as-extended-by-GHC more friendly to Pugs development | |||
broquaint | Nice :) | 12:02 | |
autrijus | which is the reason of this spanned-through-four-days hackathon with simon and simon :) | ||
broquaint | That's a lot of Haskell! | ||
autrijus | <- learning through osmosis about how GHC handles parsing, typechecking, syntax, etc | 12:03 | |
and the driving design rationales for them | |||
it's fascinating stuff :) | |||
broquaint | learning++ # Makes doing other stuff easier. | 12:04 | |
autrijus | indeed | 12:05 | |
knewt | autrijus: it doesn't detect properly that it has write permissions to the cpanp cache directory | ||
autrijus | are you using the latest EU::AI? | 12:07 | |
I think it's a EUAI problem already solved and released | |||
ycheng_: hi! long time no see | 12:08 | ||
knewt | autrijus: EU::AI 0.63, M::I 0.37 | 12:14 | |
autrijus | knewt: ok... mail the transcript to me -- or better, nopaste it here | ||
knewt: if you want to help debugging, it's in EUAI, look for "-w" | 12:16 | ||
or the errormsg | |||
knewt | ah. yeah. found it. would that pick up write permissions granted by group only using a supplemental group? | 12:19 | |
autrijus | I'm at mercy of perl's -w implementation | 12:20 | |
maybe you want to change to an operational check? | |||
i.e. actually try to do some empty things | |||
writing $$ in it as a filename and unlink it | |||
not sure -- improvise | |||
knewt | ah, wait a mo. when i first ran Module::Install, EU::AI wasn't installed, so it used it's provided version, which is only 0.61. -w /does/ pass for my cpanp cache path, i've checked | 12:28 | |
autrijus | good. | 12:29 | |
there's no good way out of this | |||
I toyed with the idea of having M::I _compare_ the included EU::AI version with the user machine's | |||
knewt | maybe a new version of Module::Install with an updated included version of EU::AI ? | ||
autrijus | thing is that M::I and EU::AI are currently separate | 12:30 | |
I guess this argues pretty strongly that I should either merge the dist | |||
or make M::I depend on the latest EU::AI | |||
which would be less intrusive, since not all EUAI users want M::I | |||
that makes sense to you? | |||
knewt | yep | ||
autrijus | good. can you make that change? | ||
knewt | yeah, sure. you want a patch sent to rt? | 12:31 | |
autrijus | no, you are a committer :) | ||
knewt | oh, it's in the same repo? | ||
autrijus | svn.openfoundry.org/modinstall/ | ||
what's your openfoundry id? | |||
knewt | knew | 12:32 | |
autrijus | ok, you should be able to simply commit | ||
to both EUAI and M::I | |||
when you're done and want me to look/release let me know | |||
it's just like pugs :) | |||
knewt | heh. cool. will do | ||
autrijus | knewt++ | ||
wolverian | wow, interesting paper: psyche.cs.monash.edu.au/v2/psyche-2...stapp.html | 13:06 | |
integral | the real reason for junctions! | ||
wolverian | haha. | 13:07 | |
geoffb | learning heavily -> brain working hard -> insomnia -> AAAAUUUGGHH | 13:12 | |
nothingmuch | msdev is frustrating | 13:34 | |
autrijus | switch to eclipse? :) | 13:38 | |
nothingmuch | deep vendor lockin | ||
we're using vc++ 6.0 | 13:39 | ||
autrijus | :-/ | ||
sounds deep | |||
nothingmuch | tell me about it | ||
and the thing is that to compile on UNIX we have an entirely independant build system using makefiles | |||
that assumes so much about how UNIX works that we can't even compile with the makefiles under cygwin | |||
geoffb | ewww | 13:40 | |
nothingmuch | so there is absolutely no code being shared between the two build systems | ||
geoffb | .oO( No, cat, just because I'm awake does not mean it's time for your breakfast ) |
13:41 | |
nothingmuch | our dog is even worse than that =) | ||
she thinks that food is provider dependant | |||
so she is sure she deserves one serving of food per human per mealtime | |||
geoffb | That kind of problem was why at a previous company I ported the entire build system to Perl . . . . | ||
nothingmuch | and the thing is, she's got a dramatic talent | ||
geoffb | heh | 13:42 | |
nothingmuch | geoffb: i guess we could use a decent system that is portable... maven is prolly good enough | ||
geoffb | Our cats will try that with all sincerity too | ||
nothingmuch | for portability's sake even ant will work | ||
the makefiles are also reasonably well written | |||
just not portably enough to work on windows | |||
without too much effort being wasted | |||
geoffb | nodnod | 13:43 | |
nothingmuch | and also, the integration that msdev as a UI which everyone likes has with itself as a build system is pretty good | ||
and no one wants to throw that out the window | |||
nothingmuch is pleasantly surprised at the backup ability of his home dir | 13:44 | ||
geoffb | ? | ||
nothingmuch | i thought there were heaps of unnecessary crap | ||
geoffb | ah | ||
nothingmuch | but turns out that if i filter simple things: movies, music, comics i am down to 3-4 CDs | ||
if i then remove the work src dir, which has VCS (and I normally work via remote desktop or rsh anyway) then that's another 350MB down | 13:45 | ||
application and browser caches, and IMAP mirror are another 2gb or so | |||
so now i'm down to less than 2 cds for a full backup | |||
i'll prolly backup my music to DVD since it doesn't need to be as fault tolerant | 13:46 | ||
geoffb | how is DVD less fault tolerant than CD? | 13:47 | |
kgftr|konobi | print to paper is the best backup mechanism | ||
geoffb | Have you seen how bad OCR still is? :-) | ||
kgftr|konobi | i never said anything about restoring the backup | 13:48 | |
=0) | |||
geoffb | A few years back I heard that a good chunk of old (mid-last-century) scientific data is being lost forever because the tapes are degrading faster than the tape readers can transfer the data to new media | 13:50 | |
PerlJam | geoffb: Have you heard of the longnow foundation? | 13:56 | |
geoffb | nope | 13:57 | |
PerlJam | geoffb: see longnow.org/10klibrary/library.htm | 13:58 | |
geoffb | interesting | 14:02 | |
Reminds me of a project that is trying to keep rare languages from dying by creating modern-day rosetta stones, microprinted with parallel translations in hundreds of languages. | 14:04 | ||
nothingmuch | given networking i think that article is moot | 14:05 | |
and given open standards, ofcourse | 14:06 | ||
Khisanth | not really moot and it might give sneaky corporations some ideas | 14:07 | |
"we don't have bad record keeping! the records just deteriorated!" | 14:08 | ||
svnbot6 | r7181 | fglock++ | * pil-run - say 3|4 "works" | ||
nothingmuch | the problem is with corporate idiots | ||
that control managorial idiots | |||
PerlJam | geoffb: the longnow foundation started that project | ||
geoffb | The article points out one networking problem -- dead hyperlinks. Good thing there's an internet archive now; of course, that doesn't help anything that's not linked into the publicly accessible internet | 14:09 | |
PerlJam, oh. Well, cool then. | |||
I guess I had heard of them but had just forgotten the name. | |||
PerlJam | geoffb: see longnow.org/10klibrary/libIdeas.htm | 14:11 | |
:-) | |||
nothingmuch | seems like a nice philosophy, though | 14:12 | |
PerlJam wonders if programming languages count as "human languages" | |||
I also wonder how they intend to preserve unwritten languages. | 14:13 | ||
SamB | micro-phonographs! | 14:17 | |
geoffb | Memory failing -- what's the term for a special value used in a data structure to make algorithmic loops have simpler termination conditions? | 14:42 | |
It's right on the tip of my brain, and I can't get it | 14:43 | ||
sentinal? | |||
hmmm | |||
PerlJam | geoffb: sentinel, yes. | 14:44 | |
geoffb | thx | ||
14:51
Jooon_ is now known as Jooon
|
|||
Limbic_Region | geoffb - would you like to see an example of sentinals? | 14:53 | |
geoffb | Um . . . unless you're about to make a joke, no. I know what they are and how to use them, I'm just losing memory from insomnia | ||
So I couldn't remember the word | |||
Limbic_Region | heh | 14:54 | |
no, wasn't a joke. | |||
knowing a term conceptually isn't always enough | |||
sometimes people need examples and I just recently came across one | 14:55 | ||
geoffb | Well, if it's cool, paste a link . . . I'm always up for cool code | ||
Limbic_Region | k - just a sec | 14:58 | |
geoffb | .oO( Thinking Forth has some nice microoptimization tricks ) |
||
Limbic_Region | perlmonks.org/index.pl?node_id=487200 | ||
Spiriling Integers | 14:59 | ||
It is possible more than one implementation used sentinels - I didn't disect them all, but demerph's did | |||
mine was pure math btw | 15:00 | ||
nothingmuch | anyone got an example of sentinal variables? i'm not sure how obvious this is | 15:05 | |
so i'm not 100% on the concept | |||
geoffb | Perl people use them all the time without even realizing it -- ye olde undef at the end of the array trick | 15:07 | |
(or undef at end of iterator or filehandle or ...) | |||
Limbic_Region, interesting stuff. | 15:08 | ||
Khisanth | err undef at the end of an array seems somewhat dangerous | ||
geoffb | Khisanth, implicit, not explicit. | 15:09 | |
i.e. definied shift @array | |||
er defined, sheesh | |||
In any case, my point was that Perl surrounds data sources with sentinel values (undef, in particular) implicitely, so that the programmer need not even know what a sentinel is to use it | 15:10 | ||
mmmm, tea | |||
nothingmuch | ah | 15:11 | |
i thought this was a manual thing | |||
a micro optimization of sorts | |||
geoffb | In most languages, it is | ||
C is where I first learned it | |||
nothingmuch | can I have an exmaple of how this would be done in say C? | 15:12 | |
Limbic_Region | sorry geoffb - was chatting in the Monastery chatterbox | ||
nothingmuch | kind of like the \0 at the end of strings? | ||
geoffb | Limbic_Region, is it just the stuff you forward, or is PerlMonks chock full of little puzzles? | ||
nothingmuch, yes, exactly. | |||
nothingmuch | so it's a programmer optimization, not a performance one, right? | 15:13 | |
Limbic_Region | geoffb - I pay particularly close attention to the neat and interesting problems which I would say is 10-15% | ||
geoffb | nothingmuch, actually, it's both. | ||
See Sedgewick's _Algorithms in C_ for some nice examples | |||
nothingmuch | how does \0 make things faster as opposed to a <int, char[x]> ? | ||
geoffb | Because 0 is false in C (and asm) also. | 15:14 | |
So lots of string manip stuff becomes while loops, that don't need to waste a (used to be precious) register on a loop counter | |||
nothingmuch | e.g. for strlen, or strcat | ||
oh, i see | |||
heh, intel really fucked up everything 20 years, ago, didn't they? | 15:15 | ||
geoffb | YES | ||
geoffb omits several nasty comments about IA32 | |||
Limbic_Region | I won't digress for the worthwhile conversation anymore other than to say that I plan on making a collection of all the puzzles and interesting problems I have encountered at the Monastery and elsewhere geoffb | ||
nothingmuch wonders how much longer the std c lib will live before needing reimplementation in terms of this stuff | |||
to make it more suitable for modern processors | |||
nowadays with another register it's probably faster, more secure, and safer to store a length next to a buffer instead of a buffer with a marker at the end | 15:16 | ||
geoffb | Some stuff was just brilliant, but some of the IA32 decisions sucked the dog dick of Anubis (*cough* obscure movie reference *cough*) | ||
Definitely more secure. | |||
nothingmuch | can I have an example of brilliant stuff? | 15:17 | |
geoffb | As far as faster, well, that depends. But it's at least not guaranteed slower | ||
nothingmuch | well, stcat should just put the string right there | 15:18 | |
geoffb | Hmmm . . . It's been a long time since my 8088 -> 80386 days | ||
nothingmuch | no need to find the ned of a string | ||
no need to smash the stack with an unnecessary buffer if the string is very long | |||
geoffb | oh, certainly, having strlen be O(1) would be a HUGE difference for bad code everywhere. | ||
nothingmuch conciously uses stlen instead of cachine | 15:19 | ||
caching | |||
i perform for programmer efficiency =) | |||
geoffb | Unfortunately a portion of libc pretty much has to do implicit strlen's because the API is borken | ||
nothingmuch | perform optimizations | ||
aye | |||
i don't know my way around std c lib... what other parts are starting to show age? | |||
geoffb | actually, a LOT of it | 15:20 | |
There are replacements for large chunks, but not all C programs use even the ones invented a decade ago, let alone recent stuff | |||
nothingmuch | what about STL in C++? | 15:21 | |
geoffb | Personally, I recommend just using something like glib (not glibc, the GTK thing) to handle as much of the low level API as possible. They get to deal with making the headaches sane. | ||
I know less about STL, other than that people sometimes call it "the good part of C++". I don't use it, because I hate C++. | 15:22 | ||
nothingmuch hates C++, but uses it work | |||
however, i've only done maintenance programming, so I'm not really familiar with STL either | |||
mauke | what about the stl? | 15:23 | |
geoffb | I learned to hate C++ by reading Meyers's books | ||
nothingmuch | the reason i hate C++ is that it's so obvious it's faking everything it makes you want to cry | 15:24 | |
geoffb | When books purporting to teach you the deep stuff about a language just end up making you go EWWWW, that's a bad sign. | ||
nothingmuch | IMHO it's not much more than sugared C | ||
geoffb | What was the original C++ compiler called? cfront? | ||
nothingmuch | and C is not much more than well sugared assembler, with easy function calls | 15:25 | |
mauke | yep | ||
geoffb | It actually *was* just sugared C | ||
nothingmuch | objective C is also sugared C | ||
much more than C++ is | |||
qwr | if you try to write C or java in C++, its of course awful ;) | ||
mauke | then C++ is a lot more sugar then C | ||
geoffb | Better sugar, from what I hear | ||
mauke | arhg, *than | ||
nothingmuch | but it doesn't feel as ugly | ||
geoffb | I meant Objective C | ||
sili_ | www.cnn.com/2005/LAW/09/27/prisoner...index.html omg. america is great. you don't even have to take responsibility for your own actions | ||
at least "lightly" | |||
qwr | but its quite good for doing some stuff | 15:26 | |
geoffb | sili_, unfortunately, those of us in the U.S. who have half a brain have unfortunately been in an unhappy place of late | ||
qwr, for example? (And no fair saying "game programming" because they're only using C++ out of ignorance.) | 15:27 | ||
nothingmuch | geoffb: what alternative is there for game programming? | 15:28 | |
shit! my thumb-drive thingy died | |||
geoffb | nothingmuch, actually using more than one language in the game. In particular, one very high level one (like Perl, say), and one dead fast one for core optimization (C or even assembly) | 15:29 | |
qwr | geoffb: fast data manipulation - only problem being, that ocaml or haskell is almost always better than c++ for that | ||
geoffb | The last few years have been filled with papers written about how to build your own scripting engine for games, and the engines they produce suck ASS, because most of the implementers haven't used a real dynamic language | 15:30 | |
qwr, exactly my point. As far as I know, all domains C++ serves are better served by other languages. | 15:31 | ||
It is unfortunately just barely good enough at a few things that people try to hit every fastener with the C++ hammer. | |||
nothingmuch | geoffb: the problem is that the really hard parts (fast AI code, fast graphics code, fast data unpacking, fast networking, etc) is so big that the only thing you can really write in an "easy" language is the UI and the options menu | ||
geoffb | nothingmuch, do you believe that, or do you *know* it? | 15:32 | |
*cough* loaded question | |||
nothingmuch | believe | ||
admittedly | |||
geoffb | And therein lies the problem. | ||
nothingmuch | but I can't think up of any single part that doesn't benefit from being ultra-fast-cool-stuff in game programming | ||
SamB | well, the blit code, sure | 15:33 | |
probably in ASM or C with OpenGL... | |||
geoffb | nothingmuch, that's what APIs are for | ||
SamB | the AI, though | ||
nothingmuch | geoffb: err? | ||
SamB | ... is probably better not done in C. | ||
geoffb | As SamB says, any fast graphics you need, that's OpenGL's job. (The programmer's job is not to use OpenGL badly.) | ||
nothingmuch | okay, fair enough =) | 15:34 | |
SamB | though OpenGL is not very fast without a working 3d accelerator... | ||
geoffb | I've benchmarked Perl doing OpenGL . . . using the API well, it's really not that slow | ||
SamB, It's been a while since you could buy a non-accelerated computer | 15:35 | ||
SamB | you can still buy them used | ||
and I got mine a while ago... | |||
geoffb | And I would posit that AI is best done in a domain-specific language, or at worst a good dynamic language | ||
SamB | and it used to be that my Voodoo 3 worked, but then X dropped it for only having 16 MB VRAM | ||
geoffb | . . . with kernels such as influence maps done in C or ASM under an API | 15:36 | |
autrijus | rehi | ||
geoffb | rehi, autrijus | ||
nothingmuch | hi ho | ||
nothingmuch would like to try coding a game some time | |||
autrijus is having dinner... some african restaurant | |||
looks promising | |||
nothingmuch | sounds promising | ||
or at least interesting | 15:37 | ||
geoffb | Now mind you, I'm biased. I believe (and intend to prove sometime this decade) that a good modern game can be written in Perl. | ||
SamB | personally, I think a DSL is a good idea, though you probably want to implement at least the parser in something other than C... | ||
nothingmuch | www.projectoffset.com/ | ||
geoffb | SamB, yes, there is the used hardware problem -- but the CPU on such a beast will probably not be up to even doing collision handling for a modern 3D game, let alone the graphics | 15:38 | |
So those boxen are probably best used for 2D | 15:39 | ||
And I recognize the Voodoo problem, | |||
nothingmuch wonders how useful GPUs can be for general applications | |||
SamB | geoffb: I don't care about the modern commercial 3D games really. | ||
geoffb | which I think sucks, really | ||
SamB | I'd just like to be able to play the simple stuff | ||
geoffb | nodnod | 15:41 | |
nothingmuch, what about project offset caught your eye? | |||
nothingmuch | the graphics | ||
geoffb | The joys of being able to assume HDR support | ||
nothingmuch | i think there is no way they are that much more efficient than anyone else | ||
HDR support? | |||
SamB | so basically I just play stuff that uses software for graphics | 15:42 | |
nothingmuch | what I suspect about them is that they really have a deep understanding of where they can fake it | ||
geoffb | High Dynamic Range pixel values -- basically floating point brightness | ||
nothingmuch | ah | ||
geoffb | SamB, fair enough | ||
nothingmuch | isn't there a practical limit of about 3 stops? | 15:43 | |
in presentation? | |||
geoffb | nothingmuch, HDR has a MASSIVE effect on believability, because the world is HDR, and our eyes are tuned to it. The only reason 0-255 has lasted is that monitors are non-linear, I suspect | ||
nothingmuch, post-processing -- bloom, motion blur, etc. | 15:44 | ||
nothingmuch | oh, logically you mean | ||
geoffb | Or even, changing stop and having the color balance remain the same | ||
nothingmuch, yes | |||
nothingmuch | still, you cannot display on any monitor a difference of more than 3 stops or so, right? | ||
okay | |||
SamB | so you change the range being displayed, right? | 15:45 | |
nothingmuch | SamB: with real monitors you truncate two sides, yes | ||
geoffb | Good monitors are in the range of several hundred to one dynamic range. Which in itself is actually more precise than 8 bits on a linear scale -- hence 10 and 12 bits per channel on high end workstation systems | ||
nothingmuch | slide film at it's best (e.g. fuji velvia) can store about 4.5 stops | 15:46 | |
but you can't print that on anything | |||
geoffb doesn't remember the stop conversions off the top of his head | |||
nothingmuch | hybrid ink/light display systems can give significantly more than that, but they are expensive | ||
geoffb: 1 stop is 2x more light | |||
geoffb | Um . . . then a good monitor is like 9-12 stops | 15:47 | |
SamB | so like you adjust the conversion depending on whether the scene is in a building or outside in the bright sunlight? | ||
nothingmuch | that doesn't make sense | ||
geoffb | yeah, hence my confusion. | ||
nothingmuch | i think maybe it interpolates to around 4 maybe, from 12 bits | ||
geoffb is used to thinking entirely in terms of linear dynamic range . . . . | 15:48 | ||
nothingmuch | stops is a physical measuremeant | ||
geoffb | nothingmuch, yes, I know. | ||
nothingmuch has done a lot of spot metering lately | 15:49 | ||
gives a lot of perspective on things | |||
geoffb | I meant, 500:1 contrast (real, not advertized crap), means darkest colors and brightest colors seperated by ~ 2^9 | ||
nothingmuch | but that is not literally the ratio of the amount of photons leaving the screen, is it? | ||
nothingmuch wonders if high responsiveness digital ink + brighter lights will make screens do more than they do today | 15:50 | ||
geoffb | Hmmm, I thought it was . . . but I could be wrong. I do know that the mapping of pixel values to photons is a mapping of ^2.2 or so | ||
nothingmuch is too tired to do the math | 15:51 | ||
geoffb | nod | ||
geoffb too | |||
How did we get on this discussion, anyway? | |||
Oh right, C++ | |||
nothingmuch | WRT game design: | ||
i think what I would like to do is make a multi threaded approach to things | 15:52 | ||
separate the aspects | |||
geoffb | Modern processors would be happy with that. :-) | ||
nothingmuch | with one smart core in a HLL, that decides how much work each thread can do | ||
so, for example, if the scene is high movement, lots of action, the user is moving fast, and it's a FPS perspective, far away detail can just be blurred nicely, to pretend there is detail | 15:53 | ||
geoffb | c.f. www.broadwell.org/graphics/pigge/do...rends.html | ||
nothingmuch | wheras in a birds eye view, other interpolations could be made | ||
this is just beceause fog really pisses me off | |||
geoffb | And www.broadwell.org/graphics/pigge/do...notes.html , which I've been adding to this morning | ||
nothingmuch wonders if some day assmebler will be a dependency tree | 15:54 | ||
this is a really nice concept for cell oriented processing | |||
geoffb | nothingmuch, yeah, overdone fog just blows | ||
autrijus | new discovery today: a well-written, complete CodeGen interface to .Net 1.0 | 15:55 | |
in haskell under bsd3 license :) | |||
geoffb | oooh | ||
nothingmuch | www.vision.net.au/~peter/pdspc/crad...untain.jpg | ||
given a scene like this, i'd interpolate it so that the the mountian is in simple polygons, but appears to blernd | 15:56 | ||
it's slow movement WRT the user means that it can be panned instead of really implementing perspective | |||
autrijus | actually, it's for ILX, so it's somewhat like between 1.0 and 2.0 | ||
"2.0 without generics" etc | |||
nothingmuch | the sky has to be non white | ||
geoffb | What level is Mono at these days | ||
nothingmuch | but the hue it is in this image | ||
the trees and stuff apear to be color blobs from a distance, so they should have lots of interpolation to make sure they don't look like they're sort of moving all the time | 15:57 | ||
autrijus | Mono 1.2 is .Net 2.0 I think | ||
geoffb | k | ||
nothingmuch | nearby objects like the push obviously have to be made 3d-ish with great care | ||
because as the player moves the change of perspective in these things makes a huge difference | |||
nowadays all i see from game engines is "fade it till it's white, the user won't notice", and changing the shape of simple objects like trees | 15:59 | ||
into simpler ones, at a certain threshold | |||
svnbot6 | r7182 | fglock++ | * pil-run - when a sub is called with a junction argument, it returns a junction | 16:12 | |
r7183 | iblech++ | * Usual svn properties. | 16:30 | ||
r7183 | iblech++ | * t/unspecced/evaluation_order.t: More subtests and test fixes. | |||
r7183 | iblech++ | * PIL2JS: PIL::PAssign, PIL::PBind: Evaluate the LHS first, then eval the RHS | |||
r7183 | iblech++ | in assignment and binding. | |||
r7183 | iblech++ | (This means evaluation_order.t passes 9/10 now.) | |||
vladtz_ | hi | 16:31 | |
I just redefined a sub (not a multi), shouldn Pugs throw a fit on that? | 16:32 | ||
Khisanth | heh has that part been implemented yet? :) | 16:33 | |
vladtz_ | Just noticed that redefining a sub just gives me the latest one | 16:35 | |
geoffb | heh: '... the notion of a ātypical development cycleā makes | 16:37 | |
as much sense as a ātypical noise.ā' | |||
nothingmuch | dinner | ||
Khisanth stares at the funny looking quotes | 16:41 | ||
geoffb | Khisanth, which? Mine? | 16:42 | |
Khisanth | yes | ||
geoffb | Just using different quoting around a cut-and-paste that used " | ||
oh wait, that's odd | 16:43 | ||
Hmmm, the paste must have included some odd quote | |||
vladtz_ | properly nested I might add | ||
autrijus starts integing mm2 into hs | 16:59 | ||
geoffb | autrijus++ | 17:00 | |
Now for iblech . . . | |||
stevan | autrijus: mm2 intergration? | 17:20 | |
autrijus: let me know if you have any questions,.. I am around today,.. | 17:22 | ||
svnbot6 | r7184 | fglock++ | * pil-run - fixed junction stringification | 17:42 | |
geoffb | Someone took a hash definition from my Perl source code, imported it into Excel, and made changes there. | 17:51 | |
How could that possibly be the right thing to do? | |||
geoffb does "save as text, answering several lame warning dialogs, write Perl script to strip off MS stupidity, manually paste result back into original source file | 17:53 | ||
BAH | |||
Juerd | Did you hard code something that the user wanted to edit? | ||
geoffb | We're merging data sources. In this case, we're changing keys from his system to mine. | 17:54 | |
geoffb generally hates "Excel is a text editor" mentality | 17:55 | ||
The ugly thing is that instead of setting the import options so that at least the keys and values were in separate columns, he imported the entire hash definition into one column. | 17:57 | ||
So fields contain stuff like " key => 'value'," | |||
svnbot6 | r7185 | fglock++ | * pil-run - Junction.values() | 18:00 | |
r7185 | fglock++ | - this doesn't work yet, because it tries to call values() in the Junction elements | |||
Juerd | geoffb: I hate it with Word... Fortunately, I haven't encountered that people use Excel for editing text yet. | 18:33 | |
svnbot6 | r7186 | fglock++ | * perl5/Value - remove duplicates from junctions such as (0|1|1|1|2) | 19:06 | |
geoffb | Juerd, lucky you. :-) | 19:27 | |
svnbot6 | r7187 | luqui++ | Fixed the covariant problem on the union type expansion. | 19:30 | |
r7187 | luqui++ | There's still a little inconsistency with factories: unions | |||
r7187 | luqui++ | don't really define factories. Either we need to redefine | |||
r7187 | luqui++ | factory, or we need to kill the abstraction, because it | |||
r7187 | luqui++ | just ceases to be useful anymore. | |||
fglock | putter: ping | 19:31 | |
nothingmuch | every time i think i get a grip on just how lazy haskell is, something new comes in and shows me to what extent it really is | 19:52 | |
nothingmuch just resolved listing two from www.haskell.org/tmrwiki/WhyAttribut...marsMatter in his head | |||
svnbot6 | r7188 | fglock++ | * new journal | 20:01 | |
r7189 | fglock++ | * perl5/Code - added Junction support to multisubs | 20:07 | ||
fglock | implementing Junctions was amazingly easy - about 60-80 lines across various modules | 20:09 | |
I hope it is correct | |||
Aankhen`` goes to sleep. | 20:14 | ||
G'night. | 20:15 | ||
dduncan | seen ingy | 20:48 | |
jabbot | dduncan: ingy was seen 35 days 18 hours 52 minutes 6 seconds ago | ||
dduncan | ping ingy ... about your only.pm module | 20:49 | |
nothingmuch | dduncan: once you catch him, tell him i want the patch to Test::Base committed | 21:00 | |
and that if he ++s me about it again i'll kick him on the nose... he should just commit it instead of giving me karma | |||
dduncan | in my case, I have issues that his only.pm hasn't been updated since last spring, and seems to have problems, failing its own tests etc | 21:01 | |
nothingmuch | did you post a bug in RT? | ||
dduncan | that's another discussion item | ||
there are already bugs there, all marked 'new' ... he seems to be ignoring them | 21:02 | ||
they range in age from a few weeks to 2 years | |||
nothingmuch | hmm | ||
maybe his mail address is misconfigured | |||
i'd try to find a socialtext email address | 21:03 | ||
it's more likely he won't ignore that | |||
dduncan | what do you mean by 'socialtext'? ... is that an email he normally talks to people with? | ||
nothingmuch | it's his job | ||
and since his work is mostly network based, i bet he has to read it to communicate with his coworkers | 21:04 | ||
autrijus might also know how to get him | |||
svnbot6 | r7190 | autrijus++ | r7196@not: autrijus | 2005-09-28 11:04:59 +0300 | 21:13 | |
r7190 | autrijus++ | r7197@not: autrijus | 2005-09-28 11:28:35 +0300 | |||
r7190 | autrijus++ | * beginning of the main pugs cabal file | |||
r7190 | autrijus++ | r7198@not: autrijus | 2005-09-28 12:36:41 +0300 | |||
r7190 | autrijus++ | * some more metadata for Pugs.cabal. | |||
r7190 | autrijus++ | r7211@not: autrijus | 2005-09-28 21:27:14 +0300 | |||
r7190 | autrijus++ | * releng: normalize and todoize tests. | |||
r7190 | autrijus++ | r7221@not: autrijus | 2005-09-29 00:05:29 +0300 | |||
r7190 | autrijus++ | * Remove the unreferenced Pugs.AST.Types. | |||
r7190 | autrijus++ | * Move the ill-named Pugs.Context back inside Pugs.Types. | |||
r7190 | autrijus++ | * Reuse its Tolkien quote for the underquoted Pugs.Version. | |||
r7191 | fglock++ | * perl5/Junction - fixed boolean junctions such as ?(1|0) | |||
nothingmuch | heh | 21:14 | |
autrijus | finally got some network | 21:30 | |
journal up. :) | |||
svnbot6 | r7192 | fglock++ | * perl5/Scalar - fixed Scalar->isa() when the content is unboxed | ||
stevan | hey autrijus, any MM 2 hacking today? | 21:34 | |
autrijus | stevan: yes, mostly on the reading part | 21:35 | |
stevan | ah | ||
autrijus | ...but then promptly sidetracked into comparing it with dylan | ||
stevan | dylan++ # the language and Bob | ||
how does it compare to dylan? | 21:36 | ||
autrijus | Bob++ | ||
dduncan | so you hacked GHC itself ... did they say when 6.6 would be stable? | ||
autrijus | dduncan: yes, end of this year | ||
stevan | C3 is actually from Dylan originally | ||
autrijus | they want to have a faster release cycle | ||
for 6.6, due to the SMP feature | |||
dduncan | and at that time, presumably 6.6 will be a new minimum requirement for Pugs? | ||
autrijus | multiprocessor GHC plus STM is gotta rock | ||
stevan | some of the MRO test suite actually uses some examples from the oroginal Dylan c3 paper | ||
autrijus | dduncan: sure | 21:37 | |
stevan | autrijus: nice bpierce was there | ||
autrijus | stevan: favourably, I'd say, except we don't have singleton methods | ||
stevan has been hacking up all the untyped lambda calculus examples from TaPL today | 21:38 | ||
autrijus | aka per-object methods | ||
aka eigenclasses | |||
stevan | autrijus: yes, I have been giving that some thought | ||
nothing has come to mind yet, other than the obvious solution of augmenting the instance type | 21:39 | ||
autrijus | the rest I think I have a good grasp on | ||
but I'm still struggling a bit to grok psyche | |||
stevan | but it seems to me there is a better solution out there | ||
autrijus: its very simple | |||
Role is an instance of a Class | |||
obviously | |||
autrijus | sure, I understand the concept | 21:40 | |
the drawing | |||
so explain FETCH to me | |||
stevan | which one? | ||
in ::Package | |||
autrijus | in psyche | ||
for ::Role | |||
afte | |||
# TODO ... implement the package interface | |||
stevan | oh,.. one sec,... | ||
ah,.. this is the same as the ::Class FETCH | 21:41 | ||
svnbot6 | r7193 | fglock++ | * perl5/Junction - added support for "if", as in: | ||
r7193 | fglock++ | if all(1..3)==(1|2) { say "ok" } else { say "not ok" } | |||
stevan | for the most part at least | 21:42 | |
all FETCH is, is the way to get at the symbol table | |||
dduncan | the journal is very interesting as usual ... thanks for sharing | ||
autrijus | so FETCH is the pkg spec | ||
stevan | ::Package just grabs right from the %:namespace attribute | ||
autrijus | dduncan: no prob :) I think I'm getting more journaling slices of time | ||
stevan | and ::Class must also attempt to fetch methods and attributes | ||
autrijus | ahhhh. | 21:43 | |
that's the link I'm missing | |||
stevan | this is per @Larry[0] | ||
see my recent Package, Module Class thread I think | |||
autrijus | k | ||
so the only differnece is | 21:44 | ||
Roles doesn't need the "for" key | |||
stevan | for? | ||
autrijus | $params->{for} = 'instance' if not exists $params->{for}; | ||
since the "role methods" doesn't exist as such | 21:45 | ||
is that the idea? | |||
stevan | the type of the method in a role is irrelevant | ||
only the class cares because it has to put them in the proper tables | 21:46 | ||
s/tables/method dispatch tables/ | |||
Role just holds onto them until they are put into the class | |||
autrijus | k. got it completely. | 21:47 | |
I think I can implement it tomorrow :) | |||
will ask more questions as they come by | |||
stevan | one key think to keep in mind is that Role as implemented in the metamodel is more permissive than is speced | 21:48 | |
it is more like how Scala does Roles (which they call traits) | |||
so all classes can be treated as Roles | |||
autrijus | stevan++ # nice concise formulations | ||
right, it's more natural to my brain anyways | |||
stevan | cool | ||
:) | |||
autrijus | and I think larry is also leaning that way | ||
gradually and one bit at a time, but nevertheless | |||
stevan | those restrictions should be in the metamodel anyway | ||
autrijus | aye | ||
stevan | they should be in the language | 21:49 | |
autrijus | you mean it's up for compiler to enforec those. | ||
I'm inclined to agree :) | |||
stevan | yes | ||
autrijus | but then | ||
that means at runtime you can wreck all havoc. | |||
since no compiler will protect you then | |||
stevan | no, we just dont expose it to the user | ||
autrijus | ...which is probably a feature | ||
ah. hm. | |||
stevan | it is not part of the protocol | ||
autrijus | okay... so no runtime reroling | ||
stevan | so if you do it,.. undefined results | ||
most of this functionality would involve the &resolve method | 21:50 | ||
and that should not be in the public MOP | |||
the compiler should call that | |||
if that is not exposed, I think control can be easily retained | 21:51 | ||
autrijus | ok. so the protocol is not yet laid out? | ||
stevan | that is docs/s12.5.pod | ||
autrijus | er, I mean in code. | ||
stevan | it will document what the user will have access too | ||
no... the MOP is just a documented API to the metamodel | |||
autrijus | ok... I can see that | ||
that's fine with me | 21:52 | ||
stevan | we can choose to enforce what is exposed to the user level or just tell them "it is here, but dont touch it" | ||
this is how CLOS is,.. because they had to allow for all sorts of insanity,.. they left some parts open,.. but did not document in the CLOS MOP spec | 21:53 | ||
so if you were brave enough,.. you could do anything you wanted | |||
but no guarantee on the results of it | |||
autrijus | maybe we can prefix all such things with unsafe ;) | ||
unsafeReblessRoles | |||
stevan | yes | ||
autrijus | unsafeAddMethod | ||
stevan | addmethod shoudl be safe | ||
autrijus | true | ||
unsafeRemoveMethod | 21:54 | ||
stevan | that too | ||
autrijus | hm. | ||
stevan | not sane.. but safe | ||
you are only affecting classes | |||
autrijus tries to look at it from the runtime pov | |||
stevan | once a class is composed (all the roeles are flattened into it), you can do anything you want | ||
autrijus | mmm yeah. sorta. I think you are correct. | ||
stevan | the thing with roles is to remember that once they are consumed by the class,.. changes to the role do not propagate back | 21:55 | |
autrijus | right | 21:56 | |
stevan | I am interested to see how this gets integrated into the runtime | ||
putter and I had many discussions about that,. and I was never really sure how it would all fit together | 21:57 | ||
autrijus | I've spent lots of time thinking about container types and MMs and the symbol table and the environment | ||
I'm now leaning toward swapping out the runtime en masse but keep the old Exp data type | 21:58 | ||
svnbot6 | r7194 | fglock++ | * pil-run - small fix in junction constructor | ||
autrijus | since preserving Eval is important | 21:59 | |
but so is getting the OO part correct | |||
but I think I want a release first soon | |||
stevan | so will things like arrays, hashes, scalar, code be implemented as primatives? | ||
autrijus | stevan: yes, exactly, since the current semantics in Types.* and autoderef is just broken | ||
stevan | then later wrapped by the metamodel | ||
autrijus | (not thru our fault) | ||
anyway, the release is due to Parrot 0.3.0 and GHC 6.4.1 | |||
need to work with both | |||
mm, 1am now | 22:00 | ||
I should probably catch some sleep if I'm to learn anything about Curry tomorrow | |||
stevan | :) | ||
I need to go eat dinner myself | 22:01 | ||
good to talk to you again,. it has been a while :) | |||
autrijus | k. see you tomorrow :))) | ||
stevan | night | ||
autrijus | yeah, it's been a very long month and half | ||
good to see that pugs was still in very good hands :) | |||
zzz & | 22:02 | ||
dduncan | night | ||
nothingmuch | woot! | 22:04 | |
exceptuations seem like they've been accepted | |||
ingy | hi nothingmuch | 22:11 | |
nothingmuch | ingy! | ||
please commit Test::Base | |||
err, the patch to thereof | |||
and fix dduncan 's bug in only | 22:12 | ||
dduncan | hi ingy | ||
I was just about to write into RT, but I'll tell you here first | 22:13 | ||
ingy | ok... | ||
nothingmuch: where is the patch? | 22:14 | ||
nothingmuch | i forget now... but it's against 0.43 =( | ||
one second, i'll find it | |||
dduncan | with the newest only.pm, and when using a module whose version is 0.12 old-style, saying "use only 'Foo' => '0.13-'" does not produce an error | ||
nothingmuch | do you mind doing integration? | ||
dduncan | however, saying either '0.130-' or '0.13' does produce an error | 22:15 | |
while '0.130-' would have the desired effect, one should be able to match the version format they are used to, and that your documentation shows, which is plain '0.13-' | |||
on separate matters with only.pm, your test suite fails most of its tests, and all the RT items for it seem to have been ignored | 22:16 | ||
xinming_Beijing | make: *** No rule to make target `src/Pugs/Context.hs', needed by `pugs'. Stop. | 22:17 | |
Is it the right action for command `svn update && make` right now? | |||
dduncan | my specific situation is that List::MoreUtils 0.12 fixed a bug in 0.11, and I want to require '0.12-', but I'm not confident that only.pm will enforce my dependency in its current state | ||
geoffb | xinming_Beijing, have you made clean recently? | 22:19 | |
aut* just merged that file into another | |||
nothingmuch | www.cs.uu.nl/groups/ST/Projects/ehc...hc-src.tgz | 22:20 | |
bah | |||
nothingmuch.woobling.org/test_base.patch | |||
Test::Base 0.43 | |||
adds support for post filter skip/todo | 22:21 | ||
and prints out a plan | |||
feather.perl6.nl/~nothingmuch/harro...ecursion.t | 22:22 | ||
feather.perl6.nl/~nothingmuch/harro...rp/Test.pm | |||
as you can see, the skip filter will check if the currently used backend is in the skip list | |||
and it will set skip to be a true value | |||
if not, skip becomes false | |||
geoffb | stevan, is there anything relevant to understanding MM2 that is outside perl5/Perl6-MetaModel2.0/ ? | 22:23 | |
dduncan | the following line is a test ... | ||
seen ingy | |||
jabbot | dduncan: ingy was seen 9 minutes 22 seconds ago | ||
dduncan | seems right | ||
nothingmuch | dduncan: i think jabbot was missing for a long time | ||
dduncan | so it really was over 30 days since last checkin | ||
nothingmuch | not necessarily | ||
xinming_Beijing | geoffb: hmm, In fact, I didn't, never do this. :-) | ||
dduncan | seen asfdafdasfds | 22:24 | |
jabbot | dduncan: I havn't seen asfdafdasfds, dduncan | ||
geoffb | There's probably a workaround, but I would consider just make clean if I were you | ||
nothingmuch | colabti.de/irclogger/irclogger_log/...4,Wed#l408 | 22:25 | |
xinming_Beijing | geoffb: hmm, Ok, I did just now | ||
geoffb | And did a subsequent make do the trick? | ||
dduncan | ingy, when testing your only.pm changes, also make sure you're up to the newest version.pm ; it was updated several times since the last only.pm release; the current one is 0.48, released sept 14 | ||
geoffb | I guess it would take a while to know . . . | ||
nothingmuch | ingy: ping | 22:26 | |
stevan | geoffb: re: mm2.0 please note the docs are slightly out of date | 22:33 | |
geoffb: other than that familiarity with the concept of object metamodels and perl 6's object model should be the only req. | 22:34 | ||
stevan dinner & | |||
geoffb | stevan, OK, understood. When they are fixed, would you mind making that clear in the commit log? | ||
That way I can just watch svnbot to know when it is best to go diving into the docs. | 22:35 | ||
:-) | |||
geoffb has been promising himself to study stevan's MM work in more depth for a while now | |||
nothingmuch | geoffb: just dive in | ||
it's simpler than it seems | |||
geoffb | MM 2 being folded into both P5 and Haskell backends is the kick I needed | 22:36 | |
nothingmuch | start with the mini metamodel | ||
geoffb | nothingmuch, I have to balance that particular studying opportunity with all the other stuff I am currently studying. | ||
And then there's $work . . . . | |||
nothingmuch | well, i doubt the docs can make it much simpler - the code is readable | 22:37 | |
very readable (stevan++) | |||
geoffb | I like to time task switches with things being all happy when I get there. Lazy, I know. :-) | ||
nothingmuch, nodnod, fair enough. | |||
nothingmuch | and the concept is very clean - unlike many other metamodels it really clicks in your brain | ||
geoffb | That's good to hear. Means stevan probably has it Right. | 22:38 | |
nothingmuch | i think we care about this: archive.cs.uu.nl/pub/RUU/CS/techrep...02-031.pdf | 23:36 | |
autrijus: please read when you wake up |