< 1110505648 0 :kipple!unknown@unknown.invalid PART #esoteric :? < 1110508223 0 :heatsink!~heatsink@1106-wstoughton.halo.soltec.net JOIN :#esoteric < 1110511669 0 :ChanServ!unknown@unknown.invalid QUIT :Killed by alindeman () < 1110511670 0 :ChanServ!ChanServ@services. JOIN :#esoteric < 1110511670 0 :irc.freenode.net!unknown@unknown.invalid MODE #esoteric :+o ChanServ < 1110513148 0 :calamari!~calamari@dialup-4.240.247.217.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1110513154 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1110513169 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :hullo < 1110513180 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :how's it going? < 1110513226 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :got some custom wrappers up and running for EsoAPI and Easel < 1110513234 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1110513241 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that was fast! < 1110513250 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :your textgen.java came in handy < 1110513261 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah, doesn't it? :) < 1110513271 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :the PESOIX interface is pretty much complete, EsoAPI emulation is ready < 1110513284 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :wish I knew of an algorithm that was provably optimal, but that one comes decently close < 1110513292 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :and I'm just integrating Easel into the new source tree < 1110513312 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :it beat my best algorithm by 30 bytes < 1110513339 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :it gets beaten by other algorithms in certain cases < 1110513357 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :after the string gets long enough they all tend to even out tho < 1110513364 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :at the moment you are only calculating one hash table at the very start < 1110513389 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah.. the hash table has a high cost involved < 1110513396 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :if you reach a character where you have a large string of +++ or --- you should think about generating another hash table < 1110513492 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :it seems like there should be a mathematical way to get the same results that it takes textgen so long to find < 1110513508 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :ahh well :) < 1110513551 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :http://jonripley.com/easel/api.txt has the current draft API < 1110513577 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to add a bunch of useful mathematical functions that are a bit difficult to do in BF < 1110513641 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :and it's now 99.999% backwards compaitble, it only breaks on old programs that send the init code as the first output < 1110513654 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :which is none of them AFAIK < 1110513769 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :how's BFBasic coming along? < 1110513774 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I'd tend toward things that BF could not do on it's own.. seems less like cheating that way :) < 1110513804 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :coming along? I haven't worked on that code in years :) < 1110513813 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i know, the main thing I wanted was file I/O and access to environment variables < 1110513814 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1110513868 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :another thing lacking is being able to fork < 1110513882 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :haven't checked your spec if you included that :) < 1110513884 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :the cheating stuff will be made available for lazy people < 1110513894 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :no, fork is not something i have played with < 1110513915 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :or if not fork, at least a way to run another app < 1110513959 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :there will be a system call that you can use to run other apps < 1110513963 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :currently the only way to do it is by emulating the new app with a BFI type wrapper.. very ugly! < 1110514055 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :the main nightmare is going to be unbuffered input as each system does it differently < 1110514064 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1110514083 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :chris pressey put tsome effort into solving that a while back.. pibfi I think it was called < 1110514090 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :there's some good GPL code out there I can steal < 1110514105 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :one feature I'd love to have is keyboard scanning < 1110514127 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :with that you could write arcade games < 1110514146 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :it's no fun if the space invaders wait for you to press a key < 1110514264 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i'm planning to add the ability to include a configurable text parser aswell < 1110514290 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :that can be done with plain bf < 1110514386 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :hmmm, the code is a bit complex if you are dealing with a large set of valid input < 1110514446 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :and the execution time would be beyond most people's patience < 1110514625 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :haha.. assembling a program with the BF bfasm binary already takes too long.. part of the fun of it! ;) < 1110514847 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :I can't believe that you actually managed to bootstrap BFASM < 1110515013 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :It was just a matter of writing BFASM in very simplistic C code that I could convert to BFASM < 1110515081 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if gcc could be targeed to produce bfasm. That would be interesting but I dread to think though how much code that stdio alone would require. < 1110515096 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I originally looked into gcc < 1110515125 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I oculdn't figure it out! < 1110515188 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :although, I think it could be made to generate bfasm code < 1110515325 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :would definitely need pesoix to implement stdio < 1110515388 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :possibly would require a specific PESOIX-C dialect implenting the standard C library < 1110515406 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :for simplicity Easel may not be C complete < 1110515442 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :thats okay.. "bf complete" is good enough for me :) < 1110515451 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :there are too many things that it doesn't seem to make sense to implemrnt < 1110515455 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric ::) Ook! < 1110515731 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :it should be possible to recompile pure BF into ultra-efficient bytecode for nextgen interpreters < 1110515848 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :dunno about ultra efficient :) < 1110515891 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Hiya < 1110515899 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi arke < 1110515905 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :hi arke < 1110515952 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :75%-90% reduction of code is achievable atm < 1110516032 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :I wrote a VM for my TI-83 and then I also wrote an optimizing BrainFuck compiler for it < 1110516041 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :(all of this in TI-BASIC, an esoteric language on its own!) < 1110516056 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Did all sorts of optimization < 1110516074 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :As I thought of more things to optimize, I thought of more raw opcodes for the VM < 1110516093 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, the calculator went berserk on me and so I lost it < 1110516094 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1110516100 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :aww that sucks < 1110516120 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Yeah < 1110516144 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :The original one was a direct BF->VM translation, and a simple program would take several minutes < 1110516158 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :it was satisfying to see, as i went along, that it went down to several seconds < 1110516175 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :an orthoganal RISC instruction set should be possible, with only a few opcodes required < 1110516318 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Some of the opcodes were ADDV (+-), ADDP (<>), JZ ([), JNZ (]), IN (,), OUT (.) < 1110516330 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :then I added CLR ([-]) < 1110516355 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :and I had SET and MOV to and from a temporary VM register < 1110516373 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :so I had a pattern matching thing (HELL to do in TI-BASIC, took me several hundreds of lines ;)) < 1110516385 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :which would detect [<+>-] and some variations < 1110516390 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :and translated that into it < 1110516406 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Took me a month of school classes to do this < 1110516406 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i have things like, mzero [offset], add [+/- offset,] [#+/- number] < 1110516417 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1110516422 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :I was so pissed off when I lost it < 1110516423 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1110516445 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i can imagine < 1110516513 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :never did finish putting bf on this hp41cx .. blah < 1110516542 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :atm i'm working on finding equivalent code and moving it to seperate functions < 1110516565 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i feel like i'm writing a compression algorithm < 1110516607 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :sounds like you're on the right track then ;) < 1110516622 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1110516638 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :Ooh, if I ever get a TI-89 I have to implement it there < 1110516649 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :becuase it supports subroutines < 1110516653 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :which would make life SOOOO much easier < 1110516653 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1110516667 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :I wrote some slow ones for the ti82 and hp48 < 1110516688 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i wrote space invaders for mine before it was burgled < 1110516722 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :in TI-BASIC? ;) < 1110516726 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :that must have been _slow_ < 1110516746 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :also for the casio cfx-9800g although it is not able to print characters , just numbers < 1110516765 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :especially as the aliens were circles :) < 1110516774 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :so you have to interpret the ascii to know if it printed hello world correctly < 1110516784 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1110516822 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :that was over a decade ago < 1110516835 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1110516838 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :i feel so young < 1110516838 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1110516867 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :a decade ago I was playing with QBasc, routinely crashing the beta copy of Windows 95 my dad got with it < 1110516894 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :yeah.. I hink it was 1996 when I first played with a ti82.. programming it was the reason I failed my hs calc 1 class < 1110516951 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i used to hate geography so much my teacher let me go play in the computer room instead < 1110516961 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1110516965 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :still passed it somehow tho < 1110517002 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :those were the days < 1110517026 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1110517030 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :when an 8Mhz computer was considered top of the line kit < 1110517054 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :and i was stuck with a 2Mz machine and a tape deck for my programs < 1110517054 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1110517064 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :I remember my dad getting his new computer at the time < 1110517075 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :program for the 2600, can still enjoy that era < 1110517085 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :"This is a Pentium 90! This is a HUGE step up from that 486! Can you imagine how smooth Doom would run on this!?) < 1110517093 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :my college tutor felt so sorry for me he gave me a disk drive :) < 1110517123 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i remember you when you had to wait for windows 2.1 to cache the font encoding for each character as you typed it < 1110517137 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1110517161 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :windows? blah.. dos 3.30 is all you need < 1110517182 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :dos? nah c/pm :) < 1110517196 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i'd have loved to be at MIT in the late fifties < 1110517215 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :DOS? cp/m? Why, in my time we would manually flip the bits on the terminal to make our operating system every time we wanted to use the computer < 1110517219 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric : < 1110517225 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :{^Raven^}: yeah :) < 1110517235 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :and now I leave, installing new linux, yay < 1110517237 0 :arke!unknown@unknown.invalid PRIVMSG #esoteric :ACTION afk < 1110517248 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :when you would just rewire the processor on when the techno-mages weren't looking to add a new instruction < 1110517310 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i can't imagine writing programs using a hole punch these days < 1110517383 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :weren't the holes square? < 1110517410 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :before my time afaik < 1110517446 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :OH NO, HANGING CHADS CAUSED THE PRESIDENT TO GET -(2^12) VOTES! < 1110517470 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.uiowa.edu/~jones/cards/collection/i-program.html < 1110517550 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :while some say that many voters intended to cast -256 votes for the president, others say that confusing punch cards are to blame for the error. < 1110517684 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :-(2^12) is -4096 so definately some computing errors there < 1110517737 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :reminds me when i spent an hour trying to convince an information technology college tutor that 1Kb is 1024 bytes and not 1000 < 1110517770 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :5:10 am and time for bed methinks < 1110517774 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1110517777 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :goodnight. < 1110517781 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :especially when i have to be up in 2 hours < 1110517796 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :well, it'll be easier to get up than if you had gotten five hours of sleep. < 1110517802 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :night heatsink, calamari < 1110517815 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :i prefer 9-5 the wrong way round < 1110517821 0 :heatsink!unknown@unknown.invalid PRIVMSG #esoteric :^_^ < 1110517877 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :but as a programmer 24hr takeaway and inreavenous coffee and just taking occasional naps on a 48hr+/-RND(48hr) cycle would suit me < 1110517901 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :cya raven < 1110517906 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :nite < 1110517916 0 :{^Raven^}!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is in bed < 1110523991 0 :calamari!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1110524276 0 :heatsink!unknown@unknown.invalid QUIT :"Leaving" < 1110526791 0 :calamari!~calamari@dialup-4.240.242.178.Dial1.Phoenix1.Level3.net JOIN :#esoteric < 1110527129 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1110527999 0 :clog!unknown@unknown.invalid QUIT :ended < 1110528000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1110538561 0 :kipple!~Rune@163.80-202-100.nextgentel.com JOIN :#esoteric < 1110545087 0 :mtve!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1110549252 0 :mtve!mtve@mtve.vm.jvds.com JOIN :#esoteric < 1110562433 0 :Keymaker!~nobody@wire74.adsl.netsonic.fi JOIN :#esoteric < 1110562453 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :stegnography is cool! wow! < 1110565185 0 :kipple!unknown@unknown.invalid PRIVMSG #esoteric :The whitespace language is nice for steganography :) < 1110565193 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1110565299 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :grr.. i've written this thue-morse sequence program three times.. on two first times i didn't realize simple mistake. now i must do it yet again.. :) hopefully now i'm succesful < 1110565322 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :(the third version works, but not exactly as supposed to..) < 1110565572 0 :Keymaker!unknown@unknown.invalid PRIVMSG #esoteric :hmm, must go. < 1110565573 0 :Keymaker!unknown@unknown.invalid QUIT :