< 1122076825 0 :wooby!unknown@unknown.invalid PRIVMSG #esoteric :yo < 1122076952 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oy < 1122077036 0 :BigZaphod!~BigZaphod@66.6.34.219 JOIN :#esoteric < 1122077570 0 :wooby!unknown@unknown.invalid QUIT : < 1122078611 0 :kipple___!~kipple@163.80-202-100.nextgentel.com JOIN :#esoteric < 1122078612 0 :kipple__!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1122082871 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1122083616 0 :graue!~graue@ip68-100-130-21.dc.dc.cox.net JOIN :#esoteric < 1122085482 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Before I continue this ... < 1122085487 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Has anybody written checkers in BF? < 1122085666 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :not I < 1122085694 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I'd been thinking about implementing Nim or something < 1122085994 0 :kipple___!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1122087928 0 :calamari!~calamari@dialup-4.240.114.143.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1122094105 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Is it cheating to write BF with a C preprocessor? < 1122094150 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :do you feel like it's cheating? < 1122094229 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like fun < 1122094239 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what sorts of macros do you use? < 1122095737 0 :heatsink!unknown@unknown.invalid QUIT :"Leaving" < 1122095805 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't feel like it's cheating. < 1122095808 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's just reusing code. < 1122095820 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's just a quick way to type 100s of BF commands. < 1122095846 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My macros: < 1122095867 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_CLR: a = 0 */ < 1122095867 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_ADD: a = a + b */ < 1122095867 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_SUB: a = a - b */ < 1122095867 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_DUP: b = a; c = 0 */ < 1122095869 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_MULT: a = a * b; c, d, e = 0 */ < 1122095871 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_DIV: a = a / b; b, c, d, e, f, g, h = 0 */ < 1122095873 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric : /** MBF_CLS: clear the screen; a, b, c, d strange values */ < 1122095972 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I guess the actual implementation is a trade secret, eh? < 1122096372 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'll gladly give it over. < 1122096465 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1122097123 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But first I have to package it in a modestly non-sucky way 8-D < 1122097138 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What's the BEST BF interpreter out there? < 1122097154 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :they all suck < 1122097188 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :qdb and yabfi2 have hardcoded limits of how many tape cells they can use < 1122097197 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :if you don't need a lot of code or tape cells, use qdb < 1122097323 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What's their hard limit? < 1122097432 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I don't know, look at the source code? < 1122097452 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :something along the lines of 30000, you can always change it of course < 1122097776 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, 30000 should be fine *shrugs* < 1122097880 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I don't really know of a fast/decent interpreter with no hardcoded limits < 1122097887 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :30000 has been insufficient for some things I wanted to do < 1122097889 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'll have to write one. < 1122098350 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :List of necessities: < 1122098353 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: might I suggest precalculation of [ and ] ? :) < 1122098356 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :8, 16 and 32 bit mode < 1122098360 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Precalculation of [-] < 1122098377 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wrapping optional < 1122098379 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :add-to loops too, maybe? :) < 1122098382 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Reallocate space < 1122098405 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :calamari: I'll consider it as a to-be-implemented :) < 1122098408 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1122098423 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :[ and ] precalculation helps a lot.. try it :) < 1122098506 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh of course - I thought you meant something else. < 1122098508 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's a given. < 1122098564 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :it seems that the best is almost a mini compilation phase at the beginning before interpretation < 1122098926 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Is it agreed that there's no call for memory expanding /below/ 0? < 1122098970 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122099027 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :although I've seen one implementation, that allowed memory expanding below 0, which then permitted it to remove any > and < instructions at the beginning of the code < 1122099040 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure if that is an effective way to actually speed anything up < 1122099060 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :(probably not, in general) < 1122099069 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Those ops are so quick, it's really pretty irrelevent *shrugs* < 1122099079 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, that implementation then didn't have to check for memory underflow all the time < 1122099086 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter shouldn't crash on invalid programs < 1122099091 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric : probably not, as >'s and <'s should be pre-combined anyways < 1122099097 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :true < 1122099114 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :of course, sometimes this allows bad programs to not crash < 1122099115 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :in fact any chunk of code containing only ><+- can be optimized quite a bit < 1122099119 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122099194 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :not for use in contest judging :) < 1122099642 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Now matching loops ... < 1122099827 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Loops are now matched (in a very memory-inefficient way I'm afraid to admit) < 1122099886 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lookup table? < 1122099918 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yup < 1122099921 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :nah, no need, could just hardcode into the source :) < 1122099933 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But it's also the table used to shorten >><<<<>, etc. < 1122100006 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't listen to me, since I haven't written the ultimate bf interpreter, hehe < 1122100658 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And who has? < 1122100719 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :you, a few weeks from now when you release version 1.0? < 1122100726 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122100730 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A few weeks? I'm insulted! < 1122100866 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :sorry, in a few years < 1122100878 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I should have known you would never rush and that quality was paramount to you < 1122100954 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122101625 0 :calamari!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1122101878 0 :calamari!~calamari@dialup-4.240.111.190.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1122102195 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :*((((bytewidth == 1 : int8_t ? (bytewidth == 2 : int16_t ? int32_t))) (mem + ((mptr) * bytewidth)))) += loops[pptr]; < 1122102200 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's broken somehow :-P < 1122102229 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :does it have to be obfuscated just because it's a brainfuck interpreter? < 1122102262 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122102266 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's actually the result of macros. < 1122102274 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It reads as *(MEM(x)) = loops[pptr]; < 1122102288 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I thought the programs had macros, not the interpreter < 1122102288 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The MEM macro decides what sort of memory it's looking at. < 1122102296 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1122102313 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :well, your ?s and :s are reversed < 1122102336 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hopefully it only executes this once? < 1122102365 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :graue: Yeah, I noticed that XD < 1122102401 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I just need to compile three interpreters with different #defines and make a frontend. < 1122102406 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Because that's anything but optimal. < 1122102444 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :make the entire interpreter a macro < 1122102480 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :then you can do like "if (bytewidth == 1) INTERPRETER(int8_t) else if (bytewidth == 2) INTERPRETER(int16_t)" etc < 1122102500 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122102538 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :or, like you suggest, just make an interpreter generator < 1122102546 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :you could also have disable/enable wraparound, etc < 1122102551 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :and optimizations < 1122102561 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :good night < 1122102561 0 :graue!unknown@unknown.invalid QUIT :"Donate a manual typewriter to ME for your only hope for a future!" < 1122103216 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :w00t < 1122103217 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It works. < 1122103634 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, has problems with 32-bit mode. < 1122104115 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :signed or unsigned btw? < 1122104189 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Unsigned. < 1122104207 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, don't know if I want that to be modifiable ... < 1122104875 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hoopla < 1122105181 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Why yes, this is the greatest BrainFuck interpreter ever. < 1122105189 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What's that you say? Gregor is a genius? < 1122105267 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :somebody needs to write a bf benchmark program so that you may be humbled :) < 1122105347 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122105366 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What's a completely insane BF program? Way to huge to make any sense. < 1122105401 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :raven's lost kingdom is huge < 1122105422 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ah, good'n! < 1122105425 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :bfasm is decently large as well < 1122105456 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Do you know if either need 16-bit or whatnot? < 1122105485 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oooh, that's snappy! ^_^ < 1122105490 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :bfasm does.. < 1122105506 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Time to release this puppy. < 1122105542 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, I totally don't understand this Fibonacci sequence generator ... < 1122105551 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :y not? < 1122105562 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Either it's somehow stepping outside the bounds of a character, or it's not putting newlines :P < 1122105599 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hmm, thought I had that program, guess not < 1122105599 0 :clog!unknown@unknown.invalid QUIT :ended < 1122105600 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1122105616 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If it's somehow stepping outside the bounds of a character and is generating properly, then I just generated: < 1122105621 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :7636483426752859626568727941453421836579500747253199097397446751252205298917387147222157525691120044675551183747012174982350831180624465225615183372232707575199695298398336853131650061131214645112476911067502428593554795489700530669981992898898397 < 1122105625 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In well under 10 seconds. < 1122105639 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :somehow that seems unlikely even for non bf < 1122105658 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what it's doing *shrugs* < 1122105679 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :primes.bf < 1122105685 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :thats a fun one < 1122105732 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Where from? < 1122105797 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :1 sec I'll find it on e.s.f < 1122105836 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.sange.fi/brainfuck/bf-source/prog/PRIME.BF < 1122106102 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tinkers < 1122106190 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how does it do on 1000? :) < 1122106225 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Right now I'm working in the 100 range :P < 1122106470 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Damn :P < 1122106486 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Even though the OPTION set provided by GKRBFI is far better, QDB is inexplicably beating it in times. < 1122106520 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :suggestion: rename to something else :) < 1122106539 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how about gbfi? :) < 1122106630 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :G implies GNU < 1122106634 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :K implies KDE < 1122106637 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :R doesn't imply me. < 1122106645 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I have to use them all :P < 1122106649 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1122106662 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :g implies gnome < 1122106695 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That too < 1122106696 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :egobfi? < 1122106701 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :8-D < 1122106767 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :When I take off counting of <>>>>><, the time drops dramatically. < 1122106777 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1122106798 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :so it's faster not to optimize <> ? < 1122106810 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how about +-? < 1122106813 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Same. < 1122106825 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that's kinda weird < 1122106828 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Merely because of the time taken in doing all the counting, and then having to reference that count in some array. < 1122106851 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure if something had 1000 +s in a row it'd be better, but not for an average program :P < 1122106880 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :those things should just be optimized in source code :) < 1122106913 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1122106922 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well, some of them :) < 1122107003 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm experimentally trying without [] mapping < 1122107085 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Amazingly, that did worse :P < 1122107132 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And now I have no idea what the slowdown is >:( < 1122107227 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ohhhhhhhhh, I see how QDB cheats. < 1122107228 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Tricky. < 1122107260 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cheats? < 1122107293 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :They not only cached it, but left the cached value in the program itself, rather than the program referencing it somewhere else. < 1122107348 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that's how I was suggesting to do it before :) < 1122107376 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :*cough* < 1122107379 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cheats :) < 1122107401 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :at least if I understand what you said.. hehe < 1122107468 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I'd make a new program like +(int) [(addr) etc < 1122107543 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :or even better.. compile to machine code and call subroutine ;) < 1122107594 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :w00t < 1122107630 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :egobfi pulls ahead? < 1122107761 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :YES!!!!! < 1122107762 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :w00t! < 1122108559 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Is there somebody here who can upload this to esolangs.org? < 1122108690 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :WTF is with this Fibonacci generator >_O < 1122108762 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how long does 1000 take? :) < 1122108789 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A loooooooooooooooooooooong time. < 1122109106 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/egobfi-0.1.tar.bz2 < 1122111470 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ok.. too tired :) good job Gregor < 1122111473 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1122111926 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, 0.1 had a horribly broken debugger. < 1122111929 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/egobfi-0.2.tar.bz2 < 1122111982 0 :{^Raven^}!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1122115623 0 :kipple___!~kipple@163.80-202-100.nextgentel.com JOIN :#esoteric < 1122117433 0 :{^Raven^}!~{^Raven^}@82-38-204-252.cable.ubr05.shef.blueyonder.co.uk JOIN :#esoteric < 1122117643 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: still around? < 1122119481 0 :fizzie2!fis@sesefras.tky.hut.fi JOIN :#esoteric < 1122119489 0 :fizzie2!unknown@unknown.invalid PRIVMSG #esoteric :Whoopsie. < 1122119533 0 :fizzie!unknown@unknown.invalid QUIT :Nick collision from services. < 1122119542 0 :fizzie2!unknown@unknown.invalid NICK :fizzie < 1122119590 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Apparently the cat in the place this box (sesefras) is temporarily-located had managed to detach the power cable from the switch. < 1122119680 0 :ineiros_!~ineiros@st6-80.tky.hut.fi JOIN :#esoteric < 1122119717 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1122119843 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Blame him ^ (ineiros), it's his cat. < 1122119893 0 :ineiros_!unknown@unknown.invalid PRIVMSG #esoteric :Sorry. :P < 1122120208 0 :ineiros!unknown@unknown.invalid QUIT :Read error: 111 (Connection refused) < 1122120625 0 :jix!jix@p5489F583.dip.t-dialin.net JOIN :#esoteric < 1122120814 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :moin < 1122122804 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/prog/esoteric/mandel-bench.txt < 1122122967 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :are there other interpreters worth adding to the benchmark? < 1122122992 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(or compilers) < 1122123106 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :bftools by Erok Bosman would be a good addition < 1122123121 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :*Erik < 1122123142 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: i'm going to write one < 1122123169 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, how come it's not in the BF page? < 1122123204 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :did you tried obi2.rb ? < 1122123217 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/files/brainfuck/impl/obi2.rb < 1122123220 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's a ruby script < 1122123256 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I didn't < 1122123276 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i think it's slow but maybe as fast as possible with ruby < 1122123290 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: Erik Bosman's 'terp is at http://jonripley.com/~jon/bftools.zip if you haven't got it already < 1122123311 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :because it converts the brainfuck code in ruby code and then evals it < 1122123318 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: I didn't, thanks < 1122123333 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: optimizing? < 1122123362 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :optimizing interpreters are often faster than non-optimizing compilers < 1122123362 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :[-] nothing more < 1122123378 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok it would be possible to optimize more thing < 1122123379 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :s < 1122123384 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but it wouldn't fit into that shape^^ < 1122123403 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122123413 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :do the letters bolder < 1122123525 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: sorry but outputting *the first line* already takes almost 45 secs < 1122123556 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm not going to let it complete the shape; my computer has severe temperature problems < 1122123578 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122123581 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(room temp is ~ 31 C) < 1122123600 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uh.. < 1122123615 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i have 22 C < 1122123685 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :16 C outside < 1122123735 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :that's cool (literally) < 1122123807 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :16 C is normal upto 25 C is warm >25 C is hot < 1122123934 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the result with bftools is very very similar to the one with brfd < 1122123960 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :1m17.476 vs 1m17.229 < 1122124030 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm impressed with bff though; it's just a 3x slowdown wrt the natively compiled version < 1122124137 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.iwriteiam.nl/Ha_bf_online.html does not compile it < 1122124204 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to try http://bf2c.sf.net/ < 1122124232 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately that also depends on the C compiler's optimization abilities < 1122124260 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but it's portable < 1122124271 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i can't try awib because i don't have a running x86 machine < 1122124279 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :a working < 1122124339 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I know that's a caveat of awib but anyway I wanted to include it in the benchmark for reference < 1122124463 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: there's bfbasc demo program for BFBASIC that compiles to unoptimised x86 < 1122124547 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :./bff mandelbrot.b ... waited 1 minute .. no output .. killed? < 1122124561 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :? < 1122124564 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it works here < 1122124768 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with obi2.rb it works here too < 1122124783 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: I will consider it but I don't want to spend much time with this < 1122124837 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: i reckon just the main contenders will be most useful to have < 1122124919 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: maybe bff is endianess-sensible or something? < 1122124977 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :grr, bf2c segfaults < 1122125272 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to write a really fast bfi < 1122125342 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :IMNSHO brfd has one of the best BF debuggers around < 1122125389 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :too bad it doesn't debug C programs... gdb sucks < 1122125423 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :gdb is good enough to debug binaries without source code < 1122125448 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I preferred symdeb O:) < 1122125470 0 :jix!unknown@unknown.invalid PART #esoteric :? < 1122125564 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ACTION now laments to have put so much effort in past in learning usage of DOS tools < 1122125958 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: what's wrong with gdb? < 1122125964 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :(just curious) < 1122125991 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :commands are too complex to learn < 1122126013 0 :jix!jix@p5489F583.dip.t-dialin.net JOIN :#esoteric < 1122126017 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oops wrong key < 1122126030 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :wb jix < 1122126057 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :thx < 1122126142 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: oh, "run, break, continue, backtrace, print" is what i usually need, those are very logically named imho :/ < 1122126153 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I tend to forget them from one time to another; I always have to read some docs < 1122126190 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: use ddd if you want to use menus and mouse < 1122126218 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: how should they be named so that you'd remember? ;) < 1122126224 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I usually need "info registers", "disassemble", "info target", single step... < 1122126300 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :well, I was quite comfortable with single-letter commands < 1122126410 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: i hope you have noticed that you can use "r", "b", "c", "bt", "s" and "si" ;) < 1122126494 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the bad point is that it's not intuitive enough for me, I have to check docs often < 1122126507 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could also use "define" in .gdbinit to customize/intuitivize your gdb. < 1122126536 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :being a mixed assembler/HLL debugger makes it harder to use, e.g. using $ for registers < 1122126577 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'd prefer to have a dedicated low-level debugger < 1122126582 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :anyway that's probably just me < 1122126652 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but gdb has objective-c support < 1122126660 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :and java support < 1122126673 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and objective-c always stores symbol names because it uses a somewhat dynamic calling < 1122126715 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and all binary objective-c programs have symbols included.. it helps fixing some things < 1122126848 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :some programs always display warning messages "Do you really want to do this"... "really?" .. some little changes an whoops no annoying warnings < 1122129217 0 :yrz\werk!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1122129381 0 :yrz\werk!~yaro@host224-177.pool8250.interbusiness.it JOIN :#esoteric < 1122134484 0 :Aardwolf!~neusring@dD576509A.access.telenet.be JOIN :#esoteric < 1122135763 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: what's your mandelbrot test machine? < 1122135865 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :athlon xp 2000 < 1122135895 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i wrote a new bf interpreter < 1122135914 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and on my g4-1ghz ppc machine it takes 1:11 for mandelbrot.b < 1122135955 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it has NO error checking and i'm not sure if it frees everything ^^ but it has growable memory < 1122135967 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh 1.3 GHz, btw < 1122135974 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :mind if I test it? < 1122135983 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm uploading it < 1122135991 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :benchmark, even < 1122136000 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :please test it.. i want to compare it with other interpreters < 1122136027 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1122136041 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://www.harderweb.de/jix/langs/brainfuck/afbi.c < 1122136060 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :compile with -O3 < 1122136139 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :segfault < 1122136182 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :huh?! < 1122136225 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :even if I give no parameters < 1122136241 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with no parameters it's normal < 1122136253 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :there has to be 1 parameter < 1122136277 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it still segfaults < 1122136287 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm what's your gcc version? < 1122136301 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :gcc (GCC) 3.3.5 (Debian 1:3.3.5-13) < 1122136322 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i compiled it with gcc version 3.3 20030304 (Apple Computer, Inc. build 1809) < 1122136364 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :gcc version 4.0.0 20041026 (Apple Computer, Inc. build 4061) < 1122136365 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :works too < 1122136445 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :any compile warnigns? < 1122136460 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I activated none; other than that no < 1122136528 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1122136528 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Where's this mandelbrot.b? < 1122136530 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ddd says the segfault happens in line 152: goto *(ins[ci.instruction]); < 1122136542 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ooh, a computed goto. :) < 1122136544 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: esolangs.org/files/brainfuck/src (guessed) < 1122136563 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: hmm ok < 1122136590 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://swapped.cc/bf/ < 1122136616 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It segfaults on my x86 box too. < 1122136619 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric : it jumps into the dark side of memmory.. oh nooo < 1122136621 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But doesn't on my ppc box. < 1122136678 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :endianess problems? < 1122136704 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: pgimeno: what's the content of program[program_p].instruction at the segfault? < 1122136712 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: no gcc computes the values i jump to < 1122136728 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and i don't use unions < 1122136738 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and i don't cast values with different size < 1122136748 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print program[program_p].instruction < 1122136749 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :$1 = 0 < 1122136778 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1122136782 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :thats add < 1122136805 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print program[program_p].instruction < 1122136805 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :$1 = 7 < 1122136820 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1122136826 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :wahts 7.. < 1122136826 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :program_p is 3291. < 1122136833 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :7 is exit < 1122136869 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :here it is 0 < 1122136926 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: mandelbrot.b ? < 1122136931 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1122136937 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's 0, 0 here too when compiled with "-g -O3" < 1122136940 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :3291 shouldn't be exit < 1122136948 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: do you realze that the file is 12000 instructions long? < 1122136951 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And 7, 3291 when compiled with just a "-g". < 1122136954 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :s/realze/realize/ < 1122136955 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: yes < 1122136970 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :there something odd with the computed gotos < 1122136983 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :awayy < 1122137050 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :back < 1122137052 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, it takes 1:24 to run mandelbrot.b on this 1GHz g4 iBook (compiled with gcc "3.3 20030304 (Apple Computer, Inc. build 1495)"), which is admittedly doing some other things too. < 1122137130 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it took 1:11 on my 1ghz g4 so that sounds ok < 1122137174 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: program_s = 4000 here, if that helps < 1122137221 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :4000? < 1122137230 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :should be... 16000 < 1122137239 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sizeof(bfi)*1000 < 1122137246 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ci.instruction is "65541" when it crashes on that goto statement. < 1122137251 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's probably not right. < 1122137257 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122137296 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1122137299 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i changed something < 1122137303 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :program_s is ok < 1122137307 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :at 4000 < 1122137395 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Shouldn't "tmp" be > "program"? When it crashes, it's program-1011 here. < 1122137413 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1122137424 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print tmp < 1122137424 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :$2 = (bfi *) 0x804a260 < 1122137424 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print program < 1122137424 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :$3 = (bfi *) 0x804e190 < 1122137440 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm something went wrong < 1122137450 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should try single-stepping when it starts interpreting it. < 1122137478 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it has something to do with the loop instructions < 1122137510 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :line 183 & 187 set tmp < 1122137581 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :maybe the parser writes the wrong addresses into the memory < 1122137675 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1122137686 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :((bfi*)(tmp->arg_c))->arg_c=(void*)tmp; < 1122137711 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :where's the problem < 1122137719 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's bad c-style < 1122137733 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :arg_c is int, right? < 1122137740 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :arg_c is void* < 1122137747 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :arg_a and arg_b are int < 1122137749 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ah ok < 1122137759 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1122137773 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, converting between void* and bfi* shouldn't be a problem. < 1122137787 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :arg_c should be bfi* but i forgot how to do linked-list declarations < 1122137807 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I objected just because I thought it was int; I was wrong < 1122137854 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :typedef struct bfi_s { ...; struct bfi_s * arg_c; } bfi; < 1122137857 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Anyway.. < 1122137873 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :anyway where is it initialized? < 1122137910 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: what? < 1122137926 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :where is tmp->arg_c initialized? < 1122137932 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Afaict the terminating ']' of the loop sets it properly. < 1122137940 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :For "both ends" of the loop. < 1122137958 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, in the previous instruction :) < 1122137962 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1122137984 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my c-code is always chaotic as hell < 1122137995 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i never really learned c < 1122138016 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'd point at my befunge interpreter for a prime example of chaotic C, but befunge.org's down at the moment. < 1122138061 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :take a look at my c kipple interpreter (cipple) i re-aranged functions because i was to lazy to write function prototypes < 1122138186 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm used to not using prototypes (I'm a quiche-eater) < 1122138202 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but some recursive functions need prototypes < 1122138221 0 :yrz\werk!unknown@unknown.invalid PRIVMSG #esoteric :ACTION frank zappa - tengo una minchia tanta < 1122138221 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with computed gotos it should be possible to avoid that < 1122138250 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :things need to get really really complicated for them to be really necessary < 1122138266 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :a calls b and b calls a < 1122138309 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I usually write b inside a in such cases < 1122138323 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm.. i too < 1122138349 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Engfeh. gdb's single-stepping gets sorta-confused when the program's compiled with "-g -O3". < 1122138382 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, -O0 is needed for reliable traces < 1122138403 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Since it segfaults with that too, I guess I'll look at it unoptimized. < 1122138672 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ohhh. < 1122138684 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have an idea of one way it might bug. < 1122138727 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :if realloc() moves the "program" to some different address when reallocating, the addresses in the "loopstack" get invalidated. < 1122138757 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that's probably it < 1122138785 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I was examining the value of loopstack right now < 1122138815 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print program < 1122138815 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :$13 = (bfi *) 0x804a170 < 1122138829 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) print loopstack[0] < 1122138829 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :$15 = (void *) 0x804a180 < 1122138849 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :which makes perfect sense < 1122138883 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1122138899 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok i'm going to fix that < 1122138901 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :but on segfault: (gdb) print program < 1122138901 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :$16 = (bfi *) 0x804e190 < 1122138959 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You could keep offsets from start-of-program in arg_c too, since the values in those fields get invalidated too, when "program" is moved. < 1122139052 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it probably segfaults on x86 because the page is freed < 1122139257 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :while parsing i keep relative offsets < 1122139271 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if i'm done with parsing i convert them into absolute addresses for speed < 1122139371 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :updated < 1122139392 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i did some speed improvements too < 1122139542 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you want a speed improvement, you might consider adopting the same "one jump per instruction" strategy I did with my befunge interp: make a macro like "#define NEXT tmp++;ci=*tmp;goto *(ins[ci.instruction])", and put that after every instruction instead of "goto lend". < 1122139562 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :thx < 1122139601 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not that I'd have benchmarked it to see if it has any _real_ effect, but "it just might". < 1122139691 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :5secs faster! < 1122139710 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :updated < 1122139716 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :does it work on x86 now? < 1122139733 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Uh.. well: < 1122139734 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fis@sesefras:~$ ./afbi mandelbrot.b fis@sesefras:~$ < 1122139742 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Err, that's a broken copypaste. < 1122139751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Let's try that again: < 1122139752 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fis@sesefras:~$ ./afbi mandelbrot.b < 1122139756 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric : fis@sesefras:~$ < 1122139764 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It prints out 8 spaces, it seems. :p < 1122139778 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :better than segfault < 1122139809 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if i set program start size low i have the same bug < 1122139831 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmnnhm. Might still have something to do with the reallocations, then. < 1122139854 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: is it on the same location? < 1122139900 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :web location, I mean < 1122139913 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's where I wget'd from. < 1122139918 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And it looks updated to me. < 1122140063 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: yes < 1122140191 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i don't know why it doesn't work < 1122140210 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i write a bf2c converter thats easier < 1122140278 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :not only bf2c but bf2* < 1122140328 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a (quite unoptimized) bf2befunge thing, but befunge's not very mainstream language either. < 1122140357 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok bf2high-level-language < 1122141358 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: *mem_p == 1 at start of program < 1122141511 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :seems you forgot to zero it out < 1122141613 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1122141631 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :now it works < 1122141782 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :updated < 1122141995 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits until the computer cools out < 1122142033 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i had no temperature problems at 35 C < 1122142078 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my old 68k (motorola 680x0) mac had problems at ~40 C but my computer hadn't < 1122142139 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and i don't have a cpu fan < 1122142227 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :my case is really annoying; I have them since I bought this box < 1122142258 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i wish my computer had a cpu fan.. passive cooling is LOUD < 1122142269 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :see http://www.formauri.es/personal/pgimeno/temp/dsc02325.jpg < 1122142281 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122142294 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :that's my box and my auxiliary fan < 1122142300 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the hard-disk < 1122142301 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :^^ < 1122142329 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, that one is cooled at the same time < 1122142363 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :time afbi-0.1/afbi mandelbrot.bf < 1122142363 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric : real 3m3.160s < 1122142363 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric : user 2m55.809s < 1122142363 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric : sys 0m0.070s < 1122142370 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1122142393 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my computer can't be that fast < 1122142422 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :tried brfd? it's very ANSIish < 1122142432 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :url? < 1122142432 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, the optimizer is not released < 1122142478 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/files/compurec/brfd101.zip < 1122142534 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :then replace run.c with this: < 1122142542 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/run.c < 1122142876 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oceanic:~/Desktop/Downloads/brfd101 jannis$ time ./brfd ~/Desktop/mandelbrot.b < 1122142882 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :real 2m7.937s < 1122142882 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :user 1m34.170s < 1122142882 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.779s < 1122142890 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :on my computer my interpreter is faster < 1122142915 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I expected that for some reason < 1122142922 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :hmm, maybe i should write brainf*ck interpreter too < 1122142943 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: but i didn't any ppc specific optimizations < 1122142979 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :wait for my bf2c ... < 1122142983 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'd guess that the reason is indirect jumps being too expensive in x86 < 1122142989 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but first i have to eat something < 1122143008 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ppc is faster with precomputed jumps too < 1122143012 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm looking forward to see it; I'm sure it will be faster < 1122143046 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but comparing a int with 7 other ints is always slower than branching/jumping to an computed address < 1122143054 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :/away < 1122143103 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :maybe not < 1122143253 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the comparisons may take 1 cycle each; OTOH indirect jumps can't be predicted and the pipeline is useless < 1122143599 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: you know if anybody has made a benchmark of all published bf interpreters/compilers? < 1122144618 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: but after each comparison it has to jump to the code < 1122144621 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: no < 1122144639 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :would be interesting to see one < 1122144695 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i have a 300mhz celeron computer (without os atm) could be a testbox < 1122144743 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :maybe i'll write a benchmark script < 1122144765 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :bash? < 1122144811 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uh where is the key for the computer? < 1122144815 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :With linux one can use sched_setscheduler to grant rather exclusive priorities to the test-task. (If one does not care that the computer then won't be doing much (anything) else during the test.) < 1122144824 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :yeah, why not. it just needs to invoke different interpreters with different programs < 1122144836 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: key? < 1122144841 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i don't use the computer for enything else < 1122144845 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: yes a real-life key < 1122144858 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure what you are talking about :/ < 1122144888 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Normal linux distributions have a lot of tasks running anyway, and even nice -20'd processes only get their share of cpu time. < 1122144897 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's in a (shortened) server box with a little door at the front with a lock in it < 1122144979 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a SGI Indy (MIPS, running IRIX) and a Sun Sparcstation 5 (microsparc, with OpenBSD installed) if you want platform-specific benchmark results. Although the SGI box lacks a C compiler. < 1122145047 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: is there an tutorial for running a process while stopping all other < 1122145146 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: i'm talking about a key for http://www.harderweb.de/jix/lock.jpg < 1122145178 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I haven't seen one. But with linux it's quite easy: struct sched_param sp; sp.sched_priority = 42; sched_setscheduler(0, SCHED_FIFO, &sp); < 1122145219 0 :calamari!~calamari@dialup-4.240.114.212.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1122145227 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It has an added-value feature of making an infinite loop a serious condition, since any other processes will never be run. < 1122145233 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i could write a luncher for it (first setting priority than exec'ing into the other process) < 1122145300 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :scheduling parameters are inherited by fork(), so you could just grant a higher priority to the shell running the test script. < 1122145321 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The shell process probably wouldn't have too much interference. < 1122145322 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: than the shell and the process have high priority < 1122145358 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: if a program enters an infinite loop and i use the code you posted is it possible to exit the program? < 1122145369 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, no. < 1122145379 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uh bad < 1122145385 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Unless you have a higher-priority task that can kill it. < 1122145405 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if the shell has same priority.. can i kill it using ctrl-c? < 1122145406 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"As a non-blocking end-less loop in a process scheduled under SCHED_FIFO or SCHED_RR will block all processes with lower priority forever, a software developer should always keep available on the console a shell scheduled under a higher static priority than the tested application." < 1122145430 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1122145441 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :From the man page of sched_setscheduler. < 1122145454 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the lock is screwdriver safe! < 1122145481 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the box has a hole at the back but is safe at the front... < 1122145517 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Then there's the matter of timing... on linux, gettimeofday() is a relatively precise, but you want the time samples taken as close as possible before and after the task startup/termination. Optimally you could modify the interpreter sources so that whatever delay is introduced by wait()ing on the process won't matter. < 1122145612 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i don't think i need that exact timing < 1122145631 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the first thing i need is that stupid key! < 1122145685 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Depends on how long running times the processes have, I guess. And obviously random variation can be coped with by using a suitable number of repetitions. < 1122145692 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :that mandelprot.b btw does not run with BFI.java, i get "Exception in thread "main" java.lang.Error: Byte incremented beyond capacity" < 1122145696 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The key is in a "safe place". < 1122145721 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :mandelbrot even < 1122145734 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: maybe it's in a trashcan... < 1122145756 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hah not 100% screwdriver safe! < 1122145804 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I assume it's not chain-saw-safe either. < 1122145855 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://www.harderweb.de/jix/open.jpg < 1122145944 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm i need a power cable < 1122146027 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anybody knows a good 4-hands piano piece? < 1122146048 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :its 400mhz not 300 < 1122146061 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lament: you have 4 hands? cool :) < 1122146084 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :calamari: you have less than 4 hands? < 1122146094 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :jix: lol < 1122146115 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah, iirc squids only have the 2 long tentacles < 1122146120 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :the rest are shorter < 1122146142 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oh there is a linux on the computer < 1122146154 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :with x11... < 1122146163 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :looks like i reinstall is needed < 1122146167 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i=>a < 1122146225 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :where is the keyboard-plug converter < 1122146238 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i only have two hands < 1122146259 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :lament; you're going to use time-travel to have two of you! < 1122146271 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I ran the benchmarks for our "programming lab-work" (I can't find an official english name for it) course using a knoppix CD. That was convenient. < 1122146273 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :maybe he can play with his feet, like an organ :) < 1122146282 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: that's the most boring use of time-travel ever :) < 1122146322 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :calamari: i can play with my feet, but not piano. < 1122146361 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :33 processes running default < 1122146380 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I have very little musical ability. I can play a harmonica, but not even bend notes really... < 1122146393 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i play guitar < 1122146414 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :bending notes has nothing to do with musical ability < 1122146422 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and everything with practice < 1122146459 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :keep practicing and you'll get it :) < 1122146476 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what harmonica do you have? < 1122146480 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the cpu is 99.7 % idle < 1122146482 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :thats ok < 1122146540 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lament: the one I play most is a hohner weekender, because it has a wide range, and I like the scale (it's not missing notes), but it very bad for bending, because each note has two holes that play at the same time < 1122146571 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lament: I have a standard 10 hole hohner that is gathering dust.. I had a tiny bit of success bending low notes with it < 1122146898 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh ugh < 1122146909 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't like non-standard harmonicas < 1122146960 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :An esoteric harmonica. < 1122146983 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1122146995 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the double-reeds are less expressive then standard ten-holes < 1122147002 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I got hooked on it, because it has every note < 1122147023 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :I can play any diatonic note on the ten-hole < 1122147061 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :the 10-hole has all the notes, iirc in the middle, but on the sides it skips them for c-e-g chords < 1122147122 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that meant I could not play certain songs < 1122147172 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :only chromatic harmonicas have "all the notes" < 1122147209 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the weekender has a full major scale < 1122147211 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :lament: I mean cdefgab.. I'm not talking about flats/sharps.. sorry to confuse :) < 1122147229 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ten-holes don't have a full major scale, but it's possible to play it anyway by bending < 1122147254 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and it's possible to play EVERY note within the three octaves by bending and overblowing < 1122147257 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(but that's hard) < 1122147277 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :on the weekender it's impossible in principle < 1122147288 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :as far as i know < 1122147309 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :AGGGGGGGGGGGGGGGG < 1122147312 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So much talking. < 1122147329 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :How the HELL is bff so fast? < 1122147345 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :egobfi is beaten? < 1122147427 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Please note that egobfi was primariy intended to be powerful, fast was a later addition. < 1122147534 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I was briefly investigating a self-modiying elf binary last night. Not good at linux asm yet. < 1122148004 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I miss debug.. wish there were something interactive like that for linux. < 1122148323 0 :yrz\werk_!~yaro@host104-245.pool8254.interbusiness.it JOIN :#esoteric < 1122148412 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Umm, like gdb/ddd ? < 1122148420 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't know what you mean by "debug" < 1122148449 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :debug is a dos program.. has a built in assembler, disassembler, binary editor, etc < 1122148494 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :calamari: yeah, that's what I miss too < 1122148497 0 :yrz\werk!unknown@unknown.invalid QUIT :Client Quit < 1122148545 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :good ol' debug and the backwards-compatible, feature-enhanced symdeb < 1122148568 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :never had symdeb.. but I had a debug32.. didn't work 100% reliably tho :) < 1122148574 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :brfd is faster with mandelbrot but slower with primes. < 1122148653 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh GregorR, that's good to know... I thought that mandelbrot was long enough for a semi-decent benchmark but of course there are many optimizations that brfd can miss < 1122148710 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm really just trying to save face XD < 1122148725 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :probably primes uses chunks that are not well optimized by brfd < 1122148746 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :brfd is actually pretty dumb, it's just a string replacement < 1122148771 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ahhhhhhhhh, so that's your trick :) < 1122148818 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: got mandelbrot running in 7.4s on my optimising compiler < 1122148820 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, it's "compiled" to a bf variation with an extended instruction set < 1122148845 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: wow, I'd like to check it on my box for an accurate reference < 1122148891 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: can you give me a link to the mandelbrot,bf that you are using < 1122148893 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :does it generate C or assembly? < 1122148897 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :C < 1122148905 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think 'debug' was that much better than gdb. < 1122148919 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://swapped.cc/bf/ < 1122148931 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://swapped.cc/bf/files/mandelbrot.b < 1122148968 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Come on, no comparing compilers to interpreters ;) < 1122148980 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps the fact that it didn't even try to be a symbolic debugger made it more suitable for debugging binary-only software, but anyway. < 1122149036 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: a mere question of taste, I suppose... I got used to that and I find gdb overcomplicated, that's all, I think < 1122149062 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: http://jonripley.com/~jon/mandelbrot.c < 1122149081 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Considering the amount of open-source developers, one would think there'd be some lower-level debuggers for the "rather common" linux/elf/x86 platform. < 1122149137 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but so far I've found no decent replacement for symdeb or hiew < 1122149239 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: real 0m5.131s < 1122149240 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :user 0m4.276s < 1122149240 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.003s < 1122149266 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Humm ... my benchmarks are way off of yours ... < 1122149274 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :(with -O3) which is pretty impressive < 1122149352 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: what machine? < 1122149362 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: nice :D but still far from optimal < 1122149366 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A 2.6gHz, but that's not it, they're in a totally different order. < 1122149371 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not just all faster. < 1122149422 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :what processor? this one is an athlon < 1122149506 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :30 seconds for even compiling that mandelbrot.c with gcc-3.3/-O3/1GHz-ppc. < 1122149515 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Pentium 4. < 1122149526 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah, compilation is a bit slow < 1122149532 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Also, I'm turing -O3 on bff into -O2 because that's totally cheating, and did -O2 on BRFD. < 1122149536 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Then 11 seconds to run it.) < 1122149545 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(BFF is still waaaaaaay faster mind you) < 1122149560 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :should be about .045s slower with -O2 on mine < 1122149586 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :but compilation is only done once and a program can be run 100s of times < 1122149590 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: that may be an indication of both processors handling optimizations differently < 1122149595 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :True. < 1122149603 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm having a halting problem with brfd ... < 1122149661 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :halting problem? is that because you're Turing -O3 into -O2? :P < 1122149699 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :brfd wasn't compiling with any -O for me ... < 1122149702 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I had to pass in -O2 < 1122149711 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait, it finished, but in 149 seconds. < 1122149740 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :One thing one could try is to compare "standard" -O3 with "-march=athlon-xp -O3" and/or "-march=pentium4 -O3". < 1122149815 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: you can override any CFLAGS setting using: make CFLAGS="-options" < 1122149833 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: good point, I'm not good at gcc optimization flags < 1122149838 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Umm, yes, I am a professional computer programmer, but thank you for explaining that to me. < 1122149863 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :er, sorry if I was too explicit for you < 1122149867 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :^_^ < 1122149916 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :there are so many people who don't know how to override make variables, despite they are programmers < 1122150217 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, I guess the only one that slowed for me was brfd, but I'm perplexed as to why >_> < 1122150263 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, bftools slowed for me as well. < 1122150269 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Both conveniently to the other side of egobfi :P < 1122150395 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, anybody have a last call for features to add to egobfi 0.2? < 1122150440 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: what are the current features? < 1122150455 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :those in README? < 1122150469 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1122150482 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :P'' support? < 1122150513 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm still fuzzy on P'' < 1122150516 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122150522 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how about 1-bit cells < 1122150547 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, that I could do. < 1122150566 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :With +- swapped for @? < 1122150591 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :some like +, I like @.. maybe both ? < 1122150619 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'll just translate +- into @ < 1122150695 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how will i/o be handled? there are two ways I know of. 1) a bit of i/o at a time. 2) 8 bits of i/o using 8 consecutive cells at once < 1122150718 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Let's make it an option! 8-D < 1122150754 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :speaking of that.. how is i/o handled for the 16 and 32 bit cases? just an 8 bit value? Or are you handling unicode? < 1122150784 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Just an 8-bit value. But wchar support isn't necessarily a bad idea ... < 1122150787 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not ATM however. < 1122150791 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1122151039 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :oh, and another request.. for the future would be some kind of esoapi / easel support < 1122151072 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :calamari: supporting easel/esoapi is the simplest to add < 1122151082 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I can't see to remember the name of the standard that those two were combined udner < 1122151089 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure what hard disk you want me to access however :-P < 1122151091 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :PESOIX < 1122151108 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :thanks :) < 1122151162 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hm.. 3 google hits, 2 from chat logs, 1 n/a < 1122151186 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :all: to add PESOIX (esoapi/easel) support you #include a header and change getchar to pesoix_getchar and putchar to pesoix_putchar < 1122151204 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I assume you need some libpesoix? < 1122151206 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :raven: is the pesoix spec on the web somewhere? < 1122151219 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :raven: nice :) < 1122151225 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :calamari: yeah, lemme check it's uptodate < 1122151246 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :maybe you have a robots.txt file or something? < 1122151267 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think this ONEBIT code is muddling up the rest of the code to much. < 1122151271 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :All these #ifdefs are nasty < 1122151281 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122151289 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :not a big deal < 1122151295 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sorry calamari, cancelling that feature :P < 1122151299 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :not a problem < 1122151308 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :calamari: http://jonripley.com/easel/ < 1122151332 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :pesoix is a better feature anyways < 1122151355 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :raven: why doesn't your site show up when I search for pesoix? < 1122151361 0 :graue!~graue@ip68-100-130-21.dc.dc.cox.net JOIN :#esoteric < 1122151372 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :calamari: it's an unlinked page < 1122151397 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, uhh, there's no actual code implemented yet? < 1122151445 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: of course there's code < 1122151476 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Where, I can't find it... < 1122151486 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :I never put it online < 1122151497 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's not particularly helpful 8-D < 1122151583 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :The current version is a little less functional than the last but the source code is hugely more maintainable < 1122151625 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :Life and other projects got in the way < 1122151665 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, better something than nothing, eh? < 1122151776 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :there, http://lilly.csoft.net/~jeffryj/programs/esoapi/esoapi.html you're linked so in the future \I can find PESOIX :) < 1122151788 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1122151830 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :under PESOIX I was thinking about making EsoAPI access a disk image rather than a physical volume < 1122151872 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION silently (well, not silently) cancels pesoix support in egobfi 0.2 < 1122151884 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why? < 1122151892 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION still doesn't see any code. < 1122151928 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to get the code into a reasonable state first < 1122151946 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :man busted 3/3 .. should start ignoring my feature suggestions hehe < 1122151949 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants to release egobfi 0.2, is impatient, and there's always a 0.3 < 1122152002 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :there's no point in PESOIX support atm, better to wait until I develop it further < 1122152015 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That's about what I thought :) < 1122152017 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :but knowing that other ppl will find it useful is a strong motivator < 1122152032 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :However, I am now looking into unicode support, CALAMARIIIIII < 1122152066 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Question: if I use wchar.h and getwchar, will it still support ASCII just fine? < 1122152084 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(And putwchar, presumably) < 1122152100 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :raven: worked on my game a little bit last night. Currently at 114 bytes, but not done with the engine :) < 1122152133 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hmm.. dunno < 1122152192 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :calamari: have 1006 bytes of game (unoptimised) and 1623 bytes of data, am working on a major functional improvement atm < 1122152231 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :engine is a lot better than the previous game but still in development < 1122152819 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :wchar needs 32-bit. < 1122152832 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how to test it, but AFAIK it works :P < 1122152945 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1122153211 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Now I'm trying to add a 64-bit mode, but make it only add it if int64_t exists. < 1122153245 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION hopes that -[-] is optimised < 1122153269 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :or [+] :) < 1122153416 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It is. < 1122153438 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :[+] isn't because it would be just another check for wrapping being on or off. < 1122153442 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If wrapping is on, [+] is while (1); < 1122153443 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1122153450 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, off rather. < 1122153472 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :oh, if wrapping is off, the values are just clamped? < 1122153485 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to incrementing the maximum value or decrementing 0 being an error? < 1122153497 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1122153501 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Why, is it standard to error? < 1122153509 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I thought it was standard to hold ... < 1122153518 0 :calamari!~calamari@dialup-4.240.114.212.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1122153527 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that was weird.. irc client just died < 1122153546 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I would have expected it to error, personally < 1122153574 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :that would take 3x2^64 instrcutions to before an infinite loop was noticable by which time most people may have grown old and died < 1122153592 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :*for +[+] on 64-bit terp < 1122153785 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :8-D < 1122153787 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :heh, it would take 1141 years on my CPU, assuming the interpreter was running in realtime and took 1 cycle to evaluate each instruction < 1122153802 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :that's a funny thought < 1122153985 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :w00t, got egobfi64 < 1122154029 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and [+] is now optimized :P < 1122154035 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :But not in nonwrapping mode. < 1122154042 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What I think is funny is to realize, that with a 2GHz cpu, cycle time is 0.5 ns, which means that during the time the thing calculates some basic operation, the light from my desk lamp moves 15 cm. < 1122154084 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wowsa. < 1122154139 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/egobfi-0.2.tar.bz2 < 1122154239 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, is there anybody who could upload this to www.esolangs.org ? < 1122154459 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I am doing so < 1122154513 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :you might want to reorder the ISBF() test in this order: +-><][., < 1122154535 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :according to the Spoon author, that is the order of frequency in which Brainfuck commands occur in the programs he surveyed < 1122154608 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's just baaaaaaaaarely off of that :P < 1122154637 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The groups are all int he right order, but each group was reversed except for +- < 1122154643 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: You should set the program array to the length of the input file to handle large programs < 1122154655 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: The program array expands. < 1122154672 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :CHKPSZ = make-sure-it's-long-enough-and-realloc-if-it's-not < 1122154700 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: ok, i'll try it with LostKingdomBFe later to see what happens < 1122154714 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I've already tried it, it works great. < 1122154720 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :sweet :) < 1122155384 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I can almost move pieces in my checkers game now :P < 1122155591 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what does egobfi stand for? < 1122155709 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I was going to name it gkrbfi, after my initials, but calamari said that was so egotistic I should name it egobfi. < 1122155710 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I did. < 1122155719 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So basically "the egotistic brainfuck interpreter" < 1122155735 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1122155843 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, here's a better benchmark for BrainFuck interpreters: how fast does it run a bf-in-bf interpreter running mandelbrot :P < 1122155866 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :and does yours beat qdb at that? < 1122155900 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I haven't tested it :P < 1122155913 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sadly, mine doesn't seem to beat qdb at anything but featurefullness. < 1122155948 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :huh? I thought you had pulled ahead at some point < 1122155986 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's sort of an every-other-test thing. < 1122156005 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So it's not 'beating' it so much as 'tying' < 1122156066 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GrEGOrR ;) < 1122156082 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Aha XD < 1122156091 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :but yeah, the ego thing too < 1122156162 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think if I optimized standard moves I'd jump FAR ahead. < 1122156195 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :whats a standard move? < 1122156251 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :[>>*x+<<*x-] < 1122156263 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or similarly [->>*x+<<*x] < 1122156273 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah, add-to loops < 1122156291 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I suppose that is indeed what it's doing. < 1122156340 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BUT, it works great for me, so I'm going back to checkers.b < 1122156356 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122156376 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :quick work on that interp.. very impressive < 1122156385 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty much one of the ops to look for in the next optimisation in my engine < 1122156475 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION states that it's not an interpreter < 1122156536 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, is there any other interpreter that actually makes wrapping etc options? I certainly haven't found one ... < 1122156565 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: pibfi < 1122156567 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I thought Chris's interp did that < 1122156576 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hehe :) < 1122156581 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :IIRC either the current or next version of Brainwash does < 1122156587 0 :cpressey!unknown@unknown.invalid PRIVMSG #esoteric :and it makes you install erlang, too < 1122156606 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh no < 1122156607 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the horror < 1122156620 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :not the dreaded erlang!! < 1122156657 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :? < 1122156786 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :back < 1122156904 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Grr, slightly off >_< < 1122156946 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm writing test scripts for the bf interpreter/compiler speed-test < 1122156999 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm feeling http://dict.leo.org/?schwindelig... that's annoying < 1122157203 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :YAAAAY! < 1122157205 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :My pieces move! < 1122157223 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :everything in my room moves < 1122157226 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :(it seems so) < 1122157291 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Heheh < 1122157314 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :wtf? aaargh < 1122157321 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :when does it stop! < 1122157350 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I suddenly felt like that two days ago while walking on the sidewalk alongside a busy road < 1122157358 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i didn't drink i didn't turned my desk-chair and i didn't programmed in whirl < 1122157379 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :maybe you have low blood sugar and must eat something < 1122157411 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: i watched tv and was eating chocolate for about 2h < 1122157491 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :maybe you need to move < 1122157556 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :maybe it's because the air in my room is bad < 1122157698 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :maybe you need to open a window? < 1122157736 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the first thing i did after i entered my room < 1122157770 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Maybe you need to close a window ;) < 1122157782 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :nah.. it's better now < 1122157961 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That outside air, it can be dangerous to you. < 1122157965 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I avoid it like the plague. < 1122158027 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Exactly! < 1122158073 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :@a[@x_0 i_0 @x_1 i_1 ... @x_n i_n @a], where at most one @x_n = a, and i_n=-1. Result a=0, x_n+=a*i_n < 1122158139 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Gwa? < 1122158173 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :trying to see what a generic add-to loop looks like < 1122158252 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :[-] is x_0=0, i_0=-1 < 1122158317 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :[>+<-] is x_0=1, i_0=+1, x_1=0 i_1=-1 < 1122158381 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I wasn't going to go in to quite that level of complexity *shrugs* < 1122158394 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah, might be too slow < 1122158418 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If optimizing the code takes more time than running the code, there's a problem :P < 1122158423 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :most people put the loop variable at the front or end < 1122158444 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :usually the end from what I've seen < 1122158455 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I exclusively put it at the end. < 1122158553 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :you probably already have situations where optimizing is taking longer than running.. for trivial programs < 1122158568 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :True < 1122158652 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wow, bff is really doing badly at factor.b ... < 1122158740 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Welcome to the halting problem, Gregor XD < 1122158885 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, qdb and egobfi are still in a dead heat XD < 1122159127 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :so much for the checkers program :P < 1122159275 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/checkers.b < 1122159314 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, seems to send it in HTML mode :P < 1122159344 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/checkers.b.txt < 1122159354 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :A big chunk at the top was autogenerated by simple-txt2bf.c < 1122159679 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :has simple-txt2bf.c been published? < 1122159699 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It's on the brainfuck archive, just a sec, lemme get a linki. < 1122159701 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :*link < 1122159717 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://esoteric.sange.fi/brainfuck/utils/simple-txt2bf.c < 1122160174 0 :calamari_!~calamari@dialup-4.240.108.198.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1122160410 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: textgen.java at http://lilly.csoft.net/~jeffryj/programs/bf/ is a good program for making BF program fragments to display strings < 1122160671 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm morally opposed to Java :P < 1122160792 0 :calamari!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1122161360 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1122161417 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm just being silly. < 1122161446 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Though I have no non-Free software, so if that doesn't work with gcj or jikes it's no good for me *shrugs* < 1122161599 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, that is a pretty awesome program. < 1122161610 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: textgen seems to work flawlessly with free software (jikes+gnu classpath+jamvm) < 1122161642 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm using Jikes + SableVM, works fine. < 1122161656 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(+ GNU Classpath, but who DOESN'T use GNU Classpath?) < 1122161700 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :kaffe used to have completely different library and the merge isn't 100% complete yet < 1122161807 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: anyways, it's very nice to hear that people use classpath. feel free to report all bugs you find :) < 1122161819 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :Hey, why do so few languages on the esolang wiki have a local copy of the external webpage? < 1122161894 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :Aardwolf: copy of the content of the page, or do you mean link? < 1122161915 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :I mean a copy in the preservation page < 1122161936 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :Aardwolf: the original page cannot be copied.. it would be a violation of copyright < 1122161952 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, archive.org seems to get away with it. < 1122161972 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :weren't they sued about a month ago? < 1122161980 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :They were? < 1122161995 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :They asked me if they could make a local copy of my page and I allowed it < 1122162017 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :then you gave permission < 1122162031 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1122162140 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Just for laffs I put the first four lines of the King James Bible in the genetic text generator :P < 1122162161 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Down to 7275 < 1122162187 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :http://yro.slashdot.org/article.pl?sid=05/07/13/0527236&tid=95&tid=17 < 1122162216 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :damn it, why doesn't C define a<>(-b) when b is negative? < 1122162223 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :that would be a lot more convenient < 1122162257 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :apparently 1<<(-1) produces -2147483648 on my machine < 1122162289 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :Harding Earley Follmer & Frailey should have used a robots.txt then, the dumbasses < 1122162302 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: #define shift(a,b) (((b)>0)?((a)<<(b)):((a)>>-(b))) ;) < 1122162314 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :If you read the full text of the complaint it's very funny and quite disturbing < 1122162351 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :Aardwolf: anyhow.. since we dont have an army of laywers, it's easier to just not include copyrighted stuff :) < 1122162372 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :haha yeah :) < 1122162408 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :Aardwolf, read the update, Harding Earley Follmer & Frailey are not the ones suing < 1122162414 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :(slashdot sucks) < 1122162421 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :yeah I just read it < 1122162467 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :AHAHAHA my CPU is overheating < 1122162653 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I'm glad you are so happy about that :) < 1122162931 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Seems like it may have bottomed out at 5282 < 1122162983 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :cool, my browser supports the monospaced Hangul font < 1122163123 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION toddles off to bed < 1122163125 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :nite peeps < 1122163176 0 :Aardwolf!unknown@unknown.invalid PRIVMSG #esoteric :gnite