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