< 1225931544 0 :Corun!unknown@unknown.invalid QUIT :Remote closed the connection < 1225931559 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1225932086 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | oh ok < 1225932225 0 :Corun!unknown@unknown.invalid PART #esoteric :? < 1225935377 0 :Slereah_!n=jewbutt@ANantes-252-1-24-167.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1225935381 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :GUBMENT < 1225935382 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :JEWS < 1225935387 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :RON PAUL < 1225938371 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1225939506 0 :GreaseMonkey!n=saru@unaffiliated/greasemonkey JOIN :#esoteric < 1225939594 0 :Slereah!n=jewbutt@ANantes-252-1-24-167.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1225939977 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Slereah_: DAH GUBMENT JEWED MY RON PAUL? < 1225940041 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :You know how the gub is < 1225940437 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :RON PAUL AND DENNIS KUCINICH IN 2012 < 1225940495 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :RON PAUL AND FIDEL CASTRO'S REANIMATED CORPSE IN 2012 < 1225940513 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :RON PAUL AND RON PAUL IN 2012 < 1225940522 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Can you nominate yourself as vice president? < 1225940549 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :ron paul will be senile by 2012 < 1225940562 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Ron Paul is functionally no better than senile already. < 1225941002 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225942581 0 :warrie!n=Peggy@c-24-11-80-13.hsd1.mi.comcast.net JOIN :#esoteric < 1225942606 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Without objection, I intend to ratify the following report: "#esoteric is about politics." < 1225942663 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I object. < 1225942711 0 :Sgeo_!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1225942719 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :You can't object, you're not a player. < 1225942739 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Register, then you'll be able to object. < 1225942784 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I object to your suggestion that I must register to object. < 1225942845 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :It's not a suggestion, it's a rule. < 1225942885 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I'm not playing your game, and as such I am not following your rules. Since I am not following your rules, I may object to anything you say for any reason. Since I'm not playing by your rules, my objections have no bearing on anything. < 1225942899 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Oh. Darn. < 1225943011 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I object to your motion to darn. < 1225943025 0 :cmeme!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1225943095 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I object to your interpretation of my interjection. < 1225943278 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I object to your objection of the interpretation of your interjection leading to my objection of your response to my assertion defying your declaration arguing against my objection of your complaint at my objection. < 1225943348 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I object to everything. < 1225943353 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225943372 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I OBJECT TO NOTHING!!! < 1225943430 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Well, that was fun :P < 1225943495 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Very. < 1225943516 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Let us now take pictures of skulls among junk. < 1225943551 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :"Only one store has been a part of your life for 150 years." < 1225943558 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :That line in this commercial is so stupid :P < 1225943564 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It is literally not true of /anyone/. < 1225943628 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sends the picture, which, presumably, puts it somewhere < 1225943715 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I wish this phone had a "what the heck does that flashing icon mean" button. < 1225943940 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Well, that didn't work. < 1225943946 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to plug his phone into his computer < 1225944014 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :* warrie's computer explodes < 1225944083 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :What's that in Spanish? "calavera"? < 1225944226 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :I'll take your silence as meaning "Yes, Master." < 1225944556 0 :calamari!n=calamari@71-220-134-61.tcsn.qwest.net JOIN :#esoteric < 1225944566 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1225944583 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :saw this on slashdot: http://slashdot.org/comments.pl?sid=1019609&cid=25649459 < 1225944633 0 :warrie!unknown@unknown.invalid PRIVMSG #esoteric :Ello. < 1225944768 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Almost certainly not turing complete, no unbounded loops or recursion. < 1225944971 0 :Leonidas_!n=Leonidas@unaffiliated/leonidas JOIN :#esoteric < 1225944985 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :no recursion? hmm .. you may be right < 1225945302 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Also, 'find' isn't really useful in it unless you can create files and directories, for which you need mkdir and (something akin to) touch. < 1225945440 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :so if we changed things.. sh and ; can help with recursion < 1225945649 0 :Leonidas!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225945660 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: so does Facebook still make you sick? < 1225945698 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :calamari: It has one (1) useful feature. < 1225945713 0 :calamari!unknown@unknown.invalid PRIVMSG #esoteric :wasting time? < 1225945747 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I was referring to the event planning :P < 1225946110 0 :Sgeo_!unknown@unknown.invalid QUIT :Remote closed the connection < 1225946500 0 :sebbu2!n=sebbu@ADijon-152-1-39-187.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1225946566 0 :Slereah!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1225946566 0 :sebbu!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1225946567 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1225946902 0 :Slereah_!n=jewbutt@ANantes-252-1-24-167.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1225947320 0 :calamari!unknown@unknown.invalid QUIT :"Leaving" < 1225947452 0 :warrie!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225950126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what did he mean? that it's tc to pipe them? because that's basically max(map(computational_power,["find","xargs","grep"])) < 1225952026 0 :ab5tract!n=ab5tract@pool-71-246-5-13.phlapa.fios.verizon.net JOIN :#esoteric < 1225952240 0 :Judofyr!n=Judofyr@cE699BF51.dhcp.bluecom.no JOIN :#esoteric < 1225953149 0 :ab5tract!unknown@unknown.invalid QUIT : < 1225953335 0 :Judofyr!unknown@unknown.invalid QUIT : < 1225953686 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | cheap! < 1225958399 0 :clog!unknown@unknown.invalid QUIT :ended < 1225958400 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1225958954 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1225959493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :morning < 1225959510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :good moaning < 1225959724 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Re the stack things, of course it's trivial to do the guard pages portably, with mprotect; didn't realize (I blame tiredness) it can set individual pages out of a larger mapping. < 1225960018 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1225960272 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Currently I'm wondering why the underflow handling seems to work even though I've only implemented one half (resetting ESI correctly), not the other (setting to zero the target register). It might be just luck, those target registers might be zero at that time anyway. Also, 1+\..a,@ prints out "1 0 " instead of "0 1 ", but that seems to be a bug in the generated code already. < 1225960515 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Unisex." < 1225962806 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how would that part work on other platforms? < 1225962815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean sure I can see how you could port the code generation < 1225962826 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I'm not so sure about the segfault handling < 1225962834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems extremely fragile < 1225962922 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure something similar is implementable on most archs; if not, then the code generation can generate plain old explicit checks for underflow. < 1225962930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225962950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, by the way I tested open64, it can compile cfunge < 1225962953 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I just think most architectures have something to handle dynamic stack-enlargening in Real Programs (tm). < 1225963031 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I just spent more than a minute wondering why "00g.a," printed out 48 instead of 32, before I realized that the space isn't empty at start, there's that program inside it. "Heh." < 1225963083 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1225963102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, does it handle wrapping? < 1225963124 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, in the tracing code. Don't think I have tested it at all, though. < 1225963136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm mycology will test it < 1225963153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what about a _ at the edge then? < 1225963177 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't see anything special about _ at the edge. < 1225963181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1225963185 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The next trace will start at the edge and wrap. < 1225963189 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Hopefully.) < 1225963202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, right, how far does it get in mycology now? < 1225963221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh and I suppose \ is turned into a single XCHG or something like that? < 1225963264 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Actually in most cases \ just changes the registers used by later instructions; I don't keep things on stack unless I have to. < 1225963286 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But a plain old \ by itself currently does pop+pop+push+push; I'll think about optimizations later on, maybe. < 1225963358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it could be turned into a single XCHG I believe < 1225963361 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(Basically a trace containing only a \ will automagically generate stack loads into virtual registers r0, r1; then the \ instruction just changes the order of those in a list; and hitting the end of trace will generate those two push instructions because it needs to flush things back on stack. < 1225963404 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, although I'm not completely sure how my stack underflow thing will survive it. < 1225963490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1225963495 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Still, I can special-case a bit depending on the opcode that caused the underflow. < 1225963513 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What I really don't see is why this underflow thing stubbornly keeps working even though I haven't really implemented it completely. < 1225963548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1225963604 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I have 9 in ecx; then I do a "mov ecx, [esi]" which causes a segfault; when I restore the context, ecx automagically seems to be zero, even though I don't mangle the saved context at all. < 1225963640 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how well-defined things like that are. Should probably read some processor manuals to find out. < 1225963691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1225963707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, could depend on OS too? < 1225963735 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Also if I do a "lodsd" instruction (which does ax <- [esi] and auto-post-decrements esi), and the read from [esi] causes a fault, I'd like to know whether esi is still decremented. < 1225963735 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, since a segfault would go through the kernel < 1225963739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pretty sure it would < 1225963761 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, it's the kernel who packages the context up and sends a signal. < 1225963772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, what about out of order execution? < 1225963780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that could probably mess up this a lot < 1225963787 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since modern CPUs reorder instructions < 1225963867 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, or? < 1225963868 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, I don't think they're allowed to do that too much so that observable semantics change. < 1225963909 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly the exact happenings on a page fault are a bit of a border case. < 1225963916 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well "not for normal use", but I think a fault isn't that < 1225963924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1225963968 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if it didn't matter instructions such as MFENCE wouldn't exist < 1225964208 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm hoping a page fault will do the sensible things re flushing/serializing stuff. Will worry about the details later. < 1225964948 0 :jix!n=jix@paed-gw.schule.bremen.de JOIN :#esoteric < 1225965627 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What I'm not quite sure is to have to deal with a self-modifying 'p' while retaining the "constant-location-g/p access is as fast as variables" behaviour. On code-generation time, I can't be sure if that particular location will later become part of something executable. I guess I could keep a list of all constant-p references to any cells, and when tracing, invalidate those pieces of compiled code that need changes. < 1225965636 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :s/have/how/ < 1225967147 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1225967549 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Curious, after "GOOD: 8*0 = 0" I now get an infinite number of newlines from mycology. < 1225967565 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yesterday it correctly printed out "GOOD: # < jumps into <". < 1225967589 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well the way you do that stuff it won't be easy to debug < 1225967751 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Indeed. Well, I could dump out the generated code every time it traces things, to see if that helps any. It will probably generate quite a lot of output, though. < 1225967847 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you could insert trace calls or something? < 1225967868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, on the fly < 1225967887 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess I could, reasonably easily even. < 1225967895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :may not help a lot though < 1225967965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for scripted interpreters I found that doing something such as having a known good implementation dump traceoutput < 1225967975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then your new one dump trace in the same format < 1225967978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :diff the output < 1225967979 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :compare < 1225967985 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err s/scripted// < 1225967993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but for JIT that may not help a lot < 1225968015 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway the point is diffing trace output and see where it begins to differ < 1225968069 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for example cfunge at -t 4 should work for that < 1225968074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=0 y=0: 9 (57) < 1225968074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=1 y=0: 1 (49) < 1225968074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=2 y=0: + (43) < 1225968074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=3 y=0: " (34) < 1225968086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(tid and tix are got threads so ignore that) < 1225968110 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The constant-folding part will make that a bit difficult; of course I could dump some trace output already before code-generation, but at that point I don't have the stack available. But I would get the "where did the IP go" trace, at least. < 1225968126 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225968135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for stack in cfunge you would want -t 9 < 1225968150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :shows top 5 elements iirc < 1225968164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=0 y=0: 9 (57) < 1225968165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Stack is empty. < 1225968165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=1 y=0: 1 (49) < 1225968165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Stack has 1 elements, top 5 (or less) elements: < 1225968165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 9 < 1225968165 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tix=0 tid=0 x=2 y=0: + (43) < 1225968167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Stack has 2 elements, top 5 (or less) elements: < 1225968169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : 1 9 < 1225968207 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway diffing trace output to "known" good have helped me a lot when working on efunge < 1225968296 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It seems to end up in a >:#,_ print loop, printing infinite newlines. I'm guessing it might even be finally the stack undeflow thing not returning zero; but I'd like a bit smaller test case than mycology for that. < 1225968321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1225968334 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that helps you somewhat at least :) < 1225968415 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hey, yay. A single a"yay">:#,_@ loop will also print infinite newlines; after popping that a, it seems to pop and pop and pop and pop. < 1225968435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225968552 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :once you pop, you can't stop < 1225968556 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1225968647 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmph, I don't know gdb enough to make a breakpoint inside an overloaded C++ operator. Maybe the line number will work. < 1225968658 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, file.cc:554 < 1225968661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example < 1225968663 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :should work < 1225968704 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, seems to. < 1225968760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only issue if you have two files with the same name, then gdb always manage to interpret it as the other file, not the one you wanted < 1225968788 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(this can happen if you built some library with debugging info for example) < 1225968819 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1225968824 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(gdb) disassemble 0xf7ee8023 < 1225968824 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No function contains specified address. < 1225968835 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right, I just want them bytes. < 1225968856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1225968867 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I guess the two-argument form will disassemble for me without finding a function. < 1225968868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, change language mode to asm or such < 1225968871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think that may work < 1225968876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or that < 1225968924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, btw how do you jump into the generated code? < 1225968935 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Cast to a function pointer and call it. < 1225968943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah, right < 1225968967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm that is a sure way to confuse any debugger I can think of... < 1225969281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, do you think it will build as a Position Independent Executable (PIE)? < 1225969290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm it does < 1225969307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which I didn't expect < 1225969318 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure, since the compiler doesn't know about the code-generation part, and the addresses and such are known at the time when it actually does the code-generation. < 1225969323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1225969356 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, thought the pie offset thingy register would have messed up for you < 1225969507 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, founded the bug. There's a "peek" instruction (I combine a pop+push into a peek) which reads from below the stack; the segfault handler accidentally increments the stack pointer there too, even though it wasn't actually decremented. < 1225969526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm possible to fix? < 1225969555 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh while valgrind may work, it seems mudflap doesn't < 1225969560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :over 1000 warnings < 1225969616 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah MUDFLAP_OPTIONS="-heur-proc-map" makes it work < 1225969932 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1225970666 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Phew, fixed that bug. Now it looks at the opcode which caused the stack fault and sets the target register to zero; and also at the next opcode to avoid decrementing the stack pointer after resetting it. < 1225970797 0 :Corun!n=Corun@146.169.24.57 JOIN :#esoteric < 1225971325 0 :Leonidas_!unknown@unknown.invalid NICK :Leonidas < 1225975286 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | Reloaded. < 1225975475 0 :Jiminy_Cricket!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1225976260 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There is the self-modifying 'p', although I guess it's a bit buggy still. Mycology doesn't complain about "p doesn't modify space" now, but "BAD: 900pg doesn't get 9" even though running "900pg.a,@" does print out 9. < 1225976710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, nice, updated the snapshot? < 1225976898 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Did now, but don't expect much to work yet either. < 1225976973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/interp.cc: In constructor 'jitfunge::Stack::Stack()': < 1225976974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/interp.cc:159: warning: missing initializer for member 'sigaction::__sigaction_handler' < 1225976974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/interp.cc:159: warning: missing initializer for member 'sigaction::sa_mask' < 1225976974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/interp.cc:159: warning: missing initializer for member 'sigaction::sa_flags' < 1225976974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :src/interp.cc:159: warning: missing initializer for member 'sigaction::sa_restorer' < 1225977027 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/LDH6i265.html is all the warnings < 1225977036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm nice < 1225977100 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, nice I don't know how you manage to mess up mycorand so much... < 1225977106 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? was met 1 times < 1225977108 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1225977127 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I implement ? at all. Not sure. < 1225977134 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it thinks it was ^ < 1225977152 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but afaik mycorand should loop until it had at least one of each direction < 1225977153 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hi fizzie . < 1225977155 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225977158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hi ehird < 1225977185 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :900pg 9-!| leaves down instead of up. That's a nice bug too. Debugging this isn't very pleasant. < 1225977191 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ehird: Hello. < 1225977485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, where is the debug output generated? < 1225977911 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Ooh: "GOOD: 900pg gets 9", "GOOD: p modifies space". Then it hangs up. < 1225977922 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hangs up? < 1225977931 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, an infinite loop is my guess. < 1225977941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :trace? :) < 1225978245 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At (5,17), heading left. Maybe a wrapping issue or something. It seems to bounce off the edge for some strange reason: it sees two $s and an _, instead of wrapping. < 1225978272 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The debug output isn't written anywhere just yet, it's just one line I've been commenting/uncommenting. I'll add a command-line flag for it in the next revision. < 1225978286 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think I'll try to get the wrapping right first, though. < 1225978415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: Can I test it on OS X again? < 1225978415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1225978451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, did it work last time? < 1225978545 0 :Corun!n=Corun@146.169.24.57 JOIN :#esoteric < 1225978547 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I haven't removed the mremap or changed the hashmappery, so I doubt it'll work any better. < 1225978692 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, it wraps just fine, it's just the \r\n newlines of mycology leaving a \r there, which it reflects from. < 1225978700 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hashmappery? < 1225978718 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, then you need to fix your loading ;) < 1225978835 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There was some C++ template error from my use of on OS X. < 1225978860 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Loading is fixed, but mycology crashes at the same point: "unrecognized opcode in stack underflow". < 1225978864 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's a curious one. < 1225979066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm what gcc version did you say you used? < 1225979084 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :4.3.2, I think. < 1225979091 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hmm, it's a stack underflow when pushing. That's creative. < 1225979110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, underflow when pushing, how did you manage that? < 1225979200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: let me know when it's ready to implement fingerprints < 1225979201 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::-P < 1225979514 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. A $ does not read from the stack (because it's a useless memory read), it just decrements the stack pointer reg; so the next push will cause the stack underflow check to fire. Well, that's... somewhat easy to fix. I think. < 1225979775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, depending on the program this faulting instead of checking bounds could be a lot slower < 1225979777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or faster < 1225979806 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think most programs do not do stack underflow much. At least my programs, anyway. < 1225979810 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225979838 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yay: Befunge-98 detected. GOOD: wraparound works, GOOD: a pushes 10, GOOD: b-f push 11-15, GOOD: [ turns left, GOOD: ] turns right, GOOD: instructions between ; are skipped, UNDEF: # across left edge hits easternmost cell in file, UNDEF: # across left edge hits easternmost cell on line, BAD: k reflects < 1225979852 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, it's again few steps further. < 1225979873 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Haven't done 'k' yet; it will probably not be very pleasant, at least to get all the corner cases right. < 1225980023 0 :Slereah_!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1225980188 0 :Corun!n=Corun@146.169.24.57 JOIN :#esoteric < 1225980426 0 :Corun!unknown@unknown.invalid QUIT :Client Quit < 1225980656 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, cfunge have a bunch of test programs for k < 1225980665 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for the stuff mycology doesn't test < 1225980687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, uploaded a new snapshot? < 1225980731 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Now, yes. < 1225980754 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :You can run it as "jitfunge file.b98 -d" to make it dump the traces it generates. < 1225980758 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(To stderr.) < 1225980779 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'll add getopt'd command line arguments when I have something that actually works. < 1225980830 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :oh god jitfunge < 1225980939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm it seems slower than profile feedback compiled cfunge at life.bf < 1225980959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait I can't compare 32-bit to 64-bit < 1225981021 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :What, do you mean it actually runs life.bf? < 1225981030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes it does < 1225981046 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's really strange. < 1225981051 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :output seems correct as far as I can tell < 1225981058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, why? < 1225981071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is b93 < 1225981076 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and you pass that section you said < 1225981091 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since you get to k < 1225981110 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :though it is fast on life.bf < 1225981129 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but even the ()-parsing part of underload.b98 (which doesn't involve any fingerprints) has some infinite-loopy bug. < 1225981153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is no ( or ) in life.bf < 1225981172 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it fails at prime.bf however < 1225981173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with: < 1225981175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :error: FIXME register spill < 1225981181 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I mean the underload (). < 1225981196 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Heh. < 1225981217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :pi2.bf -> floating point exception < 1225981226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :divide by zero? < 1225981232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :do you handle that correctly < 1225981244 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, I don't. < 1225981249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fib.bf cause < 1225981250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :unexpected SIGSEGV; dying... < 1225981250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Aborted < 1225981267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but yes it somehow manages life.bf < 1225981268 0 :jix!n=jix@dyndsl-095-033-085-061.ewe-ip-backbone.de JOIN :#esoteric < 1225981313 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I see. Heh. < 1225981321 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wumpus.bf cause infinite loop I think < 1225981333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it just locks up < 1225981411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh nice you don't do error checking on input, I typoed and ran it on a directory < 1225981417 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seemed to actually try to execute that < 1225981454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh and if I run it under valgrind it fails at life.bf < 1225981463 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I think it just executes some empty space in that case. < 1225981471 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(The directory-as-input one, that is.) < 1225981479 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just dots for output and lots of valgrind errors < 1225981487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so valgrind affect the behaviour too there < 1225981518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact it breaks under valgrind all the time < 1225981523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like stack underflow < 1225981526 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That's not terribly surprising. < 1225981547 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm valgrind is useful for debugging, but I guess you will solve that in some other way < 1225981569 0 :Corun!n=Corun@146.169.24.57 JOIN :#esoteric < 1225981664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, um mycouser.b98 says it handles division by zero < 1225981678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or is that just the constant folder? < 1225981726 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, that part does it correctly. < 1225981755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, inputting a newline to the char test in mycouser acts oddly < 1225981759 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in just pressing enter < 1225981769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :first it says 10, right, but then it waits for another newline < 1225981775 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait *checks with cfunge* < 1225981790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah no < 1225981795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is mycology's "fault" < 1225982163 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :(build/jitfunge life.bf > life.txt &); sleep 20 ; killall jitfunge ; ls -l life.txt generates around 8.5 megabytes of output, compared to ~2.7 megs from cfunge (32bit, -O3, no fancy flags), here. I'm not sure jitfunge is in a benchmarkable state yet, though. < 1225982228 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: are you making something like a befunge compiler? < 1225982248 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: It's an interpreter which does just-in-time compilation to native x86 code. < 1225982270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh to x86? you use like gcc or smth? < 1225982281 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :No, I just write some bytes. < 1225982287 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1225982318 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The generated code is quite non-optimal, though. < 1225982351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, here I get around 5.2 MB from each < 1225982361 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :64-bit cfunge < 1225982366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with 32-bit fungespace < 1225982377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :profile feedback compiling < 1225982399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :gcc 4.1.2 < 1225982415 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Right, the cfunge build I did is probably 64-bit too, I just turned USE_64BIT off. < 1225982504 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm ok < 1225982535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well for me both generates around 5 MB, sometimes slightly more for cfunge, sometimes more for jitfunge < 1225982537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very even < 1225982548 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that is profile feedback so... < 1225982652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, with just plain -O3 for both I get results close to your < 1225982689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :5 mb from jitfunge, around 1.8 from cfunge < 1225982710 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, however I don't know how large setup time jitfunge needs. cfunge have quite a bit of setup time < 1225982718 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :GCC is pretty good at the optimization game, compared to my code generation. < 1225982729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yes it is < 1225982738 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :hmm optimization game => the game => i just lost it :( < 1225982740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm icc wouldn't help this is amd... < 1225982757 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :jix: agh, ditto < 1225982770 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh and my build ifdefs out tracing there ;) < 1225982792 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yesterday my gf made me lose the game 5 times... :( < 1225982799 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, and also disables threads, another speedup < 1225983036 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's quite a lot of small code snippets generated for life.bf, increasing the overhead there. Every time there's a branch or a merging of two code paths, jitfunge splits the code to separate functions there. < 1225983091 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :you try to jit compile befunge? < 1225983104 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you may want to do superblock optimising < 1225983111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :jix, he isn't trying, he is doing it < 1225983114 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure "try" is the right verb here, since it already does life.bf. < 1225983115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :seriously < 1225983129 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :-try then :) < 1225983146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"you to jit compile befunge"? < 1225983153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :maybe -to as well < 1225983157 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :yeah -_- < 1225983280 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It would be better to generate longer pieces of code, and jumps into them, but that's trickier. < 1225983320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, heh < 1225983333 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, better get it working properly before you start optimising like that? < 1225983488 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably, yes. < 1225983599 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Although I would probably get significantly longer snippets of code simply by always assuming either the true or false branch from an if, and continuing the trace that way. < 1225983619 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Given that it's JIT, I should probably be collecting some statistics and doing branch prediction that way. < 1225983764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, or compile it to code with a jump in? < 1225983795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hey jix < 1225983797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THE GAME < 1225983825 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225983838 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I mean, compile both paths with a compiled jne instruction or such at the | < 1225983845 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or je < 1225983971 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Then I would really have to think harder when recompiling parts of code, since it would not be a distinct function I could just discard. < 1225983991 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But sure, a single generated mess of code with jumps around would have less overhead. < 1225984017 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, you may have to discard several ones already < 1225984032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: how fast is it? :p < 1225984046 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, for example suppose one cell is hit with two different deltas. then a p changes the value there < 1225984058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you have to discard multiple ones < 1225984111 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :ehird: nargh < 1225984296 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, sure, but I can discard them easily and let the interpreter recompile when it notices it doesn't have code for that part. < 1225984315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hm ok true < 1225984328 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ohh, fizzie HASN'T been monologuing this whole time < 1225984343 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That makes things less confusing < 1225984444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, if you discard some jitted code, and the jitted code is placed in a mmaped region, how do you allocate new ones, try to find the first hole large enough? < 1225984446 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or? < 1225984516 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Away for a while. < 1225984520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1225986747 0 :Corun!n=Corun@wavelan117.doc.ic.ac.uk JOIN :#esoteric < 1225986755 0 :Corun!unknown@unknown.invalid QUIT :Client Quit < 1225987457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[ < 1225987457 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : Mind Control < 1225987458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Doctors from the Association of American Physicians and Surgeons have stated that Obama uses techniques of mind control in his speeches and campaign symbols. For example, one speech declared, "a light will shine down from somewhere, it will light upon you, you will experience an epiphany, and you will say to yourself, 'I have to vote for Barack.'"[19] The doctors observe that "Obama's logo is noteworthy. It is always there, a small one in the middle of the pod < 1225987459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :]] < 1225987461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-- Conservapedia < 1225987476 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[If elected, Obama would likely become the first Muslim President, and could use the Koran to be sworn into office.]] - also conservapedia < 1225988116 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :makes liberal conspiracy theories seem almost tame < 1225988280 0 :Corun!n=Corun@wavelan117.doc.ic.ac.uk JOIN :#esoteric < 1225988402 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :also from that site, "World Bank Group.s computer network has been compromised by cybercriminals" < 1225988440 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :their book section is full of real winners too < 1225988460 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :"HMOs are not "free market" alternatives, but rather an unholy partnership of government and corporate interests seeking monopolistic government protection to eliminate competition while changing the ethics of medicine from a Hippocratic ethic to a false corporate morality" < 1225988472 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dun dun DUUUUUUUUUNNNNNNNNNNN < 1225988573 0 :jix!unknown@unknown.invalid QUIT :"CommandQ" < 1225988579 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :there was this awesome group last month running around in circles convincing themselves both candidates were Manchurian Candidates < 1225988583 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :awesome to watch, at least < 1225988747 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225989239 0 :Jiminy_Cricket!n=bob@adsl-155-100-173.btr.bellsouth.net JOIN :#esoteric < 1225989961 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :i missed bfbasic < 1225989968 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :that's nift < 1225989982 0 :Corun!n=Corun@wavelan117.doc.ic.ac.uk JOIN :#esoteric < 1225990055 0 :ab5tract!n=ab5tract@pool-71-246-5-13.phlapa.fios.verizon.net JOIN :#esoteric < 1225990573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1225990705 0 :Hiato!n=Hiato@dsl-245-47-134.telkomadsl.co.za JOIN :#esoteric < 1225991103 0 :oklokok!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225991195 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1225991281 0 :Hiato!n=Hiato@dsl-245-47-134.telkomadsl.co.za JOIN :#esoteric < 1225991294 0 :comexk!n=comex@teklinks.org JOIN :#esoteric < 1225991365 0 :comex!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1225991369 0 :oklokok!unknown@unknown.invalid QUIT :Client Quit < 1225991491 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1225992294 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1225993249 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225993260 0 :oklopol!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1225993313 0 :Hiato!unknown@unknown.invalid QUIT :"Leaving." < 1225993463 0 :Corun!n=Corun@wavelan117.doc.ic.ac.uk JOIN :#esoteric < 1225995461 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1225995671 0 :mbishop!unknown@unknown.invalid PRIVMSG #esoteric :wee l4d demo is fun < 1225996078 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1225996436 0 :olsner!n=salparot@79.136.60.96 JOIN :#esoteric < 1225996462 0 :Mony!n=AssHole@AToulouse-258-1-85-133.w90-60.abo.wanadoo.fr JOIN :#esoteric < 1225996675 0 :Mony!unknown@unknown.invalid PRIVMSG #esoteric :plop < 1225996679 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi Mony < 1225996691 0 :Mony!unknown@unknown.invalid PRIVMSG #esoteric :hi ais523 < 1225996886 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | ^bf ++++++[->++++++<]>>+[<.>[[[[[][][][][][][][][][][][][][][][][][][][][][][][]]]]]] < 1225996923 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :optbot! < 1225996924 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | cool page: http://www.angio.net/pi/piquery < 1225998086 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Meh, sensiblized the code generated by jitfunge, and managed to cut life.bf performance into 4 % (variant 1) or 30 % (variant 2) of what it used to be; the new system does generate longer pieces of code, but it ends up recompiling something all the time. I need a figure out a less complicated test case for the issue, though. < 1225998113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: can you beat cfunge yet? < 1225998163 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Well, the previous version was faster at life.bf with my setup; apparently with the right magical GCC flags (profile-guided optimization?) the life.bf speeds were just about even. < 1225998186 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, interesting < 1225998247 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :At least this current code-generation can turn >:#,_ into a function that actually does loop, instead of having a single function that is called (by the interpreter part) repeatedly for each character. < 1225998396 0 :Corun!n=Corun@wavelan117.doc.ic.ac.uk JOIN :#esoteric < 1225998576 0 :kar8nga!n=kar8nga@i-156.vc-graz.ac.at JOIN :#esoteric < 1225999072 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1226000074 0 :kar8nga!unknown@unknown.invalid QUIT :"Leaving." < 1226000465 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, those magical flags included -fwhole-program -combine and -fprofile-use < 1226000469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which explains a lot < 1226000484 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and it was x86_64 vs. x86 < 1226000491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which isn't fair really < 1226000777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whoo I shaved another 0.10 seconds of mycology run time in cfunge. I think I may do even better < 1226000789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to rewrite the loop to make it easier to vectorise < 1226000850 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I probably will be slow as heck in mycology, since I guess there's not much repeatedly executed stuff there. < 1226001014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well mycology is where I'm really really really fast < 1226001036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and very fast for an interpreter elsewhere < 1226001226 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits while -ftree-vectorizer-verbose=10 spews output < 1226001232 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1226001260 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1226001333 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: is that a gcc or icc option? < 1226001346 0 :KingOfKarlsruhe!n=nice@HSI-KBW-085-216-040-186.hsi.kabelbw.de JOIN :#esoteric < 1226001358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, gcc < 1226001384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is interesting to see that gcc detects some possible vectorisations that icc doesn't as well as vice verse. < 1226001390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :spelling... < 1226001411 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"versa" < 1226001449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1226001478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, at least in Swedish, but aspell doesn't like it in English < 1226001480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1226001493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and it needs -ftree-vectorize to do anything < 1226001502 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's latin < 1226001571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, hm it is spelled vise versa in Swedish < 1226001576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not vice versa < 1226001891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and GCC generates faster programs on AMD64 < 1226001899 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :icc is faster on intel though < 1226001903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no surprise there < 1226001908 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, not really surprising at all < 1226001947 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but icc is still useful on AMD, because it points out different issues and so on < 1226002052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.051s < 1226002052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.037s < 1226002052 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.011s < 1226002053 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :whoo < 1226002077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-march=k8 -msse3 -O3 -funroll-loops -DNDEBUG -fweb -ftracer -frename-registers -ftree-vectorize < 1226002086 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no I don't claim it is sane < 1226002097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: where are you directing the output, BTW? < 1226002103 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/dev/null < 1226002107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1226002122 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :have you optimised cfunge to detect output going to devnull and not output it? < 1226002127 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with output to konsole it is 0m0.087s < 1226002169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm I have, as far as I know, not added any stuff that would make one or the other slower as an effect of making the other one faster < 1226002175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I try to check using both anyway < 1226002186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I run the timings I report to /dev/null < 1226002198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they vary less < 1226002206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so easier to compare with < 1226002240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean with stdout the spread is about +/- 0.020 seconds but with /dev/null it is about +/- 0.010 < 1226002393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.043s < 1226002395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1226002400 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is a profile feedback build < 1226002508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if I run with env -i PATH=/bin:/usr/bin TERM=$TERM it is reduced to around 0.025 seconds < 1226002813 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I don't get this; I changed completely unrelated things, but now it doesn't have the life.bf "causes recompilations all the time" issue, and does 10.6 megabytes of life.bf output in 20 seconds. < 1226002825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, these latest changes should help a lot for fungot, string handling was sped up a lot by reorganising pushing to allow gcc to vectorise the push loop < 1226002825 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: i believe that is a very original thought....are you a poet? so.....you like atlanta? what color are your eyes? < 1226002835 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they aren't committed yet < 1226002872 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and they need you to use the relevant -march to take advantage of it, and -O3 and -ftree-vectorize < 1226002880 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :SSE2 at least I believe < 1226002932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway it helped a lot for y in the HRTI test < 1226002973 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :$ env | wc -c < 1226002974 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :5815 < 1226002980 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :UNDEF: T after M pushed 3 and a second T, after 675 ys, pushed 10899 < 1226003029 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and I seriously want memrcpy() which would be like memcpy() but would reverse (byte by byte) the entire thing < 1226003044 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if I had such a thing and it was fast this could get even faster < 1226003057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alternative would be to resign funge stacks to grow downwards < 1226003059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1226003065 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :redesign* < 1226003072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that would be a pain to grow < 1226003105 0 :Corun!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1226003120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least without being unportable < 1226003134 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The jitfunge stack grows up, but that's pretty arbitrary. < 1226003157 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :don't resign. stacks should grow up dammit! < 1226003159 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, yes but I would need to copy stuff around instead of just reallocing if I were to do that < 1226003176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: use Fungus as your processor and make the stack grow sidewats < 1226003179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*sideways < 1226003182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : const size_t top = stack->top + len; < 1226003182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : for (ssize_t i = len; i >= 0; i--) < 1226003182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : stack->entries[top - i] = str[i]; < 1226003182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : stack->top += len + 1; < 1226003197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is how my push 0"gnirts" look like now < 1226003220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well it preallocates to make sure there is enough room before that of course < 1226003268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that fungus emulator is superslow < 1226003280 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: obviously, you'd have to build the hardware and run on there < 1226003303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and how fast would it be compared to a high end AMD or Intel CPU? < 1226003318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it would depend on how fast the chip you'd built was < 1226003336 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the type of typical chip that students use has a clock cycle of a few tens of nanoseconds < 1226003342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so about 500 MHz or so < 1226003353 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :less, 100 MHz or so < 1226003362 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so probably not competing with high-end CPUs < 1226003386 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, even though it could potentially run funge more natively? < 1226003390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err spelling < 1226003405 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I think so < 1226003448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how far out in negative funge space does the ul stack go on ^ul (::^):^ < 1226003448 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1226003481 0 :comexk!unknown@unknown.invalid QUIT :"Caught sigterm, terminating..." < 1226003492 0 :comex!n=comex@teklinks.org JOIN :#esoteric < 1226003492 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Depends on the stack limit. < 1226003507 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i recall some discussion on implementing special chips for functional languages or something - the mainstream chips are just too fast to compete with even for such a special design < 1226003520 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, lisp machines < 1226003523 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(i think it was on Lambda the Ultimate) < 1226003534 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that was _decades_ ago < 1226003542 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, but same concept < 1226003556 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :In fungot currently, cd*:* so it goes to X=-24336 before complaining. < 1226003557 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: i would need to involve nec page, so that's ok. well... x-chat doesn't. instead of " new code" do you mean? what kind of module system is quite nasty too: < 1226003567 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the point was, the mainstream chips improve so fast that they will be better than yours before you get it out to market < 1226003578 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :or something like that < 1226003600 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oerjan, indeed < 1226003661 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok I can't do static space for that < 1226003667 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would require 32 mb ram < 1226003673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for the static array < 1226003684 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to keep power of two nice < 1226003701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would have to use 4096x1024 < 1226003703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with offset < 1226003716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait even more < 1226003725 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I missed a digit < 1226003764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok... more than 190 MB < 1226003917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^bf +[] < 1226003922 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226003926 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :If you need a long-running benchmark, (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ takes pretty damn long before finally giving an "out of time" message. < 1226003941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, not really long running, I was using gprof < 1226003953 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was looking at callgraph  < 1226003985 0 :jayCampbell!unknown@unknown.invalid PRIVMSG #esoteric :i'm pretty sure we're going to be programming DNA in some analogy of bfbasic soon < 1226003986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^source < 1226003987 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :http://zem.fi/~fis/fungot.b98.txt < 1226003992 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, last version ^ < 1226003993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :? < 1226003998 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure how new it is. Let's diff... < 1226004014 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :tell me when you have the last one < 1226004030 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Seems to be the latest, diff reports no changes. < 1226004049 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Haven't done much to it lately. < 1226004063 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :This week I've been mostly writing jitfunge. :p < 1226004068 0 :testthingy!n=fungot@d90-130-4-22.cust.tele2.se JOIN :#esoteric < 1226004078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :%ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004087 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004111 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Took me some 90 seconds last time. < 1226004113 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1226004118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lets wait < 1226004124 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how comes it is so slow there? < 1226004152 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It builds a long string and then repeatedly swaps it around. < 1226004167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well pushing string on stack is what I made faster < 1226004171 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as y does < 1226004177 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004180 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :+ul ^ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004181 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric : ...^ out of stack! < 1226004183 0 :testthingy!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004186 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1226004187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that's odd < 1226004190 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's a 16-kilobyte string. < 1226004194 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :+ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :specs on your system? < 1226004198 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I typoed the program < 1226004208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean... fizzie's system < 1226004215 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it's obviously a bit faster < 1226004221 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :1.4 GHz Pentium-M is that fungot box. < 1226004221 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: today's ( one of scheme48, you can implement syntax-rules with it. < 1226004227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hrrm < 1226004232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1226004237 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :64-bit build < 1226004238 0 :testthingy!unknown@unknown.invalid QUIT :Remote closed the connection < 1226004238 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And 32-bit cells, of course. < 1226004249 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004250 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not a x86-64 platform, after all. < 1226004250 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, concurrency? < 1226004261 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Probably enabled if it is by default. < 1226004267 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is on by default < 1226004271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway this worries me < 1226004288 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :testthingy should have been faster < 1226004289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it wasn't < 1226004411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION builds old one to test < 1226004441 0 :testthingy!n=fungot@d90-130-4-22.cust.tele2.se JOIN :#esoteric < 1226004447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :%ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226004482 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which bot is using % as its character? < 1226004486 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :testthingy, < 1226004491 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is my copy of fungot < 1226004496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, presumably that's fungot on optimised cfunge? < 1226004505 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it is on old pre-last-change cfunge < 1226004518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :last change made mycology a lot faster < 1226004518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, thutubot won < 1226004526 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I want to know if it slowed down fungot or not < 1226004539 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004539 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that's quite a lot of doors for people with prior programming experience?' the answer to your question is that < 1226004539 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ( that second one is horizontally displaced by 1 pixel with the hardware directly. :p)) for f(n-1) 2*f(n-2) < 1226004539 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: we are asked to enter a player's name, but forget about the c2bf2c step < 1226004550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sped it up by the look of it < 1226004553 0 :testthingy!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226004562 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm I guess other stuff running on my system is to blame < 1226004586 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for why my 2 GHz x86_64 is slower than that 1.4 GHz pentium M that fungot runs on < 1226004586 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: in one article then. my ass was saved by moore. i know. it just doesn't look right < 1226004637 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :43:03 - 41:17 vs. 49:13 - 47:27 < 1226004654 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyone wants to do the messy modulo 60 calcs for me? < 1226004686 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no one? < 1226004745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok speed up by 20 seconds < 1226004762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which even on a single run should be enough to be significant < 1226004765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very nice < 1226004775 0 :testthingy!unknown@unknown.invalid QUIT :Remote closed the connection < 1226005056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :damn running that with gprof output on takes forever < 1226005072 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I'll check on that when I get back < 1226005205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah no not 20 < 1226005206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :10 < 1226005246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok interesting < 1226005347 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that stack < 1226005353 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where does it go fizzie ? < 1226005369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean, how far into negative space < 1226005420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the main issue is that it seems to work a lot on outer fungespace < 1226005486 0 :Mony!unknown@unknown.invalid PART #esoteric :? < 1226005742 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The one in that test? Well, 16k cells that way, obviously. < 1226005818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION allocates a 128 MB large static array < 1226005840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION waits < 1226005889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ok I got it down to 41 seconds < 1226005891 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :using this: < 1226005895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_X (32768-1024) < 1226005895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_Y 64 < 1226005895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_X 32768 < 1226005895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_Y 512 < 1226005915 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :actually you probably want later Y < 1226005937 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, anyway I believe that is 64 MB < 1226005949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with 32-bit cells < 1226006024 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, thanks to linux allocating that lazily it won't take as much ram in fungot as that < 1226006024 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: how would you know? < 1226006039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :optbot! < 1226006039 0 :optbot!unknown@unknown.invalid TOPIC #esoteric :the entire backlog of #esoteric: http://tunes.org/~nef/logs/esoteric | it's quite loaded and quite popular < 1226006064 0 :jix!n=jix@dyndsl-095-033-085-061.ewe-ip-backbone.de JOIN :#esoteric < 1226006339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still it went far into non static space < 1226006532 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes it dump edges < 1226006647 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, err you grow something into positive space: < 1226006649 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Coords: {-16395,-20} {16384,2000} < 1226006664 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that looks very very strange < 1226006704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fungal growth < 1226006856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, ok I got it down to 10 seconds with this mad one: < 1226006863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_X (32768/2) < 1226006863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_Y 32 < 1226006863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_X 32768 < 1226006863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_Y 2048 < 1226006868 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :around 250 MB ram I believe < 1226006893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but please try to grow only in one direction < 1226006895 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1226007011 0 :Sgeo!unknown@unknown.invalid QUIT :Connection timed out < 1226007080 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, right. < 1226007104 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That 16384 comes from the fact that it writes the string at x=0,y=10 for temporary storage when swapping it on in the stack. < 1226007115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, so it writes it positive too? < 1226007119 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that messes up < 1226007125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you can get either easily but not both < 1226007136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :try to write them all in the same direction < 1226007166 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's not that easy, since STRN can only write in one direction. Of course I could use the current stack-top 'x' coordinate for the temporary storage too, I guess. < 1226007174 0 :jix!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1226007197 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, don't you use STRN in both cases? < 1226007206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so why does one go positive and the other one negative? < 1226007223 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Because the other one is a stack of strings; it's easier to grow that to the negative direction. < 1226007245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well why does the other one go positive then? < 1226007255 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Otherwise it's quite difficult to find how long the string is below the positive-stack-pointer. < 1226007286 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :With the stack growing to the negative direction, I can just G at the current top-of-stack and I get the topmost string. < 1226007311 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :And the other one grows to the positive direction because it's not a stack; when you P a string to temporary storage, that's the direction it writes to. < 1226007323 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well, you can't get both, I recommend trying to put both in the same direction < 1226007336 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure I'm going to bother. < 1226007341 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1226007363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, well by making one huge 512 MB static array I got execution time down to less than 10 seconds for it < 1226007370 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The temporary storage start coordinate could follow the top of stack, but that's just extra work. < 1226007394 0 :testthingy!n=fungot@d90-130-4-22.cust.tele2.se JOIN :#esoteric < 1226007399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :%ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226007399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :^ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226007399 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226007408 0 :testthingy!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226007418 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thutubot will be next < 1226007452 0 :thutubot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226007473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well predicted < 1226007489 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226007508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, however why does it go to positive 2000? < 1226007510 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in y < 1226007511 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1226007535 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could make this reasonable, 64 MB for 32-bit funge, if you didn't go that far < 1226007596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, hope that will teach you something or whatever < 1226007634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :point is the less area you use for the static stuff the less memory you will waste and the more static you can use < 1226007753 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There is no point in a Befunge irc-bot, really, no matter how much you'd like there to be. < 1226007768 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :I did what was convenient to code, not what was optimized for maximum efficiency. < 1226007773 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :heh ok < 1226007774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1226007785 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, but why do you use 2000 y? < 1226007798 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :So that there's room for 1900 lines of code, of course. < 1226007800 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : There is no point in a Befunge irc-bot, really, no matter how much you'd like there to be. <--- wrong, you wouldn't have made one otherwise < 1226007816 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :However, you don't really need to have the static space go that far down. < 1226007828 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It's only used for storing the programs; for execution, they're copied to y=8. < 1226007840 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, oh? 512 is enough? because then I could actually recommend it on x86 < 1226007862 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Source code length + 100 is enough. < 1226007888 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, how do you feel about 128 MB RAM? < 1226007904 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it should be power of two < 1226007910 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and 512 is not enough < 1226007918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for source code length + 100 < 1226007924 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so 1024 is next step < 1226007951 0 :testthingy!unknown@unknown.invalid QUIT :Remote closed the connection < 1226008005 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :luckily the "fill with spaces" code is vectorised < 1226008008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so that is quite fast < 1226008035 0 :omniscient_idiot!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1226008058 0 :Jiminy_Cricket!unknown@unknown.invalid QUIT :Read error: 113 (No route to host) < 1226008071 0 :testthingy!n=fungot@d90-130-4-22.cust.tele2.se JOIN :#esoteric < 1226008075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :%ul (xxxx)(~:*:*:*:*~):^:^(~~:^)~^:^ < 1226008084 0 :testthingy!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226008092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: where does that particular test program come from, btw? < 1226008099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, fizzie pasted it < 1226008115 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as one that took a long time < 1226008128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway this array size is way too big for normal usage < 1226008146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you got 128 MB RAM and/or swap to waste however: < 1226008148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_X 16396 < 1226008148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_OFFSET_Y 64 < 1226008148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_X 32768 < 1226008148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :#define FUNGESPACE_STATIC_Y 1024 < 1226008177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how does thutubot out of time ais523? < 1226008178 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a non-rectangular shape would be a LOT faster < 1226008182 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how can string rewriting languages know time. < 1226008194 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it counts the number of times round the main loop it goes < 1226008201 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in a number system which vaguely resembles binary but isn't < 1226008210 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1226008264 0 :testthingy!unknown@unknown.invalid QUIT :Remote closed the connection < 1226008273 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i accidentally the time < 1226008330 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well, don't the time again < 1226008362 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well i can't really, i accidentally the WHOLE time < 1226008375 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :also, i will have to your salary < 1226008430 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think i'm gonna this book now. < 1226008603 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: the WHOLE book?! < 1226008648 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no i'll prolly only like 20 pages more < 1226008984 0 :Corun_!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1226009127 0 :KingOfKarlsruhe!unknown@unknown.invalid QUIT :Remote closed the connection < 1226009396 0 :Corun!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1226009451 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot's out-of-time check is also just a count of loop iterations, which is why it takes 90 seconds to time out with that program, but only a few for the standard infinite loop. < 1226009452 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: is it just personal preference?, < 1226009464 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:^):^ < 1226009464 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1226009483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: I'm counting the main loop of my Thutu program, not the main loop in the Underload program < 1226009497 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (::^):^ < 1226009497 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...too much stack! < 1226009528 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, fungot counts the Underload interp loop, so it's pretty close to the amount of underload instructions actually executed. < 1226009528 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: you have 1 message. riastradh says: actually, it would be < 1226009536 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :^ul (::^^)::^^ < 1226009537 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...too much stack! < 1226009549 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: Do you have a messaging service now too? < 1226009549 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: he annoyed the communist govt and was sent there. < 1226009575 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1226009607 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :poor riastradh < 1226009691 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, I'm working on improving STRN < 1226009694 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :#scheme's sarahbot had a feature where you could say "later tell ", and it would repeat that sort of message when next spoke. That's where the quote is from. < 1226009703 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :however as a side effect of this it won't cast to char in between < 1226009714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least for P < 1226009720 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it may do it for G, not sure < 1226009798 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :STRN improvements should help the underload interp. Although the Funge code could do with some optimization too. < 1226009817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I noticed no difference for STRN really here < 1226009824 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :In the beginning, accidentally a universe. < 1226009834 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, thing that would help: knowing how much you actually are going to push/pop < 1226009842 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :keeping a counter for that < 1226010519 0 :Corun__!n=Corun@94-192-102-5.zone6.bethere.co.uk JOIN :#esoteric < 1226010646 0 :Corun__!unknown@unknown.invalid NICK :Corun < 1226010700 0 :Corun_!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1226010732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :real 0m0.048s < 1226010732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :user 0m0.032s < 1226010732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sys 0m0.012s < 1226010734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for mycology < 1226010736 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :\o/ < 1226010739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, ^ < 1226010751 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is profiled build < 1226010760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :profile-feedback* < 1226010761 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1226011143 0 :oklokok!n=nnscript@a91-153-125-33.elisa-laajakaista.fi JOIN :#esoteric < 1226011228 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1226011535 0 :Sgeo!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1226013185 0 :Sgeo_!n=Sgeo@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1226013316 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1226013460 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep" < 1226013556 0 :ab5tract!unknown@unknown.invalid QUIT : < 1226013906 0 :oerjan!unknown@unknown.invalid QUIT :"Good night" < 1226013953 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1226015821 0 :optbot!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1226015822 0 :psygnisfive!unknown@unknown.invalid QUIT :kornbluth.freenode.net irc.freenode.net < 1226015901 0 :optbot!n=optbot@eso-std.org JOIN :#esoteric < 1226015901 0 :psygnisfive!n=psygnisf@c-71-57-164-119.hsd1.fl.comcast.net JOIN :#esoteric