< 1225843382 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1225844066 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :townsville is solidly blue < 1225844096 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately there was only one vehicle to escort voters to the polls < 1225844118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225846343 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1225846348 0 :ab5tract_!n=ab5tract@pool-71-246-5-13.phlapa.fios.verizon.net JOIN :#esoteric < 1225846476 0 :ab5tract_!unknown@unknown.invalid QUIT :Client Quit < 1225847622 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. OBAMA 77 ----- MCCAIN 34 < 1225847629 0 :Asztal!unknown@unknown.invalid QUIT :"@" < 1225848566 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. OBAMA 81 ----- MCCAIN 34 < 1225849108 0 :lament!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. PALIN 81 ----- MCCAIN 34 < 1225849310 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. OBAMA 102 ----- MCCAIN 34 < 1225850343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh. hi GregorR /lament < 1225850481 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN says: OBAMA 102 ----- MCCAIN 43 < 1225850486 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :'lo < 1225850533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :usa elections amirite < 1225850581 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yuh < 1225850592 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Some of us are Americans :P < 1225850646 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :DID YOU VOTE < 1225850648 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN says: OBAMA 174 ----- MCCAIN 49 < 1225850652 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :FOR THE OBJECTIVIST PARTY < 1225850794 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I didn't vote, but for one simple reason... < 1225850805 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My absentee ballot came in just in time to mock me. < 1225850817 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Haha, you won't get me in on time!" < 1225851265 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN says: OBAMA 174 ----- MCCAIN 64 < 1225851726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey bitches < 1225851738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: DID YOU VOTE FOR GregorR < 1225851740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :YES YOU DID < 1225851755 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I voted for Rick Astley < 1225851800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225851820 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And he won, too :D < 1225851826 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Best act ever on MTV < 1225851834 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It will be the 10th, IIRC < 1225851836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lost the game < 1225851838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AND LOST THE ELECTION :( (nah) < 1225851843 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's going to be so awesome < 1225851884 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://mfrost.typepad.com/cute_overload/images/2008/11/04/herrings_all_the_way.jpg < 1225851886 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1225851974 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN says: OBAMA 174 ----- MCCAIN 69 < 1225852666 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN says: OBAMA 194 ----- MCCAIN 69 < 1225852884 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN/Google: OBAMA 194/175 ----- MCCAIN 69/61 < 1225853171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: um < 1225853176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://news.bbc.co.uk/2/hi/americas/us_elections_2008/7697829.stm < 1225853178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :use that < 1225853182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's the bbc, the bbc are cool < 1225853183 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1225853201 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Bloody effing grall < 1225853215 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The BBC is a pretty cool guy < 1225853384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c'mon obama, just win, kthx < 1225853388 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN/Google: OBAMA 199/195 ----- MCCAIN 78/70 < 1225853462 0 :Slereah!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN/Google: SHRIMP 199/195 ----- HERRING 78/70 < 1225853482 0 :Asztal!n=asztal@cpc3-stkn2-0-0-cust106.midd.cable.ntl.com JOIN :#esoteric < 1225853512 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I love how the BBC has a color for 3rd parties < 1225853521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1225853522 0 :lament!unknown@unknown.invalid TOPIC #esoteric :270 erectoral votes to win. CNN/Google: SHRIMP 199/195 ----- HERRING 78/70 < 1225853523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so useless :D < 1225853523 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Like a third party is ever going to have anything anywhere < 1225853539 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :270 erections required to win. < 1225853582 0 :lament!unknown@unknown.invalid TOPIC #esoteric :270 erections required to win. CNN 199/195 ----- GOOGLE 78/70 < 1225853900 0 :puzzlet!unknown@unknown.invalid PRIVMSG #esoteric :huge erections going on? < 1225853933 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes, huge erections in america < 1225853942 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :seems like CNN is winning < 1225853967 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Don't blame me, I voted for Rick Astley < 1225854424 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :http://fora.tv/2008/02/19/Neil_DeGrasse_Tyson_Death_by_Black_Hole < 1225854426 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :WATCH IT < 1225854429 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. CNN/Google: OBAMA 207/202 ----- MCCAIN 89/75 < 1225855308 0 :GregorR!unknown@unknown.invalid TOPIC #esoteric :270 electoral votes to win. Everyone agrees that Obama has at LEAST 200 (even FOX!), and there are 73 freebies for Obama on the west coast. In short: OBAMA WINS! < 1225855338 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225857676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OBAMA < 1225857679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WPMMMMMMMMM < 1225857683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WONNNNNN < 1225857748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: :D < 1225857781 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :^^ < 1225858815 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Obama won. < 1225858819 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Obama won. Fuck yeah. < 1225859503 0 :pikhq!unknown@unknown.invalid TOPIC #esoteric :McCain's conceded, rather than recount. Fuck yeah. | Obama won. Fuck yeah. < 1225861224 0 :Sgeo!unknown@unknown.invalid QUIT :Connection timed out < 1225865713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i refuse to know what all this commotion was about. < 1225865746 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :Good idea < 1225865796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mccain? well i know what a *cane* is. osama was the tower guy. these fuck yeahs are probably just science fiction < 1225865815 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1225865868 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lickture -> < 1225868477 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://www.conservapedia.com/Barack_Obama // Hahahaha, this is so over-the-top-libelous it's not so much offensive as surreal :P < 1225869428 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hey kids < 1225869499 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: what does this mean "which most Christians would not retain." < 1225869680 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :Most Christians would not keep that as their middle name < 1225869729 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1225869769 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :that's some shitty english right there < 1225869787 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1225870162 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its not shitty at all < 1225870166 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its perfectly fine and understandable < 1225870225 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1225870517 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: no it's not < 1225870527 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :yes it is < 1225870553 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its a relative clause < 1225870558 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :how is it not fine and understandable? < 1225870593 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :it sounds like most christians would not retain hussien < 1225870642 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes i can see what you mean < 1225870646 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :yeah there is ambiguity this is true < 1225870653 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but that sort of construction is quite common in english. < 1225870715 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :There's nothign grammatically wrong with the way it is written. < 1225870725 0 :Jiminy_Cricket!unknown@unknown.invalid PRIVMSG #esoteric :nothing, too. < 1225870897 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1225871999 0 :clog!unknown@unknown.invalid QUIT :ended < 1225872000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1225879153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay Obama! :) < 1225879882 0 :lifthrasiir!unknown@unknown.invalid QUIT :"leaving" < 1225879907 0 :lifthrasiir!n=lifthras@haje12.kaist.ac.kr JOIN :#esoteric < 1225886085 0 :lifthrasiir!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225886958 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225888867 0 :lifthrasiir!n=lifthras@haje12.kaist.ac.kr JOIN :#esoteric < 1225889912 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1225889933 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Client Quit < 1225889939 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1225890217 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1225891680 0 :ais523_!i=93bc1b47@gateway/web/ajax/mibbit.com/x-6cc35121abee0d47 JOIN :#esoteric < 1225892248 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1225892365 0 :psygnisfive!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1225892366 0 :Jiminy_Cricket!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1225892387 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1225892387 0 :Jiminy_Cricket!n=bob@adsl-155-100-173.btr.bellsouth.net JOIN :#esoteric < 1225893373 0 :ais523_!unknown@unknown.invalid QUIT :"http://www.mibbit.com ajax IRC Client" < 1225893636 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225895419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523_ < 1225895529 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225895535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol that conservapedia article < 1225895538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is amazing < 1225896690 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Obama won. Fuck yeah. | But Prop 8 passed. lol@usa < 1225897122 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's prop 8= < 1225897123 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1225897131 0 :jix!n=jix@dyndsl-095-033-116-191.ewe-ip-backbone.de JOIN :#esoteric < 1225897158 0 :omniscient_idiot!unknown@unknown.invalid PRIVMSG #esoteric :gay marriage < 1225897184 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see, and passing would be which way exactly? < 1225897190 0 :omniscient_idiot!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1225897243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: a while back (ages ago), california allowed gay marraige < 1225897249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :prop 8 has passed, and it's reversing that < 1225897256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.kcra.com/california-proposition-8/index.html < 1225897263 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah okay. < 1225897298 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol@usa kinda gave away they removed gays and not the other way < 1225897321 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but as i didn't remember they existed in the first place < 1225897325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but yeah californum < 1225898382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ITT: UK government surveillence reaches the internet http://www.telegraph.co.uk/news/uknews/3384743/Internet-black-boxes-to-record-every-email-and-website-visit.html < 1225899298 0 :Judofyr_!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225899981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1225900033 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1225900287 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225900305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was awake at 5am yesterday x_x < 1225900336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah we know < 1225900351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so was I < 1225900379 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my sleep cycle is pretty normal nowadays :< < 1225900729 0 :sebbu!n=sebbu@ADijon-152-1-39-187.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1225903149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so im wholesale ripping off jayCampbell < 1225903154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and writing a brainfuck-program-generator < 1225903155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^.^ < 1225903157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1225903164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :think i could breed programs to hello world? < 1225903181 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that was managed for Malbolge once, BF seems like it would be easier < 1225903223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'll just generate random programs for now < 1225903224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1225903228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I think I could rip the interpreter out of bff.c < 1225903234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although then I'd have to code t he generator in c < 1225903238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'd be nice and fast but .. < 1225903854 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1225903932 0 :Judofyr_!unknown@unknown.invalid QUIT :Remote closed the connection < 1225903969 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225904097 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1225905078 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Californians will burn in hell for passing Prop 8. This will be nicely ironic. < 1225905155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, using capitals? < 1225905157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unheard of! < 1225905163 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ey? what? < 1225905173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: whaddya mean what < 1225905184 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :why will it burn in hell now? < 1225905193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cause prop 8 is evil, presumably < 1225905207 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well banning gay marriage is bad mkay < 1225905209 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but < 1225905223 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i dont see what oerjans talking about < 1225905234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't see how you can not see what he's talking about? < 1225905241 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: tongue too much in cheek, affects capitalization < 1225905241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's plain, simple english... do you have troubles with it? < 1225905245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1225905250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you might wanna get that checked out < 1225905252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sounds painful < 1225905266 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: the irony is the theory that God vehemently disagrees with fundamentalist Christians < 1225905286 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oh i see < 1225905286 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but _still_ burns people in hell < 1225906201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.flickr.com/photos/ajohnhart/sets/72157608561494488/ creepy < 1225906494 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :barack obama, now as grey goo < 1225906591 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :whole new meaning to the term obamabots < 1225906605 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there was an old meaning? < 1225906620 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1225906627 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :people who mindlessly supported obama < 1225906739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://colony14.net/id53.html < 1225906744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"November 4 is getting close, and unless something dramatic happens it looks like Barack Hussein (“I am not a Kenyan”) Obama, Jr. (alias Barry “I am not an Indonesian” Soetoro) will become the next President of the United States." < 1225906765 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :Soetoro is a cool name < 1225906766 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :is that any worse than being mindlessly american? < 1225906779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :barack hussein i am not a kenyan obama, jr. < 1225906781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aka < 1225906784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :barry i am not an indonesian soetoro < 1225906805 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, anyone else here noticed that Obama seems to use British English not American English? < 1225906833 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :british english? since when? < 1225906834 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Is that such a *bad* thing? < 1225906837 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :his accent was not british < 1225906838 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think so < 1225906844 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he seems to give off more of a british vibe than american, for some reason < 1225906849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(The reason is that he's a communist terrorist.) < 1225906856 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: he said "autumn" rather than "fall" referring to the season in his victory speech < 1225906869 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :autumn is acceptable parlance in america < 1225906879 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :less common, but not unheard of either. < 1225906890 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I suppose so < 1225906895 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :while british english exclusively uses autumn, and fall isnt even acceptable < 1225906900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also he doesn't have much of an american accent < 1225906901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FALL IS UnACCEPTABLE < 1225906905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*UNACCEPTABLE < 1225906911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FASCIST BRITS :O < 1225906924 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1225907139 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://www.irregularwebcomic.net/cgi-bin/poll.pl?a=7 < 1225907169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1225907255 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :while i voted for Obama, i do agree the Allosaurus was probably the second best in that election < 1225907277 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Ron Paul won. Fuck yeah. < 1225907283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :s/agree/think/ < 1225907284 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1225907301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see the internet is always right < 1225907328 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: is that a quote of something? < 1225907344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what, ron paul? < 1225907350 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225907364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ron paul was the official presidential candidate of the annoying internet for the longest time < 1225907372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :especially reddit&digg < 1225907374 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also the Fuck yeah < 1225907383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, i put that there when obama won < 1225907383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1225907443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the annoying internet < 1225907450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225907451 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that needs to be an acronym < 1225907455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :TAI < 1225907459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :doesn't trip off the tounge < 1225907522 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :"Looking ahead to 2010, House and Senate Democrats will be jealously eyeing Obama’s e-mail lists and technology secrets" < 1225907534 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :obama apparently operates a high tech research facility < 1225907597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :totally < 1225907599 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i should imagine the republicans would be eyeing them even more jealously < 1225907635 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :you'd think < 1225907645 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :obama people dont have to be rational tho < 1225907658 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :http://daringfireball.net/2008/11/the_fantastic_monument < 1225907661 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :case in point < 1225907667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: yeah 'cause mccain supporters are way more rational < 1225907671 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure they would love to use his funding method < 1225907685 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ehird: oh, no, they're worse < 1225907687 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but that's a given < 1225907699 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :so its hardly worth mentioning < 1225907704 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :republicans are by default nutjobs < 1225907711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: there's nothing that inherently makes obama/mccain supporters irrational, although mccain supporters have a better chance due to the candidate they support... < 1225907720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think it's just a case of that most people are pretty stupid < 1225907730 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :true < 1225907748 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :im just tired of hearing people pour their hopes and dreams into this one person < 1225907756 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :as tho hes some sort of magical panacea < 1225907769 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :give them some slack, they've had bush for 8 years < 1225907802 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :true < 1225907806 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but its like < 1225907810 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :my roommate was like < 1225907817 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :I VOTED FOR OBAMA BECAUSE OBAMA IS FOR CHANGE < 1225907818 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :OK < 1225907819 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :CHANGE < 1225907821 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :GRR < 1225907828 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :and when i asked him what sort of change he was like < 1225907834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :CHANGEY CHANGE < 1225907834 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :well i dont actually KNOW ok < 1225907835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MORON < 1225907836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1225907842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1225907845 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :and im not exaggerating either < 1225907849 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i wish i was < 1225907851 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :but thats what he said < 1225907857 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :he didnt even know < 1225907862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just ask python who to vote, it knows every time < 1225907872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: who did it say < 1225907884 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1225907894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i doubt you care much about the elections i've voted in < 1225907894 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1225907894 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1225907901 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1225907913 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :wabi! < 1225907917 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1225907919 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :no wabi < 1225907927 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1225907942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1225907943 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i doubt you care much about the elections i've voted in < 1225907981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: run it on the us election < 1225908023 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, has ais sussed the program yet? < 1225908060 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: nope. < 1225908065 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :lame < 1225908069 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :we should add more stuff to the competition < 1225908072 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :its no fun otherwise < 1225908328 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: python says mccain < 1225908339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what algorithm < 1225908347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :random.choice. < 1225908354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i was hoping you'd have an awesomely okoy algorithm to do it < 1225908364 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm aiming for that @ next election < 1225908381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's just i decided this is my way to vote like one day before the election i voted in. < 1225908553 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :random voting seems a little weak. what you want for true chaos is something like geohashing for politics. then many people will vote the same way, but randomly. < 1225908573 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :lolwut < 1225908583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1225908615 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that will _really_ screw up the predictions < 1225908820 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :i are tired :( < 1225908834 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :berb < 1225909490 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1225909893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, are you ignoring me? < 1225909893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i like that < 1225909900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if not I got a question < 1225909904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, but i sould be < 1225909907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*should < 1225909907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and what < 1225909937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I have been trying to find out how to get length of an unicode string in python, in chars not bytes, for about half an hour without luck < 1225909944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and since I know you are good at python < 1225909947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :len(s) < 1225909950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225909964 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :len(x) = length of x, for any x where that makes sense < 1225909969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1225909971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :calls "magic method" x.__len__() < 1225910020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes I did look at the unicode and string class docs without luck. thanks a lot < 1225910021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1225910048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :np. < 1225910152 0 :asiekierka!n=asiekier@89.108.246.61 JOIN :#esoteric < 1225910155 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :BOO! < 1225910178 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :LEAN! < 1225910192 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Well, what can a Polish foreigner say about the US election. < 1225910206 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :preferably nothing < 1225910214 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Someguy won, that's fine, Someotherguy lost, that's fine, BUT WHAT ISN'T FINE IS... < 1225910229 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :The US election was talked about more here than our Polish election! < 1225910231 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Now that's weird < 1225910239 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :No-one cared about the polish election < 1225910245 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And everyone cares about the US one! < 1225910255 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :thats because poland isnt the worlds largest supporter of international terrorism. < 1225910308 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Also, how's Esolangs? < 1225910313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also because nobody cares about poland < 1225910319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wow, i just got an idea that is easy and could work and would be cool < 1225910321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's rare. < 1225910325 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1225910331 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :wh at is it < 1225910336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is cool. < 1225910337 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ehird tell tell :D < 1225910341 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Tell or you'll die < 1225910351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: i want to quickly hack up a test of it first to maake sure it might work < 1225910352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but no fear < 1225910355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i shall tell imminently. < 1225910356 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225910359 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :10... < 1225910361 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :9... < 1225910362 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :8... < 1225910363 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :7... < 1225910364 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :6... < 1225910366 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :5... < 1225910367 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :4... < 1225910369 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :SPEE... < 1225910369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also asiekierka just dequalified himself < 1225910371 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :SPOO... < 1225910372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by spamming < 1225910375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*disqualified < 1225910376 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :SPONE! < 1225910377 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ACTION got kicked < 1225910379 0 :asiekierka!unknown@unknown.invalid PART #esoteric :? < 1225910384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thank god. < 1225910385 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1225910396 0 :asiekierka!n=asiekier@89.108.246.61 JOIN :#esoteric < 1225910405 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :No, just kidding *cough*sadly*COUGH* < 1225910416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what happened to optbot? < 1225910421 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not here? huh. < 1225910435 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :thank god < 1225910436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stupid unstable POS < 1225910442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: why? < 1225910445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :optbot is awesome. < 1225910448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everyone loves optbot. < 1225910453 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :optbot was annoying < 1225910460 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :not as annoying as SeppBot in #compling but < 1225910461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody else agrees with you. < 1225910468 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Wait, now there's thutubot back! < 1225910468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so tough shit, i'm restarting it < 1225910468 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :MURDER! < 1225910475 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :THUTUBOT MURDERED OPTBOT! < 1225910481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thank you asiekierka. < 1225910487 0 :optbot!n=optbot@eso-std.org JOIN :#esoteric < 1225910487 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | I love you < 1225910493 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Uh-oh < 1225910507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :optbot: test < 1225910508 0 :optbot!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it stars 'oko' and 'kok' this one does < 1225910513 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :hey guess what < 1225910516 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :michael crichton is dead < 1225910531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cool. < 1225910543 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :he was a horrible author < 1225910576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also topic, why Ron Paul of all the possible choices? < 1225910587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because ron paul is the Comedy Internet Option < 1225910597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION googles < 1225910608 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he was all over reddit/digg/whatever < 1225910646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah ok, I usually don't read such sites, however I wonders, why did they focus on him? < 1225910656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cuz everybody loved him. < 1225910663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'cuz he was all OH CONSTITUTION < 1225910680 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Also he's a gold-standard-moron, and that's always funny :P < 1225910689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225911224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[] < 1225911224 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225911229 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1225911238 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haha, that's really funny < 1225911240 0 :asiekierka!n=asiekier@89.108.246.61 JOIN :#esoteric < 1225911264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka wrote an infiniloop in #IRP, I copied it to fungot over here to figure out what it did, and then asiekierka quit... < 1225911265 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no one will ever have to consider it trivial to extract the information automatically declared) 13 lines. unfortunately, that foundation is often incomplete. < 1225911278 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ais523: My IRC crashed < 1225911294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, because it was trying to run an infiniloop was the implication < 1225911309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quite a few of the bots in here used to /quit if you infinilooped them < 1225911314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although that doesn't happen nowadays < 1225911317 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :+ul (:^):^ < 1225911318 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1225911319 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1225911324 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :now i understand the joke < 1225911398 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :+ul (-)(-)((:S(|)S:(~)~a*^*)~a*^:^):^ < 1225911399 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric :-|--|---|-----|--------|-------------|---------------------|----------------------------------|------------------------------------------------------- ...too much output! < 1225911413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: awesome < 1225911427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I think there are shorter ways, that was just idiomatic < 1225911455 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1225911467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: Unlambda or Underload? < 1225911472 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda. < 1225911476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225911478 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda this time < 1225911482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :do you know lambda calculus? < 1225911485 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Nno. < 1225911496 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :5th grade elementary < 1225911502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably it's best to learn that first, or getting your head around Unlambda is basically impossible, so I'll teach you now < 1225911509 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Okay < 1225911514 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's more an esolang basis than something you're taught at school < 1225911519 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225911530 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :{{if anyone wants to comment, feel free!}} < 1225911538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, in imperative langs like BF, you write down the commands you want in the order they happen, and you have things like loops and ifs to make them happen in a different order < 1225911545 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you have variables to store data < 1225911548 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the tape in BF) < 1225911554 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :In lambda calculus, you don't have variables...? < 1225911558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225911569 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the only variables you have in lambda calculus are the params to functions < 1225911570 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And the result of the code itself is the output, right? < 1225911580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and in "pure" lambda calculus, yes < 1225911593 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda includes an output function though < 1225911596 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although some lambda-calculus-based langs like Unlambda have side-effect output functions < 1225911600 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so they're "impure" < 1225911611 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225911619 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Okay, now the lambda calculus basis < 1225911626 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :How does it work < 1225911631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's based on the concept of functions, first of all < 1225911631 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes, only params to functions < 1225911636 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :+ul (-|)(~:S(-)~*~:^):^ < 1225911638 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric :-|--|---|----|-----|------|-------|--------|---------|----------|-----------|------------|-------------|--------------|---------------| ...too much output! < 1225911639 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225911644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you want to be able to store data, get another functoin and pass it as a param < 1225911651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait that was fibonacci < 1225911652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can make functions at will < 1225911654 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, the tricky parts: < 1225911657 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1225911664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can generate functions at runtime, from templates < 1225911669 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can pass functions as arguments < 1225911673 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1225911686 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1225911694 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by "generate functions at runtime, from templates"? < 1225911698 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes, at runtime < 1225911700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's do 99bob in a hypothetical high-level lambda calculus lang, to give you some idea of how it works < 1225911704 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but what do you mean by templates < 1225911711 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok, ais523 < 1225911714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: basically, they're like functions but with things missing < 1225911724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :numbers, functions, or other fill-in-the-gaps stuff < 1225911728 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225911734 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :So, what about the 99bob thing < 1225911738 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1225911745 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, ignore the Yes < 1225911759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, to print one bottle of beer, you could do a function like this (hypothetical syntax) < 1225911793 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lambda(a) {print a, " bottles of beer on the wall,\n", a, "bottles of beer,\ntake one down, pass it around,\n", a-1, "bottles of beer on the wall.\n"} < 1225911803 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1225911813 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nice and simple, basically the same as in an imperative lang < 1225911816 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the only difference is we have the lambda operator here that creates a function with no name < 1225911821 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and we can pass it around like a variable < 1225911825 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And {} is the function < 1225911831 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in this syntax, yes < 1225911835 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :So we can repeat it 99 times, and here we go, it's the 99bob program < 1225911851 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, 99 times with different arguments, but that's normally considered cheating when writing 99bob < 1225911856 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1225911859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you want to use some kind of loop, normally < 1225911868 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :But i mean, repeat at runtime < 1225911870 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :you do it recursively < 1225911876 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there are no looping constructs; in an imperative lang, you'd use recursion < 1225911889 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :The code is some kind of thing which pastes the var 99 times, and executes it < 1225911892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :something like function b(x) {lambda(a){...}(x); b(x-1);} < 1225911900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't work in lambda calculs because the functions don't have names < 1225911905 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Ok < 1225911917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can still do recursion, but it's a bit trickier < 1225911928 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1225911935 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :recursion is possible in LC, just not conveniently < 1225911944 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Okay, psygnisfive. < 1225911945 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, another quick python question: I looked more closely this time, I need to check if a string contain a #, I guess the __contains__ is what I want, (looked at help(unicode)). But I'm not sure, and what is the "special" way to call the __contains__ one then? < 1225911951 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :YC is recursive. < 1225911956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :suppose I have lambda(f,x){f(f,x);}, which is a function I'll call sii for reasons which become clear later < 1225911969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: '#' in string < 1225911971 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :infact, a recursive version would probably look very YC. < 1225911971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think you should read a basic tutorial. < 1225911972 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ish < 1225911974 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, if I apply that with a function and an arg as its first argumetn < 1225911983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you are probably right :) < 1225911985 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*a function as its first arg, an arg as its second < 1225911989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: try http://diveintopython.org/ < 1225911995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thank you < 1225912001 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it'll give the function /itself/ as an /argument/ < 1225912010 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1225912016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hopefully I don't have to code too much in this, I can't say I like the language, but there was no alternative < 1225912039 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :So, it basically runs itself by carrying the params < 1225912047 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :one of them is a function < 1225912052 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ais' version is basically it. if sii has a conditional recursion within it, e.g. if x = 0 ... else sii(sii,x-1) < 1225912055 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, lambda(f,x){f(f,x)}(lambda(b,a){lambda(x){...}(a); b(a-1)})(99) < 1225912059 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes < 1225912067 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all the information you need, you carry in params < 1225912070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What are you using it for? < 1225912074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if a function needs to loop, it needs to call itself < 1225912077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it needs itself as a param < 1225912089 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(and the ... prints out one line of bottle of beer) < 1225912096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there is the bot framework pywikipediabot, I needed to code a custom wikipedia bot to use on a wiki I edit < 1225912106 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225912109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There are bot frameworks for other langs < 1225912118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But Python is good, so. :p < 1225912121 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I understand < 1225912135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah but I already use several scripts for pywikipediabot, changing wouldn't be that easy. < 1225912144 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, that's basically a high-level language using lambda calculus for control flow < 1225912149 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda is very low-level, though < 1225912158 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so there are several changes that need to be made < 1225912166 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :first, Unlambda doesn't allow functions with more than one arg < 1225912169 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but there's a trick to get around that < 1225912173 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :ok guys < 1225912180 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :im off to my syntax seminar < 1225912181 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :see ya < 1225912182 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Make the one arg two args combined? < 1225912183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :consider this trivial function: lambda (a,b) {a+b} < 1225912186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and bye psygnisfive < 1225912193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: that might work, but there's a cleverer way < 1225912203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :remember you can generate functions from templates? < 1225912208 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Huh... yes < 1225912218 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I can change lambda (a,b) {a+b} to lambda(a) { lambda(b) {a+b} } < 1225912222 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :multiple arguments are abstract anyway you know. < 1225912233 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :lambda(a,b) is as good as what ais just said < 1225912233 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :say I call that function with the arg 2 < 1225912245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: yes, I'm trying to explain why though < 1225912246 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :or as good as lambda(c) where c = < 1225912250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: shut up < 1225912254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523 is trying to explain the basics < 1225912254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to asiekierka < 1225912257 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :or any other shit like that. < 1225912259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then, I get lambda(b) {2+b} < 1225912260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're just adding confusion on to that. < 1225912266 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :good :D < 1225912266 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1225912278 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :and let's say b is five < 1225912283 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :so the result is 2+5=7 < 1225912290 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then if we give 5 to the resulting function, we get 7 < 1225912305 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Ok < 1225912314 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :instead of calling it as (lambda (a,b) {a+b})(2,5) with 2 args, it's called as (lambda(a) { lambda(b) {a+b} })(2)(5) < 1225912317 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225912335 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits for asiekierka's connection to fix itself < 1225912388 0 :asiekierka!n=asiekier@89.108.200.4 JOIN :#esoteric < 1225912392 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :..What did i miss < 1225912400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : instead of calling it as (lambda (a,b) {a+b})(2,5) with 2 args, it's called as (lambda(a) { lambda(b) {a+b} })(2)(5) < 1225912401 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I stopped on I see < 1225912411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I stopped once I noticed you leave < 1225912411 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Ok < 1225912420 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so what we have here is a function which returns a function < 1225912435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you give it the first arg, it returns a function that takes the second arg and gives you the result < 1225912446 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1225912447 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :btw, Haskell is based on that principle, as well as a few others, it's called "currying" < 1225912478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: note that this means that you can't have variable-argument functions < 1225912486 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unless you can tell when you have the last arg < 1225912487 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, in Unlambda you don't have a semicolon operator or anything like that to combine statements < 1225912490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e.g. if you have to give it a DONE arg < 1225912495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it can return the final func or itself < 1225912504 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: a bit advanced, but correct < 1225912504 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1225912513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is just to make it more annoying I think < 1225912517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i tried to say it simply :p < 1225912522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in Unlambda, absolutely everything returns a result < 1225912531 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and things won't run until their result is available < 1225912536 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :even ".a"? < 1225912544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225912546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in Unlambda, everything takes one arg too < 1225912553 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even things that would normally take zero < 1225912554 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i've once been pondering using d as a special marker for variable-argument functions in unlambda < 1225912557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :.a prints a, and returns its arg < 1225912562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you are mad < 1225912569 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, a Hello World < 1225912571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wow < 1225912573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1225912579 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :.h.e.l.l.o.w.o.r.l.dr? < 1225912593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: needs ` < 1225912594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not quite, you need to apply the functions in the right order < 1225912597 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't do funcarg < 1225912601 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to do `funcarg < 1225912606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yes, what ais523 said too < 1225912632 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :``````````.h.e.l.l.o.w.o.r.l.dr? < 1225912643 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ehird: in my interpreter i instead used an explicit argument count (since you need to count the right number of `s anyhow), but an ending d should have been possible < 1225912644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :`r`.d`.l`.r`.o`.w`.o`.l`.l`.e`.hi < 1225912653 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in order to run r, it has to calculate its argument first < 1225912664 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :The other way also works, but is utterly stupid < 1225912667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is .d applied to something, it has to calculate /its/ argument first < 1225912668 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1225912673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :until you end up with `.hi < 1225912676 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which prints h and returns i < 1225912679 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :What's i? < 1225912687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :identity < 1225912688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :identity function, I could have put anything there < 1225912689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :`ix = x < 1225912695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just a placeholder as I need to give the function some argument < 1225912718 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whereas your program prints hlloworld\n < 1225912744 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whoops, no it doesn't < 1225912747 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Tested in the original unlambda interpreter < 1225912747 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :v2 < 1225912749 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :helloworld\n < 1225912750 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it prints helloworld without the final newline < 1225912759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit complicated how though < 1225912763 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: < 1225912764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it first prints h and returns .e < 1225912766 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :``````````.h.e.l.l.o.w.o.r.l.d`ri < 1225912767 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should work < 1225912768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think < 1225912769 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Or < 1225912775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then that .e prints e and returns .l < 1225912777 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :```````````.h.e.l.l.o.w.o.r.l.dri < 1225912780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225912781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225912784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1225912784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that works < 1225912784 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1225912790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so yes, ```````````.h.e.l.l.o.w.o.r.l.dri should work < 1225912807 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Okay < 1225912809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :each letter prints itself then returns the next letter, which is then run with the letter after that as its arg and so on < 1225912809 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :i got this around < 1225912823 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's more complicated than my version, but has the advantage of running forwards in the source < 1225912840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, the major feature of Unlambda is that despite being based on lambda calculus, it doesn't actually have lambdas < 1225912841 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :sadly, brb < 1225912847 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :[[going off for a sec]] < 1225912850 0 :asiekierka!unknown@unknown.invalid NICK :asie[away] < 1225912851 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and ok, I'll wait for you to come back < 1225912993 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: variable argument functions in unlambda is not mad(der than the rest of the language), it's in fact the only way to get really compact lists < 1225912995 0 :asie[away]!unknown@unknown.invalid NICK :asiekierka < 1225912996 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :back < 1225912998 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's cause it's based on combinatory logic, not lambda calculus < 1225912999 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :you may continue < 1225913020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it makes sense in the context of Unlambda, just not on any other level < 1225913031 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: basically, you have three functions s k i < 1225913034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which are predefined < 1225913037 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1225913040 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :i is the placeholder < 1225913041 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and which you can generate any lambda function out of < 1225913044 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Now what's the k and the s? < 1225913048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i is very simple, it's lambda(x) {x} < 1225913069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and instead of just saying what k and s are, it's probably easier to explain where they come from < 1225913075 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225913093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :suppose you have lambda(x) { lambda(y) { x(y) } } < 1225913104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you want to get rid of the lambdas < 1225913109 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225913131 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me think a moment... < 1225913165 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the x in the inside isn't affected by the value of y at all < 1225913178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if we want to write it as a function of y, it would be lambda(y) {x} < 1225913193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the y is irrelevant here, and quite a lot of the time in Unlambda you need a way to get functions like that < 1225913198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's where k comes in < 1225913209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :k(x) returns a function which always returns x no matter what its argument < 1225913213 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225913215 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so k(x) = lambda(y) {x} < 1225913231 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now, y as a function of y is also very easy < 1225913238 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's lambda(y) {y} which is i < 1225913268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so, what's x(y) as a function of y? it's lambda(y) {x(y)} obviously, but Unlambda doesn't let you use lambdas < 1225913281 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is where s comes in < 1225913283 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1225913302 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s(a)(b)(y) is (a(y))(b(y)) < 1225913317 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in other words, suppose we need to calculate x(y) < 1225913332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and we have both x and y as functions of y, which we do < 1225913338 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :x as a function of y is k(x), y as a function of y is i < 1225913344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I can do s(k(x))(i)(y) < 1225913358 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :So it'll do both x(y) and y(y) < 1225913364 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And output their result as the final result < 1225913364 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1225913373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it'll do k(x)(y) and i(y), and apply one to the other < 1225913377 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :k(x)(y) is x < 1225913379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i(y) is y < 1225913383 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :xy? < 1225913383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the output is x(y) < 1225913388 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1225913405 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :so, anything else? < 1225913410 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if s(k(x))(i)(y) is x(y), then s(k(x))(i) must be lambda(y) {x(y)} < 1225913417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that's got rid of one of our lambdas < 1225913421 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1225913436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in Unlambda notation, btw, this would be ``s`kxi < 1225913442 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1225913443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where x isn't unlambda at all < 1225913454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to get rid of the other one, we can follow the same rules again < 1225913461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which I haven't stated yet, but implied < 1225913466 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a mechanical way you can change things... < 1225913471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :` changes to ``s < 1225913480 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225913493 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :f changes to `kf for any f which doesn't involve the thing we're lambdaing < 1225913498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the thing we are lambdaing changes to i < 1225913519 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1225913519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so ``s`kxi changes to ``s``s`ks``s`kki`ki < 1225913539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is how you write lambda(x) { lambda(y) { x(y) } } in Unlambda < 1225913549 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :...oh GOD < 1225913557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is actually enough information to be able to write Unlambda programs, most of them are just compiled directly like that < 1225913567 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :...scary, but neat < 1225913579 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :generally speaking, Unlambda's described as not all that hard to write if you know what you're doing (due to that transformation), but basically impossible to read < 1225913599 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1225913607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda has a few other operators just to make things a lot harder < 1225913619 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :d and c in v1 < 1225913623 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And some other in v2 < 1225913624 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's c, which gives imperative programmers nightmares, and d, which gives functional programmers nightmares < 1225913624 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1225913631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes, but v2 is just to allow I/O < 1225913641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also v, but that's just shorthand and not particularly interesting < 1225913652 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ais523: btw, do you want v2 original interpreter's EXE? < 1225913664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(by the way, i can be written as ``skk but that's more coincidence than anything particularly interesting IMO) < 1225913682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: ais523 uses linux < 1225913683 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: I run Linux not Windows, I could run it but there wouldn't be much point < 1225913683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mostly < 1225913692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so do most people in here :p < 1225913692 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :(useful for obfuscation... if anyone would ever want to do it) < 1225913695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides I think I have the V2 interpreter < 1225913705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the Linux version, though < 1225913709 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not sure if it's the original < 1225913723 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :and i have the Windows version; compiled by Cygwin; with the garbage collector < 1225913728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the ``skk trick mostly impresses people who like to get the number of commands down < 1225913739 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, I can't run Cygwin executables here, it doesn't play well with Wine < 1225913745 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1225913779 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Which part of hell do you want: the d part or the c part? {{unlambda commands}} < 1225913779 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think ``skk is ugly < 1225913792 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i is clearly more basic than s < 1225913797 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lament: so do I < 1225913803 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so i deserves to be a builtin < 1225913804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: c is neat, elegant, and basically impossible to explain < 1225913805 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :d is not strictly necessary, while c is necessary for I/O < 1225913812 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and therefore your builtins aren't orthogonal < 1225913815 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ugly :( < 1225913817 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Oh < 1225913820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: c is only necessary for I/O because the I/O model is stupid < 1225913833 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :So who wants to go to the c part of hell < 1225913852 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not the I/O model per se, but the choice of booleans < 1225913852 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: I'll try to explain c in one line, then everyone who doesn't know what it does already can go wtf < 1225913861 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and i think of it as evil, not stupid < 1225913882 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so more like Obama than Bush < 1225913885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and one of the best decisions < 1225913909 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you call c with an argument, then it runs the argument but gives it an argument which is a magical construct called a continuation, and if the continuation ever gets run it goes back in time to when c was called and returns the argument given to the continuation from c, rather than running c's argument < 1225913931 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :... I have this urge to go wtf < 1225913939 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :But i'll try to understand it < 1225913955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ok, it's an esolang, deliberately choosing a choice of booleans that need something as crazy as c to work with is very eso < 1225913974 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: I'll help you along < 1225913987 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225913998 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it helps slightly if you imagine c as Unlambda's version of goto, it completely messes up the control flow mechanism < 1225914020 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, if you call a function, it can return normally < 1225914032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but in imperative languages, you normally have a return statement that lets you break out of the middle of a function < 1225914045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda doesn't have a return statement to break out of functions directly < 1225914048 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I think `ci = `ci(`*i) = `i(`*i) = a deliberate pile of nothingness, huh? < 1225914051 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but c lets you generate such statements < 1225914125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so in an awful mix of notations and paradigms, suppose I do `c lambda(r) {while(true){print "press q to quit\n"; if(getkey()=='q') r(0); }} < 1225914151 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's pretty clear here that c is being used to generate a return statement, r in this case < 1225914172 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the place you put the c allows you to choose which function to return from < 1225914179 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Did i work with c right, in my example? < 1225914188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not certain I understand your notation < 1225914206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: its standard... < 1225914212 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :(`*i) is the Esolangs wiki's continuation notation < 1225914215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(...) = continuation with * = the thing pased to the continuationn < 1225914216 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Unlambda's website uses < 1225914218 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1225914239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I never really tried to get my head around notations for imagining continuations, I find them much easier to imagine than to write down < 1225914289 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :I prefer analyzing how I think it does it, and then comparing it with how it works < 1225914312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1225914347 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And fixing my thinking patterns < 1225914379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :`ci returns a continuation which returns the continuation's argument instead of the continuation < 1225914402 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :...pain < 1225914438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the main problematicness in continuation-related thinking processes is the go-back-in-time thing (btw, I'm planning to use them for Feather, they're the perfect choice for it) < 1225914866 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :No, i did some stuff wrong < 1225914880 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :``cii - ``i(`*i)i - `(`*i)i - `ii - ` < 1225914885 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :... - i < 1225914886 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1225914893 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :not ... - ` < 1225914895 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but ... - 1 < 1225914897 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :er < 1225914902 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but ... - i < 1225914993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, that looks right < 1225915130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unlambda? < 1225915134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1225915135 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :mmhm < 1225915147 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Now i'm trying to learn c < 1225915151 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think asiekierka's beginning to see why I said c was basically impossible to explain < 1225915308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, eh? < 1225915318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what has C got to do with unlambda? < 1225915336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: c the Unlambda command, not C the language < 1225915340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225915352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is C "get current continuation"? < 1225915384 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | there's c, which gives imperative programmers nightmares, and d, which gives functional programmers nightmares < 1225915385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1225915385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :c < 1225915398 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's call with current continuation, almost the same < 1225915405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :`ci would be get current continuation < 1225915407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah just call/cc < 1225915421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I don't understand call/cc but I'm beginning to < 1225915424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after several weeks < 1225915425 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :`ci = ii < 1225915428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with scheme < 1225915428 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :`cr = rr < 1225915437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also what is d in the topic < 1225915440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not the language I guess? < 1225915446 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :it's unlambda chars < 1225915449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nope, the Unlambda command < 1225915458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and what does that d do? < 1225915461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it means something along the lines of "don't evaluate this yet" < 1225915480 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it causes something to be evaluated the next time its value becomes relevant, rather than immediately < 1225915498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :requesting lazy evaluation on a specific bit? < 1225915529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, or? < 1225915543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, it's like case-by-case lazy evaluatoino < 1225915546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*evaluation < 1225915561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but considering that d can be passed around as a function argument just like anything else in Unlambda, it causes absolute chaos < 1225915600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I can see that < 1225915601 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225915607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't actually sound hard to understand < 1225915616 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it's probably easier to understand than c < 1225915620 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :much harder to /use/, though < 1225915622 0 :asiekierka!n=asiekier@89.108.200.4 JOIN :#esoteric < 1225915643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes... how would it be used? < 1225915662 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :normally to make side effects happen later rather than now, it shortens the program a lot < 1225915674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225915695 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: actually `ci = `i(*) = (*) < 1225915697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you have to put in lots of ``s`kk stuff in order to cause the command that would cause the side effect to be constructed at the last moment rather than running earlier < 1225915716 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Is there any other worthwhile esolang than befunge, brainf**k, piet, underload and unlambda? < 1225915726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lots < 1225915736 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :as in, really worthwhile and popular < 1225915739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not many < 1225915744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, popular is irrelevant < 1225915745 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Does DOBELA count? < 1225915781 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1225915789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :doebla isn't popular afaik? < 1225915803 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1225915804 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :it's not < 1225915809 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but is it worthwhile < 1225915866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1225915867 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1225915869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :boolfuck? < 1225915871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rube? < 1225915874 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1225915875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RUBE* < 1225915887 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, ok < 1225915892 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :is DOBELA worthwhile? < 1225915901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooooooooooooooooooooooooooo < 1225915908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no clue < 1225915926 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Check it out < 1225915963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :HQ9+ < 1225915967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not really < 1225915973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :famous yes < 1225915975 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :HQ9+ is worthwhile < 1225915980 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :only it's worthwhile for 5 seconds < 1225915980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka, famous though < 1225915981 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :no more < 1225915981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :most of the interesting ones are incredibly hard to program in. < 1225915992 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :And the 5 seconds is the time it takes from clicking the link to showing the page < 1225916007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka, Banana Scheme < 1225916017 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Whoa. < 1225916018 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fis@eris:~/src/jitfunge$ build/jitfunge test.b98 < 1225916018 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1225916028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, now that looks cool < 1225916030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :got a link? < 1225916041 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :^show < 1225916041 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help < 1225916046 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :^help < 1225916046 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^bool < 1225916047 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not yet; it's very unportable code at-the-moment. When I get fungot running on it, I'll put it up. < 1225916047 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so to a point they are working on a distributed dialect of scheme :p ( and that ork interpreter written in qt < 1225916060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, JIT to native code? < 1225916066 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, ia32. < 1225916076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why not use llvm to make it portable? < 1225916079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also how does it do it < 1225916083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mmap and mprotect? < 1225916093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc that is the only portable way to run code like that < 1225916101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE < 1225916102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE PORTABLE < 1225916103 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, mmap with PROT_READ|PROT_WRITE|PROT_EXEC. < 1225916108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah right < 1225916152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: is it based on any code? < 1225916154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or is it a new impl < 1225916162 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Completely from scratch. < 1225916167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1225916167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Cool. < 1225916184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'd like to help but I dunno how I could. < 1225916190 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Q: Is an infiniloop possible in Unlambda? < 1225916194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same I could probably not do it < 1225916201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I assume it's not at the level of implementing fingerprints yet? < 1225916204 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd be good at that. < 1225916210 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The stack is done (well, will be done, if I can manage) by mmaping some memory for it, then catching the SIGSEGV, mangling some registers around, then restoring the context. < 1225916212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka, should be using continuations < 1225916242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh god gracious < 1225916259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's "good" < 1225916264 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hey, no explicit underflow/overflow checks. < 1225916268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how do you know you didn't catch the sigsegv from something else? < 1225916275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean like a real bug < 1225916276 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :From the address it gives me. < 1225916279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by setting a flag? < 1225916301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what about pop on empty stack then? < 1225916305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and stackstack? < 1225916338 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, that's just a read below the current stack; I just need to set a suitable register to zero, add +4 to the funge-stack pointer reg, and restore the faulting context from the next instruction. < 1225916359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, assuming that is you go for a full blown befunge-98 that is < 1225916361 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Stackstack will probably involve some copying around, though. < 1225916375 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There is an interface of sorts for fingerprints (all A..Z are mapped to distinct function calls) so that can be used for implementing fingerprints without having to touch the code-generation. < 1225916399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you did this on kernel level you could use memory mapping to implement stack stack < 1225916403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without copying around < 1225916404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1225916412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just messing with tlb < 1225916420 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I could probably use separate mmap ranges for the stack-stack substacks and simply swap some pointers. < 1225916444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah no you would still need copy on write < 1225916445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1225916466 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Currently I use eax/ebx/ecx/edx for the generated Funge-code, edi as a temporary for more complicated blocks (so far no branches yet! just conditional sets) and esi as the funge stack pointer. < 1225916485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so how far are you going to take this? Full blown mycology passing? t support? < 1225916507 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: why not ebp as the stack pointer? < 1225916508 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't see how I could do 't' with correct timing without completely losing the point. < 1225916509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what does t do? < 1225916513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that would be more usual... < 1225916518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or even esp if you want to live dangerously < 1225916534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but that would play badly with the rest of the code, I guess < 1225916538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: multithreads a Funge program < 1225916546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why would that be hard? < 1225916547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the threading's synchronous, like in INTERCAL < 1225916560 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus fizzie's "with correct timing" mention < 1225916562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also just an idea, wouldn't using something like llvm be useful here? < 1225916565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doing it with incorrect timing wouldn't be hard < 1225916576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it would abstract too much and prevent some of these hacks < 1225916627 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I do quite a lot of function calls from inside the generated code, so I'm trying to mostly obey the calling conventions; I guess ebp is sort-of needed for stack frames to make sense. < 1225916647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm passing on stack or in registers? < 1225916661 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :The ultimate Unlambda contest: Make a program that decides whether obama should win or mccain < 1225916666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you really want to go for speed then passing parameters in registers would be useful < 1225916680 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: nah, that's just printing a constant string < 1225916686 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, on stack, the normal cdecl style. For now, anyway. It's not too difficult to change later, probably. < 1225916688 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :Nonono < 1225916692 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :but it must decide by itself < 1225916708 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, Obama already won... < 1225916711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1225916711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: yes < 1225916712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka, ^ < 1225916714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if True: < 1225916717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print 'Obama' < 1225916718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :else: < 1225916720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : print 'Ron Paul' < 1225916731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ works it out for itself < 1225916733 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :... i hate you < 1225916734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1225916736 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using boolean logic. < 1225916739 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :But i mean < 1225916750 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and I haven't done register-spilling at all yet, so it currently crashes badly if some piece of code needs more registers. That shouldn't be *too* hard, though. < 1225916757 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :if the election was meant to be calculated only with computers that can only run unlambda < 1225916761 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: ```sii``sii to your earlier question < 1225916774 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ha, you came up with the same answer as me < 1225916775 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asiekierka: i don't think that the election is decided by AIs deciding who should be president < 1225916779 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure llvm would have been an interesting idea, but since I started writing x86 code-generating code already... < 1225916796 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the only params you get is the number of votes < 1225916801 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :in unary numbers < 1225916813 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :so, if 1 person voted on mccain and 3 on obama < 1225916814 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :you get < 1225916816 0 :asiekierka!unknown@unknown.invalid PRIVMSG #esoteric :xxx|x < 1225916821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm... is the whole thing ASM? < 1225916827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: unlambda < 1225916837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, this jit I mean... < 1225916845 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :unlikely. < 1225916847 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm betting c < 1225916847 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's C++ mostly, except that of course the code-generation uses assembly. < 1225916849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or c++ < 1225916855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1225916859 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What I think is funky is that the "hello" thing I pasted was the absolute first time I tried to actually run the code I generated; it very very very much surprised me when it actually worked. < 1225916864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how far does it get in mycology? < 1225916871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :assuming it pass sanity at all < 1225916885 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: dude < 1225916887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he's evidently just started workinnnng on it < 1225916891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1225916896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i imagine it can't do anything more than hello world or maybe hq9+ < 1225916896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm still interested < 1225916909 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Er, probably nowhere right now. Of course I could run it; but I expect a segfault or something. < 1225916921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, right < 1225916927 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it came up as one of the main cases in the 0x29A functional subset < 1225916943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what did? < 1225916950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, still you should publish your code IMO, {insert rant about the cathedral vs. the bazaar} < 1225916967 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :{insert rant about how AnMaster should shut up} < 1225916971 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Segfault: ooh, I'm clairvoyant. < 1225916972 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ```sii``sii, well in disguise < 1225916984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :{insert rant about rants} < 1225916985 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :3200 lines of C++ already, heh. < 1225916994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how much of that is ASM stuff? < 1225917003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean outputting asm < 1225917050 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Welll... most of codegen.cc (1400 lines) is at least very closely related. < 1225917067 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how will it handle self modification? < 1225917081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's jit < 1225917084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just modify the generated code < 1225917091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes but how exactly < 1225917095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1225917097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by writing to it? < 1225917122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, you need to store two versions < 1225917124 0 :asiekierka!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225917125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in case g is used < 1225917133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no you don't < 1225917138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just convert the machine code back to real code < 1225917150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you generate it in a predefined pattern, not hard to do a quick check then extract the params < 1225917154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and then see what that means < 1225917167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as it is jitting you would probably generate optimised linear code < 1225917174 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that will be very trivial, since it constant-folds things like 88*:* into a single constant. < 1225917186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: well, that'd be a problem < 1225917186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1225917188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just store the playfield somewhere separate for the purpose of g and p < 1225917191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yeah < 1225917196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then when p happens, recompile that bit < 1225917198 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But I do keep a separate data-space, I just generate snippets of code hooked into (pos, delta) pairs. < 1225917202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"that bit" is fizzie's problem < 1225917203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1225917205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, see that was what I said < 1225917211 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and? < 1225917219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my point exactly < 1225917219 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So p just needs to remove those snippets that happen to be there. < 1225917247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gee AnMaster said something vague and meaningless, he sure showed me < 1225917249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, nice < 1225917297 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The interpreter main loop works so that if it doesn't find code to execute starting from the current (pos, delta), it traces up to next @, |, _, w, or a snippet of existing code (and constant-folds and optimizes a bit already there), then converts that code into a native code function and calls that. < 1225917312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gee ehird can't gets angry again because of his own blown up ego < 1225917321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/can't / < 1225917353 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225917372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm interesting < 1225917390 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225917429 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If it happens (fortuitously) hit the entry-point of an existing snippet, it adds a link there; otherwise it erases the old snippet and starts a new right there. I'm hoping that when I run this on some code, it'll basically end up finding the basic blocks and generating separate functions for those. < 1225917442 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I'd really like to play around with it a bit already, I realise it is very incomplete and so on, but still < 1225917499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, another idea, you could special case some common patterns such as >:#,_@ < 1225917594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines a book called "Befunge Design patterns" < 1225917596 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. There's also a lot of optimization opportunities in the generated code. < 1225917612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah there llvm would really have helped < 1225917662 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a tarball at http://zem.fi/~fis/jitfunge-export.tar.gz but don't expect anything actually working, or any support whatsoever, or even that it'd work on a non-Linux box; I think there's a mremap call in there, I'm not sure how well-supported that is. (Easy to eliminate, though.) < 1225917687 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There are a couple of known memory leaks, too; the part which manages the mmap pages for the functions doesn't really do much memory management. < 1225917725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scons? hm < 1225917730 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The functions can't really be moved at will because of some PC-relative addressing in the call instructions; it would need some relocations for that.) < 1225917744 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can probably compile it with just a single g++ command, though. < 1225917787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, any special cflags needed? < 1225917789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :apart from -m32 < 1225917801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :g++ -o build/parser.o -c -m32 -Wall -Werror -ggdb3 src/parser.cc < 1225917801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cc1plus: warnings being treated as errors < 1225917801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/parser.cc: In constructor 'jitfunge::Trace_impl::opargs::opargs()': < 1225917801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/parser.cc:18: warning: array subscript has type 'char' < 1225917802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oops? < 1225917811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc 4.1.2 btw < 1225917814 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1225917830 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Curious warning; I don't get that one. < 1225917837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, maybe different gcc version < 1225917837 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's obviously correct, though. < 1225917845 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :4.3.2 here. < 1225917849 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1225917853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CFLAGS="-march=k8 -msse3 -m32 -O2 -pipe" CXXFLAGS="-march=k8 -msse3 -m32 -O2 -pipe" scons < 1225917856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was my command < 1225917863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems it ignored the cflags < 1225917884 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225917933 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I think there's some explicit scons command for picking up that stuff from the environment. < 1225917935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie also: scons: *** Source `src/tool.cc' not found, needed by target `build/tool.o'. Stop. < 1225917950 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I haven't added tool.cc in the svn, so svn export didn't catch it. < 1225917959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225917977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tell me when you got an updated version that fixes the tool.cc and the char thing < 1225917995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it also warned for line 19 20 21 22 23 and 24 in the same file < 1225917997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :again for char < 1225918008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and multiple times for each line < 1225918054 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I fixed that tarball there for the tool.cc thing, but not yet the char-array indexing. < 1225918095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm svn needs server side support? < 1225918103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh right it does < 1225918137 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. I do have a svn server here, though, but I think it's configured so that it only accepts HTTPS connections with client certificates. Haven't used it for anything public. < 1225918178 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225918194 0 :oklopol!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225918241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm what cpu do you generate for? < 1225918278 0 :kar8nga!n=kar8nga@k-188.vc-graz.ac.at JOIN :#esoteric < 1225918288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, i386? i686? < 1225918291 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Okay, the tarball now should have tool.cc and (int) casts for the array indices. < 1225918322 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Something like i686, although the only "fancy" opcode there is the conditional SET, which I think appeared around Pentium Pro. < 1225918330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1225918358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :jitfunge jittool < 1225918359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1225918365 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, the scons script should generate both jitfunge and jittool; the 'jitfunge' part is the interpreter (such at it is) but the jittool is maybe more interesting. < 1225918366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the difference? < 1225918390 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The jittool one takes file (plus optional four integers, x y dx dy) and generates + compiles a single trace, then dumps the generated code. < 1225918397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225918409 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Although the final stage of the dumping just calls "ndisasm -b 32 tmp.data" which you might not have in your path. < 1225918416 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(It's part of NASM.) < 1225918419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :91+"!dlrow olleH">:#,_@ < 1225918425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, any idea why that segfaults? < 1225918431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what did your hello look like? < 1225918435 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Stack underflow, maybe? < 1225918444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh that segfaults? < 1225918446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1225918451 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, because I haven't done the stack part yet. :p < 1225918467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, adding a 0 at the start didn't help < 1225918475 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My hello looked like a"olleh",,,,,,0@ :p < 1225918489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Program received signal SIGSEGV, Segmentation fault. < 1225918489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :0xf7f48012 in ?? () < 1225918489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) bt < 1225918489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#0 0xf7f48012 in ?? () < 1225918489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#1 0x49811ca0 in ?? () from /lib/ld-linux.so.2 < 1225918490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#2 0xffa42b98 in ?? () < 1225918492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#3 0x08054749 in jitfunge::AsmFunction::operator() (this=0x841b058) at src/codegen.hh:274 < 1225918496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :doesn't tell me anything < 1225918503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also: Backtrace stopped: frame did not save the PC < 1225918513 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's inside some generated code all right. < 1225918531 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The 0 there in my hello is because @ -- despite what the spec says -- also pops a single value to use as the exit code at the moment.) < 1225918546 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll work on portability when I get it to work at all first. :p < 1225918576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why is the 0 needed in front of that @ in your code? < 1225918581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :@ doesn't take any arguments < 1225918583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :q does < 1225918604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225918614 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My @ and q map to the same thing. Work-in-progress.... < 1225918620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders about current lag spike < 1225918628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think I may need to restart router < 1225918662 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, anything using stack segfaults currently, since I haven't even initialized the stack pointer. :p < 1225918681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: what in Befunge doesn't use the stack? Not a lot, surely? < 1225918711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how comes your hello worked then? < 1225918714 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :a"olleh",,,,,,0@ doesn't "use the stack" because it's all constants, so it gets turned into "set eax to character, push eax, call writechr". < 1225918721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225918776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that program must be seriously hard to debug < 1225918788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also what is your goal? < 1225918791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uttermost speed? < 1225918794 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :World domination. < 1225918799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1225918805 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not quite sure how that will follow, but I'm still working on it. < 1225918827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well do you aim for speed with it? < 1225918833 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Speed, I guess. And complete Funge-98 enough so that fungot runs on it. < 1225918833 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: undefined variable ' f' called within it. how in the world who don't spend all time merging a custom xml format have less expertise. < 1225918844 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, because I'm well aware this will beat anything, including cfunge < 1225918850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm not mycology? < 1225918866 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Mycology within limits. I'm not sure what all it tests. < 1225918882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it tests core, and optionally any fingerprints < 1225918886 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The 't' thing is something I'm not going to do, and neither will I do trefunge probably. < 1225918892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course it just tells you fingerprint foo couldn't be loaded < 1225918897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or "y says t isn't supported" < 1225918904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and mycology doesn't test trefunge < 1225918909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and nor does cfunge support trefunge < 1225918950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, does it compile with anything but gcc btw? < 1225918968 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's no obvious gcc-isms, at least. < 1225919001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well scons seems to ignore both CC and CFLAGS < 1225919009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and CXX and CXXFLAGS < 1225919011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I will probably start testing with mycology when I get some real code to run. Although I think I'll take the rest of the evening as a break. < 1225919030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, :) < 1225919039 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :...rest of the evening? < 1225919043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bak < 1225919048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, it's only 23 < 1225919057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: scons: *** Do not know how to make target `clean'. Stop. < 1225919059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1225919067 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's "scons -c". < 1225919073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : gee ehird can't gets angry again because of his own blown up ego < 1225919083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't know where this imagined ego of mine comes from. < 1225919084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :care to enlighten? < 1225919111 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :e-hird, e-go, nuff said < 1225919112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway any idea how to get scons to read the env vars? < 1225919136 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll fix the SConstruct file to do that. < 1225919181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also it is CXXFLAGS I guess? < 1225919216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least that is what autotools and everything else use < 1225919634 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225919651 0 :oklopol!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225919690 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, the tarball in there now has a SConstruct file which lets you override CXXFLAGS and CXX (the C++ compiler used). < 1225919723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: gonna test on os x < 1225919733 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Heh, good luck with that. :p < 1225919739 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>:D < 1225919756 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The mremap call won't be there, at least. I'll do a workaround for that at some point. < 1225919767 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It isn't really needed, anyway. < 1225919912 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My only OS X computer is a powerpc, so I probably won't really be testing with that. < 1225920072 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225920221 0 :oklokok!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225920273 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225921669 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fis@eris:~/src/jitfunge$ cat test.b98 < 1225921669 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :0a"!dlrow ,olleH">:#,_@ < 1225921669 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fis@eris:~/src/jitfunge$ build/jitfunge test.b98 < 1225921669 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hello, world! < 1225921690 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Still doesn't handle stack underflow, but at least the stack is there. < 1225921702 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also chased around a couple of very mysterious bugs. < 1225921712 0 :jix!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1225921773 0 :jix!n=jix@dyndsl-095-033-104-191.ewe-ip-backbone.de JOIN :#esoteric < 1225921833 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For reference, the >:#,_ loop is translated into something like: mov esi, [stack_top]; std; lodsd; push eax; call writechr; add esp, 4; mov eax, [esi]; test eax, eax; mov eax, 0; setnz al; mov [stack_top], esi; < 1225921889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: buildin' on os tenpoop < 1225921894 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(After which control returns from the generated code back into the interpreter, which will use the eax value to decide whether to call the same piece of code again or to proceed to the left.) < 1225921894 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :olol < 1225921897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :5 page c++ error < 1225921905 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... Funging JIT? < 1225921908 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh yes, those are very pretty. < 1225921912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yes, befunge-98 jit < 1225921913 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wow. That's gorgeous. < 1225921918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's been done before, but only -93 < 1225921937 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not like jitfunge really does anything very -98y yet, though. < 1225921943 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Although the space is larger. < 1225921952 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Here is a paste you can do absolutely ntohing with: < 1225921972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: http://rafb.net/p/8raqXi81.html < 1225922069 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, there's the mremap error, that one's clear. I'm not sure I want to try reading that C++ one. < 1225922085 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not quite sure I'm using the C++ TR1 hash table right, anyway. < 1225922093 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Away for a time now. < 1225922182 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1225922191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, iirc you can't return from sigsegv handler right? < 1225922223 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes you can < 1225922236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well it would terminate you < 1225922238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what I meant < 1225922241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also an issue < 1225922243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: considering SBCL does it < 1225922249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and presumably jitfunge < 1225922250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you are wrong < 1225922254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ type llvm-g++ < 1225922254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :llvm-g++ is hashed (/home/arvid/local/llvm/bin/llvm-g++) < 1225922261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scons: Building targets ... < 1225922261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :llvm-g++ -o build/codegen.o -c -march=k8 -msse3 -m32 -O0 -ggdb3 -pipe src/codegen.cc < 1225922261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sh: llvm-g++: command not found < 1225922265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf :P < 1225922270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is in PATH < 1225922279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: iirc, scons doesn't inherit PATH < 1225922282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for an actual reason that i forget. < 1225922284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how silly < 1225922289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, it is justified < 1225922289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah there is a reason? < 1225922290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :strange < 1225922290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just forget how < 1225922291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1225922292 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1225922296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/how/why/ < 1225922298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well anyway < 1225922299 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think "scons 'PATH=$PATH'" < 1225922300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should do it < 1225922313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, didn't help < 1225922313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, "how it was justified" < 1225922323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: found it < 1225922339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://www.scons.org/faq.php#SS_4_3 < 1225922341 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The signal handler gets the ucontext_t struct as a third parameter when using the sigaction stuff, then I can (possibly, unportably) setcontext() back to it after manipulating it a bit. < 1225922358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, to be able to build here I would need to override LD too < 1225922370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and to be able to override the path < 1225922422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I see what it says but requiring end users to do that is just silly < 1225922427 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Feel free to edit the SConstruct, then. < 1225922442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: scons was designed in an environment for e.g. companies with a software project < 1225922453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok then it makes sense I guess < 1225922454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you were in one, presumably you would realise the advantage of fully repeatable builds anywhere < 1225922459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but yes, that sucks for end-users < 1225922474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes for internally using it in a company it makes sense < 1225922516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was used to compile doom3 < 1225922524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Doom3's Linux build system uses SCons. CC="ccache distcc g++-3.3" JOBS=8 rocks!" < 1225922532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225922534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so there they have an internally-distributed, presumably automated build process < 1225922542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1225922557 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it make sense for internally usage yes < 1225922560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I agreed < 1225922568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah. < 1225922569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but, not for end users < 1225922575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yse < 1225922576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*yes < 1225922606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION solves it by setting CXX to the full path < 1225922619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but yes it breaks when it tries to use ld < 1225922621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :makes sense < 1225922624 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so set LD? < 1225922629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it ignores it :) < 1225922649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eat it < 1225922653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION fixes the sconstruct file < 1225922660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm nop < 1225922662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't help < 1225922692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I tried to extend the same way that was already used < 1225922695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't work < 1225922712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/home/arvid/local/llvm/bin/llvm-g++ -o build/jitfunge -m32 -ggdb build/main.o build/codegen.o build/interp.o build/parser.o build/space.o < 1225922712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ld: skipping incompatible /home/arvid/local/llvm/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../lib/libstdc++.a when searching for -lstdc++ < 1225922712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ld: skipping incompatible /home/arvid/local/llvm/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../libstdc++.a when searching for -lstdc++ < 1225922712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/ld: cannot find -lstdc++ < 1225922714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :collect2: ld returned 1 exit status < 1225922723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it just works with both autotools and cmake < 1225922735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heck it usually just works with 99% of the plain makefiles too < 1225922752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not with scons < 1225922778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i can't use this program therefore the shitty things it tries to replace are superior < 1225922785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :autotools is not a total ugly hack, nope < 1225922792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is an uggly hack < 1225922795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I never said I liked it < 1225922796 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :scons is a bit peculiar with its habits, but I sort-of like it when doing build systems for myself; my DS development environment is done with it. < 1225922799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I said it works < 1225922804 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What does uggly mean? Really ugly? < 1225922805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was my point < 1225922809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, no, it really doesn't < 1225922815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, autotools sucks I fully agree < 1225922820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but at least it respects env variables < 1225922837 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, scons's name for the linker is 'LINK', not 'LD'. < 1225922839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can't figure out how to make scons respect LD < 1225922844 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ok.... < 1225922849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is again crazy < 1225922852 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1225922853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no it's not < 1225922859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ld is a certain linker < 1225922864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :LD=foo < 1225922868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1225922870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is incorrect < 1225922876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ld refers to a single linker product < 1225922882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there are others that are not lds but they are linkers < 1225922890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ld is not a generic term of linker < 1225922892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*for < 1225922898 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :LD=llvm-ld < 1225922900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in this case < 1225922905 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: in that case. < 1225922912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but what about LD=magic-corp-foobazing-linker? < 1225922912 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes it is an LD < 1225922919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :magic-corp-foobazing-linker is a linker, not an ld(1). < 1225922922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well that is how it is usually done < 1225922924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also < 1225922931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: usually done != the better option < 1225922933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ln -s llvm-ld magic-corp-foobazing-linker < 1225922936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Windows is what is usually used. < 1225922941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So why don't you use it? < 1225922944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok point taken < 1225922953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it might be a better name < 1225922974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :llvm-ld: Unknown command line argument '-m32'. Try: '/home/arvid/local/llvm/bin/llvm-ld --help' < 1225922975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :llvm-ld: Unknown command line argument '-ggdb'. Try: '/home/arvid/local/llvm/bin/llvm-ld --help' < 1225922976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225923009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1225923015 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure ld needs those flags, actually. < 1225923018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, LD is probably a better name for the env variable < 1225923024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it seems to require ld :p < 1225923027 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(It's LINKFLAGS where they come from.) < 1225923040 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes down AnMaster's name for future stalking < 1225923051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wut < 1225923053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1225923063 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not really a build system, it's just something that manages to compile it here. As I've mentioned a couple of times, it's just a tarball, not a distribution. < 1225923065 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because it's THERE < 1225923077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what is? < 1225923094 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"arvid", i presume < 1225923105 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, yes what about it? < 1225923110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could find it using google < 1225923113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1225923115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :arvid norlander < 1225923118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see: cfunge source. < 1225923123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see? it is public < 1225923127 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hee, now it can run mycology without segfaulting. < 1225923128 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :bah < 1225923155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i should try and look up AnMaster's phone number just to be creepy. < 1225923157 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://zem.fi/~fis/mycout.txt < 1225923159 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not very far, though. < 1225923163 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tosses his list of things to blackmail AnMaster for < 1225923166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, heh. sorry not listed < 1225923181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least not under my name < 1225923209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well 7! would be easy to fix < 1225923212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just implementing ! < 1225923220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and ! is kind of trivial < 1225923232 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have implemented !, but apparently not right. < 1225923240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok I take that back < 1225923245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :trivial when not done in ASM < 1225923251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it is logical not < 1225923252 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"7!. a, 0@" does print a 0 here, but that's not surprising, since it constant-folds that. < 1225923260 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I know what it is. < 1225923281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, wait constant folding is computed in a different way? < 1225923281 0 :oklopol!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225923293 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, sure, since it's the parser which does it. < 1225923300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm maybe constant fold based on first run? < 1225923304 0 :oklokok!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225923309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would make such stuff easier < 1225923345 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't really think so. The generated code with/without constant-folding is completely different, after all. < 1225923393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm ok < 1225923405 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :constant folding is usually good, but not in poker programs < 1225923407 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Curious, though. "700p00g!.a,0@" also prints out 0. It might be some other bug causing the mycology output, though. < 1225923427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, eh? pun detected but not understood < 1225923437 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :SO LOOK IT UP ALREADY :D < 1225923442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "fold" is something you can do in poker < 1225923450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, I don't plan to learn playing poker < 1225923455 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah < 1225923455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which causes you to lose the hand, but not lose any more money than you've already bet < 1225923459 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't play it either < 1225923472 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doing it constantly will cause you to lose eventually, although doing it sometimes is normally a good idae < 1225923473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*idea < 1225923479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but i know some basic rules < 1225923484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, tracing output dumping stack at each step? < 1225923488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or is that impossible? < 1225923540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how can you loose more money than you already bet? < 1225923546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :?! < 1225923551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: normally you have the choice of folding or betting mroe < 1225923553 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*more < 1225923564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah, so there is no "pass"? < 1225923564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if you don't fold, you have to bet more < 1225923568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1225923571 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there is sometimes but not usually < 1225923582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :such a strange game < 1225923590 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the whole point of poker strategy, you force your opponents to bet more, or to bluff them into folding < 1225923718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: src/interp.cc:19: warning: unused parameter 'location' < 1225923726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a lot more of those < 1225923734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/parser.cc:63: warning: missing initializer for member 'jitfunge::StackChange::flush' < 1225923735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/parser.cc:63: warning: missing initializer for member 'jitfunge::StackChange::in' < 1225923737 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a few more of those < 1225923747 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Is this with what compiler? < 1225923755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, gcc 4.1.2 < 1225923761 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ah. With some optimization flags? < 1225923761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-O2 -Wall < 1225923764 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1225923768 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Without -O2 it won't catch all that. < 1225923774 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Will fix at some point. < 1225923777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I also tried this: < 1225923778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : CXXFLAGS="-march=k8 -msse3 -m32 -O3 -Wall -Wextra -ftracer -fweb -frename-registers -ggdb3 -pipe" < 1225923779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1225923783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it is insane < 1225923852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but -ftracer is actually useful < 1225923932 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :-ftracer? < 1225923953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : -ftracer < 1225923953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Perform tail duplication to enlarge superblock size. This transformation simplifies the control flow of the function allowing other optimizations to < 1225923953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : do better job. < 1225923953 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, the mycology bug was a bug in some of the trivial optimizations I do; forgot to set one value, so it skipped one instruction that was actually necessary. < 1225923955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, < 1225923975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I tested it and for example it replaced something like: < 1225923988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :movp %al,%edx < 1225923998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mov %edx,%eax < 1225923999 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I know what tail duplication does < 1225924000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with a single one < 1225924013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember the details < 1225924015 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it didn't just do that, it changed the target of a goto too < 1225924032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm? < 1225924045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: say you have an if near the end of a function < 1225924045 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://zem.fi/~fis/mycout.txt ... does that "p doesn't modify space" test putting an instruction on the playfield? < 1225924052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yeah? < 1225924058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think I did in my test < 1225924058 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tail duplication makes two copies of the end of the function, one for each branch of the if < 1225924061 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and optimises them separately < 1225924071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes it helped a lot in the case I tried it < 1225924083 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my guess is mov %edx, %eax was a goto target without -ftracer so it couldn't be optimised out < 1225924102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oddly enough nothing else in the function changed < 1225924118 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :strange, are you sure that was -ftracer? < 1225924129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1225924154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I also used -fweb in both cases < 1225924159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and -frename-register < 1225924164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but < 1225924169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the only change was -ftracer < 1225924200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also when I later added some calls to __builtin_expect() I got it down to even less jumps < 1225924222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mostly conditional stores iirc < 1225924230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever they are called now again < 1225924242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(the function returned true or false < 1225924262 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: probably < 1225924288 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, then it's a "known issue". < 1225924343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, would it be hard to later port this program to another arch? < 1225924361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or is the low level code generation well enough abstracted? < 1225924378 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Nontrivial, but maybe not terribly hard. < 1225924413 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Abstraction, schmabstraction; at least almost all x86-specific code is in codegen.cc; too bad that one is almost half of the lines in the whole program. < 1225924598 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225924604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1225924626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how do you implement funge space? < 1225924634 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225924648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, static array for some given size I guess < 1225924653 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a static block of 64*64 cells (for coordinates 0..63) and a hashmap outside it. < 1225924663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, 64x64 hm, small < 1225924671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you will want a lot larger later on < 1225924676 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's a single compile-time constant to change. < 1225924683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, righta < 1225924684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right* < 1225924687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and an offset < 1225924736 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also, when the get/put coordinate arguments are constants (i.e. 00g, 00p) that are inside the static range, the generated code will do simple mov's to/from there. < 1225924768 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So those should be pretty much as fast as "variables". < 1225924777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225924791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you should probably be able to dynamically resize the static array < 1225924798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just re-generate the access code < 1225924811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you notice a lot of access in some area < 1225924904 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's a single "mov edi, staticspacestart" involved, but after that 11g is just mov eax, [edi+0x104] < 1225924987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how optimal is the generated machine code? < 1225924996 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Very pessimal. < 1225925002 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But not most pessimal. < 1225925003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a < 1225925005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah* < 1225925022 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, do you think it will beat a good interpreter compiled with a good compiler? < 1225925023 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It does stupid things, but not completely brainlessly idiotic things, at least in most cases. < 1225925064 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For some programs, certainly. No need to update position/delta, parse things like <>v^ at all, or even fetch instructions from the funge-space. < 1225925102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, true < 1225925103 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll do benchmarking when I get something non-trivial to work. I think I'll test with that underload interp first. < 1225925113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what about something like the game of life in it? < 1225925126 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I'm going to have to add a bit more non-portability to the mix for the "catch stack underflow by intercepting the page-fault" feature, since if I just use the portable form of mmap(), the page it gives me ends up right next to other stuff in the virtual address space, and reading below it will not cause segfault but just return random-ish fluff. < 1225925134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also I expect that you will do it on cfunge on an intel machine and using ICC < 1225925140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is about as optimal as you can get < 1225925150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and x86_64 ;P < 1225925156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure on x86 it may be slower < 1225925169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, i am reminded again why i ignored AnMaster < 1225925211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm so you need to map two pages after each other < 1225925224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and make one nonaccess using mprotect < 1225925225 0 :Judofyr!unknown@unknown.invalid QUIT : < 1225925236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that should work fairly portable for underflow < 1225925254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you would need fixed mappings I guess < 1225925283 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's the "trust your luck" scenario; there's nothing saying it should map things consecutively. I think I'll just use MMAP_FIXED, it's not *so* unportable. < 1225925302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I said fixed mappings < 1225925303 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Even though the man-pages complain about the discouragednessity of it. < 1225925323 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, well, with MMAP_FIXED I don't think I need anything below it. < 1225925334 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Non-mapped address spage should generate segfaults just fine. < 1225925338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what if some other mapping is created below < 1225925342 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1225925344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like trust your luck too < 1225925398 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Okay, maybe I could stick a guard page there. But the whole "let's use this address for the stack, it's probably not used" thing is a bit iffy. I don't think I'll start randomly trying multiple addresses or anything like that. < 1225925419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1225925428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ok what do you prefer? < 1225925456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh my system uses ASLR < 1225925519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I guess that explains why it complains about text relocations? < 1225925564 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think the ASLR implementations still have some specific ranges for the various types of memory areas. Don't know the details of those, though. < 1225925620 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll just stick the funge stack into 0x40000000 or something and hope it works. The whole system is quite a "hope it works" thing. But at least enlarging the stack should be easy then, just add more pages. < 1225925633 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Must sleeps now. < 1225925641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um < 1225925652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sleeps first! < 1225925652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1225925662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, cya < 1225925667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and really that is a bad idea < 1225925839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, fyi: < 1225925841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :v >a"u",,0@ < 1225925841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :>"a",0| < 1225925841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >a"d",,0@ < 1225925844 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the version I have < 1225925848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that prints aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa < 1225925903 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Prints "ad" here. < 1225925950 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Updated the tarball, you can probably just copy your fixed SConstruct over it. < 1225925975 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Still, probably won't make sense to do much bug-hunting just yet; there are a lot of 'em. < 1225926025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yep < 1225926029 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was just testing < 1225926065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ad here too now < 1225926092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, question: < 1225926101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you said p would just clear out code paths < 1225926112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but how does that work if a constant path bypasses it? < 1225926137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"hello world"0_ p < 1225926142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that p writes into hello world < 1225926145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something such < 1225926150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then next time you enter that < 1225926173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so my question is, how do you update in the middle of constant folded paths < 1225926179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without scanning everything < 1225926743 0 :Corun!unknown@unknown.invalid PART #esoteric :? < 1225927107 0 :mu!n=bob@adsl-155-100-173.btr.bellsouth.net JOIN :#esoteric < 1225927232 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1225927344 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The space-hashmap has (pos, delta) entries for all commands encountered when tracing the paths, so that can be used to notice when p is writing into something that has been visited when compiling. < 1225927394 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :When that happens, I just clear the whole compiled snippet, and it will get recompiled the next time (if ever) it is ran. < 1225927472 0 :omniscient_idiot!unknown@unknown.invalid QUIT :Nick collision from services. < 1225927477 0 :mu!unknown@unknown.invalid NICK :Omnisicient_Idio < 1225927480 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1225927484 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyhow, sleeping really now. < 1225927504 0 :omniscient_idiot!n=boa@adsl-155-100-173.btr.bellsouth.net JOIN :#esoteric < 1225927508 0 :Omnisicient_Idio!unknown@unknown.invalid PART #esoteric :? < 1225927523 0 :Jiminy_Cricket!unknown@unknown.invalid QUIT :Nick collision from services. < 1225927535 0 :Jiminy_Cricket!n=bob@adsl-155-100-173.btr.bellsouth.net JOIN :#esoteric < 1225928028 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1225928734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whoa I just got cfunge to compile using Open64