< 1240876954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1240876960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the default bounds are left=0 and right=0 < 1240876965 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and parsing only ever extends right < 1240876970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, shit < 1240876974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: how does this handle vertical? < 1240877681 0 :coolsner!unknown@unknown.invalid QUIT :"Leaving" < 1240877874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey oklopok < 1240877876 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you there? < 1240878311 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :poewijf < 1240878325 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :is there an alternative to answering < 1240878479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: NO. < 1240878484 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :well okay i am < 1240878488 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I am about to get you addicted to another pointless game. < 1240878493 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :noooo < 1240878502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: http://sebleedelisle.com/games/moonlander3d/ < 1240878506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :arrow keys + space < 1240878510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :land on the straight four lines < 1240878514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :repeat < 1240878606 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i used to play a 2d version of that when i was 6 < 1240878628 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :*1 < 1240878635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yarr < 1240878672 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :hmm i don't get it < 1240878681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: you have to land softly and straight < 1240878683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or you crash < 1240878694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: and you have to find a landing pad < 1240878701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're four straight lines, can't miss em < 1240878711 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i guess i just wasn't careful enough. < 1240878716 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1240878738 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :keep track of your score, it resets as soon as you crash < 1240878740 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i thought any straight line worked < 1240878744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so look at it before doing that :P < 1240879137 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Siglo XX. < 1240880041 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ehird: okay succeeded at first attempt < 1240880049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: that was a long first attempt < 1240880069 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :second too < 1240880077 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i watched an episode of american dad < 1240880077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :score? < 1240880094 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i had 100 fuel, and 200 perfect landing score < 1240880102 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :on second i didn't look < 1240880107 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :at fuel < 1240880112 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :but took about 20 seconds to land < 1240880129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'ma try < 1240880177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1240880182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i landed but failed :D < 1240880253 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :okay i have no idea how you see the score < 1240880254 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :but < 1240880260 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :i can land pretty much consistently < 1240880261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: "SCORE:" < 1240880263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :on the display < 1240880265 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :yeah that shows nothing < 1240880265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it goes up when you land < 1240880270 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :continuously < 1240880356 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :nope. < 1240880361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kay < 1240880420 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :okay i lost it. < 1240880956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :- < 1240880989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAA < 1240880992 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ghostlopol < 1240880995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okloghost < 1240881781 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooo < 1240881782 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooooo < 1240881783 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooooooo < 1240881784 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ooooooooooooooo < 1240881785 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :oooooooooooooooo < 1240881786 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :o < 1240881795 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :well umm i need to sleep now < 1240881798 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :you know what that means? < 1240881830 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nn < 1240881832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nn < 1240881833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :um < 1240881834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :y... < 1240881835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1240881851 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :you shouldn't it's bad for you < 1240881903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1240881906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like drugs? < 1240881997 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :something like that < 1240882005 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1240882009 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :are you trying to trick me < 1240882017 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :into levitation < 1240882056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :um < 1240882059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: well yes... < 1240882064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was hoping once you did it would be ok... < 1240882065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1240882066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1240882162 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :be it a twofold glio, but i cannot agree to that. < 1240882193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: but can the glio be of the folding? < 1240882200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the fixed point glio conservative lawyering < 1240882206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that uses levitation, see < 1240882234 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense < 1240882236 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :speak english < 1240882313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopok: but... < 1240882313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1240882315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1240882319 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"twofold glio" you say < 1240882323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that's a folded glio under twice < 1240882329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, if we say infinite-fold glio < 1240882337 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and unfold it, that's a fixed point glio < 1240882349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, we can apply glio to conservative lawyering -- well known to involve levitation -- < 1240882354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and derive a proof of levitation < 1240882361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see? < 1240882362 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240882366 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1240882373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so what i'm saying is, basically it's a proof that levitation is good < 1240882374 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :rather obvious when you think about it < 1240882401 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :..a bit too obvious < 1240882402 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1240882408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well i dunno < 1240882411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :those infinite glios are elegant < 1240882479 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :okay mister, i'm going to sleep now < 1240882483 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :and have a dream < 1240882496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1240882498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do levitate! < 1240882508 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :it's not about that < 1240882586 0 :oklopok!unknown@unknown.invalid PRIVMSG #esoteric :-------> < 1240883228 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote closed the connection < 1240885444 0 :Dewio!unknown@unknown.invalid NICK :Dewi < 1240885473 0 :bsmntbombdood_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240885752 0 :bsmntbombdood_!n=gavin@97-118-134-159.hlrn.qwest.net JOIN :#esoteric < 1240886483 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :coppro: So, is there a reason you named yourself "shit"? < 1240886508 0 :bsmntbombdood_!unknown@unknown.invalid NICK :bsmntbombdood < 1240886508 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Modulo an extra 'p') < 1240886509 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sets the counter of people who misread his name to 4 < 1240886533 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I didn't misread it, but if I named myself "crapp" people wouldn't say "Oh, that clearly has no relation to the word 'crap'" < 1240886583 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :and no, no particular reason :P < 1240886590 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(Even if my name was Crap Partridge) < 1240886688 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I remember there was somebody on here a while ago called sekmet (sekhmet? Sekkmet? Something like that). Because I recognized "met" as Ancient Egyptian for penis I looked up his name in Ancient Egyptian, and although I couldn't find a way of reading it that included "penis" it is sekem -et, which means "grey haired woman" < 1240886710 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :By the way, don't ask me why I know the ancient Egyptian word for penis ... < 1240887397 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1240887613 0 :psygnisfive!unknown@unknown.invalid QUIT :"Leaving..." < 1240887888 0 :Gracenotes!n=person@wikipedia/Gracenotes JOIN :#esoteric < 1240889276 0 :pikhq!unknown@unknown.invalid QUIT :"leaving" < 1240890530 0 :pikhq!n=pikhq@dialup-4.88.163.236.Dial1.StLouis1.Level3.net JOIN :#esoteric < 1240890580 0 :amca!n=amca@CPE-121-208-82-6.qld.bigpond.net.au JOIN :#esoteric < 1240890617 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Mezzacotta really needs to be on IsItFunnyToday < 1240890627 0 :amca!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1240895245 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240895281 0 :bsmntbombdood!n=gavin@97-118-134-159.hlrn.qwest.net JOIN :#esoteric < 1240899748 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240901298 0 :pikhq!unknown@unknown.invalid QUIT :"Foo" < 1240902879 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1240904379 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1240905599 0 :clog!unknown@unknown.invalid QUIT :ended < 1240905600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1240907113 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1240907738 0 :oklopok!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1240907749 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1240910915 0 :WangZeDong!n=butt@ANantes-259-1-16-229.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1240911696 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240914851 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240915027 0 :psygnisfive!n=psygnisf@71.196.114.50 JOIN :#esoteric < 1240915806 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"YES -> thor-ainor.it <- THIS IS *DELICIOUS*!" < 1240916126 0 :jix!unknown@unknown.invalid QUIT :"rz" < 1240918615 0 :neldoreth|lp!n=user@chello084115143137.3.graz.surfer.at JOIN :#esoteric < 1240919867 0 :ajcc!n=adrian@81-234-211-246-no118.tbcn.telia.com JOIN :#esoteric < 1240920619 0 :ais523!n=ais523@147.188.254.126 JOIN :#esoteric < 1240921088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1240921157 0 :WangZeDong!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240921158 0 :ehird!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240921158 0 :ais523!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240921159 0 :Dewi!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240921264 0 :ais523!n=ais523@147.188.254.126 JOIN :#esoteric < 1240921264 0 :WangZeDong!n=butt@ANantes-259-1-16-229.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1240921264 0 :Dewi!n=dewi@203-214-107-238.dyn.iinet.net.au JOIN :#esoteric < 1240921264 0 :ehird!n=ehird@208.78.103.223 JOIN :#esoteric < 1240921289 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :Help, I'm trapped on the small side of a netsplit | http://tunes.org/~nef/logs/esoteric/?C=N;O=D < 1240921341 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Help, I'm trapped in a topic factory. < 1240921368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1240921879 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1240921893 0 :tombom!unknown@unknown.invalid QUIT :Remote closed the connection < 1240921900 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1240922453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1240922471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, maybe you didn't see my "hi ais523" < 1240922475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if so there it is again. < 1240922479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no I didn't < 1240922495 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I must have netsplitted away before you said it < 1240922512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, it didn't show it as split yet, but detection isn't instant < 1240922527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was a minute before it showed any split. < 1240922681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I figured out a way around that EPL/GPL issue. Clearly I can as an author use a differently licensed open source library in my GPL program. Otherwise you couldn't write GPL programs for languages with standard libraries licensed under MPL and so on. Or GPL program using the platform specific API on Windows or OS X (needed for graphical programs for example). So I'll make this code I need a sep < 1240922681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :arate library, licensed under original license. Then make it a dependency. < 1240922695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1240922713 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ofc, it's theoretically impossible to break the license on your own code < 1240922715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is potentially useful for other people too. < 1240922721 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the problem is whether downstream users can use it legally < 1240922726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I will probably bundle this library. < 1240922743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about "special linking exception" or similar. < 1240922753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not the GCC style one. But a reverse one. < 1240922801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like "as a special exception you may link this program against the EPL licensed Erlang runtime libraries and ." < 1240922813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1240922814 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, although that isn't worded correctly < 1240922820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, IANAL! < 1240922826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what is the correct wording. < 1240922829 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :neither am I < 1240922841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yet you know it isn't the correct one. < 1240922842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you want to mention which explicit right under copyright law you're allowing < 1240922849 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in this case, you want to allow derivative works < 1240922853 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :of a certain form < 1240922858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1240922888 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"as a special exception to this license, you may create a derivative work from this work by linking it against EPL licensed Erlang runtime libraries even if it would not normally be permitted by the text of the license on this work" < 1240922896 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's probably not perfect < 1240922899 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's better than what you wrote < 1240922922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is just a "need non-GPL library" case. And after looking at the logic of the supervisor module.... No way I'm going to try to do a black box reimplementation of it. It is very sophisticated and handles lots of strange edge cases. < 1240922939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok < 1240922983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there are some other GPL erlang programs. I'll take a look at their license file later. < 1240922990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that special exception, btw, wouldn't allow people to redistribute binaries created by linking the EPL supervisor to your program < 1240922994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but would allow them to do the linking < 1240922995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, where would that be put? In the copyright file header. < 1240923012 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :general habit is in a comment at the top of the source, and in the readme < 1240923013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, um... erlang links at runtime. < 1240923015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so... < 1240923018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so no problem < 1240923039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but say some sort of compiled erlang is invented in future, the license won't automatically extend to that without your intervention < 1240923081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, erlang does support compiling to native code (HiPE), but the linking is still done when the modules are loaded. And modules are loaded as needed. Meaning if a module is never called it won't be loaded. < 1240923115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the point here is that licences don't just cover current uses, but all the uses that might be invented in future < 1240923118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this messes up profile results, making the callstacks look odd. < 1240923138 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's important to be able to determine if something is legal, even if the license never thought of it < 1240923161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(suddenly you see a reference to error_handler:undefined_function/3 in the callstack). < 1240923170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok < 1240925333 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://iki.fi/deewiant/deps-20090428.png - CCBI's module dependency graph < 1240925363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what tool did you use < 1240925367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also that is rather messy < 1240925375 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It says right at the bottom < 1240925381 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah didn't see < 1240925385 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The thing that draws the graph is graphviz's dot < 1240925388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I had to zoom out so much to see it all < 1240925422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is this 1 or 2 < 1240925424 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2 < 1240925438 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't fixp use random < 1240925451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and turt too < 1240925461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1240925463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :toys < 1240925480 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :1 is tricky to graph since the fingerprint modules are isolated < 1240925492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1240925497 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So I can't be bothered < 1240925511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why doesn't fixp and toys use ccbi.random < 1240925538 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :They do, they just don't import it. < 1240925545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also, isolated in what way. IIRC they called core functions. < 1240925558 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Isolated in the sense that they're not imported from anywhere. < 1240925562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ok... that seems odd. Why doesn't it graph uses rather than imports. < 1240925568 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :They're just compiled in. < 1240925574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so you have a static list in 2 now < 1240925588 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Because it's not a D frontend, it just greps for import < 1240925592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240925633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, for C, doxygen can graph #includes iirc. < 1240925664 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure I could modify dimdotter to grep for #include quite easily :-P < 1240925678 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But yeah, such tools exist. < 1240925787 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Anyhoo, I just thought that was a funny pic, with the way the fingerprints fan out like that and all. < 1240925985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1240926097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does CCBI2 pass Mycology yet? < 1240926113 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Of course, I don't think there's a version in the Git that doesn't. :-) < 1240926259 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Although this might explain it. The first 2.0 commit: 21 files changed, 3165 insertions(+), 2394 deletions(-) < 1240926279 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's not how you're meant to use an easily-branchable VCS... < 1240926306 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know, I just don't like the idea of something that doesn't even compile being a logged commit < 1240926362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I know what you mean < 1240926385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :making sure each compile is good for bisection too. < 1240926392 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1240926400 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That just unfortunately leads to changes like the above. < 1240926484 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, it seems that my rewrite of the tracer is included in that change; that could've been separated, certainly. < 1240926508 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Other than that I don't think there's much room for reducing it. < 1240928840 0 :Gracenotes!unknown@unknown.invalid QUIT :"Leaving" < 1240929503 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1240930033 0 :FireFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1240931020 0 :Slereah!n=lereah@nanpc319.in2p3.fr JOIN :#esoteric < 1240931032 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I am at the science factory beep beep < 1240931874 0 :ais523!n=ais523@92.236.187.64 JOIN :#esoteric < 1240933127 0 :coppro!unknown@unknown.invalid QUIT :Remote closed the connection < 1240934743 0 :Slereah!unknown@unknown.invalid QUIT :"Leaving" < 1240935111 0 :neldoreth|lp!unknown@unknown.invalid QUIT :Client Quit < 1240935200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"[citation needed][10]" — Wikipedia < 1240935207 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hahaha < 1240935208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Like instructions on a toothpick. < 1240935225 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :would be even funnier if [10] was an {{unref}} template or something < 1240935234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:41:23 coppro: So, is there a reason you named yourself "shit"? < 1240935237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :EXACTLY MY THOUGHTS. < 1240935321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :04:46:41 like "as a special exception you may link this program against the EPL licensed Erlang runtime libraries and ." < 1240935324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't you love Erlang idioms? < 1240935331 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :an erlang idiom is to use the EPL, presumably < 1240935356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"And after looking at the logic of the supervisor module.... No way I'm going to try to do a black box reimplementation of it." < 1240935364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :How can you do a black box reimplementation if you've seen the code? < 1240935468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :05:44:39 that's not how you're meant to use an easily-branchable VCS... < 1240935473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I find it hard to use a vcs at first < 1240935475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't know why < 1240935481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just a tic < 1240935485 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of some sort or another < 1240935500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'git init' makes me twitch for new projects < 1240935514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I need to store two boundary maps, vertical & horizontal, right < 1240935517 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1240935628 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so I've gone insane and am implementing befunge98 < 1240935629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :again < 1240935635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, wait < 1240935637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you were there eysterday < 1240935638 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1240935964 0 :Hiato!n=1@dsl-245-30-127.telkomadsl.co.za JOIN :#esoteric < 1240936124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : an erlang idiom is to use the EPL, presumably <--- why not read it all. < 1240936130 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i did < 1240936571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You need to know the bounds in all directions. < 1240936584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Including diagonally and (3,4) and shit? < 1240936593 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Umm, that sounds like infinite work to me. < 1240936624 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, basically yes, since you need to be able to wraparound with all possible deltas. < 1240936635 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not necessarily < 1240936640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So, um, how can I avoid doing infinite computation? < 1240936640 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can compute bounds for flying IPs on the fly < 1240936642 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But you don't need to store the info for all deltas, of course. < 1240936644 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, pun not intended < 1240936656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.opera.com/? ← LOL < 1240936660 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(visit in a graphical browser, srsly) < 1240936666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it doesn't matter if you try to run a few out-of-bounds commands, because of the spaces < 1240936682 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the only drawback to not knowing diagonal bounds is performance problems < 1240936697 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You don't need to store even as much info as you're planning on storing for horiz/vertical bounds, two points (min/max of bounding rectangle) are enough < 1240936700 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: OK, that's ridiculous, and it isn't even april 1 < 1240936709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: opera's 15 years old < 1240936716 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, but still... < 1240936717 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Of course, the more you store the easier it is to calculate it when you're actually wrapping, I guess. < 1240936808 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But < 1240936814 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Does that handle the minimum-of-each-line? < 1240936819 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That y needs or sth < 1240936827 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You don't need minimum-of-each-line. < 1240936838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I thought you did :P < 1240936851 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2009-04-28 00:40:38 ( Deewiant) For y, you need to know the min/max point describing the smallest rectangle that bounds it < 1240936861 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Where 'it' is the whole funge-space. < 1240936869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://www.opera.com/? ← LOL <-- hahaha < 1240936871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : minRect :: Point, < 1240936871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : maxRect :: Point < 1240936873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :TADA < 1240936888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, funny url it redirects to as well "http://www.opera.com/?mode=forreals" < 1240936899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for reals < 1240936961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, I have a fungespace data structure and parser in 41 lines of code. Now I just have to add bounds stuff < 1240936978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Yes, it handles transparent-space and \n,\r\n,\r) < 1240937017 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Does it handle \f? < 1240937024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :\f? < 1240937034 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :\f. < 1240937050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What's f and where is it mentioned in the spec < 1240937051 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: just for curiousity, will CCBI 2 support trefunge? < 1240937058 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: Yes, it will. < 1240937063 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: \f is form feed. < 1240937082 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Oh, you mean trefunge ^L? < 1240937087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Befunge98-only, so. < 1240937088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*yo < 1240937100 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You still need to handle it, just like Unefunge needs to handle line breaks. < 1240937112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"In Trefunge-98, the Form Feed (12) character increments the z coordinate and resets the x and y coordinates to zero. " < 1240937116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if you will support trefunge, then will you have some mycology part to test it? < 1240937120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The rest of the doc mentions non-newline/space chars just going into the field, Deewiant. < 1240937126 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Possibly something small. < 1240937135 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ergo, my current behaviour -- putting 12 in the space -- is correct. < 1240937138 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: "Subsequent lines in Unefunge are simply appended to the first, and the end of the source file indicates the end of the (single) line. End-of-line markers are never copied into Funge-Space. " < 1240937146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: In unefunge. < 1240937156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, That behaviour extends to \f for befunge < 1240937156 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Applies analogously for \f in Befunge. < 1240937166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Uh huh. Where in the spec does it say this? < 1240937172 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't. < 1240937175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I see. < 1240937230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I hope you can handle all the line endings. For different parts of the same file. < 1240937241 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :He just said he could. < 1240937253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\n':zs) = go fs (Point x (y+1)) zs < 1240937254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\r':'\n':zs) = go fs (Point x (y+1)) zs < 1240937255 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\r':zs) = go fs (Point x (y+1)) zs < 1240937257 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) (' ':zs) = go fs (Point (x+1) y) zs < 1240937259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In da hizzouse. < 1240937267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how do you handle \r\r < 1240937272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in a blank line < 1240937279 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :go fs p ('\f':zs) = go fs p zs < 1240937280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As a blank line. < 1240937283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1240937286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :damn you haskell! < 1240937288 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Not spec compliant. < 1240937307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Aww, wuzzat? Cute lil' cfunge's parser is longer than a few lines? < 1240937307 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Taking the spec too literally is not always the best idea. < 1240937315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Fair enough. < 1240937337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes but C is quite verbose. And it uses various shortcuts to optimise initial loading < 1240937376 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: There are a bunch of places like this where something is said for one case, and then the other case is forgotten about, but it's fairly obvious what the other case should've been. < 1240937384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :t for example < 1240937385 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yar, okay. < 1240937423 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes, t. If you take t literally every t will be a forkbomb. < 1240937428 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1240937435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> mycology <- readFile "/Users/ehird/Downloads/mycology/mycology.b98"; return () < 1240937439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yaaatatatata, < 1240937441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :deedededeeeeeeeeeeeeee < 1240937445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Mycologyyyyyyy < 1240937448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I will parse theeeeeee < 1240937451 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: why? < 1240937459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: because it forks onto the same place < 1240937462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and runs t again < 1240937463 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I assume < 1240937464 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It doesn't spec that the child IP should move off the instruction. < 1240937466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1240937478 0 :Ilari_!n=user@a88-113-39-59.elisa-laajakaista.fi JOIN :#esoteric < 1240937488 0 :dbc!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240937488 0 :ineiros!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240937488 0 :Ilari!unknown@unknown.invalid QUIT :hubbard.freenode.net irc.freenode.net < 1240937490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: doesn't it state that the IP reflects there? < 1240937499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IMO, a reflection implies movement to the location you reflected from < 1240937503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> parseFungespace mycology Loading package syb ... linking ... done. < 1240937504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loading package array-0.2.0.0 ... linking ... done. < 1240937505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loading package containers-0.2.0.1 ... linking ... done. < 1240937507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace {space = fromList [ ** LONG PAUSE ** FLOOD OF POINTS < 1240937519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no reflection just implies reversing IP iirc. < 1240937528 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: IMO it just means inverting the delta. < 1240937531 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you are going to prove otherwise a LOT will need to change. < 1240937534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Er. < 1240937535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so better not. < 1240937537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant? < 1240937538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :62),(Point {x = 57757, y = 392},118),(P < 1240937540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Spot my bug. < 1240937541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :;-) < 1240937544 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :"The child IP's delta is reversed (a la r) from its parent's, though." < 1240937549 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Point 0, not Point x. < 1240937557 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :"a la r" could imply such thing, but i'm not sure < 1240937558 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :For the top three cases. < 1240937558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yep. < 1240937560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I think you forgot to reset x. < 1240937563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240937564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, does r specify that the IP moves? < 1240937564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know. :P < 1240937566 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when y was inrcremented. < 1240937570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :incremented* < 1240937572 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Nope. < 1240937587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is one difference though. < 1240937595 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey, it parses mycology quite quickly. < 1240937596 0 :ineiros!n=ineiros@kosh.hut.fi JOIN :#esoteric < 1240937599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :~0.2s < 1240937604 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe 0.3 < 1240937607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that's a lot. < 1240937608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240937619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 46 lines of unoptimized code < 1240937624 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster tries to /run/ Mycology in less than a tenth of that. < 1240937626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but if your goal isn't speed then I won't mention it again. < 1240937646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Compliance and insane amount of fingerprints (e.g. hopefully MKRY ones < 1240937647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err < 1240937651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Compliance and insane amount of fingerprints (e.g. hopefully *all* MKRY ones) first < 1240937652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then speed < 1240937654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, 0.035 is quite possible, with clean environment < 1240937657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and my computer is older < 1240937661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: even IFFI? < 1240937664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data Point = < 1240937665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Point { < 1240937665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : x :: {-# UNPACK #-} !Int, < 1240937667 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : y :: {-# UNPACK #-} !Int < 1240937668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :D < 1240937669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : } deriving (Show, Eq, Ord) < 1240937671 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :note that IFFI was written to be independent of INTERCAL < 1240937671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ Enough optimization for one day. < 1240937672 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :ehird: so how about FNGR? < 1240937673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: sure! < 1240937675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :noone but cfunge has IFFI < 1240937679 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can implement it in pure-Funge, but it's feral < 1240937679 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :atm < 1240937681 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: FNGR's feral right? No problem. < 1240937687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm doing TRDS too. < 1240937689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which will be EASY. < 1240937690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, TRDS? < 1240937693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MVRS? < 1240937694 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: FNGR contradicts the spec < 1240937695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since in Haskell, < 1240937700 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Everything is easy! < 1240937701 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I can just keep a list of all states as I go < 1240937704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and retract back < 1240937706 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Aha :-D < 1240937712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Since that's how I'll have to write the interpreter loop anyway < 1240937714 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(sans keeping list) < 1240937718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about forward jumps with TRDS < 1240937719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IMO, the correct treatment of FNGR is to switch to the old buggy RC/Funge interpretation of fingerprints to make it make sense < 1240937729 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: sure, not insanely difficult < 1240937731 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: The spec says that. < 1240937734 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :These days. < 1240937738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1240937739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, MVRS? < 1240937742 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Since I told him to add it. :-P < 1240937746 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ATHR? < 1240937749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1240937750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ATHR? < 1240937753 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ATHR isn't done yet. < 1240937754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ATHR :D < 1240937757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What's ATHR? < 1240937762 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: one of AnMaster's fingerprints < 1240937763 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"Asynchronous threads"? < 1240937767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for asynchronous threading < 1240937768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1240937769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm implementing the core changes needed in efunge for it. < 1240937770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. < 1240937774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is VERY intrusive. < 1240937777 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That should be relatively easy < 1240937782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well TRDS is possibly worse. < 1240937791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, not really, arguably you could just implement ATHR the same way as regular threading < 1240937793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thing with haskell is that it's hard to do feral stuff, so I'll have to come up with a modular interpreter. < 1240937798 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which will make more feral things easy. < 1240937804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by deliberately introducing asynchronies now and again < 1240937811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and ferality is relative < 1240937816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not if you consider the atomic stuff and such. And that it should be able to take advantage of SMP. < 1240937823 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IFFI may feel feral; but the only replacement it needs is of the main loop < 1240937823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and possibly distributed nodes in the future. < 1240937824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Anyway I'm having a debugger with a time scrubber (like media players) so that covers TRDS, really < 1240937829 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, I haven't seen the spec. < 1240937829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes. < 1240937838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you have. Ages ago. < 1240937849 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Is it still valid? < 1240937853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I suspended the work on it during half a year or so. < 1240937854 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It also does not use the word "reflects": "When a child IP is borne unto Funge-Space thus, its location, storage offset, and stack are all copied verbatim from the parent IP's. The child IP's delta is reversed (a la r) from its parent's, though." < 1240937858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, mostly. Some details changed. < 1240937868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, mostly related to how bounds are updated. < 1240937881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: ah, ok < 1240937882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, once ATHR is loaded mycoedge is undefined behaviour. < 1240937891 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't say the parent's IP moves either < 1240937913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what's Funge-108's opinion on copying fingerprints from parent to child when t is used? < 1240937916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ip always move after instruction executed. < 1240937933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, "copy them". < 1240937949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have yet to see any interpreter which doesn't. Well CCBI didn't use to, but it changed. < 1240937957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that's 19 < 1240937958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :109* < 1240937968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: hmm, do I have to shrink min bounds too? < 1240937974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. if you have nothing on column 1 < 1240937976 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: pyfunge doesn't atm. < 1240937981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :really? ok < 1240937982 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yes. < 1240937990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course I do a sparse copy < 1240937999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only allocating stuff if there is anything to copy < 1240938007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well, growing bounds is trivial, but I can't think of a non-completely-expensive computational way to shrink em < 1240938041 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you only have to worry about shrinking when you write a space < 1240938042 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yep. AnMaster's solution was the equivalent of your "Map Int". < 1240938046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, lifthrasiir ais523 ehird: http://pastebin.ca/1406233 (all but lifthrasiir have seen it before, anyway note some stuff remains to be decided. It is subject to change.) < 1240938060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But the map int only covers lines, not verticalines! < 1240938069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err... < 1240938070 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Two Map Ints. < 1240938078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, check src/funge-space/funge-space.c < 1240938080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Gee, you mean my original solution that you said I don't need? < 1240938081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thx :-P < 1240938081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for how I do it < 1240938082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or Map (Int,Bool) if you're so inclined, whatever. < 1240938088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I can't; GPL3. < 1240938091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1240938092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1240938095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not worth the legal risk ;-) < 1240938097 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: You didn't need it for what we were discussing. < 1240938104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I use two counts, one for columns, one for rows. < 1240938108 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: And you still don't need it. < 1240938115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't think reading GPL3 code is illegal < 1240938119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But it makes it more convenient, no? < 1240938119 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: As you said, it's just expensive to check it if you don't have something like that. < 1240938124 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nor copying the algorithm, as AnMaster doesn't have a patent on it < 1240938126 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yes, and that I did say. :-) < 1240938126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do some mad logic to try to reduce the need of updates. < 1240938136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1240938138 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although translating it might be < 1240938140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it may be hard to follow < 1240938141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: There is some scary legal precedent. < 1240938158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact I wrote it, and parts of it is black magic to me! < 1240938159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, I wouldn't be surprised < 1240938160 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If AnMaster said I can use cfunge algorithms under the MIT license, that'd work. < 1240938161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1240938161 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :here or in America? < 1240938169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, IANAL. < 1240938172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so no clue. < 1240938174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: America, I think, but I'm not one to risk these things < 1240938186 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :despite not caring about copyright law < 1240938187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :go figure < 1240938191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Any disputes should be settled in Swedish court. < 1240938196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ha < 1240938196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240938205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, actually I just quoted the EPL. < 1240938212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc it says something like that. < 1240938218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :weird < 1240938233 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Any disputes should be settled in the Zimbabwean court. < 1240938241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well EPL is like MPL s/US/Sweden/ s/Mozilla/Ericson/ < 1240938243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1240938250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ugh, I hate the MPL < 1240938259 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't blame you < 1240938267 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you should require disputes to be settled in a Sealandish court < 1240938271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or even better, an Agoran court < 1240938290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data ColumnOrRow = Column | Row < 1240938293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :death to Bool! < 1240938303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err you have a typo there < 1240938306 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: so, bounds :: Map (Int,ColumnOrRow) Point < 1240938309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: wat? < 1240938314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :data ColumnOrRow = Column | Row | SocketNotFound < 1240938315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :clearly! < 1240938318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :groan < 1240938322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... socket? < 1240938338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, what about it. < 1240938341 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Something like that, whatever. Ask AnMaster: I haven't implemented it. :-P < 1240938351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: what's your stratergery < 1240938351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :True | False | FileNotFound < 1240938362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Column | Row | SocketNotFound < 1240938365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :symetry! < 1240938375 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't have strategy, I fail. < 1240938376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :symmetry* < 1240938382 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I never shrink bounds, only grow them. < 1240938386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1240938389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: The first step is admitting you have a problem. < 1240938389 0 :dbc!n=daniel@130-94-161-238-dsl.hevanet.com JOIN :#esoteric < 1240938397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Now, praise God. < 1240938407 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The next step is waiting until CCBI 2's release for the solution. < 1240938418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :updateFungespace :: Point -> Int -> Fungespace -> Fungespace < 1240938418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :updateFungespace p v fs = fs { space = Map.insert p v (space fs) } < 1240938419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ this is going to be so ugly when I add bounds logic :( < 1240938478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Now I have to figure out how your strategy actually helps < 1240938483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well my strategy is to: 1) Turn of EXACT_BOUNDS option if possible ;) 2) If not possible, and if bounds are large, iterate through all values in the sparse hash and find the extremes, scan the static array 3) if bounds are small scan from the edges inwards to find first set column/row < 1240938498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the latter works better if you just end up shrinking 1-2 columns or so < 1240938508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but is too slow for slowdown.b98 < 1240938508 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why do we need exact bounds again? < 1240938516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ask Deewiant < 1240938518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the spec says so < 1240938522 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Ask. < 1240938527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in particular, it can be queried in-program using the y command < 1240938528 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: What ais523 said. < 1240938533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1240938541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ah. Y. < 1240938545 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, y < 1240938546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, y != Y < 1240938548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why oh why, y? < 1240938557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I still think it's possible to treat y lazily < 1240938562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :y, why, why, y? < 1240938578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, btw, I don't shrink bounds except for y. Oh and I also store a flag that indicates if bounds are minimal, or are *possibly* too large. < 1240938579 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and avoid calculating bounds unless mycoedge or slowdown or something deliberately tries to create a crazy bounds computation < 1240938591 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, to make multiple y faster. < 1240938595 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: does slowdown check exact bounds? < 1240938597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something that mycology does a lot. < 1240938603 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, you could maybe chain mycoedge onto it < 1240938606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I refuse to be anything but spec compliant. I think. < 1240938630 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so you plan to check for shrinking on every write to funge-space? < 1240938636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather than only in y. < 1240938639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I only need to do that on writes of ' ', duh. < 1240938646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can't shrink by writing anything else. < 1240938647 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It does so indirectly: you might loop through 2^(8*sizeof(cell)) whenever you wraparound, if you don't shrink bounds. < 1240938653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually I do it for wrap too, if difference between max and min is HUUUUGE. < 1240938660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or slowdown.b98 wouldn't work. < 1240938666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: doing it directly would be interesting too, though, I think < 1240938684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: lol@special cases < 1240938685 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't actually realize that it would do so indirectly. < 1240938692 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It wasn't my goal. < 1240938698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes of course. You only need to do it when either column or row count reach 0 in one of the edge columns even. < 1240938768 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Okay, let's see. < 1240938778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Every write to fungespace, I need to check the bounds for both column and row. < 1240938779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw slowdown is broken in efunge. It seems to have issues with bignum interpreters. If I make y lie and tell it it is 32 bit it works fine. < 1240938784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right? And then grow if necessary. < 1240938789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'll handle shrinking later. < 1240938797 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, I know, because it doesn't expect -1 from y. < 1240938829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well. I can't push any max value. that just wouldn't work. There is no inf in integer bignum. < 1240938830 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It tries random numbers in the range [-2^(8 * y value), 2^(8 * y value)). < 1240938859 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Which probably ends up looping infinitely as it gets the range [0,0). < 1240938859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Amirite? < 1240938866 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240938873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1240938895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, maybe. Anyway if you want to check algorithms currently you should go for ccbi and/or cfunge. cfunge if you want the fast ones. < 1240938902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240938913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :patches to make it even faster are welcome. < 1240938914 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI if you want the BSD-licensed ones. < 1240938919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah right.. < 1240938934 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, not copying any algorithms that aren't MIT-licensed ;-) < 1240938943 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Purity, correctness, completeness, simplicity and featurefulness! and speed < 1240938944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ motto < 1240938946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :are BSD and MIT compatible < 1240938954 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, only viral licenses are incompatible < 1240938957 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BSD3 and MIT are almost identical < 1240938958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in practice < 1240938959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but i'd have to include the bsd notice < 1240938961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no, BSD2 = MIT < 1240938965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1240938968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :BSD3 has the redundant clause < 1240938972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :("don't use our name") < 1240938989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which other laws already cover < 1240938989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and BSD2 is so rare as to be nonexistant < 1240938993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so MIT is the best choice < 1240939005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, correctness, speed, completeness, simplicity, featurefulness, purity is more like cfunge motto I suspect. < 1240939005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(BSD2 also looks a bit silly, it has "1." and "2." for two short, very related clauses) < 1240939018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure what "purity" means here. < 1240939021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: completeness? TRDS, anyone? < 1240939025 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Redundant? < 1240939029 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :purity means conceptual clarity and beauty of implementation < 1240939036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, TRDS comes under featurefulness doesn't it < 1240939037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: yes; other laws already cover it < 1240939039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's unneeded < 1240939042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1240939045 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: What laws? < 1240939048 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is featurefulness then < 1240939060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: < 1240939061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : * Neither the name of the nor the < 1240939062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : names of its contributors may be used to endorse or promote products < 1240939064 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : derived from this software without specific prior written permission. < 1240939067 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure that's illegal anyway. < 1240939071 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That's the clause. I asked for the laws. < 1240939072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm not sure. < 1240939089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well cfunge try to be complete in the features it *does* support. < 1240939102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, TRDS is one of the features it doesn't support. < 1240939104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It's not illegal for me to, say, go air an advert saying "Endorsed by Matti Niemenmaa and his CCBI project!"? < 1240939108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well that's fucked up. < 1240939114 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Modulo parody) < 1240939115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't know. < 1240939122 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm fairly sure it is. < 1240939124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Is it? < 1240939134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, possibly depends on what country < 1240939152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but IANAL and so on... < 1240939170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, what did you think about http://pastebin.ca/1406233 btw < 1240939171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: certainly the advertising standards agency would get you for it, but that's not a legal system < 1240939177 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: The way I see it it's more so that if somebody uses CCBI, they can't say "Uses award-winning CCBI technology by Matti Niemenmaa", which is a bit different IMO. < 1240939178 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :looks fine. < 1240939181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, thanks. < 1240939190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it would be libel if your product was so bad if it made Deewiant look bad as a result < 1240939196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Oh well, I don't think clause #3 has ever actually been invoked < 1240939198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's rather irrelevant < 1240939200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, anything you might decide to implement once it is completed? < 1240939214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, say if your product was rather dangerous, you claimed Deewiant had safety-checked it, Deewiant could sue you for libel for runing his reputation < 1240939216 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :the spec seems quite reasonable, and i would implement it once it's completed < 1240939216 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That doesn't make it irrelevant. :-P < 1240939226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your mom is irrelevant < 1240939252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, oh also I suspect python threads doesn't count as "true async", rather think about that multiprocessor module thingy (forgot if that was the name or not) < 1240939254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240939271 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :(as i have to consider current fingerprint behavior anyway, ;P) < 1240939296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, if it can't run two threads at once on separate cores it isn't done properly. That is my opinion. < 1240939310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your opinion is irrelevant to the spec. < 1240939317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wrong. < 1240939320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asynchronous threading does not imply multi cores < 1240939321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :check the first section. < 1240939322 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SEE: hyperthreading < 1240939352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, right that is valid too. But if two cores are available. Or two cpus. < 1240939362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I recommend it to be possible to use it. < 1240939367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Letting the funge program loose on all cores? < 1240939370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Awesome. How very stupid < 1240939371 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course it depends on the OS and so on if that actually happens! < 1240939399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm just discouraging lock step or other "not really concurrent" implementations. < 1240939426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it was a RFC it would say RECOMMENDED rather than MUST for that ;P < 1240939436 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you mean the infamous GIL? then you're right, but interpreters are free to implement ATHR with randomized simulation so it doesn't really matter, i think. < 1240939445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, yes that was what I'm thinking about. < 1240939445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GIL? < 1240939457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :global interpreter lock. < 1240939458 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :global interpreter lock. < 1240939461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :snap. < 1240939465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, python's equivilent of "big kernel lock" that used to exist way back. < 1240939466 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :well. < 1240939467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kind of < 1240939469 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, I've heard of it but not the acronym < 1240939475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: tl;dr: python sucks < 1240939491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: wow, I didn't expect that comment coming from you < 1240939497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought you liked it < 1240939503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I had to bother with GIL when writing some code using the python C API. < 1240939504 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird thinks everything sucks < 1240939506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather sad. < 1240939510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It's one of the better mainstream languages. < 1240939514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sucking sucks. < 1240939516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240939516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, agreed < 1240939518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And I often defend things I don't actually like. < 1240939527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've vehemently defended MS before. < 1240939529 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :i think even interpreters with proper thread should try to randomize the execution, for example by using... several processes? < 1240939533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Because I dislike inaccurate criticism. < 1240939538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, I'll defend MS for things too < 1240939541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, under what conditions would you defend cfunge. < 1240939543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just wondering :D < 1240939554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if someone was saying it sucked because it was really slow? < 1240939559 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why spread FUD about MS when there are legitimate concerns? < 1240939563 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok that would make sense. < 1240939564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: exactly < 1240939587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well if fizzie finished jitfunge and he said that I would not complain. But that is a special exception. < 1240939611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, I am in efunge. < 1240939625 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Does funge need gc? < 1240939629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you can't really. < 1240939634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I mean, non-fungespace gc. < 1240939640 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, in fact I'm going as far as using different systems, some x86 and some amd64 and using distribution over network. < 1240939653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, some fingerprints could possibly need less manual memory management with it < 1240939656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :TURT. < 1240939661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is about all I can think of < 1240939664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right but nothing mandatory < 1240939671 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and nightmare comes true. < 1240939674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :otherwise the memory management is fairly straightforward. < 1240939682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1240939683 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster? < 1240939685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : bounds :: Map (Int,ColumnOrRow) Point < 1240939686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, what? It isn't distributed *yet* but it wouldn't be hard to do. < 1240939687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should this be < 1240939689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : bounds :: Map (Int,ColumnOrRow) Int < 1240939692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, no, wait < 1240939695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it should be (Int,Int) < 1240939698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1240939698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for min and max bound < 1240939705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what < 1240939712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: your bounding strategy < 1240939715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, are you keeping a separate bound of each column? < 1240939724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And row, yes... < 1240939727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm just counting set cells in each column and row. < 1240939730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's what Deewiant said you do. < 1240939739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :someone must have misunderstood somewhere. < 1240939753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :On the subject of Python sucking, < 1240939757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"A lot of people remarked that in my post on Tail Recursion Elimination I confused tail self-recursion with other tail calls, which proper Tail Call Optimization (TCO) also eliminates. I now feel more educated: tail calls are not just about loops" < 1240939760 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— GvR < 1240939770 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :STOP WRITING A LANGUAGE RIGHT NOW AND READ SOME COMPUTER SCIENCE LITERATURE! < 1240939794 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: eh, the nightmare is not a difficulty of distributed one, but rather the expansion of that idea; i thought of a sort of electric sheep screensaver. *wink* < 1240939818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the point is, I assume, that failing to optimise tail-recursion leads to stack overflows, whereas failing to optimise other tail-calls just slows you down a bit < 1240939818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, I never seen such a screensaver. I heard about them but no idea what the point of it is. < 1240939829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: they're pretty fractal < 1240939829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1240939834 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and distributed stuff is fun < 1240939834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240939844 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :that is a distributed fractal-generating screensaver, iirc. see http://www.electricsheep.org/ < 1240939863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wrong < 1240939865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: mutual recursion < 1240939874 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1240939878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, this is more "cluster distributed" than "boinc distributed" in case this is what the confusion is about. No idea if it is that. < 1240939883 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :technically speaking, though, that's tail-recursion but not tail-self-recursin < 1240939885 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*recursion < 1240939888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my point is that if guido doesn't understand trivial things like what tail call optimization is he's hardly qualified to make a language < 1240939889 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least, it's tail and it's recursion < 1240939904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I think not understanding TCO is fine for certain forms of languages < 1240939906 0 :Ilari_!unknown@unknown.invalid NICK :Ilari < 1240939916 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance, someone making a VHDL synthesizer will never come up against the issue at all < 1240939924 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because the only sort of function call in VHDL is inlining < 1240939925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"First, as one commenter remarked, TRE is incompatible with nice stack traces" ← did you not read the responses where it was shown how to retain that‽ < 1240939926 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, mutal recursion happens in efunge btw. < 1240939937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not a lot. But it can happen. < 1240939943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :during hot code upgrade. < 1240939945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, this is an older post before that < 1240939951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :f u /r/programming, start having accurate titles < 1240939961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is another feature of efunge lifthrasiir. Hot code updates. No downtime. < 1240939968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for your enterprise befunge programs. < 1240939975 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, that is truly enterprisey. < 1240939978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter itself can be upgraded on the fly! < 1240939991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir, really I just get this for free because I use erlang... :D < 1240940000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :almost all of it. < 1240940036 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :by the way, i have to implement TURT but didn't decide output format to use yet < 1240940037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so, what's your actual structure, expressed in terms of (Map key value), (a,tuple), Bool (e.g. for column/row) and Int? :-P < 1240940058 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :SVG, raw PNG (with pure python implementation?), or... postscript? < 1240940072 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: svg & sdl < 1240940075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I don't know. I can express it in terms of static size_t colcount[STATIC_ARRAY_X] and a hash library! < 1240940078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& ps < 1240940095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: I'd suggest SVG < 1240940099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: come on, you have efunge. you surely know what an associative array is, what a tuple is, what a boolean is and what an integer is < 1240940105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: SDL isn't exactly a format... < 1240940111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, in efunge I don't do it that way < 1240940112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: sorry, boolean? < 1240940112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1240940114 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :ehird: so you mean the user can choose his/her favorite one, right? < 1240940119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: yep < 1240940125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'd default to sdl < 1240940130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :find_extremes([], MinX, MinY, MaxX, MaxY) -> < 1240940130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : {{MinX,MinY},{MaxX,MaxY}}; < 1240940130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :find_extremes([{X,Y}|T], MinX, MinY, MaxX, MaxY) -> < 1240940130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : find_extremes(T, erlang:min(MinX,X),erlang:min(MinY,Y), < 1240940130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : erlang:max(MaxX,X),erlang:max(MaxY,Y)). < 1240940134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :recalculate_bounds_exact(Fungespace) -> < 1240940134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : % Get first item as base for new bounds. < 1240940134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it's "interactive" like console in/out < 1240940135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : [{FirstX,FirstY}|Coordinates] = ets:select(Fungespace, [{{'$1','$2'},[{'=/=','$2',$\s}],['$1']}]), < 1240940139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : NewBounds = find_extremes(Coordinates, FirstX, FirstY, FirstX, FirstY), < 1240940141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : put(fspacebounds, NewBounds), < 1240940143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : put(fspacebounds_exact, true), < 1240940145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : NewBounds. < 1240940147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, + some logic to update fspacebounds_exact. < 1240940147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I didn't ask for code. < 1240940151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I asked for the data structure. < 1240940152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :far from as fast as the cfunge way. < 1240940152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders what a Prolog funge would look like < 1240940158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That cfunge uses,. < 1240940181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, cfunge uses associative array for funge space, except the static area around 0,0 as you know. < 1240940187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not for fungespace! < 1240940188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FOR THE BOUNDS!!! < 1240940191 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1240940192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I have a similar thing for the bounds. < 1240940193 0 :lifthrasiir!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it could get TRDS feature for (almost) free. < 1240940195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1240940208 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :am I paranoid for looking at the cookies on Phorm's website every now and then to see if it's active on my connection? < 1240940209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but forget it then... < 1240940216 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it isn't yet, but I'm worried they'll turn it on < 1240940222 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: what ISP? < 1240940233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, "Phorm"? < 1240940234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Virgin Media, here < 1240940245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: evil deep packet inspection → targeted ads company < 1240940247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's a long story, look it up on Google or Wikipedia or somewhere < 1240940249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: they're goingt o. < 1240940254 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I know < 1240940256 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's why I keep checking < 1240940257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240940259 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: use bogons ;) < 1240940267 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've been thinking up ways to annoy Phorm already < 1240940278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :horse-porn-daemon < 1240940280 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, use ssl for most stuff of course. < 1240940285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance, I've thought of a few ways to make websites that break in Phorm, but not anywhere else < 1240940302 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'll definitely be setting Phorm opt-out cookies once Phorm come online < 1240940309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I suspect everyone will change from that isp soon < 1240940315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: HAHAHAAHA < 1240940316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AHAHAHAHAHAHA < 1240940317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AHAHAHAHAHAHAHAHAHHAHA < 1240940318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HAHAHAHAHAHAHHA < 1240940323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what < 1240940325 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: unfortunately, there are only a few major ISPs and Phorm have got to all of them < 1240940326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you so funny! < 1240940334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :damn < 1240940342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: hay did I mention bogons < 1240940343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1240940356 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thought of that, but it would be unlikely to help < 1240940357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: [[Phorm]]: Net income $-32,153,223 (2007)[3] < 1240940364 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's good, at least :-P < 1240940367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean the isp < 1240940370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that's sad. But isn't this a violation of laws. Integrity and so on. After all you are paying them already. It isn't like it is free ads sponsored. < 1240940373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1240940377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's perfectly legal < 1240940378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it may be illegal < 1240940384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1240940387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, the EU are suing the UK for not having prosecuted Phorm for it yet < 1240940390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The website that hits back at the "privacy pirates'" smear campaign against Phorm. < 1240940390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.stopphoulplay.com/ < 1240940393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on the basis that they ought to have a low against it < 1240940394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, good! < 1240940395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lolololool < 1240940399 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*law < 1240940435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1240940446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, said he wasn't interested in how cfunge did it. < 1240940447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1240940448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I plan to try some experiments < 1240940453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no i didn't! < 1240940461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to know the *data structure* cfunge uses to store bounds < 1240940472 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's my theory, for instance, that a web page behind a chain of exactly four redirects cannot be seen by a Phorm user, whether they have an opt-out cookie or not < 1240940474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ght_fspacecount_hash_table_t * restrict col_count; < 1240940474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ght_fspacecount_hash_table_t * restrict row_count; < 1240940478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :static funge_unsigned_cell cfun_static_use_count_col[FUNGESPACE_STATIC_X]; < 1240940481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :static funge_unsigned_cell cfun_static_use_count_row[FUNGESPACE_STATIC_Y]; < 1240940483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there < 1240940489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :those are the data structures used. < 1240940506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't know the innate workings of cfunge's implementation, so concrete data structures are useless to me < 1240940514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1240940514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Thus why I asked for an abstract description < 1240940515 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on some web browsers, it might require more than four I suppose < 1240940554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that would be like a triangle with sum of angles > 180 < 1240940562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... what < 1240940596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it isn't abstract. The algorithm is a ad-hoc thingy that works and is fast but isn't clean CS in any way. < 1240940614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1240940618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that makes no sense < 1240940643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but you can get triangles with angle sum > 180 < 1240940648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in hyperbolic geometries < 1240940656 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, no, spherical geometries < 1240940663 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hyperbolics have angle sum < 180 < 1240940664 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In hyperbolic they're less than 180 < 1240940666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it was meant to be a Lovecraft reference. Go figure. < 1240940683 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, triangles on the surface of the Earth have angle sum > 180 < 1240940700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok Lets say it this way then. There are roughly 300-400 lines handling the bounds shrinking. Almost 1/3 of them are macros. < 1240940702 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Proof that the Earth isn't flat! < 1240940703 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you draw a triangle between London, Stockholm, and Washington DC, you'll find its angle sum is considerably more than 180, for isntance < 1240940723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: can you explain to him what i mean by wanting an abstract description instead of c dat types? < 1240940733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, answer is I can't give one. < 1240940736 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Nah, I'd rather you struggle < 1240940748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: hate :| < 1240940757 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: English-language explanation of what you do. < 1240940766 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there is no abstraction in it. I skip that due to speed reasons ;P < 1240940773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :j/k < 1240940780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Trivial abstraction: your hash table is an associative array < 1240940785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There's one < 1240940787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, very well.. I tried that before and ehird just shouted. < 1240940802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ehird, well, cfunge uses associative array for funge space, except the static area around 0,0 as you know. < 1240940802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Not for fungespace! < 1240940802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : FOR THE BOUNDS!!! < 1240940802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >_< < 1240940802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ehird, I have a similar thing for the bounds. < 1240940803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1240940810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"similar" isn't too helpful... < 1240940829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes but you got so angry and didn't say "sorry, overreacted" or anything like that. < 1240940838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :So why would I want to continue. < 1240940853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Try to be polite, please ;P < 1240940890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :<.< < 1240940897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(not claiming I'm perfect myself, but at least I try to not shout early on) < 1240940932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kay kay sorry < 1240940937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :good. < 1240940939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Well then... < 1240940969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :consider two arrays, sparse or static or whatever, it isn't important at this point. < 1240940996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the index for the first is the column (x coordinate) the index for the other is the row (y coordinate) < 1240941018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets cal the first one column_count and the other row_count < 1240941019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :call* < 1240941046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so column_count[0] stores how many cells are non-space in the corresponding column < 1240941068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the column for where x=0 < 1240941082 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the row_count works similar but for rows. < 1240941085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, with me so far? < 1240941100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haven't < 1240941101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read < 1240941101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1240941124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: OK, so I can do < 1240941130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, on writes to funge-space that changes between space and non-space I update this count for the relevant row and column. < 1240941137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Map Int Int -- map of column number to number of non-spaces < 1240941139 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Map Int Int -- map of row number to number of non-spaces < 1240941146 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which I can then fold in as Map (Int,ColumnOrRow) Int < 1240941153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: now, how does this handle wrapping? < 1240941156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, normally I just grow the bounds, that is check if I'm writing outside the bounds and grow it to that. < 1240941158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how can you know when you're at the end? < 1240941164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I also have a flag < 1240941166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't store the last position < 1240941169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just the count of non-spacse < 1240941171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*spaces < 1240941181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets call this flag exact_bounds < 1240941192 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :flag < 1240941194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :flag on what? < 1240941200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a global flag. < 1240941209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ok, I always want exact bounds FWIW < 1240941209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a boolan < 1240941212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :boolean* < 1240941217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's always true < 1240941218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if true, the bounds are not too big, if false the bounds may be too big. < 1240941234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and on y I check this, if false I recalculate the exact bounds < 1240941241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :based on the row and column counts. < 1240941243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where do you store the bounds < 1240941247 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1240941256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well in a static variable, as two x,y pairs. < 1240941258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: your counts are separate to the bounds? < 1240941263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes they are. < 1240941264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :holy waste of memory batman! < 1240941266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1240941277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what, I have 8 bytes on a 32-bit funge for the bounds. < 1240941283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :true < 1240941284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well 9 with the "exact" flag. < 1240941289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just seems like these could be folded into one. < 1240941291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is small compared to the counts. < 1240941305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also I'm sure you don't need to recalculate like that < 1240941311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure it could be a lot simpler < 1240941317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that would require fast finding of the outermost values in the count arrays. < 1240941326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which would basically mean storing some sorts of bounds on them.... < 1240941334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1240941335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you would end up with the same in the end ;P < 1240941339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: nope < 1240941348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for each row, and each column, store: < 1240941349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, max/min for x and y < 1240941354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x1,y1,x2,y2,count < 1240941355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :voila < 1240941361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fast bounds updating, wrapping, and counting < 1240941365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah you mean store which exact cells are set. < 1240941371 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that seems like a waste of memory. < 1240941372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to me < 1240941380 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: store separate bounds for each row and col < 1240941395 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so that you can wrap quickly, still have an exact count, and NOT have to recalculate all the time < 1240941398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes that works, cfunge did early on < 1240941401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it was worse < 1240941405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :performance wise < 1240941409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess due to cache effects. < 1240941410 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :cleaner tho :P < 1240941435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway when you need to shrink bounds, remember you may need to shrink more than one value. There could be several columns with only spaces like: < 1240941435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :data Bounds = < 1240941436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Bounds { < 1240941436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : start :: Int, < 1240941438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : end :: Int, < 1240941440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : a a < 1240941440 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : setCells :: Int < 1240941442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : } < 1240941443 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :remove the second a < 1240941444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :& < 1240941446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : bounds :: Map (Int,ColumnOrRow) Bounds < 1240941447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it shrinks multiple < 1240941451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240941452 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1240941459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: does any other impl handle this? < 1240941472 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway now comes the shrinking algorithm if you care < 1240941482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have two ways. For "huge bounds" and "small bounds" < 1240941501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it seems easy - if we place a space, calculate bounds for this row and this column < 1240941501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for huge bounds, say 2^16 or something between max and min it is likely the data is rather sparse < 1240941511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I iterate over all values found in the array < 1240941515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and store the extreme values < 1240941518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1240941522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to find the minimal min/max. < 1240941523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'd rather not have two cases < 1240941534 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: HsFunge, possibly pyfunge < 1240941559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for small ones, I prefer to scan in a spiral basically from the old edges towards the center. Well I don't do it in a spiral, but rather take each edge at a time. < 1240941563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: does pyfunge handle exact bounds and shrinking and shit? < 1240941567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to find the first one where any cell is set. < 1240941573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, iirc yes it does. < 1240941591 0 :Gracenotes!n=person@wikipedia/Gracenotes JOIN :#esoteric < 1240941636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, lets say you have a dense and large program where one edge shrunk by 1-2 columns, then scanning the bounds by enumerating all values in the hash array would be a waste. < 1240941644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the logic behind the two cases. < 1240941678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, now this is an abstract view. In reality this is complicated by having a static region of the bounds near 0,0 too. But the overall idea is as above. < 1240941687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1240941725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, this hash library has a C++ style iterator thingy for C which comes in handy for the "large bounds shrinking model" < 1240941741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : for (p = ght_fspacecount_first(hashtable, &iterator, &p_key); < 1240941741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : p; p = ght_fspacecount_next(&iterator, &p_key)) { < 1240941744 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is what it looks like < 1240941744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if pyfunge's algo is simpler :) < 1240941753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not clean. But works. < 1240941756 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I think HsFunge just did that slow-ass way of looping through potentially the whole funge-space to find the new minimum. < 1240941771 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1240941774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what's pyfunge's license? < 1240941778 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well cfunge is tuned for speed remember. That means the code often goes for speed instead of simpleness/clarity. < 1240941827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :c 108 11453 4733 29.2% 2202 18388 < 1240941830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what ohcount claims < 1240941833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the columns are: < 1240941836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Language Files Code Comment Comment % Blank Total < 1240941861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if I could just the code I wrote myself... < 1240941886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :c 98 8920 3679 29.2% 1642 14241 < 1240941891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hypha currently has two lines of comments. < 1240941933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly it's only 58 lines long < 1240941936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well I'm rather fond of huge doxygen comments for public API. There are third party fingerprint developers for cfunge after all (ais523) < 1240941945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Haddock fuck yeah < 1240941956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and edoc for erlang < 1240941959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION should invent an INTERCAL auto-documentation system < 1240941960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :did I mention haskell is awesome < 1240941961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes most languages have one. < 1240941966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, augh! < 1240941970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: haddock's is nicer :-) < 1240941970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yes, but you're allowed to mention that, because it is < 1240941974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er, haskell's < 1240941990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Quite plausible. doxygen is a pain. < 1240942005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :doxygen's hard to read < 1240942008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like it has issues with macros generating function prototypes < 1240942009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1240942010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1240942026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haddocks have nice function signatures and type definitions and hyperlinks :-P < 1240942032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I prefer macro hell over code duplication btw :) < 1240942048 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: my opinion on Don't Repeat Yourself: < 1240942049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\n':zs) = go fs (Point 0 (y+1)) zs < 1240942049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\r':'\n':zs) = go fs (Point 0 (y+1)) zs < 1240942051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : go fs (Point x y) ('\r':zs) = go fs (Point 0 (y+1)) zs < 1240942062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, does ghc have a preprocessor though < 1240942088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, you can enable CPP. A kitten dies though. But Haskell's referential transparency and laziness makes macros unneccessary most of the time < 1240942097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Template Haskell is a full macro system but normally you can just use a value/function < 1240942104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh and cfunge has rather different loading functions for initial file loading at 0,0 and loading from i < 1240942111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because I can take short-cuts for the former! < 1240942132 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it actually helped for speed. < 1240942136 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Mine only does the former, but adding offset and write-onto support is as easy as changing < 1240942137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :parseFungespace = go emptyFungespace (Point 0 0) < 1240942154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, offset means additional calculations! :( < 1240942155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and < 1240942157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is more < 1240942163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you need to track the size of the block you wrote < 1240942167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since i pushed that < 1240942173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1240942173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before it returns. < 1240942175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240942178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"i" the instruction < 1240942182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, that won't be hard < 1240942185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :few ms slower < 1240942196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, YES! IT'S TERRIBLE! ¿²«¤/= < 1240942203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: how long does ccbi take to parse mycology? < 1240942222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That would be hardware-dependent, no? < 1240942232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well yes. < 1240942232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, don't say such bad, nay... foul, words as "few ms slower" < 1240942235 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What order of magnitude? < 1240942241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0.Ns? < 1240942244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0.0Ns? < 1240942246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NNs? < 1240942253 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000Ns? < 1240942257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, btw you can't assume initial lower bound will be at 0,0 < 1240942258 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :On my machine, CCBI 2 runs Mycology in 0.2s. < 1240942263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not runs < 1240942265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :parses < 1240942273 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there is nothing to parse in befunge < 1240942275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's quicker than my parse :D < 1240942277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well. < 1240942278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: = loading fungespace < 1240942291 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I was assuming it was, which is why I just quoted that figure, for comparison. :-P < 1240942316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah you mean space filling the static area with write combining moves, then mmap()ing the file to load and scan that. < 1240942317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1240942318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: so you can't measure actual parsetime? < 1240942349 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I can, that'd just require me actually editing the code and recompiling and everything. :-P < 1240942361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : On my machine, CCBI 2 runs Mycology in 0.2s. <-- what about cfunge. < 1240942365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Horrific < 1240942366 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Less than 0.1. < 1240942372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how much less. < 1240942374 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Planck time < 1240942376 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1240942382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I wish... < 1240942384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Grumble grumble < 1240942401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, Release build of course. < 1240942409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, cfunge prints Mycology's output before you start running it < 1240942414 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :With output to dev/null: 0.03s. < 1240942442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: wouldn't running mycology in planck time require the electronics going a teensy bit faster than light? < 1240942443 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, Damn that is the future version from 2038 where I implemented TRDS but made it work in reality by mistake! < 1240942446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't use it < 1240942447 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI: 0.17s. < 1240942448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for large values of a teensy bit < 1240942452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: not if the electronics were small enough < 1240942458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1240942468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: smaller than planck length? < 1240942468 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, for same reasons as you shouldn't eat a quantum mechanic corpse in nethack. Except in time, not space. < 1240942476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by definition, I think < 1240942484 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what are the advantages of the FUNGE_ATTR_NORET stuff in cfunge? apologies if this is a stupid question < 1240942486 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but I don't think I have intrinsic speed < 1240942494 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, I don't think I have intrinsic PR, so I'd better not < 1240942495 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tombom: gcc might optimize it. < 1240942508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, PR... um < 1240942510 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: CCBI's Mycology loading time is 0.02-0.03s. < 1240942510 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unihorns are hard to come by in RL, I don't want to permanently lose a point of strength < 1240942517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah! < 1240942519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"the game....you all just lost it. Also, I would like to point out that you are now breathing manually." < 1240942520 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAAAAAAAGH < 1240942527 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION breathes very carefully < 1240942531 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1240942545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: what are the advantages of the FUNGE_ATTR_NORET stuff in cfunge? apologies if this is a stupid question <-- why did you read the source. Are you as mad as I am. < 1240942546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1240942551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it isn't to optimize < 1240942555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but to check for bugs. < 1240942573 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"You are also blinking manually." < 1240942576 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FUCK! :-( < 1240942588 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just hope I don't start beating my heart manua—— < 1240942588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, don't paste it here. < 1240942588 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :marking something as noreturn can help the optimiser, but mostly is to suppress spurious warnings < 1240942595 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :i just find it interesting and ok thanks < 1240942602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, exactly. < 1240942605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, sure :) < 1240942617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and fewer false positive warnings -> true positive warnings are easier to spot < 1240942619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, you may want to look at the setup code in funge-space/funge-space.c < 1240942631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(NOT, unless you are insane) < 1240942649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(seriously that is the most horrible #ifdef maze I have seen) < 1240942654 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :oh god < 1240942655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(well used to be, a bit better now) < 1240942655 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1240942660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, you saw it. < 1240942684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, yes or no. < 1240942685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://news.bbc.co.uk/1/hi/technology/8021661.stm < 1240942689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you were wondering about Phorm < 1240942694 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :yes i just saw it < 1240942697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, movntps! < 1240942698 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty hairy < 1240942716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, or haven't you reached the inline asm bit yet? < 1240942725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it would be very funny if you ported cfunge to gcc-bf < 1240942728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but continued with the inline asm < 1240942737 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it would be even funnier if YOU did it :P < 1240942740 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1240942743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, no < 1240942747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it would. For me. < 1240942750 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :all the BF commands translate to ABI < 1240942754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except < and > < 1240942759 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because ABI always keeps track of where the pointer is < 1240942818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, anyway cfunge is correctness > speed and completeness > * > simplicity ;P < 1240942823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.lolworld.com/ < 1240942823 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LOL (Life On Line) Internet Consultants < 1240942824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :We Help You Use the Internet to Expand YOUR World! < 1240942842 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Bah, simplicity is for the simple-minded. < 1240942857 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :pretty impressive < 1240942857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes. You need to check that file too then. < 1240942863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, thanks :) < 1240942869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe that wasn't a good thing. < 1240942899 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm amused by how correctness > * but you still have EXACT_BOUNDS as a compile-time option. :-P < 1240942916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, It is on by default. < 1240942925 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But it's optional. < 1240942931 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How can correctness be optional? < 1240942942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'Nazi' cattle being bred in UK < 1240942945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :— BBC News < 1240942946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, because I'm not sure I agree with your interpretation of this. < 1240942947 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :[ ] Insert bugs < 1240942958 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Meh. < 1240942962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in ick that is on by default. < 1240942963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240942972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: so is your interpretation correct < 1240942972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1240942975 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but that's INTERCAL, where correctness is indeed optional. :-P < 1240942985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1240942989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is a limit to that > < 1240942991 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: "1 vector containing the least point which contains a non-space cell, relative to the origin (env) " < 1240943002 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I don't see how that can't be understood. < 1240943003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: rebuttal? < 1240943017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean when the difference is a whopping 0,010 seconds on this system... between exact bounds and non-exact... < 1240943036 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Although that's another of those "don't take it literally" cases. < 1240943043 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Which I guess is why it can't be understood. < 1240943043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I believe in the freedom of choice ;P < 1240943056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you said you disagree with Deewiant's interpretation < 1240943058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :plz say why < 1240943064 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Since if (0,0) is a space and (1,0) and (0,1) aren't, you have to push (0,0) even though it's a space. < 1240943081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, because it results in a slower implementation ;) < 1240943088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I suspect he is right. < 1240943089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so you were just lying < 1240943090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1240943103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, actually I did think he was wrong once but he managed to convince me. < 1240943108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Still freedom of choice. < 1240943110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:22 AnMaster: Deewiant, because I'm not sure I agree with your interpretation of this. < 1240943112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :3 minutes ago? < 1240943132 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm still not 100% sure. < 1240943151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how come < 1240943177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :funge-98 spec is rather unclear and contradicting in many places. < 1240943193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just don't trust anything non-trivial in it to 100% < 1240943218 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it seems pretty clear to me < 1240943219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the parts inherited from befunge-93 can mostly be trusted. Unless it is for IO where you need to be very careful. < 1240943233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb phone < 1240943337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, about inline asm, there is only one single reason I use it. And only in one single place. < 1240943350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, non-temporal store. You can't do it with plain C. < 1240943358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"non-temporal store"? < 1240943360 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :otherwise I prefer to hope the compiler gets it right. < 1240943387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, doesn't fetch cache lines first, useful when you are going to overwrite the entire cacheline anyway. < 1240943396 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also write-combining. < 1240943405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same effect basically. < 1240943412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, well gcc-bf doesn't have a cache < 1240943412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but without needing to do kernel level stuff. < 1240943426 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could write a considerably more efficient version of memcpy than the one I ship at the moment, though < 1240943430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually I found out today icc can do it with a #pragma. < 1240943436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by messing with the mark at a low level < 1240943438 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but gcc can't < 1240943473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I would assume gcc-bf wouldn't require any porting. < 1240943478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it would just use the C-fallbacks. < 1240943482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1240943485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it would be extremely slow < 1240943490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, if you implement POSIX.. < 1240943490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that's very uncfungelike < 1240943505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I implement bits of it < 1240943514 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eventually I'll hope to implement all the more useful bits that make sense < 1240943521 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm aiming to just implement C89 first < 1240943523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and go from there < 1240943526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, mmap(), socket()/accept()/listen()/bind()/..., ncurses? < 1240943534 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ncurses is easy < 1240943537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just use vt codes < 1240943544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mmap is easy too < 1240943550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :socket is impossible for pure bf < 1240943550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ignoring SIG_PIPE too. < 1240943553 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mmap is rather trivial in gcc-bf < 1240943556 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :sorry, what's gcc-bf? < 1240943562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tombom: gcc backend < 1240943565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :outputs brainfuck < 1240943566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :by ais523 < 1240943570 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not finished yet < 1240943579 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :ah thanks < 1240943591 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although it now feels more like a very buggy program than an unfinished program < 1240943610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ignoring SIG_PIPE is needed for SOCK and for basic output (which must reflect on failed output according to spec) < 1240943643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, . doesn't fail, obviously < 1240943669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I know it won't work in brainfuck... < 1240943685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://74abc3.bikeshed.com/ ← it really accepts any colour! < 1240943721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also last I looked at least 23.5 MB virtual address space was needed to even start cfunge. (ulimit -v), below 16 MB libc.so fails to load even. < 1240943724 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But you need JavaScript enabled for the color to happen. :/ < 1240943732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course you won't need that much in bf < 1240943740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but still it is quite memory heavy. < 1240943743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so you do :-( < 1240943753 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, gcc-bf has 26-bit pointers < 1240943772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err how many MB does that add up to < 1240943780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tl;dc < 1240943782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :20 bits is 1 MB < 1240943786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(to lazy, didn't calculate) < 1240943791 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so 64 MB total < 1240943813 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except you only get 16 MB stack, 16 MB heap + globals combined, 16 MB labels in code segment < 1240943831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I need more than 16 MB heap + globals I think. < 1240943835 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(the actual code can be larger, but you can only have 16 million locations you can branch to/from < 1240943836 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :) < 1240943838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well depends on your libc < 1240943841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :possibly. < 1240943854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and 16 MB that's addressible, but doesn't correspond to anything and so causes undefined behaviour < 1240943897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, However, memory doesn't grow as quickly. Initial level is high, but then (due to memory pools and several other reasons) it doesn't grow quickly < 1240943909 0 :kar8nga!n=kar8nga@f-23.vc-graz.ac.at JOIN :#esoteric < 1240943909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pyfunge needs over 40 MB in ulimit -v to start. < 1240943928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mostly due to python loading so many *.so files < 1240943932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Plof will need over 2GB in ulimit -v to start, on a 32-bit system. < 1240943942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that doesn't make sense., < 1240943944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sense* < 1240943951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: mmap overcommitting to make a memory pool < 1240943962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actual memory usage is minima < 1240943963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :l < 1240943966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :measured in the KBs < 1240943969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sorry no can do. System will refuse it if it is more than physical ram. < 1240943975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HAHA < 1240943978 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: You're wrong < 1240943985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well ram + swap iirc < 1240943986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It mmap's 6GB on my system < 1240943988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Without a qualm < 1240943993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I have seen it refuse it. < 1240943994 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It really does work. < 1240944001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for 6 GB on my 1.5 GB system. < 1240944002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You need MAP_NORESERVE < 1240944004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and some other stuff < 1240944007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240944009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it does work < 1240944016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, MAP_NORESERVE would indeed help. < 1240944017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(MAP_NORESERVE isn't documented but works on at least bsds and linux) < 1240944033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is documented. < 1240944035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on linux < 1240944039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it is non-standard. < 1240944044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not documented on bsd < 1240944048 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1240944639 0 :pikhq!n=pikhq@dialup-4.88.167.247.Dial1.StLouis1.Level3.net JOIN :#esoteric < 1240944673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just noticed that I can reduce loading time even more by MAP_POPULATE < 1240944688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I wish to stab your eyes out. Please give an appropriate date/time. < 1240944690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it makes mmap() pre-fault the pages, thus making sure they are all loaded. < 1240944706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this reduced number of page faults needed < 1240944717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :reducing switches to kernel. < 1240944720 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: mightn't pre-faulting slow it down if the number of pages you have exceeds a cache/ < 1240944730 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because they'd have to be loaded, unloaded, and loaded again < 1240944730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that isn't the same. < 1240944743 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but hm < 1240944746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe. < 1240944773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, give me a program larger than 118K < 1240944782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, in what language/ < 1240944784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and why? < 1240944785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway pre-fault at least loads them to main memory from disk. < 1240944792 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err 128 K < 1240944794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and in befunge < 1240944797 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mycology is 118 K < 1240944801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and my L2 is 128 K < 1240944821 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Just copy it to itself at the end? < 1240944830 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Err, hmm < 1240944833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: your L2's so small, the nehalem has more! < 1240944836 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That sentence doesn't make much sense but I guess you got it < 1240944837 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :↑ new geek joke very funny < 1240944843 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :laughter inducing even < 1240944847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it isn't < 1240944848 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the height of witty < 1240944850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes. I know. This is an old Sempron. < 1240944856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it isn't funny. < 1240944867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I hope one day you can upgrade to a pentium 4. < 1240944870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*ice burn* < 1240944887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I used to have one. It was worse. < 1240944890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and slower < 1240944896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just like yo momma < 1240944898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION on a roll < 1240944916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I regret I told you about the algorithm now. < 1240944928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I will never ever do that again. < 1240944935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :joking is incompatible with befunge < 1240944961 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh, was it joking. Sounded more like "trying to make enimies" < 1240944973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yo momma jokes cause permanent psychological damage, and war < 1240945005 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Your implementation done yet? < 1240945026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It supports TRDS, MVRS, FNGR and has the ghost of mike riley trapped inside. < 1240945030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fairly done. < 1240945037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also kittens < 1240945059 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Have you run it through mycotrds, then? < 1240945078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What I'm trying to say is "no" < 1240945086 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lifthrasiir: you there? < 1240945087 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I realized that < 1240945193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"The smallest entrant was Quod Libet, but version 2 of that seems to have a UI designed by MC Escher" I like quod libet's ui :( < 1240945252 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-027-168.hsi2.kabelbw.de JOIN :#esoteric < 1240945426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: The only thing that needs to know "nummer of non-space cells" is y, right? < 1240945455 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't. It only needs to know bounds. < 1240945459 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :y needs the bounding rectangle of space and nothing more, "nummer of non-space cells" is an impl detail. < 1240945466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :exactly. < 1240945472 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Er, scratch "nothing more", it needs a lot more, but anyway. < 1240945476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1240945496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nummer is like an unabstracted number < 1240945525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, we misread (and mis-copied) it as "number" < 1240945536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, Deewiant didn't misread < 1240945541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it meant number < 1240945545 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1240945554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well misread it so we read it right < 1240945555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1240945595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "The smallest entrant was Quod Libet, but version 2 of that seems to have a UI designed by MC Escher" I like quod libet's ui :( <-- source of quote < 1240945617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: thing about replacing rhythmbox with banshee in ubuntu saves 6MB < 1240945622 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :despite banshee being more featureful and using Mono < 1240945632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is "rhythmbox" < 1240945636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :media library < 1240945639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :player < 1240945639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240945639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :audio < 1240945640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thing < 1240945643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like itunes < 1240945653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right. < 1240945665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for media library I use the file system ;P < 1240945676 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So do I < 1240945723 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so does Banshee et al < 1240945743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they just provide a list that has the tags, tag editor, shuffle mode, etc. < 1240945757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you know? less work? letting computers do work? < 1240945783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :~/musik/(composer|performer|whatever is most useful in this case)/(collection|cd|freestanding|whatever is most useful)/files < 1240945822 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :it's still usually more effort to navigate than a media library though < 1240945831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where files is stuff like 01_Sinfonia_Ciss_Moll_Andante_di_molto.flac < 1240945841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, not really < 1240945857 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :eh well i usually find it that way < 1240945860 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :i guess it depends! < 1240945866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tombom: AnMaster doesn't seem to have a perception of needless work < 1240945870 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, how is ~/musik/kraus/Synphonies_vol3/01_Sinfonia_Ciss_Moll_Andante_di_molto.flac hard < 1240945879 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :not hard < 1240945883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, tab complete! < 1240945890 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :it's just the navigating to it takes time < 1240945892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I use the shell to start the media player anyway < 1240945892 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :wait what < 1240945900 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :yeah then it does take a lot longer < 1240945924 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can't argue about the speed of two things if you deliberately misuse one of them! < 1240945936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom: mplayer ~/mu/kra/S3/01 < 1240945944 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :oh well < 1240945947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, 4 seconds. Timed it. < 1240945961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: shuffling the library? audioscrobbler? < 1240945963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, where is the misuse... < 1240945968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why would I want to shuffle < 1240945971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anything other than playing one single goddamn track? < 1240945982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the misuse is that your'e not meant to start banshee from the command line on one track < 1240945986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*you're < 1240945990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and maybe you don't < 1240945991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I prefer to listen to the symphonies in the right order. < 1240945991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do < 1240946008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :...and we all know AnMaster's needs are enough for anyone < 1240946009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and. How long would it take in banshee < 1240946015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :therefore, media libraries are bad QED < 1240946024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Go to menu. Tick shuffle. < 1240946032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what if I don't want shuffle < 1240946037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DonGo to menu < 1240946041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what if I just want to listen to this synphonie < 1240946041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Don't go to menu. < 1240946043 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Do not tick shuffle. < 1240946046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :find it in my collection < 1240946047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1240946047 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :i don't mind people being a bit unusual with their workflow or w/e as long as they don't force it on others < 1240946055 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :which is unfortunately not uncommon < 1240946056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Click search field. Enter arbitrary substring. Press play. < 1240946063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, I don't force anyone. It is ehird who does. < 1240946064 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :especially in some os stuff < 1240946074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't force anything on you < 1240946085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you seem to be advocating that it is faster. < 1240946094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wasn't comparing starting from command line < 1240946094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because it is < 1240946110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no. You need to move your hand to the mouse < 1240946117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"press play" < 1240946119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you said < 1240946134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Alternatively, press shortcut bound to play. < 1240946144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok that works. Such as enter I hope < 1240946147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, attack the mouse when your opinion is not supported by studies! < 1240946160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what... < 1240946172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I'm just saying I prefer my way. < 1240946178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is fast for finding what I want. < 1240946189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I always know what I'm looking for. < 1240946200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, you wouldn't call this "unusual" right? < 1240946220 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :i don't know < 1240946228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, mhm. < 1240946234 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't really affect me so i guess i don't really care that much < 1240946249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tombom, would you not want to use it yourself? < 1240946255 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :no i wouldn't < 1240946258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1240946291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :free text search in friendly GUI is for newbies ;P < 1240946331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :idea: All newly written pieces of music must have names that allow keeping your fingers on the home row < 1240946336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what do you think ^ < 1240946341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It amuses me that your opinion coincides almost exactly with zzo38's; except the fact that zzo38 states it plainly reveals how ridiculous it is < 1240946369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, "states it plainly"? < 1240946379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is unplain in here < 1240946405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1240946412 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :except (the fact that zzo38 states it) (plainly reveals how ridiculous it is) < 1240946432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240946467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :So why does the fact that zzo38 is saying it makes it inherently ridiculous < 1240946473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ^ < 1240946493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not what I said. < 1240946502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what did you say thenm < 1240946503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then* < 1240946524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(the way that zzo38 says it) (plainly reveals how ridiculous it is) < 1240946525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1240946546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok, so what do you mean with it then < 1240946552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what I said < 1240946559 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then I repeat: So why does the fact that zzo38 is saying it makes it inherently ridiculous < 1240946584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's not. what. I. said. < 1240946605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok... lets try another way... How does zzo38 state it. < 1240946623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Too lazy; didn't google. < 1240946671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Darn, my parseFungespace stack overflows < 1240946683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not tail recursive? < 1240946688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is < 1240946696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then: HUH < 1240946717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm stack overflow == crash right? < 1240946722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in haskell < 1240946732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, stack overflow is-a exception. < 1240946733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in fatal exit or whatever < 1240946737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> mycop `seq` () < 1240946737 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*** Exception: stack overflow < 1240946738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah so it doesn't exit < 1240946740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1240946743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It does in a normal program. < 1240946745 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can catch it. < 1240946746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, isn't the exception a side effect < 1240946752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No. < 1240946754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't you use an ExceptionMonad! < 1240946756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240946758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's of type _|_ aka bottom. < 1240946773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it would be funnier if needed an monad < 1240946786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :All types are (Type | _|_) because infinite loop = error = bottom. < 1240946788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or nomad. < 1240946789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, it wouldn't. < 1240946795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's about as funny as "ha ha, perl is line noise". < 1240946800 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1240946802 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :! < 1240946871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OK, let's se. parseFungespace's "go" is totally tail recursive. < 1240946877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The only other thign it calls is updateFungespace. < 1240946883 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which calls lookupBoundus and maybeGrowBounds twice. < 1240946890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybeGrowBounds :: Bounds -> Int -> ColumnOrRow -> Int -> Fungespace -> Fungespace < 1240946890 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybeGrowBounds b i cr v fs = < 1240946892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : if v > end b < 1240946894 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : then fs { bounds = Map.insert (i,cr) b{ end = v } (bounds fs) } < 1240946896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : else fs < 1240946898 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No stack to overflow there. < 1240946900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lookupBounds :: Int -> ColumnOrRow -> Fungespace -> Bounds < 1240946902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lookupBounds i cr fs = Map.findWithDefault zeroBounds (i,cr) (bounds fs) < 1240946904 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Perfectly innocent. < 1240946910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In conclusion, double tee eff mate. < 1240947047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, TTE < 1240947056 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what < 1240947060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" In conclusion, double tee eff mate." < 1240947065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :double tee = TT < 1240947069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1240947070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :EFF = F < 1240947074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :TTF < 1240947078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then mate < 1240947084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which must be some porn unicode < 1240947085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The "you" in doubleyou is silent. < 1240947092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If you say it fast enough. < 1240947101 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The transition to "tee" sneaks a "you" in. < 1240947107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Just like how "lil" adds the consonants in, somehow. < 1240947116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lilil < 1240947122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1240947124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"lil" meaning < 1240947126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what < 1240947129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Little. < 1240947132 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240947133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slang. < 1240947141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1240947263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> parseFungespace "" < 1240947263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loading package syb ... linking ... done. < 1240947265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loading package array-0.2.0.0 ... linking ... done. < 1240947267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loading package containers-0.2.0.1 ... linking ... done. < 1240947269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace {space = fromList [], bounds = fromList []} < 1240947271 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, I'm not insane yet < 1240947275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> parseFungespace "a" < 1240947275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace {space = fromList [(Point {x = 0, y = 0},97)], bounds = fromList []} < 1240947279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yep, good. < 1240947285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> parseFungespace "aa" < 1240947285 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace {space = fromList [(Point {x = 0, y = 0},97),(Point {x = 1, y = 0},97)], bounds = fromList [((0,Column),Bounds {start = 0, end = 1})]} < 1240947289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Perfectly cromulent < 1240947296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> parseFungespace "aa\na" < 1240947297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fungespace {space = fromList [(Point {x = 0, y = 0},97),(Point {x = 0, y = 1},97),(Point {x = 1, y = 0},97)], bounds = fromList [((0,Column),Bounds {start = 0, end = 1})]} < 1240947302 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it's an issue iwth large inputs. < 1240947305 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hey... < 1240947308 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :There should be two bounds there. < 1240947316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or more. < 1240947317 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1240947376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :your bounds are messed up < 1240947412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240947419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, if you used C it would have been easier to figure out how. Sure the result once you figure it out will be more elegant in Haskell, I agree with that. < 1240947425 0 :ajcc!unknown@unknown.invalid QUIT :"Lost terminal" < 1240947435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Thanks for that baseless, incorrect assertion without evidence. < 1240947447 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I will switch to C immediately; for it lets me bash code without thinking until it works. < 1240947449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, lament wasn't around, so someone had to do it. < 1240947455 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :With printf debugging. You know, just like Debug.Trace in Haskell. < 1240947466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I tend to use gdb though < 1240947477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ghci has a debugger < 1240947480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just don't use it < 1240947483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1240947499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I use debuggers in all languages that have them, rather than printf debugging < 1240947506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :C more so, but also for erlang < 1240947515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in C you need it for segfaults and such at least. < 1240947516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Haskell, understanding your code is given large weight. < 1240947536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I generally find printf debugging faster than using a debugger < 1240947543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Agreed. You need to understand it when you write it < 1240947551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :understanding it the day after isn't very important! < 1240947552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240947566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, the only things I've added are lookupBounds and maybeGrowBounds and their two calls each. < 1240947567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1240947579 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And it's overflowing on lagre input, as well as giving incorrect results, but they don't recurse. < 1240947589 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MY BRAIN IS A FLATTENED PANCAKE OF CONFUSION. < 1240947595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but C tends to have pretty good tools. Such as nice GUIs for interpreting profiling data and so on. < 1240947620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, can you see what was put on the stack < 1240947623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that made it overflow < 1240947635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Probably with the debugger < 1240947643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if the Map functions non-tail recurse < 1240947645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, might be helpful. < 1240947649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That would be very naughty of them < 1240947664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not only naughty, but extremely silly. < 1240947672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240947679 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION asks #haskell < 1240947722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, " ehird: I would guess that they're fairly lazy, so you end up with enormous thunks." wth did that mean < 1240947732 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:41 ehird: Do the Data.Map functions non-tail-recurse? I'm getting stack overflows with a gigantic map. < 1240947733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:41 MyCatVerbs: ehird: I would guess that they're fairly lazy, so you end up with enormous thunks. < 1240947740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it made sense to me :) < 1240947755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, explain it < 1240947757 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kind of < 1240947766 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not the details, just what a thunk is < 1240947776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: A thunk is a function that evaluates the lazy code. < 1240947782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240947784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So (2+2) is a thunk that calculates 2+2 then replaces it with that value < 1240947788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Where 2, 2, and (+) are also thunks < 1240947792 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Data.Map and Data.IntMap are very lazy. list-tries provides strict ops for everything but of course it's only for list keys ;-P < 1240947794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In the 2 case just trivial ones returning, well, 2. < 1240947815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, um can't you use a tuple of x and y as the key then < 1240947824 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :? < 1240947827 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tuple != List < 1240947832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A list is a linked list < 1240947846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(x:(y:[])) would allow things like [1,2,3] to get past type checking and also be wasteful < 1240947851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I meant < 1240947854 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Putting keys of a constant size into a trie isn't exactly useful anyway < 1240947855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240947860 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: ofc < 1240947868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: [{x,y},value] < 1240947872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is erlang syntax < 1240947883 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :int x = 1; < 1240947886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what, an assoc list? < 1240947887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1240947892 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is C syntax for declaring an integer and initializing it to 1 < 1240947892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1240947894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :typo < 1240947900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[{{x,y},value}] < 1240947901 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WELCOME TO ERLANG NEXT STOP (3 years pass) VALUE < 1240947902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1240947908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's an alist < 1240947918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, so use a dict or ets table < 1240947919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1240947927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dict is implemented in terms of list < 1240947928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: let x = x < 1240947928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ets is not < 1240947931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Haskell synta < 1240947931 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x < 1240947939 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :[]{}() < 1240947941 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is C++ syntax < 1240947945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :,[.,] < 1240947949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Brainfuck syntax < 1240947960 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :{;} < 1240947962 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is D syntax < 1240947969 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : < 1240947972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Whitespace syntax < 1240947979 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :>:#,_@ < 1240947983 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is Funge syntax. < 1240947984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is a smiley < 1240947995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ADD ONE TO COBOL GIVING COBOL < 1240947997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Cobol syntax. < 1240948016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : 601 FORMAT (4H A= ,I5,5H B= ,I5,5H C= ,I5,8H AREA= ,F10.2, < 1240948016 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : + 13H SQUARE UNITS) < 1240948019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Fortran syntax. < 1240948031 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :foo(X, Y). < 1240948034 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is Prolog syntax. < 1240948049 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :))))))))))))))))))))))))))))))))))))))))) < 1240948051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :public static void main(args[]) { < 1240948051 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is LISP syntax. < 1240948053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Java syntax. < 1240948061 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't parse, though. < 1240948072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what < 1240948074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is this meme < 1240948081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Nor does ))))))))))))))))))))))))))))))))))))))))) on its own. < 1240948085 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: You started it. < 1240948090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1240948091 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: That was more of a joke. :-P < 1240948095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:44 AnMaster: Deewiant: [{x,y},value] < 1240948095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:44 AnMaster: that is erlang syntax < 1240948096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I went away before you did < 1240948096 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :#+1&/@{1,2} < 1240948098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes you did AnMaster. < 1240948099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1240948100 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is Mathematica syntax. < 1240948101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1240948104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I typoed it < 1240948108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : [{{x,y},value}] < 1240948108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :19:48 AnMaster: I went away before you did < 1240948110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is AnMaster syntax. < 1240948111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :makes more sense < 1240948115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: :-D < 1240948121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1240948126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets not do it that way < 1240948130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets use dict < 1240948140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, or you could use a list I guess. < 1240948147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and just search through it as needed ;P < 1240948148 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tea, milk, bread < 1240948150 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is list syntax < 1240948162 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which makes it O(O_O) I think < 1240948183 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :re⋅cur⋅sion /rɪˈkɜrʒən/ noun. See recursion. < 1240948188 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is dict syntax. < 1240948208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :butts < 1240948211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so. What about intercal one. < 1240948212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Slereah syntax. < 1240948221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and < 1240948224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you are all wrong < 1240948237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you should show the equivalent code in the language < 1240948242 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :DO :1 <- #0¢#256 < 1240948245 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is INTERCAL syntax. < 1240948251 0 :WangZeDong!unknown@unknown.invalid PRIVMSG #esoteric :Did someone say my name? < 1240948254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, Intercal Prinston < 1240948264 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :spelling. < 1240948274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :WangZeDong. < 1240948278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is faux-Chinese syntax. < 1240948281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or Korean or whatever. < 1240948300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so < 1240948303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :solved the issue yet < 1240948308 0 :WangZeDong!unknown@unknown.invalid NICK :Slereah < 1240948314 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Içtaîl < 1240948317 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That is Ithkuil syntax. < 1240948330 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PRIVMSG #esoteric :That is IRC syntax. < 1240948332 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is IRC syntax. < 1240948338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway why can't haskell detect when it is getting too lazy and busy-collect it < 1240948345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is evaluate the lazy bits < 1240948354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when it detects it is getting close to the limit < 1240948355 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That breaks semantics. < 1240948361 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"- that is quine syntax, preceded by its own quotation" - that is quine syntax, preceded by its own quotation < 1240948362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"- that is quine syntax, preceded by its own quotation" - that is quine syntax, preceded by its own quotation < 1240948364 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You can't just arbitrary evaluate stuff. < 1240948372 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :s/ry/rily/ < 1240948372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, Does it affect anything as long as it is purely functional. < 1240948375 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes. < 1240948378 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, it does. < 1240948379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Infinite lists, for instance. < 1240948384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HUR I'LL JUST GO EVALUATE THIS < 1240948386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well you could avoid that case, < 1240948389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess. < 1240948389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :HUM DE DUM THIS SURE IS TAKING A WHILE < 1240948391 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No you can't < 1240948393 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1240948393 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Halting problem < 1240948394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can you detect it is infinite? < 1240948396 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah right < 1240948397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1240948415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so how are you going to work around the issue. < 1240948437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Figure out how to do more forcing on the map. < 1240948441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Or use a different structure. < 1240948461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see. < 1240948483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Any other language with this specific oddity < 1240948487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of one. < 1240948489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Any lazy language. < 1240948491 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Clean? < 1240948494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, such as < 1240948498 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Clean. < 1240948500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Lazy K. Clean. < 1240948502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah < 1240948505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1240948514 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :D, if you mark everything as lazy. < 1240948517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, iirc I heard about "eager haskell" < 1240948550 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Lazy Bird is the best. < 1240948555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no idea what it was < 1240948564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, D has lazyness < 1240948564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1240948569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No. It has laziness < 1240948587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, meh, you know it was a simple typo < 1240948605 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but... does it have... < 1240948608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lazerness! < 1240948626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I don't feel myself today. < 1240948629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :feel like* < 1240948751 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :_=-_-- looks a bit lazery I guess < 1240948772 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(And can compile) < 1240948788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :_ = -(_--) < 1240948797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it decrements _, then takes the negative and assigns it to _ < 1240948806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :_ = 3 --> _ = -2 < 1240948821 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: No sequence point, so undefined like in C, I think. < 1240948879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Right < 1240948908 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Shouldn't you be programming your fancy impl to rule them all? < 1240949002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Decided I wasn't evil enough to do that to everyone < 1240949032 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Gave up because Data.Map overflowed your stack? :-P < 1240949065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Wait, you mean befunge? < 1240949074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I am meditating on a solution to the data.map issue. < 1240949087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :including "increase the stack size" < 1240949096 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1240949137 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Are you using insert'? < 1240949145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that would be the Mike Riley solution < 1240949149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :increasing stack size < 1240949154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: findWithDefault and insert < 1240949162 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Use insert'. < 1240949166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :What does that do. < 1240949170 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Strict. < 1240949175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I love you. < 1240949184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hypha/Fungespace.hs:57:25: Not in scope: `Map.insert'' < 1240949187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Why must you lie. < 1240949187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, on initial insert you can know it won't be overwrite any existing cell btw. < 1240949191 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1240949194 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Crock. < 1240949199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Wa < 1240949199 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :t < 1240949207 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :'Twas an exclamation. < 1240949214 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Correction: use insertWith' const. < 1240949231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fuckingStrictInsert = Map.insertWith' const < 1240949301 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Awesome, having that as a top level definition makes it monomorphic by default < 1240949311 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Monomorphism restriction. < 1240949316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I know. < 1240949320 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's so awesome that it sucks cocks. < 1240949328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's just how awesome and empowered in its sexuality it is. < 1240949330 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Be -Wall clean and it'll rarely bite you. < 1240949343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hypha/Fungespace.hs:64:26: < 1240949343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Warning: This binding for `x' shadows the existing binding < 1240949345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : defined at Hypha/Fungespace.hs:19:8 < 1240949347 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In the definition of `updateFungespace' < 1240949349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hypha/Fungespace.hs:64:28: < 1240949351 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Warning: This binding for `y' shadows the existing binding < 1240949353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : defined at Hypha/Fungespace.hs:20:8 < 1240949355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In the definition of `updateFungespace' < 1240949357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Repeat ad infinitum. < 1240949359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I should probably rename the accessors. < 1240949383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ok, modules loaded: Hypha.Fungespace. < 1240949383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> < 1240949418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> mycop `seq` () < 1240949418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*** Exception: stack overflow < 1240949420 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: olol < 1240949456 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Could be your fault, then, and not Map's. :-P < 1240949466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Feel free to debug my code :) < 1240949473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Looks fine tho. < 1240949489 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You're probably too lazy < 1240949498 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have no argument. < 1240949503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : space :: Map Point Int, < 1240949503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : bounds :: Map (Int,ColumnOrRow) Bounds < 1240949510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Maybe being exclamatory there would help? < 1240949527 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Doubtful but go ahead. < 1240949544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hypha/Fungespace.hs:32:4: < 1240949544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Unexpected strictness annotation: !Map < 1240949546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In the definition of data constructor `Fungespace' < 1240949548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : In the data type declaration for `Fungespace' < 1240949550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Failed, modules loaded: none. < 1240949555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I guess you can't be strict with "data"s < 1240949566 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Silly, you can't strictify a type constructor. < 1240949570 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :!(Map Point Int) < 1240949577 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1240949594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Hypha.Fungespace> mycop `seq` () *** Exception: stack overflow < 1240949604 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Toldya it was doubtful. < 1240949647 0 :BeholdMyGlory!n=behold@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1240949765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, " In the definition of `updateFungespace'" <-- camelcase!? < 1240949767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1240949776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is Haskell's convention. < 1240949787 0 :WangZeDong!n=butt@ANantes-259-1-78-252.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1240949788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I always thought you were an underscore person < 1240949809 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :he's an underscore person undercover < 1240949826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, hey! You go troll haskell for a bit ok? < 1240949829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In Haskell, camelCase. In Lisp/Factor, hyphen-ated. In Python/Ruby/whathaveyou, under_score. In C, unixstyle. < 1240949836 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: huh < 1240949852 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, ehird is coding a befunge interpreter in haskell. < 1240949854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Time to do your job. < 1240949855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1240949858 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :hyphen-ated FTW, too bad so few languages can do it < 1240949864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, agreed < 1240949866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and ? too < 1240949867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like < 1240949873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :messes-with - in-fix, un-fortunately. < 1240949875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(int? variable) < 1240949888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean that is awesome. < 1240949897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ruby does that < 1240949899 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Just force - to be surrounded by whitespace, shrug. < 1240949900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comes from lis < 1240949900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :p < 1240949907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Still hard to read. Dylan did it tho < 1240950407 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240950419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what about ! then < 1240950419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like: < 1240950425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(set! foo bar) < 1240950435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ruby does that too. < 1240950447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1240950458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, but not the - thing... < 1240950462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1240950466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not worth it then! < 1240950481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, does ruby use tail recursion for loops < 1240950489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or does it have while/for or similar < 1240950501 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ruby is an OO scripting language. < 1240950516 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What do you expect? < 1240950516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1240950527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant You can have functional OO < 1240950530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Neither < 1240950535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh < 1240950537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It uses object methods + blocks < 1240950537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what then < 1240950541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um < 1240950542 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :array.each {|x| puts x} < 1240950544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for loops < 1240950545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1240950547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :array.map {|x| x+2} < 1240950550 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You can do a loop, mostly while < 1240950552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so how do you do a mainloop < 1240950552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for x in y < 1240950553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just does < 1240950555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x.each {|y| ..>} < 1240950557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*... < 1240950561 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If it were functional I'd've said that it's functional. < 1240950561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :But mostly you should either < 1240950564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :1. use while < 1240950567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :2. use a method < 1240950570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah < 1240950606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Hm Do anyone think there will be a R7RS or not. < 1240950609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at some point. < 1240950645 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://groups.google.com/group/comp.lang.scheme/browse_thread/thread/6f354002fb7f128e/0f4b2fe269bc5cae < 1240950677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No. Scheme will never ever ever be updated again. < 1240950678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ever. < 1240950684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1240950687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, funny < 1240950692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that would be sad < 1240950699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's true, actually. < 1240950705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :R6RS is not very much of a Scheme. < 1240950712 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So the latest Scheme standard is R5RS. < 1240950721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A followup to which is not planned. < 1240950732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so you need to base r7rs on r5rs + the good bits of r6rs < 1240950741 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Good bits? < 1240950743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Which ones? < 1240950748 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, surely it can't be *all* bad < 1240950755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The bits that aren't bad are in R5RS. < 1240950765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is it really that bad < 1240950861 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240950870 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Why? < 1240950888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, good question < 1240950907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It takes all the orthogonal, minimalist, pure goodness of R5RS and piles a bunch of not-that-well-thought-out practical libraries on top, into the core language. < 1240950909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I suspect ehird is exaggerating. < 1240950910 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A _lot_ of them. < 1240950921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.r6rs.org/ratification/results.html < 1240950933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The negative ones -- including just about every scheme implementer who voted -- < 1240950944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are by far the majority of the ones with arguments. < 1240950950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And they are good ones. < 1240950956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It didn' teven pass by a large amount < 1240950962 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"67 electors voted to ratify draft 5.97 as R6RS. 35 electors were opposed to ratification. Thus 65.7% of those who voted, voted in favor of ratification. This is more than the 60% required for ratification." < 1240950963 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That is a new margin < 1240950970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In previous votes the requirement was a lot higher < 1240950979 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :60% of the entire set of people who COULD vote, I believe < 1240951032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so why did so many abstain < 1240951041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Apathy? < 1240951042 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :clearly it is on them we should blame it. < 1240951044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Loss of faith in the process? < 1240951049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :R6RS is a joke. < 1240951061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://scheme-punks.org/wiki/index.php?title=Main_Page FTW. < 1240951068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what technical aspects make you think so < 1240951083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have already mentioned, and also pointed to a list of very good arguments. < 1240951099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: Deewiant: It takes all the orthogonal, minimalist, pure goodness of R5RS and piles a bunch of not-that-well-thought-out practical libraries on top, into the core language. < 1240951100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: A _lot_ of them. < 1240951102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: http://www.r6rs.org/ratification/results.html < 1240951104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: The negative ones -- including just about every scheme implementer who voted -- < 1240951106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: are by far the majority of the ones with arguments. < 1240951108 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :20:35 ehird: And they are good ones. < 1240951110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :In case you didn't see < 1240951134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why are the yes votes at top < 1240951139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the comments < 1240951161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So it looks like the overwhelming majority support it from a cursory glance? < 1240951167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1240951175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :As opposed to not an all that large margin, and with very little arguments compared to the "no" side's many < 1240951220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, having a good standard library would be good though < 1240951231 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That's good -- it has one. < 1240951237 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://srfi.schemers.org/ < 1240951254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I needed a random number in one r5rs program and couldn't find any prng! < 1240951261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the stuff I'm talking about < 1240951265 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://srfi.schemers.org/final-srfis.html About 98 of them (a bit less since some are worse versions of later ones, and some are R6RS only) < 1240951274 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I propose you are blind or an idiot: < 1240951275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SRFI 27: Sources of Random Bits < 1240951276 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Draft: 2002/02/12-2002/04/12 < 1240951278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Final: 2002/06/03 < 1240951286 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://srfi.schemers.org/srfi-27/srfi-27.html < 1240951298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes sure, but does any r5rs implementation support it. < 1240951307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then I mean "all" < 1240951311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :portability < 1240951311 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://srfi.schemers.org/srfi-implementers.html < 1240951321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Point of scheme < 1240951323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Your head < 1240951325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Whoooooooooooooooooooooooooosh < 1240951344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, chicken doesn't support 27 < 1240951368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor does guile, and many others < 1240951387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's their problem; a flaw in their implementation. Also guile is not R5RS. < 1240951404 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :cfunge doesn't support TRDS either < 1240951404 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Guile omits an important aspect or two of R5RS; calling it a Scheme is dishonest < 1240951414 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Calling it a Funge is dishonest < 1240951417 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, true. But random() is a bit more common < 1240951421 0 :sebbu!n=sebbu@ADijon-152-1-57-131.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1240951426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: No. < 1240951432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Guile omits aspects of THE ACTUAL SCHEME STANDARD < 1240951433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you are arguing against ehird here < 1240951436 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It is NOT r5rs-compliant. < 1240951439 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I time travel more than do randomness < 1240951451 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm not arguing, I'm kidding. < 1240951468 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :r5rs is not the actual scheme standard < 1240951468 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not saying a implementation missing it is not a scheme < 1240951480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :No, a chicken with a pulley in the middle is < 1240951490 0 :sebbu2!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1240951517 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: actual means current. < 1240951524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but what I'm saying is that a language lacking such is fine as an esolang, but impractical otherwise. < 1240951531 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lament: the scheme community at large disagrees with you. < 1240951562 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the scheme community is silly, but you're more silly. < 1240951578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yay ad hominem < 1240951583 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :More of lament's wonderful discussion < 1240951590 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :this isn't ad hominem < 1240951597 0 :WangZeDong!unknown@unknown.invalid PRIVMSG #esoteric :More of ehird's lament < 1240951599 0 :WangZeDong!unknown@unknown.invalid PRIVMSG #esoteric :zing! < 1240951600 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Argument by you're silly. < 1240951602 0 :WangZeDong!unknown@unknown.invalid NICK :Slereah < 1240951603 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no < 1240951606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tempo 300 and some 1/32 notes... Insane... < 1240951608 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not arguing anything < 1240951612 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying you're silly < 1240951619 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's not ad hominem, that's just an insult < 1240951631 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :or rather a statement of fact < 1240952122 0 :Hiato!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1240952550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, indeed. < 1240952775 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1240952780 0 :jix!n=jix@77-20-205-106-dynip.superkabel.de JOIN :#esoteric < 1240952907 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240953415 0 :tombom_!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1240953877 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote closed the connection < 1240954019 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-027-168.hsi2.kabelbw.de JOIN :#esoteric < 1240954314 0 :kar8nga!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240954384 0 :tombom_!unknown@unknown.invalid QUIT :"Peace and Protection 4.22.2" < 1240954435 0 :tombom!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240954732 0 :bsmntbombdood_!n=gavin@97-118-134-159.hlrn.qwest.net JOIN :#esoteric < 1240954932 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION performs calculations < 1240955013 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :1+1 < 1240955044 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :That was a temporally precise statement. < 1240955057 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Its object was also precise. < 1240955114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, but can you do: 2+1 < 1240955180 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :2 = s(1) < 1240955191 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :x = y -> f(x) = f(y) < 1240955206 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :2 + 1 = s(1) + 1 < 1240955207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1240955218 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :a + s(b) = s(a+b) < 1240955222 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :a + b = b + a < 1240955236 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :a = b and b = c -> a = c < 1240955246 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :2 + 1 = s(1+1) < 1240955283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, and then? < 1240955294 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Well, you know 1+1 apparently < 1240955309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1+1 is 2 < 1240955311 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :And the s of any known number is also known < 1240955323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :successor indeed < 1240955327 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, so the answer is... < 1240955328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :3? < 1240955331 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Subtract 2 from 0, store result in N, branch to next statement if negative. Subtract N from 1, store result in ANS, branch to next statement if negative. < 1240955332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1240955334 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :The answer is ANS. < 1240955337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I always thought it was 4 < 1240955374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, what about 6*7 then < 1240955392 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Ow, that one's difficult. < 1240955405 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster : I did a program to do that automatically, remember? < 1240955413 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It was my first program here < 1240955413 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Can I have different representations of 6 and 7? < 1240955414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, no I don't remember < 1240955415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :6 7 * p < 1240955436 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :http://membres.lycos.fr/bewulf/Russell/Mult2.py < 1240955439 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Run that one < 1240955439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, as in another base? < 1240955444 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Enter 6 * 7 < 1240955463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, timeout < 1240955467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on the url < 1240955473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1240955475 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, it'd be nice if you could separate one of the numbers into individual bits. < 1240955475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :dns failure < 1240955514 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Fine < 1240955529 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :I guess binary will do that. < 1240955533 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, what about doing what Slereah did... Take any numbers in the form x * y < 1240955546 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Here it is : http://pastebin.com/m550eb7f6 < 1240955554 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if I can do that. < 1240955588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, if the language is TC you can! < 1240955604 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :Languages, schmanguages. I'm not TC. < 1240955612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, ok just do 6 * 7 then. < 1240955612 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Your face is TC < 1240955619 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :42. < 1240955620 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1240955625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, hah :P < 1240955636 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, simple: < 1240955682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :substract life from 0, store result in N, branch to next statement if negative. < 1240955698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :substract N from universe, store result in N2, branch to next statement if negative. < 1240955715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :substract N2 from everything, store result in ANS, branch to next statement if negative. < 1240955722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the answer is in ANS :P < 1240955731 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :s/N from universe/universe from N/? < 1240955746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :kerlo, oh right. < 1240955782 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Don't touch the universe, kerlo < 1240955853 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :I can't help it! < 1240955904 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh yes, touch my universe. < 1240955931 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :I can't help that, either. I'm constantly in contact with everyone's universe. < 1240955969 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Slut < 1240957643 0 :bsmntbombdood_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1240957686 0 :bsmntbombdood_!n=gavin@97-118-134-159.hlrn.qwest.net JOIN :#esoteric < 1240957956 0 :jix!unknown@unknown.invalid QUIT :"omg strobe!!!1111111" < 1240958464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A < 1240958567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AKA < 1240958580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :z < 1240958581 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ABRAKA < 1240958758 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1240959465 0 :bsmntbombdood_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1240959536 0 :bsmntbombdood!n=gavin@97-118-129-241.hlrn.qwest.net JOIN :#esoteric < 1240959919 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1240961717 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION names Pandemic II virus Confickre < 1240961719 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Conficker < 1240961732 0 :FireFly!unknown@unknown.invalid QUIT :"Later" < 1240962364 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wut < 1240962394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Pandemic II; it's a flash game where you control a disease and buy things like transmission via rodents, resistance, symptoms etc, and you have to kill the whole human population. < 1240962406 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Also they shut down their air/ship ports etc, especially Madagascar. < 1240962408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :odd idea. < 1240962412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's fun. < 1240962416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why especially Madagascar < 1240962421 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :SIR, A MAN IS SNEEZING IN BRAZIL! < 1240962439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Madagascar just has one port, a ship one, and it shuts down if someone coughs anywhere in the world, pretty much < 1240962447 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Nah, not really < 1240962451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, strange < 1240962462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, so hard to spread to it I guess. < 1240962466 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1240962470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1240962475 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Not really. < 1240962475 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Let's just hope swine flu hasn't played it. < 1240962481 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's a pretty easy game < 1240962653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION restarts until he starts in madagascar < 1240962691 0 :nooga!n=nooga@acha67.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1240962701 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :marblecake also the game < 1240962711 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thank you, welcome to weeks ago < 1240962809 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :ehird : Nah, something new came up < 1240962814 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :moot actually won < 1240962817 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :thank you, welcome to geeks row < 1240962818 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Old. < 1240962820 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :The Times didn't just throw the votes away < 1240962820 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Welcome to days ago. < 1240962825 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*Time < 1240962826 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :*yesterday < 1240962828 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's Time. < 1240962829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not the times. < 1240962942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just discovered something. < 1240962949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Possibly important. < 1240962964 0 :nooga!unknown@unknown.invalid PRIVMSG #esoteric :this can't be, tell us < 1240962971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Luckily this IRC line is large enough to fit it: Don't blow your nose with tight fitting headphones. < 1240962971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :DISEASE ARRIVES IN MADAGASCAR DISEASE ARRIVES IN MADAGASCAR < 1240962972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Er < 1240962983 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hahah < 1240963000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, my ears feel poped inwards :( < 1240963013 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Yay! < 1240963016 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Damn that Madagascar! < 1240963017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hold your nose and breathe out < 1240963024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Exactly. < 1240963033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, no, moving the ears is more effective. < 1240963034 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hold your mouth and say the Lord's Prayer. < 1240963039 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(GET IT? GET IT?) < 1240963040 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Turn into a donkey < 1240963054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, can't you move your ears vertically? < 1240963060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Nnnnnoo... < 1240963071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, some people can. Google. < 1240963074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits until he gets 60 evolution point < 1240963074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s < 1240963079 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Don't your ears hang low? < 1240963087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, what < 1240963101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm talking about maybe 1/4-1/2 cm < 1240963103 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Don't they wobble to and fro? < 1240963112 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Can't you tie them in a knot? Can't you tie them in a bow? < 1240963125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, don't your eyebrows wobble to and fro? < 1240963161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits for all of madagascar to get infected, then buys waterborne < 1240963173 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Repeating English nursery rhymes amongst Europeans is pretty much pointless :P