< 1235692804 0 :upyr[emacs]!unknown@unknown.invalid QUIT :Remote closed the connection < 1235693084 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1235695878 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1235698197 0 :Dewi!n=dewi@124-171-151-62.dyn.iinet.net.au JOIN :#esoteric < 1235702599 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1235702932 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1235708232 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bye all < 1235708270 0 :Sgeo!unknown@unknown.invalid QUIT :"Leaving" < 1235708886 0 :psygnisf_!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1235708956 0 :rodgort!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235708957 0 :Robdgreat!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235708958 0 :ehird!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235708960 0 :GregorR!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235708969 0 :ehird!n=ehird@208.78.103.223 JOIN :#esoteric < 1235708969 0 :GregorR!n=gregor@65.183.185.209 JOIN :#esoteric < 1235709016 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1235709037 0 :Robdgreat!i=rob@unaffiliated/robdgreat JOIN :#esoteric < 1235709037 0 :rodgort!n=rodgort@ludios.net JOIN :#esoteric < 1235709129 0 :psygnisf_!unknown@unknown.invalid NICK :psygnisfive < 1235710116 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1235710198 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1235712112 0 :ab5tract!n=ab5tract@pool-98-111-165-233.phlapa.fios.verizon.net JOIN :#esoteric < 1235712368 0 :Slereah!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235712368 0 :bsmntbombdood!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1235712383 0 :Slereah!n=fff@ANantes-259-1-78-243.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1235712383 0 :bsmntbombdood!n=gavin@97-118-128-205.hlrn.qwest.net JOIN :#esoteric < 1235713731 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :netspplitting is so impolite. < 1235713860 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :It's very polite, actually. < 1235713887 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :The tradition of netsplitting from royalty dates back to the Roman Empire. < 1235714039 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :...practically < 1235720704 0 :ab5tract!unknown@unknown.invalid QUIT : < 1235721599 0 :clog!unknown@unknown.invalid QUIT :ended < 1235721600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1235724747 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Client Excited" < 1235724973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was a small split anyway < 1235724978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(on this side) < 1235725959 0 :MigoMipo!n=MigoMipo@84-217-13-149.tn.glocalnet.net JOIN :#esoteric < 1235728165 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1235730601 0 :ais523!unknown@unknown.invalid QUIT :"meeting in RL" < 1235731546 0 :MigoMipo!unknown@unknown.invalid QUIT :"QuitIRCServerException: MigoMipo disconnected from IRC Server" < 1235733846 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1235735263 0 :BeholdMyGlory!n=arvid@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1235737746 0 :BeholdMyGlory!unknown@unknown.invalid NICK :FireFly < 1235737760 0 :FireFly!unknown@unknown.invalid NICK :BeholdMyGlory < 1235740587 0 :Hiato!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1235741522 0 :ais523_!n=ais523@147.188.254.121 JOIN :#esoteric < 1235741681 0 :ais523!unknown@unknown.invalid QUIT :Nick collision from services. < 1235741683 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1235746835 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1235746839 0 :ehird!n=ehird@208.78.103.223 JOIN :#esoteric < 1235749659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://farm1.static.flickr.com/36/114732870_bab0bdae2c_b.jpg < 1235750464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is up with that * ... < 1235750496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I can see it is related to the last person (a woman) but I don't get it stil.. < 1235750499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still* < 1235750511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it trying to me funny < 1235750515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/me/be/ < 1235750521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cold fingers.. < 1235750543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"all print *men" < 1235750558 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235750560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's attached to 'men' < 1235750562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I see both * < 1235750564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235750574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still I don't see why it uses "men" then < 1235750595 0 :Xeanalyth!n=jared@170.74.233.220.exetel.com.au JOIN :#esoteric < 1235750601 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :apart from that, Helvetica is rather nice < 1235750648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a joke < 1235750650 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :ACTION peeks in for the first time... < 1235750655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi Xeanalyth < 1235750658 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi Xeanalyth < 1235750661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what brings you here? < 1235750662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, right, not very funny one though < 1235750664 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :hi there, ehird and ais523 < 1235750665 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what brings you here? < 1235750667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and hello Xeanalyth < 1235750668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's an ad, ads aren't funny :P < 1235750673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: GET OUT OF MY MIND < 1235750675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah right < 1235750701 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ... been IRCing for years, never thought to look for esoteric chans before now :) < 1235750711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait lemme guess < 1235750715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you think it's esoterica right < 1235750716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is esoteric programming < 1235750718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sorry to disappoint < 1235750720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what AnMaster said :P < 1235750720 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Lol < 1235750728 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I'm a student of the western mystery tradition. < 1235750733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Xeanalyth, we are about stuff like weird programming languages < 1235750734 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yepppp, not the channel for you. < 1235750745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, our topic is unhelpful again < 1235750746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same word used for it.. < 1235750755 0 :AnMaster!unknown@unknown.invalid TOPIC #esoteric :Esoteric programming! | Don't use rafb.net for pasting because they delete pastes. Think of the log-readers. Logs: http://tunes.org/~nef/logs/esoteric/ < 1235750760 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :!ul (aS(:^)S):^ < 1235750761 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Esoterica. As in programming languages. Not mysticism. Don't use rafb.net for pasting because they delete pastes. Think of the log-readers. Logs: http://tunes.org/~nef/logs/esoteric/ < 1235750763 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (aS(:^)S):^ < 1235750764 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(aS(:^)S):^ < 1235750769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that works too < 1235750770 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :ahh i see :) < 1235750778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sorry to disappoint :< < 1235750778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it's a case of #esoteric on a programming server < 1235750779 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :that could be just as interesting :) < 1235750784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is why it's about esoteric programming languages < 1235750792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Xeanalyth: that's what they all say, they rarely come back though :P < 1235750800 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1235750802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? "programming server", I guess you could call freenode < 1235750807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :call freenode that* < 1235750809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: err, that's exactly what it is :P < 1235750821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, it is a network, more than one server < 1235750826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :though that is nit picking < 1235750838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Xeanalyth: see this nitpicking? half of the channel traffic is that. < 1235750839 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just warning you. < 1235750854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not really, I would guess around 39% at most :P < 1235750859 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Esoterica. As in programming languages. Not mysticism. Don't use rafb.net for pasting because they delete pastes. Think of the log-readers. Logs: http://tunes.org/~nef/logs/esoteric/?C=N;O=D < 1235750865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(putting sorting in the log links so today comes at the top) < 1235750874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, good idea < 1235750880 0 :Xeanalyth!unknown@unknown.invalid PRIVMSG #esoteric :it's probably something my housemate would be more into.. he's more the pure coder... i'm a unix admin < 1235750891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, have you ever used hugetlb? < 1235750894 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1235750897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Xeanalyth: ah, unix administration. that would explain the esoterica. < 1235750906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ls; vi; sacrifice goats < 1235750937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was planning to try using it for cfunge but found that at least on my machine I got an average of 2-3 TLB cache misses per run so I thought "not worth it" < 1235750939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i see that joke livened up the channel! < 1235750952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :emacs! < 1235750972 0 :Xeanalyth!unknown@unknown.invalid QUIT :"Changing server" < 1235750980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see I *didn't* microoptimise there! < 1235750994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and by doing so, you're violating the spirit of cfunge < 1235751011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tut tut < 1235751014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well not really, since it wasn't worth it < 1235751016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I NoV AnMaster for not microoptimizing cfunge < 1235751017 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you should instead mathematically prove that by not doing that optimisation, the time you save on startup is more than the time you lose on not optimising < 1235751018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... < 1235751033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: BARELY ANY OF YOUR OPTIMIZATIONS ARE WORTH IT! < 1235751033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1235751034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the real bottle neck is pushing strings on stack (when running mycology) < 1235751129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even with stack growing down (tried that to see if it would help, didn't really) the auto vectoriser of GCC or ICC can't figure it out. Though I do have some vague ideas... < 1235751136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :omg omg omg omg omg < 1235751139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"On Building a Stupidly Fast Graph Database" < 1235751143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I THINK THIS IS FOR ME < 1235751143 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: write the asm by hand? < 1235751160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<33 < 1235751164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well as an optimised alternative: sure, I may. But it's tricky < 1235751174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to the strange alignment rules for SSE :) < 1235751175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asm ain't tricky < 1235751177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1235751206 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of my favourite programming memories was on a piece of code which had to be amazingly efficient < 1235751211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, asm isn't tricky indeed, but when you have to care about alignment and unrolling to fit specific CPUs and such... < 1235751217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1235751221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in particular, there was an interrupt handler which needed to operate in only a few processor cycles < 1235751222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asm is mostly tedious < 1235751227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since memorizing instructions is near-impossible < 1235751232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, indeed < 1235751232 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I had the C open in one window, and the asm it compiled to open in another window < 1235751234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RISC! < 1235751238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OISC. < 1235751244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well right... < 1235751244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can keep that shit in my head. < 1235751245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and kept tweaking the C until the compiler generated the asm I wanted < 1235751253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it was like hand-coding the asm, only more readable and portable < 1235751253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why not just use inline asm :P < 1235751266 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: so other people on the project could see what the code was going < 1235751268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*doing < 1235751272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1235751276 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I ended up doing about 1/3 of the project, and it was a 10-person project < 1235751282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think using intrinsics might be the way to go here < 1235751283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I actually have a project involving microoptimization < 1235751285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it's for a good cause < 1235751285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quite a few of the other team members weren't particularly competent < 1235751293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still need to bother about alignment though < 1235751301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(and I _mean_ microoptimization) < 1235751302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm? < 1235751304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :detaisl? < 1235751306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :details* < 1235751331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw (one of google's own projects): http://code.google.com/p/mao/ < 1235751337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: a highly efficient, uncomprimising (i.e. not like the Stalin compiler: a living environment with documentation, fully overridable core functions, etc) Scheme compiler < 1235751344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(& interpreter, but it just compiles and runs in place, like SBCL) < 1235751351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*uncompromising < 1235751352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah nice < 1235751356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how much is done? < 1235751362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0. It's all in my head atm. < 1235751365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235751367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i think I can maybe someday compete with ocaml < 1235751370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on some code < 1235751373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1235751388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(although even that is unneccessary; most of the time something as slow as Perl is fine) < 1235751388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was reading about the ocaml internals a few days ago < 1235751400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I aim to be able to write stuff you'd normally write in C < 1235751401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Assuming you are using the best way to write it in both langs? And not just translating the algorithm? < 1235751406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1235751414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about competing with C then? < 1235751419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1235751429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's quite interesting < 1235751435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I mean when it comes to speed < 1235751442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and comparable to C, not as fast but it can be within an order of magnitude < 1235751442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Sufficiently Smart Compilers can only go so far. In Scheme, you can override the + function at runtime, and the rest of your program will use the new one. < 1235751445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So you can't even inline arithmetic. < 1235751448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235751450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1235751453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Arithmetic HAS to look up the function definition and call it. < 1235751460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so you can't even constant fold? < 1235751460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Of course, this makes your optimizations more elegant: < 1235751461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: JIT? < 1235751463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that hurts < 1235751466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you make function calls ridiculously fast < 1235751471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and lookups too < 1235751472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well JIT is a solution of course < 1235751478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it is JIT, kind of < 1235751480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I would certainly suggest JITted constant folding < 1235751482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not compiling to binaries < 1235751490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing what SBCL does < 1235751492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, makes sense < 1235751494 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it may even be a good idea to generate two versions of the program < 1235751497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kind of like JIT < 1235751502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you compile a whole function/file at a time < 1235751502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one assuming primitives don't change, one where they can < 1235751504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it's still in a REPL < 1235751510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that is AOT not JIT right? < 1235751511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's not really practical though < 1235751518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, ok < 1235751520 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that makes the code size huge < 1235751530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :note: I'll probably have a way to do constant folding, somehow < 1235751533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll think about it < 1235751540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you were right about Xeanalyth, seems he didn't come back < 1235751543 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I don't want to break ANY r5rs compliant program < 1235751544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: :) < 1235751563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but, I think I can do it < 1235751574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'd be nice not to have to whip out C when generating, say, 5 billion factorials. < 1235751584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(especially since in C for that you'd need gmp... *shudder*) < 1235751594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think JIT with constant fold, and if +- and such are redefined invalidate all JIT compiled code using it < 1235751601 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1235751611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't work for compiling to a binary < 1235751618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think I can do it, but it will be hard < 1235751625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm not compiling to binaries < 1235751625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1235751631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm doing both < 1235751634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235751639 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: he's compiling to decimals < 1235751640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the primary compilation mode isn't binaries, but it will support them < 1235751643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it has to work for both < 1235751645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: groan. < 1235751647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, stop being oerjan < 1235751652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but fyi, invalidating all compiled code will be hell < 1235751663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not all compiled, all compiled with constant folding < 1235751673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd override a core function, bam, wait 5 hours for the whole system and the REPL and every library and e-v-e-r-y-t-h-i-n-g to be recompiled < 1235751674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess you would have a list or something somewhere < 1235751681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well I'd hardly let that optimization be disabled < 1235751692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't even really need constant folding anyway < 1235751696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, most programs won't redefine +-/* and such < 1235751696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just define a macro that does the calculation < 1235751703 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(define foo (compile-time-eval (+ 2 2)) < 1235751709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so well if you get 5 hours you are doing stupid stuff < 1235751710 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe you could use some sort of JIT constant unfolding? < 1235751712 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :store the constant < 1235751723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i _have_ considered this y'know < 1235751723 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :replace it with the code that generates it if the assumptions used to make it changed < 1235751724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, sounds like a good idea < 1235751725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also < 1235751731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean 5 hours < 1235751732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the problem is the binary size would be hilariously stupid < 1235751736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't JIT it again directly < 1235751736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ehird, so well if you get 5 hours you are doing stupid stuff < 1235751737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no acceptable < 1235751738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :t < 1235751739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only when you run into it < 1235751741 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I just mentioned it because "constant unfolding" is such an amusing term < 1235751745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: err, no, that's not what I'm doing < 1235751748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just told you I'm not JITting < 1235751751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you compile a whole unit at a time < 1235751755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235751756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1235751764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :JITing is probably better for this though... < 1235751772 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not for my use-case < 1235751777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1235751779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes :P < 1235751781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I guess inlining... < 1235751784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :common lisp is a lucky bastard < 1235751793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but the Java JIT can do inlining and such < 1235751793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it gets away with it because you can't modify the common-lisp package < 1235751794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1235751795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1235751801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1235751804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can do all sorts of optimizations < 1235751824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well mark a unit as "need to be-rejitted on next use" then < 1235751829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235751844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and when the REPL loop ticks around, < 1235751845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bam 5 hours < 1235751846 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there? Will jitfunge implement IMAP? :D < 1235751854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1235751861 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which one was IMAP again? < 1235751865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :IMAP allows overriding instructions < 1235751871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in SBCL you can do: < 1235751871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :* (defun common-lisp:+ (&rest args) 6) < 1235751876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and tell it to ignore the package lock < 1235751878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it has no effect < 1235751879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like making / point to TURT p < 1235751881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1235751881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because + is inlined < 1235751884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1235751884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1235751887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in compiled code < 1235751891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sure, (+ ...) changes at the REPL < 1235751896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but everything else has it inlined < 1235751900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ah, ok < 1235751903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not very clean :P < 1235751921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Smalltalk has false become: true, which is brilliant < 1235751927 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I like the Prolog version even more, though < 1235751930 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because you can do it by mistake < 1235751937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, iirc it allows swapping core instructions too < 1235751942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :infiniteloop :- repeat, fail. < 1235751944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is an infinite loop. < 1235751947 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :infiniteloop :- repeat. fail. < 1235751956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is not an infinite loop, and also redefines false to be true < 1235751959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :true become: false is beautiful because it's absolutely pointless < 1235751968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the only use of become: is for future values < 1235751968 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, agreed < 1235751972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can you *swap* true and false? < 1235751977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1235751980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's something like < 1235751983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw, cfunge doesn't implement IMAP < 1235751984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor will it < 1235751987 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I know of no way to make true false in Prolog < 1235751989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#(true false) becomeEveryInArray: #(false true) < 1235751996 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :retract(true). would do it in some compilers < 1235751997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok < 1235751999 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*interps < 1235752008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: infiniteloop :- repeat. fail. < 1235752008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16:25 ais523: is not an infinite loop, and also redefines false to be true < 1235752008 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but most compilers don't let you alter the core definitions like that < 1235752010 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm. < 1235752011 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it does? < 1235752013 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as they rely on it themself < 1235752018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: look at the full stop < 1235752020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's two instructions < 1235752023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1235752028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't redefine false to be true < 1235752032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fail is just a core function returning false < 1235752035 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :false itself still exists < 1235752038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you just can't get at it < 1235752043 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fail doesn't return false < 1235752043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, it's not false, it's No :P < 1235752045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't return at all < 1235752054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything in prolog returns Yes or No < 1235752059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's how I explain it < 1235752062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1235752065 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's one way to think of it < 1235752073 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but return values in Prolog are done by unifying an argument < 1235752082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235752088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in Erlang true and false are just like any atoms but that happens to be treated specially by some stuff. No way to redefine them < 1235752136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, I figured out a language where = is both equality and setting, because they're the same thing. < 1235752225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this works in it: < 1235752234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo > 2; foo < 5 < 1235752238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo is then either 3 or 4. < 1235752240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ah, ok < 1235752248 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric := is both equality and setting in Prolog, too < 1235752249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you do (bar = foo+2), bar is either 5 or 6 < 1235752255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: kindof < 1235752263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I think you're inventing a language along similar lines to Prolog < 1235752268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but without the annoying restrictions < 1235752273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you'll end up with Proud at this rate < 1235752274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pretty much < 1235752278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, it's computable < 1235752287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the fun thing is that every variable starts out in a superposition of EVERY VALUE EVER. < 1235752293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, you're not going all the way down the Proud path < 1235752296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know how in swi prolog, if you enter "X." < 1235752299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get "42"? < 1235752301 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but Proud uses exactly the same method < 1235752303 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as a joke error < 1235752305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and no, I didn't know that < 1235752316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it does something like: < 1235752318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :every variable in Proud starts out in a superposition of everything < 1235752319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :?- X. < 1235752320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1235752321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1235752323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :%% 42 < 1235752328 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not just integers < 1235752328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :%% (last release gives the question) < 1235752330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :?- < 1235752336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not just integers < 1235752337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1235752339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in mine too < 1235752339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1235752345 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :identical thought processes, there < 1235752346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yes, if you enter "foo" into my prompt < 1235752349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'll get < 1235752355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but in Proud, you can do things like F(42) = 6 < 1235752355 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1235752360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1 or 2 or 3 or 4 or ... or "" or "\0" or ... < 1235752364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1235752371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and F becomes bound to the superposition of functions which return 6 given the argument 42 < 1235752371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that's exactly what mine does < 1235752376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, no < 1235752381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mine basically treats < 1235752382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :func(arg) < 1235752386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as a variable < 1235752392 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, ok < 1235752394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can do things like < 1235752399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo(n) > n < 1235752403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo(n) < (n**2) < 1235752407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now I can see how you do that without solving the halting problem < 1235752414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and foo(n) is the superposition of every value between n+1 and n**2 < 1235752420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1235752421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :every integer < 1235752427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but wouldn't a recursive definition lead to an infinite loop, though? < 1235752432 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :foo(n) = foo(n+1)+1 < 1235752433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no < 1235752434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :foo(0) = 0 < 1235752435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo = foo < 1235752437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :works just fine < 1235752441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since a = a, obviously < 1235752444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what about my last two lines, does that work? < 1235752444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1235752454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: foo(-1) works. < 1235752455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's 1. < 1235752459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo(3) loops forever. < 1235752481 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :replace everything with an initcaps version, and what I wrote above does work in Proud < 1235752489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how? < 1235752491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's the result? < 1235752493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there is none < 1235752510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the result is that Foo is bound to the superposition of all functions with those properties < 1235752532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and there is only one, if you constrain N to be integer < 1235752546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah. mine's more intuitive :P < 1235752547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the result is the same as if you'd written Foo(N)=0-N < 1235752560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1235752562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't work < 1235752572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that isn't consistent with that definition. < 1235752573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1235752578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why not? < 1235752582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1235752583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1235752586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :clever < 1235752589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it inferrs the rest < 1235752593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah mine just treats func(arg) as a place < 1235752595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like variables < 1235752601 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's not quite inference < 1235752601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which lets you do constraint stuff but still be computable < 1235752607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's elimination, applied to infinite sets < 1235752609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it comes to the same thing < 1235752611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it acts as inference < 1235752611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235752633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if I give my crazy arithmetic system to this language, foo(n) > foo(n) would give the Infinitiest Infinity < 1235752636 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my main confusion with Proud is that Russel's paradox is expressible < 1235752639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(it's so big even itself can't match up with itself) < 1235752654 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I spent a while trying to figure out what a program that cared about it did < 1235752655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how is it expressable in proud? I'll tell you what it'd do in mine < 1235752657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in the end, I realised it simply failed < 1235752681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I didn't work out the syntax for it < 1235752693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, make a rough one? surely it's easy < 1235752722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you can say Russell = findall(Set, not(member(Set,Set))) < 1235752736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, what a copout < 1235752740 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where findall finds all solutions in a limited environment < 1235752747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how to specify the environment < 1235752750 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't fail, itself < 1235752752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: in my language you can do pony = russel() < 1235752759 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235752774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, my language only uses = for very equality < 1235752777 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, even though you can't tell whether Russel is in Russel, member(Russel,Russel) fails < 1235752782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for contains you do it prolog style < 1235752785 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that is very equality < 1235752791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :contains(foo,2) < 1235752797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of foo = setswith(2) < 1235752808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1235752811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e., most of the time, you only use = to specify an exact constant value < 1235752811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Proud has return values < 1235752815 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235752816 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1235752818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the syntax is more natural that way < 1235752820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mine treats functions as variables < 1235752822 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like I said < 1235752824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so does mine < 1235752830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: basically, (foo) as a statement means "foo is true" < 1235752831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1235752832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo > 2 < 1235752833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :foo < 5 < 1235752838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :contains(foo, 4587345435) < 1235752840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stuff like that < 1235754428 0 :Leonidas!unknown@unknown.invalid NICK :Leonidas1880 < 1235754435 0 :Leonidas1880!unknown@unknown.invalid NICK :Leonidas1980 < 1235754574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://code.google.com/p/doctype/wiki/ArticleHereComesTheSun <-- jesus. < 1235754726 0 :Leonidas1980!unknown@unknown.invalid NICK :Leonidas < 1235755032 0 :Hiato!unknown@unknown.invalid QUIT :Connection timed out < 1235755212 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1235755640 0 :sebbu2!n=sebbu@ADijon-152-1-42-115.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1235755798 0 :sebbu!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1235756692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wonder what that does if java is *NOT* installed < 1235756701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing. < 1235756705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what is it? < 1235756710 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://code.google.com/p/doctype/wiki/ArticleHereComesTheSun < 1235756711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://code.google.com/p/doctype/wiki/ArticleHereComesTheSun <-- jesus. < 1235756712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that < 1235756717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't ask what the link was < 1235756720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I asked what it was < 1235756720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just text < 1235756722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :grah < 1235756723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523! < 1235756726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IRC is not your personal webbrowser!! < 1235756727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523: basically, (foo) as a statement means "foo is true" <-- what language? < 1235756731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: mine < 1235756736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, name? < 1235756738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: if you want to read a page, you could open it in a browser! < 1235756739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: none < 1235756753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how much scrollback is needed for context? < 1235756759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I inherently distrust browsers, I think < 1235756766 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I prefer asking questions over IRC, and getting responses as text < 1235756774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 16:28 < 1235756777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it's 17:46 now < 1235756779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, text/plain: http://code.google.com/p/doctype/wiki/ArticleHereComesTheSun < 1235756790 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1235756793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Here's a small "gotcha" for web developers. There are a few "magic" properties on Mozilla's DOMWindow interface for supporting LiveConnect that will initialize the Java plugin and all the baggage that comes with it (which, with modern Java plugins, means launching java.exe as a subprocess). Looking up these properties on the window object is all it takes. < 1235756799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :For example, take the following sample page: < 1235756801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :from now on whenever ais523 asks what a link is we will say it's a goatse. deal? :D < 1235756814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1235756821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Harmless, right? Actually it's not. It turns out that Mozilla Firefox treats window.sun as a magic LiveConnect property. (I tested with Mozilla Firefox 3.0.6 on Windows.) What's LiveConnect? It was introduced in Netscape 4 to allow plugins to be scripted. Accessing any magic LiveConnect property will start the Java plugin -- even if your code has nothing to do with Java. And starting the Java plugin will load a JVM. Oh, and did I mention that all of this < 1235756825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : will happen synchronously? As in, Firefox will stop loading your page and wait for the JVM to start up. And all you did was access window.sun. < 1235756829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"But, but, but..." I hear you sputter. "I'm not accessing the window.sun property!" Ah, but you are. Declaring a global function is like assigning a property to the window object. (The property's value is the function itself.) In order to assign that property, Firefox first looks up the slot before reassigning it, and that lookup... launches a JVM. Synchronously. < 1235756834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The list of these performance-killing magic LiveConnect properties is buried deep within the Mozilla source code. They are: < 1235756837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :java < 1235756838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Packages < 1235756841 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :netscape < 1235756842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sun < 1235756844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :JavaClass < 1235756846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I did read the article after you told me what it was < 1235756847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :JavaArray < 1235756849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :JavaMember < 1235756851 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In other words, don't define a window-level function called sun(). It will absolutely kill your page's performance, because at least one modern-day browser will think you want Java, because of a "feature" invented by Netscape in 1997. < 1235756854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Many thanks to Kelly Norton, who researched this issue and brought it to my attention.) < 1235756856 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Further reading < 1235756859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LiveConnect on Mozilla Developer Center < 1235756859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: heh < 1235756860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LiveConnect on Wikipedia < 1235756862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Open JVM integration in the Mozilla.org archives < 1235756874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: does that answer your question? :) < 1235756884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: relatively well, it's a bit crufty though < 1235756895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Excellent. I shall now set up lynxbot. < 1235756904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would so get banned! < 1235756911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And then we can all blame you < 1235756926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, no, because I wouldn't use a bot that's that bad an idea < 1235756936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, it's not your choice < 1235756939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should browse with w3m more often < 1235756941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :put a link in the channel? lynx -dump to IRC < 1235756947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for those who won't use web browsers < 1235756973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wonder if AnMaster's client autoignored me < 1235756985 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ctcp it and find out? < 1235757003 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or do clients respond to CTCPs even from people who are ignoring you? < 1235757019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : that isn't consistent with that definition. <-- I have to agree, *tries to figure it out* < 1235757026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it is < 1235757032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what function is there that when you give it 0, you get zero, < 1235757036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: MizardX: your clients are broken < 1235757036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and when you give it N < 1235757038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you get f(N+1)+1 < 1235757047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :think about it < 1235757048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're missing out the word TIME in a CTCP TIME reply < 1235757057 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, ehird's client is the only one that gave the timezone < 1235757065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : foo(n) = foo(n+1)+1 foo(0) = 0 so the result is the same as if you'd written Foo(N)=0-N <-- hm... < 1235757067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: -3 -> f(-1)+1 < 1235757072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235757073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> f(0)+1 < 1235757078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> 3 < 1235757086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, that definition holds for negative numbers < 1235757094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what other function satisfies that laws, apart from foo(n) = 0-n? < 1235757097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there isn't any < 1235757103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, to boot, you get behaviour for positive numbers too < 1235757103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does mine give time? < 1235757105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a clever trick < 1235757109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah hm yes... < 1235757112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1235757113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and Ilari's, oklopol's, evenant's, MizardX's, and Leonidas's clocks are wrong < 1235757118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it makes my head ache though < 1235757123 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: also, ehird's client is the only one that gave the timezone < 1235757128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i love my client. < 1235757152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: this one presumably isn't shareware? < 1235757157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :indeed. < 1235757160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CTCP ehird TIME < 1235757163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1235757164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fail < 1235757164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fail < 1235757172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-ehird- TIME Fri Feb 27 17:52:47 +0000 2009 < 1235757187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the client I'm on atm is LimeChat, with an updated version of my patch to assign dates from the bouncer when playing the quicklog, < 1235757191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and this theme: http://julianstahnke.com/read/a_theme_for_limechat_colloquial/Colloquial.png < 1235757205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't seem to be hanging on quicklog anymore, which is nice < 1235757240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, that font rendering is messed up < 1235757245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, no < 1235757247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's perfectly fine < 1235757249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not as badly as KDE's, but still noticeably < 1235757252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OFC, on a lot of displays it looks bad < 1235757257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you need a high-dpi tft < 1235757261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which, conveniently, all macs have. < 1235757263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235757271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on a CRT, or a lower-dpi, yeah, ugly < 1235757387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, looks rather bad, I have seen worse though < 1235757403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you were on an actual mac with a mac screen it'd look great, like it always does :P < 1235757410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which, y'know, I just said, but I know you don't have scrollback < 1235757453 0 :Hiato!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1235757758 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1235757782 0 :BeholdMyGlory!n=arvid@d83-183-181-73.cust.tele2.se JOIN :#esoteric < 1235757845 0 :Mony!n=Harmony@AToulouse-258-1-96-133.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1235757858 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :ais523: fixed < 1235758084 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, that was fast < 1235758098 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Had to look up the rfc... < 1235758163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: did you just hack your client? :DD < 1235758183 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :ctcp *:TIME:?:{ < 1235758183 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :ctcpreply $nick TIME $asctime(ddd $+ $chr(44) d mmm yy HH:nn:ss zz) < 1235758183 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :haltdef < 1235758183 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :} < 1235758225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, mirc < 1235758336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : I ended up doing about 1/3 of the project, and it was a 10-person project < 1235758363 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly wonders if programming projects follow something like Zipf's law < 1235758380 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1235758384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except that this was a university project < 1235758391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where we were all meant to be workign equally on it < 1235758436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we just finished a project with one guy doing about 0%, me doing about 20%, and another dude about 80% < 1235758452 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the 20/80 law, obviously < 1235758456 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235758483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, I've seen it described as the 90/10 law < 1235758488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :90/90 < 1235758493 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the first 90% of the features takes the first 90% of the time < 1235758499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then the remaining 10% takes the other 90% of the time < 1235758501 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fun thing is the 80% isn't even getting the course anyway :P < 1235758504 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the remaining 90% is spent bugfixing < 1235758508 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*80% dude < 1235758527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: wow, you bugfix quickly < 1235758544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he probably stole mizardx's < 1235758546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:15 ehird: @pl fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap < 1235758546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:15 lambdabot: fmap (fmap (fmap fmap)) fmap < 1235758550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fmap calculus < 1235758562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no, i didn't steal MizardX's < 1235758571 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i did nothing. < 1235758575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahaa < 1235758577 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: btw that is periodic < 1235758584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: :DD < 1235758585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what does fmap do? < 1235758595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1235758597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:15 ehird: :t fmap < 1235758598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:15 lambdabot: forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b < 1235758598 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :adding 4 fmaps gives the same after a while < 1235758604 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1235758607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's also a (Functor ((->) t)) instance < 1235758609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for which fmap = (.) < 1235758613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and also < 1235758614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, interesting < 1235758617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Functor []) < 1235758620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for which fmap = map < 1235758632 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maps a function over a monad? < 1235758634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1235758635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :functor < 1235758637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ideally, map and (.) wouldn't exist and fmap would be called (.) < 1235758642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: all monads are functors < 1235758644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235758645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not every functor is a monad < 1235758648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, OK < 1235758655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you're likely to use that sort of thing for monads in practice < 1235758662 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235758674 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fmap = liftM for monads < 1235758684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lambdabot used to have (.) as fmap < 1235758686 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we called it Caleskell < 1235758692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because cale - owner of the lambdabot installation - did that :P < 1235758705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was removed because it was confusing to have the type displayed not be the real type in haskell < 1235758720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :succ . [1,2,3] looks nice < 1235758737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:17 HugoDaniel: oh well, its back to vim for me, bye < 1235758738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:17 HugoDaniel has left IRC ("fmap fmap fmap fmap fmap fmap fmap fmap fmap fmap vim") < 1235758760 0 :Hiato!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1235758781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird: @. type pl fmap . fmap . fmap fmap fmap fmap (fmap . fmap fmap) . fmap fmap fmap < 1235758781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:19 lambdabot: forall (f :: * -> *) (f1 :: * -> *) a (f2 :: * -> *) a1 (f3 :: * -> *) a2 b (f4 :: * -> *). (Functor f4, Functor f3, Functor f2, Functor f1, Functor f) => (a2 -> b) -> f (f1 (a -> a1 -> f4 a2)) -> f < 1235758784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:19 lambdabot: (f1 (f2 a -> f2 (f3 a1 -> f3 (f4 b)))) < 1235758833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's some type < 1235758853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :quite < 1235758868 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now you have to find some use for that function < 1235758870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :another fun course project story, a lecturer decided he won't bother checking any of the projects, just passes all of them; and it was a fuckload of work < 1235758889 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I find that annoying when the lecturer decides to just fail all of them < 1235758896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird: @pl \a b c d e f g h i j k l m n o p q r s t u v w x y z -> t h e q u i c k b r o w n f o x j u m p s o v e r t h e l a z y d o g < 1235758896 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that happens? < 1235758896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: (((((flip .) .) .) .) .) . ((((((flip .) .) .) .) .) .) . (((((((flip .) .) .) .) .) .) .) . ((((((((flip .) .) .) .) .) .) .) .) . (((((((((flip .) .) .) .) .) .) .) .) .) . ((((((((((flip .) .) .) < 1235758898 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or at least give them low marks, but high enough not to annoy the Externals < 1235758900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: .) .) .) .) .) .) .) . (((((((((((flip .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((( < 1235758902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: (((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((( < 1235758906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: ((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . ((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) < 1235758909 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: .) .) .) .) .) .) .) .) .) . ((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) . (((((((((((((((((((((flip .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) .) < 1235758912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 sw17ch: but merely creating a new piece of state never bothered me < 1235758914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:21 lambdabot: [65 @more lines] < 1235758916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :discuss < 1235758921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wouldn't work for me, i'd go tell him he made a mistake grading mine. < 1235758937 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, in this case he marked it in front of us < 1235758942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's how I could tell he wasn't reading it < 1235758946 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I could see what he was looking at < 1235758993 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well okay, that just plain assholeness < 1235759059 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you're flipping mad < 1235759073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :har har < 1235759085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :surely there's a shorter solution? < 1235759090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lambdabot could at least remove the whitespace... < 1235759097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, pointless code is verbose for complex stuff < 1235759100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, that doesn't even type < 1235759104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird: @type \a b c d e f g h i j k l m n o p q r s t u v w x y z -> t h e q u i c k b r o w n f o x j u m p s o v e r t h e l a z y d o g < 1235759105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:24 lambdabot: Occurs check: cannot construct the infinite type: < 1235759107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:24 lambdabot: t < 1235759109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:24 lambdabot: = < 1235759201 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm how was that pangram y combinator again < 1235759218 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"Esoterica. As in programming languages. Not mysticism." <<< wait *not* mysticism? < 1235759226 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i'm in the wrong place :o < 1235759230 0 :oklopol!unknown@unknown.invalid QUIT :"( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com )" < 1235759242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1235759258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, and that was a quit not a part < 1235759265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he was going anyway < 1235759266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :obviously < 1235759268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235759272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he'd have noticed the topic before now :P < 1235759273 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's still great, though < 1235759276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235759282 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Yk = (L L L L L L L L L L L L L L L L L L L L L L L L L L) < 1235759282 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :where: < 1235759283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :L = .abcdefghijklmnopqstuvwxyzr. (r (t h i s i s a f i x e d p o i n t c o m b i n a t o r)) < 1235759285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235759286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we know :p < 1235759298 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey, who wants to connect-cycle? I wanna test this limechat regexp :P < 1235759302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh, I'll try #ubuntu < 1235759302 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :first . should be lambda < 1235759305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lotsa traffic there < 1235759329 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what does the regexp do? < 1235759422 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: makes the quicklog playback look nice < 1235759443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :example: < 1235759459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://imgur.com/30DEN < 1235759468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there, the playing quicklog/end of quicklog messages are actually notices from myself < 1235759471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I strip out the name < 1235759477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and your message < 1235759478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :was actually < 1235759486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: [HH:MM:SS] foobar < 1235759488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with the date of now < 1235759491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION opens in w3m to annoy ehird < 1235759495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it sets it to the date when it was sent < 1235759497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's an image < 1235759503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so? w3m handled it anyway < 1235759505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it looks good < 1235759509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how does it handle it? < 1235759515 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by opening ImageMagick < 1235759524 0 :oklopol!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1235759527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235759536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, there was a slight bug with disconnecting < 1235759537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fixed it now < 1235759538 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric : he was going anyway <<< in fact i was not, that was spontaneous; as was this < 1235759544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1235759547 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :- : 'a -> 'b -> 'c -> 'd -> 'e -> 'f -> 'g -> 'h -> 'i -> 'j -> 'k -> 'l -> 'm -> 'n -> 'o -> 'p -> 'q -> 'r -> 's -> ('h -> 'e -> 'q -> 'u -> 'i -> 'c -> < 1235759550 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :'k -> 'b -> 'r -> 'o -> 'v -> 'n -> 'f -> 'o -> 'w -> 'j -> 'u -> 'm -> 'p -> 's -> 'o -> 'x -> 'e -> 'r -> 't -> 'h -> 'e -> 'l -> 'a -> 'y -> 'z -> 'd -> 'o -> 'g -> 'a1 as 't) -> 'u -> 'x -> 'v -> 'w -> 'z -> 'y -> 'a1 = < 1235759555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, ocaml < 1235759556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ski__: OCaml? < 1235759558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what don't you type? < 1235759564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :answer: nothing, -rectypes. < 1235759573 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yay, -rectypes < 1235759579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i'm currently on no other channels, so parting and quitting aren't that different < 1235759580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ehird:~] % ocaml -rectypes < 1235759580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Objective Caml version 3.11.0 < 1235759582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# let foo a = a a;; < 1235759582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my supervisor would be mad if I tried to use that < 1235759583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :val foo : ('a -> 'b as 'a) -> 'b = < 1235759586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WHO LIKES TYPE SAFETY?! < 1235759587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not me! < 1235759591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, you can type any LC form with it < 1235759594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it kind of defeats the whole point. < 1235759604 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: OCaml also has `a type variables as an experimental feature < 1235759614 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they work more like Haskell typing, although it's still not quite there yet < 1235759629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I like it for its use of backquotes, among other things < 1235759632 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :hm ? < 1235759659 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it creates partial types with options < 1235759675 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :such as "function with an int or float argument, or possibly others" < 1235759680 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :you mean polymorphic variant types ? < 1235759682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235759693 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# let foo a = 1+(a a);; < 1235759695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :val foo : ('a -> int as 'a) -> int = < 1235759701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then (foo foo) actually works and busts the stack < 1235759711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ohw ait < 1235759713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not what i meant to type < 1235759725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was trying to type < 1235759725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# let foo a = a (1+a);; < 1235759726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235759736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even rectypes won't type that < 1235759743 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :(ais523 : however, i don't think that has anything to do with type variables ..) < 1235759776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the type variables get different names < 1235759788 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you have an unknown polymorphic variant type, it becomes `a in type expressions not 'a < 1235759872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm, how do you specify an ocaml expressin is a certain value at the repl? < 1235759906 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um let doesn't work? < 1235759934 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :ais523 : the `a there is not a type variable at all, it is a variant (/ constructor) name < 1235759942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: like? < 1235759953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :# let x = 2;; < 1235759984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ski__: ah, ok, I'm not very up-to-speed on OCaml terminology < 1235759988 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :# let () = ();; < 1235759990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm still at the stage of having to look up operator names < 1235759998 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although I understand the language philosophy I think < 1235760020 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :(ais523 : i think it is conventional to start variant names with upper case, though) < 1235760030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: no, I want to specify the type < 1235760034 0 :kar8nga!n=kar8nga@a-48.vc-graz.ac.at JOIN :#esoteric < 1235760045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1235760046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I meant type < 1235760048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not certain value < 1235760048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<_< < 1235760058 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :# let x = 2 : Int;; < 1235760072 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think, it's been a while < 1235760084 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how while? < 1235760099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :2002 or thereabouts? < 1235760118 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION read "Don't use rafb.net for pasting or you die" < 1235760146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would probably work better! < 1235760150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ocaml is kind of pretty < 1235760160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in its ugliness. < 1235760171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the semicolons balance it out more than the elegance of haskell. < 1235760177 0 :Hiato!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1235760178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it feels like something you can do shit with. < 1235760200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: < 1235760201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# let x = count -1 : Int;; < 1235760202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Error: Syntax error < 1235760205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't you mean < 1235760207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let x : Int = < 1235760220 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1235760228 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i thought both worked < 1235760244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm trying to do varargs in ocaml :D < 1235760253 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1235760260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think it can be done < 1235760344 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :YES, OCAML CAN DO IT WITH ENOUGH HACKING! < 1235760431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :agh, you can't do < 1235760434 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :#load "foo.ml";; < 1235760522 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :you can annotate value and function bindings (but not pattern-bindings) with result types < 1235760531 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :let x : int = 42;; < 1235760545 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :let f (x : int) : bool = x > 42;; < 1235760562 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :you can also use type ascription on expressions < 1235760569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how do you do #load "foo.ml";; :P < 1235760571 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :let x = (42 : int);; < 1235760576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ah < 1235760580 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :(the parens appears to be mandatory) < 1235760655 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :there's also longer forms of ascription : `( :> )' and `( : :> )' for use with subtyping < 1235760781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the ocaml h elp < 1235760835 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :see "Expressions" under < 1235761223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :simple variadic function: < 1235761226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let rec hello x = < 1235761226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print_endline x; < 1235761228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : hello;; < 1235761239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's hard is passing info around < 1235761295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1235761302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :FILE lacks a way to truncate files < 1235761306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ^ < 1235761379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# hello 1 2 3 4 5 6 0 7 8 0;; < 1235761379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :6 < 1235761380 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :9 < 1235761382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :- : int -> 'a as 'a = < 1235761385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a start < 1235761400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: using recursive types to do variadic functions? < 1235761405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1235761415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the function in question: < 1235761415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let rec hello_ i x = < 1235761417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : if x == 0 then print_endline (string_of_int i); < 1235761419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : hello_ (i+1);; < 1235761421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let hello = hello_ 0;; < 1235761430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the trouble is returning a value < 1235761436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a continuation can help for this < 1235761441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but you still have to return yourself < 1235761446 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think you have to use some sort of CPS < 1235761468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1235761470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to do that in haskell < 1235761473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but you have typeclasses < 1235761477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can resolve to IO () _or_ a function < 1235761991 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: actually, the vista minesweeper's advanced level is almost twice as big as xp's. < 1235762033 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1235762310 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, fascinating stuff. < 1235762322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wasn't there a big row about that, or something? < 1235762334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like where? < 1235762353 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway it's too big, or they should make sure it's actually passable. < 1235762364 0 :Asztal^_^!n=asztal@cpc3-stkn2-0-0-cust528.midd.cable.ntl.com JOIN :#esoteric < 1235762397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i fail very rarely, but i still can't pass this, it's like playing solitaire < 1235762480 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://www.geocities.com/creationislife/games_screens/Minefield_6D_screenshot_big.gif < 1235762490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: oh fuck < 1235762536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :6D? < 1235762547 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.cmu.edu/~dst/DeCSS/Gallery/Stego/minesweeper1.gif < 1235762565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: 6 dimensional < 1235762574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: truffle swine keeper lol wtf < 1235762581 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh it's decss < 1235762586 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, that's why i was confused < 1235762595 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah decss < 1235762597 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does it mean there < 1235762608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's minesweeper < 1235762611 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :played in 6 dimensions < 1235762613 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nstead of the regular 2 < 1235762620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you can't see two of them? < 1235762639 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well. < 1235762644 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that is kinda hardcore i guess. < 1235762796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can't see 2 of them? < 1235762796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1235762806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the different boards there are on different dimensions < 1235762817 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah so 4 dimensinos < 1235762819 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*dimensions < 1235762839 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i just realized it's the game's name, so probably just 4D mode on < 1235763027 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION googles on a hunch, and is disappointed that mimesweeper is apparently an antivirus program < 1235763050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or something emaily < 1235763068 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :obvious pun < 1235763096 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes, but a game where you swept mimes would be so much better, right? < 1235763104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Minepolisher < 1235763108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how would that go? < 1235763119 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :miMes, ais523 < 1235763120 0 :ski__!unknown@unknown.invalid PRIVMSG #esoteric :Minedigger < 1235763157 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: silently, at least < 1235763158 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well. obviously you could make somekinda adventure game or rpg or something < 1235763158 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1235763164 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but those are stupid < 1235763194 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and bloody. definitely bloody. < 1235763256 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok i found one relevant link http://blogs.adobe.com/jnack/2006/10/microsoft_mimes.html < 1235763404 0 :Azstal!unknown@unknown.invalid QUIT :Connection timed out < 1235763529 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Why does Google Maps seem more useful to me than Google Earth? < 1235763601 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because it's simpler and has better ui? < 1235763633 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I can't seem to get public transit info on Google Earth :( < 1235763642 0 :ais523!unknown@unknown.invalid QUIT :"dinner" < 1235765077 0 :Leonidas!unknown@unknown.invalid PRIVMSG #esoteric :hmm, my time reply looks ok. At least to the extent that this crappy timer gives me < 1235765137 0 :Leonidas!unknown@unknown.invalid PRIVMSG #esoteric :and is set to local time, in case you wonder < 1235765725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whoa lot of scrollback < 1235765761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, but you can't do it in 3D on google maps! < 1235765764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235765784 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually they are useful for different things IMO < 1235765879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://www.cs.cmu.edu/~dst/DeCSS/Gallery/Stego/minesweeper1.gif <-- what? < 1235765902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's DeCSS < 1235765905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :steganographied < 1235765915 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh? < 1235765919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION google < 1235765925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :googles* < 1235765928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't know what decss is?!?!?!?! < 1235765942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, isn't it something related to dvds? < 1235765947 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't know how to get to DeCSS from the fake Minesweeper thing < 1235765963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah key thing or something < 1235765977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh you mean that hex string is hidden in that somewhere? < 1235765984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1235765986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the whole source code < 1235765990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1235765998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the numbers and question marks < 1235765999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1235766002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1235766003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in the image data. < 1235766007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1235766008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do you not know what steganography is < 1235766012 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1235766013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do < 1235766032 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has no clue about anything steganography related < 1235766114 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it _would_ be more awesome if it was in the numbers and question marks < 1235766138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, indeed < 1235766147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, or both! < 1235766260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but if it was in the numbers and question marks, wouldn't it still be steganography? "Steganography is the art and science of writing hidden messages in such a way that no-one apart from the sender and intended recipient even realizes there is a hidden message", well I think hiding it in the visible playing field state would be steganography... < 1235766433 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1235766883 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :who wants to think up an algorithm for steganographizing in text? < 1235766931 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: base it on British/American spellings < 1235766957 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :so you can squeeze 1 bit in every 100 words? < 1235766983 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :not even, because you don't have access to the original text < 1235767001 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Magic soon. Bye all < 1235767036 0 :Sgeo!unknown@unknown.invalid QUIT :"Leaving" < 1235767149 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :and mixing british and american spellings is suspicious < 1235767247 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, depends < 1235767261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have seen source code in some projects mixing it inside one function < 1235767264 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :spelling it color once and then colour on the next is like wtf? < 1235767265 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1235767270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bgColour and fgColor < 1235767275 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1235767275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :both local variables in same function < 1235767288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then there is mysql with ANALYZE and ANALYSE < 1235767294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that does different things < 1235767305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1235767322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, and on irc I often end up mixing spellings < 1235767333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :though I try to keep to British English < 1235767420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there? < 1235767423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235767434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I reported a bug in bash 4 a few days ago and got a patch to test today.. < 1235767436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but < 1235767445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ static int < 1235767445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ skip_matched_pair (string, start, open, close, flags) < 1235767445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ const char *string; < 1235767445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ int start, open, close, flags; < 1235767445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ { < 1235767446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1235767450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :new code! < 1235767451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like that < 1235767454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :crazy < 1235767460 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1235767467 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i hate k&r style declarations < 1235767477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, all of bash 4 uses it it seems < 1235767507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also: < 1235767508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ static int skip_matched_pair __P((const char *, int, int, int, int)); < 1235767513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder wth that does < 1235767523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it uses old style in the implementation < 1235767655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#if !defined (__P) < 1235767655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# if defined (__STDC__) || defined (__GNUC__) || defined (__cplusplus) || defined (PROTOTYPES) < 1235767655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# define __P(protos) protos < 1235767655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# else < 1235767655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# define __P(protos) () < 1235767656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :# endif < 1235767658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#endif < 1235767660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ew < 1235767845 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :barf < 1235768462 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1235768677 0 :kar8nga!unknown@unknown.invalid QUIT :Remote closed the connection < 1235769118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it _would_ be more awesome if it was in the numbers and question marks <-- it is, See http://www.cs.cmu.edu/~dst/DeCSS/Gallery/Stego/ < 1235769128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you were wrong :P < 1235769209 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :This wins the "weird spam of the day" award: "Two astronauts ramming in space shuttle" < 1235769220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, indeed < 1235769338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sounds a bit sheepish < 1235770812 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :21:13 GregorR: This wins the "weird spam of the day" award: "Two astronauts ramming in space shuttle" < 1235770814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hot < 1235770839 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fuck hot < 1235770848 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :fucking* < 1235770882 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ACTION listens to some android lust < 1235770940 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, hi. < 1235770945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I asked #ocaml < 1235770955 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know how printf has a special hack to do this because it's primitive? < 1235770964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they think I can use its type to make arbitrary variadic functions < 1235770964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1235770983 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1235770988 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :printf isn't primitive < 1235770997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: in ocaml, the format6 type it uses absolutely is < 1235771006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because you just Can't Do That normally < 1235771041 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :va_arg < 1235771064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ais523: I asked #ocaml < 1235771066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ehird: bsmntbombdood: in ocaml, < 1235771073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do you think I might be referring to... say... ocaml? < 1235771074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I noticed the first time < 1235771074 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i don't get it < 1235771076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to C. < 1235771080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OCAML IS A PROGRAMMING LANGUAGE. < 1235771088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I was talking to bsmntbombdood < 1235771093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1235771099 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :surely it should have been < 1235771107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : bsmntbombdood: ehird: ais523: I asked #ocaml < 1235771119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody else was talking < 1235771122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: do you get it now? < 1235771131 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1235771142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: ocaml is a programming language. i am talking about ocaml, not c. < 1235771145 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why the interest in OCaml, by the way? < 1235771149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ocaml has a printf. i am using it for stuff. < 1235771151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing to do with C. < 1235771153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do you get it now? < 1235771158 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :no < 1235771164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh stfu < 1235771168 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what language doesn't allow variadic functions? < 1235771172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plenty < 1235771183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for example, most well-typed ones, especially those of the ML/Miranda family. < 1235771276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: OCaml is interesting. < 1235771282 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1235771284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I agree < 1235771292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has a major flaw, which is that it isn't Haskell < 1235771296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but apart from that, I like it < 1235771299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I dunno, i prefer its syntax < 1235771307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and laziness isn't always the best thing < 1235771309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't, the operator precedences are a nightmare < 1235771319 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :especially given that no operators are overloaded < 1235771328 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so there are about a million of them to fail to memorise < 1235771338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, okay < 1235771341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but apart from that < 1235771343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, what sort of language has different operators for adding integers and adding floats? < 1235771343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the syntax lokos nice < 1235771345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*looks < 1235771362 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the | at the start of a match thing is really clever, though, I like that < 1235771372 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : I don't, the operator precedences are a nightmare < 1235771384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: is a pun coming? < 1235771401 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how can that be worse than haskell given that ocaml's precedences are predefined and haskell's are not? < 1235771416 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: just try to remember the precedences of else and ; < 1235771421 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or comma and space < 1235771427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or a user-defined function and +. < 1235771430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :else is an operator? < 1235771434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or any of a billion other combinations < 1235771442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and no, if-then-else is an operator < 1235771452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I always screw up the else-; combination < 1235771460 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, also match and | < 1235771474 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's really easy to accidentaly nest matches and forget to end them < 1235771488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Backup scheme: get gigs of porn, steganogarize your encrypted backup in chunks of them, post to the interwebs. < 1235771509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Restore method: Find your images (now mirrored in about five million places), extract encrypted backup, restore. < 1235771513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like the Linus backup scheme, but less open-source related? < 1235771520 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: more effective < 1235771845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : I mean, what sort of language has different operators for adding integers and adding floats? <-- Ocaml and ASM? < 1235771854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not that they are operators in ASM... < 1235771860 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, ok, asm can get away with it, it has a good excuse < 1235771862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but Ocaml? < 1235771865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*OCaml? < 1235771875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1235771901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :couldn't it figure out which you wanted? < 1235771912 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's hilariously strongly type < 1235771913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*typed < 1235771922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I agree that integer division and float division may be good to separate < 1235771929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like div and / in erlang < 1235771939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but apart from that... < 1235771962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well you need typeclasses < 1235771967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which at the time of ocaml's inception iirc were uncommon < 1235772009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : like the Linus backup scheme, but less open-source related? <-- which is? < 1235772040 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: write something so good that everyone downloads their own copies < 1235772051 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that if you lose it, you can get it back from one of your adoring fans < 1235772069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ag < 1235772070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah' < 1235772073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah* < 1235772345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, has torvalds ever needed that? < 1235772351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably not < 1235772359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's still an ingenious strategy, though < 1235772364 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :he could just check it out from git < 1235772391 0 :lament!unknown@unknown.invalid QUIT :Remote closed the connection < 1235772394 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what if he loses git? < 1235772404 0 :lament!n=lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1235772444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, he could download the last release? < 1235772458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, that is his backup system < 1235772466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for those yes < 1235772466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the fact that other people have releases of git to download < 1235772481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I still like the scheme ehird suggested < 1235772500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but where would I get many GB of porn... Oh wait.. the internet? < 1235772532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but then it would have someone else's files steganographically encrypted on it < 1235772690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well what if both were layered? < 1235772791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, about printf and varadic. You don't need it. io:format("~s ~s~n", ["format", "string"]) < 1235772799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no shit < 1235772801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :two arguments, one a list < 1235772810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :congrats, einstein... < 1235772814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's not type-safe < 1235772823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in ocaml, (Printf.printf "" 2) gives a compile-time error < 1235772827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Printf.printf "%i" "hello", too < 1235772840 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't generate format strings at runtime? < 1235772840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, I wouldn't put it past OCaml to have an infinite number of printf operators < 1235772842 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's stupid < 1235772846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, you can < 1235772851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err of course you can... < 1235772854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one for each possible combination of arguments < 1235772868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hah < 1235772869 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, it does < 1235772874 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :then how can it be a compile-time error? < 1235772875 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're just folded into one < 1235772886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood, it can check when possible... < 1235772887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: it's kind of complicated. :) < 1235772898 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :gcc does the same thing for C anyway < 1235772908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er, no < 1235772915 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :er, yes < 1235772923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GCC can warn about format strings, so why couldn't you do it as an error according to same model? < 1235772930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when the string is constant < 1235772946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure how it would handle if the format string was user input... < 1235772954 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :you can't < 1235772964 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unless you have a special *type* for a format string with %s %s %d %s < 1235772966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1235772973 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: format string = user input = really bad idea < 1235772978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I agree < 1235772979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still < 1235772988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but taking user input and transforming it to a format string might not be. < 1235772993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you can do that < 1235772996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just not use user input verbatim < 1235773000 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there's type composition operators to do tha < 1235773001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :t < 1235773002 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well true < 1235773004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, but you couldn't type-check directly < 1235773015 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ais523: you can allow the user to build a format string in a safe way < 1235773026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and ocaml does that < 1235773027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because the transforming process would need to be understood < 1235773028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so stop saying that < 1235773066 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :test.c:4: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’ < 1235773075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sorry, i'm talking about c++. thought that was discussed too. < 1235773075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we know C, bsmntbombdood < 1235773084 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : gcc does the same thing for C anyway < 1235773084 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric : er, no < 1235773092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not the same thing < 1235773096 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know anything about ocaml < 1235773101 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :how is that not the same thing? < 1235773113 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :apparently not t alking about things you don't understand is a thing of the past, I see < 1235773152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't know what you're talking about, but I dispute that < 1235773165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what the fuck are you talking about? well, you're wrong. < 1235773176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're such comedians. < 1235773178 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: are you commenting me or bsmntbombdood? < 1235773180 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ the difference between me and ehird < 1235773190 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: SHUT UP YOU IDIOT, er < 1235773200 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*hi < 1235773205 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the keys are like right next to each other < 1235773213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1235773220 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well going anyway, hf ~> < 1235773235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway printf is stupid. < 1235773254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hurrrr why would we use rich types to denote the output formatting hurrr let's just parse strings after % HURRRR < 1235773346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ocaml is ridiculously fast < 1235773411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it uses the even pointer trick < 1235773417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's why integers are 31-bit signed integers < 1235773421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1235773573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm? < 1235773577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I see < 1235773616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but wouldn't it be slower to compute 31-bit integers... I mean the CPU has instructions for working at 32-bit and you need to mask it off every time you store it back < 1235773629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bitshift, yes < 1235773639 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but OCaml programs don't spend most of their time doing integer arithmetic < 1235773640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well true < 1235773650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's a speed gain overall, it makes the garbage collection much faster < 1235773656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, any ocaml program that did would have issues < 1235773673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no they wouldn't < 1235773676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they'd just use nativeints < 1235773679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1235773684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw why does ocaml even need type flags, just for the GC? < 1235773685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or FFI to C < 1235773692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since all typechecking is at compiletime < 1235773695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1235773698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's not type flags < 1235773703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's size flags < 1235773706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a fixnum flag :P < 1235773710 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the GC knows how much to deallocate < 1235773716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235773760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION figures out how to type-annotate ocaml functions < 1235773760 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :what's the even pointer trick? < 1235773762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's hard... < 1235773770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: malloc gives you even pointers, so use the lowest bit as a flag < 1235773778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, for a fixnum you do < 1235773780 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :every object is aligned on 2 bytes? < 1235773781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(i<<1)+1 < 1235773789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can just check the lowest bit < 1235773790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: yep < 1235773792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to see if you have a fixnum or an object < 1235773796 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235773837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is now certain that what he's always thought is true: he can't learn languages from tutorials < 1235773849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sure, I'll glance over them to get started, but then I just whack out code and google if it doesn't work < 1235773851 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I learnt OCaml from some pretty awful existing code < 1235773854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gradually I suck less < 1235773857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then one day I write a program < 1235773860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and realise I know the language < 1235773881 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that happened with python, I tried going through diveintopython but it just went over my head for some reason, so I gave up, still, I wrote a few tiny python programs < 1235773884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then one day... bam < 1235773889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can write python, how did that happen? < 1235773923 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :... < 1235774046 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what < 1235774284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that about tutorial: very true < 1235774295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tutorial to get an idea of wth it is about at all < 1235774305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same as you then < 1235774355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then read some reference manual to find out what bits you missed < 1235774388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how do you give a function a type sig in ocaml? < 1235774414 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :using modules and interfaces, IIRC < 1235774420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a rather needlessly complex mechanism < 1235774425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1235774428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just want to annotate a typ < 1235774428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1235774445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let sprintf fmt : ((string -> string) -> 'a) -> 'a = fmt (fun s -> s);; < 1235774446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :this almost works < 1235774452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except it types (sprintf fmt) < 1235774456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not (sprintf)-and-bind-the-arg-to-fmt < 1235774488 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let sprintf (fmt : (string -> string) -> 'a)) : 'a = ... < 1235774496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ahh < 1235774509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I like that < 1235774511 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's elegant < 1235774524 0 :BeholdMyGlory!unknown@unknown.invalid NICK :|BeholdMyGlory| < 1235774551 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :s/))/)/ < 1235774749 0 :|BeholdMyGlory|!unknown@unknown.invalid NICK :BeholdMyGlory < 1235774888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has learned languages from tutorials < 1235774904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i've never learned a paradigm from tutorials < 1235774921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how do you learn paradigms? < 1235774928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :by playing with them? < 1235774934 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds good < 1235774973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i usually like to think in terms of esolangs for paradigms < 1235774984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but writing program snippets works well too < 1235775227 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Anybody here who can draw an egg stream? < 1235775252 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what the heck is that < 1235775274 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. < 1235775277 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So can you draw it? < 1235775309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: you're starting to sound worryingly like David Morgan-Mar, stop it < 1235775309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: i can! < 1235775321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(egg . (lambda () (egg . (lambda () (egg . ()))))) < 1235775326 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"Egg stream" is a pun for "extreme" :P < 1235775330 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's a well-known danger to esolangers < 1235775388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that was presumably meant to be a pun < 1235775399 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not really < 1235775400 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay, I almost have an ocaml thingy that can do: < 1235775417 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :# sprintf (lit "Your lucky number is " % int % "!") 3;; < 1235775417 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just a subcultural inside joke, i guess < 1235775420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :type-safely, of course < 1235775428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1235775432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% int % lit "!" < 1235775433 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc < 1235775458 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :i think you mean 'egg < 1235775470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bsmntbombdood: well, you can't evaluate (x . y) sanely anyway < 1235775472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's (egg lambda ()) < 1235775479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was just using (lambda () ...) as shorthand for the actual object < 1235775482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in a quoted form < 1235775499 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :`(egg ,(eggs)) < 1235775549 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not ,@(eggs) ? (iirc) < 1235775604 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh, yeah < 1235775612 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :or `(egg . ,(eggs)) < 1235775619 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is that legal? < 1235775654 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1235776007 0 :Mony!unknown@unknown.invalid QUIT :"Quit" < 1235776149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : GregorR: you're starting to sound worryingly like David Morgan-Mar, stop it < 1235776151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1235776167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION reads < 1235776176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't see any similarities < 1235776202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: about not knowing what something is and asking people to draw it anyway < 1235776212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a very DMMy sort of thing to do < 1235776222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION meditates on < 1235776222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :let (%) (a : (string -> string) -> 'a) (b : (string -> string) -> 'b) -> (string -> string) -> 'b < 1235776233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, implementing it as a composition operator. < 1235776252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, where did he do that? < 1235776258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :DMM I mean < 1235776269 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :he didn't do that specifically < 1235776274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just the sort of thing he would do < 1235776300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235776310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I guess I haven't had much to do with him < 1235776316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :apart from reading his comics < 1235776445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if it's possible < 1235776450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :think I need another type instead < 1235776465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, don't you just need to throw away the 'a? < 1235776502 0 :FireFly!n=firefly@217-211-228-107-o859.telia.com JOIN :#esoteric < 1235776557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except, actually, I can't < 1235776563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have to absorb both < 1235776563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hrm < 1235776573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, this will not work, I think < 1235776579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ahh wait!! < 1235776587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait you don't actually get a string out < 1235776595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: for < 1235776607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(int -> string) fmt < 1235776608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& < 1235776610 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(string -> string) fmt < 1235776614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be < 1235776618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(int -> string -> string) fmt < 1235776619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for < 1235776620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :string fmt < 1235776626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and (int -> string) fmt < 1235776627 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be < 1235776629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(int -> string) fmt < 1235776634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think I need a different type for fmt < 1235776640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is this some lisp or haskell? < 1235776648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or ocaml? < 1235776660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sigh. ocaml, as above. < 1235776747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1235776807 0 :Leonidas!unknown@unknown.invalid QUIT :"An ideal world is left as an exercise to the reader" < 1235776850 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that seems somewhat illogical. Wouldn't an ideal world be right, not left? < 1235776895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :groan < 1235776931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um wth? < 1235776954 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't get the joke < 1235776976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1235776980 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Welcome to today's episode, where we learn that AnMaster cannot see quit messages :D < 1235776995 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mentally filter them, apart from oerjan's < 1235776999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1235777005 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because oerjan normally leaves comments in quit messages < 1235777006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* Leonidas has quit () < 1235777008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about it < 1235777022 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric := Leonidas [n=Leonidas@unaffiliated/leonidas] quit ("An ideal world is left as an exercise to the reader") < 1235777031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :freenode is buggy when it comes to quit messages as you probably know < 1235777032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1235777057 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er i knew it censored some of them but i didn't know it did so inconsistently < 1235777066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, oh yes it does < 1235777079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and not censored, randomly lost < 1235777122 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :by censored, i mean "don't turn up unless you've been logged in a while" < 1235777136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it does that too? < 1235777136 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the person giving the quit message, though < 1235777150 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what I don't understand is how AnMaster didn't see it and I and oerjan and ehird did < 1235777152 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :s/you've/the quitter has/ < 1235777159 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1235777159 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: AnMaster's bouncer is buggy? < 1235777160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haven't you noticed Success as quit message sometimes as well < 1235777170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: oh, that's a bug in Freenode, almost certainly < 1235777172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, freenode is < 1235777175 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's doing a perror < 1235777179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only errno is 0 < 1235777181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed. And it also looses quit message < 1235777182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :strerror < 1235777183 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i've seen Success < 1235777183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not perror < 1235777188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, ok < 1235777197 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mentally connect stdout/stderr to whereever they ought to be going < 1235777221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: perror outputs a colon and a space < 1235777222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I know about hyperion < 1235777223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1235777229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(the server software used) < 1235777251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: ah, ok < 1235777257 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :clog saw the quit message too < 1235777258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what about perror("\b\b")? < 1235777273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1235777287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :parts of it could win "caused most judges to go insane" in IOCCC ... < 1235777298 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what's happened to the IOCCC, anyway? < 1235777303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1235777306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there was even a Slashdot story about it seeming to have disappeared < 1235777332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I can get to http://www.ioccc.org/ < 1235777343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :intentional misinterpret yeah < 1235777373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i miss the5k < 1235777391 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :last news from April 2008 < 1235777407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which was adding more mirrors to handle the load of releasing the winning programs! < 1235777423 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the5k? < 1235777448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was a competition < 1235777456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :make a web-based (javascript, etc, sometimes) toy < 1235777458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in under 5kb < 1235777461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235777463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there was Wolfenstein5k < 1235777469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(3d wolfenstein clone in 5kb of js) < 1235777476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(wolfenstein = first person shooter) < 1235777481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stuff like that < 1235777495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1235777502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it ran a few times < 1235777505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then disappeared < 1235777522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have the source for previous IOCCC around somewhere iirc < 1235777527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in case it is going < 1235777543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, that anagolf underload interpreter amazes me < 1235777543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes all the way from 1987 < 1235777545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm clearly there must be a connection. they have all been abducted by aliens! < 1235777546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even if it randomly segfaults < 1235777558 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no 1993? < 1235777571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ ls ~/ioccc/ < 1235777572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1987 1988 1989 1990 1991 1992 1994 1995 1996 1998 2000 2001 2004 < 1235777581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea about other years < 1235777583 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there weren't competitions some years < 1235777585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1235777592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because the judges were so disorganised < 1235777596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1235777701 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :by the news there must have been one in 2006, unreleaed < 1235777748 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which was presumably no. 18 since 17 was 2004 and 19 had "just" closed < 1235777816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they seem to be about as organized as the Essies, these days :/ < 1235777819 0 :ais523!unknown@unknown.invalid QUIT :"DainDwarf's default quit message" < 1235777874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, Essies? < 1235777901 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :our wiki < 1235777909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh ok < 1235777916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :are we supposed to be organized? < 1235777955 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nah but nearly all our contests have crashed before judging... < 1235777985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh those contests < 1235777992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't care much for them < 1235778063 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the second one had some good entries even it wasn't judged. for the later ones we don't even have the entries. < 1235778090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where did the entries go? < 1235778131 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :they do have wiki articles < 1235778138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.voxelperfect.net/wiki/Essies < 1235778149 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well the known ones anyhow < 1235778158 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not sure if that were all < 1235778399 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fixes catseye link for granola/m < 1235778460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://catseye.tc/projects/hunter/doc/hunter.html <--- what does the pinwheel do? < 1235778956 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :-> bed < 1235778975 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :ACTION closes his DS < 1235778981 0 :FireFly!unknown@unknown.invalid QUIT :"DSOrganize IRC"