< 1160352019 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so then this method cannot be used, and any while can only be broken by fully zeroing its variable < 1160352069 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1160352105 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Anyone who needs to use something more efficient sure as hell isn't going to be using our macros, anyways; one can be much more efficient with hand-coding. < 1160352134 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so SimonRC was right after all ;) < 1160352146 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, he's not. < 1160352171 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Handcoding in BFM, without using our generalised macros, can be just as efficient. ;) < 1160352209 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think the problem could be fixed using arrays, though < 1160352240 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Have you *seen* the code necessary for an array implementation in Brainfuck? < 1160352257 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if x and temp were parts of arrays of length 2, then there would be enough positioning < 1160352280 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i don't mean unbounded arrays, just a positioned array of predeclared variables < 1160352302 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That just defeats the idea of generalising the code. < 1160352414 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not necessarily, the macro would just work on a slightly different structure < 1160352443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so in a sense it wouldn't be a booland for single cells at all, but it could still be useful < 1160352480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, i suppose the current booland is well enough for when you do have single cells < 1160352497 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's good at what it does. ;) < 1160352559 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :any array based implementation would need moving to work for single cells, which defeats the purpose of avoid the zeroing out < 1160352579 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :*avoiding < 1160352665 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, i got derailed while trying to understand your mod code, back to that < 1160352728 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hahah. < 1160352757 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Might want to change it over to the current BFM build once you figure out why it doesn't work. < 1160353312 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, do you consider it necessary to zero out temp variables that aren't used? < 1160353449 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(on second thought, my idea to avoid that in one macro depends on the copy macro doing precisely that < 1160353453 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :) < 1160353491 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Temp variables are sort-of supposed to be used. . . < 1160353503 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If it's unused, then don' < 1160353510 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :t take the variable as an argument. < 1160353510 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1160353553 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what i mean is if the variable is sometimes used, but not always, like in divvar: temp1 and temp2 < 1160353594 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(if x is zero the while loop is never entered) < 1160353718 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160353745 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, one should clear your temp variables before running loops. . . < 1160353784 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Allows one to assume any temp variables are 0 after a macro call. ;) < 1160353805 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1160353837 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although set temp 0 is wholly superfluous < 1160354045 0 :kipple_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1160354343 0 :graue!n=graue@ip68-100-130-21.dc.dc.cox.net JOIN :#esoteric < 1160354420 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1160354427 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1160354428 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :'Lo. < 1160356275 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Do I smell a Wiki admin? < 1160356290 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Or is that just a Grue? < 1160356312 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A graue. < 1160356318 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION nods < 1160356340 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, through some careful experimentation, I have figured out how a pencil sharpener works. < 1160356354 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :As you know, outlets contain electricity. < 1160356366 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :And as you know, electricity is a liquid at room temperature. < 1160356390 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BZZT < 1160356423 0 :Arrogant!n=scotty@146.orlando-04-05rs.fl.dial-access.att.net JOIN :#esoteric < 1160356434 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Plugging in a pencil sharpener causes the electricity to flow through the wires, where some enzymes turn it into a chemical called PPS, or passive pencil sharpener. < 1160356453 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Also, pencils emit a chemical known simply as "pencil", < 1160356474 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wants some of what ihope's smoking < 1160356477 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Must be some good shit. < 1160356486 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1160356503 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :How'd you guess what I was smoking? < 1160356508 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Um, anyway. < 1160356558 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :The PPS reacts with the pencil to form a new chemical called APS, or active pencil sharpener. < 1160356582 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :This reaction also emits a sound best described as a loud sort of whirring. < 1160356629 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Finally, the APS reacts with the pencil itself, causing some of the wood to evaporate. < 1160356645 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :It does so in such a way to make the pencil sharp, for obvious reasons. < 1160356702 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :Now, the pencil sharpener in my biology classroom is so good that the PPS is actually blowing out of the pencil sharpener, so that if you put a pencil too close to it, the pencil becomes sharpened. < 1160356745 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bows < 1160356752 0 :ihope!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly remembers his homework < 1160356755 0 :ihope!unknown@unknown.invalid QUIT :"http://tunes.org/~nef/logs/esoteric/06.08.09" < 1160356777 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is shocked! < 1160356816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :all these years of advanced education and no one is telling me this! < 1160356867 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :instead of vainly trying to satisfy my curiosity i could have followed my true dream and become a fire constable < 1160356878 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sobs < 1160357080 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has satisfied himself that divvar works < 1160357108 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I did the same much more simply. < 1160357126 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I take it, though, that you're going through confirming that all of my macros are done well? < 1160357152 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :If so, let me just say that I greatly appreciate that. < 1160357157 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :just the pastebin left < 1160357163 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160357178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Still. . . :) < 1160357186 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, not all, only those included by that < 1160357209 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i suspect divvar is among the most complex... < 1160357219 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is *the* most complex. < 1160357263 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :copy works very, very simply. < 1160357299 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :>[-]>[-]<<[>+>+<<-]>[-<+>] is the code in full. < 1160357351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw, when you use both div and mod it might usually be a good idea to combine them < 1160357358 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1160357375 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I was *trying* to get the macro to work at all in the first place. < 1160357594 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've confirmed one thing: the bug is in my mod macro. < 1160357611 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unless you wish to argue that 25 % 50=233, that is. < 1160357836 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"For some values of %." < 1160357845 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: XD < 1160357847 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i have not analyzed it yet, but i have a sneaking feeling... < 1160357869 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :did you get the booland arguments in the right order? < 1160357876 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: My "analysis" method is "call the macro with arguments which we know the appropriate result for". ;) < 1160357899 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Indeed, I did. < 1160357935 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so the second argument is the result? < 1160357950 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in the mod macro definition i mean < 1160357976 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um. . . No, the first one. . . < 1160358001 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And booland stores the result in the first argument. . . < 1160358010 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :nope, second < 1160358046 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The only time booland touches the second one is to copy it into a temporary variable. < 1160358071 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :check again. < 1160358088 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The BFM version I'm testing this one predates the standardisation of input, output, temp. < 1160358091 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :note that x is the _second_ argument. < 1160358101 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh. < 1160358130 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've yet to port to the new version the currently-existing code of mine beyond stdlib. < 1160358138 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Task for class tomorrow. < 1160358506 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You know, other people can feel free to chime in on the sheer insanity of this. . . < 1160358528 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and then we'll beat them to a pulp. freely. < 1160358533 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. < 1160358624 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :macro beattopulp {person pointer} {result} {temp} {comment {I've not finished this yet.};copy person > pointer : temp;move pointer > result} < 1160359338 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Did subvar also previously take its result in the first argument? < 1160359455 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah! mystery solved < 1160359477 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :add result 2 should be addvar result v2 < 1160359515 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :* tmp1 < 1160359901 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How the *hell* did I mix that up? < 1160359960 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no idea. now to see if i can extract mod from the divvar calculation simultaneously < 1160359988 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now, I've got a different question. . . < 1160359994 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Why isn't itoa working now? < 1160360005 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1160360015 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is mod working? < 1160360026 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It is. < 1160360051 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :25%50 *is* 25, right? :p < 1160360062 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so i've heard < 1160360310 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :are the correct a1, a2, a3 calculated? < 1160360335 0 :GregorR-L!n=GregorR-@c-24-21-138-66.hsd1.mn.comcast.net JOIN :#esoteric < 1160360434 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ah. mod doesn't preserve its second argument. < 1160360537 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, there's the problem. :p < 1160360567 0 :Arrogant!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1160360824 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Bwahahah! < 1160360827 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(it works) < 1160360873 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's also horribly large and inefficient, but hell; I'm happy. < 1160360922 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Most of it's just large amounts of pointer movement, though. :/ < 1160361155 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now, I assume you'd like the new source. . . < 1160361246 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :http://pikhq.nonlogic.org/itoa.bfm < 1160361248 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :btw the last divvar is redundant < 1160361269 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Thanks. < 1160361290 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :1847 characters. . . < 1160361297 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That's one huge bit of code for itoa. < 1160361351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it should shorten a bit with a divmod macro < 1160361366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1160361388 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Even more if I just tidy up the usage of tmp vars in some places. < 1160361524 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... in divvar, if you move the last subtract temp1 1 up a bit then you can delete the others < 1160361576 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(+ the add) < 1160361902 0 :CXI!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160361902 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160361927 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now, right after the inner while temp1 {, add copy y > mod : temp3 ; subvar temp1 > mod : temp3 < 1160361951 0 :Sgeo!unknown@unknown.invalid QUIT :Connection timed out < 1160361960 0 :CXI!n=Sanity@c220-237-14-15.randw1.nsw.optusnet.com.au JOIN :#esoteric < 1160361962 0 :CakeProphet!n=CakeProp@h121.231.213.151.ip.alltel.net JOIN :#esoteric < 1160362035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and a set mod = 0 earlier. That should be enought to make it a divmod, i believe < 1160362138 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And, of course, add mod to the args list? :p < 1160362143 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1160362171 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not seeing what you mean about moving the subtract temp1 1. . . < 1160362381 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Odd. . . < 1160362396 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'll write it up < 1160362415 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Surely 51/25=2 remainder 1? < 1160362422 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :0:51|0|24|*0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| < 1160362426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1160362432 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :something wrong? < 1160362443 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Cell 0 is y, cell 1 is x, cell 2 is mod. . . < 1160362545 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is this the mod macro that seemed to work before? < 1160362582 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, it's divmod. < 1160362597 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . OH. < 1160362597 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the one i suggested? < 1160362606 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Innermost while temp1. XD < 1160362618 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1160362671 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now we've got it saying 51%25=25, and 51/25=0. < 1160362732 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :0:51|0|25|*0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0|0| < 1160362793 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok, take a look at http://home.nvg.org/~oerjan/divmodvar.bfm < 1160362804 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i haven't tested it, though < 1160362822 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Exactly what I've got. < 1160362878 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The bug is in subvar. < 1160362892 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :10-5!=251. < 1160362946 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. . . < 1160362962 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just did 10-5, not 5-10. XD < 1160363035 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, there is a bug in addvar < 1160363040 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :temp is not cleared < 1160363116 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160363149 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That didn't fix it, though. < 1160363171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however that cannot be the problem in divmod, because temp3 _is_ cleared. if you have exactly the same version as i < 1160363267 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I do. < 1160363353 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Somehow, we're managing to screw up the division ability of divvar without changing any of the actual variables except for one we added ourselves. . . < 1160363356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and are you using the newest stdlib? < 1160363363 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Currently, yes. < 1160363394 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, move x > temp wouldn't work. < 1160363426 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait. i just saw something. < 1160363471 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1160363479 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no. false alarm. < 1160363484 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1160363590 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, I found out *one* bit of the problem. . . < 1160363598 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :? < 1160363604 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*Without* our changes, it doesn't seem to work. < 1160363632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you mean there is something wrong with divvar from the start? < 1160363674 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1160363683 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Unless you argue that 25/51=0. < 1160363688 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Err. < 1160363692 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :51/25=0 < 1160363851 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is the new input/output/temp separation working properly? < 1160363875 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes. . . < 1160363878 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Hello. < 1160363885 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1160363923 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. Seems to work with divvar a > b : d e f g when a=5, b=11. . . < 1160363981 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But. . . Not for anything else?!? < 1160364000 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to give up. < 1160364048 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . Hrm. Maybe I was giving it the wrong bloody arguments. < 1160364052 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . Yup, I was. < 1160364106 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is it working anyhow? < 1160364107 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :divvar a > b : d e f g does b/a, not a/b. XD < 1160364110 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1160364113 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now to test divmod. < 1160364137 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cannot stand the suspense < 1160364194 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :YAY! < 1160364217 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does the happy dance < 1160364227 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :You know, if you guys used test-driven development, you would KNOW your code was going to work. < 1160364239 0 :graue!unknown@unknown.invalid PRIVMSG #esoteric :Silly 90s "good enough" programming techniques. Tsk. < 1160364298 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We're coding in Brainfuck. We are therefore insane. . . < 1160364367 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION prefers formal proof. in principle. < 1160364384 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Working on itoa? < 1160364439 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sort of. itoa is working, but using separate div and mod macros < 1160364456 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so now we have a divmod one. < 1160364456 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160364500 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Porting itoa to the new BFM. . . < 1160364513 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :And wondering how I broke stuff. < 1160364524 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm. i thought if an argument is both input and output then it counts as output, right? but bitnot isn't that way. < 1160364537 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. I see. < 1160364563 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand it seems silly to say bitnot > x < 1160364587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but then, maybe not. < 1160364601 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Let me get itoa working first. < 1160364714 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think bitnot is buggy, too. subtract x 1 should be add x 1 < 1160364732 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :because bitnot x = -1 - x < 1160364826 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :perhaps you meant boolnot < 1160364944 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :How should I call divmod in itoa, anyways? < 1160364962 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :divmod tmp > int a1 : tmp1 tmp2 tmp3 tmp4? < 1160364981 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sounds about right < 1160365024 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've discovered a bug somewhere. < 1160365104 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160365108 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Missed a line. < 1160365135 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :There we go. . . < 1160365430 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :1004 characters in itoa.b now. < 1160365456 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Could shrink it down a good deal more if it weren't uberparanoid about cell clearing. < 1160365487 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :But hell; I'm not in the mood to complain. < 1160365619 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :New BFM up, with itoa.bfm and divmod.bfm in stdlib. < 1160365638 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ideally you would want to keep a list of variables you knew were cleared... < 1160365649 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes. < 1160365683 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps it'd be best to set up something like that, and have the list cleared when someone starts using right and left (because then the interpreter doesn't know at all)? < 1160365740 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unless there was some declaration like at, for declaring which variables might have been touched < 1160365741 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric : I've been digging through my email and found an itoa that's 122 commands. By Oleg Mazonka with some tweaks from myself. < 1160365749 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :I bet we can do better, but that's a start anyway. < 1160365766 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . Damn. < 1160365832 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh. if you remove all instances of [-] from the output, what is its length then? < 1160365850 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :I'll dig through a little more and see if anyone's improved on it further yet. < 1160365854 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :119 I think. < 1160365871 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll check after I get it working without redundant cell clears. < 1160365877 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i meant pikhq's version < 1160365977 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it would be an indication how much of the size is due to that problem < 1160366192 0 :CXII!n=Sanity@c220-237-14-15.randw1.nsw.optusnet.com.au JOIN :#esoteric < 1160366195 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyhow, time to go to bed < 1160366201 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Bertram Felgenhauer did it in 89. < 1160366202 0 :oerjan!unknown@unknown.invalid QUIT :"ZZZZZZZZ" < 1160366339 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :About cell clearing...I'm not familiar with details of your thing, but when I looked at BFBASIC I noticed that it cleared all cells immediately before use...and that if it cleared all cells that might be nonzero immediately AFTER use, it would have produced shorter code... < 1160366362 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :so I would think about taking that approach. < 1160367098 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :808 characters. < 1160367131 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Our approach is now "set attempts to discover whether a cell has been touched at all". < 1160367182 0 :CXI!unknown@unknown.invalid QUIT :Connection timed out < 1160367253 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Given the is0 directive, we get 752 characters. < 1160367306 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We no longer need to feel guilty about excessive cell clearing. :) < 1160367340 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Grawr. < 1160367344 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Broke something. < 1160367619 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :I'm playing with Bertram's...he used the same basic idea I was thinking of, but he ended up using 3 cells per output digit, plus a constant. We can use one cell plus a constant without too much trouble, and I think without lengthening it tooo much. < 1160367914 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Fixed it. < 1160367926 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Forgot set var 10 is also valid. XD < 1160367950 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :773 characters. < 1160368113 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :770 characters (one tiny coding mistake). < 1160368301 0 :CXIII!n=Sanity@c220-237-14-15.randw1.nsw.optusnet.com.au JOIN :#esoteric < 1160368445 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :87. Let me play with it more. < 1160368547 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Hand it to me when you're done. . . < 1160368584 0 :CXIII!unknown@unknown.invalid NICK :CXI < 1160368668 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Sure. Actually this would have made a pretty decent golf. < 1160369327 0 :CXII!unknown@unknown.invalid QUIT :Connection timed out < 1160371046 0 :CXI!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160371046 0 :CakeProphet!unknown@unknown.invalid QUIT :Connection reset by peer < 1160371106 0 :CXI!n=Sanity@c220-237-14-15.randw1.nsw.optusnet.com.au JOIN :#esoteric < 1160371107 0 :CakeProphet!n=CakeProp@h121.231.213.151.ip.alltel.net JOIN :#esoteric < 1160371115 0 :CXI!unknown@unknown.invalid QUIT :Connection reset by peer < 1160371290 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160371350 0 :CakeProphet!n=CakeProp@h121.231.213.151.ip.alltel.net JOIN :#esoteric < 1160371720 0 :CakeProphet!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160371761 0 :CXI!n=Sanity@c220-237-14-15.randw1.nsw.optusnet.com.au JOIN :#esoteric < 1160371781 0 :CakeProphet!n=CakeProp@h121.231.213.151.ip.alltel.net JOIN :#esoteric < 1160371797 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1160372016 0 :ivan`!unknown@unknown.invalid QUIT :" HydraIRC -> http://www.hydrairc.com <-" < 1160372058 0 :graue!unknown@unknown.invalid QUIT :"Leaving" < 1160372283 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Still fiddling with this. Have you got a better way to add 48 to a cell than ++++++[>++++++++<-]? < 1160372365 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :I almost never use wrapping...wondering if it would save in this case. < 1160372402 0 :Eidolos!unknown@unknown.invalid PRIVMSG #esoteric :++++++[>++++++++<-] is the minimum. < 1160372765 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Okay, here's what I've got. You set it up so that there are three zeroes, then the integer to output, then plenty more zeroes. You set the pointer on the third zero. Then you do this. +[+++++++++>[<<+>-[>>>>]<[[>+<-]>>>+>]<<-]<[-]++++++[<++++++++>-]>>[<+>>]<<]<[.[-]<] < 1160373457 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :No, that's not the minimum--I just checked and apparently -[>+<-----]>---will work too. So for the whole thing we can do +[+++++++++>[<<+>-[>>>>]<[[>+<-]>>>+>]<<-]<[-]-[<+>-----]<--->>>[<+>>]<<]<[.[-]<] < 1160373494 0 :Eidolos!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, but that isn't portable. < 1160373548 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :...or better yet, +[+++++++++>[<<+>-[>>>>]<[[>+<-]>>>+>]<<-]<[-]-[<+>-----]>>[<+>>]<<]<[---.[-]<] < 1160373573 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Not entirely, no. < 1160374029 0 :anonfunc!n=pimaniac@adsl-67-121-235-143.dsl.chic01.pacbell.net JOIN :#esoteric < 1160374035 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :It looks like it will work with 8-bit cells, 16-bit cells...it would be very very slow with 32-bit cells, but should produce the right answer eventually. < 1160374079 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :64-bit or bignum interpreters, it'd be hopeless on. Likewise any that can't handle negative numbers because they're written in an environment that does not support integers natively, e.g. lambda calculus... < 1160374100 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :or one that tries to police absolute portability and purposely disallows negating a zero. < 1160374145 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :...but as this is for a project that assumes wrapping bytes, it should be fine. < 1160374152 0 :Eidolos!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1160376627 0 :anonfunc!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1160376772 0 :anonfunc!n=pimaniac@adsl-67-121-235-143.dsl.chic01.pacbell.net JOIN :#esoteric < 1160377934 0 :anonfunc!unknown@unknown.invalid QUIT : < 1160378295 0 :anonfunc!n=pimaniac@adsl-67-121-235-143.dsl.chic01.pacbell.net JOIN :#esoteric < 1160379452 0 :anonfunc!unknown@unknown.invalid QUIT : < 1160379592 0 :Arrogant!i=Scott@95.orlando-09-10rs.fl.dial-access.att.net JOIN :#esoteric < 1160380799 0 :clog!unknown@unknown.invalid QUIT :ended < 1160380800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1160381419 0 :GregorR-L!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1160384787 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1160384874 0 :CakeProphet!unknown@unknown.invalid NICK :notCakeProphet < 1160388935 0 :anonfunc!n=pimaniac@adsl-67-121-235-143.dsl.chic01.pacbell.net JOIN :#esoteric < 1160392208 0 :anonfunc!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160395710 0 :Azstal!n=asztal@cpc1-stkn2-0-0-cust919.midd.cable.ntl.com JOIN :#esoteric < 1160395712 0 :Azstal!unknown@unknown.invalid NICK :Asztal < 1160399430 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1160401337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now here is something for the practical minded of us: http://en.wikipedia.org/wiki/Chind%C5%8Dgu < 1160401524 0 :notCakeProphet!unknown@unknown.invalid NICK :CakeProphet < 1160402001 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :NEVER!!! < 1160402011 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1160402073 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Be practically minded. < 1160402096 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :dbc: How many cells of memory does it use? < 1160402100 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :actually i meant that in a sort of backward way < 1160402119 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :unpractically minded, even < 1160402119 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . ARGH. < 1160402167 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Not all the loops can be converted over to variables, and therefore it won't be made over into BFM. . . < 1160402198 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the positioning trap again? < 1160402206 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yup. < 1160402222 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :dbc: So, thanks, but we can't really use it. :'( < 1160402453 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we could if we used array parameters... < 1160402589 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :On the bright side, we no longer get redundant cell clearing in our code. :) < 1160402886 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :how does the redundancy check work inside while loops? < 1160403092 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The while loop, at the very end of the loop, adds the variable it operated on (unless it's "while current") to the list of cleared cells. . . < 1160403170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and at the beginning does it empty the list? < 1160403173 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise, it works exactly the same (if it touches a variable, it removes it from the list, if it clears a variable, it gets added to the list). . . < 1160403188 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :No, the list is only emptied for right and left. < 1160403238 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is a problem there, in that if a variable is touched inside a list it needs to be removed at the beginning of the while as well < 1160403282 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Um, no. . . The list of cleared cells is global, not scope-dependant. < 1160403334 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :consider set x 0; while y { ... ; set x 1 } < 1160403347 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :inside ... you cannot assume x cleared < 1160403348 0 :jix!n=jix@L60e2.l.strato-dslnet.de JOIN :#esoteric < 1160403395 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We get x added to the list of cleared cells, and *once* x has been operated on by "set x 1", it's removed from the list. < 1160403414 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We *can* assume x has been cleared, because nothing has touched it. ;) < 1160403430 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wait a moment. let me clarify. < 1160403443 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :consider set x 0; while y { set x 0 ; ... ; set x 1 } < 1160403457 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then the second set x 0 cannot be removed < 1160403522 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Why not? The last time anything operated on x was a cell-clearing operation. . . < 1160403529 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION *really* isn't seeing your point < 1160403605 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it cannot be removed the second time the while loop is run < 1160403624 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. . . < 1160403650 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I can see how that could be a bug. < 1160403774 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps add an "isnot0" command to be able to prod the compiler into compliance? < 1160403909 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, if we don't want to do a flow analysis ... < 1160403918 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think is0 is more useful < 1160404039 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let's see. have a stack of cleared and touched lists. < 1160404080 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :at the beginning of a while, push new, empty ones. use the is0 directive to add cleared ones explicitly. < 1160404131 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :at the end of a while, merge the top two sets < 1160404243 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :at the end, a variable will be cleared if it was cleared before and not touched at the end inside < 1160404268 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but touched if it was touched either before or at the end inside < 1160404355 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if neither, then it will be on neither list < 1160404387 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :this should be a useful approximation without requiring backtracking < 1160404478 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could have an is0 list too, to check consistency < 1160404630 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or you could do backtracking to move information back to the beginning of the while < 1160404644 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :then you could avoid is0 < 1160404656 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but it would of course be even more complicated < 1160404800 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i can imagine a two-pass solution, where you use set x 0 instead of is0 x < 1160404801 0 :lindi-_!n=lindi@kulho150.adsl.netsonic.fi JOIN :#esoteric < 1160404859 0 :lindi-!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1160404966 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the first pass would keep track of which while bodies clear and touch which variables < 1160405006 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the second pass would use that to remove redundant clears < 1160405141 0 :lindi-_!unknown@unknown.invalid NICK :lindi- < 1160405165 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but this solution would require some way of tracking code positions < 1160405279 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i think a solution with stacks of cleared, touched, and is0 lists could be a compromise. you would then need to declare with is0, but the declarations would be checked for correctness, and all in one pass < 1160406827 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it suddenly occurred to me that redundant clearing is just a special case of redundant while loops. < 1160407351 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, isnot0 (or rather maybenot0) could be useful too, provided it triggered a promise that no other variables in the while loop would be touched < 1160410099 0 :tgwizard!n=tgwizard@c-cb3de155.178-1-64736c10.cust.bredbandsbolaget.se JOIN :#esoteric < 1160410354 0 :GregorR-W!n=gregor@jffwprtest.jf.intel.com JOIN :#esoteric < 1160411055 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :... and in other news, another looney nation has The Bomb: http://news.bbc.co.uk/1/hi/world/asia-pacific/6033457.stm < 1160412631 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :fantastic < 1160412686 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the real question, however, is not wether they can make *one*, it's wether they can make a million. That was the entire point of the Manhattan project in the U.S. < 1160412768 0 :kipple_!n=kipple@167.80-202-102.nextgentel.com JOIN :#esoteric < 1160413498 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :kipple_: hi < 1160413546 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey, kipple. < 1160414853 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: The joys of having a second coder look at my code. :) < 1160414881 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'll probably implement one of those, and get a command line parser running, sometime this afternoon. < 1160414917 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Probably have a command line option to stop the redundant clear checking, just to confirm that that's not what's breaking the code. < 1160414924 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(if it breaks) < 1160415446 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :we'll see :) < 1160415928 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :For now, though, I'll just have is0 and isnot0. < 1160416197 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1160416262 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: hi < 1160416487 0 :Sgeo!unknown@unknown.invalid QUIT :"Ex-Chat" < 1160416530 0 :Sgeo!n=Sgeo@ool-18bf61f7.dyn.optonline.net JOIN :#esoteric < 1160417423 0 :Azstal!n=asztal@cpc1-stkn2-0-0-cust919.midd.cable.ntl.com JOIN :#esoteric < 1160417933 0 :Asztal!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1160418629 0 :oerjan!unknown@unknown.invalid QUIT :"later" < 1160419121 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :So...hm. The problem is that that itoa can't be decomposed into BFM macros or something? < 1160419700 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just not yours. < 1160419738 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I've *got* an itoa in BFM; it's part of stdlib now. < 1160419751 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The problem is that *yours* cannot be used with the variable system. < 1160420590 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Because it uses a variable amount of memor? < 1160420863 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :(Note I said "that THAT itoa can't be decomposed", not "that no itoa can be decomposed") < 1160420978 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Ah. < 1160420985 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :dbc: Yeah. < 1160421035 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :We can't even guarantee that the memory you're working with is a contiguous block. . . Much less guarantee that your code won't go out of the block assigned. < 1160421836 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :Have you implemented anything Turing-complete in BFM? < 1160421849 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :(Just to prove it's possible) < 1160421854 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :BFM? < 1160421921 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :BFM is distributed with brainfucktobfm. < 1160421973 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :It's *possible* for your itoa to work. . . It just wouldn't work *as a macro in BFM*, because the macros in BFM are supposed to be a bit. . . generalised. < 1160423156 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :That's going to make it very hard to do things efficiently. Because it pretty much means you can't use nondestructive flow control. < 1160423164 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :(in a macro) < 1160423225 0 :dbc!unknown@unknown.invalid PRIVMSG #esoteric :What's divmod look like when turned into brainfuck? < 1160423365 0 :GregorR-W!unknown@unknown.invalid NICK :GregorR-L < 1160423388 0 :GregorR-L!unknown@unknown.invalid NICK :GregorR-W < 1160426700 0 :ihope!n=foo@c-71-205-100-59.hsd1.mi.comcast.net JOIN :#esoteric < 1160426871 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1160430207 0 :Azstal!unknown@unknown.invalid QUIT :"Chatzilla 0.9.72-rdmsoft [XULRunner 1.8.1b2/0000000000]" < 1160430268 0 :ihope!unknown@unknown.invalid QUIT :"http://tunes.org/~nef/logs/esoteric/06.08.09" < 1160431019 0 :|wez|!n=jkaslskj@158.38.24.133 JOIN :#esoteric < 1160433360 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :dbc: 179 characters. < 1160433453 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Although that can change depending on the relative placement of cells in memory. < 1160434706 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :171 now. < 1160434941 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :The latest divmod gives us a 24 character decrease in itoa size. < 1160435457 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :. . . Wow. Now, uncompress.bfm, when compiled, differs from uncompress.strip.b in 4 characters. . . Those 4 are part of a comment block in uncompress.strip.b. . . < 1160435538 0 :GregorR-W!unknown@unknown.invalid PRIVMSG #esoteric :Hahah < 1160435621 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to bed. < 1160435907 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1160436590 0 :tgwizard!unknown@unknown.invalid QUIT :"Leaving" < 1160437125 0 :Asztal!n=asztal@cpc1-stkn2-0-0-cust919.midd.cable.ntl.com JOIN :#esoteric