< 1228089651 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, now it at least works on the empty screen. < 1228089655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now let's try a glider.... < 1228089679 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well there's a glider, but it takes ages to reach it, not the fastest impl there it :) < 1228089696 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's quite visually pleasing imo < 1228089702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :happy december < 1228089713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: use http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck.php it has fat animation < 1228089713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :set ms = 0 < 1228089714 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :old news < 1228089716 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and origin top left < 1228089743 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: failing that ill try it in the java interp < 1228089940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :flumrgh, it didn't wurk :) < 1228089961 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: :{ y not < 1228089978 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :because i suck < 1228089985 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :tru < 1228090332 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :HUGE performance improvement: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php < 1228090352 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :Asztal: thanks :) < 1228090424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :woo < 1228090432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh jesus lord < 1228090435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is INSANELY FAST < 1228090438 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for ms=0 < 1228090441 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: you are a god < 1228090469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: my god, blink and its finished execution < 1228090469 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :well, the merit is yours and Asztal's :) < 1228090476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but seriously < 1228090477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that is insane < 1228090490 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it does 200 steps per animation frame < 1228090501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1228090501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: well < 1228090506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the problem with that is that you miss out on the juicy bits < 1228090510 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe make that configuratble? < 1228090513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should just be a few lines < 1228090523 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking of that, but wanted to show you :) < 1228090530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1228090564 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :Langton's ant now takes just a few seconds to escape at 128x128 < 1228090609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: also, you should default to black = background < 1228090609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228090612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like everyone else < 1228090669 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1228090672 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :try your gol on this!! < 1228090673 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really fast < 1228090691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if it works now < 1228090718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: set dimensions = 1000,1000, origin=topleft, animation step=0, put it in and animate < 1228090721 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric := best interp yet < 1228090734 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the web is white! :P < 1228090748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: so is the flash interp, but the GRID is black background < 1228090748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228090752 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and everyone says white/black < 1228090754 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay i think it works now < 1228090755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's just confusing < 1228090775 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i can't test a glider in the exe < 1228090802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: haha, try whee! < 1228090805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its still slow < 1228090810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(http://forums.tigsource.com/index.php?topic=3710.msg110154#msg110154) < 1228090879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: the main problem with your 200-per is that t he display is jerky < 1228090879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1228090887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can't see the head if it's a bouncing-ball type thing < 1228090893 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so i think that configurable that would be good < 1228091073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: heh, your interp is quite unusable now: you can't see programs running < 1228091075 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it's so fast < 1228091081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :needs some of that configuring ;) < 1228091084 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :JJusutst a anonotthheerr brbraiainnffuucckk hahcackkeerr < 1228091090 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :weave does brainfork < 1228091090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1228091212 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :okay, reload < 1228091244 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay it may work now. < 1228091250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1228091253 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea because it shows two generations :) < 1228091265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i made a glider, and it's not dying, not sure if it's working though. < 1228091272 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: does it totally redraw each time? < 1228091277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if so that's silly just redraw what needs redrawing < 1228091281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: using pgimeno's? < 1228091288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah the php < 1228091314 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, that's on the browser, it draws on every pixel change < 1228091323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: set ms = 0, iterations = 500 < 1228091325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and animate < 1228091328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :should go really fast < 1228091382 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: this one: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php < 1228091391 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the -canvas one < 1228091397 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*[[en*w]*s[nw*s]*e[ws*e]*n[se*n]*w] <- someone on the forums posted this. BOXWORLD! < 1228091562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... it might be working, but it's definitely not pretty. < 1228091571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: :{ < 1228091574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pastie.org the code < 1228091575 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :should've done it like oerjan suggested < 1228091609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can http://www.vjn.fi/pb/p244563523.txt the code, don't know about pastieing < 1228091611 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*pastying < 1228091655 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the problem is showing two iterations at once, it simply doesn't look good. < 1228091664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and makes it quite hard to tell whether that's even working. < 1228091677 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: also it's dog slow < 1228091678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228091692 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's true < 1228091742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :reaaaaaaaaaally slow < 1228091742 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1228091747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you should make it migrate an entire region at a time < 1228091748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XD < 1228091760 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whaddya mean < 1228091778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like < 1228091784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a glider goes straight to the next glider step < 1228091788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it goes on to the rest of the grid < 1228091946 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay there's a bug. < 1228091948 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228091961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea what you mean, unless you mean what you said, which you cannot have meant < 1228091972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: as in < 1228091974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if there's a glider there < 1228091977 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :make the glider go on to the next glider iteration < 1228091980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway if you change the first four lines to < 1228091981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then calculate all the rest of the grid < 1228091981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*[ss*]* < 1228091981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :eeeeeeeeeeessssssssss < 1228091981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ee*ee*wwww < 1228091981 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wwwwwwwwwwwnnnnnnnnnn < 1228091991 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a row of three < 1228091999 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you can clearly see it do one correct iteration < 1228092004 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then fail on the next iteration < 1228092004 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah but < 1228092006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it takes 5 years. < 1228092006 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228092029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah that canvas thing is much too slow for this < 1228092050 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hard to get much faster < 1228092053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thats the fastest interp so far < 1228092054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but oklopol < 1228092058 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :put up the iterations per animation < 1228092059 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to like 2000 < 1228092061 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and delay=0 < 1228092087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does that do some kind of optimization? < 1228092224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it makes it do 2000 iterations per animation < 1228092228 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and not wait per animation < 1228092236 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean < 1228092240 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :does that interpreter do < 1228092271 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: wow, even if it does not seem to be working properly I'm impressed (and no, the interpreter doesn't optimize, except it has a jumps table) < 1228092327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure it works now, had just a minor bug < 1228092346 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :clicky? < 1228092354 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(forgot i need to forget the old values at some point, and an error naturally occurs due to this only on the second iteration) < 1228092363 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is it safe to say that the sort of person in this channel is the sort who has no need to cheat on exams/ < 1228092377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: why? < 1228092390 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I had to cheat on history exams :P < 1228092405 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :On my economics exam, the professor left the room for a few minutes, and I hear everyone asking things like "For 5, what did you get?", things like that < 1228092431 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228092475 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i was recently the only one to score a 5/5 in one exam, i think it'd be a bit counterproductive to ask people what they answer :P < 1228092488 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, lol, same here < 1228092505 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :There were two questions I was clueless about < 1228092511 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :But I would NEVER consider cheating < 1228092523 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we usually have 4 questions, if you don't know the answer to 2, you fail. < 1228092536 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :50 question exam < 1228092543 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228092544 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okily < 1228092579 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have nothing against cheating. < 1228092582 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: can I see the fixed version? < 1228092584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheating is pretty cool. < 1228092594 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: yes, not that i'm sure it still works ;) < 1228092634 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p533314231.txt < 1228092638 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that seems to work < 1228092645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a row of 3 blobs < 1228092659 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :goes vertical - horizontal - vertical ... < 1228092696 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(the last cycle's value is in the bottom-left of a 2x2 square, current is in top-right.) < 1228092713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :would probably be clearer if they were like next to each other or if the squares were bigger or something < 1228092728 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, it'd take me quite a while to do even a trivial change, because that's all manually done. < 1228092735 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(thought it'd be a lot shorter) < 1228092773 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :great! < 1228092774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you want to know what the flicker is all about, the top-left thingie is the current cell being modified < 1228092787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the one on bottom-right is where the counrer ends < 1228092789 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*counter < 1228092803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the four flickering lights are the negations of the counter's cells < 1228092816 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(makes the logic to check what happens to current cell clearer) < 1228092864 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :what about the glider? < 1228092901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that gets very confusing, i didn't check whether it works :D < 1228092910 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i can try, after this other test i'm doing now < 1228093008 0 :adimit!unknown@unknown.invalid PART #esoteric :? < 1228093023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1228093025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :glider works < 1228093048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :bye adimit < 1228093058 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :whoa < 1228093120 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whoa at gol? < 1228093152 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228093182 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :if you cleared the cells done it would be great too < 1228093197 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean < 1228093209 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err, the last values? < 1228093212 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah hmm err indeed < 1228093220 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could do that, i just need the last row < 1228093231 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :lol i never even thought of that:D < 1228093240 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*that :D < 1228093251 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228093265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :let's see... this should be trivial < 1228093329 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :done < 1228093332 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1228093336 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i code for 4 hours < 1228093361 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and you fix everything in a second < 1228093421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p422562455.txt <<< because of the change, there's now a piece of code there that doesn't do anything. < 1228093426 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just in case someone wants a challenge < 1228093429 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :you who? < 1228093431 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1228093443 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn, it's trivial to find it, i've commented that code. < 1228093446 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: you < 1228093463 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1228093466 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :look, it's pretty now. < 1228093497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... < 1228093499 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :> Weave and brainfork conventions can be used together. That is, multiple initial threads can be started using semicolons, and embedded Y's can cause further forking. < 1228093505 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wonder what happens when it hits the border... < 1228093509 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :pew-pew-pew < 1228093522 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/User:JayCampbell/weave.rb < 1228093530 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :for the record, the second version of langton's ant took me about 3 hours < 1228093599 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm. wonder how long it took me to do 110 < 1228093638 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yay, so cool now :) < 1228093645 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :btw that crashes completely when the glider hits the border :P < 1228093657 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's langton's and again < 1228093669 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the ant is somewhere, and it turns right or left depending on current cell < 1228093675 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and flips it if something. < 1228093685 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*langton's ant < 1228093727 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :there's a current direction, turn left and if 0, turn right if 1, flip and advance < 1228093735 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :s/and// < 1228093786 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :always flip? < 1228093790 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228093796 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty neat < 1228093815 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now i almost feel like making that in pf... :D < 1228093819 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :the second version fills the whole 2x2 square < 1228093823 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how long was yours again? ;) < 1228093830 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(the code) < 1228093831 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :which is what makes it notable < 1228093843 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, what do you mean? < 1228093844 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :err, remarkable < 1228093874 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :try and see: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nonhollow.pfk < 1228093881 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :grr < 1228093892 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :try and see: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nothollow.pfk < 1228093927 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so < 1228093932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228093935 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the current cell < 1228093944 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :stores the direction, it's not completely black, right < 1228093950 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1228093955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait.. < 1228093961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah i think you need that. < 1228093971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll step-by-step, don't answer! < 1228093996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1228094000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now i closed the interp :D < 1228094000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1228094049 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so yeah okay, that's pretty good, although i'm pretty sure you could get that compressed quite a lot < 1228094065 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :maybe, I didn't figure how < 1228094082 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is seeing the r demon in life < 1228094108 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :can you tell me what that code does? i don't feel like reading < 1228094124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like, the gist of how you do it < 1228094171 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-langton-nothollow-commented.pfk < 1228094226 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :wherever it says "we came from x" it should say "our last move was x" < 1228094291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have to go sleep now, i'll read that tomorrow < 1228094291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1228094294 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1228094360 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :k, nite < 1228096211 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :paintfuck is not "borderline-esoteric" < 1228096387 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :mmm... define that? < 1228096467 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :never mind, gtg < 1228096501 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :warrie has there ever been an Easy interpreter? < 1228096704 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :there is another Easy < 1228096775 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://p-nand-q.com/humor/programming_languages/gplz/gplz_easy.html < 1228096807 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :and bye :) < 1228096830 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :moo < 1228104172 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1228107524 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1228108402 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :You are standing inside your ramshackle wooden hut. < 1228108415 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :weave plays Lost Kingdom < 1228108435 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :i'm going to ask jon ripley to make it multiplayer < 1228108437 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1228109374 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i checked your copier, it's sweet :) < 1228109407 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1228111573 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :$ ./weave.rb 99.bf 99.bf 99.bf < 1228111573 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :999999 bbbooottttttllleeesss ooofff bbbeeeeeerrr ooonnn ttthhheee wwwaaallllll,,, < 1228111573 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :999999 bbbooottttttllleeesss ooofff bbbeeeeeerrr,,, < 1228111573 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :$ ./weave.rb sange-archive/hello* < 1228111573 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :HHHELLOWelloheallo t HelloW WORWoLrlDd! < 1228111574 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :orld!! < 1228111576 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric : worldis! < 1228111578 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :your name? < 1228112554 0 :bsmntbombdood_!n=gavin@97-118-130-100.hlrn.qwest.net JOIN :#esoteric < 1228112859 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1228113116 0 :Slereah_!n=Slereah@ANantes-252-1-90-122.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1228114054 0 :bsmntbombdood_!unknown@unknown.invalid NICK :bsmntbombdood < 1228117118 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1228117150 0 :oerjan!unknown@unknown.invalid TOPIC #esoteric :http://tunes.org/~nef/logs/esoteric | Y RLY < 1228118399 0 :clog!unknown@unknown.invalid QUIT :ended < 1228118400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1228118754 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :so now i'm gluing pbrain into weave too < 1228118827 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :it will soon be .. an irc bot with persistent threaded cross-communicating subroutine-calling brainfucks < 1228118838 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :because, you know, that's exactly what the world needs < 1228119149 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the world is _so_ fucked < 1228119605 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1228121258 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1228122139 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"I'm a thaasophobic." < 1228130829 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Heh. I tried to calculate the number of ways I could generate all the permutations of a given cycle by just shifting subsequences one step at the time. For zero-, one- and two-length cycles I got the answer 1. For a three-length cycle I got 40 within a second. But trying to calculate it for a four-length cycle, it almost froze up the whole computer :S < 1228130830 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :My guess is that the number is around 2*n!!/(n!^2) :) < 1228131508 0 :Slereah_!n=Slereah@ANantes-252-1-90-122.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1228133894 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1228134729 0 :Corun!n=Corun@cpc1-rdng19-0-0-cust700.winn.cable.ntl.com JOIN :#esoteric < 1228135102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :decipher: thanks < 1228135104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it only handles one-rows < 1228135812 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :but i am sure you can generalize < 1228135832 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :also, on my obfuscated interpreter the copying was quite fast < 1228137173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :decipher: well, it's hard to generalize to arbitrary depth because if you just sweep through it, you eat up the walls < 1228138102 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :decipher: if you have any ideas, though? < 1228138874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what copyer < 1228138932 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1228138968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: paintfuck < 1228138975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it copies a line leftwards constantly < 1228138984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. you can put any one line and it scrolls it < 1228138984 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sloooooowly < 1228138989 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i want to generalize it to any depth < 1228138991 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :somehow < 1228139001 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mm'kay, isn't that like 10 characters of code? < 1228139008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1228139013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you have to detect the ceiling/floor < 1228139015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to go right one < 1228139019 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you eat the walls up < 1228139023 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and never go on to the next column < 1228139034 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the one-line copier is trivial ofc < 1228139140 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :ehird: your routine was more like a move than copy :) < 1228139167 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :although i am not sure if it might be possible to dynamically calculate the offset and move the head accordingly at all < 1228139178 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :as in, i am not sure if a true copy algorithm can be possible < 1228139187 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :decipher: oh, true < 1228139194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well it was a scroll < 1228139194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really < 1228139198 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1228139203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i dont' think you can do a generic scroll < 1228139208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its impossible to tell walls from blocks < 1228139209 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :UNLESS < 1228139214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you make the wall a special pattern < 1228139220 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that your program detects < 1228139227 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then you can't copy that pattern, but if it's weird enough it won't happen < 1228139232 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :true, but that's not "general" then :) < 1228139239 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as general as matters :P < 1228139244 0 :decipher!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1228139984 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :my binary counter (may assume infinite grid): sse*ww*[e*[*nn[*s*e*wn]se[*wn*se]s*]*w*[*s[*]nw*]*en[*e]*s[*e*w]*[*e*]s*n*[*w*]s[*]*] < 1228139985 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1228140005 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: niiiiiiiice < 1228140009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1228140013 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :someone make a decimal conuter < 1228140014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :counter < 1228140019 0 :lostgeek!n=lostgeek@xdsl-87-78-225-117.netcologne.de JOIN :#esoteric < 1228140020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that OCRs the digits it outputs to add :) < 1228140030 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1228140036 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1228140051 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :hi lostgeek < 1228140694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: context for what i was saying - < 1228140705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a decimal counter would be cool, i.e. it draws the digits and OCRs them to increment :) < 1228140958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my bday today < 1228140959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1228141081 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :grats AnMaster :) < 1228141088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1228141092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1228141105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster said something? < 1228141107 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(He's on /ignore.) < 1228141116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, hm I can't remember seeing you here before? < 1228141120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least not under that nick < 1228141144 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I joined yesterday ;) < 1228141156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228141164 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Context for a person who I cannot see: He's a paintfuck person.) < 1228141330 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :ehird: would be cool, but I think a bit hard to realize < 1228141341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: i don't think -that- hard < 1228141355 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :dunno... < 1228141365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i mean, write code to output a certain digit for 0-9, then one to look at its pixels (just make them monospaced) to detect it into the head < 1228141369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then just do regular adding stuff < 1228141373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not easy, but not really hard < 1228141611 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :last, shorter, faster version of binary cnt: sse*ww*[e*[*nn[*s*e*wn]se[*wn*se]s*]s[*]*nw*[*s[*]nw*]*en[*e]*ss[*e*w]n*[*w*]s*] < 1228141855 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno, language? < 1228141880 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: PaintFuck < 1228141886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228141994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228142149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: that's not shorter... < 1228142348 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :binary cunt? < 1228142357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i know oklopol would say that. < 1228142365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we could just replace him with a bot and never notice. < 1228142365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :probably. < 1228142369 0 :Sgeo!unknown@unknown.invalid QUIT :Remote closed the connection < 1228142370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :apart from the coding skills part. < 1228142426 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228142480 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to inc a binary counter, when you're on a constant 1-bit to the right of it, w[*]*w*[*e*]*, you go left, then null all ones, make the zero into a one, then go right, skip all the zeroes to land on the constant bit to the right of the counter < 1228142490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :to do this constantly, add a while to that < 1228142497 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what are you guys doing then? < 1228142561 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait that doesn't work < 1228142564 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :LOL < 1228142572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1228142689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1228142705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hello ais523 < 1228142709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my bday today :) < 1228142804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I say the appropriate response, but such that ehird doesn't have a clue what I mean due to lack of context < 1228142832 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I do actions by saying them to IRC. < 1228142906 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :[w[*w]*e*[*e*]*] <<< binary coutner < 1228142908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*counter < 1228142912 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry, i just woke up < 1228142947 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :also the police calls, i couln't really tell them what the pizza attackers looked like, so they're gonna go photograph the whole staff and show me the pics :D < 1228142956 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: pizza attackers? < 1228142965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228142980 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :about a week ago, i ordered pizza, and got beat up by the delivery guys < 1228142993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what sort of delivery guy does that? < 1228143002 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: hahaha < 1228143012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe you called up the Punch 'n Pizza place instead < 1228143025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i would tell you what i think the answer is, but that would be racist. < 1228143026 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[w[*w]*e*[*e*]*] <-- oklopol how can this work it will never run < 1228143038 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you have to be on a constant 1 bit < 1228143042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: they were blobs of mauve goo? < 1228143050 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: they were FINNISH < 1228143063 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :!!!!!!!!!!!! < 1228143069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :goddamn finns < 1228143077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scum the lot of them < 1228143098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: your binary counter is pretty awesome < 1228143106 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :w*[w[*w]*e*[*e*]*] < 1228143110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :were you doing that same thing? < 1228143110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the full experience < 1228143118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1228143128 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... it seems the Door was broken again last Sunday, good thing I didn't try it < 1228143136 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i mean < 1228143148 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that long code there, about a binary cunt, was it that same thing < 1228143161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well no < 1228143165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it kept the previous results < 1228143166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and um < 1228143169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :didn't look like yours < 1228143174 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you should make yours actually output in binary < 1228143177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :instead of a soldi line < 1228143220 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not sure what you mean < 1228143234 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe i could run yours.......... < 1228143264 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so okay, like that < 1228143267 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i can do that.... < 1228143287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :um oklopol < 1228143290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i didnt write one < 1228143290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1228143306 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: i mean the set {ehird, pgimeno} < 1228143309 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :OBVIOUSLY < 1228143311 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228143362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway i don't think i'll actually do it, why the fuck would i < 1228143444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1228143444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*w*[[*w*]*e*e*[*e*]*w*] < 1228143450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i just made your counter simpler < 1228143450 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228143461 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you made it longer < 1228143470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes but it runs simpler < 1228143472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1228143474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't use binary < 1228143474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a all < 1228143475 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and it's not a binary counter < 1228143476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at all :P < 1228143483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: a binary counter would OUTPUT IN BINARY < 1228143486 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*[w*] < 1228143490 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's faster < 1228143497 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1228143502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: so make it output in binary! :P < 1228143507 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it outputs in binary, just doesn't store the values < 1228143509 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0 = space, 1 = dot naturally < 1228143535 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a binary counter, pgimeno's is one that outputs binary numbers < 1228143550 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :which isn't really useful, unlike a counter < 1228143568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: we're talking about paintfuck < 1228143580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is the first interesting bf dialect in ages < 1228143580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://forums.tigsource.com/index.php?topic=3710.0 < 1228143587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the thing is, the memory is actually the screen < 1228143594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so your program has to think in its output drawing format < 1228143603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :langton's ant, game of life, rule 110, etc have been done < 1228143620 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not saying paintfuck isn't interesting, i'm just saying it's not a new idea < 1228143631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: yeah ok w/e :P < 1228143635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but ais523 hasn't seen it < 1228143635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so < 1228143642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php javascript interp, it's fast < 1228143650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but what is new is someone having linked an implementation so i can play with it :P < 1228143687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes his counter go forever < 1228143772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1228143777 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm still here < 1228143780 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :doing absolutely nothing < 1228143871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*w*[[[*w*]*e*e*[*e*]*w*]*s*e*w] < 1228143874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :infinite count < 1228143903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :aka slowest screen fillder ever < 1228143906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*filler < 1228143956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not really, that's O(n^2) filling tiem < 1228143962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait... < 1228143979 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :n*sqrt(n) is more like it < 1228143998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: after it fills the screen it then mangles the topleft and topright pixels < 1228144000 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :point is doing it in binary is O(2^n) < 1228144003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it's the slowest screen filler ever < 1228144008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as it takes more than infinite time to fill the screen < 1228144011 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? < 1228144020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it makes the topleft and topright pixels blac < 1228144021 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :k < 1228144024 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at the end < 1228144027 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :infinity = -1, as we all know < 1228144035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so it's as fast as you can get < 1228144225 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :err..... what the fuck, still here...... < 1228144230 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm such a slacker < 1228144234 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :soon i will go < 1228144239 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :maybe... now < 1228144241 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1228145942 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/langtonsant.php - Langton's ant (unrelated to PFK) < 1228145960 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :not programmable though < 1228145969 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: PaintFuck < 1228145974 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :arrrrrrrrgh < 1228145983 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gee how many times have we said "AnMaster: PaintFuck" today < 1228145993 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :well this time it was my fault < 1228146012 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :i thought i was in the other terminal window and pressed up and enter < 1228146348 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1228146359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, did you want it? < 1228146365 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228146368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :did you want something < 1228146369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I meant < 1228146372 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1228146375 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1228147101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1228147104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1228147111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forgot to say afk heh < 1228147122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and thanks btw < 1228147125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't see it abvoie < 1228147126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :above* < 1228148013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, hm... *poke* < 1228148020 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anything interesting? < 1228148024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or busy with "rl2 < 1228148025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228148027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or busy with "rl"* < 1228148445 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1228148453 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1228148454 0 :KingOfKarlsruhe!n=nice@HSI-KBW-091-089-252-201.hsi2.kabel-badenwuerttemberg.de JOIN :#esoteric < 1228148780 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :mh. I got a problem with my code window... < 1228148806 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :lets say I have a loop like *[w*] or something < 1228148811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: busy with things including RL < 1228148823 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and some non-RL but non-eso programming < 1228148825 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :and my pointer is on the second * < 1228148837 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and trying to recover an email that Outlook Web Access deleted yesterday < 1228148843 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I spent over an hour writing it < 1228148844 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :now I call nextStep() and move to ']' < 1228148851 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then accidentally hit back on my mouse, and couldn't get back to it < 1228148853 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I'm rewriting it < 1228148863 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :where I jump back to '[' < 1228148884 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :how I was solving it was to jump back to the left of '[' < 1228148929 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :but in that case my pointer is on the first * which is confusing, since I don't execute it < 1228148941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah < 1228148952 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :any ideas how to solve that? < 1228148958 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ouch < 1228149006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, you move before you execute or execute before you move? < 1228149018 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :move before I execute < 1228149034 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :which solves other problems I would have when executing before moving < 1228149052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, now I don't 1) know how similar it is to plain bf, 2) what language you are writing it in < 1228149059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but if it was C and plain bf < 1228149062 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.iq0.com/notes/deep.nesting.html < 1228149071 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(AnMaster will hate that article) < 1228149071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would just connect the ] node's next pointer to the matching [ < 1228149074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while I'm parsing < 1228149087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the up pointer to the instruction after < 1228149111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the ['s down pointer to the first instruction in the loop < 1228149114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1228149147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, and move before execute is sane < 1228149163 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :I'm working with strings (on java) < 1228149171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: prepaer < 1228149173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*preparse < 1228149175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the code before execution < 1228149187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea about java < 1228149201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I would represent the source of plain bf as a 2D linked list < 1228149217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually to save some space I wouldn't have separate up and down pointers in the structs < 1228149223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would have a single "aux" pointer < 1228149234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I wouldn't need up and down in the same struct < 1228149243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :need both* < 1228149279 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :mh ok. I added a TODO :) < 1228149282 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :thanke < 1228149286 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1228149292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, but this may be totally crazy to do in java < 1228149294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I got no idea < 1228149313 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I think there are LinkedLists in Java. But working with strings was easier < 1228149329 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: < 1228149348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :public class BFNode { public char type; public BFNode stuff; public BFNode next; } < 1228149378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: {type='[', stuff={type='w', stuff=null, next=null}, next={type='*', stuff=null, next=null}} < 1228149383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek: then just recurse to loop < 1228149387 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or keep a manual stack < 1228149449 0 :lostgeek!unknown@unknown.invalid PRIVMSG #esoteric :yeah. may be a good way to solve it. < 1228149451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lostgeek, well I did it like this: mmap() source bf file, write a recursive parser to build the tree, pass the tree to the optimizer (replaces ++- with +, reorganize >-<+>-< into >--<+ and such as well as replace ---- with -4) < 1228149457 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I pass it to the emitter < 1228149460 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its the only way to solve it sanely < 1228149462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that emitted it as C code < 1228149462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228149468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of course, insane is good too < 1228149470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I used system() to call the compiler < 1228149479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: do you replace >>>> with >4? < 1228149479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it was a compiler, not an interpreter < 1228149485 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gcc-bf really, really needs that optimisation < 1228149488 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes of course < 1228149496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, I'm considering just getting it to output run-length-encoded BF < 1228149503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, however it was the one with huge duff's device due to being Def-BF < 1228149505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :easy enough to postprocess that into normal BF < 1228149505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but since that is dead < 1228149510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :code reuse should be good < 1228149519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have considered several other optimizing techniques < 1228149534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :such as in a balanced loop try to pre-compute certain parts < 1228149536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like < 1228149547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>++>+<<-] < 1228149550 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you could do < 1228149581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while (*ptr != 0) { *(ptr+1)+=2; *(ptr+2)++; } < 1228149582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1228149587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well not exactly < 1228149590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but something like that < 1228149594 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instead of moving ptr < 1228149608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and decrement too < 1228149613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't forget that heh < 1228149635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, see what I mean? < 1228149651 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if number of iterations can be pre-computed... < 1228149656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well you could gain a lot < 1228149665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it should try to track possible states < 1228149667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of all cells < 1228149681 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can *know* the state after a [-] (turned into a set zero by the optimizer) < 1228149693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then if you can compute the value it has a bit later < 1228149698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can turn it into a set 3 < 1228149700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1228149710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if you know that at the start of a balanced loop... < 1228149719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well you could either turn it into a for loop or unroll it < 1228149728 0 :puzzlet_!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1228149731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least gcc compile for loops quite a bit faster than while loops < 1228149738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :) < 1228149747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what do you think of these ideas? < 1228149752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I assume they aren't new < 1228149766 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I've considered similar things myself < 1228149781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however I'm unsure if I could manage to implement this < 1228149799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean even writing the basic optimizer was quite painful in C < 1228149807 0 :whtspc!n=chatzill@dhcp-077-251-008-030.chello.nl JOIN :#esoteric < 1228149813 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some sort of tree rewriting language, hmm < 1228149816 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1228149816 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oil? < 1228149821 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :isn't that for that < 1228149824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yo < 1228149826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1228149829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would need a different variant though < 1228149831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whtspc: oklopol wrote a Game of Life < 1228149831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's slow < 1228149835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :something that isn't as intercal specific < 1228149840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that is possible to actually read < 1228149841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although OIL was defined specifically for INTERCAL, it would be possible to do similar langs for other langs < 1228149846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and OIL is readable < 1228149853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, do you know of any existing one? < 1228149854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :at least compared to INTERCAL < 1228149860 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :I saw something, is there a definite version? < 1228149867 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :ehird? < 1228149867 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, or possibly I'd have used them rather than writing OIL from scratch < 1228149878 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whtspc: conway's game of life < 1228149879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah < 1228149893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still oil couldn't easily do variable tracking < 1228149902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or could it? < 1228149909 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what computational class is oil btw? < 1228149928 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :i saw the one with the three block, amazing! < 1228149929 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: PDA, I think < 1228149932 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whtspc: http://www.vjn.fi/pb/p422562455.txt < 1228149936 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1228149937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which on < 1228149937 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1228149961 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1228149969 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, PDA? < 1228149976 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you mean like a PDA computer? < 1228149977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228149979 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :push-down automaton < 1228149981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228149983 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1228150028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still variable tracing/tracking hm, I don't know how I would even do that < 1228150043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean I could try to trace the entire program but that would be insane < 1228150058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would need to give up at unbalanced loops and so on < 1228150059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm < 1228150079 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've been having insane ideas as to how to optimise unbalanced loops, etc < 1228150085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what about new simplification possible after the first pass? < 1228150099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :should you try to run it again? < 1228150099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how? < 1228150100 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :I like to be able to easily save programs in sort of database, do you guys use something special for that? < 1228150119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can see how if you just reorganize a bit but leave the pointer the same at the end and the start < 1228150119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say < 1228150121 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :should I just open a blog to quickly paste things in < 1228150128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>++<->+>>] < 1228150131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could be moved < 1228150132 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to < 1228150140 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>+++<->>>] < 1228150147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whtspc: umm < 1228150149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and that could be moved to < 1228150149 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a filesystem < 1228150151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heard of 'em < 1228150157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[->+++>>] < 1228150162 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you wanna share it, pastie.org < 1228150167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is about all you can do for them < 1228150176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you want to get a list of them, insertsomerandomwordshereandbookmarkit.pastebin.com < 1228150180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure you could try to generate effective code < 1228150201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :such as substract, add 3 to next, add 3 to pointer < 1228150211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is still about it < 1228150212 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :yeah thought about pastebin < 1228150219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so what is your idea then? < 1228150244 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: work out what's being used for what < 1228150265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it would be very hard to track what the state is at the end of the loop compared to the start < 1228150270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what cells are affected < 1228150271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and such < 1228150293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, probably possible and extremely hard for a few cases < 1228150300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and impossible for the majority < 1228150304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is my *feeling* < 1228150305 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so for instance you might deduce that there's a location that's always reached by [>>>] from a particular point < 1228150306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that moves around < 1228150314 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1228150326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, example? < 1228150368 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :wow, game of life :) < 1228150375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not easily < 1228150401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok... The worst thing is if you can't figure out, for example say it is based on user input, then figure out where you can resume < 1228150403 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :whtspc: also < 1228150408 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/paintfuck-canvas.php < 1228150411 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new pgimeno interpr < 1228150413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :really fast < 1228150425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it wasn't for unbalanced loops it would be very very easy to find out < 1228150425 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :yeah using it right now for life < 1228150430 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it would also be non-tc < 1228150440 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :it's the best for easy use too < 1228150469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so how hm... < 1228150482 0 :whtspc!unknown@unknown.invalid PRIVMSG #esoteric :really looking forward to lostgeek things too < 1228150491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: basically in the style of Proud, but saner < 1228150498 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1228150502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :have a huge set of plausible assumptions to start off with < 1228150511 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then given the current set of assumptions, see which are contradicted by the program < 1228150518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, Proud, hm was that the uncomputable one? < 1228150523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :continue iterating until you have a consistent set of assumptions < 1228150524 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1228150536 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Proud's like I suggested but with an uncountably infinite set of assumptions < 1228150542 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :whereas I was planning just a finite number < 1228150573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well, finite would be uh 255 * number of cells! or something like that? < 1228150585 0 :Corun!n=Corun@94-193-40-216.zone7.bethere.co.uk JOIN :#esoteric < 1228150590 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also < 1228150595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+[>+] < 1228150599 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :P < 1228150607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[>+] < 1228150612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fungot, ? < 1228150612 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: same core language that the rest of the arguments < 1228150616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^help < 1228150616 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :^ ; ^def ; ^show [command]; lang=bf/ul, code=text/str:N; ^str 0-9 get/set/add [text]; ^style [style]; ^bool < 1228150629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why didn't it say "out of time"? < 1228150637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[>+] < 1228150649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +++++++++++++++++++++. < 1228150650 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : < 1228150652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228150659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +++[>++.] < 1228150659 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1228150667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, is it broken? < 1228150715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf ----.[>+.] < 1228150715 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ü ... < 1228150717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. < 1228150718 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :B < 1228150721 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf ----.[>+] < 1228150722 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ü < 1228150731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that doesn't look right at all < 1228150738 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the out of stuff thing seems broken < 1228150744 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[] < 1228150745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes < 1228150749 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1228150754 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :... < 1228150758 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1228150765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf ----.[] < 1228150770 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ü ...out of time! < 1228150789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, seems it fails for "out of cells" < 1228150798 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or out of tape < 1228150798 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf < < 1228150819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that shouldn't even be legal < 1228150828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^hi < 1228150830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's out of tape too, just off the other end < 1228150837 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (test)S < 1228150837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^show < 1228150837 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :test < 1228150837 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :echo reverb rev rot13 rev2 fib wc ul cho choo pow2 source help < 1228150847 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm < 1228150880 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1228150881 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :o < 1228150887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: o < 1228150893 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228150895 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :o o oko < 1228150900 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okoko < 1228150904 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okokokoko < 1228150906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so how would you implement this optimizer? < 1228150907 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okokokokokokoko < 1228150908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't know < 1228150915 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I couldn't do it I guess < 1228150933 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also what would the assumptions be? < 1228150935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have too many toher things to think about, but I've thought about it before < 1228150946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, "any cell can have any value"? < 1228150950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :assumptions like "if the pointer points to this cell, it's location is always known" < 1228150959 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"every third cell is 0 when this point in the code is reached" < 1228150978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes true, but how do you find out a sane and/or initial set of these assumptions < 1228150978 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"when the pointer's at cell 3n, n>100, then [<<<] always goes to cell 99" < 1228150981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that sort of thing < 1228150990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the initial set is just full of all the assumptions we can think of < 1228150995 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :optimised somehow to save time < 1228151004 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then it iteratively works out which ones are false < 1228151007 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :until it has a consistent set < 1228151063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would do it like tracing the code flow as far as I could then make that constant initial state. For the rest of the code I would have to use another way < 1228151080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like trying to trace what variables are known at what points < 1228151102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like as soon as I have a [-] I can know that cell's state until the next bad section < 1228151111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like unbalanced loop, or input into said cell < 1228151137 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1228151145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that could work very well for gcc-bf output, but would perform rather poorly in the general case < 1228151146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1228151171 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, probably < 1228151190 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we'd have to test it on lots of programs to see how real BF programs were generally written < 1228151193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you would have to create an additional ruleset for the bfbasic or whatever it was called < 1228151203 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it would be nice to have it working well on BFBASIC and on gcc-bf < 1228151206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but for handwritten programs, wouldn't work well < 1228151221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why not? handwritten programs mostly use the same sorts of idioms as each other < 1228151227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228151236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you should be able to add new assumptions < 1228151243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ofc < 1228151244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean [-] is too good to miss out on < 1228151249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"wow this cell is 0" < 1228151256 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's not exactly adding a new assumption < 1228151260 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the assumption would be "pointer is 0 here" < 1228151266 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it would never be contradicted < 1228151275 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so that one would stay in existence throughout the whole analysis < 1228151276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed but then < 1228151278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not added; just never taken away < 1228151283 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[-]>++<+++++ < 1228151292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that can be turned into < 1228151297 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: after the > you have "left of pointer is 0 here" < 1228151305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :set cell to 5, >, add 2 < 1228151308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this only works if you have a huge stock of possible assumptions < 1228151329 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, my point is you should be able to trace cell dependencies < 1228151338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to work out you can turn that into a set to 5 < 1228151339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it does trace cell dependencies! < 1228151342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228151347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :once you have all the assumptions, then you optimise < 1228151354 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in this case, you get "pointer is 5 here" at the end < 1228151355 0 :Slereah_!n=Slereah@ANantes-252-1-90-122.w81-53.abo.wanadoo.fr JOIN :#esoteric < 1228151361 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is very easy to optimise < 1228151365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*pointer = 5; < 1228151367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes and you need to find where that 5 is used < 1228151370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1228151376 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, that would have been tracked already too < 1228151387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[-]>++<+++++[>+<-] < 1228151391 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about that? < 1228151398 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :i gave Weave pbrain-style functions last night, haven't uploaded < 1228151410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could turn that into, set 0, >, add 7 < 1228151415 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :so now it's weave threads + brainfork runtime threads + bprain functions < 1228151422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not sure you could make the program do that however easily < 1228151427 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the compiler I mean < 1228151453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, or? < 1228151458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let's see, I'm thinking < 1228151474 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :before the second [, we have "pointer is 5" < 1228151497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep and right of pointer is two more than at the start of the section < 1228151503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228151508 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :we can calculate that the loop runs *pointer times < 1228151521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes and then we can unroll it, < 1228151522 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so we can replace it with >+<->+<->+<->+<->+<- < 1228151532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then it's easy from there < 1228151534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and reorder that < 1228151546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would be more interesting if it was >++<+++++[>+<-] without the [-] at the start < 1228151552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well the issue with that is, how far ahead should you try to look for merging addition substraction < 1228151563 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :think of a 1 MB huge section without any loops < 1228151572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but where each cell affected is touched several times < 1228151577 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that should be reordered < 1228151592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think we should probably work at the level of linearisable sections < 1228151592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it would be rather expensive for such a long section < 1228151599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. sections with balanced <> < 1228151608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm? yes the 1 MB section would have that < 1228151609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :optimising a 1MB long section without loops is no slower than running it < 1228151612 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you only have to optimise it once < 1228151622 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or with loops but balanced ones < 1228151635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : it would be more interesting if it was >++<+++++[>+<-] without the [-] at the start <-- how then? < 1228151674 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, that becomes pointer[1]+=2; pointer[0]+=1; (pointer[1]+=pointer[0], pointer[0]=0); < 1228151684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still I'm not sure this is the smartest way always < 1228151685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it's linearisable, we can track variables separately < 1228151688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/1/5/ < 1228151699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for some balanced loops you might be better off by not unrolling it < 1228151704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but turning it into < 1228151725 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can't unroll if you don't know the number of iteratinos < 1228151727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*iterations < 1228151751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while (mem[ptr] != 0) { mem[ptr+2]+=4, mem[ptr]--; } < 1228151752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1228151756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you see what I mean < 1228151761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or even into a for loop < 1228151768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could be vectorized by gcc < 1228151773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with -fvectorize-tree < 1228151773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but unrolling is always going to help the optimiser do more optimisations, you can reroll again afterwards < 1228151775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228151793 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how would you re-roll then? not trivial or? < 1228151827 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rerolling is just run length compression < 1228151839 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what gzip effectively is doing, rerolling loops in text < 1228151867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for (unsigned char i = mem[ptr]; i != 0; i--); do { mem[ptr+1] += 1; mem[ptr+2] += 1; mem[ptr+3] += 1; } < 1228151880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that I believe gcc would vectorize probably < 1228151886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1228151890 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would be stupid still < 1228151896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you would be able to do < 1228151900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :mem[ptr+1]+=mem[ptr]; < 1228151901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mem[ptr+1] -= i; < 1228151902 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228151906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228151907 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+= < 1228151908 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1228151925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still I believe there are cases you can gain in by using for < 1228151964 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, you can't completely compile a program with loops into a program without in all cases < 1228151968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say: < 1228151974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[[-]>] < 1228151980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would be memset(0) < 1228151983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... balanced loops always compile into polynomials, don't they? < 1228151986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :until you hit a 0 < 1228151993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: bf4 compiles them to polynomials < 1228151994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? interesting < 1228151997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i believe < 1228152022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I reckon the best way to make an optimiser would be to always compile the polynomials first < 1228152027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, true < 1228152029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then deal with unbalanced loops and assumptions on /that/ level < 1228152044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what about turning [[-]>] into a *call* to memset? < 1228152045 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the assumptions could then mostly be about which cells held zero/nonzero, and where the pointer was < 1228152057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that should be very fast < 1228152074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes true < 1228152074 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you're thinking at a completely different level to me here < 1228152083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? yes I am < 1228152087 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to optimise O(n^2) down to O(n) < 1228152090 0 :whtspc!unknown@unknown.invalid QUIT :"ChatZilla 0.9.84 [Firefox 3.0.4/2008102920]" < 1228152093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you're optimising O(n) into a slightly faster O(n) < 1228152096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228152122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well turning balanced loops into polynomials first is indeed a good idea < 1228152138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but I'm not happy with that < 1228152143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I want to go further < 1228152145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1228152157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, the usual trick is to let the C compiler do the microoptimisations < 1228152168 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :after the BF compiler has done the computational class optimisations < 1228152180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hah, but that requires it to understand what the program tries to do < 1228152186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which might be far from clear at times < 1228152197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :considering the generated C wouldn't be very typical C code < 1228152212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, it would be the sort of C code that compilers are particularly good at micro-optimising < 1228152223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :something like [[-]>] into memset is trivial for a compiler like gcc < 1228152230 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which sees stuff being set to 0 in a loop < 1228152237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in a while loop < 1228152243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although, that would only work if the end was known < 1228152249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it would turn it into a strlen + a memset? < 1228152251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or what? < 1228152257 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :strlen + memset is slower than just looping < 1228152259 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since memset is faster than setting each byte < 1228152271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, depends, consider that memset can set 32 or 64 bits at a time < 1228152276 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the fastest way would be to do it wordwise < 1228152277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while looping would just set 8 at a time < 1228152284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :using rep movdi < 1228152287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed, which is what memset does iirc < 1228152293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wordwise < 1228152296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*rep movdb < 1228152303 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: aha, no < 1228152305 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I don't know what asm it uses < 1228152312 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :memset doesn't terminate at end of string < 1228152313 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this does < 1228152317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah < 1228152325 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you want a string-set instruction, not a memory-set instruction < 1228152328 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is crazy x86 string instruction things? < 1228152331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228152334 0 :Judofyr!n=Judofyr@084202205031.customer.alfanett.no JOIN :#esoteric < 1228152339 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure there's one that does exactly [[-]>] < 1228152344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I wouldn't know, I'm writing portable code < 1228152351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, exactly < 1228152356 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is why you let the compiler worry about the details < 1228152361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm true < 1228152362 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the C compiler < 1228152380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, about that rep stuff, can those be interrupted and resumed in the middle? < 1228152384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I always wondered < 1228152389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how it works with context switches < 1228152389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :an insane BF optimizer would compile down to machine code < 1228152404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, but you need to keep track of the registers < 1228152416 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :IIRC, they put their internal state in CX or something like that < 1228152420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well the OS dumps them right < 1228152429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SI, DI, and CX, or something < 1228152436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so if the OS dumps them, it can resume the instruction < 1228152439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by issuing it again < 1228152440 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, only 16 bit registers? < 1228152450 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like it could be an issue < 1228152454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I learnt x86 asm on DOS < 1228152461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it works with bigger registers almost certainly < 1228152465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah right < 1228152479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x86 is a mess heh < 1228152481 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I have trouble thinking about anything bigger than 16 bits as I never learnt x86 asm in protected-mode < 1228152491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just good old-fashioned real-mode programming < 1228152497 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION adds a REX prefix < 1228152508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :makes it operate on 64-bit operands < 1228152520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on x86_64 < 1228152521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is < 1228152562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway, what about constant folding too? < 1228152574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :constant folding would happen automatically < 1228152578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :could be done for parts inside loops < 1228152580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's really the basis behind the whole thing < 1228152582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even unbalanced ones < 1228152587 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or the start of the program < 1228152592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that I think would be a good idea < 1228152616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if the program starts with filing in lots of cells with initial values, you could constant fold that and put it in a static array < 1228152620 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the generated program < 1228152638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably even use the static array for the first section of memory < 1228152642 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or such < 1228152646 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm that is an issue < 1228152657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :we can't know the memory we get allocated are in one block < 1228152664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the OS could allocate with holes < 1228152667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, I just realised why UK keyboards have ¬ and that weird broken-vertical-bar char on them < 1228152681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's because they're the printable characters in EBCDIC that aren't in ASCII < 1228152682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and to handle holes you need a more complex pointer < 1228152699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that way, UK keyboards can type all the printable chars in ASCII, and all the printable chars in EBCDIC < 1228152718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well anyway, what about the issue I mentioned? < 1228152742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would try to mmap() pages probably, but what if they are not in one single block < 1228152747 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what if I do get holes < 1228152747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gcc-bf spends the whole first part of the program going >>>>>>>>>>>+++++++++++++>>>>>>>+++++>>>>>>>>>>>>>>>>>>>+++++++++++++ < 1228152758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and memory doesn't have holes if you don't ask for it with holes < 1228152760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed that could be constant folded < 1228152768 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's intended to be < 1228152768 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how do you mean? realloc()? < 1228152774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but what if it needs to be moved < 1228152779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you have issues < 1228152782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for huge data sets < 1228152782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there is no problem with realloc moving stuff < 1228152795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes it would be for something with a large data set < 1228152798 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, if you're really crazy, use sbrk < 1228152807 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's perfect for allocating data for Brainfuck < 1228152819 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although almost useless for most langs < 1228152823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm that depends on knowing nothing else is malloced there < 1228152827 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1228152832 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but avoiding malloc is easy enough, surely? < 1228152835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :say if I call putchar() how can I know it didn't just malloc() something < 1228152837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :internallt < 1228152840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :internally* < 1228152843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in libc < 1228152846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: isn't there a guarantee somewhere about that? < 1228152854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't surprise me if there was < 1228152862 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, don't think so, glibc allocs a lot of internal stuff I'm pretty sure < 1228152867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like input buffers < 1228152880 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so does libbf < 1228152899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed, so suddenly sbrk may mean it isn't at the top any more! < 1228152918 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, you could do brk(NULL) to see if the break value had unexpectedly changed < 1228152924 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and just realloc the whole lot if it had < 1228152938 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if something's going to insist on making memory discontiguous, you're going to have to move things around to recontiguise it < 1228152940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could leave a huge unused area below < 1228152944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that nothing can fill < 1228152965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you're still thinking on entirely the wrong level here < 1228152977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you really really want massively optimised code, just refrain from syscalls < 1228152980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also I'm not sure libc isn't allowed to see there is something free below sbrk and alloc stuff there < 1228152981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1228152990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that way you know that nothing's brking behind your back < 1228152994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, you need syscalls for input and output < 1228152999 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bf has that < 1228153007 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no you don't! < 1228153011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1228153012 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the operating system has to manage it somehow < 1228153017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it does < 1228153040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah I got an idea, elf hack, and no idea if it works for stuff in libc < 1228153043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do like valgrind < 1228153045 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :redirect malloc < 1228153051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to something that allocs from mmaped areas < 1228153061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well valgrind doesn't do that bit < 1228153074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway it probably won't work for internall malloc() calls in the libc < 1228153078 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it does work for stuff in libc < 1228153083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1228153093 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :valgrind errors on some stuff on libc, or would do if it wasn't careful not to < 1228153099 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, just link libc statically < 1228153102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wouldn't it use a direct call instead of going through the symbol table? < 1228153106 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then it definitely works < 1228153153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and this would probably only work on a few *nix like linux < 1228153161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and freebsd at least < 1228153166 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you are thinking on utterly utterly the wrong level, OK < 1228153172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, really? < 1228153180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I agree high level optimizations is best < 1228153184 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I completely agree < 1228153194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but once that is done you want more speed < 1228153219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it isn't enough to be fast, you will want to be fastest < 1228153224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and even faster < 1228153236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just to make sure no one can sneak up easily on your speed < 1228153275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no? < 1228153307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but any number of low-level optimisations will fail to a big optimisation at the top that improves computational order < 1228153313 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, low-level optimisations often slow things down < 1228153332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed you should do the big optimisations first < 1228153342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and once that is done, continue with lower and lower levels < 1228153357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lim speed -> perfection < 1228153366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but things like ensuring that all the memory in a BF interp is contiguous are completely independent of other optimisations < 1228153370 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I don't really care about them right now < 1228153381 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, all the BF interps in existence have never really had problems with that < 1228153397 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you want contiguous memory, allocate a few MB worth of cells in a static array < 1228153414 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in practice people never go off the end of that anyway, if they do, don't care about the time delay on realloc < 1228153418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, got a link to bf4? < 1228153424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no I don't, ask ehird < 1228153429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ignores... < 1228153432 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how, I have him on ignore < 1228153439 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: AnMaster wants a link to bf4 < 1228153447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did google yes < 1228153453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ouch. it must suck being in an alternate universe without google for him. < 1228153459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or the esolang wiki < 1228153465 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:44] I did google yes < 1228153467 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[17:44] ais523: ouch. it must suck being in an alternate universe without google for him. < 1228153468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :classic < 1228153484 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : or the esolang wiki < 1228153488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :perfect timing on that, AnMaster answering ehird's complaint before ehird complained it... < 1228153489 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :today on the ais523 show we snip context < 1228153496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it was just two lines in a row < 1228153500 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, thanks < 1228153502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that was post-context I snipped < 1228153512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, it was a sentence over two lines < 1228153530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wow it isn't on the brainfuck page < 1228153533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: besides, AnMaster clearly doesn't live in a world without Google or Esolang, as he lives at least in a world with Google < 1228153565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, (bf|brainfuck) ?4 < 1228153568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, according to AnMaster it isn't on http://esolangs.org/wiki/brainfuck either < 1228153573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can not be found on the brainfuck esolang page < 1228153574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it is. < 1228153604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no. not with that name then < 1228153617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it got another name it would he hard to find... < 1228153625 0 :jix_!n=jix@dyndsl-095-033-101-012.ewe-ip-backbone.de JOIN :#esoteric < 1228153632 0 :jix_!unknown@unknown.invalid QUIT :Remote closed the connection < 1228153633 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: there are no instances of the digit 4 anywhere on http://esolangs.org/wiki/brainfuck < 1228153641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, messed up my browser < 1228153642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and? < 1228153646 0 :jix_!n=jix@dyndsl-095-033-101-012.ewe-ip-backbone.de JOIN :#esoteric < 1228153647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well there is, "This page has been accessed 47,617 times." < 1228153650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and 1024 < 1228153652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it isn't named in the link < 1228153652 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just like bff < 1228153656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and Brainfuck interpreter for the HP48gII calculator. May also work with other HP calculators. < 1228153666 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, then why did you expect AnMaster to find it by searching Esolang < 1228153675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok then how the heck should you find it... if it badly named < 1228153680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :He could look at the link text and click ones that look relevant? < 1228153681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you're arguing against yourself here < 1228153682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That's how I found it. < 1228153691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there isn't a "bff" either < 1228153693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with that spelling < 1228153707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's much less reasonable than asking someone who knows the link to tell where it is < 1228153720 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Well, yes, but you could go for someone who wants to tell you,. < 1228153726 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you're coming up with a rather beware of the leopard response < 1228153824 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is a lot more fun to optimize brainfuck than it is to code in it, IMO < 1228153930 0 :puzzlet_!unknown@unknown.invalid QUIT :Remote closed the connection < 1228153935 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1228153980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok with some googling I found this http://mozaika.com.au/oleg/brainf/ < 1228153988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :after: < 1228153998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bff4 brainfuck < 1228154008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that wasn't the name ehird told us initially < 1228154013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1228154026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now if he had said that it would have been simpler < 1228154030 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: AnMaster says that the interp in question is actually called bff4 < 1228154036 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you even got the name you told em wrong < 1228154041 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bf4, bff4 < 1228154044 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not exactly hard to make the leap? < 1228154049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, yes it is < 1228154054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :k < 1228154056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes, why would I try to look for an extra f? < 1228154060 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :would you claim that bf and bff are the same interp? < 1228154064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, brain ffuck? < 1228154066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or what? < 1228154068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, but the 4 is the main thing < 1228154095 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that's a version number... naming programs including the version number is fine, naming programs after /just/ the version number is stupid < 1228154105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: It is not a version number. < 1228154107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless the version number itself is something stupid like XP or Vista < 1228154122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, someone else made bff it says on that page < 1228154126 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes < 1228154127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so it is a separate program < 1228154129 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1228154131 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1228154136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how could I guess there was an extra f? < 1228154146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, it isn't in the name "brainfuck < 1228154148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :" < 1228154151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is one f there < 1228154153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not two < 1228154171 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so how on earth would it be possible to guess that one should add the extra f < 1228154205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why not add an extra b? < 1228154207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :instead < 1228154209 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: , Google disagrees with you on the 4 being the main thing < 1228154210 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or an extra 4 < 1228154219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: bf{f}4 < 1228154223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it was, a Google search for "brainfuck 4" would find what you were talking about < 1228154224 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :seriously, stop bugging me. < 1228154232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure ehird, but you didn't say it at the start < 1228154236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's very obvious i don't feel like helping AnMaster. < 1228154240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehfird: why on earth would you assume people would randomly add an extra 4 to things? < 1228154253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, or an extra f... < 1228154258 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that wasn't a regexp. < 1228154258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1228154260 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1228154261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and also just admitting the mistake would be easier < 1228154275 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: well, clearly, it's a syntax error as a regexp < 1228154286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also he didn't say that initially < 1228154289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's legal but pointless as a wildmat < 1228154306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :{,f} < 1228154306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: don't be too hard on ehird, his keyboard obviously has an invisible f key button that he pressed by mistake < 1228154311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :being invisible, he didn't realise < 1228154318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh? < 1228154319 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :those Apple keyboards are strange... < 1228154322 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah true < 1228154333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :k, call me back when you're talking about esolangs instead of lolling with AnMaster about me, i kind of have better things to do than being highlighted every 2 seconds < 1228154335 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228154340 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so you mean he got one normal and one invisible f? < 1228154344 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :presumably < 1228154351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also he can't simply admit he did a mistake < 1228154351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as he's obviously capable of typing visible fs < 1228154365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually, he seems to have admitted he was being deliberately obstructive to try to annoy you < 1228154367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sighs < 1228154374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well true, but... < 1228154379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which makes complaining about the resulting revenge a bit rich < 1228154418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, haah < 1228154420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah* < 1228154439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok the bff4 code isn't very well commented < 1228154447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://mazonka.com/brainf/bff4.c < 1228154474 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one helpfull thing is that -DLNR is supposed to be what makes it optimize linear loops < 1228154495 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so hopefully not to hard to find the relevant code that way < 1228154521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : if( z->linear ) < 1228154521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : { < 1228154521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : int del = m[mp]/z->linear; < 1228154521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : for( i=0; isz; i++ ) m[mp+z->off+i]+=del*z->d[i]; < 1228154521 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : } < 1228154524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that seems to be it < 1228154534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it calculates if it is linear a bit before < 1228154539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now wtf does that code do < 1228154540 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'm too busy with other things to attempt to parse that code, I think < 1228154552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, a bit obfuscated isn't it < 1228154562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :meaningless variable names, not enough spaces < 1228154574 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's slightly worse than what I write on average, which means it must be /really/ bad < 1228154593 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the whole file is like that < 1228154601 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228154609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, after the includes there is *NO* comment < 1228154631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I comment my code quite a bit normally < 1228154634 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :especially the obfuscated code < 1228154643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even the IOCCC stuff is commented, although the comments are just there to confuse people < 1228154645 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :such as /\ < 1228154647 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with the * on the next line < 1228154670 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228154673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well this is the reverse < 1228154695 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, also bff4 seems to be an interpreter not a compiler < 1228154715 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's basically a bytecode compiler + interpreter, I think < 1228154726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228154981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm would it be possible to optimize > or < into a constant goto cell after an unbalanced loop? < 1228154986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what would be needed to be able to < 1228154988 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean like < 1228154996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :setting pointer to a fixed value < 1228155008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not like adding or subtracting a specific value < 1228155033 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :another thing < 1228155040 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :guys < 1228155041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about loops like: < 1228155044 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :sambuca = delicious < 1228155047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : ais523, hm would it be possible to optimize > or < into a constant goto cell after an unbalanced loop? <--- that's the main thing I want to focus on < 1228155056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>.<-] < 1228155061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is balanced < 1228155066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but not easily translated < 1228155069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm wait < 1228155075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could make a balanced one too < 1228155089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>+<.] < 1228155094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228155095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :waiut < 1228155096 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :[>.<-] is trivially translated < 1228155096 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait* < 1228155098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :, < 1228155101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not . < 1228155104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I typoed that < 1228155104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it just prints a character lots of times < 1228155109 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :, is more interesting < 1228155110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I typoed, I meant , < 1228155112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228155124 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that just reads characters forever, doesn't it? < 1228155124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or , that ends up affecting loop count < 1228155131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but where you can still know the cell < 1228155149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm ok, so what about one where it substracts 78 from the value it read? < 1228155153 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: things like ,[.,] probably can't be optimised any furthre < 1228155157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*further < 1228155160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could be easily input and hit 0 < 1228155162 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or not < 1228155166 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see what I mean? < 1228155200 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like: [, -78 ] < 1228155206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in pesudo code < 1228155213 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then if I enter N the loop will ned < 1228155218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but anything else it will continue < 1228155221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yet it is balanced < 1228155230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure that is hard to optimize more < 1228155236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but you could have other code < 1228155237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in it < 1228155239 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1228155250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would be easy to optimize with known iteration count < 1228155260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but you can no longer do anything but a while loop < 1228155271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, right? < 1228155275 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there is nothing intrinsically bad about while loops < 1228155284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the number of nested loops you want to be able to keep down in a program < 1228155295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, true < 1228155310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but still user input affecting the loop counter might be hard to handle < 1228155315 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no it isn't, just do a while loop < 1228155315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it blocks a lot of optimizing < 1228155320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what it /is/, after all < 1228155332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't block the sort of high-level optimisations I care about, just your low-level parallelised megafors < 1228155343 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, true, but you know what I saw recently, with gcc, a while loop used for comping CRC, was slow < 1228155346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :changed to a for loop < 1228155349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a lot faster < 1228155368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes object size was known at compile time in both cases < 1228155371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: is "a lot" a factor of 10000 or more? < 1228155375 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or more like 1.2? < 1228155386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, a lot being like a factor or 4 times as fast or so < 1228155387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the factor-of-10000 changes I'm going for < 1228155399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :between 4 and 8 < 1228155400 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or so < 1228155403 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1228155436 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, since it was run several hundred of thousands of times during a single execution however < 1228155441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it did help < 1228155456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was at the top of "time spent in function" in gprof output < 1228155466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before < 1228155471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :far from the top after < 1228155476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so for that case it mattered < 1228155481 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, I'd like to end this conversation, so I can concentrate on something else < 1228155485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ok :) < 1228155487 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have a massively long email to reconstruct < 1228155491 0 :Deewiant!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1228155501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, meanwhile I will try to work on some ideas I got from this convo < 1228155508 0 :oerjan!unknown@unknown.invalid QUIT :Client Quit < 1228155524 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and i will go to el shoppo < 1228155528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, cya < 1228155545 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :optimizing bf again i see, i gutta read the context when i returnn < 1228155994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, we had some new ideas < 1228156058 0 :Deewiant!n=deewiant@iruel.hut.fi JOIN :#esoteric < 1228156070 0 :ineiros!unknown@unknown.invalid QUIT :Read error: 101 (Network is unreachable) < 1228156741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant, ais523: good name for the project? < 1228156745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't think of one < 1228156753 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bf2c seems to be used already < 1228156757 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: bf4 < 1228156762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1228156765 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with one f < 1228156776 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Results 1 - 10 of about 704,000 for bf4. (0.17 seconds) < 1228156781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not good < 1228156785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :want a googlable name < 1228156901 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1228156922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Results 1 - 8 of 8 for bf4 brainfuck. (0.05 seconds) < 1228156925 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm much better < 1228156936 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and the interpreter with the same name is crap it seems < 1228156939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1228156984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bfff3.14 < 1228156986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what about that? < 1228157016 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :call it "before" < 1228157059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, not googlable < 1228157126 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't really put much stock in Google < 1228157180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228157334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: tell ideas < 1228157380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, read above? < 1228157388 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm busy coding now < 1228157399 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ic < 1228157852 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1228158357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, right, before it is < 1228158384 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders what went into that < 1228158412 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and will the successor be called befyve? < 1228158480 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :is this an interpreter for ordinary bf, or is there something extra? < 1228158488 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :oklopol < 1228158505 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive < 1228158508 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1228158559 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :psygnisfive: glio < 1228158564 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you broke the chain :( < 1228158602 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :glio? < 1228158609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, not an interpreter < 1228158610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :a bitta glio never hurt anyone < 1228158611 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :miz glio? < 1228158612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is a compiler < 1228158614 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to C < 1228158619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :optimizing one < 1228158624 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know who miz is < 1228158630 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it was a very short chain... < 1228158634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it will implement some new ideas that ais523 and me discussed above < 1228158642 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: killed in its infancy :( < 1228158652 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: i think oerjan extrapolated it'd be a long conversation. < 1228158664 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but then i had to come and steal focus < 1228158675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hahah at function name: before_postprocess < 1228158676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228158693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or: < 1228158695 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :prepostprocess < 1228158696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before_init() < 1228158701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is actually emitted < 1228158706 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: that's preposterous < 1228158709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and before_cleanup() < 1228158710 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's emitted now? < 1228158724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "static inline void before_init(void) {", < 1228158724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " cells = malloc(CHUNKSIZE * sizeof(beforecell));", < 1228158724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " cellcnt = CHUNKSIZE;", < 1228158724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " memset(cells, 0, cellcnt * sizeof(beforecell));", < 1228158724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "}", < 1228158739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I based this on the def-bf compiler I was working on < 1228158749 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :except pikhq never finished his high level part < 1228158755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I consider the def-bf stuff dead < 1228158759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no one ever finishes anything < 1228158765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: actually the second google hit on glio is on someone who died from it :/ < 1228158771 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1228158781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "static inline void before_cleanup(void) {", < 1228158781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : " free(cells);", < 1228158781 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : "}" < 1228158787 0 :psygnisfive!unknown@unknown.invalid PRIVMSG #esoteric :anyone ever done any machine learning stuff? :T < 1228158870 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: most hilarious death of the day, even more fun than your chain. < 1228158887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wtf is glio? < 1228158901 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :apparently it was an abbreviation of glioblastoma < 1228158928 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah that's what i meant < 1228158931 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228158934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cancer < 1228158950 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes, who doesn't like cancer < 1228158956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :!! -> < 1228158968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't < 1228158985 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :now i still wonder what oklopol meant by glio < 1228159025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: stop getting my sarcasm, you're ruining all the AnMaster from me. < 1228159051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1228159054 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh i didn't see your "yeah that's what i meant" < 1228159168 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lessee, there's a User:Glio on wikimedia < 1228159194 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!test < 1228159195 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :116.101.115.116. < 1228159197 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a chinese < 1228159206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!hm nice very nice < 1228159207 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :104.109.32.110.105.99.101.32.118.101.114.121.32.110.105.99.101. < 1228159214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf >>,[[-<++>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[<[-]+>->+<[<-]]]]]]]]]]>]<<[>++++++[<++++++++>-]<-.[-]<]++++++++++.[-]>>,]!9 < 1228159214 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :57. < 1228159238 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: of course i was hoping you were fluent in the Glio-Oubi language < 1228159630 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228159644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :already the not very much optimizing compiler is twice as fast as bff4 < 1228159648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1228159657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess the fact that it is compiled is the cause < 1228159665 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: wow, that's pretty good < 1228159667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is it linearising? < 1228159669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, no < 1228159675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just merging >>> <<< and such < 1228159685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, was testing on mandelbrot.b < 1228159688 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, probably it depends on the program you run it on then < 1228159690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :can pastebin it if you want < 1228159740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, was using gcc -march=k8 -msse3 -O3 -ftree-vectorize for both bff4 and the source my compiler generated < 1228159758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :+[>+] should terminate when the first cell wrap-arounds; that's just some 3*256000 instructions. Well, I guess it should time-out before that, actually. < 1228159761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ gcc -Wall -Wextra -march=k8 -msse3 -O3 -ftree-vectorize -DLNR -o bff4 bff4.c < 1228159762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that one < 1228159764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I'd argue that your compiler is not at all faster than bff4 < 1228159771 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just you're using better compiler options < 1228159775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a better implementatino < 1228159778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*implementation < 1228159786 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I'm using the same options for both < 1228159803 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ gcc -Wall -Wextra -march=k8 -msse3 -O3 -ftree-vectorize -o mandelbrot mandelbrot.c < 1228159804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well a compiler's always going to beat the interpreter unless the interpreter manages to optimise stuff a lot < 1228159814 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed < 1228159827 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but this makes it very very hard to compare < 1228159833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if not impossible < 1228159854 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: how do they compare on Lost Kingdoms startup? < 1228159865 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm hard to measure < 1228159869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I used this: < 1228159878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :time ./mandelbrot < 1228159879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m10.572s < 1228159879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m9.879s < 1228159879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.059s < 1228159883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well output cut < 1228159883 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and < 1228159890 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[>+]++++++++++. < 1228159892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :time ./bff4 < mandelbrot.b < 1228159893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m20.173s < 1228159893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m18.722s < 1228159893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.143s < 1228159894 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :. < 1228159899 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Seems that my timeout limits are not very strict. < 1228159917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[>+]++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. < 1228159921 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :< < 1228159933 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: how do you explain that? < 1228159939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's executing the code after +[>+] < 1228159939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, waiting for gcc to compile lostkingdom < 1228159940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1228159942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is really strange < 1228159946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :had to abort < 1228159948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :swap trashing < 1228159949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1228159953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ah, I forgot about that... < 1228159956 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Why not? +[>+] terminates when one cell wrap-arounds. < 1228159967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well I removed the case stuff < 1228159969 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: no it doesn't < 1228159971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it is no longer needed < 1228159976 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it sets each cell to 1 on the entire atpe < 1228159978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it still manages to be very slow < 1228159978 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*tape < 1228159978 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have a 1000-cell tape which wraps, and one-byte cells. < 1228159982 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and swap trash < 1228159986 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: oh, the tape wraos? < 1228159988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*wraps? < 1228159993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ wc -l LostKng.c < 1228159993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :168337 LostKng.c < 1228159994 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1228159997 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no wonder we couldn't get it to display an out-of-tape message < 1228159998 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with LOTS of macros too < 1228160006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that expands quite a bit < 1228160040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ gcc -std=c99 -E -o tmp.c LostKng.c < 1228160046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ wc -l tmp.c < 1228160047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :169855 tmp.c < 1228160050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not as much as I feared < 1228160064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just a 5.7 MB file :P < 1228160078 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, there's no infinite tape in fungot's brainfuck. Isn't a fixed-size memory quite common for brainfuck? < 1228160078 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: get. out. < 1228160084 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: Well excuse me! < 1228160085 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: let's just pretend that it's necessary :) at least i have. :) ( and i'm not sure what < 1228160090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228160097 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, bff4 exists on lostkingdom < 1228160105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*exits? < 1228160110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1228160138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :read(0, "#!/usr/bin/bf\n\n# Name : Lost"..., 2048) = 2048 < 1228160138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brk(0) = 0x2263000 < 1228160138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brk(0x2284000) = 0x2284000 < 1228160138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :exit_group(0) = ? < 1228160141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how strange < 1228160187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why did you just paste that? < 1228160192 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, what is exit_group? < 1228160195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was stracing it < 1228160201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why bff4 exits < 1228160202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and brk seems to be acting entirely sanely there to me < 1228160222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523: since I don't know how to feed input to a program running under gdb from a pipe < 1228160227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since that is what bff4 wants < 1228160230 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you do like; < 1228160234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :./bff4 < foo.b < 1228160239 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems < 1228160249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: gdb has a command-line arg for that, IIRC < 1228160257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I don't remember what < 1228160297 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember what it is either < 1228160350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm now it works < 1228160356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I removed the headers < 1228160359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like #! < 1228160362 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1228160370 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it treats ! special right < 1228160377 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228160382 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :! means end of program, start of input < 1228160382 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228160387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in BF programs which take them in the same stream < 1228160409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1228160422 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :this means I have to paste all of lostkingdom on it's stdin < 1228160424 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fuck that < 1228160451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have better things to do < 1228162286 0 :oklopol!unknown@unknown.invalid QUIT :Connection reset by peer < 1228162308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :damn I need an integer that can also be unset < 1228162316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can't reverse any special value < 1228162319 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what to do < 1228162329 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: define a Maybe Integer < 1228162335 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, C.... < 1228162343 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although this requires you to use a programming language, like Perl with Moose or Haskell, in which they exist < 1228162347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and the size is important < 1228162354 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :can't you use the next size up? < 1228162354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like struct size < 1228162369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well no this is for tracking offset of cells within loop < 1228162373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well you can't fit 32 and a fraction bits into a 32-bit variable < 1228162376 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like size_t offset; < 1228162379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :physically impossible < 1228162383 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes :( < 1228162387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228162389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not size_t < 1228162391 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ssize_t < 1228162391 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could have a separate one-bit variable which tracks whether it's set or not < 1228162407 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and if it's ssize_t, why not use the minimum possible value as exceptional? < 1228162412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes let me look at padding in struct < 1228162429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but what if someone adds that many > on a 32-bit platform? < 1228162441 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can only compare them one way round is the point < 1228162443 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and use off64_t for files < 1228162458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ssize_t can only cover half the memory space as it is < 1228162469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah hm true < 1228162481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I guess the situation should never < 1228162482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :happen < 1228162487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I could document the issue < 1228162498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sounds like you really want a 33-and-a-fraction-bit variable < 1228162515 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I also yes and an union to not waste spaec < 1228162516 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the minimum value wouldn't even exist except on a 2's complement machine < 1228162516 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :space < 1228162527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's equal to 0-itself, anyway, so doesn't act sanely with arithmetic < 1228162528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, huh? < 1228162532 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's why it makes a good exceptional value < 1228162537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the value with bit pattern 100000000000000000000000000000000 < 1228162542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1228162576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is negative 0 basically < 1228162581 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it isn't < 1228162585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the opposite of -0 < 1228162586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well no true < 1228162591 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's as far from 0 as you can get < 1228162592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :positive 0? < 1228162595 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in both directions < 1228162595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228162596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1228162607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than -0 which arithmetically works the same way as 0 < 1228162612 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that would be FOO_MIN right? < 1228162616 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228162617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :assuming there is one for ssize_t < 1228162621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks < 1228162647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm there is not < 1228162648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SSIZE_MAX < 1228162652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but no MIN < 1228162655 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very strange < 1228162657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's -SSIZE_MAX-1 < 1228162664 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has to be defined like that < 1228162675 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on 2 complement < 1228162676 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :say, SHORT_MIN can't actually be -32768 < 1228162681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it has to be -32767-1 < 1228162707 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because - is an operator, and 32768 needn't neccessarily fit in an int < 1228162709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, a grep shows SHORT_MIN isn't defined either < 1228162712 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in any system header < 1228162717 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SHRT_MIN < 1228162719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1228162724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some stupid abbreviation from decades ago < 1228162726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes < 1228162731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well it is short < 1228162733 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I like it < 1228162740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228162743 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is that an attempt at a joke? < 1228162746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also SSIZE_MIN doesn't exist < 1228162754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes a *short* form of *short* < 1228162766 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :was the joke that bad? < 1228162781 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :/usr/include/limits.h:# define LONG_MIN (-LONG_MAX - 1L) < 1228162783 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1228162804 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although my headers define SHORT_MIN as -32768 directly, because they know they're for a 32-bit system < 1228162818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the same thing applies to all integer sizes, just I can't remember the relevant power of 2 < 1228162841 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was a reasonably good joke until you explained it :D < 1228162850 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, well I had to for ais523 < 1228162857 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: actually, I got it < 1228162866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just wasn't sure if you were joking deliberately or not < 1228162886 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I am normally THAT bad at jokes really? < 1228162887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1228162893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1228162897 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so, why isn't it LONG_MAXIMUM? < 1228162904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SSIZE_MIN isn't defined < 1228162906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, :) < 1228162913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's -SSIZE_MAX-1 < 1228162917 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if SSIZE_MAX is defined < 1228162921 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, on 2 complement at least < 1228162921 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and you're on a two's complement system < 1228162926 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which given your stupid optimisation you are < 1228162937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but how would i know I am? < 1228162937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err, what? < 1228162941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm just trying to count index < 1228162944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... why not detect the representation at compile-time < 1228162953 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and use SSIZE_MIN as your exceptional value on 2's complement < 1228162955 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, as in "this is offset two from start of loop" < 1228162958 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and -0 on 1's complement < 1228162967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why not use unsigned size_t, the? < 1228162969 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*then? < 1228162982 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, [>-<+] < 1228162982 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or < 1228162983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, rely on the fact that the loop can't possibly take up all of memory due to the final ] < 1228162985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, [<->+] < 1228162987 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1228162990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it can go either way < 1228162991 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus you can safely use SIZE_MAX as your exceptional value < 1228163003 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: measure offset from the start of the program instead, then < 1228163004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha ok < 1228163005 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and do a subtraction < 1228163021 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(there's also the fact that the compiler itself has to be in memory somewhere, but that isn't as funny) < 1228163023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err? what? < 1228163030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway: not easy if there is an unbalanced loop < 1228163034 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: instead of taking the offset from one place to another < 1228163037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then I can't know tape offset < 1228163043 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, tape offset < 1228163046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228163050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was what I was doing < 1228163051 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought you meant offset in program < 1228163061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the stuff have already been mangled a bit by this point < 1228163066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however I'm unsure about order < 1228163088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the order that I should do various reductions < 1228163119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :should I try to handle >><< first, then the tape offset, then [-] < 1228163122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or some other order? < 1228163135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't seem trivial to combine them < 1228163157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I guess it could work < 1228163163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :except [-] shouldn't be done first < 1228163168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since that wouldn't catch < 1228163175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[>+<->-<] < 1228163178 0 :puzzlet!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1228163188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which the tape offset would manage to turn into [-] < 1228163195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which then could be turned into set 0 < 1228163204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or should I do multiple passes with each optimizer? < 1228163211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, :) < 1228163224 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: C-INTERCAL does multiple passes < 1228163224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I want to catch all cases I can catch < 1228163227 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :until nothing more is optimised < 1228163229 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's probably the best way < 1228163232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah < 1228163248 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I already avoid multiple passes with >><< reduction < 1228163255 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :by stepping one step backwards < 1228163263 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I can catch: < 1228163265 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :--<>+ < 1228163268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to turn it into - < 1228163285 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without that I would get: 2- 1+ < 1228163297 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also brb making some food < 1228163321 0 :puzzlet!n=puzzlet@147.46.241.231 JOIN :#esoteric < 1228163917 0 :warrie!n=ihope@normish.org JOIN :#esoteric < 1228163927 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Hi, #math. < 1228163968 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :BZZT, WRONG < 1228163977 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :How dare you disturb my hallucinations. < 1228163988 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Let's try this again. < 1228163990 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Hi, #math. < 1228164012 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :warrie: we're now debating whether or not 3=4 < 1228164016 0 :Deewiant!unknown@unknown.invalid QUIT :"Viivan loppu." < 1228164016 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird seems to think it is, for some reason < 1228164020 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hi warrie, did you know your nick is a prime in base 256? < 1228164024 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :No we're not. < 1228164029 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, we're debating whether 4 increased by 1 is 5 < 1228164030 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Nope. That's cool. < 1228164037 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION might be lying < 1228164043 0 :Deewiant!n=deewiant@peridootti.hut.fi JOIN :#esoteric < 1228164043 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :haven't checked yet :D < 1228164057 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: "warrie" is even in base 256 < 1228164064 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no way < 1228164066 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unless you use ASCII < 1228164072 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :96+5 is odd < 1228164075 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :going by the hex 0-9a-f thing but extended < 1228164080 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then you get a, c, e as even < 1228164083 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course i'm using ascii < 1228164088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1228164139 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :The derivative of |x| with respect to x is |x| divided by x, right? < 1228164162 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's one way to put it < 1228164172 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's undefined at 0, though, rather than infinite < 1228164174 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Still true in the complex numbers and all? < 1228164180 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although whether this makes a difference depends on how pedantic you are < 1228164184 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :|0|/0 is not very infinite. < 1228164195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :warrie: well, it's a NaN < 1228164214 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :arguably that's decent for an undefined derivative < 1228164215 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :darn it's divisible by 5 < 1228164221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1228164244 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I'll do the Chain Rule Test. < 1228164297 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :warrie: |x| is surely not analytic so complexes are not nice < 1228164320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ah I worked it out < 1228164326 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I need to track offset from what anyway < 1228164338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that one is NULL or a node pointer < 1228164345 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how sane this is... < 1228164436 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :-i = |i|/i = d|ix|/dx = d|ix|/d(ix)*d(ix)/x = |ix|/(ix) * i = |x|/x... yeah, I forgot that you can't differentiate |x| over the complex numbers. < 1228164465 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :warrie: you might check it in the x direction < 1228164501 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :ACTION shrugs < 1228164504 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :sqrt(x^2+y^2) < 1228164518 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I'll just use "undefined". < 1228164598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what about my nick? < 1228164728 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :gah, this is annoying: I found an interesting obfuscated quine on a webpage, but it doesn't give the program, just an example of its output < 1228164786 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I hate it when you know a quine's output but not its source code. < 1228164790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1228164807 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1228164808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in < 1228164811 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in C* < 1228164829 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is using memset(foo, 0, sizeof(foo_t)); < 1228164831 0 :Deewiant!unknown@unknown.invalid QUIT :"Viivan loppu." < 1228164838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where foo foo_t *foo; < 1228164843 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and foo_t is a struct < 1228164851 0 :Deewiant!n=deewiant@tavi.hut.fi JOIN :#esoteric < 1228164853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a safe way to ensure are pointers in said struct are all NULL? < 1228164856 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :What is an obfuscated quine, by the way? < 1228164862 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1228164867 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Of course not, since all-bits-zero is not necessarily NULL. < 1228164886 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Not that people wouldn't do that sort of stuff anyway. < 1228164892 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :warrie: something which isn't obviously a quine < 1228164897 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although this one's just a meaning-quine < 1228164905 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in that it outputs a program that does the same thing as it < 1228164909 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but isn't necessarily the same < 1228164912 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :several programs, in fact < 1228164940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228164941 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 4714790940847662450 < 1228164950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, is that my nick? < 1228164954 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well it is even so... < 1228164956 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228164967 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and divisible by 5 that too < 1228164971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, and 10 < 1228164977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also how do you calculate it? < 1228164991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like befunge fingerprints? < 1228164997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in 0xabcdef < 1228165001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so each < 1228165003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ab cd ef < 1228165006 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maps to a char < 1228165007 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or < 1228165010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :some other way? < 1228165016 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i used haskell: readInt 256 (const True) (fromEnum) "AnMaster" < 1228165030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, well that doesn't answer the question < 1228165032 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(requires Numeric module) < 1228165044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, what is the mathematical mapping? < 1228165056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how do you parse it < 1228165067 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you just pointed at a black box < 1228165070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and said "I use that" < 1228165071 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i guess that befunge thing is the same < 1228165076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it didn't answer the *how* < 1228165090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, that is: < 1228165098 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :while read char { < 1228165106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : bitshift result up by 8; < 1228165114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : add ascii value of char; < 1228165114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :} < 1228165119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in pseudo code < 1228165128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, is that how you do it? < 1228165138 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that should be equivalent yes < 1228165151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, so CFUN is? < 1228165153 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except readInt uses an actual multiplication by 256 < 1228165171 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(since it is not restricted to powers of 2) < 1228165175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, it should be 0x4346554e < 1228165176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw < 1228165177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CFUN < 1228165181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it is the same way < 1228165182 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :"fizzie" is 112603212441957 = 3*1747*20897*1028141. I'm "almost prime", for some values of "almost". < 1228165206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ factor 112603212441957 < 1228165206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :112603212441957: 3 1747 20897 1028141 < 1228165209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well ok < 1228165212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :almost I guess < 1228165219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : except readInt uses an actual multiplication by 256 < 1228165219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : (since it is not restricted to powers of 2) < 1228165226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is odd, doesn't ghc optimize? < 1228165234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: so what is the value of "almost"? < 1228165245 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Int and Integer are different types in Haskell < 1228165250 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: In this case, "not really, but sorta". < 1228165254 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's 0x416e4d6173746572 < 1228165262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, CFUN? < 1228165270 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no then you use some totally different way < 1228165271 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"AnMaster" < 1228165275 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228165282 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, and what is CFUN in your system < 1228165284 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that string < 1228165290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : oerjan, so CFUN is? < 1228165292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : oerjan, it should be 0x4346554e < 1228165300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :[cut] < 1228165303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: it's 0x416e4d6173746572 < 1228165313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, doesn't make sense does it? < 1228165340 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's correct < 1228165342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that string oerjan pasted is "AnMaster", I think < 1228165347 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wait, no < 1228165363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that 72 at the end looks wrong < 1228165364 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do have a convert the other way for 32-bit routine somewhere around here < 1228165369 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, ofc, there are more than 16 letters in the alphabet < 1228165373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so yes, probably AnMaster < 1228165377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228165380 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1228165397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : fungeCell fprint = ImplementedFingerprints[i].fprint; < 1228165397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : char fprintname[5] = { (char)(fprint >> 24), (char)(fprint >> 16), < 1228165397 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : (char)(fprint >> 8), (char)fprint, '\0'}; < 1228165398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228165408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that very much depends on it being max 32-bit < 1228165412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and all printable chars < 1228165440 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i thought by CFUN you meant some technical abbreviation meaning "fingerprint notation" < 1228165454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, no it is the handprint of cfunge < 1228165460 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is: interpreter ID < 1228165463 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :perl -e 'use bignum; $x = 256*$x + ord($_) foreach split //, "fizzie"; print $x, "\n";' < 1228165471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with some type punning it should be faster < 1228165471 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The perly thing is less pretty than Haskell. Surprise! < 1228165476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to just store it as an integer < 1228165481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and read it as chars < 1228165482 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however < 1228165486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that isn't very safe < 1228165493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :from a C standard perspective < 1228165499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I try to avoid such cases < 1228165502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, I've been writing a lot of Prolog recently < 1228165504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I assume strict aliasing rules < 1228165509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and decided that Prolog is really pretty < 1228165517 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and at least as reflective as Smalltalk < 1228165520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :except in 3 places: FPDP, FPSP and 3DSP < 1228165539 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, heh I should probably try to learn prolog < 1228165545 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :got a link for any good online resource? < 1228165557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I learnt it from paper books originally < 1228165562 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so no, unfortunately < 1228165574 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh well < 1228165582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there probably are some < 1228165586 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but Prolog is... different < 1228165588 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228165592 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm yes? < 1228165595 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and many sources for it start by trying to compare it to something < 1228165604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have seen backtracking done in scheme < 1228165606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it wasn't pretty < 1228165609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which I think is a bad way to learn it, but how else could you start? < 1228165609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or easy to follow < 1228165624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it abused both macros and call/cc < 1228165636 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :abusing call/cc is an obvious way to do backtracking < 1228165643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well yes < 1228165662 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :In fact I find call/cc abusive for anything, yes I see how it is useful < 1228165666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it is mindbending < 1228165689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I can write perfectly fine and working scheme programs without either macros or call/cc < 1228165692 0 :Deewiant!unknown@unknown.invalid QUIT :"Viivan loppu." < 1228165699 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a lot more typing though < 1228165717 0 :Deewiant!n=deewiant@vipunen.hut.fi JOIN :#esoteric < 1228165814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :backtracking is a monad, and all monads can be implemented with call/cc, i hear < 1228165846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: I had a discussion with a really theoretical computer scientist once < 1228165849 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(+ some state) < 1228165862 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I asked whether backtracking was a monad, and he said it couldn't be because that obviously would fail on infinitely large data sets < 1228165869 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I was too confused to ask him to elaborate on that < 1228165870 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think SICP has one chapter about their amb-eval thing, which implements Scheme with a "(amb x y z)" special form, which will evaluate to the "correct" value, backtracking whenever it fails (hits (amb) with no choices). < 1228165967 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, subchapter, anyway. It's there where they start with the metacircular evaluator, then try lazy evaluation with it, then the nondeterministic amb thing, and finally some logic programmingsies. < 1228166217 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ais523: maybe he was confused about something like that amb which only takes a finite number of arguments... < 1228166231 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but you can obviously get around that with recursion < 1228166337 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and backtracking _does_ fail on infinitely large data sets, if by fail you mean "never gets to the end" < 1228166418 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :i have a brainfuck question < 1228166423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes? < 1228166427 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :elsif command == '[' and tape[thread[pointer]] == 0 < 1228166443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that isn't exactly a question... < 1228166462 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :does the matching ] brace do a test as well? < 1228166469 0 :Deewiant!unknown@unknown.invalid QUIT :"Viivan loppu." < 1228166479 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :brainfuck spec on esowiki says no, but one of the derivatives did < 1228166480 0 :Deewiant!n=deewiant@tavi.hut.fi JOIN :#esoteric < 1228166489 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :lost kingdom runs without a check on ] < 1228166490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :jayCampbell: it doesn't matter normally < 1228166499 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because either ] jumps back to [, which does the test < 1228166503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or ] does the test itself < 1228166513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus specs generally say either < 1228166522 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1228166537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one big advantage of testing at both ends is it then doesn't matter which side of the [] you jump back to, but that's an implementation detail that rarely comes up < 1228166551 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, it doesn't matter unless you're implementing, in which case you can choose either < 1228166568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :implementations in most programming languages test just at the [ because that fits the semantics of while loops < 1228166581 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but if you're implementing BF in an esolang, that's often slower if you have no while-loop-equivalent < 1228166586 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :so i built a weave interpreter (prefork, individual and shared tapes) that does brainfork runtime threading and pbrain subroutines < 1228166619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, actually I remember testing once at entry and after that I tested if I should jump back at the end < 1228166628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then jumped to the instruction after the matching [ < 1228166632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was in bashfuck < 1228166633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1228166648 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there are a huge number of ways to do it, I think < 1228166673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, in before I just emit a while loop currently < 1228166686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the future I will emit for loops for balanced pure loops < 1228166690 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where pure == no IO < 1228166700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes it doesn't match pure as in pure functional < 1228166710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but it was the best word I managed to come up with < 1228166722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, of course I plan to optimize it even more later on < 1228166738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but currently I haven't managed to understand exactly how that would be done < 1228166752 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also it will to for when io isn't on iteration counter cell < 1228166754 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and balanced < 1228166780 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1228166972 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, < 1228166978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :currently I have these flags < 1228166996 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :balanced, noinput, noputput, iter_noinput < 1228167002 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot's brainfuck turns [ into bytecode "jump if zero" and ] into "jump if nonzero", with jump targets being one past matching pair. < 1228167003 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: xpdf really should allow searching with regexps, ' fnord < 1228167043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : bool balanced, noinput, nooutput, iter_noinput; < 1228167043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : balanced = noinput = nooutput = iter_noinput = false; < 1228167047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that bad coding style? :D < 1228167106 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not IMO < 1228167117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hehe < 1228167120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I guess not < 1228167125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although on an embedded system, you could save 3 bytes of memory by making them bitfields in a struct < 1228167146 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it'll be faster that way on most such systems as they have bit-test instructions, they can handle bits faster than entire ints < 1228167152 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, most RL processors will prefer ints < 1228167271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, they are in a struct < 1228167286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just I need to track them in the function < 1228167292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where I work on loops < 1228167298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :later I put it in the struct < 1228167300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also I typoed < 1228167303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it should have been: < 1228167311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ssize_t balance = 0; < 1228167311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : bool noinput, nooutput, iter_noinput; < 1228167311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : noinput = nooutput = iter_noinput = true; < 1228168353 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228168386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter-uncommented.pfk < 1228168388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno is WIN < 1228168397 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1228168430 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I liked the idea of "OCRing" < 1228168446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno, hm? < 1228168464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how does it OCR so quickly? < 1228168484 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :I found a bit pattern that worked for all numbers < 1228168488 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :see the commented version < 1228168496 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter.pfk < 1228168503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha, that's great < 1228168514 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :chained IFs except for distinguishing 0 from blank < 1228168516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i really like the logistical constraints paintfuck givse < 1228168521 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :your output IS your memory, it's just such a nice idea < 1228168549 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :someone should make a version of PaintFuck where the source code is stored on the 2D tape, too < 1228168555 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and is self-modifying < 1228168555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1228168600 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it's nice as it is < 1228168612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno: wht happens when it reaches its own start? < 1228168613 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :fixed a repeated comment in the commented version, reload < 1228168615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does it just implode? < 1228168622 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :weave.rb reflective via braintwist's X swapper now < 1228168626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it'd be infeasable to wait that long ofc :P < 1228168631 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ehird: dunno, try a smaller grid, it's designed for infinite grid < 1228168731 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1228168733 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ti messes up < 1228168744 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1228168749 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't wrap < 1228168751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it starts counting the wrong digit < 1228168756 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :while making up its own digits :P < 1228168758 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :so it works on infinite grid < 1228168762 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228168785 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :yes, it increments by knowing which bits to change, if the number is not the expected it breaks < 1228168793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228168796 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :gtg < 1228168800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1228168801 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228168804 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228168941 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228168944 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228168949 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey ok < 1228168951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1228168953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :where is oklopol < 1228168957 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228168960 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228168963 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228168966 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228168977 0 :ehird!unknown@unknown.invalid PART #esoteric :? < 1228169167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :* oklopol has quit (Connection reset by peer) < 1228169173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not that you will see it anyway < 1228169353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, there? < 1228169358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1228169359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see /msg < 1228169363 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, maybe < 1228169367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't get a /msg from you < 1228169379 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, you warn me about /msg /before/ you say it? < 1228169777 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1228169960 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes I do < 1228169990 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1228170004 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just interested < 1228170262 0 :oklopol!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1228170294 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why not? < 1228170311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it spams the rest of the channel for no obvious reason < 1228170317 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1228170318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :good reason < 1228170325 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if something's the sort of private thing that goes in /msg, why tell everyone else about it? < 1228170363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1228170366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it was just spamming < 1228170369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :spammy* < 1228170374 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and didn't want to open pastebin < 1228170380 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :why refer to the past just as i join. < 1228170389 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now i have to open logz < 1228170412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: we were discussing why AnMaster warns people they're about to get a /msg before e /msgs them < 1228170412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh also how would you transfer a balanced loop to a polynom? < 1228170423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: using algebra < 1228170429 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the balanced loop runs the number of times of the first arg < 1228170441 0 :lostgeek!unknown@unknown.invalid QUIT :"leaving" < 1228170445 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you take the first arg, and multiply it by all increments inside the loop < 1228170463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so [->+<] is tape[0] times tape[1]++ or tape[1]+=tape[0] < 1228170465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :polynoms, isn't that 4 + 2a + 1b^2 + 3c^3 = 0 < 1228170466 0 :ehird!n=ehird@eso-std.org JOIN :#esoteric < 1228170468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes < 1228170471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, right < 1228170488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it goes from +1 to +x, effectively < 1228170494 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :with another nested loop, it can be +x^2 < 1228170496 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that require balanced "no-io" loops < 1228170500 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1228170506 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1228170537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :he probably warns you so you can say no if you're naked and don't want to see or something, kinda like a doorbell. < 1228170544 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*want him to < 1228170552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :dunno, just a guess < 1228170556 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1228170572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: /msg doesn't work like that, though, does it? < 1228170572 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, err, irc is text only < 1228170580 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :more to the point, it's the other way round < 1228170589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also /msg is just the same as channel messages < 1228170604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PRIVMSG #channel < 1228170606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :PRIVMSG nick < 1228170607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose that if AnMaster warned me that he was about to send me an ASCII art goatse, a warning would give me time to ignore him < 1228170608 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1228170609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no difference < 1228170609 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: good point < 1228170612 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but why would he do that? < 1228170614 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: bad point < 1228170621 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ? < 1228170631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they are both the same on protocol level < 1228170632 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: as opposed to ais523's < 1228170652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: correct but not very relevant point, I think oklopol meant < 1228170657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :>> :ais523!n=ais523@eso-std.org PRIVMSG #esoteric :+AnMaster: correct but not very relevant point, I think oklopol meant < 1228170660 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what i meant is < 1228170666 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :freenode adds the + < 1228170681 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what ais523 said i didn't think about, what AnMaster said was a trivial fact i didn't consider worth mentioning < 1228170701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah < 1228170727 0 :Corun!n=Corun@94-193-40-216.zone7.bethere.co.uk JOIN :#esoteric < 1228170729 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oooooooooooooooooooooooooooooooooo < 1228170736 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hi Corun < 1228170744 0 :Corun!unknown@unknown.invalid PRIVMSG #esoteric :MOOOEEEEEEEEP < 1228170748 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1228170755 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes i see you're in a goody moody! < 1228170809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually... really had nothing to do with triviality, it's just what AnMaster said escaped the analogy, making it kinda pointless as what i said was just a joke < 1228170829 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :while ais523 attacked the analogy, which is relevant even if it's a joke < 1228170832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well true < 1228170869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ponders referring to the future just as oklopol will part < 1228170879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's deep < 1228170883 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1228170888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the opposite of talking about the past forcing you to read logs < 1228170888 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1228170900 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just as i part or just before it < 1228170906 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm really slow today... < 1228170914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228170915 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ofc < 1228170920 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :just as i'm about to leave < 1228170921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you say < 1228170942 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"ais523, so wanna talk about this interesting thing?", and ais523 responds, umm, "yes" < 1228170947 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's it raelly < 1228170957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, just before < 1228170958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*ruylla < 1228170965 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes i raelized < 1228170967 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1228170974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, yes or maybe about what we will say < 1228170977 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*roalezud < 1228170977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in some detail < 1228170986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like. "will you mean that a == b"? < 1228170990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1228170991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1228170998 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well actually you'd have to refer to it, that'd be more complicated < 1228171010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1228171013 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in detail, that's the point < 1228171026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fascinating issues, these < 1228171053 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: what's with your typo corrections? < 1228171061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523, why not? < 1228171061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : because it spams the rest of the channel for no obvious reason < 1228171061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : hm ok < 1228171061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : good reason < 1228171067 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :make that future tense < 1228171070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever the word is < 1228171090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that would somehow connect oklopol around into a loop, though, wouldn't it? < 1228171101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well just as an example < 1228171127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : ais523, why will you not? < 1228171140 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :? < 1228171144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : because it will spam the rest of the channel for no (currently) obvious reason < 1228171148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : hm ok < 1228171154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : will be good reason < 1228171157 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1228171159 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :um... < 1228171160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, just tried to make it future < 1228171162 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's ridiculous < 1228171163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't work < 1228171165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yeah < 1228171170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't work for that example < 1228171177 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228171183 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: my typo corrections got tired of having to exist so often. < 1228171189 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so they committed suicide. < 1228171195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in that case, probably using the present would be more idiomatic even if you're talking about the future < 1228171223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"why won't you?" "because it will spam the rest of the channel" "hmm... ok; that's a good reason" < 1228171228 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the last there is true present < 1228171233 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :why correct when you can type with your eyes ckised? < 1228171250 0 :Corun!unknown@unknown.invalid QUIT :"Leaving" < 1228171251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me try that < 1228171262 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i never look at my fingers < 1228171271 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why cprrecy wjem ypi cam type with your ues c;psed? < 1228171276 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :it's a fun thing to try but not with a lump in your eye >_> <-- did it < 1228171283 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, the result of that actually came out readable < 1228171296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I even got 3 words in a row right < 1228171311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :took me a few seconds to find home row, then I typed it all quite quickly < 1228171311 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :occasionally it goes completely awol < 1228171339 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :enjoy coca cola. but enjot brainfuck even more. < 1228171343 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if you use a sensible system, there's no difference whether they're open or not < 1228171349 0 :GreaseMonkey!unknown@unknown.invalid PRIVMSG #esoteric :anyways... < 1228171358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1228171367 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ok < 1228171585 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, exactly how were you typing? < 1228171589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to be or not to be < 1228171595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it was closed eyes < 1228171597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: with my eyes shut < 1228171598 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that worked perfectly < 1228171604 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thisworks ok < 1228171607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well almost < 1228171609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1228171613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries again, ok? < 1228171618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even using the bumps on f and j to find the home row < 1228171619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that wasn't hard < 1228171650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the garbles was because I forgot the bump was on j not h, normally I hover my fingers over f and h because I rarely type ; < 1228171774 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't make any more mistakes with my eyes closed, i would never click enter before checking i typed it right though < 1228171794 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err < 1228171799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't need that < 1228171823 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know the keyboard well enough < 1228172068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as soon as I find space, shit or enter < 1228172116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION could probably use "das keyboard" if only it had Swedish keyboard layout < 1228172119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is same size of enter < 1228172154 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1228172157 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"shift" < 1228172176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"shit" doesn't sound very AnMastery. < 1228172198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i, on the other hand, can find shit pretty well on my keyboard < 1228172244 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1228172253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, ah typoed < 1228172287 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228172289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well the keyboard does in cleaning < 1228172374 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i recently found a keyboard on teh nets that had the keys in straight columns instead of diagonally randomized < 1228172385 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but that was costy, and i have a laptop < 1228172395 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but that might be pretty awesome < 1228172519 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p333662665.txt Paintfuck decimal counter :) < 1228172553 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, hm < 1228172582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MizardX, didn't someone else here also make one < 1228172586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno, iirc? < 1228172593 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Just saw < 1228172606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MizardX, why did you want to make a decimal counter? < 1228172650 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :I saw a few hours ago that someone mentioned it. Thought it could be fun for a first paintfuck program. :) < 1228172699 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That reminds me of a telemarketer that called my wife and tried to sell some magazine. When she said "no", the telemarketer said she needs to justify why she didn't want to order it. The implication was that if the reasons aren't good enough, she doesn't get to not order it. < 1228172723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, err that wouldn't be legal < 1228172872 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1228172894 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228172923 0 :decipher!unknown@unknown.invalid QUIT :Read error: 54 (Connection reset by peer) < 1228173043 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: well what happened, were the reasons good enough? < 1228173090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: haha that's pretty great < 1228173154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err an issue < 1228173161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :about that "until no changes" < 1228173164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when optimising < 1228173174 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I change in place so I can't compare tree after < 1228173177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm wait < 1228173178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1228173179 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :duh < 1228173188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I could pass a flag if anything was changed < 1228173246 0 :decipher!i=decipher@lyseo.edu.ouka.fi JOIN :#esoteric < 1228174111 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: when the counter overflows, does it output "counter overflow, try increasing screen width", and you've hidden that in the code so that an average human brain cannot find that in teh code? < 1228174135 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :no < 1228174145 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what does it output then? < 1228174268 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :WHAT, it just spouts random garble! < 1228174269 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :If the screen width is a multiple of four, the (w/4+1)'th digit would increase the ones, and it would continue counting. If the screen width is not a multiple of four, the result is undefined. < 1228174275 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is very disappointed! < 1228174456 0 :Corun!n=Corun@94-193-40-216.zone7.bethere.co.uk JOIN :#esoteric < 1228174466 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: great! seems that yours is more homogeneous than mine timing-wise < 1228174533 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: < 1228174536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1228174536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :b < 1228174537 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :c < 1228174542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: d < 1228174544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1228174551 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mizardx < 1228174552 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :which should be no surprise given the nested ifs I use < 1228174553 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you were beaten < 1228174564 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :MizardX: < 1228174565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter-uncommented.pfk < 1228174566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.formauri.es/personal/pgimeno/temp/esoteric/paintfuck/decimal-counter.pfk < 1228174577 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I think he knows < 1228174580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1228174584 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well pgimeno's digits are more readable < 1228174585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1228174617 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :It's just a design issue < 1228174619 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :but slower on average < 1228174626 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1228174629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pgimeno's seems to be faster < 1228174629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to me < 1228174633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1228174634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe not < 1228174635 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1228174702 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228174726 0 :pgimeno!unknown@unknown.invalid PRIVMSG #esoteric :it may depend on the interpreter, if a certain kind of instructions are not the same speed < 1228174794 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now someone make a library for simplifying equations expressed as drawn digits & operators < 1228174803 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :& vars < 1228174812 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :simplifying equations? < 1228174818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well anyway, something sensible ;) < 1228174831 0 :Judofyr!unknown@unknown.invalid QUIT : < 1228175238 0 :psygnisfive!unknown@unknown.invalid QUIT :Remote closed the connection < 1228175261 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric < 1228175657 0 :jix_!unknown@unknown.invalid QUIT :"..."