< 1122163427 0 :Aardwolf!unknown@unknown.invalid QUIT :"Leaving" < 1122163646 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :5114 < 1122163649 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :COME ON, BREAK 5000!!! < 1122164097 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :so it's already complete and working? < 1122164236 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Huh? < 1122164366 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what are you talking about? < 1122164375 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :you're shrinking the size of your checkers program, right? < 1122164550 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my bf interpreter/compiler test-suite-scripts are done < 1122164580 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it runs on a 99% cpu idle box with nice -20 < 1122164591 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :400mhz intel celeren < 1122164593 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :celeron < 1122164606 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :now name interpreters / compilers to add! < 1122164614 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Heheh. < 1122164624 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :No, I'm compressing the first 5 lines of the King James Bible. < 1122164627 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not for any good reason. < 1122164654 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :jix: egobfi :P < 1122164658 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :jix: qdb < 1122164676 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :jix: bff, bftools, brfd, yabfi2 < 1122164729 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :afbi is the only interpreter i added atm < 1122164738 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to add the other ones < 1122164741 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And the only one I haven't listed :P < 1122164752 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: hmm do you know afbi? < 1122164774 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Not personally, would you mind introducing us? ;) < 1122164782 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the interpreter < 1122164787 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I know. < 1122164801 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://www.harderweb.de/jix/langs/brainfuck/afbi.c < 1122164816 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i wrote it for pgimeno's brainfuck interpreter speed-test < 1122164836 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's faster than brfd on ppc but slower on pgimeno's computer < 1122165034 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1122165037 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION compares it to egobfi < 1122165250 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It would appear that I'm afbi-incompetent >_> < 1122165328 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :When I run it against mandelbrot.b, it drags my CPU into the mud and doesn't seem to do anything ... < 1122165332 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait, it segfaulted. < 1122165357 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is perplexed. < 1122165493 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hrmg < 1122165531 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :afbi has some problems with reallocating and computed gotos < 1122165810 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I assume Mandelbrot works for you? < 1122165879 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: obi2, wib, pibfi, awib < 1122165910 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: this javascript interpreter: http://www.esolangs.org/svn/esofiles/brainfuck/impl/di.html < 1122165931 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Umm, isn't wib a compiler? < 1122165935 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And awib? < 1122165943 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or was he looking for compilers? < 1122165952 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: this longer javascript interpreter: http://www.esolangs.org/svn/esofiles/brainfuck/impl/i.html < 1122165976 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :jix: If you do test both, please clearly mark them - obviously compilers will generally be faster. < 1122166001 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: this interpreter in ORK: http://www.esolangs.org/files/ork/src/orkfuck.ork < 1122166018 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: this interpreter in Kipple: http://www.esolangs.org/files/kipple/src/bfi.k < 1122166046 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I can't believe I didn't mention orkfuck XD < 1122166080 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: i will mark them < 1122166094 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OK, good :) < 1122166121 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm interpreters with program/input in one file arn't supported yet < 1122166133 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uhm... they are.. < 1122166145 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i have InterpreterSetup.prepare < 1122166457 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BTW jix, what are your tests? < 1122166475 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :helloworld & mandelbrot atm < 1122166479 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i'm going to add more < 1122166487 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I would recommend adding primes-up-to-200. < 1122166503 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Merely because for some inexplicable reason, egobfi beats qdb with it, but not with mandelbrot :P < 1122166612 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :for compilers, you could also produce a second series of results, with the time taken to compile factored in < 1122166643 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: i could.. if i rewrite my whole test-code < 1122166657 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :just a thought < 1122166658 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :OH! And also, you should be VERY careful to compile all the compilers with the same optimizations. < 1122166673 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Some will default to -O3, some will default to -O0, they should all use -O2 for fairness. < 1122166673 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: and interpreters too < 1122166682 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, s/compilers/interpreters/ < 1122166683 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :all -O3 or? < 1122166689 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :-O3 breaks some things. < 1122166692 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1122166694 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So I'd lean towards -O2. < 1122166704 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1122166707 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Most things don't break with -O2. < 1122166715 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :is egobfi default -O2? < 1122166721 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yes < 1122166742 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :make sure you compile Erlang, Ruby, and the JavaScript interpreter you use with -O2 as well < 1122166845 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122166862 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :If there's any interpreted interpreter that's actually FASTER than a C interpreter, I will be blown away. < 1122166911 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :optimizing interpreted interpreter vs unoptimized c interpreter? < 1122166934 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmmmmmmmmmmmmmmmm, then it might get close. < 1122166942 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I guess it would depend on the interpreter of the interpreter. < 1122166990 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :theres a bug in my test-code < 1122167013 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :See, nobody's seen it yet, so you didn't need to tell anybody, and we would have never thought you were capable of writing bugs ;) < 1122167224 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if i run the command manually it works < 1122167229 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but from the script it doesnt < 1122167251 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :What's the command, what's the language, how are you calling it? < 1122167322 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's ruby i use system and the command is nice -n -20 sudo -u jannis time -o /tmp/to -f "%e  %S" ./qdb /home/jannis/interpretertest/b/helloworld.b > /home/jannis/interpretertest/b/helloworld.out.cmp 2>/dev/null < 1122167333 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uhh %U where underline starts < 1122167376 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, for one, there's no reason to run it through sudo, that will only effect the real time, not the user/system time (which are the only valuable ones) < 1122167390 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It may be that sudo wants a password there, and can't possibly get one. < 1122167397 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: nonono < 1122167406 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i start the script as root because i want to nice it < 1122167408 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, nice rather. < 1122167418 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, I meant "there's no reason to nice it there" < 1122167418 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i don't want the interpreter as root < 1122167422 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1122167442 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Because nice would only effect real time, which is irrelevent, it's user/sys time that are important, and they're unaffected by nice. < 1122167516 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :same problem < 1122167532 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Today on #esoteric, Gregor solves nothing! < 1122167533 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but only qdb fails egobfi doesn't < 1122167574 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I would continue to try to help diagnose, but I've actually got to go. < 1122167585 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So, I'll see y'all later, hope to see some interesting results at some point ^_^ < 1122167600 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :later < 1122167637 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :/usr/bin/time: cannot run ./qdb: No such file or directory wtf? < 1122167669 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It could be that your script silently chdir'd somewhere, I would try using a full path. < 1122167680 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :(or worse, the interpreter silently chdir'd somewhere) < 1122167684 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ahh found the bug < 1122167694 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :no the interpreter may chdir anywhere < 1122167700 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm chdiring back at the end < 1122167712 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Incidentally, I'm not here 8-D < 1122167713 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i used always the dir of the first interpreter for all interpreters < 1122168037 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fixed < 1122168328 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :bff added < 1122168529 0 :calamari_!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: whats the current size? :) < 1122168903 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :g'night < 1122168972 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1122170366 0 :calamari_!unknown@unknown.invalid QUIT :"Leaving" < 1122171457 0 :kipple___!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1122184459 0 :graue!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1122184648 0 :cmeme!unknown@unknown.invalid QUIT :Connection timed out < 1122184677 0 :cmeme!~cmeme@216.184.11.2 JOIN :#esoteric < 1122191999 0 :clog!unknown@unknown.invalid QUIT :ended < 1122192000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1122192382 0 :ChanServ!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192382 0 :pgimeno!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192382 0 :{^Raven^}!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192383 0 :CXI!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192383 0 :mtve!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192384 0 :GregorR!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192384 0 :lament!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122192405 0 :ChanServ!ChanServ@services. JOIN :#esoteric < 1122192405 0 :irc.freenode.net!unknown@unknown.invalid MODE #esoteric :+o ChanServ < 1122192407 0 :{^Raven^}!~{^Raven^}@82-38-204-252.cable.ubr05.shef.blueyonder.co.uk JOIN :#esoteric < 1122192407 0 :CXI!Sanity@dialup-158.88.221.203.acc50-kent-syd.comindico.com.au JOIN :#esoteric < 1122192407 0 :mtve!mtve@mtve.vm.jvds.com JOIN :#esoteric < 1122192431 0 :GregorR!~GregorR@c-24-21-138-66.hsd1.or.comcast.net JOIN :#esoteric < 1122192431 0 :lament!~lament@S010600110999ad06.vc.shawcable.net JOIN :#esoteric < 1122194770 0 :pgimeno!pgimeno@124.Red-80-59-211.pooles.rima-tde.net JOIN :#esoteric < 1122196817 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, I either just made egobfi mind-blowingly slow, or I just broke it. < 1122197377 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :YES YES YES YES YES!!!!!!!!!!!!!!!!!!! < 1122197385 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :egobfi pulls WAAAAAAAAAY ahead!!! < 1122197495 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Damn bff, how the hell does it do it?! < 1122198855 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Just got add-to optimization, checking if it's actually helpful :P < 1122198914 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wow, that was much much worse. < 1122206633 0 :jix!jix@p5489BAD8.dip.t-dialin.net JOIN :#esoteric < 1122206677 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :moin < 1122211668 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :brfd fails on hello world < 1122211680 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't output the last newline < 1122211906 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :should i strip all leading \n? < 1122212961 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: brfd fails on hello world < 1122217663 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i have to include compile time because awib needs 4 mins cpu time to compile mandelbrot but only 49secs to execute it < 1122218417 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pfoo added compile times < 1122218461 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if compile times are < 0.1 seconds they don't show up < 1122218494 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and they aren't as exact as the execution times < 1122218504 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and no one listens to me :'( < 1122218740 0 :mtve!unknown@unknown.invalid PRIVMSG #esoteric :yep, we're just reading. < 1122219492 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1122219580 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fixed some bugs < 1122219783 0 :ZeroOne!unknown@unknown.invalid QUIT :Ping timeout: 14400 seconds < 1122220169 0 :fizzie!unknown@unknown.invalid QUIT :"muutto" < 1122220815 0 :cmeme!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122220815 0 :puzzlet!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122220815 0 :lindi-!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1122220962 0 :cmeme!~cmeme@216.184.11.2 JOIN :#esoteric < 1122220962 0 :puzzlet!~puzzlet@61.247.147.84 JOIN :#esoteric < 1122220962 0 :lindi-!~lindi@kulho150.adsl.netsonic.fi JOIN :#esoteric < 1122223073 0 :fizzie!fis@st6-104.tky.hut.fi JOIN :#esoteric < 1122223118 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: fails in what sense? the parser is a bit quirky, I guess < 1122223182 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I wrote it before I knew about any established standard < 1122224112 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :in the helloworld example the newline is missing < 1122224134 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and i'm not going to include interpreters that need more than 10 minutes for mandelbrot < 1122224139 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :obi2.rb is at 40minutes < 1122224174 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :killed < 1122224177 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :what helloworld? < 1122224244 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Brainfuck#Hello_World.21 < 1122224276 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: include in what? < 1122224292 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: in my brainfuck interpreter/compiler speed test < 1122224309 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: you are doing one? great! < 1122224325 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: please put the results online < 1122224340 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: what's the fastest so far? < 1122224342 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: the first test run is still running < 1122224355 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and it's just a test test run < 1122224360 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1122224412 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :oh and if obi2.rb fails it's because i killed it < 1122224413 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :jix: it's because of the parser; the ! is the frontier between code and input < 1122224435 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: thanks < 1122224439 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to fix that < 1122224470 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i commented out print("Optimizing") and print.... because they ignored -Q < 1122224489 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1122224508 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :well, the optimizing run.c was not ready for release :) < 1122224616 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the non optimizing one was at 6mins for mandelbrot (i have top running during the tests which takes ALWAYS 0.3%cpu) maybe it needs more than 10min < 1122224730 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it was 4:31 on my machine < 1122224741 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I'm not good at optimizing C code, though < 1122224750 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :so doesn't bff run on your box? < 1122224767 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm not testing on my main computer < 1122224773 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :(too many processes running) < 1122224787 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but on a 400mhz intel celeron computer with ~300mb ram < 1122224807 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oh, I guess that bff runs properly there < 1122224816 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it does < 1122224893 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ahh no! < 1122224909 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :there is a bug < 1122224919 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :mandelbrot can't be completed in 0secs < 1122224947 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and yes slow brfd is too slow < 1122224975 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah i forgot to activate output validation for mandelbrot < 1122224991 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :hm, bff gives a couple of warnings with valgrind < 1122225010 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :bff is the fastest interpreter here < 1122225035 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :egobfi the slowest with no fail < 1122225059 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :you said it doesn't run on your mac or am I wrong? < 1122225089 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :bff? < 1122225105 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes doesn't run here < 1122225115 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :mandelbrot validation is on < 1122225276 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :need to find the bug < 1122225290 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :in bff? < 1122225295 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :no in my test script < 1122225297 0 :BigZaphod!unknown@unknown.invalid QUIT : < 1122225298 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1122225319 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's impossible to calculate mandelbrot in <0m0.0005s < 1122225336 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :guess so < 1122225356 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ok with c it's possible < 1122225362 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but not with brainfuck!? < 1122225405 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it depends on how optimizing is the optimizer :P < 1122225440 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :compilers writtin in bf are now self bootstrapped < 1122225586 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the testbox has 0k swap used < 1122225601 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :291mb ram free < 1122225650 0 :ZeroOne_!~vsaalo@130.233.41.50 JOIN :#esoteric < 1122226512 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the fastest way to bootstrap awib with a bootstrapped wib... wib awib.b => awib.c;gcc awib.c => awib_wib;awib_wib awib.b => awib < 1122227858 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Wowsa. < 1122228117 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :UAHRG < 1122228121 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :time output: Command exited with non-zero status 42 < 1122228136 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :Command is as float.. 0 exited is as float 0 with is as float 0 < 1122228495 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fixed all bugs running a new test < 1122228509 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :/away < 1122230141 0 :graue!~graue@ip68-100-135-226.dc.dc.cox.net JOIN :#esoteric < 1122230231 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :bff doesn't work for me, it seems to either crash or inexplicably print wrong things forever < 1122230369 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :valgrind reports a few errors < 1122230496 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I've taken a quick glance but couldn't find what's wrong < 1122230561 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm apparently incapable of implementing add-to loop optimization in such a way that it's actually better :P < 1122230572 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I've tried two schemes now. < 1122230618 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Both very simple because I don't actually care :P < 1122230856 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :it's easy, but complicated and possibly time-consuming < 1122230919 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :implement an intermediate language with a command ADD_MEM(M,N) where M is a signed integer and N is an integer with the range of the integers you're using for each cell, that adds N to the cell M cells forward from the current location of the memory pointer < 1122230935 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :then add a command ADD_PTR(M) where M is a signed integer, that moves the memory pointer M cells forward < 1122230980 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :whenever you see any string of only ><+-, reduce it to at most one ADD_PTR and at most one ADD_MEM for each M < 1122230997 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :then, if a loop contains only the ADD_MEM command, you can reduce it to a series of multiplications < 1122231008 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :http://www.harderweb.de/jix/langs/brainfuck/result2.txt < 1122231085 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: hey that's what my compiler is going to do < 1122231197 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :graue: That's precisely what I did < 1122231198 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :if you add a PUTCHAR(N) command you can also optimize strings containing . < 1122231218 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :GregorR, have you tried it on something that takes much longer to run than to parse/optimize? < 1122231228 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I used mandelbrot.b < 1122231551 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :....... < 1122231559 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I just made a change that ought to have made it more optimal, and yet it's slower ... < 1122231572 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what change? < 1122231610 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: egobfi is #8 in the test < 1122231617 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :#6 with out compilers < 1122231622 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :jix: you need to add more programs < 1122231629 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: yes i know < 1122231630 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :hello world is trivial and mandelbrot is just one example < 1122231641 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: it's my first complete test < 1122231647 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hello World would throw most optimizers waaay below. < 1122231653 0 :sp3tt!~chatzilla@lite-148-133.umenet.net JOIN :#esoteric < 1122231666 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I did the check to make sure that it had parsed as much as would be needed for an add-to loop in the main function instead of the add-to function. < 1122231672 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That should have saved a function call and been faster. < 1122231676 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Instead it was slower. < 1122231676 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :graue: all other tests had some bugs in my test scripts < 1122231705 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :jix: BTW, 0.3 is quite a bit faster. < 1122231724 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Someone needs to implement RPN in brainfuck... <.< < 1122231772 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure there's an RPN calculator in BF ... < 1122231928 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :http://lancelot.pecquet.org/download/soft/rpn.html#Brainfuck teh pain! < 1122231956 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :lol... Compare the BF version to the C version... < 1122232309 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :http://gregorr.homelinux.org/egobfi-0.3.tar.bz2 < now fassssssssster, still powerfullllllllllllller. < 1122232711 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: that runs mandelbrot.b in 26 seconds on pentium@2.8GHz. if i compile mandelbrot.b with BF2C.c and gcc it runs in 2.9 seconds < 1122232725 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :how long does the compilation take? < 1122232761 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: gcc runs for 6 seconds < 1122232800 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :so, is there any point in writing interpreters? ;) < 1122232818 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is writing a compiler < 1122232869 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Har har har. < 1122232873 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Yukk it up :P < 1122232884 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :lindi-, how long does BF2C run? < 1122232912 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: hard to measure, less than 0.004 seconds < 1122232921 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :whoa < 1122232923 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION writes a compiler backend for egobfi :P < 1122232940 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I guess BF2C does no optimizations whatsoever? < 1122232945 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :jix: GregorR: we should all just start optimizing gcc's optimizer :) < 1122232949 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: true < 1122232976 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :then every gcc user would benefit too < 1122232976 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :where is BF2C, I don't have it < 1122232988 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :esoteric.sange.fi/brainfuck/impl/compilers/BF2C.c < 1122233026 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :heh, I wrote something like this before :) < 1122233160 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :how fast is it if you do the gcc compilation with -O0? < 1122233237 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: then gcc runs for 1.0 seconds and mandelbrot runs for 22 seconds < 1122233263 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :-O1 is 1.7 and 3.0 < 1122233297 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :and -O3 is 11 and 2.9 < 1122233396 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :so even on -O0 it beats egobfi, heh < 1122233424 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :yes, barely < 1122233471 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :-O2 and gcc from cvs 2005-07-20 produces a binary that runs in 2.6 seconds ;) < 1122233535 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :i think it's going to be hard to beat that < 1122233537 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :so -O1 gets the best results, if compilation time is counted < 1122233556 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: yep < 1122233648 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: but if i changed that mandelbrot to use higher resolution then -O2 would be better < 1122233672 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :cause it would not affect compilation time but it would affect running time < 1122233831 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :graue: http://iki.fi/lindi/mandelbrot.asm has disassembly of the created binary < 1122234286 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Darn, egobfc only gets it down to 5sec. < 1122234298 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :However, it supports unicode and any-size characters :) < 1122234522 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :gcc seems to optimize multiple +'s < 1122234561 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, that makes my optimization of multiple +s suboptimal. < 1122234562 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :i mean > < 1122234585 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, that makes my optimization of multiple >s suboptimal. < 1122234632 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :With gcc -O2, the actual compilation of mandelbrot.c is quite slow. < 1122234640 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Is that also the case with bf2c? < 1122234670 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :yes, see above < 1122234682 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't read *shrugs* < 1122234701 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :So it's possible that compile b-c + compile c-bin + run is still slower than interpreting. < 1122234725 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1122234754 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, I'm off, I'll release egobfc later when I've knocked out some bugs. < 1122234845 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :see you later then < 1122234903 0 :graue!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1122234953 0 :graue!~graue@ip68-100-135-226.dc.dc.cox.net JOIN :#esoteric < 1122235458 0 :_graue_!~graue@ip68-100-130-21.dc.dc.cox.net JOIN :#esoteric < 1122235564 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :what about a JIT interpreter? < 1122235662 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i've got some ideas based on the assumption that a BF interpreter is actually a virtual machine < 1122235688 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :there's some useful emulator techniques that would be handy for a BF-VM < 1122235695 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: why not just use gij? < 1122235781 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't that imply Java?, that would give a VM running on a VM running on a RM < 1122235790 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :too many VMs spoil the speed < 1122235836 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :dynamic recompiling? jit compiling? < 1122235845 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :vm's often jit compile < 1122235853 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :emulators often dynrecompile < 1122235890 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :dynamic recompiling is a special form of jit compiling < 1122235916 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :it would preferably need to be host platform independant < 1122235935 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uhm thats impossible < 1122235942 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :yeah i know < 1122235946 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :without calling gcc < 1122235979 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: not really, python can be compiled to the same bytecode too, so why not brainfuck? < 1122236002 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :lindi-: gij is not in my area of expertise < 1122236009 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :brainfuck can be compiled to machine code.. that's faster < 1122236125 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :a interpreter/VM/emu could store the compiled code in a cache, meaning that a program would only need to be compiled once < 1122236139 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :using the compiled code from the cache on subsequent runs < 1122236200 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :that could be a shell script that caches results to ~/.bf-cache :) < 1122236261 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :or %APPDATA% or Choices: depending on OS < 1122236369 0 :graue!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1122236389 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Why not write a brainfuck module for gcc or some other compiler? < 1122236396 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I mean, that removes some overhead. < 1122236413 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :good idea < 1122236419 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't know how to < 1122236433 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't be that difficult < 1122236485 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Imagine the overkill of getting the dragon book for that. < 1122236494 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :dragon book? < 1122236525 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1122236557 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Compiler book with a dragon on the cover. < 1122236686 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :IMHO we need a good intermediate language to compile through < 1122236718 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :C is one :) < 1122236775 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :no, before C, straight BF>C is non-optimal even after run-length encoding < 1122236811 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :unless you know something i don't :) < 1122236821 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure what you mean :/ < 1122236844 0 :lindi-!unknown@unknown.invalid PRIVMSG #esoteric :you want lower or higher level than C? < 1122236881 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i want high level than straight BF>C < 1122236893 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :*higher < 1122236901 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: thats what my bf2c compiler does < 1122236916 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :jix: link? < 1122236952 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: myharddisk://under.dev.el/opement < 1122236971 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :not ready and the intermediate language is still growing < 1122236978 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and the only output language atm is ruby < 1122236982 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122237082 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i am working on a compiler here, not much dev-time though < 1122237100 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :idea is to reduce the number of instructions in a BF program to as few as possible < 1122237193 0 :_graue_!unknown@unknown.invalid NICK :graue < 1122237199 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :mine outputs to BF, C, C(ommented), BBC BASIC and pure object code < 1122237682 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :purely an exercise atm rather than a releasable tool < 1122237957 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :jix: i'd like to see what you've got < 1122238339 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm still writing the top framework no optimizations yet < 1122238686 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :modulo math.. 0o < 1122238710 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Easier than RPN. < 1122238718 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :rpn is easy < 1122238726 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Exactly. < 1122238730 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I learned about it today. < 1122238736 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i love rpn < 1122238744 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i use it on my calculator < 1122238745 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Wrote an infix-> RPN. < 1122238752 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and no it's not a hp calc < 1122238756 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :And a 12 line RPN-calculator. < 1122238761 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sp3tt: pha.. i do that in my head < 1122238765 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I want an RPN calculator < 1122238774 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :gimme an infix expression and i output rpn < 1122238775 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :jix: so? < 1122238780 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1122238812 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Imagine my math teacher's face. < 1122238822 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1122238830 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to write my next math test using base -9 < 1122238835 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :"But this is gibberish" "You don't know RPN?" "No, wtf is that?" "N00B!" < 1122238845 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Base... negative 9? < 1122238846 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :no one ever said that i have to use base 10 < 1122238847 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :o.0 < 1122238853 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sp3tt: yes no need for a sign < 1122238853 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Good one. < 1122238879 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :How about binary? Or is that too easy. < 1122238884 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :of course i write a converter base 10 <=> -9 for my calculaotr < 1122238891 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Probably... base 3 is hard. < 1122238894 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sp3tt: my teacher has a computer no problem to convert < 1122238901 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Well, not hard. < 1122238904 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and there are programs for any positive base < 1122238912 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :No base is hard. < 1122238914 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but no programs for negative bases < 1122238926 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :It's just that some are more confusing. < 1122238939 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I love to count in binary with my fingers though. Especially 4. < 1122238951 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :10 is in -9 => 181 < 1122238961 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sp3tt: *g* < 1122238983 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :That is just... painful. < 1122238995 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :-9 is in -9 => 10 < 1122239002 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :-8 is in -9 => 11 < 1122239013 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :9 is in -9 180 < 1122239014 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I like that < 1122239014 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :-9 + 81 + -81*9? < 1122239035 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uhm ? < 1122239049 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I follow the logic of negative bases. < 1122239050 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :181 == 1*81 + 8*-9 + 1*1 < 1122239071 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :1*(-9)^2 + 8*(-9)^1 + 1*(-9)^0 < 1122239075 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :just like positive bases < 1122239097 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Ah yeah... < 1122239109 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :the rightmost digit counts 1 the 2nd digit counts base the 3rd digit counts base square... < 1122239121 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Forgot that... < 1122239123 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :<.< < 1122239129 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Beat me with a stick. < 1122239141 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :sp3tt: too much brainfuck programming? < 1122239144 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Nah. < 1122239151 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Not done any of that for a while. < 1122239177 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :I'm not forgetting Latin conjugations and declinations at least :) < 1122239190 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :who needs latin... < 1122239200 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Study Latin in one's free time. Can it get geekier? < 1122239216 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Don't know. < 1122239218 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i don't like latin < 1122239221 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :But it is fun to know. < 1122239237 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :japanese or russian would be cool < 1122239239 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Because insulting people in a language they cannot grasp is hilarious. < 1122239253 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :My father once got in a car accident in Portugal. < 1122239267 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :Well, not accident, but some Portuguese idiot reversed into his cars. < 1122239282 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and...? < 1122239288 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :And the Portuguse started shouting in Portuguese. < 1122239304 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :And he told them to stfu and called them mofos in Swedish XD < 1122239321 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1122239339 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :They shouted "Calma, calma!" < 1122239358 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :Calma? < 1122239368 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :"Calm down" or something to that effect. < 1122239384 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1122239385 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :AFK, movie's on again. < 1122239388 0 :sp3tt!unknown@unknown.invalid PRIVMSG #esoteric :The Godfather :) < 1122240318 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :argh modulo math < 1122240425 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :val-(c*e) === 0 (mod 256) i know c and want a rule for getting e if i know val < 1122240443 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :uh val+(c*e) < 1122240575 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if c is 1 then e === val (mod 256) < 1122240601 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if c is 2 there is only a solution if val === 0 (mod 2) < 1122240626 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but for all odd c there is a solution for all val < 1122240632 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i know that because of brute-forcing < 1122240724 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :I suppose this will be 8-bit with wrapping only? < 1122240763 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :will you optimize exponentiation and tetration < 1122240764 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :? < 1122240819 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i want to optimize all loops that don't contain other loops or input output < 1122240934 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :will you optimize recursively, e.g. [[[[[[-]]]]]] (for a trivial example)? < 1122240944 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes but only trivial examples < 1122240954 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1122240966 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :is this because you have decided that nontrivial cases of that cannot be optimized? < 1122240978 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :because i optimize '['*n + bla + ']'*n < 1122240990 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :an that's trivial < 1122241024 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what about [+>>-<<->>+[+>>-<<->>+[+>>-<<->>+[+>>-<<->>+[+>>-<<->>+[-]+>>-<<->>+]+>>-<<->>+]+>>-<<->>+]+>>-<<->>+]+>>-<<->>+]? < 1122241042 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :oh wait, I got that wrong < 1122241049 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :but what I mean is, you're not naive about it, right? < 1122241059 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hn? < 1122241077 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i would probably optimize [+>>-<<->>+[-]+>>-<<->>+] < 1122241078 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :i.e., if it's effectively such a trivial example, will you hndle it? < 1122241080 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1122241111 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but i'm at the code for handling non-moving non-nested non-io loops < 1122241123 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ie multiplication / naive-divide < 1122241130 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :move < 1122241138 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :copy < 1122241143 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and combinations of that < 1122241175 0 :BigZaphod!~BigZaphod@64-198-85-243.ip.mcleodusa.net JOIN :#esoteric < 1122241187 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and that's where i need a solution for that modulo equation < 1122241742 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :my newest optimization [-]++ => cell=2 (and things like that) < 1122241767 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :still not done with the move/mul/div optimization < 1122241987 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :do you also optimize by removing any instructions prior to a [-] that modify only that cell? < 1122242081 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes that too < 1122242089 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but [-]++ could be e = 0 ; e+=2 < 1122242096 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i output e=2 < 1122242125 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122242177 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i do some bf-space o11s ( [odd number of + or -] => z ; delete <>|><|+-|-+ and + or - in front of z) < 1122242197 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and some o11s within the loop tree < 1122242230 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :++>+<- => p[0]+=1 p[1]+=1 < 1122242248 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :what's an oll? < 1122242252 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and even ++>[-]<->+<- => p[1]=1 < 1122242262 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :its o-eleven-s optimisations < 1122242266 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1122242269 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :optimizations < 1122242295 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :like i18n < 1122242304 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :and a10y, yes < 1122242324 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :a10y? < 1122242329 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :or maybe a11y < 1122242331 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :accessibility < 1122242375 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i don't remember them.. and i only use them if i wrote the whole word at least once < 1122242433 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :BFCode.new("++>[-]<->+<-").gencode => [[:set, 1, 1]] < 1122243301 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :fixed some bugs < 1122243302 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :and now: < 1122243303 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :e = BFCode.new("[>++<[-]>-<+>-<]").gencode => [[:inf_loop]] < 1122244280 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :when i'm done i have 3 optimization stages < 1122244350 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :1 that works on the brainfuck source 1 that does the bf-tree => intermediate-lang and 1 that removes dead code from the intermediate-lang < 1122245673 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Here's a question ... < 1122245686 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Would it be a speed improvement to write the BF code to a void * memory array and then call that as a function? < 1122245694 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Err, write machine code, but from BF, obviously. < 1122245730 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1122245759 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hmmmmmmmmm. < 1122245777 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it would be TOO difficult ... < 1122245784 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It would be totally architecture-dependent of course. < 1122245792 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :that's like jit compiling < 1122245810 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Oh, yes it is. < 1122245814 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :lol, didn't occur to me. < 1122245866 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :if you compile all loops as soon as they get executed it's real jit compiling if you always translate the next n instructions it's dynamic recompiling < 1122245910 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :And cache said loops I assume *shrugs* < 1122245973 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :While I think that if I really wanted to, I could probably write something like that, I'm still not going to :P < 1122246481 0 :heatsink!~heatsink@c-24-61-94-111.hsd1.nh.comcast.net JOIN :#esoteric < 1122247984 0 :sp3tt!unknown@unknown.invalid QUIT :Client Quit < 1122249160 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i'm done with the modulo math < 1122249179 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :good ol'paper and pencil