< 1270944214 0 :Alex3012!~chatzilla@ool-18b989d3.dyn.optonline.net JOIN :#esoteric < 1270944289 0 :augur!~augur@128.91.24.67 JOIN :#esoteric < 1270944705 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1270944867 0 :Tritonio_GR!~Tritonio@athedsl-255233.home.otenet.gr JOIN :#esoteric < 1270944995 0 :Tritonio_GR1!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1270945372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :iPhone OS 4.0: multitasking++ folders++ threaded mail++ book thing++ ultra-draconian restrictions basically outlawing writing your application in anything other than objective-c at any step(!) in the development process--------------------------------------------------------------------- < 1270945373 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :swing and a miss < 1270945385 0 :comex!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1270945399 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Wait, wait, wait < 1270945408 0 :comex!comex@c-98-210-192-54.hsd1.ca.comcast.net JOIN :#esoteric < 1270945410 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :You can't use, say, Haskell to generate Objective-C code? < 1270945451 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Correct.\ < 1270945476 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Objective-C, C, or C++. So. The crap languages. < 1270945487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: indeed < 1270945495 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: well good luck calling the objective-c iphone apis from c/c++ < 1270945500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :without using the objc message send functions directly < 1270945516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i may just throw away my iphone < 1270945517 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: True. < 1270945572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although this makes me really want an ipad, as much as I really know I don't want one: http://www.touchpress.com/ < 1270945613 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's an ebook, no, it's a fact explorer, no, it's a data sheet, no, it's a database with computation! < 1270945617 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: They also ban "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited" < 1270945627 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How would they KNOW? < 1270945629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :must. make. myself. hate. < 1270945630 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This bans... Cross-platform C libraries. < 1270945639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Do you want to try their patience? And because of the structure of the code. < 1270945643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Not patience. < 1270945644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Whatever. < 1270945659 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: You submit your code to them, and they sign the resulting binaries if it's to their liking. < 1270945692 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What is the POINT of forbidding even generated code, as long as the generated code is readable enough? < 1270945743 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Lockin. < 1270945781 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :That latter restriction about compatiblity layer sounds like pure lock-in anyway. < 1270945785 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"Oh, you want to develop for the iPhone? Well fuck your efforts to develop for anything else." < 1270945790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: hm? < 1270945792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no, you submit binaries... < 1270945795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :afaik < 1270945802 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Ah. < 1270945811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they'll just do heuristics on the machine code, most likely < 1270945823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :easy enough I'm sure: unless it's a simple to-gcc compiler < 1270945829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that optimises heavily enough to erase runtime stuff < 1270945836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and detecting libraries will be easy < 1270945865 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: They did this in response to Adobe making a Flash compiler targeting iPhone OS. < 1270945869 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is considering buying a T-Mobile G1 and putting an AT&T card in it, to avoid contracts < 1270945886 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So people could make apps in Flash and stick it on the iPhone. < 1270945894 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : alise: They also ban "Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited" <-- who are they? < 1270945896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AT&T? Why would you want to be with that network? < 1270945907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: don't tell AnMaster, he's the one making a big deal about ignoring me < 1270945911 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, because that's what we're currently using, and my dad doesn't feel like switching < 1270945912 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "Apple". < 1270945915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: bah < 1270945923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh for ipod? < 1270945925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1270945927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol fail < 1270945927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iphone* < 1270945927 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Also, you're a retard who doesn't pay attention to anything. < 1270945934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: They /dislike people using their network connection, and blame them for their bad performance/. < 1270945938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, no I have ehird on /ignore < 1270945940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that explains it < 1270945945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :alise is the name. < 1270945950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :respect it or stfu. < 1270945964 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... The topic in question is fairly well-known by now. < 1270945974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I don't really care about apple products < 1270945982 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, not a chance in hell of convincing my dad to switch, though < 1270945990 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :He's of the "It's good enough for now" opinion < 1270946012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: well, you cannot buy a T-Mobile G1 without a contract. Besides, you don't want a G1: they can only run old versions of the OS and are very slow. < 1270946027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If you really want to, get a Google Dev Phone: a G1 without contract. But it's much more expensive. < 1270946031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, if I started talking about advanced flight aerodynamics and helicopter simulation, would you follow me then? Unless you share that special interest or work within the area, I doubt it < 1270946041 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1270946051 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'd buy a Nexus One, but it's expensive without contract < 1270946053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same thing really, I'm not very much interested in apple < 1270946064 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants "cheap without contract" < 1270946074 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Preferably Android, not iPhone < 1270946075 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: And I want a pony. < 1270946083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Go to Finland; their phones are mostly without-contract. < 1270946094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :iPhone, cheap? Ha! The non-contract 3G S is about $700 or so. < 1270946094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, do you need a smartphone? < 1270946105 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, I want one < 1270946108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Of course he needs a smartphone, otherwise he could just buy any old crud for $3.50 < 1270946113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1270946141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, an IQ 100 phone isn't too expensive ;P < 1270946159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a "nokia 3120 classic", which isn't even symbian. < 1270946168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think it is S40 or such. Not sure < 1270946178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it has java and flash though, no touch screen < 1270946183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Thanks for telling us about /your/ phones, AnMaster: we care. < 1270946199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :In fact, it is very relevant to the discussion as dumbphones are comparable in every way to smartphones and have a direct link as far as advice goes. < 1270946216 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a RAZR :/ < 1270946220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :RAZR? < 1270946231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh motorola < 1270946250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, clamshell, don't they easily break? < 1270946262 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :This one has survived many falls < 1270946272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :razr that's oldschool < 1270946307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, no I mean in the hinge due to wear when opening it and such < 1270946320 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, *shrug* < 1270946364 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, I had a clamshell model before. Some old Ericsson. It had problems in the hinge after some time < 1270946405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, ah yes: http://en.wikipedia.org/wiki/Ericsson_T28 < 1270946426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it still had an antenna sticking out at the top < 1270946439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why did they remove them btw? < 1270946489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :?- \+ (nat(N), \+ (N+N =:= 2*N)). ;; I wish this terminated < 1270946492 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Does the Dev phone cost less than Nexus One? < 1270946520 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :I had some clamshell Siemens phone (actually two of them). Both died in the same way (just suddenly didn't start / charge). < 1270946530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: contractless? dunno < 1270946537 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :on contract all phones will be cheaper than dev < 1270946537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"It was probably best known as the first phone that used Lithium polymer batteries.[1]" huh? I never knew that < 1270946545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: note that the dev phone, not only is it expensive, but seriously the g1 is shit < 1270946553 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can only use an old version of the OS, and it is very slow < 1270946562 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1270946586 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, are you SURE that the T-Mobile G1 can't be had without a contract for cheap? < 1270946611 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :The Nexus One is available without a contract. < 1270946636 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, it's expensive < 1270946650 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Yup, that's the nature of phones in the US. < 1270946683 0 :Gregor!unknown@unknown.invalid TOPIC #esoteric :Topic closed by the moral police | fuck the police | (pics or it didn't happen) | (so it didn't happen then?) | http://tunes.org/~nef/logs/esoteric/?C=M;O=D < 1270946713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I am sure. < 1270946718 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Difference between Droid and Droid Eris? < 1270946736 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No idea. The Droid apparently has some serious shittiness issues. < 1270946748 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh? < 1270946749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Eris has been axed, it seems. < 1270946767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes; I don't recall what exactly but I remember some criticisms of the Droid as it basically being tatty and badly-made. < 1270946782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Honestly I'd just splash out for the Nexus One, as it isn't on contract at all. < 1270946793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And you can buy it ready for AT&T. < 1270946816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And, well, it's the latest and greatest, so you won't be disappointed. < 1270946823 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The tough part is convincing my dad to pay $529 < 1270946828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's $529, which is an alright price for a brand-new unlocked phone. < 1270946830 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Well, yeah. < 1270946836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A dip into the piggy bank might help... < 1270946838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Yup, that's the nature of phones in the US. <-- import from EU? < 1270946857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: l o l < 1270946866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course shipping may be more < 1270946870 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And my understanding is that if I buy Nexus One for AT&T, even though it's "unlocked", it will only work with AT&T < 1270946883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, how is that "unlocked" then? < 1270946891 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: the reason contractless phones are not cheap is because they subsidize the phones if you buy them alongside contracts < 1270946912 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has a contractless phone < 1270946921 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: network setups vary from provider to provider; it may not work with providers that do not have the infrastructur < 1270946923 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :+e < 1270946969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, huh? isn't that standardised? < 1270946974 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, Sgeo: Although all American networks use the same GSM bands, they use different 3G bands, so the 3G still won't be compatible. < 1270946991 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :If the phone just supported all 3G bands, it would work on all networks. < 1270946997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :coppro, eh. what about those "dual band" phones and such? < 1270947030 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :The Nexus One is tri-band over GSM and tri-band over 3G, but that's not sufficient to cover all the necessary bands. < 1270947030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1270947031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, ^ < 1270947045 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :It would have to be sinc-band :P < 1270947051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, "sinc"? < 1270947058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have this huge urge to write a program to generate theorems. < 1270947067 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Five < 1270947073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1270947092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, who needs 3G anyway ;P < 1270947108 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric : Now that Sprint has _4G_! < 1270947123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it does? < 1270947133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc there is 4G by Telia in some parts of Stockholm < 1270947135 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Claims to anyway *shrug* < 1270947146 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :"First nationwide 4G network" < 1270947154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, but what I was aiming at was GSM + EDGE < 1270947159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that may be GPRS < 1270947162 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :works fine for me < 1270947173 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Sprint is a totally different technology, not GSM or related. < 1270947178 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :It's CDMA (?) < 1270947180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's like 640 kB. Enough for everyone. < 1270947198 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :"No one will ever need more than 640K of " < 1270947226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, basically, I have this when using my phone for data traffic: http://en.wikipedia.org/wiki/EDGE < 1270947284 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :I guess that Sprint 4G is WiMax or something related (and that Telia 4G is LTE or something). < 1270947307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, I have no idea < 1270947340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Ilari, google seems to indicate it is LTE < 1270947343 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is somewhat scared he might end up dropping the phone < 1270947377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"* On December 14, 2009, the world's first publicly available LTE service was opened by TeliaSonera in the two Scandinavian capitals Stockholm and Oslo." < 1270947382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :says Wikipedia < 1270947423 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :My dad has suggested the possibility of just getting an iPod Touch < 1270947442 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1270947466 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Actually, current LTE is pre-4G (AFAIK, no official specs on final actual 4G yet). < 1270947479 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I was talking to someone on the bus, and he had a Nexus One. He complained about the keyboard. I tried it. The only thing that I disliked about it was that when I turned the phone to the side, there was a bit of a delay < 1270947493 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And I prefered the keyboard in the turned-to-the-side mode than regular < 1270947604 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's the main language for Android dev.? Java? Can I develop in Haskell? < 1270947727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :java. < 1270947730 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sort of. < 1270947745 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can do stuff in haskell then do the ui in java, with tweaking, and you can write whole programs in e.g. python with android scripting environment < 1270947756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: ipod touch has no mobile internet < 1270947768 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to wrangle prolog into spitting out algebraic identities < 1270947778 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, I know, and that would really really suck < 1270947813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it would < 1270947816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the ipod touch is near-useless < 1270947841 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Currently, it seems like the plan is to just get me Intenet access on my current phone < 1270947851 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :s/phone/plan/ < 1270947858 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Which would be needed anyway for the Nexus One < 1270947872 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So I need to convince my dad to spend $529 extra :/ < 1270947877 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I can chip in maybe $150 < 1270947996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : What's the main language for Android dev.? Java? Can I develop in Haskell? <-- can't you do native nowdays iirc? < 1270948014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : So I need to convince my dad to spend $529 extra :/ <-- wth? < 1270948023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, internet is expensive there < 1270948028 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, I want a Nexus One < 1270948050 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :He's def. going to give me Internet access one way or the other < 1270948059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo, is that $529 per month on the plan? < 1270948063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or what? < 1270948074 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, $529 total for the Nexus One < 1270948077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1270948078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1270948083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that makes a LOT more sense < 1270948292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm trying to make prolog spit out algebraic identities just by making a bunch of rules id(A,B) < 1270948315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but the problem is that prolog tries to give me tons of examples for the variables in A and B where it fits as opposed to saying "yes, true for 'enm all" < 1270948316 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*em < 1270948924 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is there any kind of insurance in case my phone breaks or gets lost or stolen? < 1270949158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apart from the police? no < 1270949173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well my identity printer keeps printing A+-A=0 again and again and again :( < 1270949240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm trying to make it print shallow (less than a certain number of nested applications), non-A=A, identities :( < 1270949344 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I have a terrible track record when it comes to phones < 1270949365 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although I can get my email address engraved on it, so < 1270950226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why is this stupid code not parsing... < 1270950496 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How vulnerable is the Nexus One to breaking, compared to the RAZR? < 1270950497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1270950501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: I don't know. < 1270950518 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's less "tough", probably, because it has heavy complex electronics, not just thin lightweight plastic. < 1270950526 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But on the other hand it will have a thicker coating. < 1270950545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Just try not to drop it. I've dropped my iPhone a few times and it's been fine, but never from much of a distance and not really onto hard concrete. < 1270950551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They're solid things, smartphones, generally. < 1270951369 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I would really like to write a computer algebra system in Prolog. < 1270951397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although really I'd need to add some sort of nested application syntax, so that I could write: < 1270951413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...well, things, without a bunch of sequential existentials < 1270951445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Say g[x,f[x,y,z],z] = f(x,y,z,R), g(x,R,z,R2) or something. < 1270951454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Where R2 is automatically the "result parameter" of a function if you do e.g. < 1270951465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f[x] := foo[x,bar[x,x],x] < 1270951473 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which would translate to < 1270951496 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f(X, R) :- bar(X, X, R1), foo(X, R1, X, R). < 1270951502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :still, I don't like the []s < 1270951663 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION offered to pay $300 from his own money < 1270951691 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, this would also generalise to variables: < 1270951714 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x := f[x,y,z] => x(R) :- f(x,y,z,R). < 1270951729 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although with side-effects it'd have to be more. < 1270952125 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Can I run Marketplace applications in the Android emulator? < 1270952313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. Look it up? < 1270952377 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will just try it < 1270952794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how best to write the function [true,true,true,false,true,true,false,false,false,...] => [3,2] in Prolog < 1270952824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. unary "true"s form a number, then false is a list separator; two falses in a row end the list < 1270953928 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Emulator took a while to start < 1270954121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I want F: list nat -> Boolfuck < 1270954124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :such that < 1270954129 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders how to fake multitouch < 1270954155 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :forall n in xs, eval_with_some_appropriate_input_method (F xs) n = xs[n] < 1270954188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(use parallel processing with timeout; basically, generate tons of boolfuck programs until they generate the first length(xs) terms correctly for those inputs, then return it) < 1270954234 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :If my phone actually starts ringing, I'll scream < 1270954246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ring ring < 1270954247 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ring ring < 1270954347 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's impossible to use the notifications thing like this < 1270954362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :are you using the latest os version? < 1270954365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the one on nexus one < 1270954373 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or does it only do the ugly old ui one < 1270954381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm considering buying a nexus one now < 1270954446 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's the latest OS version, but I think the Nexus One is a bit modified, and I'm not sure how to get it on here < 1270954452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is it 2.1? < 1270954452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :eclair? < 1270954454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if so cool < 1270954456 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and i don't think you can < 1270954505 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: btw the nexus one has some slight colour issues -- can't find a link right now -- but basically < 1270954528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :some (pathological) greyscale images can produce dull colours due to the way the screen works (basically silly subpixel magic to boost resolution) < 1270954542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :side-effect is that text is less sharp than on the Droid, despite having a "higher" resolution (not if you compare by the same metric) < 1270954549 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but somehow I doubt you'd notice it, were you not looking < 1270954555 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and in every other way the nexus one is better < 1270954575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: besides...the nexus one has a fucking 1ghz cpu < 1270954609 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think offering to pay $300 of it with my own money is helping convince my dad < 1270954626 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Just wish it wasn't effectively locked into AT&T < 1270954634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you will be able to crackunlock it :P < 1270954648 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: btw if you are expecting the on-screen keyboard to be nice for long periods of time -- say ircing for more than 15 minutes -- < 1270954656 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you will (probably) be disappointed < 1270954667 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean, I get fed up with the iPhone keyboard and it's better than Android's < 1270954673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you have patience it should be fine though < 1270954681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but what i'm saying is... you're not going to write emails on this thing < 1270954685 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's better than typing with what the RAZR has < 1270954690 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :quite < 1270954701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but when you have a smartphone you want to do MOAR < 1270954711 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I actually got to play a bit with a Nexus One < 1270954723 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Talked to someone who goes to my school while we were on the bus < 1270954778 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm... droid vs nexus one: droid's keyboard is a tiny tiny thing, don't like it; droid only has 2.0 for now (2.1 soon); droid only has 550 mhz vs 1ghz (!); apparently droid's actual making is a bit flimsy; droid has 256 megs of ram vs 512; text is noticably sharper on droid, doesn't have the colour issues the nexus one does < 1270954790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(the droid screen is pretty amazing -- 265 dpi!) < 1270954807 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so basically if you care about the screen a lot go droid, but if you care about having an actually nice phone go with the nexus one < 1270954808 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Locked-into a contract is apparently not an option < 1270954812 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :besides < 1270954814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :only verizon has droid < 1270954821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and... verizon suck donkey balls < 1270954831 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :More than AT&T? < 1270954840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1270954845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :verizon are the ultimate suck - and I'm not even in the us < 1270954850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they brand the phones with their name and such < 1270954857 0 :Alex3012!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86 [Firefox 3.6.2/20100316074819] < 1270954857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I get the impression that Sprint is the best network < 1270954865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but they're CDMA like verizon, not GSM < 1270954869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so less phones support 'em < 1270954895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: oh the nexus one display is OLED, that's awesome < 1270954920 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think the only other real option is iPod Touch < 1270954920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :get it, /anything/ that causes any sort of profit for OLED producers is a good thing < 1270954931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ipod touch isn't really an option if you want to actually do smart things with your phone < 1270954945 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Which is not QUITE as bad as it sounds because there are a LOT of wifi hotspots near where I live < 1270954946 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But still < 1270955032 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you like xkcd, xkcd has a droid and says the screen is the most orgasmic thing ever created < 1270955044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you like xkcd you're retarded < 1270955064 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How long does it take an Android phone to power down? o.O < 1270955074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"These issues aside, I’m really happy with my Droid. The screen is incredible, it’s much faster and easier to use than the G1, and I wouldn’t trade away the physical keyboard and persistent SSH for anything." < 1270955079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Who powers down a smartphone? < 1270955081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There's a lock button. < 1270955095 0 :Alex3012!~chatzilla@ool-18b989d3.dyn.optonline.net JOIN :#esoteric < 1270955114 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, what about temporarily preventing calls from being received? < 1270955128 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, how do I stop the emulator from shutting down? < 1270955146 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stopping calls from being received is pressing hang up whenever someone tries to call. < 1270955154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or turning on aeroplane mode or analogous :P < 1270955164 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION currently uses airplane mode < 1270955191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Android bug, be warned: "# Sometimes, when arranging home screen icons, you feel sad and you’re not sure why." --xkcd < 1270955199 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1270955213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"# Sometimes the GPS stops getting locks on satellites until the phone is rebooted. (This may be related to the GPSStatus app, installed to avoid this kind of thing.) To be fair, satellites are very small and far away, so you can hardly blame it for having trouble." < 1270955217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://blog.xkcd.com/2010/02/08/android-bug-reports-songs-rovers/ --etc < 1270955245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"# Sometimes an Android user will think they hear someone say their name, but they’re not sure, so they say ‘Yes?’, but then it turns out it was something else." < 1270955249 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"# Occasionally, when swiping the lock sideways to unlock the phone, the lock button images are rotated by 90 degrees. This is probably connected to your Jabber server somehow." < 1270955255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I could go on; it's the funniest thing xkcd has written in years. < 1270955376 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION clicks the emergency call button < 1270955398 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION dials a non-emergency number < 1270955416 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"Call not sent, ******* is not an emergency number!" < 1270955454 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is so glad that this thing can't make actual calls < 1270955466 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Because if it could, I just accidentally prank-dialled 911 < 1270955491 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It thinks 999 is not an emergency number < 1270955538 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :So, after putting in the wrong pattern 5 times, it forces you to wait 30 seconds < 1270955591 0 :songhead95!~jay@c-71-232-230-180.hsd1.ma.comcast.net JOIN :#esoteric < 1270955593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"911 " "...beep...beep..." "Uh, sorry, wrong number. " < 1270955599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I meant to dial 495398459911. < 1270955924 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still can't see a way to access the Marketplace from the emulator < 1270955931 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It does have Internet access, though < 1270956272 0 :dslex!~dslex@2a01:e34:ee17:a440:224:2cff:fe6b:da89 JOIN :#esoteric < 1270956297 0 :dslex!unknown@unknown.invalid PART #esoteric :? < 1270956476 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote host closed the connection < 1270956497 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :" The certificate is used only to establish trust relationships between applications, not for wholesale control over whether an application can be installed. The most significant ways that signatures impact security is by determining who can access signature-based permissions and who can share user IDs." < 1270956498 0 :songhead95!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1270956545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: http://www.displaymate.com/Nexus_iPhone_ShootOut.htm < 1270956550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's just the disply < 1270956563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :note that the bad assessment of nexus one is based on the perspective of someone who really cares about displays < 1270956585 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I would rather just get something not restrictively locked down < 1270956621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for instance: < 1270956626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(protip: nothing) < 1270956657 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Buy the phone without service and insert your own SIM card. Includes a Nexus One phone case, wall charger, and USB cable. Free shipping in the continental US." < 1270956657 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Android's locked down? < 1270956659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not locked down at all < 1270956666 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: dude i'm talking about the nexus one < 1270956670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which runs... android < 1270956683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Two versions of the device are currently offered. Both versions support four GSM radio frequencies (850/900/1800/1900), but the supported 3G/UMTS bands will differ depending on the version selected. When ordering, you'll be able to select either of the following devices: < 1270956684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * 3G coverage on networks that use the 850 MHz, 1900 MHz, and 2100 MHz frequency bands (recommended for use on AT&T in the US) < 1270956684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * 3G coverage on networks that use the 900 MHz, AWS, and 2100 MHz frequency bands (recommended for use on T-Mobile in the US) < 1270956684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all it is is < 1270956689 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the bands the two use are different < 1270956692 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I meant, locked down in terms of installable software < 1270956702 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the AT&T one will get better coverage with AT&T < 1270956706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'll still WORK with t-mobile < 1270956709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just not as well for hardware reasons < 1270956715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: howso < 1270956720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nexus one has marketplace < 1270956725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can install your own package files < 1270956785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Users are able to gain root privileges on the device by unlocking its bootloader using the fastboot command "fastboot oem unlock."[46] Unlocking the bootloader allows the user to install other firmware images that give the user root access. Obtaining root privileges enables a user to override protected operating system features, install arbitrary software, and enable internet tethering to share the phone's 3G network connection via a wireless LAN, among < 1270956787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :other things.[47][48] Upon running the fastboot command, the user is presented with a Google-created screen stating that unlocking the bootloader will void the warranty.[49] The popular CyanogenMod build of Android has already been released for the device.[50] < 1270956797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can even get root on it in an official way < 1270956840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: so... < 1270956863 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, that's why I'd really rather have Nexus One than iPhone < 1270956884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I never once pushed iPhone < 1270956894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.displaymate.com/Motorola_Droid_ShootOut.htm ;; more dissing of nexus one display < 1270956896 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I never suggested that you did < 1270956903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm just telling you that the Nexus One display isn't very good < 1270956913 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and if you care about that sort of thing, like you want really crisp text... get the droid if you can < 1270956922 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise get the nexus one as it's better in other ways < 1270956928 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Contract == no deal < 1270956932 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Dad's rules, not mine < 1270956941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.displaymate.com/Nexus_Droid_ShootOut.htm ;; nexus vs droid < 1270956958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well you can get unlocked droid... < 1270956961 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :motorola milestone < 1270956969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you'd have to import it i think < 1270956972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :from europe < 1270956998 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How much would that cost? < 1270957008 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm looking it up now < 1270957012 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and apparently milestone is gsm, so it'd work on at&t < 1270957036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :eh apparently it's tuned for t mobile bands < 1270957068 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nah you'd have to import... < 1270957092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: well it's $552 in the uk < 1270957100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so find somewhere that ships to US and add shipping cost... not pretty < 1270957101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :go for nexus < 1270957109 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you probably use a shitty computer display and don't care < 1270957125 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The keyboard is what makes me lean to Droid very slightly < 1270957138 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Don't care so much about display < 1270957222 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.displaymate.com/Motorola_Droid_ShootOut_files/image004.jpg droid < 1270957223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.displaymate.com/Motorola_Droid_ShootOut_files/image003.jpg nexus < 1270957228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(of course much smaller IRL) < 1270957236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you are fine with that ... then it just comes down to keyboard < 1270957243 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if it's only very slightly .. just get nexus < 1270957250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :getting milestone would be a bitch and it would be very experimental and unsupported < 1270957264 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The biggest problem really is cost < 1270957273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :besides, nexus is pretty < 1270957274 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :droid is ugly < 1270957281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: well importing milestone would cost you top dollar < 1270957295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nexus is the cheapest you will get a contract free android phone < 1270957550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Maybe I can write the funge in ATS. < 1270957560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :REDDIT SEZ IZ LIKE ML BUT WITH SPEEEEEEEED < 1270957572 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, just choose a language < 1270957584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :German < 1270957588 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Even BASIC is a better choice than no choice. < 1270957768 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm. What's the lock button on Nexus One? In this emulator, it's the Hangup button, but Nexus One doesn't have a hangup button as far as I know < 1270957821 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Pattern lock thingy decided to just ignore me < 1270957867 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Power down button also works < 1270958110 0 :elmo77!~100235368@CPE0017ee09ce6d-CM001bd7a89c28.cpe.net.cable.rogers.com JOIN :#esoteric < 1270958218 0 :elmo77!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1270958533 0 :lament!unknown@unknown.invalid QUIT :Quit: lament < 1270958571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[I hate that indentation algorithm; can't I tweak it? < 1270958572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ah, yes, of course, but this manual will not tell you how.]] < 1270958573 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Umm... fuck you too? < 1270958671 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Docs for what? Some Prolog thing? < 1270958740 0 :Oranjer!unknown@unknown.invalid PART #esoteric :? < 1270958976 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: sml mode for emacs < 1270958986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'm trying to formulate a signature for a fungespace module < 1270958988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So far I have < 1270958993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : type fungespace < 1270958994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val blank : fungespace < 1270958994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val get : fungespace * coords -> int < 1270958994 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val put : fungespace * coords * int -> unit < 1270959001 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What other operations do you think I'll find useful at first? < 1270959028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A bounds-calculating method? < 1270959039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's two coords, right? Min and max. < 1270959135 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The Alarm Clock just crashed < 1270959456 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: BTW, do you think Judy Arrays would work well for fungespace? < 1270959623 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's a Judy array? < 1270959680 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://judy.sourceforge.net/ < 1270959701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's 4:21; I have to go outside and do stuff tomorrow. < 1270959703 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Should I bed myself? < 1270959763 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I think I confused the fake accelerometer < 1270959776 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps alise for being awake < 1270959786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm not a norn < 1270959792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can you make masochistic norns i wonder < 1270959821 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ye.. actually, hm. Maybe have "pain" decrease for normally painful activities < 1270959824 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or would that not count < 1270959848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Make an increase in pain correspond to an increase in pleasure, as opposed to any negative variables. < 1270959975 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pain, as a drive, is, in and of itself, a negative variable < 1270960007 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although we could make high concentrations of the chemical equate to low input to the brain < 1270960037 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I... think < 1270960040 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Anyways, go to sleep < 1270960117 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :k < 1270960120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1270960525 0 :Sgeo_!~Sgeo@ool-18bf618a.dyn.optonline.net JOIN :#esoteric < 1270960569 0 :alise!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1270960688 0 :Sgeo!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1270962133 0 :wareya!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1270965748 0 :wareya!~wareya@cpe-74-70-140-214.nycap.res.rr.com JOIN :#esoteric < 1270966266 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1270966360 0 :jcp!unknown@unknown.invalid NICK :id_est < 1270966386 0 :id_est!unknown@unknown.invalid NICK :jcp < 1270966439 0 :jcp!unknown@unknown.invalid NICK :id_est < 1270966524 0 :id_est!unknown@unknown.invalid NICK :jcp < 1270968190 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1270969129 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1270969315 0 :jcp!unknown@unknown.invalid QUIT :Quit: I will do anything (almost) for a new router. < 1270969858 0 :wareya!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1270970565 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1270972326 0 :wareya!~wareya@cpe-74-70-140-214.nycap.res.rr.com JOIN :#esoteric < 1270972799 0 :clog!unknown@unknown.invalid QUIT :ended < 1270972800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1270973915 0 :impomatic!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86 [Firefox 3.5.9/20100315083431] < 1270973932 0 :Tritonio_GR!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1270974068 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1270979449 0 :tombom!~tombom@wikipedia/Tombomp JOIN :#esoteric < 1270979957 0 :FireFly!~firefly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1270979963 0 :FireFly!unknown@unknown.invalid QUIT :Changing host < 1270979963 0 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1270980017 0 :EgoBot!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1270980017 0 :HackEgo!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1270980470 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1270980911 0 :HackEgo!~HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1270981136 0 :ellisonch!~celliso2@adsl-76-199-7-1.dsl.chmpil.sbcglobal.net JOIN :#esoteric < 1270981168 0 :HackEgo!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1270981820 0 :HackEgo!~HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1270982148 0 :ellisonch!unknown@unknown.invalid PRIVMSG #esoteric :hello. can anyone point me towards a reMorse specification or set of programs? possibly even an interpreter? Particularly for the reMorse2.- variant. I've found the article on the esolang wiki, but the link to the spec is broken and there are no sample programs. < 1270982167 0 :Alex3012!unknown@unknown.invalid QUIT :Max SendQ exceeded < 1270982320 0 :Alex3012!~chatzilla@ool-18b989d3.dyn.optonline.net JOIN :#esoteric < 1270982564 0 :HackEgo!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1270982823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1270982871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ellisonch, tried waybackmachine or such? < 1270982890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://web.archive.org/web/*/http://members.tripod.com/rkusnery/remorse.html < 1270982897 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe something useful there? < 1270982921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://web.archive.org/web/20080403122701/http://members.tripod.com/rkusnery/remorse.html seems useful for example < 1270983054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I added that link to the page on the wiki < 1270983113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ellisonch, hope that helps < 1270983406 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ellisonch, finding an interpreter may be harder, unless there is one at http://esolangs.org/files/ < 1270983413 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which doesn't seem to be the case < 1270983450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(And I doubt waybackmachine has that. Very often it doesn't even have the images of the page...) < 1270983994 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1270989793 0 :MizardX!~MizardX@unaffiliated/mizardx JOIN :#esoteric < 1270989998 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1270991717 0 :myndzi!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1270992918 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1270992918 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1270993425 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Hey, cfunge locks up on fungot < 1270993425 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: what on earth did you figure out that < 1270993437 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fungot: top < 1270993437 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: dammit. what happens < 1270993458 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fungot: Starts eating up all my memory and eventually has to be killed due to using some 7.5 gigabytes < 1270993459 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: pythonesque list? when length is wanted? somewhere in between, i will alter the style sheet < 1270993466 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Don't know about that. < 1270993514 0 :alise!~alise___@212.183.140.1 JOIN :#esoteric < 1270993526 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Don't know enough about Judy arrays to be able to say. < 1270993543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: They're 256-tries. Basically. < 1270993557 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What's an n-trie < 1270993557 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :For hashtables; though I'm sure you could tweak what number they are. < 1270993570 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Trie? :P < 1270993572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://judy.sourceforge.net/doc/10minutes.htm < 1270993575 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know what a trie is < 1270993577 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :^ I found this quite helpful < 1270993606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I gather it means the nodes are chars < 1270993612 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So evidently... yeah < 1270993635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Apparently they're quite good at hash tables, and you can just initialise them to NULL, and also they're good for sparse stuff. < 1270993638 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which gets me interested... < 1270993676 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'd say that being good for dense stuff is more important < 1270993689 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1270993705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Judy_hashing.pdf < 1270993706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How to use Judy to create a scalable hash table with outstanding performance and automatic scaling, while avoiding the complexity of dynamic hashing. < 1270993707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://judy.sourceforge.net/examples/index.html < 1270993712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://judy.sourceforge.net/examples/Judy_hashing.pdf < 1270993779 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't feel bothered to read that stuff through properly right now; if it looks good to you, give it a shot :-P < 1270993811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: That .pdf is just two pages long. < 1270993818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And the 10 minute intro is mostly fluff ;-) < 1270993882 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, it looks like a decent hash table :-P < 1270993930 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right, but Judy doesn't do hashing at all by itself. < 1270993940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think you'd use two nested Judy arrays, each with a one-wod key. < 1270993945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I think it's optimised for that sort of thing. < 1270993952 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Still, what's the expanded acronym of the thing you use, so I can look it up? < 1270993978 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Basically, just an array of boxes < 1270993994 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's my own Funge-specific thing, so it doesn't have much of a name :-P < 1270994062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AABB or whatever? < 1270994073 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Axis-aligned bounding box < 1270994078 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I.e. a box. < 1270994097 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I just used that because it sounds a bit fancier than "Box" :-P < 1270994157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1270994171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So are all the boxes a fixed size or something, and you just allocate them around wherever changes? < 1270994180 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, dynamically sized < 1270994182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I should probably read the code. < 1270994186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Decided how, roughly? < 1270994210 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :For easy cases like file loading it's the smallest box in which the file fits :-) < 1270994243 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(Which is a poor solution for sparse files, which shows up in Fungicide as a loss to cfunge) < 1270994297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Why would that be a loss to cfunge, not you? < 1270994309 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :A loss of CCBI to cfunge < 1270994314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I didn't ask about the special cases ;-) Mind, I'm just curious: I'm unlikely to use your system because I'm an experimenter at heart. < 1270994315 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I.e. CCBI loses < 1270994317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Ah. < 1270994349 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :All cases are more or less special < 1270994375 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The default case, for a p into an unallocated location, is a 17*17 box centered there < 1270994799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)? < 1270994800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s(X, lam [(Y, lam [(Z, R) :- Y(Z,R1), X(Z,R1,R)])]). < 1270994864 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1270994899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1270994912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The problem with adding higher-order predicates to Prolog is that it gets fucking ugly. < 1270994918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This would be better: < 1270994919 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s/2 :: ((A,B,C)?, ((A,B)?, (A,C)?)?)? < 1270994919 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s X \(Y, \(Z,R) :- Y(Z,R1), X(Z,R1,R)). < 1270994925 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but requires currying to work, which it can't < 1270994928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(because you can't return values) < 1270995072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rat(A/B) :- B \= 0, gcd(A,B,1). < 1270995080 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prolog won't allow you to enumerate all rationals with this definition :(( < 1270995547 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Does INTERCAL have any multithreading kind of things? < 1270995605 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Where's ais when you need him < 1270995937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1270995948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's lock-step and not multi-cpu, and it makes no fucking sense, but it has it, yes < 1270995973 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So how does it work < 1270996015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nobody has any clue. < 1270996025 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Read the C-INTERCAL manual? < 1270996033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://c.intercal.org.uk/manual/vd89dqoq.htm < 1270996077 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://c.intercal.org.uk/manual/tigcnnv0.htm#Multithreading-using-WHILE ;; addition using multithreading, fuck yeah < 1270996107 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Alright, nexting stacks are per-thread < 1270996113 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's what I wanted to know :-) < 1270996131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What on earth are you doing? < 1270996140 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Implementing ICAL < 1270996194 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Down with the cfunge machine! Fuck yeah! < 1270996201 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Wait, isn't it IFFI? < 1270996210 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The one you're thinking of is < 1270996217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, do that one. < 1270996222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No. :-P < 1270996273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I hate you, and your family. < 1270996301 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Naw, you're just saying that < 1270996313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't even know your family, so I have no qualms with hating them. < 1270996333 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I find no docs for IFFI, FWIW. < 1270996345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think it's in either cfunge or C-INTERCAL source tree. < 1270996358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or, you know, the æther. < 1270996367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: Hey, cfunge locks up on fungot <-- what? < 1270996367 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: *sigh* i must be doing it < 1270996377 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Just that. < 1270996382 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHAT IS THE MEANING OF THIS < 1270996384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :$ cfunge fungot-load-freenode.b98 < 1270996384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :RAW >>> :leguin.freenode.net NOTICE * :*** Looking up your hostname... <<< < 1270996384 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :^C < 1270996385 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: or no responses at all, but the outfile only has the parameters that led to the current sub. maybe fnord can just happen in the usa < 1270996398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, huh? Doesn't happen with ccbi? < 1270996402 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nope. < 1270996402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what broke recently then < 1270996419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I've started working on my MLfunge -- finally -- and then I realised that it doesn't have hash tables and I'll have to implement them myself. http://pastie.org/914048.txt?key=jjvwhv7j8jfnuzq32ppumw < 1270996420 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Woe is I. < 1270996436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: probably your hacks around being slow as fuck < 1270996443 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Why hash tables? :-) < 1270996449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm wget http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 doesn't work < 1270996450 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's the 1cfa paper, irc bot? < 1270996456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1270996457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :html < 1270996460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION opens in browser < 1270996463 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob_plain/HEAD:/fungot.b98 < 1270996464 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: i suppose if i coded it in java < 1270996470 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fungot: No, that really wouldn't help. < 1270996470 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: as long as you are. thanks, krystof.) a variety of things for cmpauxmd.o. i < 1270996484 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Because I thought "oh, this will be dumb and simple". < 1270996502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If I used Standard ML of New Jersey, I could use hash-tables; but MLton is a more conservative implementation. O'Caml has them, too. < 1270996503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, first line of cfunge -v pleaase < 1270996506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :please* < 1270996507 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You can use whatever trees they provide (surely they do provide?) < 1270996509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I know what options you used < 1270996513 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Latest bzr, any options < 1270996519 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But currently: cfunge 0.9.0 [+con +trace +exact-bounds +ncurses p:64 c:64] < 1270996520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, any options? < 1270996522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1270996529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, did you use the new ip list or not? < 1270996532 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :As in, I tried all relevant permutations < 1270996533 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Both < 1270996536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1270996538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Here's the types in the Basis Library of Standard ML: (strictly speaking, even this is optional!) http://mlton.org/BasisLibrary < 1270996546 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Both 32 and 64, both new IP list and not, both concurrent and not < 1270996552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I tried without exact bounds. < 1270996553 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They do provide a slight SML/NJ compatibility layer -- though not with this -- and the MLton structure, which has a hashing function: < 1270996556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://mlton.org/MLtonStructure < 1270996561 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Apart from that, nope. < 1270996572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Remember, SML was designed to have very precise formal semantics. < 1270996574 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Heh. Have fun. < 1270996577 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Adding anything to the language makes this a harder task. < 1270996590 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't remember because I didn't know. < 1270996593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So the strategy is pretty much "provide the fast basic structures, let the user implement the rest". < 1270996599 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not very familiar with the MLs. < 1270996639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, that was the whole point: it originated as a tactic-writing language in a theorem prover. Later, it became generalised as a language to define languages in: and you want your code-specification of a language to be precise, so the SML standards do the hard part, i.e. providing a rigorous formal semantics. < 1270996655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it locks up deep inside libc here < 1270996665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in the SOCK stuff < 1270996669 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Does it also eat up tonnes of memory for you? < 1270996670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which I haven't changed recently at all < 1270996681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Talking to me or AnMaster? < 1270996688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I could always use... Mythryl. :-) < 1270996689 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: AnMaster. < 1270996692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no < 1270996706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it just times out connecting < 1270996715 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I had to kill it because it made my machine swap at over 7 gigs < 1270996726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, can't reproduce yet < 1270996736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how does your fungot-load-freenode.b98 look? < 1270996736 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i selected ' trigger' for my cgi script running somewhere? < 1270996748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: In fact, I don't even see a function to adjust the size of an array. < 1270996766 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Right; you need to put in the IP for leguin.freenode.net (or whatever works I guess) since orwell is down now < 1270996771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aha < 1270996776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I imagine they are expecting that it will usually cause a reallocation anyway. < 1270996790 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: heh. < 1270996816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: http://www.standardml.org/Basis/array.html <-- the entirety of the array functions < 1270996831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm < 1270996832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1270996886 0 :tombom!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1270996927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I wonder if I could use some sort of tree to partition up fungespace. < 1270996936 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You could. < 1270996940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Say we have a 256x256 space; then there would be a tuple of 0-128 and 128-256. < 1270996954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Inside the former, 0-64 and 64-128. < 1270996965 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Look into quadtrees. :-) < 1270997006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Still, it sounds like it'd be quite inefficient. < 1270997015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it locks up but it doesn't grow very fast the ram usage at least < 1270997023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, less than a mb in several minutes < 1270997037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how long did it take for you to fill up that ram? < 1270997050 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :About 10-20 seconds maybe < 1270997058 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Could be due to some other settings < 1270997100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think I know one way it could happen for you but not me: < 1270997101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) bt < 1270997101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#0 0x000000000040e104 in stack_pop (stack=0x0) at /home/arvid/src/own/cfunge/trunk/src/stack.c:142 < 1270997115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :spot the weirdness < 1270997124 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: stack=0x0 :-) < 1270997131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, indeed. < 1270997142 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://pasteit.ghost1227.com/1340 may or may not help in causing it. < 1270997145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Hmm, so it's not per-coordinate; you get NW/NE/SW/SE. < 1270997158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I need to implement this so I'm trying to get my head around it :-) < 1270997169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think I want tuples, not arrays; nested tuples. < 1270997171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So < 1270997171 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I wonder why it locks up in the file output code btw < 1270997178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, why is it writing a file < 1270997188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :type quadtree = Leaf of int | Branch of quadtree * quadtree * quadtree * quadtree < 1270997201 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: If I understand what you mean by per-coordinate, I think you might want k-d-trees < 1270997212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also why didn't the assert trigger, it is compiled with asserts.. < 1270997213 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I don't want per-coordinate, though; quadtrees sound absolutely fine. < 1270997217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They're probably pretty fast, right? ... Right? < 1270997227 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :IIRC stinkhorn uses octrees < 1270997239 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And it's faster than cfunge, so yeah :-P < 1270997255 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1270997259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Octrees? < 1270997264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How would that help for 2D? < 1270997277 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Dunno, maybe it's trefunge-generic < 1270997306 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, Stinkhorn actually implements Trefunge; I'd forgot about that < 1270997315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay it is writing to a filename called "" < 1270997326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which indicates something is indeed quite wrong < 1270997347 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Okay, no < 1270997350 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :warning: -3 doesn't do anything yet < 1270997356 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1270997365 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: So I guess the Funge-Space is there at least in part but not everything is :-) < 1270997369 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, octrees would actually help for 2d right? Less traversals. < 1270997389 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Haskell, on the other hand, has a magnificently expressive type system. It has dependent types" wot < 1270997399 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I suppose, but how to split a 2D space like that? (I don't know, maybe it's easy and/or obvious) < 1270997416 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes some drawings < 1270997456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, there? What revision of cfunge is fungot currently running on? < 1270997456 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: " subject matter" is a perfectly good solution out there that was also my computer science class, but i < 1270997500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Eh, I can't draw it. < 1270997504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But basically, I'd make the regions cone-shaped. < 1270997529 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: And you think the sines and cosines involved in that are fast?-) < 1270997539 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Touche. < 1270997544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Quadtree it is. < 1270997558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have no idea how to expose pattern-matching in SML, so let's just assume I can. < 1270997591 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Hmm, I really want a mutable quadtree; if I just have a functional one, then I have to update every parent to update a child. < 1270997594 0 :MigoMipo!~migomipo@84-217-0-155.tn.glocalnet.net JOIN :#esoteric < 1270997597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(I'm sure Okasaki would have some magic trick to avoid this.) < 1270997710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, unable to reproduce, lockup yes, memory trashing no < 1270997723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the stack thing didn't happen again weirdly enough < 1270997729 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well start with the lockup < 1270997742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :binary revision search then < 1270997973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :strangely enough it happens with older revisions too < 1270997983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at older fungot revisions < 1270997984 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes. you should get " fnord that doesn't seem to < 1270998036 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fungot seems to suggest it's a stringmode bug < 1270998036 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: i think ti's are pretty nice though. have fun. :) that has it's advantages < 1270998120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: My build system will be rather simple: MLton doesn't support incremental compilation :-) < 1270998138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm < 1270998173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm trying to find last working revision of both fungot and cfunge but failing to do so < 1270998173 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: stuff like new! miracle! space-age! are getting overused. why move if it's that camera we're talking about < 1270998188 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Maybe it never worked and it's still running on Rc/Funge-98 < 1270998190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And has not many special compiler options; all optimisations are aggressively done always. < 1270998192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what data files does it need to have created? < 1270998199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, har. I ran it before I know < 1270998202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'm pretty sure fizzie did switch it over to cfunge. < 1270998203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't know; I just ran it from scratch < 1270998218 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: With CCBI it connected and started ponging and such, with cfunge it hung. < 1270998316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well it is bouncing between a ^ and a o. The o is not in the original source as far as I can tell < 1270998323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it *could* of course have been written there. Hard to tell < 1270998350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait, I'm looking at the wrong fungot file in the editor < 1270998350 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: about odd and even streams are in general very cool.... :) is it possible for there not to be < 1270998384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well no it isn't there in the one it is running either < 1270998423 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Notice that the fungot.b98 is loaded at 0,100 < 1270998423 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: it's a recursive verb. ' void main() char x input; fnord main() tweak < 1270998430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh right... < 1270998522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1270998536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pratchett.freenode.ne < 1270998536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pratchett.freenode.ne < 1270998536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >31g :3g':-#^_ 1+ < 1270998536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : >:3g:#v_ > < 1270998542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't think that is correct < 1270998546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from dumping funge space < 1270998604 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI doesn't even end up in that code < 1270998608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1270998621 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't hit that ^, at least < 1270998623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess SOCK read/write buffer is wrong < 1270998637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :somehow < 1270999190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no it isn't SOCK code as far as I can tell < 1270999194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just fungot itself < 1270999195 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ' fnord /a/b/ /a/b/ /a' layout would make better graph out of those pin boxes, you know < 1270999209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that keeps writing that line over and over < 1270999210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wow, MLton is truly dog slow. < 1270999258 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I figured out why though. < 1270999259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It has to compile the entire standard library every time. < 1270999264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Since it's whole-program. < 1270999309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Error: quadtree.sml 15.5. < 1270999310 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Syntax error: replacing INCLUDE with EXCEPTION. < 1270999312 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can't just do that! < 1270999339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1270999366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm unable to find last working revision of either cfunge or fungot. I need to ask fizzie when it gets here what revision fungot is currently running on < 1270999367 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: or the continuum hypothesis is likely to get this. i assume diamondie has stolen some fnord plutonium from a brazilian nuclear facility.), sieni_. he < 1270999519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, even very old versions show this behaviour now < 1270999606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, my best guess is that the new(ish) ircd-seven ircd that freenode switched to some time ago trigger some bug due to the extra lines sent at connect, and that fizzie fixed that locally but haven't pushed yet, or that it doesn't affect his specific setup < 1270999620 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Works in CCBI :-P < 1270999630 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(Could easily be a CCBI bug of course) < 1270999634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, we handle stuff like STRN somewhat differently < 1270999635 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Wait, how do quadtrees grow in size? < 1270999643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, easy. < 1270999647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You make all the references null by default. < 1270999648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like on negative arguments and such < 1270999660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right? < 1270999685 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm not sure what exactly you're asking < 1270999688 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it isn't SOCK that is copying those lines as far as I can tell from debugger, it is fungot itself that copies them for unknown reason < 1270999688 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ( i want shivers to release his new loop macros......) on time 1. then we can just make a copy < 1270999709 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, I'm just asking how a quadtree handles a potentially ""infinite"" (very big) structure < 1270999760 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Well, it just keeps on subdividing... < 1270999767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1270999776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess I just don't understand how I'm meant to traverse a quadtree given (x,y). < 1270999799 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Each node is associated with a point < 1270999806 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I get that. < 1270999810 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You check where your (x,y) is wrt that point < 1270999818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just don't get how you do non-diagonals since it's NW/NE/SW/SE < 1270999818 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If it's NW, you go to subtree 0 < 1270999827 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How can I check where it is? < 1270999829 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, just pick something < 1270999845 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :E.g. if the y coordinates are equal it's always in the N < 1270999846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Eh? < 1270999857 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Check where what is? < 1270999864 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, even with your loading file I can't trigger the memory usage problem you mentioned < 1270999882 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Shrug. < 1270999981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah wait, now I can. How strange. But much slower than you described... < 1270999992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I know why it does that now for you. It keeps executing e forever < 1270999996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so yes stack would grow < 1271000011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : type 'a subtree = 'a quadtree ref option < 1271000012 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And my machine is that much faster, so yes :-) < 1271000016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A subtree is a quadtree ref option. XD < 1271000021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that would be because of the different server name < 1271000023 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: About 300 megs a second IIRC < 1271000026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it still keeps copying it all the time < 1271000037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So basically, < 1271000040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype 'a quadtree < 1271000041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of 'a < 1271000041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of 'a subtree * 'a subtree * 'a subtree * 'a subtree < 1271000048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where a subtree is either NULL, or a pointer to another quadtree. < 1271000057 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Your Branch needs a point < 1271000063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I can't debug this without a known good revsion. And there are none. Yet fungot is running here. We will have to wait for fizzie to get here < 1271000064 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ack. don't put a subject there, it was such great fun that i just found it, thanks < 1271000066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Really? < 1271000074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So does that mean that we can turn a leaf into a branch? < 1271000080 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: How will you know where you are otherwise? < 1271000085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, basically, a leaf is just a special case of a branch where all the references are NULL. < 1271000086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Oh, I see. < 1271000098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I have a deadline tomorrow for something at university, no time to look more into this issue now < 1271000098 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And yes, basically like so < 1271000108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(release won't happen today) < 1271000112 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: But I don't think there's any point in turning a leaf into a branch ever < 1271000115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I could be wrong. < 1271000119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype 'a quadtree = Branch of coords * 'a * 'a subtree * 'a subtree * 'a subtree * 'a subtree < 1271000121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Oh, okay. < 1271000129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But how would you get to a leaf if the coords are both the same? < 1271000134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Go a certain predefined direction? < 1271000136 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm? < 1271000139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Seems saner to have it all in the one constructor. < 1271000145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Say you're at a branch and its (x1,y1) = your (x,y). < 1271000148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But all it has is four subtrees. < 1271000154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :How do we get the value at this point? < 1271000167 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1271000170 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Like said, just pick a consistent way of doing it < 1271000180 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :E.g. equal x = east and equal y = north < 1271000183 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, pick two! < 1271000183 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So in that case you'd go northeast < 1271000186 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or whatever < 1271000189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Okay. < 1271000193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then northeast would be a leaf < 1271000198 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :There may be more clever solutions :-P < 1271000210 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION includes coords in the quadtree and specialises it to machine words. < 1271000215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No point in lying about this code's generality. < 1271000302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh just one thing. it is STRN related probably < 1271000305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Hmm, so if we move in a direction where the pointer is NULL, we should allocate a new quadtree and attach it to the current one. < 1271000310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it is written there by STRN P < 1271000326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So what I actually need is a quadtree option ref. < 1271000337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e., a pointer to either NONE or SOME quadtree. < 1271000413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/914126.txt?key=jbijawyvc0juty7ocqj8g I think this is it. < 1271000420 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But how on earth would I do exact bounds like this...? < 1271000659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I like Standard ML. < 1271000714 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hm, what was that about fungot. < 1271000715 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: is the fact that i'm trying to think of it < 1271000791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, basically fungot ends up overwriting itself with server name < 1271000791 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i guess linux does it for you than do it yourself. once you're happy with it, to see how you proceed and what that's about < 1271000799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, in current cfunge and older cfunge. < 1271000808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I'm unable to find a known good revision < 1271000810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is absurd < 1271000830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, thus I want the exact revision that fungot in here is running on < 1271000830 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if a fnord of a < 1271000841 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or that you push any local changes that fixes it < 1271000859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, exact revision of cfunge that is < 1271000859 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: hehe yeah, was really killing the conversation). try the latter after the list of include files for interpreter.c?) implemented in scheme < 1271000914 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmn. I have just the "cfunge" binary on the server it's running on; that reports "0.3.2" with -v. I'll try to find where I built it. < 1271000923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1271000924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that old < 1271000927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, Basically the P at the line >:3g:#v_ >\ :0\3p 31g >3G 05g5+0\P v < 1271000937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ends up overwriting the entire program < 1271000941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with the server name < 1271000944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I have no idea why < 1271000964 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hrm. < 1271000967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I have looked back until summer 2009 for a working revision < 1271000970 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of cfunge < 1271001050 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : (I'm sure Okasaki would have some magic trick to avoid this.) < 1271001053 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :zippers < 1271001068 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a directory with the name "cfunge_r462"; that might be the exact revision. < 1271001080 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I really haven't had the occasion to update. < 1271001083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay lets try it < 1271001105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah i know about zippers but how would they apply here? i don't exactly understand them :P < 1271001109 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1271001109 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://git.zem.fi/fungot/blob/HEAD:/fungot.b98 < 1271001110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I think it worked on later revisions too for a long time, possibly until freenode changed to the new ircd < 1271001145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :r462 works < 1271001148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now lets bisect this < 1271001160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: you keep your structure as your current cell with a pointer to the parent, where the parent does _not_ contain a backlink < 1271001181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i see. do you think it would help for this case? < 1271001182 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That irc-message splitting part of the fungot code is probably about the oldest thing there, I really haven't touched it in a while. < 1271001183 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: after a very small amount of writing to memory overflow!!! < 1271001206 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well you don't need to change the parent to change the current cell < 1271001218 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: what about mutating the parent? < 1271001220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :e.g. the subtree < 1271001221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s < 1271001240 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although you now need to restructure things to move to a new current cell < 1271001252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :My quadtrees are either a leaf containing a pointer to a word, or a branch containing an (x,y) pair of coordinates, and four pointers to NONE | SOME quadtree. < 1271001276 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: the zipper requires a new datatype for quadtrees with holes, essentially < 1271001278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I could actually make leaves not be pointers and just mutate their parents to do it. < 1271001283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That sounds icky though. < 1271001331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think you can do mutually recursive data types in SML... < 1271001335 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: explain? :D < 1271001339 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(where the hole can be one of the four directions i think) < 1271001348 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: isn't that type rec or something < 1271001357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271001358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of word < 1271001358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * subtree * subtree * subtree * subtree < 1271001358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and subtree = quadtree option ref < 1271001362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Recursive types work fine; mutually, however... < 1271001365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :("and" is not valid there) < 1271001380 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh? sounds unreasonable. < 1271001401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm okay bisection shows it is between 551 and 581 now < 1271001409 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The P on that particular line is supposed to be hit only when processing a ":"-starting command option (something like the :msg part in :servername PRIVMSG #foo :msg), and it should put the text "msg" on line.. 7, in that case. < 1271001436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: yeah i'm sure there must be a way to do it < 1271001451 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also i'm having to repeat my transparent data types in the module and in the structure < 1271001452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :irritating < 1271001529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ah it is because and implies a data type there not an alias < 1271001541 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: hm i think ocaml used and there < 1271001558 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Hrm, I guess the same P is in fact used to put non-:-starting command options there too.) < 1271001591 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't actually know SML < 1271001594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd just type out quadtree-option-ref if it weren't so darned verbose. < 1271001597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: nor do I < 1271001627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm r578 < 1271001630 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks at the diff in it < 1271001650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" Make stringbuffer_finish() optionally return string length. Make use of this feature in FILE, PERL, STRN and TURT." < 1271001653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1271001661 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ba-bam, an optimization breaks the day < 1271001666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no code cleanup < 1271001670 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Darn < 1271001672 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1271001681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, because the old was quite a mess of buggy strlen() and such < 1271001688 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But at least it worked! < 1271001692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd just make things abstract except I want pattern-matching on trees. < 1271001693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so since the thing already *had* the string length I just made use of it < 1271001700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, sure, but that is what bisection is for :P < 1271001782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, do you use any of these from STRN: G S < 1271001788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if so, which ones < 1271001816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: if you think of your datastructure as a tree graph, a zipper is mostly just rerooting the tree at a new node < 1271001835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so in your completely professional opinion do you think it'd beat pointers? < 1271001842 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, apparently, Droid's getting 2.1 < 1271001852 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: can you do verizon? < 1271001857 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :No < 1271001869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: for speed? heck no. < 1271001875 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: righty ho then < 1271001878 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i also meant for elegance < 1271001881 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: then ignore it < 1271001896 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : < 1271001912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: compared to the razr I doubt you will be anything less than outstanded by the Nexus One: it is one of the best phones around in every way apart from the display. < 1271001924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and dammit, it's pretty. < 1271001928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i want one. < 1271001941 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(as a general rule, _all_ my value judgements can be assumed fake, when i'm even willing to give them) < 1271001950 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, I'll probably stop being outstanded the instant I accidentally drop it on the ground :/ < 1271001950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it has a freaking 1ghz processor < 1271001953 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Or lose it somewhere < 1271001957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm since you use FILE too I guess it could be causing issues < 1271001960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: they're tough beasts < 1271001969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're not made out of random bendable plastic you know < 1271001970 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Tougher than the RAZR? < 1271001974 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the only issue with dropping them is height < 1271001977 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Probably I use at least STRN's G. < 1271001981 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if not much height, then the thickness protects it < 1271001985 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if much height the weight works against it < 1271001991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :unless you're very tall, or very VERY clumsy < 1271001993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you should be fine < 1271002002 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well with all the extra data types it's not really that elegant if you don't insist on purity... < 1271002012 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm not sure if I use S for anything much, except perhaps in the ^save stuff. < 1271002030 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573676 <-- porn < 1271002032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so S is used? I'm trying to figure out what exact change broke this you see < 1271002054 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: This is why you should've committed that as five separate changesets ;-) < 1271002072 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Don't you have some sort of tracing thing that could show you which fingerprint commands were invoked during the run? < 1271002086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573691 http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573676 http://www.engadget.com/photos/google-nexus-one-unboxing-and-hands-on/#2573655 < 1271002090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: you know yo uwant one :P < 1271002090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay it is the G code < 1271002091 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*you want < 1271002103 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, did I mentioned I got to play with a Nexus One a bit on Thursday? < 1271002104 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: also if you do a lot of non-local changing (like with get/put), then zippers probably get awful < 1271002107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you mean one for STRN G one for STRN S and so on? < 1271002110 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: yes. < 1271002122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: true. < 1271002124 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I was thinking one per fingerprint < 1271002124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well I can actually manually revert the lines changed < 1271002128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: with a quadtree you only store the root right? < 1271002131 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and traverse each time < 1271002134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it seems to be STRN G that is causing issues < 1271002135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or do you move with the IP? < 1271002150 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You can't move up a quadtree, so you don't have much choice < 1271002159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.blogcdn.com/www.engadget.com/media/2010/01/nexus_shot_main.jpg nexus one has a nice camera < 1271002159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds a assert(strlen(s) == len); < 1271002161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: right < 1271002172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds the header for assert too < 1271002205 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Hm. When it's locked with a pattern, there's an Emergency Call button. How likely is it that it will accidentally be pressed -- does the touchscreen respond to non-skin? < 1271002214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay length 11 vs. length 10 < 1271002216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how weird < 1271002239 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it contains the nick of the thing. < 1271002250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :strange then ccbi didn't pick it up < 1271002253 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: there's nothing preventing you from keeping a zipper even if the leafs are mutable, might make moving IP faster < 1271002261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1271002263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not ccbi < 1271002265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean mycology < 1271002275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the extra char seems to be a null one < 1271002277 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(or equivalently, a stack of subtrees up to the top) < 1271002284 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Do the Mycology UNDEFs change between those two revs? < 1271002291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, let me test < 1271002299 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(when it's mutable you don't need those holes i should think) < 1271002326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, actually I can't easily, since this revision is so old it will hit END in current mycology nowdays < 1271002330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1271002349 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You can just replace the first column of Mycology with v until the STRN test < 1271002357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah good idea < 1271002362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I can't, you can't move up in a quadtree < 1271002363 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if anyone takes "A peek inside the neural network" seriously < 1271002376 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :*inside < 1271002391 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it hits the assert just before the line: GOOD: G works < 1271002393 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well you could also _make_ parent links < 1271002396 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the new one < 1271002400 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh well < 1271002404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries with the strlen() call < 1271002422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no UNDEF there no < 1271002437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what I believe will happen is that there will be an extra \0 byte in the newer version < 1271002439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :below < 1271002444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, perhaps you don't check for that :P < 1271002460 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Evidently not < 1271002470 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to get his engraved with his email address < 1271002475 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :In case I do end up losing it < 1271002490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, actually I'm not sure that is what it will result in. That statement is based on logical reasoning about the code. I haven't dumped the stack < 1271002524 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Anything that'd result in anything extra is probably not checked < 1271002528 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :My dad think it's possible for someone to work around the pattern lock. alise, unless you suggest otherwise, I'm under the impression that it's difficult [requring gaining root access], but possible < 1271002530 0 :adam_d!~Adam@cpc2-acto6-0-0-cust48.brnt.cable.ntl.com JOIN :#esoteric < 1271002543 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It might check one cell backwards and forwards but probably not more < 1271002549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh wait a second. Is strlen() number of chars *excluding* the ending \0? < 1271002552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(And not necessarily even that much if I was too slow) < 1271002557 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, of course. :-P < 1271002567 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm I think that may be the issue < 1271002579 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's the length of the string: the length of "foo" is 3, not 4. < 1271002582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I need to check that though so I don't introduce new bugs < 1271002606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Pattern locking is just for your convenience, I think. < 1271002610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: It should be not so hard to crack anyway. < 1271002618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: It's not difficult. < 1271002632 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You hold down the trackball when booting to enter the bootloader, enter a line, say "yes I'm okay with no warranty", and it's done. < 1271002653 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So wait, you know how the directions represent different combinations of same/different X/Y? < 1271002654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I wonder where to fix it. And since this value is used in lots of places calling that code, what will break and what hides other bugs < 1271002656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: btw you might look at the infinite tree with mutable leafs i made for implementing Malbolge Unshackled >:) < 1271002656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271002664 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: When you move in different-direction, the coords always increase, right? < 1271002665 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Say what now? < 1271002673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Hey, it's not my fault you said that. < 1271002680 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: that sounds nice -- link? < 1271002683 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I've no idea what you're saying, I think < 1271002687 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, does it keep track of its waranty status? I wonder if it's possible to overwrite it >:) < 1271002694 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I have no idea how you use quadtrees < 1271002699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: That is called breaking the law. < 1271002707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I am sure that Google could find out, if you gave them the phone... < 1271002727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I jailbroke my iPhone on its first day. < 1271002733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Chillax, warranties don't matter. < 1271002761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay wth < 1271002762 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: What part of using quadtrees are you thinking about now < 1271002766 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :My dad thinks that since it's "new", it would be a bad idea to get it, because of potential problems < 1271002767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fixing it broke mycology < 1271002767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I just don't understand how four directions map to coordinates of 2D space. < 1271002790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Currently, I'm writing a function coords * direction -> coords; you feed it the coordinates of the current branch you're on, and the direction you're expanding the quadtree in. < 1271002793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It gives you the coordinates the new tree should have. < 1271002798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am not sure how it should do this. < 1271002820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: My dad says. My dad says. My dad says. If he's just looking for excuses not to get it you'll either have to buy it yourself or not get it. < 1271002836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Tell him that there are regular updates to the entire phone software. < 1271002839 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I think that's implementation-dependant i.e. you can do what you like < 1271002840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe that'll "fool" him. < 1271002850 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: One easy(?) way of doing it would be start out with the central node at (0,0) < 1271002857 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I.e. root node < 1271002869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So then south = decrease x, north = increase x, west = decrease x, east = increase x? < 1271002870 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Hardware is probably what he's mostly concerned about. I did tell him that the software's been around for a while < 1271002871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So then the space you're working in is nicely bounded on all sides < 1271002873 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: http://oerjan.nvg.org/esoteric/Unshackled.hs < 1271002880 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Although this uses the newest version of it < 1271002885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What about when the coordinates of the branch you're on match the ones you are trying to look up? What direction then? < 1271002889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All the others are taken. < 1271002898 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Well... no answer then. < 1271002904 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: For example, yes; but you can't just increase by one (or you can, but the new tree will have all but one branch overlapping with the previous (I think?)) < 1271002909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Is it fast-in-theory? < 1271002921 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: And this is where I totally stop understanding what you're trying to say. :-) < 1271002941 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Quadtrees are about splitting the space into four parts whenever you need increased granularity < 1271002942 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, there are PDF readers for Android, right? I think I saw one or two < 1271002950 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: So you start with zero points and a root at (0,0) < 1271002952 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Presumably. The browser can probably handle it. < 1271002958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The iPhone certainly has always been able to. < 1271002967 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Then you add a point (1,1) so you make the SE node a leaf with that value < 1271002977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So S = increase X, E = increase Y. < 1271002981 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Up to you. < 1271002983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What about the VALUE at this point? < 1271002988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271002988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of word ref < 1271002989 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * subtree * subtree * subtree * subtree < 1271002993 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The word? < 1271002993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We're looking up (1,1), which has already been inserted. < 1271002997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We move southeast, and get to (1,1). < 1271003000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But there are only four subtrees. < 1271003002 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Which is a Leaf. < 1271003004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Each of them /changes/ the coordinates. < 1271003007 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What? < 1271003008 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i don't know, although it _does_ keep a next pointer for easy incrementing < 1271003013 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: At this point, it's a Leaf. < 1271003015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What about when I want to move to (1,2). < 1271003021 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I was getting to that. < 1271003022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You said I'd never have to change a leaf into a branch. < 1271003038 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Maybe I was wrong: hang on, let me work through this. < 1271003051 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i mostly linked to it because it's evil ;) < 1271003057 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: fair enough then < 1271003059 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: So you're inserting (1,2) and all you have is a branch with three empty subtrees and one leaf at (1,1) < 1271003065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait I found it < 1271003069 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: And a dog. < 1271003073 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: What you need to do is subdivide the SE area into four parts < 1271003086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Right. But if I do that, then where goes the value at (1,1)? < 1271003088 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: The SE area at this point is (0,0) through (2^32-1, 2^32-1) < 1271003088 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :It still displays the Emergency Call button, even when there's no SIM card < 1271003094 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: (Assuming 32 bit words) < 1271003101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All four parts in the SE area are already taken up by subtrees. < 1271003105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So the value at (1,1) has nowhere to go. < 1271003109 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Wait, can it actually use the nearest carrier it can find for emergency calls? < 1271003124 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: So you make a new tree, with root at the midpoint, (2^31, 2^31) < 1271003131 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: (± 1) < 1271003138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: *Now* I am confused. < 1271003178 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You replace the SE branch of your (0,0) with that tree < 1271003190 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: But you're still screwed, because (1,1) and (1,2) are both in the NW node of (2^31, 2^31) < 1271003194 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: So you continue subdividing < 1271003204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think at this point I should find a nice article. With pictures. < 1271003204 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Until you get to a point where they go into different nodes < 1271003223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Doesn't that end up creating an unholy amount of subdivisions? < 1271003227 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: There are lots of java applets and the like for this :-) < 1271003238 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Max depth O(log n) < 1271003244 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Not unholy, no. < 1271003274 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: If you have one word per leaf, you will end up using a lot of space, though; the standard recommendation is to switch to an array at some point, I think < 1271003282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Quadtrees seem like such a functional data structure; shame they need to be imperative to work nicely. < 1271003294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Bleh! < 1271003304 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Do they? < 1271003307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This just keeps getting hairier at hairier. < 1271003313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, they have nice diagrams. < 1271003315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*and < 1271003322 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how big the arrays should be; 80*24/ < 1271003323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*? < 1271003331 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: But do they need to be imperative? The arrays don't have to be. :-P < 1271003345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, if you update a node you have to update the branch it's in, and the branch that's in, and so on. < 1271003350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also I should when I have time review the code to see what happens if you get a literal zero byte into the buffer. I suspect it may miscount then < 1271003354 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: True enough < 1271003362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You probably want square arrays since each node is square, btw. < 1271003374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however I don't think it is possible for that to happen in most places. Certainly not in the two places it is used in STRN < 1271003377 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So, basically, these algorithms are going to be hellishly ugly. < 1271003393 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Data structures tend to be a bit hairy. < 1271003410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, pushing fix for the STRN case at least < 1271003431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Not their pure forms. < 1271003443 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What I really need to do is hire Okasaki and make him write this for me. < 1271003513 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: No, their pure forms tend to also be. :-P < 1271003521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You're hairy. < 1271003533 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't want his Gmail Contacts in his phone < 1271003548 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :At least, until I have a chance to clear out my contact list < 1271003572 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For some reason I just plain like the "you can't comb a hairy ball smooth" phrase. < 1271003617 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Tough shit, Android is all Google, all the time. :-) < 1271003650 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Awesome, thanks. < 1271003651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, actually the real issue was that the code was returning actual string length. Not length to first zero byte in case you managed to manually get a zero byte into it. < 1271003685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, probably all code using it should be reviewed, in most cases, like reading data from a file, treating \0 as nothing special is actually the correct behaviour < 1271003694 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Why do you want to run fungot, anyway? < 1271003694 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: especially if you want to make heavy use of it, haven't eaten anything else either. :)): we create hierarchies all the time < 1271003695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(this code is used in the fgets thingy for FILE too) < 1271003701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So, I understand all of it apart from the recursive subdivision. < 1271003701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(and a few other places) < 1271003787 0 :fungotCCBI!~fungot@cs78149022.pp.htv.fi JOIN :#esoteric < 1271003795 0 :fungotCFUN!~fungot@cs78149022.pp.htv.fi JOIN :#esoteric < 1271003801 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Benchmark time! < 1271003819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, until I get a new fungespace in place I wouldn't be surprised if ccbi is faster < 1271003828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that won't happen soon < 1271003844 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Maybe you can think up of some bf/ul slowness < 1271003866 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[.] < 1271003866 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :!bf +[.] < 1271003877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well what prefix does it use Deewiant ? < 1271003883 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :] < 1271003885 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]bf +[.] < 1271003885 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003885 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003892 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But, erm < 1271003899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well from here fungotCFUN was just slightly faster at that < 1271003900 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ok i get it well enough to predict what the most common one < 1271003900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ^ < 1271003911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]bf +[>+] < 1271003914 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Something that takes no time at all is pointless < 1271003917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]bf +[.] < 1271003917 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003917 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003929 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Please stop with that one. < 1271003936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh? < 1271003946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that is annoying. < 1271003946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :does your client try to treat it as CTCP ? < 1271003947 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It gives me four lines of "requested unknown CTCP" every time. < 1271003953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mine doesn't < 1271003960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Not mine. < 1271003960 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]bf ++[.] < 1271003960 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003960 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1271003960 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's a bit noisy anyhow. < 1271003962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then < 1271003963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there < 1271003963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It displays a lot of boxes. < 1271003965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is better < 1271003966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1271003980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I notice the cfunge one is consistently faster < 1271003989 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I notice they are consistently of identical speed < 1271004008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I notice that consistently CFUN one returns just a tiny fraction of time before the CCBI one < 1271004017 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I ignore such fractions. :-P < 1271004028 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You could just test an infiniloop, the timeout cutoff counts executed bf cycles. < 1271004030 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If it takes no time it's not a benchmark. < 1271004032 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :]bf +[] < 1271004034 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004034 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004047 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How many cycles is the cutoff? < 1271004058 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That got a different second in my timestamps, but it didn't take very long either. < 1271004064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]ul (foo)S < 1271004064 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1271004065 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1271004072 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :This phone is going to be in place of getting a new computer < 1271004078 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's the awfully slow underload proggie, but I've forgotten it. < 1271004081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm a slow ul one might be better < 1271004091 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I should probably kill my bittorrent uploads to limit network lag < 1271004101 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: ^bf stops after executing aaaaaa***** bytecode ops. < 1271004104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]help < 1271004110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]commands < 1271004115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]show < 1271004116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1271004119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what was the command < 1271004121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to list all < 1271004122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^show < 1271004122 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help hw srmlebac uenlsbcmra scramble unscramble < 1271004124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271004129 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably no commands defined. < 1271004130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe those doesn't have any < 1271004139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^show fib < 1271004139 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :>+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][] < 1271004143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^help < 1271004143 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool < 1271004146 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you start with an empty state file, there aren't any. But none of those is very slow. < 1271004158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]def fib bf >+10>+>+[[+5[>+8<-]>.<+6[>-8<-]+<3]>.>>[[-]<[>+<-]>>[<2+>+>-]<[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>+<-[>[-]>+>+<3-[>+<-]]]]]]]]]]]+>>>]<3][] < 1271004158 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric :Defined. < 1271004158 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric :Defined. < 1271004168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey guys < 1271004168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, wait, does it handle the compressed one there? < 1271004170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]fib < 1271004170 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric :   . . .  . . . .. . .. . .. . .. . . ... < 1271004170 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric :   . . .  . . . .. . .. . .. . .. . . ... < 1271004172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1271004177 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :... < 1271004179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^fib < 1271004179 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :0.1.1.2.3.5.8.13.21.34.55.89.144.233.377.610.987.1597.2584.4181.6765.10946.17711.28657.46368.75025.121393.196418.317811.514229.832040.1346269.2178309.3524578.5702887.9227465.14930352.24157817.39088169.632459 ... < 1271004179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.w3.org/MarkUp/html3/mathscripts.html ;; once upon a time, there was a element in HTML that actually rendered summation signs and stuff < 1271004182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess not < 1271004194 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could write < 1271004195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not my fault it can't read it's own output < 1271004206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :∑_k = 1_^n^ k < 1271004212 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for sum k=1 to n, k < 1271004221 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, did any browsers actually support it? < 1271004225 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :]ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^ < 1271004226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw why that [] at the end of the fib program? < 1271004228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: who knows < 1271004230 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That should take a while. < 1271004230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's awesome < 1271004236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wish it worked < 1271004238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, doesn't it time out quickly? < 1271004251 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Example - the integral from a to b of f(x) over 1+x < 1271004252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ∫_a_^b^{f(x)1+x} dx < 1271004252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which can be rendered on a fixed pitch text-only medium as: < 1271004252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : b < 1271004252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : / f(x) < 1271004252 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | ------- dx < 1271004254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : / 1 + x < 1271004256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : a < 1271004259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The example uses { and } as shortrefs for and respectively. This is used for invisible brackets, stretchy delimiters and integral signs, and placing one thing over another. The shortref characters "_" and "^" are used for subscripts and superscripts respectively. < 1271004262 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is hot < 1271004263 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: No CPU usage, at least. < 1271004266 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, because the Underload interp also counts executed instructions, and the instructions get slower when there's a long string. < 1271004279 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Whoops, I forgot a : there, I think. :p < 1271004295 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But it's still a bit fast; I'll refine it a bit, just a moment. < 1271004304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ul (xxxx):*:*:*:*:*:*:*:*:(~~)(:^)^(end)S < 1271004304 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :end < 1271004306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1271004327 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^ < 1271004328 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004328 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(~~)(:^):^ < 1271004342 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004344 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's still pretty fast. < 1271004353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1271004361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also Deewiant has a monster computer iirc < 1271004368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some 7 or 8 GB RAM iirc < 1271004369 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ideally it should take >10s on your fungot :-) < 1271004370 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: i'd rather my scotch straight up. no scheme system still actively maintained ( although a bit different < 1271004372 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can't make the string longer without running out of stack; but it'd probably be better to have two long strings to swap instead of just one. < 1271004381 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll try to cook up something that does that. < 1271004414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * Irene Gargantini: An Effective Way to Represent Quadtrees. Commun. ACM 25(12): 905-910(1982) < 1271004418 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does anyone have an acm account? oerjan? < 1271004436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, where is egobot? and hackego? < 1271004446 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :There was once an HTML 3.0 draft, with a section titled HTML Math, suggesting relatively simple markup for some basic mathematics. But it’s all history; the draft expired in 1995. (There was also an earlier idea about HTML+, which would have had a different, more natural-looking math syntax.) < 1271004448 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it was never official < 1271004455 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Geh, it's still a bit too fast. < 1271004459 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^ < 1271004459 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004459 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004459 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1271004465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh different seconds here < 1271004480 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: If you want, you could increase the limits. < 1271004488 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Whereabouts? < 1271004490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway, if they were the same speed, then shouldn't the cfunge be after the ccbi one just *sometimes* < 1271004498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, which hasn't been the case so far < 1271004506 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It was once. < 1271004520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yes ]ul (foo)S < 1271004523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]ul (foo)S < 1271004524 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1271004524 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1271004524 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1271004526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271004528 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :heh. < 1271004528 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: For the underload one, it's on line 310, I believe; the ffaa***81p there. < 1271004534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you are faster at that one program < 1271004535 0 :fungotCFUN!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271004536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]ul (foo)S < 1271004536 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric :foo < 1271004536 0 :fungotCCBI!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271004546 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: There's even lots of whitespace above it, shouldn't be a problem to fit in a longer number. < 1271004577 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So that's what, 255^2 * 100 = 6502500 < 1271004583 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Er, no < 1271004584 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :255 * 100 < 1271004593 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :15*15 isn't 255. < 1271004596 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1271004606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Blarg, I always think ff* is < 1271004614 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is a bit misleading. < 1271004621 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, let's try 500k < 1271004632 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :' '}:** < 1271004673 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: For the ^bf one it's the aaaaaa***** on line 294, if you want to change that too. < 1271004682 0 :fungotCCBI!~fungot@cs78149022.pp.htv.fi JOIN :#esoteric < 1271004684 0 :fungotCFUN!~fungot@cs78149022.pp.htv.fi JOIN :#esoteric < 1271004687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway I believe you will run into your funge space box being suboptimal if I remember where fungot put it's stack correctly < 1271004687 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: dont be silly. < 1271004694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :]ul (xxxx):*:*:*:*:*:*:*:*:*:*:*:(a~a*~~^)(:^):^ < 1271004696 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :He said it, not me < 1271004697 0 :fungotCFUN!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004699 0 :fungotCCBI!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1271004702 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Awesome! < 1271004706 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, now cfunge was faster :P < 1271004715 0 :fungotCFUN!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271004715 0 :fungotCCBI!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271004723 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Alright, that's what I wanted to know :-) < 1271004741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but yes I do believe it extended out into -x just above the program code < 1271004756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :perhaps you are just growing the full sized box for the entire program in your AABB thingy < 1271004760 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not that stupid < 1271004763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, good < 1271004809 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: The underload interp speed is probably quite STRN-dependent, and the stack starts from column 0 and extends to the negative direction, in case that bit of trivia is interesting. There's a whole lot of copying with STRN from stack to temporary space and back. < 1271004816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but see. For real world befunge apps your carefully-tuned-for-CCBI measurements in fungicide doesn't mean a lot ;P < 1271004816 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Any ideas about making that ul-interpreter runnable without requiring an IRC server < 1271004826 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: There's a standalone version of it already, actually. < 1271004837 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Cool! Where's it at < 1271004845 0 :EgoBot!~EgoBot@codu.xen.prgmr.com JOIN :#esoteric < 1271004845 0 :HackEgo!~HackEgo@codu.xen.prgmr.com JOIN :#esoteric < 1271004846 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Who knows? I'm trying to find it right now. < 1271004849 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: :-) < 1271004856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I used to have it < 1271004859 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can't find it any more < 1271004861 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If it's about STRN as he suggests, it's the fact that STRN isn't optimized at all. < 1271004875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh found it < 1271004886 0 :coppro!unknown@unknown.invalid QUIT :Quit: I am leaving. You are about to explode. < 1271004886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/FLOO < 1271004886 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I found "underload.b98" and "underload2.b98" in my unversioned fungot/misc dir, but I don't know which one is which. < 1271004887 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: it depends. if we're going to make functional programming possible. " standard" here... < 1271004889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, see ^ < 1271004902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that one was called underload.b98 < 1271004913 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also http://zem.fi/~fis/underload.b98 and http://zem.fi/~fis/underload2.b98 -- you can diff all three if you want. :p < 1271004930 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Do these have a timeout? < 1271004941 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hrrm, actually probably not. < 1271004948 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1271004955 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Are those infinite loops? < 1271004957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, mine is the non-2 < 1271004976 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, the programs I did will not terminate. < 1271004995 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Right, so that's not very optimal. < 1271005001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh btw I made sure my STRN is quite tuned because fungot uses it. IIRC I even did it at fizzie's request, for being able to up the time limit < 1271005001 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes. it's a long time, just send it straight to the end of the < 1271005003 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271005013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not completely sure, it was as fungot said, a long time ago < 1271005014 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: also it isn't as fast as scheme48? are you serious? how long did it take you to switch between dialects should probably be < 1271005022 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i vaguely recall augur had an acm account < 1271005036 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or something like it < 1271005041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I guess you'd be more of an AMS person. < 1271005043 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "Append" does things like pop both strings and push them back. < 1271005045 0 :cheater3!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1271005047 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In CCBI, that is. < 1271005057 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I presume yours does it in-place? :-) < 1271005065 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's going to be a few days until I can get it < 1271005080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm it seems mine pops both too. < 1271005081 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I mentioned it to my step-mom's mother, and my dad doesn't want my step-mom hearing about it < 1271005084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :odd < 1271005099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it really should not be needed < 1271005111 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: If you want, you can hack in a timeout; just pick a suitable spot from the beginning of the "interpreter main loop" part, and add in a bit of code; something like 81g1-:!#@_81p or some-such; and initialize with [large number]81p above. It's basically what my timeout does. < 1271005118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it could pop top one and then push it back, after removing the final \0 byte < 1271005120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :could it not? < 1271005136 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Yeah, I was looking at something like that. < 1271005150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, except that would run into issues should the second string have it's \0 = stack underflow < 1271005151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1271005158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it has no \0 in the stack < 1271005188 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: For example the part that does "1+ :0g:" is executed every round, somewhere in there maybe. < 1271005236 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :underload2 looks much nicer to edit in that respect < 1271005278 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think it's the same code, just compacted a bit. < 1271005285 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it looks such. < 1271005322 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: btw for a quadtree mapping all of Z x Z i think it only makes sense if there is an infinite tower of parents < 1271005354 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although you can of course do that by expanding on the fly < 1271005361 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But this is no good! CCBI terminated in 8 seconds and cfunge is still going. >_< < 1271005374 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if it infinite-looped somewhere. < 1271005415 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well it's actually Z/nZ x Z/nZ < 1271005421 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where n = 2^32 or 2^64, usually < 1271005423 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if I have my notation right < 1271005445 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also interestingly you cannot have each parent in that tower be in a _consistent_ position in relation to its parent, or else you will only get one quadrant of Z x Z < 1271005471 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh, in that case subdividing like Deewiant says makes more sense < 1271005521 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the subdivisions are just the paired sequence of bits for x and y coordinate, really < 1271005527 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, CCBI is just going a crapload faster at this than cfunge. < 1271005531 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(direction of them, that is) < 1271005567 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I should probably make a non-socketized version of fungot, for benchmarking purposes. Non-intrusively I think it could be done by just arranging things so that it's the FILE R and W it uses instead of the SOCK ones there, and replacing the socket opening with file opening. < 1271005567 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: mostly directed ais523, if you're trying to solve < 1271005571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :With 500k iterations CCBI takes 3.9 seconds, cfunge is giving me about 200 iterations per second < 1271005574 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :2000* < 1271005584 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :(I made it print the iteration count after every 1000 iterations) < 1271005586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that doesn't match results on irc < 1271005589 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: But I'm not trying to solve a directed ais523. < 1271005590 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: yet another reason to be in there < 1271005594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, try underload as opposed to underload2 < 1271005647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, in where? < 1271005647 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ok well my code works?" " i'd try to infer what he means by enticing code and stepping in fnord. < 1271005650 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, uh, I make no guarantees that the underload2 code is actually *correct*. It's just something I had. < 1271005694 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ah yes, underload.b98 is much better. < 1271005703 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Both go fast, with cfunge being faster. < 1271005711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, see. That is the one you should use < 1271005712 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1271005717 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ;-P < 1271005731 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Still a bit curious that you get different results there. < 1271005734 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But yes, it is around ten times faster for CCBI as well, so it is preferable. < 1271005778 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can actually make this valid SGML: T_`n` = #&sum# _(`k` = 1&to;`n`)_ 1/`k` < 1271005782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s/ $// < 1271005785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Expanding to < 1271005792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Err, wait, actually: < 1271005792 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: If it does wrapping, that could be one reason for the difference. < 1271005793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah, selfishness is the strongest force. < 1271005799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :T_`n`_ = #&sum# _(`k` = 1&to;`n`)_ 1/`k` < 1271005815 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I don't usually do wrapping intentionally, but I guess it might do it accidentally. < 1271005825 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI's wrapping can be constant time in situations where it's O(n) in the number of spaces for hash table types. < 1271005848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271005889 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wrap in the iteration time checkers, but then it should be the same for both. < 1271005922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how much faster is cfunge than ccbi at that btw? < 1271005955 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's around 0.7 versus 0.45 (seconds) < 1271005960 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, jitfunge's space is hash-table-based, but it does O(1)-ish wrapping, basically by computing the necessary delta-multiplications to get over the opposite top/side borders, then choosing the min() out of those and jumping directly there. It's a bit untested, though. < 1271005966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, cfunge being 0.45? < 1271005978 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I did say it was faster... < 1271005998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes, but try increasing timeout so you get around 10 seconds of each < 1271006004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :will be interesting < 1271006010 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't care that much < 1271006016 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It takes a minute to callgrind as is. < 1271006024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why do you callgrind it? < 1271006028 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :To profile. < 1271006034 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you don't use oprofile? < 1271006039 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Evidently not. < 1271006063 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: That can still be O(n) in some cases where CCBI is O(1) since your top/side borders always move with the whole space. < 1271006102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw this shows that while ccbi may excel at rather specialised test cases, cfunge is the best interpreter if you prefer real world applications ;P < 1271006189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh and do tell me where it spent the time when you analysed the callgrind result < 1271006252 0 :tombom!tombom@wikipedia/Tombomp JOIN :#esoteric < 1271006295 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait, wtf < 1271006302 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :My iteration-checker is broken < 1271006312 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It never reenters the main loop >_< < 1271006335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in the underload2 case? < 1271006340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or the underload one? < 1271006344 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Yes, that's why I called it just "O(1)-ish". :p < 1271006345 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The latter < 1271006354 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: :-P < 1271006368 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Here we go, 3.6 versus 2.6 now. < 1271006379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and the latter is cfunge? < 1271006380 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :At least CCBI uses a lot less memory. :-P < 1271006383 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271006405 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do you special-case cardinal-direction movement/wrapping somehow? I don't do non-cardinal deltas at all, after all. < 1271006416 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, memory usage is not of primary interest to cfunge. As long as it is reasonable (as defined by me!) < 1271006445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, haha < 1271006449 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I don't solve a diophantine equation for that case < 1271006456 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or I guess I do, but I avoid the division < 1271006471 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or at least I think I do that. < 1271006493 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I appear to. < 1271006536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I just end up jumping to the opposite side. How much faster is the diophantine equation for non-cardinal wrapping than doing it like in the funge-98 spec? < 1271006545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is, reversing and searching for the opposite side < 1271006613 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: time ccbi slowdown.b98 mycology.b98 -> 0.87user 0.00system 0:00.88elapsed 99%CPU (0avgtext+0avgdata 66096maxresident)k < 1271006623 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: time cfunge slowdown.b98 mycology.b98 -> 10 seconds and counting < 1271006648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, huh? With exact bounds? < 1271006654 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271006666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm extremely surprised. Did you change something recently? < 1271006682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like no longer removing the slowdown program from memory or such < 1271006692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, or resetting the storage offset to 0? < 1271006693 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't think slowdown has changed < 1271006710 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think I changed Mycology to go a bit further < 1271006716 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Even with a bad storage offset, or something < 1271006718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, using the slowdown version I have here, it is quick < 1271006726 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Latest Mycology? < 1271006730 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Where does it end? < 1271006741 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in disaster, obviously < 1271006746 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Quite < 1271006765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it takes < 1271006767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1271006768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1271006771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken < 1271006771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Situation might be very messed up, trying to quit with q < 1271006777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only with slowdown < 1271006798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is that where ccbi ends too? < 1271006802 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1271006812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well it took about 3 seconds. Let me rerun with time < 1271006823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, 2.83 seconds wall time < 1271006841 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm at 4 minutes of CPU and counting < 1271006847 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I suppose you either disabled exact bounds or you hit a bad random position < 1271006865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, tell me the random position it ended up at < 1271006878 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1271006878 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That the position of the IP was ( -1178306726 1116900389 ) < 1271006886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm okay < 1271006910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, my slowdown seems to be that hardwired one you gave me to test that bug some time ago < 1271006917 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well heh < 1271006921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, can't find any other < 1271006923 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That one goes to a really low point < 1271006925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :link to current version? < 1271006941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wgetable link that is < 1271006950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ? < 1271006956 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006956 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006956 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006957 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006957 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006959 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006962 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006964 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm? < 1271006967 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006969 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ! < 1271006989 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see you are trying to make a point. I don't see what said point is < 1271006996 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://iki.fi/deewiant/files/befunge/programs/slowdown.b98 < 1271007000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1271007013 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Had to upload it first < 1271007037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does it do wrapping inside y? < 1271007045 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also, it seems to be writing around 0,0 < 1271007049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not odd in that case < 1271007049 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Mycology always wrapped inside y < 1271007067 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If by "inside y" you mean "in the y tests", anyway. < 1271007072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yes < 1271007079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I thought that was obvious < 1271007087 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It was, fairly. < 1271007124 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : GOOD: basic cBAD: t reflects without creating a new IP or concurrency is very broken <-- :D < 1271007142 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Damn, that underload.b98 takes a long time. < 1271007150 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :62750457 ticks < 1271007150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not on cfunge :P < 1271007181 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :scrödinger's concurrency < 1271007186 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*+h < 1271007192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, because it is a real world application®, which cfunge® is optimised for. Unlike CCBI, optimised for exotic benchmarks < 1271007226 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i want some proof you actually registered that trademark < 1271007236 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Especially the one for application® < 1271007238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, I didn't. It was a joke < 1271007248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, actually it is "real world application"® < 1271007255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not just application < 1271007277 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Removing fingerprints cut off some 0.3 seconds, but not enough to make the difference < 1271007283 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you cannot joke about such matters, you'll end up in jail < 1271007290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, fingerprints from what? underload? < 1271007298 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ...... CCBI < 1271007307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : A quadtree may be represented without pointers by encoding each black node with a quaternary integer whose digits reflect successive quadrant subdivisions. We refer to the sorted array of black nodes as the “linear quadtree” and show that it introduces a saving of at least 66 percent of the computer storage required by regular quadtrees. Some algorithms using linear quadtrees are presented, namely, (i) encoding a pixel from a 2n × 2>n array (or scr < 1271007308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :een) into its quaternary code; (ii) finding adjacent nodes; (iii) determining the color of a node; (iv) superposing two images. It is shown that algorithms (i)-(iii) can be executed in logarithmic time, while superposition can be carried out in linear time with respect to the total number of black nodes. The paper also shows that the dynamic capability of a quadtree can be effectively simulated. < 1271007309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, for mycology or underload? < 1271007314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which test is you testing on < 1271007321 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't test Mycology, it runs in 0s. < 1271007322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :are* < 1271007344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well then. underload.b98 needs STRN. So weird that it works at all if you remove fingerprints < 1271007348 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so thus it can't be it < 1271007352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it must be something else < 1271007356 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't say /all/ fingerprints < 1271007365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1271007395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway why would removing fingerprints help? Basically it would reduce the binary size and the time needed to look up the fingerprint name < 1271007403 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: TRDS, IMAP, IIPC, MODE... < 1271007405 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if those added up to 0.3 seconds something is *very* wrong < 1271007415 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You know, all those fingerprints that you don't implement < 1271007424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, those are in core partly, no? You have the core parts in #ifdef or such? < 1271007426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: i think that assumes actually allocating all the quadtree as an array up front < 1271007430 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I do. < 1271007433 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In part. < 1271007433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1271007463 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, except that last sentence < 1271007468 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, just accept it. You made a great funge interpreter. But you can't be best at everything < 1271007470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271007484 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So what's this I hear about you making a better Funge-Space? :-P < 1271007501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::- is notation for the turnstile |- isn't it < 1271007506 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: oh wait, it's actually _saving the coordinates_? < 1271007506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well yes, I can do that, But I would be very much surprised if that didn't result in it ended up slower at something else < 1271007513 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Of course it does < 1271007541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so that is a trade off. You seem to use less memory too. Perhaps you preferred memory over speed in some tradeoffs? < 1271007545 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Ended with: 11 AABBs live < 1271007546 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Had: 12 AABBs live at maximum < 1271007546 0 :lament!~lament@S0106002312fa554a.vc.shawcable.net JOIN :#esoteric < 1271007551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1271007553 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That doesn't sound very good. < 1271007565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I can't tell < 1271007571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know. < 1271007581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, if the program is split out in many parts it seems reasonable < 1271007600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also I just realised a ul program that will throw off your algorithm < 1271007606 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It doesn't seem split. < 1271007622 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If the comments are to be believed, this should allocate at most 3 AABBs at any given time, I think. Maybe 2. < 1271007623 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, one that writes large stretches of spaces in the stack then switches it to being filled < 1271007638 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In the stack? < 1271007643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in the ul stack < 1271007645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is in funge space < 1271007651 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1271007658 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That shouldn't be much of a problem? < 1271007670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, I don't know if you ever free AABBs? < 1271007678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or shrink them < 1271007682 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Rarely. < 1271007691 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Never in this program. < 1271007703 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the stack of 'ul < 1271007709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what about shrinking them? Probably ccbi could be fooled into having a lot of mostly empty AABBs around < 1271007724 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that could happen. < 1271007755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, making it resort to the hash table., and then you make sure most of the cfunge static funge space is out of any AABB, thus giving cfunge an advantage < 1271007757 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you know < 1271007763 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you should write such a test for fungicide < 1271007768 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :? < 1271007771 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :But I bet you won't :P < 1271007776 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't understand what you mean. < 1271007817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I presume that if the program itself is actually just something tiny that loads the main program somewhere else and then jumps to it you won't have much of an AABB around the (0,0)? < 1271007840 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You've pretty much just described slowdown.b98. :-P < 1271007850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and if that is cleared and then that AABB reused elsewhere for those mostly static ones. < 1271007861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1271007865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mostly empty ones* < 1271007880 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If it is reused elsewhere? < 1271007884 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What do you mean? < 1271007890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does fungicide do slowdown? < 1271007894 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1271007896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if not, it should; it would then take 5 years to run < 1271007900 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. :-P < 1271007903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well I don't know. I presume you won't leave empty AABBs around if you are out of them elsewhere? < 1271007923 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I do. < 1271007927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh and when it switched to hash table, does it grow any of the existing AABBs? < 1271007933 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, it doesn't. < 1271007947 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271007947 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of word array < 1271007948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * subtree * subtree * subtree * subtree < 1271007952 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In underload.b98 it didn't switch to hash table, I don't know why we're talking about the hash table. < 1271007953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This is the optimal practical structure, right? < 1271007966 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm not talking about underload.b98 < 1271007968 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You need a coords in the Leaf, no? < 1271007973 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where subtree is a pointer to maybe-a-quadtree < 1271007975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Hm, right. < 1271007988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271007988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of coords * word array < 1271007988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * subtree * subtree * subtree * subtree < 1271007988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and type subtree = quadtree option ref < 1271007991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway. Once that switch over happened, this benchmark would then write some funge space intensive thing near 0,0, but outside the initial AABB < 1271007996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :inside cfunge's static area < 1271008005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but outside the initial AABB < 1271008013 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I believe the only operations I need are < 1271008015 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val move : quadtree * direction -> quadtree < 1271008016 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val leaf : quadtree -> word < 1271008017 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val put : quadtree * word -> unit < 1271008021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that is my suggestion for a new fungicide benchmark :P < 1271008021 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I can perform the rest with pattern-matching + them < 1271008022 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That sounds a bit like an anti-CCBI test. :-P < 1271008033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes but I feel you have too many pro-CCBI tests already < 1271008036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so you need some balance < 1271008045 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :They're not really pro-CCBI IMO. < 1271008053 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Most of them were written before I even knew what to do with CCBI 2. < 1271008076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, right, but then you made sure ccbi2 would be fast with those, even at the expense of apps like underload.b98 ;P < 1271008079 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I was just thinking of different kind of data access patterns. < 1271008082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :kinds* < 1271008090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Of course the issue now is: deciding the size of the array, and finding out how the hell I do the subdivision. < 1271008095 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, actually I was trying to be fast at everything. < 1271008108 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: But heuristics will fail. (If that's what's going on here.) < 1271008128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, that is almost the definition of heuristics. "Will sometimes fail" < 1271008135 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Correct. < 1271008155 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, was that to me or alise? < 1271008174 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Given that alise's last was a minute ago... to you. < 1271008180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, can't tell what alise is saying due to /ignore < 1271008185 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Then don't make it my problem. < 1271008188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hey guys, did I mention I have alise on ignore < 1271008192 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Guys GUYS WHAT ARE YOU TALKING ABOUT < 1271008193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1271008197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I can't understand you it's like you're talking to thin air < 1271008200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that must have been to alise ;P < 1271008203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, lots of weird boxes in underload.b98. < 1271008203 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh it's alise. I have her on ignore by the way. < 1271008208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah < 1271008269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway some anti-ccbi test might be a good idea. It isn't like CCBI will end up like Language::Befunge because of that < 1271008292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no way Language::Befunge can beat ccbi, even at extremely anti-ccbi benchmarks < 1271008294 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you can think of something reasonable and/or will implement it... < 1271008305 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Really, hollow-square and diagdown/diagup are anti-current-CCBI < 1271008307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I suggested something above. I guess you consider it unreasonable? < 1271008336 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It just seems a bit random and too "tailored" < 1271008339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway adding some real applications, such as life.bf and underload might be a good idea. I assume ccbi will be quite okay at the former < 1271008344 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What's the use case? < 1271008346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it keeps inside the b93 area < 1271008350 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, they are a good idea < 1271008362 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :life.bf I considered but found too much of a pain to try to figure out < 1271008370 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :underload I didn't realize was available in such a convenient form. < 1271008380 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do you mind restating what the directions have to mean? Not specific ones, but the general... < 1271008387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, life.bf is some quite amazingly compact code yes < 1271008397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also perhaps some IO performance tests < 1271008400 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that might be interesting < 1271008414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not just standard IO but also i and o < 1271008421 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Directions mean directions. What do you mean? < 1271008442 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes; please go ahead and write such tests. I'm not that interested in I/O performance so I haven't done that. < 1271008447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I don't know how good ccbi is at i? < 1271008448 0 :alise!unknown@unknown.invalid PART #esoteric :? < 1271008451 0 :alise!~alise___@212.183.140.1 JOIN :#esoteric < 1271008455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: for instance < 1271008458 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Neither do I? < 1271008461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well then < 1271008469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :aren't you interested in finding out? < 1271008469 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :NW = (-1,-1), NE = (-1,1), SW = (1,-1), SE = (1,1) < 1271008473 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: but then what of (0,2) < 1271008483 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Not really? :-P The disk tends to be the bottleneck < 1271008485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how do we get there, considering all moves are diagonal? < 1271008496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ffs. ramdisk < 1271008502 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Rare. < 1271008508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well you could test that < 1271008513 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Rare. < 1271008516 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: The locations of the branches don't matter, only the root. < 1271008518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway for stdio you don't need to ever put it on that < 1271008520 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Er, the current node. < 1271008525 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it could go through a pipe < 1271008530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to a throughput measuring app < 1271008532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1271008533 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I don't quite understand. :-P < 1271008568 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh and what about fingerprint performance. Some might be interesting. Like FRTH and STRN. Both can be be implemented both quite fast and also very very naively < 1271008568 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Well, I'm not sure what you're asking. If you want to know where to find/place (0,2), you look at where you are now and go in the appropriate direction. < 1271008575 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that might show a huge difference < 1271008585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :3DSP might be interesting too < 1271008587 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You are at (0,0). < 1271008600 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: If x is equal do we go west or east? < 1271008601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can move to (1,1), (1,-1), (-1,1), (-1,-1). < 1271008605 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Incorrect. < 1271008610 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You can move NW/NE/SW/SE. < 1271008610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(NW/NE/SW/SE) < 1271008618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: ffff < 1271008619 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: What points are there is beyond are concern at this point. < 1271008623 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :our* < 1271008625 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, something like a befunge dhrystone? < 1271008626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Okay then: < 1271008634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :North - X is same; South - X is different < 1271008643 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :West - Y is same; East - Y is different < 1271008645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Er, wait. < 1271008647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's silly. < 1271008650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, from what I can tell, the current fungicide benchmarks don't test arithmetic speed < 1271008652 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, all manner of thing can be tested that Fungicide doesn't. It is also work to do. < 1271008653 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :North - Y is same; South - Y is different < 1271008660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :West - X is same; East - X is different < 1271008673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So we want to move southeast? < 1271008682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, this could be one place where jitfunge could shine. Optimising divisions by 2^5 into bitshifts and such < 1271008687 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: X is same here, so southwest, no? < 1271008690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is not feasible in either cfunge or ccbi < 1271008704 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have lots of work to do; if you want these things to happen, help out. (It's probably fairly trivial to write this kind of benchmark.) < 1271008724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(0,0) / (0,2) < 1271008724 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(x,y) < 1271008727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x is right < 1271008728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :y is wrong < 1271008737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * NW: right X, right Y < 1271008737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * NE: right X, wrong Y < 1271008738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * SW: wrong X, right Y < 1271008738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * SE: wrong X, wrong Y < 1271008749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so northeast < 1271008752 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's not about right/wrong < 1271008752 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1271008754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :y is vertical < 1271008755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway most useful is definitely real programs. I think life.bf would be most useful of these < 1271008756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ffff < 1271008761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay let me rewrite this < 1271008766 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's about lesser-equal/greater vs lesser/greater-equal < 1271008768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is non-trivial to adapt < 1271008791 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So please adapt it so I don't have to. :-P < 1271008793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * NW: wrong X, wrong Y < 1271008793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * NE: right X, wrong Y < 1271008793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * SW: wrong X, right Y < 1271008793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * SE: right X, right Y < 1271008796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah < 1271008801 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Wrong = different, right = same < 1271008802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So < 1271008806 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(x,y) = (0,0) < 1271008810 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(x,y) = (0,2) < 1271008813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how many FLOPS can FPSP in ccbi manage btw? ;P < 1271008815 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x is right, y is wrong. < 1271008818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Northeast. < 1271008819 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Do not know. < 1271008823 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: As you know. < 1271008831 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'm trying to get you interested in it dammit ;P < 1271008836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We want to move northeast. < 1271008840 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Not gonna happen like that. :-P < 1271008848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1271008848 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: y increases to the south, no? < 1271008870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Okay, I am so fucking confused. My brain appears to have forgotten coordinates entirely. < 1271008879 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: 2010-04-11 19:59:02 ( Deewiant) alise: It's about lesser-equal/greater vs lesser/greater-equal < 1271008883 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But still. < 1271008887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Having NW be wrong X, right Y seems so wrong. < 1271008894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :West and North seem so... samey. < 1271008895 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's not about wrong/right, still. < 1271008901 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: You said same/different. < 1271008907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You didn't say <=/> < 1271008913 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Where'd I say that? < 1271008923 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ages ago. < 1271008937 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :/last same doesn't see me saying much of anything. < 1271008944 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Okay, fine. < 1271008952 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It does see you saying it a couple of times, though. :-P < 1271008972 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Make life simpler for yourself and pick (1,2) for the example. :-P < 1271008972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, wait, eh? < 1271008975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You have four comparisons. < 1271008982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So I want to map [NS][WE] to pairs of ... what? < 1271008983 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You have two comparisons. < 1271008989 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"lesser-equal/greater vs lesser/greater-equal" < 1271009011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how far has he reached in his funge thing? Still deciding language? Or deciding how to implement the main loop now? < 1271009012 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: If input.x < node.x then go west; if input.x > node.x then go east; similarly for y < 1271009014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Or perhaps the stack < 1271009031 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: The question is, which branch do we take when input.x = node.x. < 1271009039 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: (And it's completely arbitrary.) < 1271009058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Okay, I'll write this down. < 1271009062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah, I guess fungespace and quad/oct-tree then < 1271009089 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Disabling statistics bought me another 0.3 seconds. < 1271009094 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: iiuc and if you are using 2^n x 2^n space then there is an easier way to look at it < 1271009097 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So I'm only 0.4 seconds behind now. :-P < 1271009107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, try disable tracing for cfunge < 1271009110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, otherwise it isn't fair < 1271009111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: If I pick <= for North, I should pick <= for east, so that there's a sort of symmetry, rather than having a bias. :-D < 1271009115 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :basically take the (x,y) coordinate, write each of x and y in binary < 1271009115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's enabled in CCBI. < 1271009129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well you have a debugger for it, mine is closer to statistics < 1271009130 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Whatever. :-P < 1271009139 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Er, no it isn't < 1271009141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so yes disable the tracing, won't make much of a difference < 1271009150 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :say x = 00001100 and y = 11100001 < 1271009151 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Both are just one if (tracing) doSomething(); < 1271009166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, do you have tracing inside k too? < 1271009167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I do < 1271009177 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: My statistics are all over the place: one per tick, one per IP per tick, one per Funge-Space lookup, one per stack push, one per stack pop, etc. < 1271009182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: < 1271009183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* North: wanted y <= current y < 1271009183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * South: wanted y > current y < 1271009183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * < 1271009183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * East: wanted x < current x < 1271009183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * West: wanted x => current x < 1271009185 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : *) < 1271009186 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: then _pair_ corresponding bits. 01 01 01 00 10 10 00 01 < 1271009189 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There are no ks in this program. < 1271009197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, my trace is all over the place too: one per ip per tick and in k < 1271009198 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So, (0,2); x is ok, so West; y is wrong (wanted is greater), so South. < 1271009202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Southwest, Deewiant, right? < 1271009203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, plus in some fingerprints iirc < 1271009204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: wut. < 1271009206 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, that's not all over the place. :-P < 1271009224 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :those pairs are your directions. 00 = SW, 01 = NW, 10 = SE, 11 = NE < 1271009227 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Right. < 1271009230 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(from the root) < 1271009234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw when do you shrink bounds in ccbi2? < 1271009240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But then what? Do we just insert a leaf there? < 1271009242 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I don't see how this is "an easier way to look at it" < 1271009245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, lazily? Or eagerly ? < 1271009248 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: In y. < 1271009256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, I have no clue how I'm going to do exact bounds with this < 1271009260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, do you have a flag for if it is exact like I do? < 1271009261 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: No, now you go there and take a look. < 1271009267 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, I don't. < 1271009270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271009275 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: >_< < 1271009284 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I.e. take the SW link and do something based on what's there. < 1271009292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw with the hash table funge space is your wrapping still O(1)? < 1271009296 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I.e. recursion. :-P < 1271009313 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: My wrapping is not globally O(1) < 1271009315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'll write a function to decide what direction to go in, then. < 1271009325 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Good idea! < 1271009358 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: But yes, it uses the same algorithm, just treating the hash table area as one more box. < 1271009368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so one could make a benchmark where you get very slow wrapping due to using hash table and only shrinking bounds in y? < 1271009383 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D < 1271009384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, do you shrink the bounds of the hash table box then? < 1271009387 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The bounds aren't used for wrapping. < 1271009395 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: >_< < 1271009400 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It freaks me out that we have x,y in tuples but y,x in direction names < 1271009402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like northeast < 1271009411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, then what is used for it? if you have a huge sparely populated hash table box < 1271009411 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Blame English. :-P < 1271009411 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i guess N and S should be switched if y is numbered from top like in funge < 1271009435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, I don't get it < 1271009450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the pun I mean < 1271009454 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1271009454 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what pun < 1271009457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably due to something alise said? < 1271009463 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Deewiant: well i cannot make heads or tails of what you are saying, so easier for _me_ :D oerjan: >_< < 1271009474 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What makes you think there is a pun anywhere. < 1271009480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oerjan said it :P < 1271009495 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: he is just frustrated i don't understand his NW stuff (or at least don't think it helps any) < 1271009497 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If oerjan says something it is not automatically a pun. < 1271009498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pretty good indicator of P(pun) < 1271009509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is if someone else go >_< at it < 1271009529 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think I'm the only one here who goes >_< at anything < 1271009540 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And I think I don't usually respond to puns < 1271009540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I do it, in other channels mostly < 1271009555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :more often -_- though < 1271009575 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: i assumed you were trying to find out how to go to a specific coordinate. from the root my way is very simple. < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun directionFor ((cx,cy), (wx,wy)) = < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : case (wy <= cy, wx < cx) < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : of (false,false) => SW < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (false,true) => SE < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (true,false) => NW < 1271009607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (true,true) => NE < 1271009620 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all < 1271009636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: val move : quadtree * direction -> quadtree < 1271009636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val leaf : quadtree -> word < 1271009637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val put : quadtree * word -> unit < 1271009646 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think these primitives are wrong. < 1271009658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think there is a useful set of primitives that do not handle coordinates themselves for this structure. < 1271009732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: it tells you immediately the path from the root of the quadtree to the given coordinate < 1271009753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : oerjan: Interleaving the x-bits and y-bits? I don't see the point of that at all <-- cache? < 1271009754 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I don't understand at all how < 1271009778 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: let's say we have a 256 x 256 fungespace to be made into a quadtree < 1271009785 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: It depends on the quadtree itself, doesn't it? < 1271009805 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh, but we are assuming that it is centered at (0,0) < 1271009808 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: maybe you have some different structure in mind < 1271009810 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Which I guess helps < 1271009884 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well you could make it -256 to 255 coordinates < 1271009893 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er, -128 to 127 < 1271009924 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then (0,0) is at the lower left corner of the upper right quadrant, as close to the center as you can get < 1271009950 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, sure < 1271009953 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you'd just have to invert the very top bits for that < 1271009969 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(the sign bits) < 1271009974 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't see at all how this bit-interleaving works :-P < 1271010001 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :er i keep thinking y increases upward < 1271010006 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(as in math) < 1271010017 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so switch upper and lower above < 1271010054 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the upper left quadrant is now (-128, -128) to (-1, -1) < 1271010069 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and can be detected by the sign bits < 1271010075 0 :charlls!~charlls@186.72.7.94 JOIN :#esoteric < 1271010092 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the lower right is (0, 0) to (127, 127) < 1271010106 0 :cheater2!~cheater@ip-80-226-28-99.vodafone-net.de JOIN :#esoteric < 1271010115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so wait using y increasing upwards should i change my north/south conditions?? < 1271010121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er i mean < 1271010122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :increasing downwards < 1271010125 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now when we subdivide the latter one, we get the upper left of _that_ is (0, 0) to (63, 63) < 1271010126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* North: wanted y <= current y < 1271010126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : * South: wanted y > current y < 1271010128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am so, so confused < 1271010139 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Don't listen to us :-P < 1271010147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1271010153 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean, this convo. < 1271010156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I still don't get the subdivision algorithm :D < 1271010160 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well it's just about being consistent but i assume you want south == downwards == increasing line number? < 1271010163 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If what oerjan does works, it's still an optimization. < 1271010172 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wouldn't worry about it just now. < 1271010172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: right < 1271010177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so my two lines are correct < 1271010189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so am I right in thinking tha < 1271010189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :t < 1271010195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val move : quadtree * direction -> quadtree < 1271010196 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val leaf : quadtree -> word < 1271010196 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : val put : quadtree * word -> unit < 1271010197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is a bad set of primitives < 1271010202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's basically useless without coordinate stuff < 1271010234 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You need put : quadtree * coords * word -> unit < 1271010234 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: it's just that i don't see how knowing whether something is north or south of where you are helps anything particularly with finding out which quadtree quadrants you are in < 1271010245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm from the convo it seems alise isn't copying ccbi, but rather is copying Deewiant's step by step guide < 1271010249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just saying < 1271010257 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: It tells you which quadrant to go to next < 1271010266 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Actually, it isn't even CCBI's algorithm. < 1271010269 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I mean, that's basically how a quadtree is defined < 1271010273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm asking for an explanation of an entirely neutral data structure. < 1271010287 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: About a branch, the points northwest of it are in the northwest quadrant, and so on. :-P < 1271010300 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you know, either shut up or unignore alise < 1271010306 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, I'm delighted that you've found happiness in being an irritating little prick by being an idiot with regards to me and continually mentioning that I'm annoyed; at least your life has purpose now. < 1271010313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*I'm ignored < 1271010316 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although I am annoyed too. < 1271010333 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: the shut up goes for you too :D < 1271010336 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: On the other hand, maybe he should keep me ignored :) < 1271010340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hey, I haven't ignored him. < 1271010345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's not my fault he's ignored me. < 1271010350 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm also annoyed, CCBI is failing at underload. :-P < 1271010352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Entirely out of my control. < 1271010355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, hm? The former probably, I don't have anything to add after that. So it would be pointless not to shut up. A waste of the keycaps < 1271010408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Stinkhorn uses 64x64 arrays, it seems. < 1271010415 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Seems like a nice round number. < 1271010433 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well the thing is when you have a quadtree of integer coordinates, afaict the leaves are 1 x 1, their parents represent 2 x 2 and _their_ parents represent 4 x 4 squares, etc. < 1271010435 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Careful; I think Stinkhorn is GPL. < 1271010440 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: :-D < 1271010455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although 64x64 is suboptimal in that I think Befunge-93 programs should really fit into one array. < 1271010461 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and it's then easy to align things such that the boundaries of the squares correspond to bit boundaries < 1271010463 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then again, 80*80 is both not round and a bit too big. < 1271010468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :96*96 is just travesty, isn't it? < 1271010479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: there are no parents in quadtrees < 1271010481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you cannot traverse upwards < 1271010495 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :There are parents, you just can't access them. < 1271010515 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is now damn unsure if he knows what a quadtree _is_ < 1271010520 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1271010531 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: You've been right so far AFAICT. < 1271010540 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271010540 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of coords * word array < 1271010541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * subtree * subtree * subtree * subtree < 1271010541 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and type subtree = quadtree option ref < 1271010543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am fairly sure I have this right by now. < 1271010549 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(The array is, of course, just an optimisation.) < 1271010550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, wait. < 1271010558 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I think you have this right. < 1271010559 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :This means that when I hit something I need to decide whether I'm in the bounds of any potential array. < 1271010563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or, no. < 1271010565 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's just if I hit a leaf. < 1271010567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Isn't it? < 1271010568 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271010571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Good. < 1271010573 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise that would be painful. < 1271010594 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think your arrays need to be a power of two for this to work. < 1271010606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe 64x64 blocks, plus an initial field of say a megabyte would be best; but that's not part of the quadtree stuff. < 1271010608 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :At least without some carefulness. < 1271010620 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, 64^2 = 4096, yep, that's a power of two. < 1271010628 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1271010645 0 :Asztal!~asztal@host86-156-102-63.range86-156.btcentralplus.com JOIN :#esoteric < 1271010646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Careful; I think Stinkhorn is GPL. <-- oh, copying that too? How fun ehird must have < 1271010673 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I thought you were going to shut up. < 1271010684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: You know what, I think I'd really appreciate it if you either (a) unignored me, (b) shut the fuck up, or (c) go aestivated under a rock somewhere. < 1271010692 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, until the point of seeing a point of pointing out something else < 1271010693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Apparently that'd be a "waste of key caps". < 1271010707 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A point? As far as I can tell everyone either doesn't care or is irritated. < 1271010707 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There is no point if you don't know the context. < 1271010716 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*went and aestivated < 1271010731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I know the context. Just not the complete context ;P < 1271010752 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I.e. you don't know the context. < 1271010753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION eliminates the QUADTREE signature for now < 1271010757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is rather concrete atm < 1271010781 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :if by Stinkhorn you mean my befunge thing, it uses the MIT license. < 1271010806 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Darn, my bad. < 1271010818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: Your octrees are confusing as fuck, and I'm doing it with half the trees! < 1271010847 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :alise: I agree < 1271010920 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Asztal, out of interest, what sort of funge space do you use? Quad tree? hash table? AABBs? < 1271010929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something else? < 1271010933 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :It's an octree/quadtree < 1271010942 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271011012 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i would have said that an octree's paths from the root is just combining _triples_ of bits from the coordinates, if i was sure of anything anymore < 1271011013 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :it uses page sizes of 64x64 or 4x4x4 depending on how many dimensions are in use < 1271011041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Asztal, so smaller pages in trefunge? < 1271011044 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: $ ./stinkhorn -3 < 1271011045 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :warning: -3 doesn't do anything yet < 1271011063 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: haha, interesting... it should do something < 1271011112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1271011123 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, it's kind of a design limitation actually, it would take some work to support non-cube pages < 1271011137 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :TIME CUBE < 1271011150 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Somebody should make a time cube programming language. < 1271011153 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Gogogo. < 1271011194 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :16x16x16 would be as big as 64x64 btw < 1271011202 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: seems like the warning is indeed wrong there... does it run a trefunge program properly? < 1271011262 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it seems I actually use 8x8x8. < 1271011274 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I think 16x16x16 wasted too much memory. < 1271011275 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: It doesn't seem to, no. < 1271011280 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :8x8x8x8 would also be the same size < 1271011304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :4D funge is evil ;P < 1271011311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus non-portable < 1271011317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no standard file format for it yet < 1271011365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, old version of stinkhorn? < 1271011383 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: So, basically, all my functions on quadtrees should take coordinates, as the actual primitive quadtree functions are basically useless. < 1271011386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yeah? < 1271011391 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Latest hg. < 1271011398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1271011416 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'd say that's simpler, yes. < 1271011419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So < 1271011421 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :val get : quadtree * coords -> word < 1271011422 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :val put : quadtree * coords * word -> unit < 1271011427 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Although I need bounds too, don't I? < 1271011431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Bounds will be hell :( < 1271011436 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You don't need to worry about bounds yet :-P < 1271011450 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Okay. < 1271011535 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :get should be easy enough... I hope. < 1271011580 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :methinks youAreHere : quadtree -> coords needs a better name < 1271011584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, "here" should do fine < 1271011664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw stinkhorn handles lmh correctly in 2D < 1271011667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haven't tested rcfunge yet < 1271011682 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun get (qt, there) = < 1271011683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : let here = currentCoords qt in < 1271011683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* move in direction `directionFor (here, there)`, < 1271011683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : subtract from coordinates appropriately (?), < 1271011683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and recurse *) < 1271011684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for branch nodes < 1271011685 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1271011722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and surprisingly so does rcfunge! < 1271011730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that was unexpected < 1271011733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, the arrays should have coordinates in the middle I think < 1271011781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, my small test program was: http://sprunge.us/WUdC < 1271011819 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun get (Leaf(here, fs), there) = dummy (* handle the arrays, etc. *) < 1271011820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | get (Branch(here, st), there) = < 1271011820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* move in direction `directionFor (here, there)`, < 1271011820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : subtract from coordinates appropriately (?), < 1271011820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and recurse *) < 1271011823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1271011826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't want to subtract from the coords < 1271011915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: There's no reason I need to inspect the directions, is there? I'm thinking about just representing them as their accessor functions of the subtree structure < 1271011972 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The directions themselves are always the same for any node so no, you don't need to do anything with them directly < 1271012018 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Making the timeout-checker in underload.b98 do a wraparound is a wonderful way of increasing CCBI's time by 10% and cfunge's by over 1000% :-P < 1271012027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(can't alise figure out that sort of things himself. After all he claims to be smart and such) < 1271012043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but that is pointless because most programs don't wrap around much < 1271012050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster has gone completely insane. < 1271012054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think I've finally managed to crack his psyche. < 1271012058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so I consider that utterly irrelevant for real usage < 1271012063 0 :ellisonch!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: thank you very much for your help re. reMorse < 1271012066 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, it depends < 1271012082 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Can't ellisonch figure out that sort of things emself. < 1271012086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :After all e claims to be smart and such. < 1271012088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I suggest you try to make CCBI fast at the non-wraparound case instead < 1271012089 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: E.g. the way I originally wrote this, if I hadn't made an error, I would've preferred to wrap around. < 1271012093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, better spent time < 1271012102 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Er, no. < 1271012105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(No offence, ellisonch. You're just the wonderful convenient scapegoat.) < 1271012107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why not? < 1271012125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ellisonch, no problem < 1271012136 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :There is no "better spent time" since the way I do it now is not caused by massive optimization, it's pretty much a necessity < 1271012161 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I.e. the wrapping hasn't been particularly optimized, it just seemed like the only sensible way to do it < 1271012168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, just making an anti-cfunge-test because you can't make ccbi look better any other way? < 1271012182 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :What the fuck now, seriously? < 1271012194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well that is what adding such a wrap around results in < 1271012196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :IMO < 1271012210 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm just messing around and seeing what affects runtime < 1271012222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm not adding this to any official benchmark and then using that to say "oh ho, CCBI kicks cfunge's ass" < 1271012225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it favours AABB implementations and few other ones < 1271012231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well good then < 1271012237 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I specifically stayed away from putting any conclusions in Fungicide to avoid seeming biased < 1271012265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, especially since it is hard to tell how well it reflects "real" applications yes < 1271012300 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I do like having fast worst cases at the slight expense of the average, though < 1271012335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(When clicking logout link): Error: You have been logged out due to inactivity. To perform this action you must first log in again below: < 1271012337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1271012343 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But CCBI does have worst cases in the wrapping which will make it O(n^2) in the delta, IIRC < 1271012349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not the first time I seen that happen < 1271012361 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe just O(n) < 1271012369 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Can't remember exactly. < 1271012374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm. < 1271012430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : I do like having fast worst cases at the slight expense of the average, though <-- opposite for me < 1271012478 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think your intuition was right on the money, about having a space-filled stack which is then filled in here and there. < 1271012516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well yes, from reading your code it seems obvious this should be a bad case for it. I'm unable to tell how bad exactly without testing of course. < 1271012522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how bad was that case? < 1271012546 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Instead of getting one nice Nx1 rectangle there's one like that and then a dozen smaller squarish ones < 1271012555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1271012563 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that I didn't expect < 1271012581 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, the heuristic kicked in at some point and gave the Nx1 < 1271012584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I expected several Nx1 instead < 1271012585 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Fortunately enough < 1271012600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you need to fine tune the test case to avoid that heuristic ;P < 1271012611 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, I need to think about what to do in a situation like this. < 1271012628 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think I might need a new subsumption pass. < 1271012647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, does it matter much though? It is still reasonably fast I presume? < 1271012658 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It's the same old 3ish versus 2.5ish < 1271012674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hm? In speed ratio? < 1271012681 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In seconds < 1271012683 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271012695 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Can't remember the exact numbers; I pasted them to you an hour ago or whenever. < 1271012697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, did you get better for the non-wrapping compact stack case? < 1271012704 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I haven't changed anything at all. < 1271012707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271012713 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm just looking at what's going on. < 1271012742 0 :myndzi!myndzi@tengototen.net JOIN :#esoteric < 1271012747 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Stinkhorn does it in about 5.5 seconds, FWIW. < 1271012758 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I wonder how it wraps. < 1271012772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is that the non-wrapping that is 5.5? < 1271012777 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Evidently slowly enough that its time goes up a lot when wrapping as well. < 1271012782 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271012786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1271012795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how much does it go up by btw? < 1271012796 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Couldn't be bothered to wait for the wrapping, like with cfunge. < 1271012799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271012806 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Both take over a minute. < 1271012830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I have an idea for slogan for ccbi < 1271012845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CCBI: When edge cases is the only thing you care about < 1271012848 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what do you think? < 1271012862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster's new era: be a jerk to every single person. < 1271012863 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I think that's bullshit, but that's just me. < 1271012880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but "almost the only thing" wasn't as snappy ;P < 1271012898 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Befunge interpreter debates? < 1271012907 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Not "debates", really. < 1271012909 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You guys may well make me write a Befunge interpreter. :P < 1271012917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, 93 or 98? < 1271012925 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Sure. < 1271012926 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271012929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, both? < 1271012939 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Beats me. < 1271012945 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :We managed to find a case where cfunge clearly beats CCBI and I'm trying to think of a heuristic that'd flip that. < 1271012968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and this one was in fungot < 1271012968 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: perhaps. it doesn't lose any points for the original term. units may be the first char < 1271012976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is actually more representative than fungicide < 1271012994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the ^ul interpreter to be specific < 1271013021 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Seems mutable. I may have to learn a thing or two about Haskell's arrays. < 1271013038 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Or go crazy and do more functional C? :P < 1271013041 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: "More representative"? Of what? Of real world programs? Sure, given that fungot's the only one, it's representative of itself... < 1271013042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Don't use arrays. < 1271013042 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: exit the channel), is chicken a wib implementation of scheme < 1271013044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the latter! < 1271013052 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: You need 2^32 x 2^32, or even ^64, size array. < 1271013054 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, exactly! < 1271013061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So you want something like a hash table, or a quad tree, or an array of boxes, etc. < 1271013074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, wib? < 1271013074 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but it wasn't even a word < 1271013084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed that was why I asked < 1271013084 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So isn't cfunge the one tuned for a special case, namely only one program? :-P < 1271013087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Also, functional C would be hell: while -93 is a trivial task, -98 contains many, many corner cases and even implementing the basic instructions correctly requires thousands of lines of code. < 1271013102 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Add in fingerprints and you have a project that must be embarked upon sanely. < 1271013107 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Not thousands. < 1271013116 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, with exact bounds and forking? < 1271013118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, Three. life.bf, underload.b98/fungot, mycology < 1271013118 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Those Lua ones were almost there and they were at what, 500 lines. < 1271013118 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: and merges them correctly when i now think it would make sense in unicode. < 1271013120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe a few hundred, then. < 1271013123 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I meant more like 1,000. < 1271013125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because those are the apps I know in befunge basically < 1271013137 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Still, if you want any sort of speed it's over 1,000. < 1271013139 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Forking is unnecessary, exact bounds is cheap linewise if you do it suboptimally < 1271013141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are a few small ones sure, like the TURT quine < 1271013145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And if you want a good set of fingerprints, 4,000+? < 1271013145 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Maybe, sure. < 1271013151 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Forking is unnecessary but nice to have. < 1271013161 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Define "real world app", of course. :-P < 1271013168 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Hmm. This would require some actual thought regarding good data structures then. < 1271013180 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: I've spent the past hours bugging Deewiant about quadtrees. < 1271013181 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That's what alise's been up to the past few hours. < 1271013192 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: A nicer phrasing of it. < 1271013197 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1271013215 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Eventually I settled on < 1271013217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : datatype quadtree < 1271013218 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Now do I want "absolutely naive and readable" or "clever and speedy"? < 1271013219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, something more complex than "hello world", something that fills or is larger than befunge93 space I guess. life.bf fills it. fungot and mycology are larger. < 1271013219 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: who even needs those equations? < 1271013220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = Leaf of coords * word array (* arrays are 64x64 = 4096 words *) < 1271013220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | Branch of coords * {nw : quadtree option ref, < 1271013220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ne : quadtree option ref, < 1271013220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : sw : quadtree option ref, < 1271013220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : se : quadtree option ref} < 1271013224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where array is mutable and ref is a non-NULL pointer < 1271013228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and there are two more things < 1271013232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(postfix parametric types, so it's A option) < 1271013245 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Is not part of Fungicide? ;-) < 1271013246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: If it's absolutely naive, good luck running any of the interesting programs like fungot. < 1271013246 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :alise: and i hope your teacher will look at it like that < 1271013248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the first is: isn't made especially to test performance (excludes slowdown.b98) < 1271013253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(and fungicide too) < 1271013259 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1271013262 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Oh? < 1271013270 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Befunge is that freaking slow? < 1271013271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the other is: is actually used by someone < 1271013272 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :hmm, ML syntax, I can't help but finding it so ugly < 1271013274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like fungot < 1271013274 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it comes from printing " digital root: " and 255 and 0, oh my < 1271013275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :... If implemented naively. < 1271013277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yes; imagine its dawdling Underload performance, slowed down by a few hundred times. < 1271013286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, used for something not related to the program itself exclusively < 1271013292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that may arguably exclude life.bf < 1271013297 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: CCBI and the other top interpreters run the Mycology test suite in something like 0.02 seconds. Slow interpreters like Language::Befunge take several minutes. < 1271013300 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: So, what you're saying is threaded code. < 1271013302 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It does IMO. < 1271013306 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271013306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but I also use it sometimes to run GOL simulations < 1271013311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, before I installed golly < 1271013314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Self-modifying? fizzie tried that < 1271013317 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Not minutes. < 1271013317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Language::Befunge is the slowest interp; N-dimensional Perl interp) < 1271013323 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Language::Befunge takes how long now? < 1271013328 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1271013330 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: CCBI 1 is slower than Language::Befunge on some programs. :-) < 1271013333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Threaded code, though. It's the Forth way! < 1271013336 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should write a Befunge interpreter in Haskell < 1271013342 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Well, whatever. :) < 1271013345 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Hang on, /me times. < 1271013347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :olsner: OCaml syntax, yes. But Standard ML> < 1271013348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*ML? < 1271013355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun currentCoords Leaf(c,_) = c < 1271013356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | currentCoords Branch(c,_) = c < 1271013356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* < 1271013356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | subtree (Branch(_,nw,_,_,_), NW) = nw < 1271013356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | subtree (Branch(_,_,ne,_,_), NE) = ne < 1271013356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | subtree (Branch(_,_,_,sw,_), SW) = sw < 1271013357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | subtree (Branch(_,_,_,_,se), SE) = se < 1271013358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but yes, something made especially for benchmarking isn't a "real world" program < 1271013359 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: 17 seconds. < 1271013360 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1271013362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun directionFor ((cx,cy), (wx,wy)) = < 1271013363 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not sure how easy it is to handle the self-modification with that, though. < 1271013364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : case (wy <= cy, wx < cx) < 1271013366 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : of (false,false) => #sw < 1271013368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (false,true) => #se < 1271013370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (true,false) => #nw < 1271013372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : | (true,true) => #ne < 1271013374 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :looks pretty pretty to me < 1271013376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Hard < 1271013378 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :JITfunge was really nitty-gritty code < 1271013401 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: How fast is CCBI2 running Mycology? < 1271013402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I still have great hopes of jitfunge < 1271013403 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If I write an underload interp in Befunge for a Fungicide benchmark, is it a real world program? < 1271013408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact I think it is the best way forward < 1271013408 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Hm, too lazy to try to figure out how < 1271013421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if fizzie ever continues with it < 1271013432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I bet we will see a jitccbi3 some time after < 1271013446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just because Deewiant can't accept not being best at befunge ;P < 1271013448 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Right now I've a fingerprintless version compiled, it takes 0.00s < 1271013461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I can't divide by zero. And with fingerprints. :-) < 1271013473 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I don't want to compile a fingerprint version, I'm messing around. < 1271013480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fair enough. < 1271013491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, would you make a ccbi3 in case of a JITing implementation overtakes you? < 1271013492 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But not much more than that, anyway. < 1271013501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: So, taking Deewiant's 0.00s for CCBI2 and 17 seconds for Language::Befunge, a non-naive interpreter is infinity times faster than a naive one on a simple test suite. < 1271013516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Infinity! That's bigger than 34, 3459873459, -2, and G_64. < 1271013524 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Language::Befunge isn't that good an example, really. :-P < 1271013531 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :alise: not sure which dialect I'm offended by... what's the difference between ocaml and sml syntax? < 1271013535 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: If I had something interesting to do with it, sure. < 1271013544 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Not just as a matter of principle, no. < 1271013545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :olsner: ocaml looks like +. this /. 3. ;; < 1271013548 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Clearly I should first do a Befunge-'93 interpreter. < 1271013555 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :olsner: it is incredibly offensive < 1271013574 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Conversely, SML abstains from semicolons, has proper polymorphic arithmetic operations, etc. < 1271013576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw that is another problem with fungicide: In many of the tests the all of the instructions in the entire program are executed one time each. Which is _very_ rare for a "real world" befunge program. < 1271013585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's basically like Haskell without indentation-sensitivity and some minor stylistic choices. < 1271013588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That is about a page of code. < 1271013593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Less if you use a good language. < 1271013607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Remember to prompt the user for the result to use on division-by-zero. < 1271013628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, befunge93 is a good way to start at doing befunge98 < 1271013632 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I was thinking of using C and crazy computed goto-ness, personally. < 1271013652 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: There's one like that already. < 1271013653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you extend it. Then you rewrite the funge space and the stack-stack. Then you rewrite the rest < 1271013659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It is not. < 1271013660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The entire fungespace architecture changes. < 1271013675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, which one? < 1271013675 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: In some of the tests. Not all. < 1271013683 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I can't remember what it's called. < 1271013684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I said "many" < 1271013686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not "all" < 1271013690 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: I'm guessing funge93 is only a good way to get... Used to befunge. I'm imagining most of this code will be chucked. < 1271013706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Yeah. < 1271013708 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: And you're free to look only at the other benchmarks if you wish. < 1271013720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Mind, AnMaster certainly can't code Befunge, and I even less so. < 1271013727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant is probably the only implementer proficient in the language. < 1271013733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well it doesn't bother me much in cfunge. But it is really unfair to something like jitfunge < 1271013737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, and fizzie, but his interpreters are abandoned. < 1271013742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(more or less) < 1271013775 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There's nothing "unfair" about demonstrating a program which runs slower on one interpreter than another. < 1271013820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is if you do it to the point of making it show "timeout" for max time :P < 1271013828 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, it isn't. < 1271013844 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It is a simple fact: this program took over 3 hours on this interpreter. < 1271013858 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Whether you, the reader, care about that is up to you. < 1271013861 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway, how do you handle implementations that don't implement t in the rankings? < 1271013868 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :They all do, so I don't have to worry. < 1271013881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well if you were to add efunge it wouldn't < 1271013891 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Then I'd have to worry about that. < 1271014115 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, the runtimes are about the same for (:^):^ < 1271014180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, underload without wrapping is really quite well suited to cfunge. Sure a static array there could work better in theory, but unlikely to be a problem in practise < 1271014190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also do you mirror the Nx1? < 1271014192 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How is it well suited? < 1271014192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could help < 1271014196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it grows into -x < 1271014197 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Mirror? < 1271014205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as in start of array near origin < 1271014213 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, I don't. < 1271014213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and end of array growing towards -inf < 1271014222 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :For (:^):^ it doesn't matter anyway. < 1271014225 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well then I assume you have to realloc and also move the data < 1271014241 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Almost nothing is allocated in that program. < 1271014241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well duh < 1271014250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I meant for the previous test program < 1271014256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that you ran on the bots in here before < 1271014269 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I'm markedly less interested in the more complex test program now that this gives the same results. < 1271014304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, sure. Because for that I think it is all in cfunge's static space < 1271014309 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and for you it is all in AABBs < 1271014314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the same one even < 1271014325 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so indeed it is not going to cause any problems for you < 1271014327 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :cfunge's static space is an AABB. < 1271014328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor for me < 1271014331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well yes < 1271014336 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but a fixed such < 1271014395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and in that way we both do pretty much the same. Since mine is compile time fixed that means I have slightly less overhead when it comes to checking if I'm in it. The compiler can write smart code. < 1271014407 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yep. < 1271014416 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :But the difference shouldn't be that big. < 1271014422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, since it is a power of two size, it can also be smart at mapping x/y coordinates < 1271014432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1271014448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :multiplying by line length < 1271014451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is a bitshift < 1271014490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, while in CCBI as far as I understood the code it may very well be a multiplication. Which takes more cycles < 1271014495 0 :zzo38!~zzo38@h24-207-48-53.dlt.dccnet.com JOIN :#esoteric < 1271014500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not as bad as integer division true < 1271014502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1271014511 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Those people in ##C channel won't help they make up all sort of confusing < 1271014524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of confusing what? < 1271014528 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :How to write a code that makes a compile-time error in C if the endianness is wrong? < 1271014537 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I love me some unary &&. < 1271014539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1271014556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: ooh, interesting < 1271014571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I'm not sure that is feasible. Try using something like a test program for it. Like autoconf or whatever < 1271014576 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: I'd construct some direct expression in something that won't have its endianness messed with, then cast it to the relevant type, < 1271014587 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: and e.g. make an array of size it, minus what it should be < 1271014591 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :minus one < 1271014592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, better would of course be to support all both big and little endian systems < 1271014596 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except opposite... < 1271014622 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :zzo38: Endianness is a property of representations, not values, and you can only mess with values at compile time < 1271014624 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I need to use expression that can tell at compile-time the endianness. < 1271014628 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :My hunch is that it is impossible. < 1271014641 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It needs to be work on little-endian only < 1271014642 0 :atrapado!~roper@46.188.116.91.dynamic.mundo-r.com JOIN :#esoteric < 1271014645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'm not sure, you can do tricks with making arrays minus-sized. < 1271014660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as far as I can tell from AMD docs bitshift is 1 cycle. reg32 is 4 cycles < 1271014668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for multiplication that is < 1271014671 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: And get a compile error? < 1271014674 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :alise: I have made trick array with negative size for checking sizeof(int) and stuff like that at compile time < 1271014695 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But you do an expression that's only -1 if it shouldn't work. < 1271014700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, you can get sizeof(int) from limits.h < 1271014700 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Like zzo38 said, he's done that before. < 1271014710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well you get the range of it < 1271014714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :trivial to compute from that < 1271014717 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Right; but you can't do anything depending on endianness at compile time, was my point. < 1271014731 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Minus-sized arrays is just a compile-time assertion, that's a separate thing. < 1271014761 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :If you want to see why, look at the code: http://codepad.org/FANFIgbc line 83 is the key but a black key would be keys[-1] (because of color 0 = black) and it would give you 256 gems < 1271014767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, why don't you just use a configure script to check this? Or make it work on both big and little endian? < 1271014790 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :ZZT was never programmed with black key so when people figured out a black key this is what it did, and this why it does so. < 1271014876 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, it needs to work on little endian it is not supposed to work on big endian. < 1271014877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : #define inc_world_head < 1271014877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : #include "world.h" < 1271014879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1271014890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the point of that < 1271014896 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Please note that "world.h" is this same file. It includes itself < 1271014903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, yes but why < 1271014904 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :And you should be able to see the point of that < 1271014911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I see what it does < 1271014914 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :It is because of ZZT. < 1271014917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I don't see why that is useful < 1271014923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, and why does zzt need it? < 1271014977 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I don't quite know, I didn't write ZZT. The people who did write ZZT wrote it in Pascal and has lost the source-codes but now I want to re-write it in C so that you do not lost the source-codes anymore < 1271014992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1271015006 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Tim Sweeny wrote ZZT and his hard-drive broke, unfortunately. < 1271015025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, still I tell you the compile time endianness check is most probably impossible < 1271015040 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I want to write ZZT as GNU GPL v3 < 1271015043 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what about bitshift operators < 1271015050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, you will have to bite the bullet and use a configure script or rewrite the code to be endianness independent < 1271015052 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Boilerplate nearly complete. Whoo. < 1271015064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or just assume it is little endian and fail on big endian < 1271015067 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :OK. How do I use a configure script? < 1271015073 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, boilerplate for what? < 1271015091 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Befunge '93 interpreter... < 1271015125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, well, make a shell script that compiles a test program basically and then generates an include file like "config.h" with a "#define BIGENDIAN" or "#define LITTLEENDIAN" or such < 1271015130 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :With control-flow being done via an array of addresses. :P < 1271015133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or that errors < 1271015149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, there is GNU autotools but that is quite a horrible mess to write for < 1271015159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :may be easier to write your own shell script < 1271015167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least if you target *nix < 1271015170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for windows I have no clue < 1271015175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cygwin I guess < 1271015177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or mingw < 1271015186 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: OK I can understand, thanks. I can write a shellscript in bash and it can use MinGW if you are Windows < 1271015197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, or you could use something like cmake to do it. Which is like autoconf but another system < 1271015207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it could compile a test program and do something based on the output < 1271015214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is the basic ideas of all configure scripts < 1271015252 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :But I have another question also that they don't answer in ##C channel: Is this the correct way to emulate counted strings: http://codepad.org/h5mOa9ZD < 1271015252 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, wait. Don't have a stack. Time to copy in Pikhq's Naive C Stack. < 1271015268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, so do something like $CC -o test endiantest.c && FOO="$(./test)" && rm ./test < 1271015272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that won't work < 1271015282 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Just use Gregor's Naïve C Buffers < 1271015282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to what assignment and && does in bash < 1271015286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but you get the general idea < 1271015300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, then you do something by checking $FOO or whatever your variable is. < 1271015314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, you don't have a stack? < 1271015331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, as in, funge stack or C stack? < 1271015333 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: OK I understand the endianness check now but can you answer my second question? < 1271015340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Oh, right. Those are nicer than my naive stack. < 1271015342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, hm *looks* < 1271015351 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Funge stack. Though I am making no use of the C stack. < 1271015353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, define counted strings < 1271015362 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :My interpreter is based on computed goto. < 1271015365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, if you mean pascal style ? < 1271015372 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes I mean like that < 1271015385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, str[_1]? < 1271015394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait I see now < 1271015400 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh at that name < 1271015425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, well not really. I see one issue here and that is that you allocate more than is needed < 1271015461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, a 10 char long string20 would still take 24 bytes (21, but three bytes of padding is added to that) < 1271015462 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What you mean by that, how is it allocate more than is needed? < 1271015481 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: OK now I know. < 1271015492 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Is there a way to remove the padding? < 1271015495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I would allocate it dynamically as a length byte + a number of chars < 1271015521 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I do need to remove the padding so that it can work like how it is stored in ZZT < 1271015536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, the padding isn't the issue here. The issue is that it a 10 char string isn't 11 bytes (one for length, 10 for the string itself) < 1271015550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Well, I've implemented -- I believe correctly -- get. < 1271015552 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So only put to go. < 1271015556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, no portable way to remove the padding. You could always do it manually and not use a struct at all for it < 1271015569 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Does GNU compiler can remove the padding? < 1271015572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, perhaps convert it to/from C-strings as you need it? < 1271015573 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Definitely using the buffer macros of yours. < 1271015591 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, I think so, some type __attribute__ iirc < 1271015616 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :I need to make it so that if it overflows, it overflows in the exact same way as ZZT does it < 1271015624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, http://gcc.gnu.org/onlinedocs/gcc/Type-Attributes.html < 1271015633 0 :zzo38!unknown@unknown.invalid PRIVMSG #esoteric :Thanks < 1271015639 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, removing padding would slow it down for arrays of such though < 1271015657 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Well. Adapting, more-like. < 1271015658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :zzo38, oh wait it won't work < 1271015664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is more padding < 1271015666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it won't be 24 < 1271015674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since there will be padding between the length and the array too < 1271015677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not just at the end < 1271015677 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Any generally-useful changes you make could be committed upstream :P < 1271015700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, what are these buffer macros? < 1271015703 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Gregor: Only thing I'm *adding* is a PUSH_BUFFER macro. < 1271015716 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Just some macros for handling C buffers safely. < 1271015726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, like buffers of bytes? < 1271015731 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271015733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1271015741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, why do you need that in a befunge interpreter? < 1271015741 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://codu.org/projects/stuff/hg/index.cgi/file/tip/buffer.h < 1271015744 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :No, buffers of types. < 1271015749 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What're the bounds of cfunge's static area? < 1271015753 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :The buffers can be of anything. < 1271015755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, why do you ask? < 1271015783 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :any particular reason it's all macros rather than e.g. inline functions? < 1271015798 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I want to see what making the first box be like that will do to the performance < 1271015808 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :olsner: Because. < 1271015814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I need to check then < 1271015829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_X 64 < 1271015829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_Y 64 < 1271015830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_X 512 < 1271015830 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Okay. < 1271015830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_Y 1024 < 1271015834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that should tell you < 1271015847 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: So from (-64, -64) to (512-64, 1024-64)? < 1271015851 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes < 1271015856 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Alright, thanks < 1271015906 0 :zzo38!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1271015940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, also this is carefully tuned so that (FUNGESPACE_STATIC_X * FUNGESPACE_STATIC_Y * sizeof(funge_cell)) % 128 == 0 holds true < 1271015962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I'll let you figure out why on your own (alternatively read the code) < 1271015990 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well you've bragged about your inline asm often enough so presumably you want it aligned :-P < 1271016016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, correction: I want it to be not write outside of the array. That would be bad < 1271016023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it needs to be a multiple of a SSE store < 1271016046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it isn't because of alignment. Which is also an issue of course < 1271016059 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :You could always write the remaining bytes without an SSE store < 1271016076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, more complex. Too lazy < 1271016082 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1271016091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for alignment I use an __attribute__ to ensure it is aligned < 1271016103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because SSE store requires it < 1271016103 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :"One and one still is one" < 1271016118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in it will cause an SIGSEGV (or was it SIGBUS) if not < 1271016199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw have you considered lazy funge loading? Like starting program when the top 200 lines or so is loaded, but then continuing load in the background < 1271016204 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I have. < 1271016217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, really? The sync issues seems quite bad tot me < 1271016231 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Doesn't mean I can't consider it. < 1271016252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it would help much in practise < 1271016256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :most files aren't so large < 1271016264 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even fungot is only some 1000+ lines iirc? < 1271016265 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: except maybe when entering stuff into repl. then they're a bit steep. a meg of irc is quite dead. < 1271016290 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmmh, bah, this sucks. Results point to a static area being a good idea even for me. But it's such a hack :-/ < 1271016309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : "One and one still is one" < 1271016313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But it is /also/ one other one. < 1271016349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you mean it was faster using that size I used? < 1271016355 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, or that it wasn't faster? < 1271016380 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean that having the first box be a constant size helps. < 1271016399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah so the bitshift thing didn't affect it much? < 1271016416 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I mean it did. Or I don't know if it's that, but it's probably part of it. < 1271016417 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and yes it helps. But I bet it slows down some stuff in fungicide < 1271016445 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Can I tell cfunge to not use its non-temporal loads and whatnot? < 1271016465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb there is some large moth < 1271016467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just brb < 1271016480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah got it < 1271016492 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a large moth in front of the monitor was somewhat distracting heh < 1271016504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what do you mean? for filling it with spaces? Well let me check < 1271016530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes < 1271016539 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How? < 1271016540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, use ccmake to edit the build settings < 1271016544 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, to to advanced < 1271016551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :edit the cflags to add: -DCFUN_NO_SSE < 1271016560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that will be pure C one < 1271016577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it is meant for some static analysis tools screwing up on the inline asm and such :D < 1271016596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, be aware of that if you type at the start of a field in cmake it will erase that field < 1271016604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so add it in the middle or two the end < 1271016604 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know how ccmake works. < 1271016613 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI 2 uses a CMake build system. < 1271016615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I always found that "feature" annoying btw < 1271016617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah < 1271016635 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Welp, it made just about no difference anyway. < 1271016659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, oh? Well it made here on my slower system. I guess your system is too fast to see it < 1271016668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, basically I was having bad cache trashing without it < 1271016675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to the small cache I guess < 1271016779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I wonder, why do I use intrinsics instead of inline asm for clang. < 1271016788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tests removing that check < 1271016807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah now I know < 1271016815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :error: invalid output constraint '=o' in asm < 1271016819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which gcc is happy with < 1271016929 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so, is ccbi with the static space as fast as cfunge on that test case? ;) < 1271017121 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Nah, it's still around 0.3 seconds slower < 1271017122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I still haven't figured out why you added me to #irp access list. Do tell me please. < 1271017163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you said "anything less than a second doesn't matter" before iirc? :P < 1271017173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because you systematically probe people about their creations, as a program would, so you can figure them out? :) < 1271017181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: ping < 1271017195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, "plausible" reasons why I'm faster at this: I don < 1271017199 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, something like that. I think I was referring to times below a second, but yeah. < 1271017200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't* have code for other AABBs < 1271017202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1271017221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, " Nah, it's still around 0.3 seconds slower" < 1271017221 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I was asked to hand op to someone in there. < 1271017221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271017223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So I did. < 1271017231 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I mean, total running times. < 1271017232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh? by who? < 1271017234 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, WTF does "string mode" do? < 1271017239 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There's no documentation. < 1271017241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, string mode implements string mode < 1271017242 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Don't remember. < 1271017245 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :alise: hello < 1271017246 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: What documentation are you looking at? < 1271017250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, befunge98 documents it < 1271017257 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Wiki, http://catseye.tc/projects/befunge93/doc/befunge93.html. < 1271017260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, basically from " to the next " all are pushed as chars < 1271017273 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: It says it right there in the first par under "The Stack" < 1271017276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, "hello" would push, h, e, l, l, o < 1271017279 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1271017290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that is their ASCII value < 1271017293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: would you be so kind as to take a brief glance at http://pastie.org/914495.txt?key=62xxzeduk3dhulomteqzg to see if I've got the basics of a quad tree right? since you're the only one who's actually implemented them :P < 1271017301 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1271017302 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, note: a zero byte inside a string is *perfectly* valid < 1271017304 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Easy enough. < 1271017326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, of course a zero byte anywhere in the source is perfectly okay. mycology even tests that for befunge-98 < 1271017333 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Not a big deal. :) < 1271017337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it fit into the 93 section < 1271017354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, good. But if you use fgets() to read the file or such you might be in for a nasty surprise, that was my point < 1271017370 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1271017382 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fgets() doesn't stop at 0. < 1271017418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ah yes, it was getline() that had the issue < 1271017427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still you need to think about it when handling the string < 1271017436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because it is no string, it is a binary buffer < 1271017467 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Just don't think of it as a string and it's no problem :-P < 1271017488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh and you should be able to handle any combination of \r \r\n and \n line endings in the program file. Possibly inconsistent in the same file even < 1271017509 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I've not bothered writing file-handling yet. < 1271017521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, just pointing out some annoying pitfalls. That's all < 1271017527 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Mmkay. < 1271017542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I knew I would have liked to know about them in advance myself :P < 1271017555 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271017556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are a lot more of them for 98 than 93 of course < 1271017577 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why you would ever write code that /doesn't/ handle inconsistent all kinds of newlines correctly < 1271017591 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, haha. < 1271017595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can easily tell you < 1271017600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because you used getline() for example < 1271017617 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why you would ever not just use fgetc() ;-P < 1271017624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, iirc you complained about having to handle all the newline types too < 1271017645 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it, I always do that. < 1271017658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it was when cfunge was still very new < 1271017674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, anyway fgetc() is suboptimal! Having to go into bloated glibc code to fetch from it's buffer < 1271017682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was *measurable* with glibc < 1271017698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, doing even fread() or such is much faster < 1271017787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, btw I realised I have not yet seen cat in befunge. Things calling themselves cat sure < 1271017791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not proper cat < 1271017807 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"Proper cat"? < 1271017823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as in takes a number of files on command line, outputs them in the order given < 1271017830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is what cat is actually meant to do < 1271017835 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1271017856 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :proper cat izunt fake cat < 1271017856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cat(1p) is very rare in esolangs < 1271017873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cat "copy input to output" is common yes < 1271017907 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :GNU cat ignores -u, why's that < 1271018004 0 :Asztal!unknown@unknown.invalid PRIVMSG #esoteric :alise: that looks sane to me. < 1271018025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I have no idea < 1271018027 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: good; now I can proceed to break it < 1271018030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but yes I know about that < 1271018034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and bug Deewiant some more about the subdivision algorithm :-) < 1271018051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait I know < 1271018056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and pikhq can explain it < 1271018066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it must be because it loves showing off it's buffer implementation < 1271018188 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Blarg, LLVM stopped inlining an alwaysinline which is now killing performance. < 1271018196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, heh < 1271018208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, alwaysinline = microoptimising to me < 1271018231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but there is help: rewrite it as a macro. Unless it actually "outlines" that < 1271018249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(iirc gcc has an option to try to factor out common code for size optimisation) < 1271018275 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Of course it's micro-optimizing; doesn't mean it doesn't help :-P < 1271018297 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And yes, of course I can force the inlining in other ways but blah. < 1271018474 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Oh hey, I think it's because it's recursive now. < 1271018553 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: When I have a branch with an uninitialised subbranch and I'm trying to put a character, I should initialise the subbranch to a leaf, right? < 1271018571 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271018642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: And the leaf should contain an array centred on the cell I'm setting. < 1271018652 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That's up to you. < 1271018652 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So I need to allocate from point-(32,32) to point+(32,32). < 1271018661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you can't possibly inline a recursive function :P < 1271018673 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Sure you can, just to a limited depth. < 1271018674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Do I need to handle overflow in this code? I doubt it, since ints are... well... so big. < 1271018680 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But maybe you guys run into that. < 1271018681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well okay < 1271018683 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I don't know. < 1271018685 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I know I need to. < 1271018686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but I don't know any compiler doing it < 1271018689 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Not sure with quadtrees. < 1271018700 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Gah < 1271018711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, was any of that directed at me? < 1271018717 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No. < 1271018719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271018737 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, you could manually make it inlineable btw < 1271018756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, as in: foo() and foo_rec < 1271018756 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How do I do an s/// replacement with sed on a line that matches /foo/ but not /bar/? < 1271018767 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, with sed. Hm... No idea < 1271018777 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :With non-sed? < 1271018789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, with pcregrep I know how to match it < 1271018796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but that can't replace < 1271018808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, basically you want negative lookahead/lookbehind < 1271018813 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No I don't < 1271018818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1271018823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it should be possible with sed btw < 1271018823 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I just want if (/foo/) if (not /bar/) s/// < 1271018826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :try reading man page < 1271018830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, okay what about awk then < 1271018836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that should be *trivial* in awk < 1271018842 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heck you almost wrote it in awk already < 1271018852 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :How do I write if (not /bar/) in awk < 1271018867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, like that or very similar. Don't remember of the top of my head < 1271018881 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, try info gawk < 1271018923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.gnu.org/software/gawk/manual/html_node/If-Statement.html#If-Statement should help < 1271018932 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :And then how do I do a s/// in awk < 1271018954 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I don't. < 1271018955 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I could pipe it to sed obviously ;-P < 1271018958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, again see info gawk, I have done this I know. It was quite some time ago < 1271018965 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I don't suppose you feel like having one more bash at explaining the subdivision algorithm to me? ;-) < 1271018981 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm browsing it, just not seeing it which is why I asked. < 1271018990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.gnu.org/software/gawk/manual/html_node/Pattern-Overview.html#Pattern-Overview < 1271018991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.gnu.org/software/gawk/manual/html_node/Action-Overview.html#Action-Overview < 1271018995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :should help somewhat < 1271019006 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I've seen both of those pages, still missing it. < 1271019025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I can't find the script where I did it. But I know I have done it < 1271019029 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Bah, I'll just pipe it to sed. :-P < 1271019044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, how would you then replace it in those files? < 1271019060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :marking the line with a marker at the start or somethiong? < 1271019062 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something* < 1271019075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, http://www.gnu.org/manual/gawk/html_node/String-Functions.html < 1271019083 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, except it loses order. < 1271019101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I think you want the sub() function < 1271019103 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: awk '{print foo | "sed bar"} < 1271019106 0 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1271019119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that isn't complete < 1271019121 0 :adam_d!~Adam@cpc2-acto6-0-0-cust48.brnt.cable.ntl.com JOIN :#esoteric < 1271019123 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the ' is never closed < 1271019126 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, this now runs "Hello, world" correctly. < 1271019129 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ' < 1271019132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1271019133 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, congrats < 1271019147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, syntax error: line 2: AnMaster: Something expected < 1271019148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1271019149 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: You go into the middle of the unallocated area. < 1271019151 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Let's see what instructions are unimplemented. < 1271019155 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That was the closing '. < 1271019160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What is the unallocated area? < 1271019166 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :&!gp < 1271019167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well it read AnMaster: there < 1271019169 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Erm. < 1271019169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :obviously < 1271019171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi alise < 1271019171 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :&~gp < 1271019174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : fun put (Leaf(here, page), there, value) = < 1271019174 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have, in fact, been dabbling a bit with jitfunge lately. It's still too broken to run underload.b98, but it does run hello.b98. :p < 1271019175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if withinArray (there, here) then < 1271019175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : let (x,y) = relativeCoords (there, here) in < 1271019175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Array.update (page, flatCoords (x,y), value) < 1271019175 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : else < 1271019176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (* The current leaf does not contain what we want; we must transform it into a branch *) < 1271019178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And reading stuff in from file. < 1271019179 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Specifically that is the code I am trying to write. < 1271019184 0 :Oranjer!~HP_Admini@adsl-71-8-66.cae.bellsouth.net JOIN :#esoteric < 1271019189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it runs life.bf still? < 1271019210 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, I don't think so. Haven't tried lately, though. < 1271019213 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Hmm, I'm not sure how it should be computed actualy < 1271019215 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :+l < 1271019233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, g and p are easy. & and ~ may not be due to the way their buffers interact < 1271019245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Let's bother Asztal to tell us. < 1271019266 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Basically it's the area covered by that node < 1271019274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, basically you need to read in a line at a time then from that fetch next char/int, Note integer should swallow trailing \n , but getting a char should not < 1271019284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if I remember correctly < 1271019292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: ? No, that branch is for "this 64x64 node does not contain the point we want". < 1271019296 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it used to work < 1271019303 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So we need to create a new branch, which has one of the branches be the 64*64 node. < 1271019313 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes < 1271019325 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes, but I've cleaned things up since then. I think it was the breaking of life.bf that demotivated me a bit with trying to continue with the older code. < 1271019328 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: But I meant the maximum area that branch could cover < 1271019333 0 :alise!unknown@unknown.invalid PART #esoteric :? < 1271019334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah < 1271019335 0 :alise!~alise___@212.183.140.1 JOIN :#esoteric < 1271019339 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So what needs answering is: < 1271019345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What coordinates does the new branch have? < 1271019349 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I.e. if your Leaf is immediately SE from (0,0), it's (0,0) to (2^32-1, 2^32-1) < 1271019355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And we need to add a node in this branch we create < 1271019357 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Er, (1,1) I guess but whatever. < 1271019358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What of its coordinates? < 1271019369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, so any luck with gaining on those 0.3 faster of cfunge? < 1271019371 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But what do you mean by two? < 1271019380 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Two? < 1271019381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All pages are 64x64; all branches merely have one coordinate pair. < 1271019385 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*by "to"? < 1271019393 0 :charlls!unknown@unknown.invalid QUIT :Quit: Saliendo < 1271019397 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: I mean that that's the area covered by that branch < 1271019406 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: The tree root covers the whole space from -2^32 to 2^32-1 < 1271019411 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm pretty sure it won't run life.bf right now, because I haven't cleaned up the old manual x86(-64) codegen; I've insted written a new one that uses LLVM's JIT engine, but it's a bit incomplete right now. < 1271019419 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: And the node SE from that covers 1 to 2^32-1 < 1271019419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But that's the entirety of fungespaec. < 1271019422 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*fungespace < 1271019426 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yes, and that's what your tree can store. < 1271019439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So if SE has half, and another has half, what of the other two? < 1271019446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, cool. How much slower is it using the LLVM framework instead of putting the machine code in the buffer directly? < 1271019448 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: It doesn't have half, it has a quarter. < 1271019461 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: NW has -2^32 to 0, for example. < 1271019469 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: (I'm simplifying and saying only one coordinate.) < 1271019471 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What about NE/SW? < 1271019475 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, is alise having problems understanding a quadtree? :D < 1271019477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I see. < 1271019492 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: considering Deewiant himself just said he wasn't sure what the algorithm was... < 1271019493 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I haven't benchmarked that; as long as it doesn't end up in a worst-case recompile-everything-constantly, the savings by LLVM's optimilizations are hopefully going to be more than the one-time compilation cost. < 1271019494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION implemented quadtrees before. Not too hard. < 1271019518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1271019519 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's still not clever enough to realize how to snip up traces if you have, say, two sections of code that keep constantly "self-modifying" the other one. < 1271019542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, that would require heuristics < 1271019553 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :alise: Well, I understand the concept, but I'm not seeing the algorithm right now. :-P < 1271019568 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: JIT is all about heuristics. < 1271019570 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Need file-reading now. < 1271019584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well yes < 1271019585 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not many programs do that, I think. The older one had some sort of hard "if you p on top of a traced and compiled code, mark the spot so that it won't be traced over later on" rule, but that might not be quite optimal either. < 1271019599 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, simple: mmap() the file, then loop through that < 1271019606 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Meh. < 1271019637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, mmap() because if you use fgets() handling \r\n split between two "chunks" you read in is quite annoying < 1271019651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same for fread() or any other similar call obviously < 1271019659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could use fgetc() but who wants to do that? < 1271019661 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm just going to be going char by char, then. :P < 1271019679 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And "meh"; I just spent over three hours trying to extract several years of accumulated crap from the wheels of this chair -- with scissors, tweezers and different types of pliers -- before finally realizing that the wheels are detachable, and you can just buy new ones for less-than-three euros from the local hardware store-alike. < 1271019682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, you don't aim at beating ccbi and cfunge performance? Huh? < 1271019697 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ... Reading. In. A. File. < 1271019720 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I am *reading in an 80x25 file*. Performance is moot. < 1271019757 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, true. Just make a 25*80+1 buffer for fread < 1271019759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fread() < 1271019762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1271019779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fread() needs 25*80+2*25 to handle \r\n < 1271019782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1271019816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, btw you know you should discard anything wider than 80 columns then? < 1271019826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that is how mycology befunge93 part works < 1271019837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that anything outside it is discarded < 1271020021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : Fix Quantum decompressor < 1271020093 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://en.wikipedia.org/wiki/Quantum_compression < 1271020123 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I guessed it was something like that, but it's still funny < 1271020139 0 :alise!unknown@unknown.invalid QUIT :Ping timeout: 258 seconds < 1271020179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, that's a pretty bizarre technology to be using, but I suppose it makes sense in a virus scanner < 1271020188 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in case someone tries to trick people into decompressing a malicious .CAB file < 1271020243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"Each of these require at least a 386 CPU to run" < 1271020246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehrrm < 1271020253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :riiight < 1271020504 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, if there's more than one, where on earth are you going to find a dual-core 386? < 1271020573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :D < 1271020598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, were there ever SMP 386? < 1271020610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I mean, I know there were SMP Pentium < 1271020615 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(original ones even iirc?) < 1271020620 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know, but it seems unlikely < 1271020634 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The cat program on the esolang wiki... Seems wrong. < 1271020685 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :By "wrong" I of course mean "jumps off into nothingness with glee". < 1271020704 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Wraparound. < 1271020722 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Oh. < 1271020730 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Darnit, gotta futz with step then. < 1271020733 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Befunge doesn't really have nothingness < 1271020755 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :befunge the anti-zen language < 1271020773 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In -98 you can run into infinite loops like that < 1271020790 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well, I guess an empty file in -93 does the job as well :-P < 1271020848 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What value should EOF be? < 1271020853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what? < 1271020856 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In what situation? < 1271020864 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :For ~ < 1271020865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: is an annihilator program possible in -93? < 1271020871 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :~ should reflect < 1271020875 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Annihilator? < 1271020877 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, eh? < 1271020878 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, ais523: NT 3.1 supports multiprocesspr 386 systems, so presumably there were some. No other versions of Windows apparently do, so maybe not that many. < 1271020881 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: one that deletes its entire source code < 1271020885 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :? < 1271020887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what do you mean ~ should reflect on eof? < 1271020892 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I don't think so. < 1271020896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1271020897 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by p'ing a space onto every cell of the playfield < 1271020897 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Shouldn't it? < 1271020898 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on EOF < 1271020900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not EOL < 1271020901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I misread < 1271020902 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: :-P < 1271020906 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: And miswrote? ;-P < 1271020909 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: What does "reflect" mean? < 1271020911 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, correct ~ should reflect on EOF < 1271020917 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Reverse the direction of the instruction pointer < 1271020918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, thinko (like typo) < 1271020919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... you might be able to do it by putting a hilariously large number of coordinates on the stack, then repeatedly running over a column of p's < 1271020920 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: DEFINE REFLECT. < 1271020927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, delta is mirrored < 1271020935 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, so it bounced back from where it came < 1271020944 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Hmm. < 1271020946 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the p's themselves are the last thing to be deleted < 1271020952 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Uh... http://catseye.tc/projects/befunge93/doc/befunge93.html Where is that in here? < 1271020969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, with befunge98 and it's arbitrary delta you basically multiply dx and dy with -1 < 1271020977 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Presumably nowhere. -93 is a bit underspecified. < 1271020980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh, 93, no clue < 1271020993 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: So in 93, knock yourself out with UB or do what everybody else does and reflect. :-) < 1271020993 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Mmkay. < 1271021007 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll go reflect then. < 1271021017 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BOOORING < 1271021048 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, in 93, pushing -1 isn't completely uncommon < 1271021058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what is boring? < 1271021063 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It isn't? Darn. < 1271021079 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I figured reflection was fairly much the norm there too. < 1271021080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well, anagolf's b93 interpreter seems to push -1 < 1271021081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1271021083 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I just want cat to work. :( < 1271021089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, just as an example < 1271021091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: reflecting < 1271021103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, oh you need different cat for push -1 and reflect < 1271021112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh, I've just reverted vandalism by a logged-in user on Esolang < 1271021113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :reflecting one is one char shorter < 1271021124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, logged in spam happens < 1271021125 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: That cat wants a negative one for EOF, it seems. < 1271021131 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :So don't reflect. Meh. < 1271021134 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Mmm. < 1271021135 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it may be a human rather than a spambot, so I've given them a nice warning rather than an instant 24-year block < 1271021139 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, make it an option < 1271021149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, because a lot more code assumes reflection < 1271021152 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Where was the ask-on-/0 thing stated, do you remember? < 1271021155 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :9 out of 10 vampires agree: don't reflect < 1271021159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, in befunge93 < 1271021174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for 98 it is "push zero < 1271021176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" < 1271021177 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: But that means argument handling! < 1271021181 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: In the -98 spec. < 1271021183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yes and? < 1271021187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, getopt() is nice < 1271021196 0 :alise!~alise___@212.183.140.100 JOIN :#esoteric < 1271021201 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also, the cat program I'm using seems to not end on EOF. :P < 1271021211 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just output... EOF... < 1271021221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1271021223 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure... Why. < 1271021226 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably a bug. < 1271021228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, link to it? < 1271021234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can tell you if it should do that < 1271021244 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :~:1+!#@_, < 1271021244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or if it is an interpreter bug < 1271021247 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271021249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets see < 1271021254 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: But it's mentioned there as a fact, as though it's common knowledge; I just didn't see it in the 93 spec. < 1271021255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1+!? < 1271021274 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It wants negative one for EOF. < 1271021289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, yes but add 1 logical not won't do that will it? < 1271021292 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Well yes, I don't know about that. < 1271021305 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It will make the _ go left if it was EOF, thus hitting the @. < 1271021305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait it will < 1271021308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1271021320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so indeed it shouldn't output EOF < 1271021335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :doing that indicates your _ is flawed. Or your # is *very* flawed < 1271021346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(or your @ is extremely flawed) < 1271021356 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If you cat an empty file it will output EOF. < 1271021365 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Or no, it won't. < 1271021367 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Never mind. < 1271021394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, will you do befunge98 or will you stay at 93? < 1271021433 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :http://github.com/serprex/Befunge/blob/master/marsh.c is the fast -93 one I was thinking of. < 1271021454 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 93 ATM. < 1271021460 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://sprunge.us/JRWd < 1271021464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, so no plans to do 98 later? < 1271021482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, "#ifdef FUNGE" seems quite hilarious < 1271021488 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. Maybe not. < 1271021496 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I and mooz have both written reasonably fast 93 interps too, though I doubt either of them are online anywhere so that doesn't much help. < 1271021510 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No, it doesn't. :-P < 1271021530 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anything *obviously* wrong in there? < 1271021561 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :['+'] = &&add <-- is that C? < 1271021567 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271021575 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :GNU C, but yes. < 1271021576 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Popping an empty stack doesn't seem worky? < 1271021577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, the [] around an index like that? < 1271021585 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Ah. < 1271021586 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes. < 1271021592 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's a C99 thing. < 1271021602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm only used the .foo C99 thing < 1271021607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :never the array index thingy < 1271021610 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: The labels as values aren't, though. < 1271021610 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It has both. < 1271021624 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Right, that's just a GNUism. < 1271021642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Anything *obviously* wrong in there? <-- no. But then nothing is obviously right either < 1271021646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is too confusing for it < 1271021671 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Also your ? ;-P < 1271021678 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271021681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, you won't pass mycorand < 1271021694 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Couldn't be assed to do use rand yet. :P < 1271021698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it runs until it gets two different random numbers iirc < 1271021711 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It runs until ? has gone in every direction. < 1271021728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah that even < 1271021733 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Why does oprofile point me to wrong symbols :-/ < 1271021738 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: What's confusing about it, though? < 1271021753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, cfunge or ccbi? < 1271021757 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :CCBI < 1271021758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it never happened to me < 1271021764 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :My ff ("fast funge") used the gcc computed goto too, but in addition I had (macro-expanded) four copies of the instruction set, for each possible direction, so that there was a single jump per instruction. That deewiant-link seems to incur a call-through-pointer for movement every op. < 1271021766 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I guess some D weirdness < 1271021773 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :callgrind works fine. < 1271021777 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The only logic at all is in step. < 1271021780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but remember it is low overhead in kernel based < 1271021790 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Doesn't help me if it gives me wrong results. < 1271021803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, while callgrind basically emulates it in a virtual machine of it's own iirc < 1271021807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like all of valgrind does < 1271021821 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes; and one reports things right, the other wrong. < 1271021836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, one is based on reality and both reported correctly for me < 1271021850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, but like your memory graph it might miss some tiny bit < 1271021861 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's not reality when it's telling me about functions that are never called in the whole execution. < 1271021872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that should not happen < 1271021875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and never happened to me < 1271021885 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :No kidding it probably "should not" happen, but it does. :-P < 1271021900 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, what could happen is that it misses a tiny bit due to it being between sampling interval iirc < 1271021906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it uses performance counters of the CPU < 1271021919 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, that's not very important. < 1271021936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well I can't help you since I have never seen it < 1271021956 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could try debugging oprofile but I expect that to be a nightmare < 1271021972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, maybe two functions share a common tail? Does LLVM do that kind of size optimisation? < 1271021993 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :It might. < 1271022014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, that could screw up something that isn't observing the calls, but looks at the program counter value and such < 1271022169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, does that program pass mycology's b93 section? < 1271022203 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Bah, I'd got used to the speed of oprofile. :-P < 1271022222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, well yes callgrind is much slower and may not reflect a real computer < 1271022234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example modern computers have better hardware prefetch than it < 1271022235 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1271022253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, like it either doesn't emulate hw prefetch or it emulates a perfect one < 1271022258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oprofile shows the reality < 1271022266 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well except for your symbol name issue < 1271022274 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, so it actually doesn't show the reality. :-P < 1271022281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it does for me though < 1271022291 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Well good for you. < 1271022297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, I blame your system/D + LLVM/other < 1271022300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pick the one your prefer < 1271022308 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I don't need a scapegoat. < 1271022331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :meh should have told me before I went to all that trouble writing them down :P < 1271022354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, and yes what you really need is an escapegoat. < 1271022421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Lemme check. < 1271022428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, do you handle wrapping around to the minus side correctly? < 1271022436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I don't think so < 1271022441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, as in going < over the edge < 1271022443 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Aw, that marsh.c doesn't even check for stack underflow and return 0; it just crashes in that case. < 1271022450 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: That's a cheaty way to be fast. :p < 1271022452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, your code seems to only work for going > over the edge < 1271022468 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: There's a marshsafe.c, maybe that one does? < 1271022476 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That sounds likely. < 1271022498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, the put code in the safe one seems longer < 1271022506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think it checks p is within bounds < 1271022546 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it also does check for /0 < 1271022583 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm iirc ppc's integer division gives you zero on division by zero < 1271022611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : FILE*rand=fopen("/dev/urandom","r"); <- heh < 1271022667 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: I'm having difficulties measuring the speed of marshsafe.c either, because it fails to run life.bf, sort.bf or serp.bf on my system. Curious. < 1271022683 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it's just broken. :-P < 1271022691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, segfault? < 1271022776 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: serp.bf prints out a few (399?) dots, then seems to be stuck; sort.bf accepts an input line and then seems to be stuck; life.bf outputs "DFHJLþN" and "68:<>" and " @" repeatedly. < 1271022794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh at that last one < 1271022805 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I don't have serp or sort here < 1271022806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :links? < 1271022818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also sort in befunge93 would be very limited < 1271022855 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It sorts the letters of one word. < 1271022861 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At http://quadium.net/funge/downloads/bef93src/ < 1271022862 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how long? < 1271022902 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. Probably not very. < 1271022976 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I appear to be having issues with reflection. < 1271022996 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A real befunge would translate the whole program to an array of pointers to code. < 1271022997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ip.dx *= -1; ip.dy *= -1; < 1271022999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that should work < 1271023005 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(with specialised jumps for each direction) < 1271023008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :adapt it for you variable names < 1271023026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungespace_vector_x *= -1; < 1271023028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungespace_vector_y *= -1; < 1271023029 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seem < 1271023031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seems* < 1271023038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, you reflect on unknown right? < 1271023049 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Trying to now. < 1271023056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I want a Nexus One now. < 1271023060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Badly. < 1271023061 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Minor issue -- this... Doesn't seem to be doing that right. < 1271023071 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :This is admittedly a very non-scientific benchmark, but: http://pastebin.com/nfmUUEwq < 1271023085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ff? < 1271023096 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: The thing I mentioned a moment ago. < 1271023097 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fast funge, says fizzie. < 1271023102 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait you can't hear >:) < 1271023103 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : My ff ("fast funge") used the gcc computed goto too, but in addition I had (macro-expanded) four copies of the instruction set, for each possible direction, so that there was a single jump per instruction. That deewiant-link seems to incur a call-through-pointer for movement every op. < 1271023105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and what's marshsafe? < 1271023105 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That one. < 1271023109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271023111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: deewiant's github link < 1271023115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1271023117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, several screens ago < 1271023130 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, you're being so noisy. < 1271023131 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :That github link is on the esolangs.org Befunge page. < 1271023147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I usually talk a lot < 1271023161 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: That was the plural, whole-channel "you", though. < 1271023167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ah < 1271023181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, could have been made clearer with "you all" or such < 1271023221 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly ff's a bit non-compliant in the sense that the playfield is 256x256 bytes; I do wrapping by unsigned-char overflow. < 1271023228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1271023241 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, did you see what I said about going over the < edge? < 1271023248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that it seemed broken in your program < 1271023250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: in befunge-93, without writing outside the playfield (which is IIRC undefined), is there any way to tell? < 1271023267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, also wth: < 1271023270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :306 fungespace_x += fungespace_vector_x; < 1271023271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :307 fungespace_x %= 25; < 1271023271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :308 fungespace_y += fungespace_vector_y; < 1271023271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :309 fungespace_y %= 80; < 1271023277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I think you need to swap those < 1271023281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :80 and 25 < 1271023288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :your program is the wrong way around < 1271023291 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :depends on the definitions of x and y, surely? < 1271023297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well true < 1271023306 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Mhm, maybe not. Though I don't ignore lines longer than 80 chars in the source file; I think that was specified there. < 1271023321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, and yes it does the wrong thing when you hit -1 < 1271023362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fizzie: in befunge-93, without writing outside the playfield (which is IIRC undefined), is there any way to tell? <-- is it explicitly undefined or just undefined? < 1271023366 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: If it's not undefined, there is a way to tell. < 1271023387 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yeah, that's the issue. < 1271023390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, no there isn't < 1271023407 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes there is; put an @ at 255,0 and wrap around. < 1271023411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: well, depends on what it's defined /to/ < 1271023415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not if it is implementation defined < 1271023417 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes. < 1271023419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is a third option < 1271023448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, some interpreted could implement that as 255%80,0%25 < 1271023455 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :interpreter* < 1271023479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, idea: befunge-98 self interpreter < 1271023483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it has been done < 1271023490 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :slowdown.b98. < 1271023497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, not a true self interpreter < 1271023501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it uses the host < 1271023517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, it's like calling eval() < 1271023521 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I seem to recall mooz's interp was around the same speed with a proper 80x25 playfield. IIRC, he used a 82x27-sized physical playfield, and put custom "jump the proper amount left/right/up/down" instructions on the borders. (The instructions of course checked the IP position and acted as nops when "executed" on the playfield.) < 1271023524 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders if Silverlight works on Nexus One's browser < 1271023552 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I wonder how underload.b98 manages to slow down when I preallocate an appropriately-sized box for the stack. < 1271023564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, he could use 4 custom ones so it didn't need to check that < 1271023575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: no. < 1271023582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, hah < 1271023584 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1271023584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: flash will, though, when the new version is out; but why would you want to? < 1271023585 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: He did use 4 customs ones, but you do need to check that, because someone could put the instruction in the middle of the program. < 1271023592 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, Robozzle < 1271023593 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :laggy, shitty, battery-draining < 1271023594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, no one uses that anyway? < 1271023600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, there is a js version iirc < 1271023601 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: bug him to make a paid android app < 1271023619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh true < 1271023630 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, he could use out of band data < 1271023642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, like a 34 bit word < 1271023650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course that is best left to VHDL people < 1271023665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or other which can do non-standard word width < 1271023672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :s/which/who/ < 1271023792 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :My dad's asking me to think hard about this < 1271023795 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :The Befunge-93 docs don't seem to specify the space cell size, so you could store it as 32-bit, I suppose. < 1271023815 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :He suggested thinking about a no-contract iPhone, due to the number of apps. He also suggested getting a small laptop < 1271023826 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Since I can't get both a better computer and a smartphone < 1271023936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, you can use control-return to open links in a new tab using the keyboard in Firefox < 1271023963 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's nice when you guess a keyboard shortcut and it works < 1271023967 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to start the Android emulator < 1271024030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, or 16-bit < 1271024046 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :On modern machines, 16-bit tends to be a bad idea. < 1271024077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doesn't 16-bit get emulated in microcode? < 1271024085 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hrm. I seem to get no output from mycology. < 1271024187 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. It's an issue in the file loading. < 1271024244 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Whoo, I now segfault. < 1271024305 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :0x00007ffff7ad99b5 in getc () from /lib/libc.so.6 < 1271024312 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How the hell am I segfaulting there? < 1271024319 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Buffer overrun. < 1271024321 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :passing it a NULL file pointer < 1271024338 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :getc's a macro, it probably doesn't sanity-check its input < 1271024348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I didn't call getc. < 1271024350 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :If it's a macro it can't be in the stack trace. < 1271024355 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, good point < 1271024359 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :112 int c = fgetc(f); < 1271024363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is even more bizarre given that the function version's called fgetc < 1271024365 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's the line it's called from. < 1271024368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, ok < 1271024385 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the function fgetc shows as getc in stack traces? < 1271024390 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271024392 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: why use fgetc ever, except to take its address? < 1271024409 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Probably no good reason. < 1271024444 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Okay, that still confuses me. < 1271024459 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, I wonder if fgetc has sanity checks? < 1271024469 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :"f" is still a perfectly valid FILE*. < 1271024484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err, it's pointing to a char, not to a file < 1271024489 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :how come fax isn't here? < 1271024492 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: At least my /lib/libc.so.6 has the symbols getc and fgetc with the identical address. < 1271024502 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: In this sort of situation gdb would probably just pick the first one. < 1271024506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1271024516 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to access the bus scheduling stuff via the emulator < 1271024527 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I see schedules for the train, but no bus stuff GRRR < 1271024530 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: getc takes a file? < 1271024536 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :F U Usablenet Mobile < 1271024540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, because he is not currently in this channel < 1271024542 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yep < 1271024542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is why < 1271024543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1271024544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's getchar that doesn't < 1271024550 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yuh. < 1271024558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or getch doesn't either, but it's curses/DOS < 1271024562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than standard C < 1271024569 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, yeah. I have no clue how this is segfaulting. < 1271024587 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Step up in gdb, print out "f" just in case? < 1271024597 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what fizzie said and also link to the file < 1271024599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :did you ever call setvbuf or an abbreviation for it on f? < 1271024602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, also try valgrind < 1271024604 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'm examining f's buffer right now. < 1271024604 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it could be that something's happened to the buffer < 1271024616 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :The Android browser does NOT seem to support PDF < 1271024627 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pokes alise. You said that iPhone supports PDFs? < 1271024629 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: No. < 1271024641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, get a computer if you want one. Get a phone if you want a phone < 1271024645 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm actually very, very curious why I'm not getting anything *else* from gdb. < 1271024646 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: it's not normally web browsers that support PDFs, but plugins < 1271024657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, also surely you can install a pdf reader in it? < 1271024657 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I *have* full debugging info and source code for my libc. < 1271024665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, exception: konqueror ? < 1271024666 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, I'm looking into that < 1271024666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or separate programs < 1271024668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or wait < 1271024674 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: arguably konqueror isn't a web browser < 1271024675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it does it as kpdf_kpart or such < 1271024681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1271024681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a superset of a web browser < 1271024686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1271024688 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: I really don't know *anything* about the iDevices, but an iPod Touchy friend did have a PDF reader on his thing. < 1271024695 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I *should* be able to actually debug libc. < 1271024696 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1271024714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: just because you have debugging libc doesn't mean the program's linked against it < 1271024716 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Anyway, doesn't the saying go "there's an app for that". < 1271024720 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I don't really need the maps though. I need the schedule. And the MTA's mobile site doesn't have a link to the bus schedule < 1271024725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you might need to set an env variable to tell it to link that version of libc < 1271024737 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Every single binary on my system is splitdebug. < 1271024749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: yes iphone can read pdfs < 1271024753 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't *have* non-debugging versions. < 1271024782 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :At least, I shouldn't. And yet, here's libc. Without debugging info. < 1271024785 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: surely, just the executable binaries? < 1271024797 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or are you saying that, say, your compressed tarballs are debugging versions too? < 1271024798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://andpdf.sourceforge.net/ gross but < 1271024799 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :That.. may push my hand to an iPhone < 1271024808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: No. < 1271024816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am the biggest iPhone evangelist on the planet, I love the things, but no. < 1271024820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's a really bad reason to get an iPhone < 1271024824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Apple have finally stepped too far: buying one is simply immoral now. < 1271024829 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes, the executable ones. < 1271024830 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1271024833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: it seems unlikely that you're the biggest iPhone evangelist on the planet < 1271024834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : pikhq: just because you have debugging libc doesn't mean the program's linked against it <-- split debug info? < 1271024840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(in case ais523 doesn't know: apple have amended the ToS; all applications have to be ORIGINALLY written in objective-c now) < 1271024842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(or c/c++) < 1271024842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :have you /seen/ some of the Apple evangelists on the Internet < 1271024846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(no third-party languages or runtime) < 1271024852 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: hmm, interesting < 1271024854 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, will Android 1.5 programs work on 2.1? < 1271024858 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Interesting and evil. < 1271024859 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they've banned interpreted languages forever < 1271024864 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Probably, but look at that screenshot; it's hideous. < 1271024867 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What the hell? < 1271024877 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably, this is to get rid of the actionscript -> obj-c compiler someone wrote < 1271024877 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://androidforums.com/support/1198-pdf-android-work-around.html lol export to jpeg < 1271024880 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've got a .debug file for everything *but* libc. < 1271024883 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Android Portal » MultiReader: Free Word viewer / PDF reader for T ... < 1271024889 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The N900 built-in PDF reader isn't quite that horrible-looking, but it's not very pretty either. I think there's some evince ports or whatever in the repositories, though. < 1271024896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: http://bsegonnes.free.fr/multireader/en_multireader.html < 1271024909 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :doesn't seem to do "rich" pdf stuff but... < 1271024914 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yay evince < 1271024918 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: you probably don't want to < 1271024927 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll avoid telling my dad that iPhone has PDF capabilities < 1271024931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ? < 1271024936 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this reminds me of the exploit in the PDF spec people found recently < 1271024937 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :He's currently under the impression that it simply can't be done < 1271024938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I mean even basic formatting, maybe I'm wrong though < 1271024942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271024949 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: heh < 1271024956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :still, it's kind of silly that a program has to be vulnerable in order to comply with the letter of the sepc < 1271024959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*spec < 1271024962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: I take it your dad has no actual reason to believe himself to be competent in tech matters? < 1271024975 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: My favourite seen-in-the-maemo.org-repository so far: someone's put the whole texlive TeX distribution in there. When you desperately have to compile some LaTeX text and all you have is your phone! < 1271024986 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :He's.. somewhat competent. Competent enough to, say, know how to set a password in BIOS < 1271024993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's barely competent :P < 1271024993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it turned out that there'd been a raging flamewar on KDE internal dev lists about it, people wanting to implement the feature vs. people saying it was a security bug < 1271025009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: it could be useful for academics, if someone sends you a .tex (say by email), nad you want to read it < 1271025010 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*and < 1271025011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Oh yeah, what fizzie said, look at the N900 < 1271025013 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not a very good touchscreen < 1271025018 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's actually /happened/ to me, although I wasn't on a phone at the time < 1271025019 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it almost certainly does pdf :P < 1271025029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the source is decent for editing, but bad for reading < 1271025038 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :How many apps are available for the N900? < 1271025044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: less than android < 1271025061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: why do you need pdf? < 1271025063 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Academic papers? < 1271025066 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, bus schedules < 1271025069 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :alise: Well, there's as many apps as there are in Debian, if you want to be technical about it... < 1271025084 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Presumably they don't change so often? < 1271025092 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, correc < 1271025092 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Since there's a "install a Debian in a ext2 filesystem image" app in the official repository.) < 1271025097 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :t < 1271025105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, fizzie is right Sgeo_; technically maemo can run most Gtk applications. < 1271025107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Really badly, though. < 1271025113 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :They do change every few months, actually. Rarely the ones I use < 1271025115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: then just export them to pngs on your computer and put them on your android < 1271025129 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyhow, I'm a bit reluctant to recommend N900; I personally like it a lot, but my likes and dislikes are probably a bit idiosyncratic. < 1271025153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"I like this, therefore most people probably dislike it"? < 1271025173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think, therefore statistically I'm more likely to be than if I did think. < 1271025173 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, hasn't maemo merged with moblin nowadays? < 1271025177 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Perhaps more like "I like this, but it probably has not much correlation with whether other people like it or not". < 1271025182 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably nowadays you need to look at the capabilities of meego < 1271025182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Evidence: there are more existing things that don't think than things that think. < 1271025205 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Brandwise, perhaps, in the sense that Nokia's going that way; I am a bit unsure that the maemo community as a whole (such as it is) will swing that way. < 1271025208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cognition is actually evidence /against/ you existing :-) < 1271025210 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : this reminds me of the exploit in the PDF spec people found recently <-- ? < 1271025221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523: My favourite seen-in-the-maemo.org-repository so far: someone's put the whole texlive TeX distribution in there. When you desperately have to compile some LaTeX text and all you have is your phone! <-- :DDD < 1271025225 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: basically, you can specify attachments and executables that should open them < 1271025225 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: And anyway the current MeeGo release on the N900 doesn't support such things like the GUI. (You get a terminal and that's it.) < 1271025245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you can make the PDF file a polyglot PDF/executable for target platform, and open it with itself < 1271025249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oops < 1271025259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it would be an exploit even without that, just a harder one to exploit < 1271025265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, should definitely not be implemented < 1271025271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1271025307 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, what happens when I need a schedule for a bus I didn't plan on taking? < 1271025311 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :It has happened < 1271025338 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION installed an alternative .. market app? app app? on the emulator < 1271025339 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Bother your transportation company to put their schedules in the web in a sensible format? It's 2010, for foo's sake! < 1271025401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : alise, what happens when I need a schedule for a bus I didn't plan on taking? <-- happens to me too < 1271025403 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Alternatively, you could put a pdf-to-png cgi script on some web-host and use that to open PDFs. < 1271025411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I go to their website and read the html page < 1271025421 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well you search first < 1271025424 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: where's the download link for the emulator? < 1271025426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't do it from the phone < 1271025431 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to opera mini being what it is < 1271025436 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, somewhere on http://developer.android.com/ < 1271025437 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Can you use google's PDF "preview" thing with arbitrary PDF urls?-) < 1271025450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, no idea. Try it? < 1271025453 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://developer.android.com/sdk/index.html < 1271025460 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Requires a bit of fiddling < 1271025537 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sees something about a standalone emulator, but that's 1.5 < 1271025539 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: If you don't mind using your Google account, presumably you can use http://docs.google.com/viewer with any suitably web-browsing-enabled device to open arbitrary PDF URLs. < 1271025563 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, < 1271025564 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1271025595 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries MultiReader < 1271025637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What fizzie said is probably the best idea. < 1271025644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Google will almost certainly optimise for Google shit working perfectly. < 1271025649 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Powerpoint viewer seems like it would be useful too. In one of my classes, the professor lets students use their laptops to look at the slides < 1271025663 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, the google-docs viewer does Powerpoint too. < 1271025688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: well, buy a laptop :P < 1271025690 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :WHY does MutiReader want access to my owner data and phone data < 1271025734 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION rebuilds glibc with USE=debug, hopes that beats it into submission < 1271025739 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SEXY PURPOSES < 1271025753 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Since you've sort-of been following The Competition; turns out I had somehow managed to not update tournament.jar (the version of the framework used by the tournament scripts) with the newest version, so there was one fixed bug (Move.getPlayer() returned null instead of Side.RED or Side.BLUE for "pass" moves) still there; one of the participating bots crashed every match it participated in on its first turn because of that. < 1271025783 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: do you really need eclipse to install android emulator? < 1271025795 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, no < 1271025802 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I demand to see another .debug file in /usr/lib/debug/lib64/, and a bunch of source in /usr/src/debug/sys-libs/glibc. < 1271025807 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :alise: It's better than the Windows you need to install a Symbian emulator. :p < 1271025810 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Nor do you need to do command-line stuff < 1271025812 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: how did you download it then? < 1271025829 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :In the .zip, there's a utility called SDK Setup < 1271025839 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :[erm, on Windows, not sure about other OSes] < 1271025867 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I did need to download some packages using that utility, I probably installed stuff that wasn't needed < 1271025872 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Which zip? :P < 1271025876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm having trouble finding the download < 1271025890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you will have to rerun those affected by it then < 1271025901 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://developer.android.com/sdk/index.html < 1271025905 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :"Download the Android SDK" < 1271025934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, that would work. :P < 1271025995 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yeah. According to bit of bash-oneliners invoking "javap", ten (out of 45) bots referred the Move.getPlayer method. I'm currently rerunning the (~700 out of 1980) matches where either the blue or red player was one of those ten. < 1271026023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1271026035 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Even those that didn't crash, because possibly some of them didn't try to "dereference" the returned Side, just compared it to something.) < 1271026071 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :It feels awkward that alise needs my help, rather than the other way around < 1271026258 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Need to get 267MB of archives. < 1271026261 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Forget Eclipse, then. < 1271026290 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, Eclipse has nothing to do with anything < 1271026297 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Unless you're trying to practise developing < 1271026376 0 :oerjan!unknown@unknown.invalid QUIT :Quit: Good night < 1271026383 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Right. < 1271026400 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I can live with the viewer thing < 1271026403 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Do I need the jdk? < 1271026408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess not, but I bet I need the JRE. < 1271026413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Maybe not, though. < 1271026418 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I find the JDK is nice to have < 1271026420 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :You just need what's in the .. yeah, you do kind of need Java stuff < 1271026424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although, maybe more so if you teach Java for a living < 1271026545 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Just seems inconvenient to go to the viewer from links on the full version of the MTA's site < 1271026551 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The JDK is sometimes nice to have even if you don't write Java; at least on the Ubuntu, openjdk-6-jre only has a plugin-appletviewer, the standalone "appletviewer" command is only in openjdk-6-jdk. < 1271026563 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And the same for the "jar" command-line tool for peeking inside .jar files. < 1271026587 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Aren't .jar files just .zip files or something, or am I misremembering, or is that old information < 1271026596 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :They are, so that's a minor thing. < 1271026598 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :They are. < 1271026600 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Stuff keeps freezing in the emulator :/ < 1271026615 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I still write "jar xvf file.jar" when trying to extract one, by force of habit. < 1271026628 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :The real phone better not be as badly behaved as this < 1271026634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : It feels awkward that alise needs my help, rather than the other way around <-- relish the feeling while it lasts < 1271026642 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're zipfiles with a few special files in at known locations < 1271026661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, jar xvf? < 1271026679 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Yes? < 1271026690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, does that work? < 1271026695 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's the syntax. < 1271026699 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : Extract jar file < 1271026699 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : jar x[vf] [jarfile] [inputfiles] [-Joption] < 1271026703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, can you use it for normal zip? < 1271026725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I always need to check docs of zip when I want to unpack a zip < 1271026732 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Apparently you can. < 1271026744 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least "jar tf bleh.zip" for a completely ordinary .zip seems to list files. < 1271026749 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Didn't try extracting anything. < 1271026770 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :"unzip foo.zip" < 1271026782 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Admittedly it's not a very complicated syntax. :p < 1271026799 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Though "unzip -l foo.zip" -- if you want to see the contents first -- is not *so* simple to remember. < 1271026802 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: BSD? < 1271026811 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Oh fleh < 1271026812 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: unzip -t works as well, no? < 1271026813 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Cancel that. < 1271026815 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Misread. < 1271026827 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: It might; -l is the only thing I remember. :p < 1271026837 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: There's still the "-" there. < 1271026851 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, the "-" is such a rare thing that you might forget about it. < 1271026864 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Why does THIS document viewer also feel a need to read my "phone state and identity"? < 1271026869 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: Apparently -t also calculates the CRC, which might be not what you want. < 1271026898 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is short for "test" after all. < 1271026901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, who knows < 1271026905 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Also, it's asking for Internet access. I swear, if this thing decides it can only read local files, after I gave it Internet access, I'll scream < 1271026910 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Then agian, it is a Trial < 1271026986 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it's storing stuff to ensure against trying to keep it in the phone area < 1271026987 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4% [3 sun-java6-jre 2153087/6,421kB 33%] < 1271026989 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :keeps freezing on this < 1271026992 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :are you suuuure i need java < 1271027003 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, you can try without and see what happens < 1271027009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah it wants java < 1271027010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ffs < 1271027013 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why won't it just download < 1271027015 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :It does keep popping up console windows .. oh < 1271027024 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :.jar files are just .zip files with few special files; .war files are just .jar files with a few more extra files; unfortunately, .ear files are just .jar files with different magic files, not an add-on to .war files. I was hoping for a longer chain. < 1271027032 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :4% [4 sun-java6-jre 2324862/6,421kB 36%] 912B/s 15h 24min 21s < 1271027036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh it improved now < 1271027039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now only 20 minutes to go < 1271027041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now 9 < 1271027050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: MAH EAR FILE < 1271027054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for filing my ears < 1271027061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so is the next .nail < 1271027111 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :alise: fileext says for .nail: "Primary association: Unknown Apple II File". That's probably no longer related. < 1271027217 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Oh look, it wants to open something ON THE PHONE! AND I GAVE YOU INTERNET ACCESS, YOU PIECE OF SHIST < 1271027263 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Shist. < 1271027321 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"Shist" is this enemy type in Chrono Trigger. < 1271027327 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1271027364 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist. < 1271027367 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Now you know! < 1271027421 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(It might be a Rubble too... the difference's just in the palette.) < 1271027642 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hee, there's now chromium (v. 5.0.369.2-maemo1) in the extras-devel maemo repo. I wonder if it's any good at all; probably not. < 1271027666 0 :adam_d!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1271027796 0 :Oranjer1!~HP_Admini@adsl-71-0-216.cae.bellsouth.net JOIN :#esoteric < 1271027889 0 :Oranjer!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1271027998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://www.spriters-resource.com/snes/chronotrigger/rubble_icon.PNG -- there, that's a Shist. <-- aargh < 1271028009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they had massive HP didn't they? < 1271028016 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No, just massive evasion. < 1271028030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, maybe there were different coloured ones? < 1271028032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well < 1271028033 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: And the "lock all" ability, which meant you could only use phyiscal attacks. < 1271028049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, Rubble's the grey one. I guess Shists had more HP than Rubbles, yes. < 1271028056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271028077 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Ok, OfficeSuite's taking forever < 1271028094 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Also you got a lot of those... uh, what were they? APs? The things that you need to collect to enable different techs; if you managed to beat one. It's just that they ran away after a while, and with the maximum evasion, you usually just missed. < 1271028124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, true but weren't APs caped? < 1271028128 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: And (despite a single exception) they didn't reappear. Though you could use that single exception to get access to pretty much all the techs. < 1271028130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :capped* < 1271028167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I remember I stopped getting tech points at some point < 1271028173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before I had the majority of techs < 1271028173 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I mentioned the iPhone PDF thing to my dad. He said that he knew it could do it, but it looks like crap < 1271028184 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: tell him he's wrong < 1271028185 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Not as bad as this, though < 1271028188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I read PDFs on my iphone regularly < 1271028193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's beautifully antialiased and rendered perfectly < 1271028198 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :exactly the same as on os x < 1271028199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, so that is going to decide it? < 1271028200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :exact same engine < 1271028208 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, not if I have any say < 1271028216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, can't you search for time tables without pdf < 1271028234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"looks like crap" may just mean "screen too small" < 1271028243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with nontechnical people, it's hard to know < 1271028288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: just get a nexus one < 1271028295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as someone who's used an iphone extensively, the nexus one looks awesome < 1271028297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1271028300 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I don't think there's a cap, no. As long as you can still learn new techs, you should be getting APs. But you can have unlearned dual or triple techs and not get APs towards those unless you have all participants in the party, perhaps. < 1271028318 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: At least I distinctly remember learning Luminaire on the single reappearing Rubble, after a long and boring while. < 1271028347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1271028387 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://i.imgur.com/S6pDQ.png < 1271028390 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: (The one that does reappear is on Mt. Woe, and there's a boring battle or two on the way to the rubble from the nearest region-border you need to walk to-and-back to make it reappear.) < 1271028440 0 :Oranjer1!unknown@unknown.invalid NICK :Oranjer < 1271028464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm < 1271028512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: linus torvalds likes the nexus one < 1271028516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://torvalds-family.blogspot.com/2010/02/happy-camper.html < 1271028528 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :Isn't he also a KDE fan? < 1271028548 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :[Well, I shouldn't dis KDE. It's just Kubuntu I've had troubles with, really] < 1271028636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No, actually. < 1271028644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He's decided that KDE 4 sucks so much that GNOME is better. < 1271028647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1271028659 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: don't worry, it's fair to hate Kubuntu's packaging of KDE < 1271028664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which IIRC, and IME, is really bad < 1271028688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Besides, dammit, the Nexus One has a 1 gigahertz processor. < 1271028697 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I don't know if it's the packaging, but it was always crashy for me < 1271028697 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523 barely even has a gigahertz processor on his laptop XD < 1271028731 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :All Nexus One devices have an unlockable bootloader (% fastboot oem unlock), which, once unlocked will allow you to reflash the boot partition (kernel + ramdisk), system partition, etc. < 1271028738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :everything i've read confirms that getting root is "official" < 1271028758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: yep, you just install a package that lets you become root < 1271028762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no < 1271028770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you just hold down the trackball at boot < 1271028772 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, am I thinking of a different platform? < 1271028773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1271028774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :type in fastboot oem unlock < 1271028780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can just shazam, become root < 1271028795 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, would that allow bypassing pattern lock? < 1271028796 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1271028819 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the linuxy mobiles, you install a package that lets you become root, it doesn't have sudo/su by default < 1271028836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Who would know how to? < 1271028847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: Dude, if your phone is stolen, and the person who stole it is an expert, < 1271028848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you are fucked. < 1271028851 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But no experts steal phones. < 1271028875 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://androidandme.com/2010/01/hacks/video-how-to-unlock-and-root-a-nexus-one/ ;; admittedly you have to do some rom stuff to get root < 1271028931 0 :gm|lap!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1271028988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh < 1271028997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how does the package manager work then? < 1271029006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: probably suid < 1271029017 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or something equivalent < 1271029044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shudder* < 1271029073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :worrying over total linux security correctness in a phone produces openmoko < 1271029087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and if you know anything about openmoko you'll know that's an insult < 1271029087 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the Linux systems at university run updates as root during the boot process < 1271029095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1271029099 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, what's OpenMoko? < 1271029107 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :So, apparently glibc has a misfeature in its buildsystem. < 1271029107 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: a defunct company < 1271029109 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :--omitfp < 1271029115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: they used to make really shitty linux phones that barely worked < 1271029115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, ouch < 1271029119 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now they don't make mobiles any more < 1271029122 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :This causes it to build with -fomitfp -O99 -g0 < 1271029127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-O99? < 1271029132 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1271029137 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-O100 ;; one faster < 1271029139 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And no, that does not do anything. < 1271029140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.................. < 1271029153 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :-g0 disables debugging. < 1271029165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know what -g0 does < 1271029169 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :-fomitfp breaks debugging *only on x86*. < 1271029173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it OMITS FRAME POINTERS FUCK YEAH < 1271029177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, x86_64 too < 1271029178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought -O only went to 7 < 1271029178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it omits floating point operations < 1271029181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and a few other platforms < 1271029181 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: No. < 1271029183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, to 3 < 1271029193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think it depends on details < 1271029195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, sure? I'm almost completely sure about this < 1271029196 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On x86_64, all optimisation levels omit the frame pointer. < 1271029199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :3 is the highest normal useful value < 1271029207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, yes okay so it always break debugging then? < 1271029215 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think values higher than that have a special meaning on some platforms < 1271029217 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, it doesn't. < 1271029220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1271029232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, huh < 1271029235 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Only a small handful of architectures. < 1271029240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which ones? < 1271029270 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :can't remember offhand, but I'm pretty sure I've seen -O7 before < 1271029280 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lemme check. < 1271029281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: seriously i'm a huge iphone fan and looking up stuff about it makes me really really want a nexus one < 1271029325 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I mentioned the GPS Navigation to my dad. That was a bad thing, apparently. He's afraid I'll be listening to it, and not be paying attention. So I said that I won't use GPS nagivation < 1271029339 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :[in the hypothetical future where I drive] < 1271029360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I can't find anything other than "breaks on x86 and maybe elsewhere" < 1271029364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: with all due respect, your dad is fucking insane < 1271029384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Turn left." I see a turn to the left, WAIT i must pay attention... what's this? turn left? *turns right* < 1271029408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, "maybe elsewhere" is enough for me < 1271029417 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: do you know about hazard fixation? < 1271029418 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: For the N900, it does have sudo by default, but it's not configured so that the "user" user can execute it. So you install the "gainroot" package so that you can start using sudo. (And the "app manager" installation thing is probably suid-root, yes.) < 1271029422 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But apparently not x86_64. < 1271029438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you try really really hard not to bump into something, you're more likely to bump into it than if you were just trying normally < 1271029441 0 :coppro!~coppro@unaffiliated/coppro JOIN :#esoteric < 1271029444 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: true < 1271029447 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :o.O RoboZZle has an iPhone version < 1271029450 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :ACTION grumbles < 1271029454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: but listening to a gps doesn't exactly make you a dangerous driver < 1271029484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :depends on if you concentrate on it rather than the road < 1271029514 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :experience with MarioKart DS shows that driving entirely from a GPS-alike is unreliable even when it shows the location of other cars < 1271029555 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Actually, now that I look at it, the app-manager's not suid-root, but /etc/sudoers has a long list of "user ALL = NOPASSWD: foo", where foo is any sort of command you might need in the normal course of things; including stuff like "/etc/init.d/some-stuff stop" and so. < 1271029578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: I take it that Sprint isn't even remotely an option? < 1271029610 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :alise, unless Sprint has a contract-free phone < 1271029613 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: seems a little dubious < 1271029615 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If it was the HTC EVO 4G might be a consideration, although I don't think it's technically out yet. < 1271029618 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, no, Sprint are a network. < 1271029621 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably there are thousands of root exploits in there < 1271029624 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So of course their phones are contract or pay as you go. < 1271029658 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1271029681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Or the HTC Desire. (a "cousin of the nexus one", apparently) < 1271029698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The Desire has so much in common with the Nexus One that it feels like we've seen it all before. Spec-wise these two Android 2.1 phones have the same processor, 1,400mAh battery, 3.7-inch 800 x 480 AMOLED screen, 5-megapixel autofocus camera and 512MB of ROM, while externally they have very similar CMF (industrial shorthand for "color, material and finish") and weight (4.76 ounces). < 1271029705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :64 more megs of ram though :P < 1271029721 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it has the htc sense ui though < 1271029725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is... prettier < 1271029728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.blogcdn.com/www.engadget.com/media/2010/03/htcdesiretriohed03302010.jpg < 1271029782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'd just get the nexus one < 1271029784 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :I take it that RoboZZle shouldn't be enough of a reason to push me towards iPhone < 1271029791 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it shouldn't :-) < 1271029791 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it should not < 1271029798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i am sure it will be ported to android some time < 1271029802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and besides < 1271029809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no amount of robozzle can make up for apple's immorality < 1271029814 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's true < 1271029818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i defended the iphone dammit but the latest change is just unacceptable < 1271029829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I, fanboy of fanboies of the iPhone, even I realise it's out of line < 1271029834 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants a device that can record his train of thought so that he can pick it up later < 1271029853 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :they've managed to even make me feel bad for working on clang < 1271029858 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: food for thought: iPhone licensing allows GPLv2 software but not GPLv3 software < 1271029882 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coppro: ah, don't let that bother you < 1271029897 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :them supporting clang is a good thing no matter what else they do < 1271029897 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :alise: yeah, I won't. It still makes me feel a little bad :( < 1271029908 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :say you were in germany in hitler's reign < 1271029908 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :clang? < 1271029916 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I know < 1271029917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and hitler had a program to feed young orphans -- even if they're jews, or gay, or whatever < 1271029926 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it was a wild success, feeding tons of people and making them all happylike < 1271029931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :would it be wrong to help this program? < 1271029931 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_: The LLVM C/C++/Obj-C compiler < 1271029938 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1271029941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Of course, it's not like Apple is anywhere near as bad as hitler :P < 1271029943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hello? am I still connected? < 1271029948 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, no < 1271029949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what the hell happened there < 1271029952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, thanks < 1271029959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: you'd have to be careful to make sure you were supporting the program rather than the people behind it < 1271029963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo_, http://www.internetpulse.net/ < 1271029968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I seems to have been hit by < 1271029969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: under hitler? that would be dangerous < 1271029969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that < 1271029970 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this sort of issue happens with aid programs in corrupt countries < 1271029977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :everyone under hitler supported hitler :-) < 1271029978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"The server at www.internettrafficreport.com is taking too long to respond." < 1271029980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still get that < 1271029981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: exactly < 1271029988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so at least you could do some good < 1271029992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :half of internet is unreachable from here! < 1271029995 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or so < 1271030000 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :that happens < 1271030009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm, depeering? < 1271030012 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1271030018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, perhaps < 1271030022 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :it's happened to me < 1271030023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is getting somewhat better < 1271030025 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Now, to turn that into a political statement./ < 1271030028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :freenode timed out before < 1271030033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but now it works again < 1271030037 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric : Half of the Internet is unreachable from here! < 1271030039 0 :Gregor!unknown@unknown.invalid PRIVMSG #esoteric :Boo China! < 1271030044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess it got rerouted < 1271030046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Gregor, har < 1271030060 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, seems they routed around it < 1271030061 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=SnWJ29eNCbY RoboZZle's a ship now? < 1271030074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :internet traffic report up again < 1271030079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1271030087 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not a depeering, just a problem < 1271030097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the whole trick with depeerings is that half the time you /can't/ reroute around them < 1271030101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it would cause too much political strife < 1271030103 0 :coppro!unknown@unknown.invalid PRIVMSG #esoteric :the tubes were clogged < 1271030113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or, at least, people demanding loads of money < 1271030117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed it isn't completely down < 1271030134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Though I loathe to quote techcrunch: < 1271030135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :On the downside: all this hardware bling is an energy hog. The screen will self adjust brightness and Google is smart about turning down the processor when it’s not being used. But I’ve found battery life to be woefully brief, even by iPhone standards. Officially the phone has up to 7 hours talk time, 250 hours standby, 5 hours of 3G Internet use, 7 hours of video playback and 20 hours of audio playback. Unofficially, I was able to kill the fully c < 1271030135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :harged battery with 1.5 hours of continuous gameplay (Robo Defense) on the full-brightness screen. Be prepared to keep this phone near a charger at all times. You can easily view what’s using the battery, though (the screen is 71% of my current usage), and then adjust the hardware or software usage to maximize battery life. < 1271030145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Note that full-brightness gameplay for 1.5 hours is unlikely. < 1271030168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: I do that all the time on the DS < 1271030178 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it rather depends on whether you bought your mobile for gaming or not < 1271030190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(presumably, some people do that; or maybe they don't) < 1271030195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: well, yes < 1271030200 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(still, whatever possessed anyone to invent the N-Gage?) < 1271030206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hahah :D < 1271030209 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but do you really need it on full brightness all the time? < 1271030220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :`addquote (still, whatever possessed anyone to invent the N-Gage?) < 1271030224 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :147| (still, whatever possessed anyone to invent the N-Gage?) < 1271030254 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wonderful quote < 1271030255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: with the original DS, there are only two brightness settings, full and off < 1271030271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you can't change them except on the startup screen, which you have to powercycle to reach < 1271030279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I have the original DS < 1271030282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :& proud < 1271030292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: same, and the touchscreen still worsk < 1271030293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*works < 1271030296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1271030299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i don't play on it all that much < 1271030306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I use it when I can't sleep < 1271030307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030309 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :52| Apple = Windows. < 1271030313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I use laptops for that P < 1271030314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*:P < 1271030316 0 :Sgeo_!unknown@unknown.invalid PRIVMSG #esoteric :http://www.appleinsider.com/articles/10/04/11/steve_jobs_defends_apples_changes_to_iphone_developer_agreement.html < 1271030323 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :alise: so do I sometimes, but they tend to make me less inclined to sleep rather than more < 1271030327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although monday-to-friday i can't do /anything/ when i can't sleep < 1271030332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030334 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :25|`quote < 1271030334 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1271030338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Nice quote. < 1271030344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(quote quote) < 1271030365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030367 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :75|* ehird disables javascript < 1271030370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030371 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :18| GregorR-L: i bet only you can prevent forest fires. basically, you know. < 1271030384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Smokey would be so much better if he said that. < 1271030386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030388 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :13|* ehird has joined #lobby hmmm clean me < 1271030391 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030392 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :124| I cannot eat meat that isn't flat. < 1271030396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :`quote < 1271030397 0 :HackEgo!unknown@unknown.invalid PRIVMSG #esoteric :72| ignore me, i'm full of bullshit