< 1174867558 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Hello! < 1174867672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Hell no. < 1174868421 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.space-invaders.com/rubikdown.html < 1174868422 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1174868623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty easy once you know how to solve a rubik's cube < 1174869297 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :except not all color combinations are legal < 1174869518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :once you know how to solve it, you pretty much know what's legal < 1174869567 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah ;) < 1174869569 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174869576 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so what usually goes on here? < 1174869636 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :discussion about languages, usually < 1174869649 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :excellent. :D < 1174869658 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Speaking of languages... < 1174869670 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :continuations: < 1174869680 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Good, bad, or what? < 1174869693 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(and continuated exception handling... whatever that's called) < 1174869765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :never used < 1174869776 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i find it a useful concept < 1174869783 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and a great toy used excessively < 1174869827 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've never really gotten into most functional languages, so I never use them, and in fact, never even heard of them `till I started doing language design research < 1174869905 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i learned about functional programming here, pretty much :P < 1174869908 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(iirc) < 1174869943 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174870043 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1174870052 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well, coroutines are simply awesome... and they use a form of continuation. < 1174870072 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :coroutines? < 1174870075 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :continuations are pretty obligatory in order to actually implement threading < 1174870081 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :here's what I've got on Sophia so far, for those interested : http://deadbeefbabe.org/paste/4111 < 1174870111 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :coroutines are procedures that can return multiple outputs and receive multiple inputs. < 1174870117 0 :sebbu!unknown@unknown.invalid QUIT :"@+" < 1174870142 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :a basic example would be processes running in an OS... < 1174870242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :well, I've had a few language ideas about returning multiple values, but I think you're talking about something a little bit different :P < 1174870255 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :heh, most likely,. < 1174870270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Figs you mean returning multiple values simultaneously? < 1174870276 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...let me write up an example in Python. Familiar with it? < 1174870283 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174870286 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174870295 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(yeah@oklopol, no@SIB) < 1174870305 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :with coroutines you return something and leave the function in a state where it expects more arguments < 1174870316 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :heh... if you've ever dealt with any kind of programming language... basic Python won't take but a few seconds to figure out. < 1174870331 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I do most of my programming in C++ < 1174870339 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can probably take a guess at it :P < 1174870360 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... you have a statement in a funtion that is kinda like next_arg=return_and_wait(5); < 1174870361 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it basically looks like pseudocode < 1174870386 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, it returns from the function normally, but the next given argument is given to next arg < 1174870406 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so, it returns the continuation implicitly < 1174870415 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1174870416 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174870419 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :s/next arg/next_arg < 1174870423 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'd think of that as returning a function < 1174870446 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(which I've done things similar to, but not exactly that) < 1174870458 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can see how that'd be useful < 1174870464 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :kinda like that, though it's usually not returned, but the function itself changes into the new function, that now is the continuation waiting for more parameters < 1174870485 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174870500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(correct me if i'm wrong, i've never used yield, which i believe is return_and_wait) < 1174870507 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :If I was picking a syntax for it based on the way you guys've just described it, I'd do something like < 1174870508 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(yield being python) < 1174870566 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :f=f(x); < 1174870573 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :f(y); < 1174870589 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :where f is a function returning a function type :P < 1174870620 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...it's probably the same thing I'd imagine. < 1174870648 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Figs the problem with that is f(x) will actually return a value, not just the continuation < 1174870679 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I come from C++ remember? :P < 1174870693 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :reference arguments as return path :P < 1174870703 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but eh < 1174870708 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174870715 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :return path? < 1174870732 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :void triple(int& x) {x=3*x;} < 1174870745 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :well, for lack of a better term < 1174870768 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if you have ever done C/C++ programming < 1174870779 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've done mostly c/c++ programming < 1174870783 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok :) < 1174870801 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but, returning is a better way, usually < 1174870813 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :in a fair number of cases, yeah. < 1174870828 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but you can do it that way, if you have to < 1174870841 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :one of the things I thought about for Creole (my language) was to do this: < 1174870849 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :struct Z = f(x); < 1174870878 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if(Z.foo) {bar();} < 1174870901 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now what's that mean? < 1174870904 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :with f returning multiple values < 1174870917 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174870918 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i see < 1174870929 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I haven't tried to impliment that yet < 1174870935 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so I don't know if it is a good idea or not :P < 1174870948 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I have returned < 1174870950 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's quite clever < 1174870962 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I like it... and I've actually found practical uses for it. < 1174870962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though i'd not do it exactly like that < 1174870970 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :..in a text-based game :) < 1174870996 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, using names for returning makes sense in that you usually have names for the args < 1174870998 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how could you do it, oklopol? < 1174871001 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*would < 1174871034 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Here's a coroutine in Python : http://deadbeefbabe.org/paste/4112 < 1174871062 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :"bullet" supports multiple named return values from a function: http://www.nonlogic.org/dump/text/1174856252.html < 1174871065 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i would do it exactly like that. < 1174871092 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :... < 1174871116 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do subdiv[val1:a val2:b] to [subresult:sub divresult:div] < 1174871124 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in def main < 1174871127 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1174871147 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries his best to stomach the type declarations to figure out what we're talking about. < 1174871178 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :heh, you'd hate the stuff I'm working on then, 7" < 1174871185 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: that is how they work < 1174871225 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I probably would. < 1174871239 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :personally, I find [ ] for blocking to be hard to read, but that's just because I've grown up on {}'s and () < 1174871269 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat i assume you'll do 'struct lambdas' as i call them like Figs just showed... i mean that struct is just a hash table < 1174871283 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in bullet, parameters are given in the form type:name and returned values are extracted in the form storeValueName:ReturnedValueName < 1174871283 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I think []'s are easier to follow without "losing them"... it is a little weird though. < 1174871304 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :with Sophia, I just made everything lazy... so all ()'s are essentially blocks. < 1174871316 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1174871333 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know why i assume that. < 1174871346 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :even non-()'d expressions are blocks. < 1174871348 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: it is one approach that might work < 1174871362 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :heh, my whole language is blocks @_@ < 1174871372 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and interfaces < 1174871392 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I still have to figure out a lot of the syntax though < 1174871406 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bullet doesn't really need interfaces, because it's non-OO < 1174871418 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Figs, if everything is blocks... you could probably afford to get rid of a block syntax. < 1174871421 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no, it has interfaces :P < 1174871439 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174871440 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :def subdiv[double:a double:b] returns [double:sub double:div] < 1174871443 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that is an interface < 1174871454 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :two inputs (a,b) < 1174871464 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and two outputs < 1174871467 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(sub,div) < 1174871470 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's a function < 1174871472 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :unless I am misreading? < 1174871472 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :though < 1174871478 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :io is a good example of a language that doesn't eagerly evaluate function arguments - http://iota.flowsnake.org/ < 1174871478 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yes. Functions have interfaces :P < 1174871480 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ok, If that's how you define interfaces. I think of them how Java uses interfaces < 1174871484 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Common Lisp macros are very similar. < 1174871500 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :abstract base classes (ABCs) in C++ then < 1174871507 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174871511 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :gotcha < 1174871541 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the thing I've found while I've been working on Creole is that at some point, everything breaks down to actions. < 1174871549 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't matter what language you're in. < 1174871556 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :be it Lisp or Fortran < 1174871565 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or something in-between < 1174871567 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :define action < 1174871576 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :statement; statement; statement; < 1174871600 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-nod- in all my experience with language designing... everything breaks down to the primitives. < 1174871608 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...my limited experience, mind you < 1174871611 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, that is one way to abstract any language < 1174871621 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but many languages do not have statements < 1174871628 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like that < 1174871630 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Lisp, for example. :) < 1174871637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, yeah :) < 1174871640 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Lisp has statements :P < 1174871649 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :though not the "blah;" < 1174871651 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :form < 1174871655 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... it has macros... which can sometimes look an awful lot like statements. < 1174871656 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the main reason I designed functions in a name [params][unloads] style rather than unloads=name[params] style is that rather than getting really long lines of nested functions for some operations, you just get a series of code blocks one after another < 1174871691 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :not sure I follow that < 1174871694 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Figs it's all about abstraction, you can think of everything as functional as well, it's just not every language is inherently the "action" kind < 1174871695 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :explain? < 1174871703 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Smalltalk, from what I can tell... has no statements. and currently Sophia executes as one huge expression. < 1174871744 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :unless you're doing something like prolog < 1174871751 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :then you're doing statements... essentially. < 1174871757 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :prolog is more like declarations < 1174871761 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: i thought that might have something to do with it < 1174871765 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well < 1174871765 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bullet will never have something like Length[Mid[Input[0],5,8]] < 1174871783 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :there's probably a better way of explaining < 1174871788 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :because that looks nasty and matching brackets is hard to read < 1174871810 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually that's one thing i thought you might've not thought through :P because... well i like the nested chaos < 1174871817 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so, how do you do Length(mid(input(0),5,8)? < 1174871832 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :int rtn < 1174871848 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :do input[0] to [rtn] < 1174871855 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1174871859 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1174871884 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :do mid[rtn,5,8] to [rtn] < 1174871898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174871900 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :now, maybe my problem is I really don't see that big a difference between functional programming and proceedural programming... < 1174871901 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :do length[rtn] to rtn[] < 1174871911 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's really loose, though < 1174871941 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm ignoring var types and proper return names because I just made those functions up and this is an example < 1174871947 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do mid[rtn,5,8] to [rtn] -> do mid[input,5,8] to [rtn] i suppose < 1174871977 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174871986 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how are you combining input[0] with 5 and 8 for mid? < 1174872005 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :is oklotalk 'Length(mid(input(0),5,8)' is written '3' PLUS it never fails! < 1174872008 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*in < 1174872018 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... what does mid do? < 1174872022 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :substr < 1174872026 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1174872036 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, remember, in bullet "do foo[arg:x] to [y:val]" is equivalent to the C-style "y=foo[arg];" < 1174872037 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :let's see.... < 1174872063 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I gave a bad initial example... < 1174872067 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and what's input[0] ...like stdin? < 1174872073 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :does it matter? < 1174872074 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174872076 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :input[0] is input's length < 1174872079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in bullet < 1174872083 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1174872088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since arrays and strings are 1-indexed < 1174872089 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't. It's just a random function < 1174872138 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so... how exactly are you combining input[0], 5, and 8? < 1174872143 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :for mid? < 1174872151 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or can you not do that as a single statement? < 1174872152 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I JUST MADE THAT FUNCTION UP < 1174872162 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :you're overanalyzing a poor example < 1174872163 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :... :) < 1174872170 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eep :P < 1174872173 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't care what it does < 1174872179 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :just how your interfaces connect < 1174872194 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :let's go back to this better explanation: < 1174872195 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :in bullet "do foo[arg:x] to [y:val]" is equivalent to the C-style "y=foo[arg]; < 1174872202 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok... < 1174872203 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so < 1174872213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :first_input=input[1]; do mid[first_input,5,8] to [sub:ret]; Length(sub); i guess < 1174872227 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't it be < 1174872242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :input[1] to [first_input:notsureonthis]; < 1174872248 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174872251 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1174872257 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Maybe. < 1174872263 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :do* < 1174872266 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :do to < 1174872269 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :assuming foo is "def foo[int:x] returns [int:val][val = x+x] < 1174872269 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :do input[1] to [first_input] < 1174872286 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :BUT var = value, if value needs no function call < 1174872289 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :this is how i see it < 1174872296 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I thought input[1] was a function O.o < 1174872309 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174872314 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then it'd been how you said < 1174872334 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :something I read a while ago about making languages easy to teach < 1174872345 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :is to make visually distinct syntax for each concept < 1174872353 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what was input[1] supposed to be then? < 1174872355 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :array? < 1174872363 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :inputs in an array :P < 1174872368 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whatever they are... < 1174872369 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :this was the problem with the example: I wasn't specifying return types and input types, so it's impossible to tell if foo[x] is supposed to be an array index or a function < 1174872371 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...hmmm, if that were true... Perl would make a great educational language. < 1174872376 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :input(0) in the first example < 1174872377 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's why they work how they do < 1174872401 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and why my example, I will say again, sucked < 1174872408 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Rodger, no offense meant, but you should either (a) combine functions and arrays or (b) make the syntax distinct ;) < 1174872422 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :they *ARE* distinct. < 1174872428 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :then I'm confused :P < 1174872453 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the syntax is distinct... function: do <> to <>, array var=array[index] < 1174872462 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :s/array/array: < 1174872462 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :when I actually write code, they're distinct. They aren't when I give pseudocode to try to explain how something works and you interpret it as real code < 1174872482 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :(i'm not sure about the syntax though :)) < 1174872492 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :this is kind of fun :D < 1174872505 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :whee. I'm not used to talking to people who find this stuff interesting :) < 1174872511 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :just look at the example code in the spec so far- it is all correct < 1174872515 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... I'm not sure visually distinct concepts makes for good educational languages. < 1174872530 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Scheme is really good for learning... and it's completely and utterly uniform < 1174872546 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Figs my thoughts exactly when i first came here < 1174872554 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Scheme ownz0rz. < 1174872555 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Perl makes sure that every concept is visually distinct... but it's consider a complete mess to start off on. < 1174872562 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I'm glad I found this channel < 1174872572 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hi, Sukoshi! Long time no see. < 1174872584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you are wrong there... [03:21:12] Maybe. < 1174872584 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Who in their right mind thinks that making each different programming concept visually distinct helps? < 1174872600 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :That's the very *antithesis* of abstraction! < 1174872627 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi: have you seen the language I'm working on? < 1174872637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nonlogic.org/dump/text/1174856252.html < 1174872637 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: Nopes. < 1174872638 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174872646 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sukoshi: link. < 1174872648 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :thanks, oklopol < 1174872650 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :making syntax for different operations visually distinct < 1174872650 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174872651 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I've been cramming (and am, and will be) AP test stuff, mostly Physics. < 1174872679 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I plan on trying to build a magnetic engine after the AP test based on an idea I got. < 1174872709 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :neato < 1174872719 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :our own Tesla < 1174872726 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :let me see if I can find the examples from before... < 1174872735 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Did Tesla make a magnetic engine? < 1174872766 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I actually like some of Perls ideas... and I like a good deal of Schemes ideas too... but are very different. < 1174872779 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :s/but/both < 1174872791 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I haven't gotten far in learning perl < 1174872797 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but that's because I haven't spent much time at it < 1174872801 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(about 15 minutes?) < 1174872807 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what I've seen so far, I've liked < 1174872824 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I had a hard time working with message-passing OOP after having fun with CLOS for so long. < 1174872897 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok, here was the example I found that made me think distince syntax was a fairly good idea < 1174872905 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :note, I haven't programmed in the language < 1174872927 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :A(B) supposedly has 5 possible meanings in Turing < 1174872940 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :[1] call function A and pass parameter B < 1174872957 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :[2] dereference pointer B to access an object in collection A < 1174872957 0 :jix!unknown@unknown.invalid QUIT :"Bitte waehlen Sie eine Beerdigungnachricht" < 1174872966 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :[3] access the Bth element of array A < 1174872980 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :[4] construct a set of type A with a single element having the value of B < 1174872997 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :[5] create a one-letter substring of the string A consisint of its Bth character < 1174873012 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*consisting < 1174873015 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I think a lot of languages get a little too caught up in their ideology... like Scheme. Lisp and Smalltalk create religious fanatics. < 1174873024 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174873029 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Paul Graham? < 1174873041 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...something like that. < 1174873048 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Python and its readability creates fanatics too. < 1174873093 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...while I like all of their ideas... I don't like how forceful they are about their philosophy. < 1174873105 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :I think there are fanatics of every language. < 1174873110 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's part of what's driving my development of Creole < 1174873116 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Although the ASM fanatics get sparer every generation. < 1174873119 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the fact that "There are many ways to do things" < 1174873139 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Languages like Perl are nice because it doesn't force you to succumb To The Grand and Absoltute Plan. < 1174873150 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think it's already been done though < 1174873155 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can't remember what < 1174873158 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Tcl? < 1174873166 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :That's Perl's motto < 1174873170 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :There's more than one way to do it. < 1174873194 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :One of Python's mottos is "There should be one obvious way to do it". < 1174873197 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, bullet's design philosophy is the creation of failsafe code... I'm not sure that's really an ideology that'll incite fanaticism, just fanaticism for the compiler-writers. :) < 1174873210 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174873265 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's just a feature of the language... < 1174873277 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I like languages that are fun to play around with... and let you do what you want. The first language I learnt was Python - and I loved it until I discovered other languages. Now Python seems kind of conservative and bland... but I still use it the most because I know it really well. < 1174873290 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :some of the things that I'm trying to do with my language (dunno how well I'll succeed) are: (1) flexibility for extension, (2) good error handling and debugging, (3) documentation after I finish designing the syntax < 1174873334 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think error handling is one of the keys to building a really good language. < 1174873346 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Few languages focus on error handling as well as they should. < 1174873347 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've made one language while we've been talking :) < 1174873353 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174873355 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174873356 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well.... not thoroughly < 1174873368 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Sophia's Grand Principle of Construction is: (1) THE AWAKENING OF THE ABSOLUTE MODE OF THOUGHT (2) A LANGUAGE THAT CREATES ORGASMS WHILE DOING THINGS VERY VERY WELL UNDER A SINGLE AND ALL CONSISTENT IDEAL < 1174873386 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1174873388 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174873391 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :now THAT's a language. < 1174873401 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174873412 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to remember his last coding-induced orgasm... < 1174873418 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :... < 1174873434 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :am I in #esoteric or #ecstacy ? :P < 1174873438 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm kinda drawing a blank here, SevenInchBread < 1174873450 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...Homespring is an excellent language - which has already done this: http://web.archive.org/web/20041011092543/http://www.rpi.edu/~bindej/hs.html < 1174873571 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ROFL! < 1174873573 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174873611 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :homespring is indeed fun < 1174873625 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :"Because programming isn't like a river, but it damn well ought to be!" < 1174873655 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, CLers are said to most proficient when under acid. < 1174873678 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Because even though the underlying brain pattern changes, they can abstract the language to work with their new brain patterns. < 1174873691 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174873701 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eh, makes sense :P < 1174873706 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that sounds frighteningly accurate < 1174873737 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...but now Sophia is the best language to use for anything ever... even though it's incomplete and kind of completely unspecified. < 1174873739 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :talking about orgasms, http://www.vjn.fi/pb/p115251624.txt i'm pretty sure i had a boner when i finished this < 1174873745 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not sure about the rest of the night < 1174873779 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty scary, dude < 1174873794 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :have fun at the international obfuscated C coding contest :) < 1174873797 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174873800 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :but as they say, "enjoy what you do"... < 1174873831 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i just bruteforced the seeds for the functions and obfuscated manually for 3 hours < 1174873831 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I once tried to obfuscated Python... < 1174873836 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it didn't work well. < 1174873842 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah it does < 1174873846 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... yeah. < 1174873847 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :python loves to be obfuscated < 1174873850 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :but not as well as like... Perl < 1174873872 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :most of Python obfuscation comes in the form of syntatic substitutions for very very simple things. < 1174873908 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www0.us.ioccc.org/1985/lycklama.c < 1174873928 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1174873931 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1174873941 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :found that on ioccc < 1174873947 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :couldn't find the ball program :\ < 1174873952 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I figured from the URL < 1174873963 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, in python you can redefine variable types... so you can have type and value separate... and that gets really kinky < 1174873985 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www0.us.ioccc.org/1985/lycklama.c < 1174873988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that do? < 1174873998 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't know. < 1174874010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mine was hello world < 1174874015 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :in case i didn't mention < 1174874034 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it has a non obfuscated version in the comment < 1174874073 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think it scrolls text to the right? < 1174874079 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174874087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what < 1174874088 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174874091 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :compile it and see :P < 1174874106 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174874107 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :based purely on the defines, it could do a lot of things... < 1174874110 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's a define thingie < 1174874126 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i once had the trouble of manually demacroing such a program < 1174874133 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it usually gets quite simple < 1174874143 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i mean the lycklama is a define thingie < 1174874161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :goto < 1174874167 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :doesn't compile for me :P < 1174874167 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :<3 < 1174874186 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I know what's wrong... I think < 1174874186 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'll try < 1174874237 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nope... < 1174874238 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :doesn't work < 1174874242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :gcc dies < 1174874250 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :invalid preprocessing directive #o < 1174874307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p514653524.txt < 1174874307 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and now < 1174874316 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :read(a,b,c,d), what's that? < 1174874372 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it defines a part of the rest of the defines, something c++ seems to deny < 1174874407 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174874414 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I thought C supported it < 1174874421 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but @_@ < 1174874449 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www0.us.ioccc.org/1985/Makefile < 1174874451 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :makefile for it < 1174874516 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I assume it's part of a set of these < 1174874637 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I tried manually translating all the defines for that program, and I just get a mess < 1174874658 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174874659 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1174874671 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1174874684 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :have you guys read the Crenshaw "Lets make a compiler!" series? < 1174874689 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :those last two lines #o garbage.... < 1174874693 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :just don't make sense to me < 1174874702 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :unless I don't understand what define does < 1174874703 0 :ShadowHntr!unknown@unknown.invalid QUIT :"End of line." < 1174874752 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1174874757 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :sounds interesting < 1174874783 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I found it from bloodshed.net < 1174874808 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :link us up < 1174874828 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :looking for it < 1174874835 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I have it downloaded and can reupload if I can't find it < 1174874862 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :got it < 1174874862 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://iecc.com/compilers/crenshaw/crenshaw-txt.zip < 1174874868 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :feel free to use my team's pastebin at nonlogic.org/dump < 1174874874 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174874874 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION downloads < 1174874879 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I usually use rafb.net/paste < 1174874882 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but thanks < 1174874896 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm.... does someone have a dismacroer for c? < 1174874901 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I used to use rafb until we went ahead and coded our own. :) < 1174874906 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174874932 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i tried to use my one-step thue but... it does not work of course < 1174874942 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how far along are you guys in actually building compilers for your languages? < 1174874951 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've never made a compiler < 1174874969 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Figs: this looks awesome! thanks, man- I'm sure it'll be fascinating reading < 1174874973 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've made prolly 50 or something interpreters < 1174874979 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :warning though, it is in pascal :P < 1174874982 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it might push a real Bullet compiler closer to existence < 1174874982 0 :mvivian!n=mvivian@203.19.141.34 JOIN :#esoteric < 1174874987 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :eew < 1174874994 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but it is easy enough to read < 1174874994 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :god c is beautiful <3 < 1174874995 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm sure I can still learn from it < 1174875026 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... guess i'll do it manually < 1174875050 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :c is an ass ugly language that only survives because of it's legacy codebase and a dearth of viable alternatives < 1174875065 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the target language the guy is using is 68000 asm < 1174875074 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :awesome < 1174875084 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :68k's have a pretty clean instruction set < 1174875111 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :c is the most beautiful language i know < 1174875111 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :pascal +68k asm... sounds like the early days of the macintosh < 1174875114 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, my assembly skills are next to nothing :P < 1174875131 0 :mvivian!unknown@unknown.invalid PRIVMSG #esoteric :mine are next to yours < 1174875133 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've dabbled with FASM before I got good at C++... which was years ago < 1174875160 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that didn't come out right :P < 1174875165 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :let me rephrase... < 1174875213 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I tried learning Fasm years ago before I got sufficiently proficitent in C++ to really see how things fit together from the low to high level. < 1174875242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :now... manually fix the typoes I just made and you'll have a fairly good description ;) < 1174875259 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm reading these with less < 1174875268 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :since notepad doesn't like the formatting < 1174875298 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(yes. I'm still on Windows.) < 1174875305 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(please don't kill me ;p) < 1174875338 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :seems like they have a link to a book on parsing < 1174875338 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.vu.nl/~dick/PTAPG.html < 1174875339 0 :mvivian!unknown@unknown.invalid PRIVMSG #esoteric :request granted < 1174875341 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I haven't read it < 1174875475 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :c.... beautiful? < 1174875525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174875699 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1174875704 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :C can be nice... < 1174875712 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :much of the time, I don't think it is < 1174875714 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but it can be ;) < 1174875746 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :right now, I'm working on my rule-parser system < 1174875776 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eventually, my compiler will be able to have rules handed to its parser stage < 1174875852 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if I get this to work :P < 1174875864 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :out of curiousity < 1174875871 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :have any of you blogged about your language design? < 1174875961 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....nope. < 1174875967 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just got back from obfuscating some Python. < 1174875981 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I managed to change x = [5,4,3,2,1] into... < 1174875983 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :vars(__import__("".join(map(lambda x: chr(ord(x)+42), "558K?BJ?D55"))))["".join(vars(__import__("".join(map(lambda x: chr(ord(x)+42), "558K?BJ?D55"))))["".join(chr(aracter) for aracter in [99, 104, 114])](think) for think in [103, 108, 111, 98, 97, 108, 115])]().__getattribute__("".join(map(lambda x: chr(ord(x)+42), "55C;J?J;I55"))[::-1])(chr(2*2*2*5*3), map(lambda n: n-100, xrange(101,106))[::-1] < 1174875985 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :) < 1174875995 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::X < 1174876002 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eep < 1174876010 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...not very elegant or anything... but fuck you. < 1174876013 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174876023 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :obfuscation is fun, deobfuscation is hard < 1174876035 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...that one was a mind bender. < 1174876039 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :because I had to DEBUG it. < 1174876048 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :obfuscation looks cool, deobfuscation looks boring < 1174876065 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :wot? fsck me? :P < 1174876083 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :my roots are in good working order, thanks for asking. D: < 1174876105 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...there's nothing much that I can find that points to the original x = [5,4,3,2,1] < 1174876112 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174876120 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so, that's what it was supposed to do :D < 1174876127 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-nod- < 1174876136 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :missed that above < 1174876145 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I tested it to check for sure. :) < 1174876146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1174876147 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :http://www.vjn.fi/pb/p263653563.txt < 1174876153 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i < 1174876178 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i've done the part i could've done in a second if i'd been using a better compiler < 1174876186 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ooh... that's a good one < 1174876207 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's the http://www0.us.ioccc.org/1985/lycklama.c < 1174876214 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I've never used control flow to mung up Python... I usually just substitute in various encrptions and the like. < 1174876221 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174876232 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :that's nice because you can do it automatically < 1174876261 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you got that out of lycklama.c? < 1174876262 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I might make a Python obfuscator one of these days. < 1174876265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :control flow can be used to obfuscate the program from tedious to decrypt into impossible to decrypt < 1174876278 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's impressive :D < 1174876287 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I shall present my finding to #python. < 1174876291 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Figs i just demacroed it, calculated the 1<<1<<... thingie and calculated the calculations < 1174876293 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :you can watch them kill me if you'd like. < 1174876304 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ooh ok < 1174876326 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought i was there already < 1174876327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1174876378 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my hello world had no part that could be trivially made simpler < 1174876390 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you guys can take a look at my blog if you want < 1174876391 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://student.hpa.edu:16080/weblog/cmcfarland/ProgrammingDesign/ < 1174876405 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's on my design and implimentation of Creole < 1174876409 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :updated occasionally < 1174876421 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...the most obvious give-away to what the code does is the very last part - (chr(2*2*2*5*3), map(lambda n: n-100, xrange(101,106))[::-1]) < 1174876452 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if you say so :P < 1174876495 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :since that uses multiple things my python does not have i won't try to decrypt it < 1174876501 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :once you de-factorize that to 120 and find the ASCII value of that to be "x"... and substraction 100 from every element in [101,102,103,104,105]... and then do a reverse step (that's the [::-1] part) < 1174876504 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it does? < 1174876512 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1174876513 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :oh... well maybe __getattribute__ < 1174876533 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :[::], getattribute, (... for ... in ...), etc < 1174876537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174876562 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"my python does not have i won't try" can you supply me the word i was looking for for 'have' < 1174876578 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :support, might be < 1174876583 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1174876593 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :impliment? support? < 1174876599 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ACTION scratches head < 1174876627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :support... i get stupider by the day :) < 1174876676 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ooh < 1174876682 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :write a C obfuscator < 1174876686 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that outputs your code < 1174876691 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :to look like a picture :D < 1174876695 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(you give it code and a picture < 1174876705 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and it will try to match the picture in terms of ascii < 1174876743 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::D) < 1174876767 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm wonder why i never thought of that < 1174876772 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sounds cool :) < 1174876801 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :have fun < 1174876809 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think it would give me a headache :P < 1174876815 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or 10 < 1174876817 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174877034 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I saw an excellent photoshop of a C quine in the shape of a ying-yang. < 1174877079 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :how does photoshop help for doing that? < 1174877104 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't... they just gave it color and made it look cooler. :) < 1174877173 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174877209 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I need to start considering how I'm going to do an audio language. < 1174877242 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...like... an interactive prompt type language for generating live music. < 1174877262 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ooh < 1174877270 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :deobfuscated further: http://www.vjn.fi/pb/p654653315.txt < 1174877280 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :at this point it's clear enough < 1174877284 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :>start beat 1'2!'3~~tah < 1174877330 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and yes, i program c but use c++ libraries. < 1174877348 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think I do that < 1174877367 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I even found a way of making singleton classes without using the 'class' or 'struct' keyword ;) < 1174877381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :tell me < 1174877435 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :use namespaces < 1174877436 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :most of the actual music would come from pre-existing files... naturally recorded and the like. < 1174877452 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and unnamed namespaces ;) < 1174877455 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the programmer can just manipulate them and paly them in sync... as processes. < 1174877458 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so, for example: < 1174877476 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :7" : look at the format of trackers like IT and MOD and XM < 1174877486 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(if you haven't already) < 1174877493 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, I'll write an example < 1174877520 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I've got way too many projects in mind. < 1174877568 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :countless languages, at least two OSes, I'm still working on a MUD (which is supposed to be my "top priority" job at the moment)... < 1174877765 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/GTuSUz28.html < 1174877774 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :not a good example < 1174877777 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but you get the idea < 1174877781 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :this would be like, < 1174877790 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :string_handlers.cpp < 1174877791 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or something < 1174877793 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :if anyone knows what c's write() does, it'd help < 1174877809 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :write(1,"\n",(unsigned)(1)) will write a newline < 1174877815 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I would guess it writes output to the console < 1174877820 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'll look it up < 1174877840 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but write(1,string,arbitrary number)... i don't know what that means < 1174877884 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.bgu.ac.il/~omri/Humor/write_in_c.html < 1174877887 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(unrelated) < 1174877892 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but you might like that oklopol < 1174877956 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i might < 1174877958 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1174877959 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did you < 1174877961 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :check it? < 1174877964 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1174877971 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i couldn't find it :\ < 1174877980 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think I got it < 1174877992 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :int write(int handle, char *buffer, unsigned length); < 1174877993 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.........I'm going to have that stuck in my head. < 1174878016 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :does that make sense? < 1174878046 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah. < 1174878056 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :andle? < 1174878062 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*h < 1174878063 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :handle < 1174878067 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174878072 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the file handle, a reference to a buffer, and a length itneger. < 1174878083 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah, oki < 1174878083 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...kind of convuluted... but, eh. < 1174878245 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can't find any good info on it < 1174878298 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I really would like to make an operating system... < 1174878316 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how much asm do you know? < 1174878322 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...none. :) < 1174878322 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :x86 < 1174878324 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174878326 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1174878330 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :can't be too hard can it? < 1174878335 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174878354 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if you thought that previous version oklopol had was confusing < 1174878368 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :... :P < 1174878379 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't seem that hard, really. < 1174878393 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I think it gets very complicated because you have to keep a lot in your head < 1174878406 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1174878409 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can do most of it in C < 1174878417 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :once you port the libraries < 1174878418 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....I've never actually used C. < 1174878431 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :mainly because I don't think I'd like C. < 1174878433 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I have a friend who was working on an OS < 1174878437 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :called IceBox < 1174878447 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174878448 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I know the basics about C... I've just never practically used it. < 1174878450 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I like C... sort of < 1174878459 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :C strings are a pain in the ass though < 1174878465 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :most of the time < 1174878482 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like I know how pointers, structs, and namespaces and such work... I've just never, uh, used any of the libraries or the builtins or whatever. < 1174878507 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure namespaces were in C < 1174878513 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think that was something added in C++ < 1174878521 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-shrug- probably. I'm not really sure. < 1174878567 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I could write a sweeter language, with the same purposes as C... but more badass. < 1174878602 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :a better cross-platform assembly language? < 1174878683 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...or I could even just a just-in-time compiled Python... or some other language I like. < 1174878695 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm... http://www.vjn.fi/pb/p556343545.txt i might have some errors but seems to me it's just a verbose nop :P < 1174878713 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure about io specifics. < 1174878752 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think I found write() < 1174878806 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1174878809 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :doesn't match though < 1174878810 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :2 params < 1174878825 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i think your previous write was correct < 1174878831 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174878835 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I can't find it < 1174878838 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :anywhere < 1174878841 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :except that one site < 1174878849 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i couldn't find a use for the first param 1, but it was the handle < 1174878856 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :everything else made sence < 1174878877 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it takes input, then prints it out, backspacing it all away < 1174878911 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :write is included in < 1174878917 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :as a 2 param function though :P < 1174878921 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :fuck... i have school in 3 hours :OOOOOOOO < 1174878921 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :not a 3 param one < 1174878924 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1174878926 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :found that one < 1174878940 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :where is it getting the 3 param version from? :P < 1174878940 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but i think substr is clearer < 1174878953 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea, but the first param is handle < 1174878957 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :as you pasted. < 1174878961 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1174878962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it fits, it's right. < 1174878963 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1174878967 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174878984 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, that code was trivial < 1174879014 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could've seen that in a few seconds if i'd had tools... i'm very slow when manually deobfuscating < 1174879054 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :did you know that Notepad can function as a logging tool? < 1174879059 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :put .LOG at the top of a notepad file < 1174879061 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174879063 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and a new line < 1174879065 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and save it < 1174879069 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174879087 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174879090 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :then what? < 1174879100 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :reopen it < 1174879120 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it will add a line like < 1174879121 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :4:16 PM 3/25/2007 < 1174879159 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1174879161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :didn't know < 1174879175 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can also manually insert date/time by pressing F5 < 1174879188 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or going edit -> time/Date < 1174879190 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;D < 1174879208 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and if you want to change the format of a printed document' < 1174879212 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :there are a lot of things you can do < 1174879215 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :with headers and footers < 1174879278 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you sure know a lot about notepad < 1174879300 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1174879302 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :do this < 1174879306 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :open a new notepad document < 1174879307 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and type < 1174879311 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :'bush hid the facts' < 1174879313 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(no quotes) < 1174879316 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and save it < 1174879320 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :open it up again ;) < 1174879331 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i could just watch obfuscated c code for hours..... it's so beautiful with my black-white-blue highlighting < 1174879350 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :are you stoned? < 1174879353 0 :SevenInchBread!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1174879369 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174879370 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :????????? < 1174879375 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehehehe < 1174879381 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that say? < 1174879390 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :all I see is ?'s < 1174879392 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174879397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :chinese or smth < 1174879398 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I'm assuming you pasted chinese characters ;) < 1174879400 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the bush thing < 1174879402 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1174879402 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1174879407 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't say anything < 1174879413 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174879416 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1174879418 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's a bug from the way notepad saves files < 1174879424 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::\ < 1174879438 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :since it has to guess at the encoding < 1174879446 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :with very short files < 1174879450 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sometimes, it guesses wrong < 1174879486 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :did you know about the secret 10-times zoom and 3rd color option in MS-Paint? < 1174879513 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :press windows-r < 1174879515 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1174879516 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :type mspaint < 1174879522 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and load paint < 1174879525 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :then < 1174879550 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :set the image size to something small like 16x16 so you can get a better impression of how it works < 1174879564 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :draw a squiggle or something < 1174879576 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :click on the magnifying tool, and click just under the 8x < 1174879604 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit hard to do < 1174879612 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but if you get ti right < 1174879615 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you'll have 10x zoom < 1174879619 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah :) < 1174879621 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :instead of just 8 < 1174879623 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :got it on the first try < 1174879626 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174879632 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174879648 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :now, press ctrl and then click on a color < 1174879656 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :3rd choice for a color < 1174879656 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::O < 1174879663 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's that do? < 1174879670 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can draw with it by using ctrl < 1174879699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :heh cool :P < 1174879710 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anything else? < 1174879717 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1174879721 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :close paint < 1174879724 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :press windows-r < 1174879726 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and type < 1174879726 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :www.eeggs.com ? < 1174879730 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :or what's it called < 1174879736 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've posted the 10x zoom on there < 1174879741 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1174879751 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you found it? < 1174879756 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174879760 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :anyway, continue :) < 1174879762 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I read it somewhere else < 1174879765 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :a long time ago < 1174879769 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but they didn't have it < 1174879779 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I found the log thing in notepad myself though... but < 1174879785 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's because it's in the documentation ;) < 1174879785 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1174879789 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh :) < 1174879797 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(which no one bothers to read) < 1174879801 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :type < 1174879801 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the bush thing cannot be a bug < 1174879806 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :entirely at least < 1174879814 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eudcedit < 1174879817 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and open it < 1174879828 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you will get the 'private character editor' program < 1174879844 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :wtf is that :O < 1174879856 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's a font editor that lets put your own characters into the "private use area" < 1174879868 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :for insertion in, for example, MS-Word docs < 1174879874 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174879876 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :via the symbol thing < 1174879877 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how is it used? < 1174879897 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :pretty much like paint < 1174879930 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :want to see the ancient version of notepad? < 1174879933 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah :D < 1174879938 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :windows-r < 1174879940 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :edit < 1174879955 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174879957 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and press run < 1174879962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :edit i've used a lot < 1174879962 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174879968 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :) < 1174879973 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :seen it before? < 1174879988 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :edit.exe? < 1174879994 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174879997 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :edit.com < 1174880004 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I just type edit < 1174880010 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, well, i had 3.11 < 1174880016 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174880017 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so... i've seen it < 1174880017 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174880019 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174880029 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's still there :P < 1174880035 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and, i've used it for my java assignments from school < 1174880038 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hee hee < 1174880048 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I set up my own batch commands < 1174880051 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and programs < 1174880056 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :by modifying the path variable < 1174880065 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and changed the shortcut buttons on my laptop < 1174880067 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so now < 1174880082 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the DVD button runs the show desktop command < 1174880096 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and the Music button loads a new command prompt < 1174880101 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :heheh < 1174880105 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174880128 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, my laptop has a program which lets you decide what button does what < 1174880132 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174880135 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mine does too < 1174880136 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but it sucks < 1174880146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :mine doesn't < 1174880149 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :has the wrong buttons listed < 1174880156 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(they aren't even on my computer!) < 1174880172 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :some of the programs I added were < 1174880173 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sd < 1174880179 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :which calls the show desktop command < 1174880194 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :desktop < 1174880206 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :which changes to my desktop path < 1174880231 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(I think there's already a way to do this but I can't remember how :P) < 1174880235 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :prime < 1174880242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :which checks a number's primality < 1174880246 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(up to any length) < 1174880255 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :clone < 1174880262 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :which opens a new window < 1174880267 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(really easy to write that one) < 1174880280 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's just a redefinition of < 1174880282 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :start cmd < 1174880309 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and clear < 1174880316 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :since I kept typing 'clear' instead of cls < 1174880332 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(my tech class makes us use macs) < 1174880373 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think I also wrote a program to index a folder < 1174880386 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so I could just drop it the folder onto my server < 1174880395 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(which has indexing disabled by the admin) < 1174880432 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :what's it called when you move forward, then moves sideways without changing your direction? < 1174880464 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sidestep? < 1174880502 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :there's a word < 1174880504 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :starts with an s < 1174880506 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember < 1174880508 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174880525 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it was in tk ultimate < 1174880530 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174880536 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :strafe? < 1174880539 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ya! < 1174880542 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :thanks :) < 1174880575 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think it's gaming jargon < 1174880584 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :corruption of the military term :P < 1174880691 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... do you know tk ultimate? < 1174880731 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174880759 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i do not feel so good, should've slept :< < 1174880769 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1174880777 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'll be hitting the hay soon < 1174880787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's 6 am soon < 1174880787 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :11 pm here < 1174880795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :) < 1174880805 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's only 4:44 where my computer thinks it is ;) < 1174880813 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(pm, that is) < 1174880852 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :quick! what time zone does my computer think it's in? ;) < 1174880860 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :OMG :\ < 1174880866 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :SWEDEN? < 1174880869 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :CAPS < 1174880878 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174880886 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :16:45 < 1174880894 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :to use 24 hour clock < 1174880895 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174880897 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :australia, i have no idea < 1174880901 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Hawaii < 1174880914 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :same thing o_O < 1174880921 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1174880929 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm, i'll warm up a pizza and watch some simpsons... < 1174880935 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hee :D < 1174880945 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :let's see, you're in GMT+3? < 1174881017 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :where are you? < 1174881025 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :guess. < 1174881051 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Iraq? < 1174881082 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1174881102 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :russia? < 1174881113 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope, and that's the wrong time zone < 1174881118 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174881135 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1174881142 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i'm +2 GMT :) < 1174881146 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1174881163 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you have some version of DST where you are? < 1174881185 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh, indeed i do < 1174881185 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Lithuania? < 1174881194 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i don't know what that is < 1174881198 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881201 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but... no. < 1174881203 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174881207 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's in eastern europe < 1174881210 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Egypt? < 1174881213 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1174881230 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :South Africa? :P < 1174881238 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :nope, and you gave me a good laught < 1174881241 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :*laugh < 1174881249 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174881252 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174881261 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :you meant lithuania is in eastern europe < 1174881266 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1174881271 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i thought you meant egypt, would've been funny :P < 1174881276 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah :P < 1174881283 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no, I'm silly, < 1174881286 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but not that silly < 1174881290 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, yeah < 1174881298 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :but still you haven't guessed < 1174881313 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Greece? < 1174881325 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :we're spamming the channel with important content, i'd say :P < 1174881327 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174881328 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :not < 1174881332 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881334 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881348 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Botswana < 1174881351 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174881357 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :go up < 1174881360 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Are you in Europe, Africa, or Asia? < 1174881377 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Finland? < 1174881388 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Turkey? < 1174881396 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Sudan? < 1174881397 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :finland < 1174881399 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1174881415 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881428 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://home.wanadoo.nl/~timpol/gmt_map.gif < 1174881465 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174881470 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can see what I was guessing off of < 1174881474 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :cheater < 1174881476 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174881480 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881489 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I haven't memorized what countries are in which time zones < 1174881500 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :pathetic :O < 1174881518 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ACTION remembers them twice < 1174881521 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174881536 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174881539 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it < 1174881544 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :is 11 pm here < 1174881547 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :where am i? :P < 1174881560 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :america < 1174881571 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :America's a big place < 1174881575 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :two continents < 1174881576 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :usa < 1174881584 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :USA is a big place :P < 1174881589 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but yes < 1174881591 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :new york < 1174881593 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1174881600 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :iowa < 1174881604 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1174881606 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174881615 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think that's a different time zone < 1174881618 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174881632 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :DST! :P < 1174881653 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm..... somewhere on the east coast anyways < 1174881657 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174881660 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;D < 1174881663 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Virginia < 1174881665 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :near DC < 1174881675 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but usually, I'm in Hawai'i < 1174881679 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(GMT-10) < 1174881684 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah... i'd never've guessed < 1174881689 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1174881700 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hell, I could be in Peru :P < 1174881707 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's GMT-5 < 1174881727 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm in Michigan < 1174881736 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :greets :) < 1174881741 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :is it cold there? < 1174881759 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I just got back from pittsburgh a couple days ago < 1174881766 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and it was a bit chilly for me :P < 1174881768 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :it's hot in a t-shirt here < 1174881775 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1174881784 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :actually, we're having the beginnings of a beautiful spring here at Michigan Tech < 1174881787 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :like... 10 celsius < 1174881788 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1174881792 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1174881795 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :melt'alicious < 1174881806 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :actually, RTG, you might know a friend of mine < 1174881818 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :did you know water actually MELTS at 0 degrees? < 1174882081 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah, nvrmnd < 1174882088 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :she goes to U of Michigan < 1174882101 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :bleh. < 1174882114 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(this->memory == crappy) == true; < 1174882384 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I wish I had some cheap quasi-mexican food right now :( < 1174882389 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and some hot sauce < 1174882421 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe, i love how ppl say things like "oh you live in finland, my sister lives in europe too you prolly know her" :P < 1174882447 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1174882455 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I keep that to state-level at least < 1174882476 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :usually just to Indiana < 1174882486 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :since I know waaaaay too many people from Indiana < 1174882511 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hehe :D < 1174882536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :well, since i know about 5 ppl, i find that quite funny as well < 1174882576 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :really? :P < 1174882671 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :my computer scares me when firefox uses 90% CPU time < 1174882699 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :my computer scares me when i can't open new windows without closing others < 1174883019 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1174885118 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Well, what should it matter. You EU bums and your horrible intra-EU cultural jibes make it seem like you're countr... err union is doing well. < 1174885167 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1174885191 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1174885197 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :where did that come from? < 1174885216 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Watching annoying Finnish, Swedish, and Italian people make bad jokes about small cultural differences. < 1174885255 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Oh, add Norse too. < 1174885267 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Errrrr < 1174885278 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :s/Norse/Norweigan/ (wtf was I thinking?) < 1174885376 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174885383 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok... < 1174885398 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :EUの人間の文化の違うことは短いと思う。(笑) < 1174885422 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :Sukoshi where were you watching that? < 1174885445 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :In a chatroom. < 1174885452 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1174885479 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :okay... you must've misunderstood something if it was this chatroom :) < 1174885501 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Not this chatroom. < 1174885529 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174885537 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :school --------> < 1174887370 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :back < 1174887603 0 :_D6Gregor1RFeZi!unknown@unknown.invalid NICK :GregorR < 1174889273 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :good night everyone < 1174889279 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :`night < 1174889290 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :anyone know how to do low-level console output in C on windows? < 1174889300 0 :RodgerTheGreat!unknown@unknown.invalid QUIT : < 1174889302 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(like place a specific character at a specific position?) < 1174889313 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(without clearing the screen) < 1174889799 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1174890731 0 :Figs!unknown@unknown.invalid QUIT :Read error: 60 (Operation timed out) < 1174891035 0 :ShadowHntr!i=sentinel@wikipedia/Shadowhntr JOIN :#esoteric < 1174892891 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1174894681 0 :Sukoshi!unknown@unknown.invalid PRIVMSG #esoteric :Is that even possible? < 1174895301 0 :wooby!unknown@unknown.invalid QUIT :Remote closed the connection < 1174895318 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1174895413 0 :wooby!unknown@unknown.invalid QUIT :Remote closed the connection < 1174895423 0 :wooby!n=alan@cpe-66-67-60-51.rochester.res.rr.com JOIN :#esoteric < 1174895730 0 :wooby!unknown@unknown.invalid PRIVMSG #esoteric :in case anyone didn't know < 1174895737 0 :wooby!unknown@unknown.invalid PRIVMSG #esoteric :asp.net blows and never ever use it < 1174895929 0 :ShadowHntr!unknown@unknown.invalid QUIT :Read error: 145 (Connection timed out) < 1174895999 0 :clog!unknown@unknown.invalid QUIT :ended < 1174896000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1174898098 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :..okay < 1174906417 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1174907649 0 :eclectro!n=eclectro@c-24-10-182-251.hsd1.ut.comcast.net JOIN :#esoteric < 1174909244 0 :oklopol!unknown@unknown.invalid QUIT : < 1174909283 0 :jix!n=jix@dyndsl-085-016-239-244.ewe-ip-backbone.de JOIN :#esoteric < 1174909381 0 :oklopol!n=villsalo@194.251.102.88 JOIN :#esoteric < 1174909575 0 :oklopol!unknown@unknown.invalid NICK :oklofok < 1174909595 0 :oklopol!n=villsalo@194.251.102.88 JOIN :#esoteric < 1174909823 0 :eclectro!unknown@unknown.invalid PART #esoteric :? < 1174921241 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1174921241 0 :clog!n=nef@bespin.org JOIN :#esoteric < 1174921249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :welcome back, clog! < 1174921269 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Forte is just nuts < 1174921293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Try writing the interpreter! < 1174921295 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oooh... < 1174921298 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :idea < 1174921306 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how about making semetric languages? < 1174921307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(The fact that I'm writing it in Thutu2 probably doesn't help too much) < 1174921309 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :like < 1174921313 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Fire < 1174921314 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and Ice < 1174921322 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and you have to use both of them to write a program :P < 1174921340 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :of which, the length of one has to be the same as the length of the other < 1174921350 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :not counting whitespace ;) < 1174921357 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Well, Prelude's often written in two corresponding voices < 1174921365 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :where is the thutu2 pec? < 1174921368 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :*spec? < 1174921383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I modify the language whenever I want to add a new feature < 1174921391 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1174921398 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :what is thutu2 < 1174921400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the spec's evolving so fast it would be unfair to post it (I normally don't post specs until I'm finished) < 1174921413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Thutu2's the wimpmode for Thutu that's actually useful in writing programs < 1174921427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :It keeps all the same features, and adds various wimpmody stuff < 1174921454 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Figs: 'Fire and Ice' is a very Haifu-like concept, although Haifu's not symmetric the way you suggest < 1174921507 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :well, it comes because I'm listening to British video game inspired metal music O.o < 1174921520 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :playing vision of RPGs in the back of my head :P < 1174921528 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(z ? x : y) (a, b); //<--w00t! < 1174921533 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, what does 'O.o' actually mean? I've seen it around a lot but nobody's ever explained it < 1174921547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I take it x and y are function pointers? < 1174921551 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174921556 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :try make the face < 1174921557 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174921572 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's sort of surprised or like, < 1174921575 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :"wtf?" < 1174921586 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :hey, figs. How's it goin'? < 1174921590 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hi rodger < 1174921612 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm reading C-tricks that'll get you fired ... if your manager has any sense ;) < 1174921636 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you? < 1174921661 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :surfing the net, reading some webcomics, doing further work on "bullet" < 1174921688 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174921693 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1174921706 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ehh -- What is qsort < 1174921711 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Here's a neat C99 trick; in\u006E main(int argc, char** argv) < 1174921712 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've never seen it < 1174921726 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :quicksort? < 1174921730 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1174921735 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've never seen it in C :P < 1174921741 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I feel silly now :) < 1174921765 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, my C compiler is too old to handle C99 < 1174921784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :As for qsort, it's a function that takes a function pointer as argument < 1174921794 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that function tells it how to compare for the sort < 1174921952 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :so it *is* quicksort, right? < 1174921966 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not necessarily, I don't think, just usually < 1174921984 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :google for "n1124.pdf" if you want to see the draft of the C standard newer than the newest version < 1174921995 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mmmmmm < 1174922006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(As far as I remember, all the drafts except the official ones are posted online, so you'll have to settle for a new or old version) < 1174922105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :grr... my 99-bottles-of-beer program wasn't working because I forgot the final newline < 1174922112 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174922128 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is one of the weird people who does pseudo-functional programming in C++ < 1174922144 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :actually, I've got a way to make C++ look like Lisp < 1174922177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've heard of making C look like Algol or even Fortran or COBOL, but Lisp? You can't redefine ( < 1174922186 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174922189 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but you can redefine , < 1174922191 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174922198 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :so, it's not exactly like lisp < 1174922205 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but to the untrained eye, it looks like it < 1174922212 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :let me post an example < 1174922259 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and actually, it is not completely true... < 1174922263 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can redefine () ;) < 1174922269 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(functions) < 1174922275 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and () operator < 1174922314 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah... yeah, I changed it before < 1174922318 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :let me rewrite my example < 1174922412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: as for the Thutu2 spec at the moment, I have # for numeric function library, $ for string function library, < 1174922449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :| for immediate output without dequoting, , for input one char from stdin even if a filename was given on the command line < 1174922488 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-S < 1174922490 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and everything in Thutu < 1174922501 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it's not that different really < 1174922504 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174922518 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION 's 99-bottles-of-beer program just finished < 1174922529 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it even got to the end properly < 1174922543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(except that my Forte interpreter needs an END line for guidance at the moment) < 1174922557 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :why is is slow? < 1174922599 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because in Thutu (and Thutu2), execution speed is proportional to the amount of memory the program's using < 1174922607 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok < 1174922611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and in Forte, n-bottles-of-beer is O(n) in space < 1174922616 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1174922629 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(Forte's an order of n worse in space than most programming languages) < 1174922651 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because the list of redefined numbers grows constantly as the program progresses < 1174922677 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174922776 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :The program itself is http://pastebin.ca/410563 < 1174922806 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I think the Forte interpreter linked from the wiki page should be good enough to run it if you replace the final REM with an END) < 1174923174 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/T8FTst86.html < 1174923194 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I could have made it more general and added a print object < 1174923202 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but I just left it with cout < 1174923300 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Figs: that's one of the worst abuses of operator overloading I've ever seen! I'm impressed! < 1174923302 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ais523: don't numbers get "use up"? < 1174923304 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174923315 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :thanks ^_^ < 1174923318 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: yes, but with a bit of care you can prevent it trashing your program < 1174923342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you don't take enough care, you end up with the stupid arithmetic programs I was mentioning earlier < 1174923353 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/programs/problems/ < 1174923374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :One important trick is to leave low-valued numbers (say up to about 1000) alone in long programs, because you'll need them < 1174923393 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(The 99 bottles of beer program is sufficiently short that trashing all the small integers isn't a problem.) < 1174923449 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :have you *written* a long program? < 1174923495 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Not in full, but I've thought about what they'd be like < 1174923542 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the funny thing though is < 1174923550 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've done nothing particularly new < 1174923554 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :this is used ALL THE TIME < 1174923555 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174923559 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :usually with operator << < 1174923564 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174923566 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :because it's precedence is better < 1174923571 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but also with operator+= < 1174923579 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and + < 1174923585 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I think that the two ops need a superclass to avoid the repetition seen there < 1174923593 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm? < 1174923594 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174923602 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :this was something I hacked together a while ago < 1174923607 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :as a proof of concept < 1174923614 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on a better verion right now < 1174923647 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the thing is, the way I've written it is actually useful < 1174923648 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174923666 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :for what I will be doing eventually < 1174923673 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you need the operator' ' mentioned a few days ago < 1174923684 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :for quote? < 1174923692 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :no, I said: < 1174923697 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :operator' ' < 1174923702 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.O < 1174923702 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :operator "space" < 1174923704 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174923706 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174923709 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :instead of commma < 1174923735 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's why I said "lisp-like" instead < 1174923739 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :since you need the commas < 1174923742 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174923761 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :well, there are a couple ways to sort of get the effects < 1174923768 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :using operator() overloaded < 1174923780 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but it's not quite the same :P < 1174923790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :LET 32 = 44 < 1174923796 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :the main objection I've gotten is the lack of a quote function < 1174923799 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :from lisp < 1174923807 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I'm,redefining,space,to,comma,so,that,you,can,overload,it,properly) < 1174923813 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174923902 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I wish C++ had virtual member template functions < 1174923910 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1174923919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Invent your own language with them in < 1174923922 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174923925 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on that < 1174923940 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :although, it isn't meant as an esolang < 1174923954 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and actually < 1174923961 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it's only the functionality that'll be there < 1174923964 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1174923966 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on a language in which it's possible to redefine EOF if you really want to < 1174923971 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174923995 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :EOF = 0x2E; < 1174924082 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :O.o < 1174924088 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :can I overload global operator , ? < 1174924094 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(and put it in a namespace...) < 1174924112 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*blink* :P < 1174924195 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :OH WOW < 1174924197 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174924207 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :@_@ < 1174924207 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well in my language, all characters are commands (including EOF...) < 1174924234 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Figs: did you just /notice/ a _feature_ of your *IRC client* for the first time? < 1174924242 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174924250 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what was the OH WOW for then? < 1174924259 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I found out I can overload operator , to be called when it is placed BEFORE an object ;) < 1174924272 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174924282 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :MyObject::operator ++(int) < 1174924285 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :be afraid... be very afraid... < 1174924292 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :not operator ++, opertaro , < 1174924294 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*operator , < 1174924299 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where the int is just ignored, but serves to make the prototype different < 1174924307 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :You mean it works with , as well? < 1174924316 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :there is a way to do it like that, yes < 1174924322 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://www.cs.ust.hk/~dekai/library/ECKEL_Bruce/TICPP-2nd-ed-Vol-one/TICPP-2nd-ed-Vol-one-html/Chapter12.html < 1174924337 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :run a quick search for < 1174924344 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :C12:OverloadingOperatorComma.cpp < 1174924373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :As opposed to my C programs, the syntax in my C++ programs tends to stay somewhat sane < 1174924405 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I am not sure what happens when I have both a pre-comma and post comma defined... < 1174924418 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :time to write a test program! :D < 1174924610 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/y0e7Vn77.html < 1174924619 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :guess what this outputs < 1174924620 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1174924632 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(without compiling) < 1174924642 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :um... < 1174924657 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes off to look up the C++ standard < 1174924658 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :99 bottles of beer on the wall? < 1174924664 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174924669 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :a pirate shanty? < 1174924674 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it outputs "called 2" < 1174924677 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174924687 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :at least, with gcc < 1174925032 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hehe O_o < 1174925035 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :wtf!! :D < 1174925044 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh, this is too much fun < 1174925165 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes. < 1174925438 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've just read all the relevant parts of 13.3 and 14 in the C++ standard, and can't find where it says the overriding's done that way round < 1174925468 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :In fact, I would have guessed that the member template takes precedence, because it's only got one unknown type and the other has 2 < 1174925519 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174925524 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :woot! < 1174925542 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Breaking standards every day... :P < 1174925546 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :jk < 1174925577 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174925586 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'll take a look in the standard and see if I can figure out why < 1174925604 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've got a copy of it around here somewhere < 1174925837 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174925840 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :this is the problem with C++ < 1174925845 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :it has too many features < 1174925866 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and, it is not at all obvious how they are supposed to interact in quite a few situations < 1174925868 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :like this one :P < 1174925901 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :imagine trying to track down a bug in a real application that did that... with multiple inheritance, templates, and overloaded definitions < 1174925903 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :my god < 1174925904 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174926009 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok... remind me, when I finish my language... < 1174926019 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :to not write a 786 page standard for it < 1174926034 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174926067 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is that all? < 1174926090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Microsoft's Office Open standard (not to be confused with the rival OpenOffice) is over 6000 pages long < 1174926101 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's the size of the C++ standard < 1174926104 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :at least the version I have < 1174926109 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eh :P < 1174926153 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that's terrible < 1174926181 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh jeez < 1174926207 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can think of too many ways to make C++ programs complicated before trying to obfuscate them < 1174926223 0 :jix__!n=jix@dyndsl-085-016-233-004.ewe-ip-backbone.de JOIN :#esoteric < 1174926300 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :two kinds of exception handling, goto statements, member function pointers, inherited behavior in multiple inheritance (diamond problem), templates, static data, const type parameter overloading... in the same function! < 1174926320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is setjmp still legal in C++? < 1174926325 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think so. < 1174926358 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I do know that I have used atexit() in a couple of my programs :D < 1174926402 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh god < 1174926403 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :don't forget < 1174926407 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :pointer arithmetic! < 1174926420 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how could I forget that? :P < 1174926426 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hee hee < 1174926431 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as for atexit... my C++ compiler had a compiler to do the opposite and write a function that would run /before/ main() < 1174926440 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nice :D < 1174926442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/(a )compiler/$1pragma/ < 1174926451 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :have you ever used function references? < 1174926461 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Only function pointers < 1174926464 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I use them quite a lot, actually < 1174926484 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :they have a nicer synax in some cases for the user < 1174926497 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I can do something like < 1174926503 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :call_times(function,100); < 1174926509 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :instead of &function,100 < 1174926541 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :with a little care, you can do quite a bit of functional programming in C++ :D < 1174926605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :In C, at least, function is a pointer and the &function syntax is only supported for compatibility with confused programmers < 1174926624 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174926641 0 :jix!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1174926749 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :one of my favorite tricks was to make a function operator call a template function to determine whether or not the class's template parameter was void or not at compile time instead of runtime < 1174926763 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh sorry < 1174926766 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that was the constructor < 1174926773 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what am I saying now? :P < 1174926813 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I heard rumours of a program that someone wrote using nested templates where the (quite complex in effect) program ran entirely during compilation and created an executable which simply printed the answer out < 1174926821 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174926824 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :however, I don't know any of the details, so it might just be an urban legend < 1174926829 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no, you can do it < 1174926832 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :metaprogramming < 1174926849 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :usually though, for those sorts of things, you'd want to use the preprocessor < 1174926865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the preprocessor isn't Turing-complete. (I suppose templates aren't either, though.) < 1174926874 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :templates might be < 1174926875 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember < 1174926892 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174926896 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :C++ templates are turing complete < 1174926900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although once at the IOCCC someone implemented an ALU in the preprocessor without using preprocessor arithmetic at all < 1174926904 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://osl.iu.edu/~tveldhui/papers/2003/turing.pdf < 1174926921 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174926962 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to find a browser they have access to that isn't so old it can't handle PDF < 1174926999 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174927004 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I found a copy of IE on a Windows computer :-( and I have to retype the URL for that < 1174927009 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ouch < 1174927069 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it were Firefox I wouldn't mind retyping the URL so much... < 1174927069 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174927078 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :@_@ < 1174927082 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :C++ templates suck < 1174927088 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :they are just such a pain :P < 1174927108 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and they're hard to read, damnit! < 1174927119 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :but eh < 1174927122 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :whatever < 1174927123 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174927129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're much better than Java templates < 1174927135 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :Java has templates O.o? < 1174927145 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is not a Java programmer < 1174927149 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sort of, but they don't really work like you'd expect < 1174927152 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;p < 1174927158 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :why do you need templates in Java? :P < 1174927174 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it makes it easier to do things like abstract containers < 1174927191 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174927196 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you have to cast back-and-forth from Object in a totally type-unsafe manner < 1174927210 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1174927210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and then write exception-handling code to prevent the compiler complaining < 1174927218 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174927223 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hee hee < 1174927225 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174927317 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :looking at the page you linked, C++ template programming doesn't seem all that different from functional programming < 1174927329 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1174927347 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I usually do functional programming like things with pointers :P < 1174927364 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if only regexps had a 'matching-nested-brackets' code, a version of Lazy K or similar written using regexps would be interesting < 1174927392 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I wrote an unordered_set class a while back < 1174927398 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :that had a nice function < 1174927431 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you could give it a set and a unary predicate and it would give you all the true elements < 1174927498 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm working on a language that will be very expressive because you can extend the compiler in the source code :P < 1174927511 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :give it new rules and things to look for < 1174927519 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :like operator overloading... but more interesting < 1174927564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :CLC-INTERCAL had an operation for dynamically extending its own syntax, I think < 1174927588 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174927589 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1174927594 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'll have to look into that < 1174927603 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :part of what I am doing is < 1174927616 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :making really good debugging tools < 1174927621 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1174927633 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if you can just add a small function call before every single function < 1174927641 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :printing out the name of the funciton... :P < 1174927650 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you can see exactly what happens when your program executes < 1174927661 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I've already got a couple ways of doing that < 1174927681 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, can you read from cerr? < 1174927689 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :never tried < 1174927696 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I assume you can, but why would you want to? < 1174927714 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :fgets(stderr, ...) works in C and reads from the keyboard, generally speaking, rather than wherever stdin's been redirected < 1174927722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's really helpful when implementing more, for instanc < 1174927724 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1174927726 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/$/e/ < 1174927737 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what is this slash syntax you guys keep using? < 1174927741 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :s/$/e ? < 1174927750 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is new here :P < 1174927751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a sed command using regexps < 1174927761 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :okay. < 1174927768 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so s/a/b/ means 'change the first a in my previous comment to a b' < 1174927782 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and s/$/e/ means 'change the end of my previous comment to an e' < 1174927787 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. add an e on the end < 1174927811 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :My language Thutu is based on this sort of thing, so I tend to go overboard with it < 1174927842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :example: this like < 1174927865 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : /([^ ]*) ([^ ]*) ([^ ]*)/$3 $2 $1/ < 1174927871 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :read up on the language "Slashes" aka "///" < 1174927879 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :it's on the esolang wiki < 1174927882 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that isn't regexp-based, but otherwise similar < 1174927890 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except that it's flow control is all over the place < 1174927900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I tried for over a day to write a non-trivial infinite loop < 1174927905 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174927907 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm pretty sure it's possible, but I didn't manage it < 1174927924 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :several of us tried various approaches < 1174927925 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174927937 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I still think it oughta be TC < 1174927940 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :to be honest, I prefer things to be intelligible < 1174927958 0 :nazgjunk!unknown@unknown.invalid PRIVMSG #esoteric :that's why you're in #esoteric < 1174927961 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1174927963 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174927967 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what, you prefer things to be intelligible to Turing-Complete? < 1174927967 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :although, arbitrary storage and flow control is rather nontrivial in /// < 1174927978 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :storage is easy. Flow control is difficult < 1174928001 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :tell me storage is easy again when you implement an array < 1174928005 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm trying to find ways to keep Creole from being esoteric :P < 1174928020 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, I'm afraid it may end up that way < 1174928031 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :if Perl is so easy to corrupt... I doubt my language has much chance < 1174928046 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat: it should be easy enough to implement as a list. Retrieving the data, now that's difficult! < 1174928050 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :damned if I don't try to do it once though :P < 1174928053 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1174928058 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :alright, good point < 1174928085 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :RTG: @WHO? < 1174928087 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*who? < 1174928089 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1174928094 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hit caps instead of shift :P < 1174928101 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I was referring to ais523's comment < 1174928106 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ahh ;) < 1174928108 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(I tend to think of retrieving the data as a flow control problem. If you just want to output the data, all you have to do is let flow control run into it.) < 1174928116 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174928135 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/(.*)flow control/$1program execution/ < 1174928159 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I think my language is going to end up being syntactic LSD... O.o < 1174928163 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I understood your meaning < 1174928170 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Figs: reinventing ruby, eh? < 1174928172 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Figs: I'm replacing the second occurrence of 'flow control' < 1174928174 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174928187 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :or is ruby better categorized as "syntactic ADD"... < 1174928203 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1174928207 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't program in Ruby. < 1174928222 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Given a non-esoteric language: how many characters can be removed from it whilst leaving it still Turing-complete? < 1174928231 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :don't ever try it. It gave me more pain than malbolge < 1174928243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I imagine Lisp could get by on the parentheses and just a few letters of the alphabet < 1174928252 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and space < 1174928254 0 :crathman!n=chatzill@69.15.198.171 JOIN :#esoteric < 1174928262 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I heard something about just using ()" with lisp... < 1174928274 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I fully understood the method, though < 1174928291 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bbl- calculus and data structures < 1174928308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, a language like C isn't Turing-complete at all < 1174928362 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :actually, there is a one character or maybe two character turing complete language < 1174928370 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'll see if I can find it again < 1174928397 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Iota and Jot are both TC with 2 characters < 1174928409 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and of course, you can encode any language in binary < 1174928422 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :1L has just two characters and metadata like newlines, < 1174928442 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and there's a language where the length of the program is all that matters, so you can type it with just one character < 1174928462 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/OISC < 1174928463 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's also Wait, which uses a zero-character character set < 1174928471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and languages that use input < 1174928472 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :one operator < 1174928474 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174928478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/input/bitmaps/ < 1174928498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Wait is something of a classic < 1174928505 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what a program does depends on when you run it < 1174928513 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and there's only one possible program, the null program < 1174928519 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the language is TC < 1174928540 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174928555 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :@.@ < 1174928558 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yikes < 1174928561 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174928569 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :A < 1174928570 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :B < 1174928578 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I just lost a program opportunity! < 1174928582 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :*resets clock* < 1174928583 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yay < 1174928612 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :one instruction set computer :P < 1174928621 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :"Subtract and branch if negative " < 1174928624 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174928636 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://code.iamcal.com/pl/wait/wait.cgi is one example of a Wait interpreter. (It's not due to do anything interesting any time soon, I don't think.) < 1174928663 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :My own contribution to single-command languages is Black, which I think (but don't know) is TC < 1174928673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Black < 1174928744 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :sounds like Conway's Game of Life < 1174928755 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it works in an entirely different manner < 1174928763 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174928767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because Black has an instruction pointer, and Life doesn't < 1174928770 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174928791 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :pushing the boundries of what counts as language :D < 1174928792 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BackFlip drew more interest, though, even though it definitely isn't TC < 1174928808 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174928843 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174928849 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I got a db error < 1174928850 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Main_Page < 1174928873 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just refresh when that happens, it usually works the second time < 1174928887 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174928889 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1174928892 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :thanks... < 1174929087 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Of course, you could limit the expanded HQ9+ version to only have X < 1174929097 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is defined as 'makes the language Turing-complete' < 1174929109 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174929134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :consensus on the wiki, though, is when the language defined X to make the language Turing-complete, it was lying < 1174929150 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174929156 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :@_@ < 1174929161 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :enough < 1174929167 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I'm gonna go eat lunch < 1174929171 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and decompress my brain < 1174929172 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174929175 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :cya < 1174929373 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Forte is cool. < 1174929404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thanks. As well as the motivation given on the wiki (which is the main one), the idea came when thinking about irreversible programming languages < 1174929423 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :There are languages like Kayak where every operation is reversible < 1174929434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but in Forte, every operation is either a NOP or can't be reversed < 1174929447 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1174929463 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :forte is just fun to read the spec of < 1174929472 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :programming would be a huge pain i'm guessing < 1174929483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I linked my 99-bottles-of-beer program above < 1174929498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(and it took a couple of days to debug, so yes, programming is somewhat problematic) < 1174929505 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :OTOH having to put brackets around expressions with two numbers and an operator is not pretty < 1174929527 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :LET 3=1+1 is legal < 1174929539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but LET 4=1+1+1 isn't, because it's ambiguous. (That has to be bracketed) < 1174929558 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you have to put brackets around expressions containing three numbers and an operator, but two's okay < 1174929564 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i understand < 1174929568 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm just saying it's not pretty < 1174929609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's either that, or have the interpreter go into an infinite loop (when Thutu programs come across an error, they generally either go into a loop or exit) < 1174929641 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as for the brackets, I've never had to use more than three numbers in an expression before < 1174929654 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and when I did, the bracketing was pretty important to its meaning < 1174929734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the bracketing's much uglier inside the interpreter, though; it thinks of 99 = (99 + 5000) - 5001 < 1174929770 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as %(99%) = %(%(%(99%) + %(5000%)%) - %(5001%)%) < 1174929809 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that looks like perl :) < 1174929845 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Perl runs a lot faster < 1174929857 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I think it's meaningless in Perl, anyway < 1174929965 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :My interpreter now does everything but GET and INPUT. INPUT's like gets() anyway, in that it's impossible to use without a chance of the user invoking undefined behaviour, so I may as well just program GET now. < 1174929981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the other problem is that I haven't programmed the way to end a program given by the spec... < 1174930863 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1174930875 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :does anyone know how to output characters to a specific place on the console? < 1174930883 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :preferably portably < 1174930900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :can't be done completely portably, but libcurses can manage it reasonably portably < 1174930909 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174930914 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(there's an example in my Black interpreter, I think) < 1174931001 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :how large is the console? < 1174931005 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :80x14? < 1174931008 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :something like that? < 1174931026 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it actually queries the size < 1174931037 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :either that, or I guessed and chose something sensible < 1174931062 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, in DOS the console's always 80x25 or 80x50 on modern computers, which is exploitable if you know what you're doing < 1174931074 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174931085 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yay buffer overflow < 1174931105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't mean in that sense; it's just that you can't measure the screen size in DOS < 1174931124 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so you query the text-mode and attempt to use that to guess whether it's 25- or 50-row resolution < 1174931137 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :either that, or you set it yourself so you know it's right < 1174931158 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1174931198 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :or I could just rethink the way I'm writing this < 1174931277 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has just written the first cat program they've ever seen that /keeps on accepting input/ after EOF, somehow < 1174931290 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174931302 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, I type an EOF, it ignores it, and it accepts the next characters anyway < 1174931319 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174931358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I know I wasn't checking for EOF, but that's just silly < 1174931404 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1174931408 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :cat program? O.o < 1174931420 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1174931430 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1174931432 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :nevermind < 1174931434 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174931512 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174931518 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I just got cppreference.com as a .chm < 1174931520 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174931631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was thinking about what the null program does in various esolangs < 1174931638 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :In Forte it's cat, for instance < 1174931655 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :In BF it's a NOP (that seems to be the most common behaviour) < 1174931662 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in many langs it's an error, < 1174931674 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and in HOMESPRING, it prints "In HOMESPRING, the null program is not a quine". < 1174931695 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/"./."/ < 1174931735 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :in Wait... :D < 1174931743 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174931748 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :... it could do anything < 1174931756 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :rofl < 1174931758 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1174931766 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :you know what I hate? < 1174931770 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :va_arg < 1174931773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in Unneccessary, the only legal programs are those for which the file didn't exist when run < 1174931777 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in at least one other lang it's cat < 1174931782 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :and the fact you have to count the params :( < 1174931783 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :don't remember the lang < 1174931786 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(if the source file given exists, it's an error) < 1174931792 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1174931801 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.o < 1174931803 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174931829 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's cat in Thutu, in sed (which is almost esoteric), and a program consisting of only a newline is cat in HOMESPRING, minus newlines < 1174931838 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what was that lang < 1174931846 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hmmmmmmmmmm < 1174931867 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i remember liking it quite a bit < 1174931904 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :a null program was cat and it conceptually made sense for it to be cat < 1174931937 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ohhh < 1174931937 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :lazy k < 1174931971 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :null program = identity function = cat < 1174932032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep. In Overload (my work-in-progress that I tarpitised into Underload), null string = 1 = identity function = NUL < 1174932059 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(more languages should probably use incremented ASCII as a character set. It solves the EOF problem quite neatly.) < 1174932070 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :? < 1174932092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incremented ASCII: each character's codepoint is 1 more than the corresponding ASCII character's codepoint < 1174932103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and EOF is 0. < 1174932108 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :So newline is 11, space is 33, etc. < 1174932121 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :o.O ok < 1174932218 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :EOF should be infinity. < 1174932249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's kind-of hard to detect infinity in most languages < 1174932273 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in brainfuck it would be perfect < 1174932280 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :on eof, your program would likely freeze < 1174932333 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174932340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except that if it had been optimised, [->+<] might actually be able to handle infinity < 1174932360 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and besides, infinity could be detected, by eliminating each of the other possible values one by one < 1174932420 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah < 1174932433 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :were you involved in that "provably goes into an infinite loop" idea < 1174932443 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in which language? < 1174932450 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i forgot, some brainfuck variant < 1174932453 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :anyone have documentation for libncurses? < 1174932471 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :man curses works for me < 1174932493 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :esowiki keeps crashing < 1174932503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :refreshing the page tends to work, I find < 1174932507 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1174932512 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :I don't have the man pages for it < 1174932520 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :(yay, cygwin) < 1174932541 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh, i found it < 1174932545 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it was orjan < 1174932546 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Onoz < 1174932561 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(or maybe ihope) < 1174932561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Figs:google for 'man libcurses', and you'll find some online < 1174932628 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is getting a frustrating error < 1174932635 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Can anyone see what's wrong with < 1174932656 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nevermind, I figured it while I was typing out the question < 1174932688 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what computational class is onoz < 1174932713 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i suppose is just one-above-turing?.. < 1174932745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it says 'provably', so it's probably going to end up in trouble < 1174932774 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, it's fine < 1174932775 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that I think that by Goedel's incompleteness theorems, a program can't prove its own provability < 1174932784 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, you just need an oracle < 1174932798 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :which raises the computational class above turing, but only slightly < 1174932809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's not a matter of termination testing: you could set up what was inside the loop to terminate if and only if it provably doesn't terminate < 1174932820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :by quining the program and putting an interpreter inside the brackets < 1174932829 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1174932848 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1174932849 0 :nooga!unknown@unknown.invalid QUIT :SendQ exceeded < 1174932858 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure of that < 1174932866 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Actually... it might work after all, because the interpreter would require an interpreter to be able to test provability < 1174932866 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think that would fail < 1174932879 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think the problem is < 1174932879 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so an infinite number of nested interpreters would be needed < 1174932884 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :onoz is probably not even turing-complete < 1174932905 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :due to always halting < 1174932919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :who said it always halts? < 1174932924 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it always halts < 1174932932 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because if it doesn't, then the entire loop is skipped < 1174932934 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :a program will always halt < 1174932941 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :set it up to halt when it finds a zero to the Riemann hypothesis < 1174932945 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :in the real world :) < 1174932957 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then, either it never halts, or it's proved the Riemann hypothesis and we can all go home rich < 1174932963 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ais523: no < 1174932969 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it will halt regardless < 1174932974 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ais523: either when it finds it, or before it even begins < 1174932979 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it isn't allowed to skip the loop unless it can prove that it never halts < 1174932986 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :right < 1174932995 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so it would need the proof in order to decide whether to enter the loop in the first place < 1174933000 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's correct < 1174933005 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's not a big deal, it's super-turing < 1174933007 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but < 1174933017 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it might be super-turing in a dysfunctional way < 1174933021 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1174933031 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not sure if you even CAN write a program that would simply search for the zero :) < 1174933039 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well no, i suppose you can. < 1174933056 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most BF programs are going to run as normal < 1174933056 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :just have to avoid all potential infinite loops... < 1174933078 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :mmm < 1174933081 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :nevermind, you're right < 1174933088 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's turing-complete < 1174933109 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and its computational class i suppose is the same as brainhype < 1174933122 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(omega-above-turing) < 1174933214 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :then it should be compilable to brainhype... < 1174933259 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm wondering now if there are two distinct legal versions of the language, one of which is brainhype-complete, the other of which isn't even TC < 1174933270 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because the language is defined in terms of itself, that might be possible < 1174933297 0 :sebbu!n=sebbu@ADijon-152-1-28-131.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1174933310 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's defined in terms of brainfuck < 1174933351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, because [do something 1 [-]+[]] still does something 1 < 1174933367 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :s/[/+[/ < 1174933388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the program inside the main loop terminates in Onoz, because the [] is skipped < 1174933395 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but doesn't terminate in BF, obviously < 1174933411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so Onoz can run the main loop, but couldn't if it were defined in terms of BF < 1174933481 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hmm yeah < 1174933492 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :either that or the _entire_ loop is skipped < 1174933499 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that also seems consistent with the spec < 1174933504 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in which case nothing runs < 1174933519 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :(but the lang is still TC) < 1174933530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in any reasonable Onoz implementation, [-]+[] has to skip the second loop < 1174933537 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because a null string must always be NOP < 1174933546 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no but < 1174933554 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so as long as there aren't any infinite loops in the 'do something' I think the main loop has to run < 1174933571 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you can interpret the spec both ways < 1174933575 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :"When [] is encountered, everything in it is looped as in brainfuck, unless doing so would provably result in an infinite loop" < 1174933597 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the entire loop, if you loop it as in brainfuck, is provably infinite < 1174933609 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah... the spec doesn't make it clear whether the program inside the [] is BF or Onoz < 1174933631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm interpreting it as 'looped until the current tape cell is 0', which is BF's definition of [] < 1174933643 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you're interpreting it as 'looped as if it were a BF program' < 1174933692 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you interpret it my way, then the language is really boring < 1174933711 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it either works like normal brainfuck, or the program's main loop is skipped entirely < 1174933716 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1174933797 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yay! I got my Forte cat program to end on EOF, with an END keyword in the language < 1174933815 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :In fact, I think I'll save myself implementing trouble and yet more inefficiency by adding END to the spec < 1174933882 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you interpret the onoz spec my way, then onoz is trivial to compile to brainhype. < 1174933951 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :almost trivial, anyway. < 1174934038 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, seeing as the programs whose termination it's testing are merely TC, it could probably be compiled into Banana Scheme-1 quite easily < 1174934052 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which would mean it's only TC-plus-1 complete after all < 1174934055 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :replace > with >>, < with <<, and each outernmost [LOOP] with >+{<[LOOP]}[-<[LOOP]>]< < 1174934082 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :seems to work < 1174934108 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you interpret the spec your way, it's harder; and yes, i suppose you're right. < 1174934147 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :cat in Forte's actually quite elegant. I'll type it all out here: < 1174934164 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :515 LET 514=514+4: GET 518-1: LET ((518-1)+257)+1 = 1 < 1174934176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :518 LET 515=515+4: LET 520=520+4: PUT 518-1 < 1174934177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :520 END < 1174934199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I like the way that all the numbers are significant, even though they look kind-of random < 1174934231 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh, {} works the opposite way, so my "translation" is completely broken < 1174934306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Wow, my cat program's the slowest cat program in history too, it seems < 1174934317 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I set it to cat its own source code and it's still doing the first line < 1174934361 0 :sebbu2!n=sebbu@ADijon-152-1-39-138.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1174934478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just finished the first line < 1174934513 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1174934529 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: ha! < 1174934569 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ha what? < 1174934578 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :explain http://esolangs.org/wiki/Onoz < 1174934923 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :time forte.pl cat.4te <,[>,]<[.<]!Brainfuck manages Turing-completeness by having an infinite tape < 1174935743 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :epat etinifni na gnivah yb ssenetelpmoc-gniruT seganam kcufniarB < 1174935783 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :let's make language < 1174935794 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :esoteric sure < 1174935800 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :and we will make translators < 1174935810 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :from every eso-language to it < 1174935828 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one sure test: if you can compile Brainfuck into a language, that language must be Turing-complete < 1174935830 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric : ~bf >,[>,]<[.<]!Kcufniarb < 1174935863 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder why the bot's ignoring you? < 1174935867 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :~bf >,[>,]<[.<]!Kcufniarb < 1174935867 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :brainfucK < 1174935880 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric : ~bf >,[>,]<[.<]! Brainfuck < 1174935890 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric : ~bf >,[>,]<[.<]! Brainfuck < 1174935893 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric : ~bf >,[>,]<[.<]!Brainfuck < 1174935897 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :it hates me < 1174935909 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there's a space at the start of your commands < 1174935913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the bot doesn't like that < 1174935934 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :~bf >,[>,]<[.<]!kcufniarB < 1174935934 0 :bsmnt_bot!unknown@unknown.invalid PRIVMSG #esoteric :Brainfuck < 1174935984 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174935985 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :::) < 1174935994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot seems not to be here at the moment, which is a pity as it knows more languages than bsmnt_bot does < 1174936015 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :in which eso-language do you "speak" < 1174936018 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :*s < 1174936022 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :languages < 1174936047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Well, I wrote quite a few < 1174936048 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underload's one of the more elegant of them < 1174936063 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm busy on a Forte interpreter at the moment < 1174936071 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :Forte? < 1174936078 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/Forte < 1174936100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(that URL will serve to answer your questions about most esolangs if you change the bit at the end) < 1174936123 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i know wiki engine < 1174936148 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :forte looks like basic < 1174936169 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was designed to be as similar to BASIC as reasonable < 1174936175 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :aAa < 1174936185 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because flow-control is based on redefining line numbers < 1174936186 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i wrote simple basic interpretator < 1174936205 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I wanted something that seemed familiar until the 'WTF?' reaction when you realise what it's actually doing < 1174936267 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :Polish "WTF" is "O co kurwa łazi?" < 1174936288 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :reverse polish "WTF" is FTW. < 1174936314 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It would be TWF < 1174936322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or `W`TF in Unlambda notation, I suppose < 1174936337 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Or rather, WFT ... I forget which is reverse X-P < 1174936340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it depends on which words are operands and which are operators < 1174936359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if 'the' and 'what' are both unary operators, then lament was right < 1174936373 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :what do you think about intercal? < 1174936388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : I released the most recent version of the C-INTERCAL compiler < 1174936400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I started with some existing code and added features like multithreading and backtracking < 1174936418 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :in wich languages do you program? < 1174936435 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, the C-INTERCAL compiler's written in C, as the name would suggest < 1174936458 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm using C++, Perl, and Thutu2 to write implementations for various esolangs in at the moment < 1174936472 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :is thutu2 good? < 1174936476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I wrote bsmnt_bot's Brainfuck interpreter in Python < 1174936489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Thutu2's incredibly inefficient, but not too bad when you get used to it < 1174936504 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :I'm using c++ or sometime pascal < 1174936509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's an esolang itself, a wimpmode for Thutu, which I use to write other esolangs in < 1174936514 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :or bash scripts < 1174936526 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wrote a Thue implementation in sed once < 1174936538 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it compiled Thue to sed, and was written in sed itself < 1174936539 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :... Pascal? Are you logging into IRC via a time machine? < 1174936544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it had several bugs, though < 1174936556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: I still use Pascal on occasion < 1174936564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(only when maintaining old Pascal programs, though) < 1174936565 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :ACTION slaps ais523. < 1174936567 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :BAD AIS < 1174936570 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :DON'T DO THAT < 1174936571 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1174936581 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what? It's not as bad as COBOL < 1174936582 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :intercal is older than pascal, isn't it. < 1174936588 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :afk < 1174936590 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :INTERCAL was 1972 < 1174936592 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hah < 1174936614 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :present < 1174936642 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Pascal was 1970 it seems, so INTERCAL's two years younger < 1174936646 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :aww < 1174936686 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :ehh < 1174936694 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :One thing that I do know is that a Pascal program I was maintaining was about 5 times faster than its C equivalent < 1174936701 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :Is my English good? < 1174936705 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which probably says something about the quality of the compilers... < 1174936721 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sirKIIdB: I haven't noticed any problems with it yet < 1174936726 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :thx < 1174936750 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you know, apart from the B and the lack of backquotes, your nick's almost legal Unlambda < 1174936768 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I wonder if ``````sirkiid does anything interesting? < 1174936802 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it seems to be just a NOP, unfortunately < 1174936822 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no wait... it prints a single newline < 1174936860 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :which OS do you use? < 1174936944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this Internet connection is a Solaris terminal running under Windows (not through choice). < 1174936949 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Windows, Linux, OS X < 1174936956 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i use linux < 1174936978 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :At home, I use DJGPP running on top of Windows; again, the Windows isn't through choice, and it's the closest to Linux/UNIX syntax I can reasonably get < 1174936989 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :``````sirkiid -> `````ik`rkiid -> ````k`rkiid ->(\n) ````kkiid -> ``kid -> i < 1174936994 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :w8 < 1174937000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or sometimes, when Windows is acting up too much, I use DOS < 1174937116 0 :ais523!unknown@unknown.invalid QUIT :"the clocks have changed, and I've got about half-an-hour late without realising" < 1174937345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :right, you talk like mad until i've _just_ managed to finish the logs, then you stop. :/ < 1174937401 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :explain onoz. < 1174937416 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's not my language, but let me take a look. < 1174937519 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :present < 1174937593 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :::) < 1174937597 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm, seems i must have had a hand in it somehow... < 1174937617 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yepyep! it's all YOUR fault. < 1174937668 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :anyway i take the word "provable" to mean that there exists an actual written proof. So while the language is super-Turing, it is only one class above, a simple halting oracle suffices. < 1174937799 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i also take "as in brainfuck" to mean just the loop itself, not the contents, so the contents are essentially in onoz. < 1174937876 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :there is also a question of what mathematical foundation the proof should be in. I have a vague recollection that we discussed it at the time. < 1174937949 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however as long as it contains Peano arithmetic or thereabouts, the whole system should still be super-Turing. < 1174937955 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Questions? < 1174937994 0 :jix__!unknown@unknown.invalid NICK :jix < 1174938101 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174938109 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: so it can still go into an infinite loop < 1174938110 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand a half < 1174938114 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: thanks to goedel < 1174938147 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i have question < 1174938164 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :because tape in turing's machine < 1174938170 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :isn't finished (?) < 1174938191 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :and how i can made it in c++? < 1174938207 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :e.g int tablica[ and what here ? ] < 1174938236 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :you could use a linked list < 1174938250 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lament: exactly < 1174938260 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :in siplier english? < 1174938265 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :*simplier < 1174938345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :let each cell contain a pointer or reference to the next. If you get to a null pointer, allocate more. < 1174938356 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm... < 1174938370 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :aaAAAAAaaaaaa < 1174938377 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :but one question < 1174938382 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :make that a doubly linked list. Pointers both backward and forward < 1174938417 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :but can I go backward or only forward on list? < 1174938439 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :because if I can't go back < 1174938448 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i can make int tablica[30] < 1174938452 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :int i = 0; < 1174938459 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :while(i < 30) < 1174938460 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :{ < 1174938478 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :some commands < 1174938483 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i = i+1; < 1174938494 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :if(i = 29) i = 0; < 1174938496 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :} < 1174938508 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :A Turing tape allows you to go both ways. If not it wouldn't be Turing complete for exactly the reason you write. < 1174938535 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :but can be tape finished? < 1174938565 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Nothing can be Turing complete if memory is bounded in size. < 1174938622 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :The tape must be able to grow, but at each point in time it can be finite. < 1174938655 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :and if make the rule < 1174938665 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :like i wrote < 1174938680 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :with if(i=29) i = 0; < 1174938696 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't be finished < 1174938778 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Of course it is finite. You would delete the old tablica[0] when you wrap. < 1174938794 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :So you lose memory. < 1174938803 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :but it "eats" a lot of memory < 1174938862 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Only if the Turing machine uses a lot of tape. < 1174938995 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :You don't need pointers for every cell however. You can have an array in each struct. < 1174939076 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Have we discovered that Turing machines are not efficient? Wooooooooow :-P < 1174939077 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :I don't know how to make array like that in c++... < 1174939209 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :C++ is the language of the devil, anyway < 1174939227 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Something like: struct node { struct node *forward; struct node *back; int contents[30] } *tablica; < 1174939241 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :except my C is a bit rusty < 1174939313 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :hmmmm < 1174939464 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :But doubly linked lists can be a bit difficult so you should look up the algorithms. < 1174939583 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lament: Who do you know that uses b****fuck? :D < 1174940491 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1174940524 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :there was a joke about that on the esolang list a long time ago. I forgot the details. < 1174940541 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :somebody considered the word 'brain' to be offensive. < 1174940733 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Creationists probably. < 1174940759 0 :Arrogant!i=Arrogatn@29.orlando-06-08rs.fl.dial-access.att.net JOIN :#esoteric < 1174941131 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i've got funny play < 1174941197 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION guesses you mean "game" < 1174941869 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :no < 1174941872 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :play < 1174941873 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :zabawa < 1174942003 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i believe the english word is still 'game'. < 1174942017 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :or 'diversion'. < 1174942363 0 :Arrogant!unknown@unknown.invalid QUIT :"Leaving" < 1174944816 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1174944822 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :i am leaving < 1174944824 0 :sirKIIdB!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1174944831 0 :sirKIIdB!unknown@unknown.invalid QUIT :"Sleeping and ..." < 1174944923 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :what rhymes with purple? < 1174945162 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :vorpal? < 1174945170 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :maybe not. < 1174945194 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :turtle is close < 1174945765 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wiktionary.org/wiki/Rhymes:English:-%C9%9C%CB%90%28r%29p%C9%99l < 1174946272 0 :SevenInchBread!n=CakeProp@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1174948162 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :BEHOLD < 1174948168 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :MY LATEST MASTERPIECE: http://esoteric.voxelperfect.net/wiki/Sprout#99BoB < 1174948512 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't understand the description of the semantics at all. < 1174948588 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1174948596 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :: probably isn't well explained. < 1174948599 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it seems there's quite a lot of built-ins < 1174948603 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and you never describe what they are < 1174948634 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :eh, laziness. I'll cover them sometime. < 1174948655 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well, the problem is, your description of semantics doesn't even leave any room for builtins. < 1174948677 0 :crashmatrix!n=crashmat@s5590785f.adsl.wanadoo.nl JOIN :#esoteric < 1174948704 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the builtins are... macros basically... although I cheat a little and give some of them a little more power like speak and die. < 1174948736 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :: is something along the lines of a macro call... and # is something like a macro def... they can both work that way. < 1174948841 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so how is your language different from lisp? < 1174948910 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :the main difference is that # also serves as a "point of substitition"... change allows you to modify the source code at all the points marked by a certain label. < 1174948915 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I'm back. How's it going, guys? < 1174948931 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: you haven't described change at all. < 1174948946 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :and... : isn't strictly deterministic... it randomly selects one of the labelled expressions. < 1174948970 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :lament: pfft, so demanding with your "explain fundamental parts of the language" stuff. < 1174949002 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174949017 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :change is a macro that takes a label name and a little chunk of code... and basically substitutes the code in place of every expression in the source marked by the label. < 1174949037 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...the only time the examples really show this is in 99BaB < 1174949056 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...guess I could factor out some of the builtins... makes it a little too Lispy. < 1174949074 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :simple languages are beautiful < 1174949100 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and being simple doesn't keep a language from being esoteric < 1174949113 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :*cough* /// *cough* < 1174949230 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :if I took out all of the lispy builtins and added a few more commands... I could probably make it way weirder. < 1174949313 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :sounds like a plan < 1174949683 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the best esoteric languages are those whose complete semantics can be described in a few setences, yet still manage to make people's brains hurt < 1174949718 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :brainfsck? < 1174949753 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... the basic idea here is really neat... I just need to work on the actual specification a bit. < 1174949815 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :crashmatrix: BF, ///, SevenInchBread's earlier project dupdog, OISC, etc < 1174949848 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :bitwise cyclic tag, can't forget that one < 1174949945 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :wow :o < 1174949965 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :Idea: promote dupdog to make engineers go wow instead of Vista :) < 1174949984 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174950025 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :ais523 and I made some significant inroads to doing something useful with that language, but it's still a tough nut to crack < 1174950049 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :I can see < 1174950093 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :* +why < 1174950236 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm still not certain whether it's completely impossible to program in, or just kinda difficult < 1174950269 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :not completely impossible, you wrote hello world in dupdog, didn't you? < 1174950322 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but that program never actually has to duplicate stuff < 1174950345 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :ah, I didn't get to the part of trying to interpret the code yet < 1174950346 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :thanks to wrapping mod 257 < 1174950453 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :the *really* tough part we've been trying to wrap our heads around is truly useable conditional branching < 1174950461 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :a conditional halt isn't too bad... < 1174950488 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what would it condition on? < 1174950540 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :erm... program length. < 1174950543 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :fun fact: all vowels are on odd-numbered positions in the alphabet. < 1174950571 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :coincidence? i think not! < 1174950595 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :very odd < 1174950644 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :conspiracy? it's more likely then you think < 1174950668 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :anybody got the dupdog interpreter? < 1174950683 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :here here < 1174950698 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :http://pastebin.ca/raw/397577 < 1174950729 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Probability 1/32 and sometimes 1/64. < 1174950745 0 :nazgjunk!unknown@unknown.invalid NICK :na[zZz]gjunk < 1174950790 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i have no idea how to use that interpreter. < 1174950795 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :nor do I < 1174950806 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :I just found it < 1174950812 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :I tried and failed miserably < 1174950836 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :and I have no godly idea how it works, because it was compiled into perl. < 1174950913 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :I could upload my half-finished Haskell interpreter. < 1174950932 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the perl thing seems to work, just feed the program as stdin < 1174950945 0 :crashmatrix!unknown@unknown.invalid PRIVMSG #esoteric :now there is a esoteric language for ya (well, me actually)... I never got my head around it properly :( < 1174950986 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :perl itself isn't too bad, but whatever compiler created that interpreter is a machine of pain < 1174951055 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :dupdog was spawned in about a minute... I put no thought whatsoever on how it could be used. < 1174951070 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but how did you come up with the names for sub-interpreters? :) < 1174951077 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :I just thought up some random string operations. < 1174951083 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :THE MAGIC OF UH... < 1174951091 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :.........I'm not sure. < 1174951176 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :eh... I'll continue Sprout another day. I want to do like a "structured self-modification". Where you can give bits of the parse tree a label and then say "replace everything at x with SomeCode" < 1174951221 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...reverse macros? < 1174951287 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :looks like the perl interpreter is broken after all < 1174951353 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :...or not < 1174951357 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is lost < 1174951366 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :my programs fail and i'm not sure why < 1174951385 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1174951385 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1174951388 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's broken < 1174951412 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...I should write the specs for Stue... < 1174951412 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :for the purposes of counting evenness/oddness, it does not include the currently read character. < 1174951415 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :t's really cool... < 1174951463 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if i can work around that < 1174951470 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-nod- that sounds right... that part of the spec was invented as I was writing the interpreter... so it's not actually a requirement to be "pure dupdog" - or whatever. < 1174951651 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :which program fails? < 1174951683 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :....so... I'd like to get Kallisti started... maybe I should eso-factory-ize it.. instead of requiring interpreters to be made by the folks. < 1174951688 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :the Hello World program worked in my interpreter < 1174951700 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :" OTOH, a language like C isn't Turing-complete at all" ? < 1174951720 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: for example, ?~ < 1174951744 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: it's supposed to produce no output; it outputs 1 < 1174951756 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...how can C not be Turing complete? < 1174951759 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because the evenness/oddness is counted wrongly < 1174951842 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... the only real conditional instruction seems to be ? < 1174952031 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: can you try running http://pastebin.ca/411254 with wrapping 128? < 1174952095 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :with your interpreter < 1174952103 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :hmmm... < 1174952173 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :maybe Mfit, instead of spitting out the decimal representation of the length... should spit out the base-5 representation of the number, starting at 1 instead of 0 < 1174952180 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :so... 1 2 3 4 5 being the possible numerals < 1174952183 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SevenInchBread: yes, '?' is a conditional instruction and it already works in a fashion; i just don't think 'length of program' is a useful condition < 1174952229 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :?'s only condition is SourceCode % 2' < 1174952242 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Should the line breaks be removed? < 1174952249 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i see no line breaks < 1174952259 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so yes < 1174952382 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :It writes "Awesome100" < 1174952400 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :awesome100! < 1174952404 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1174952413 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :well... small tweaks might make it more useful. < 1174952418 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :of course it only works because all those characters have the same parity < 1174952428 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so you can write 'awesome', but not 'hello world' < 1174952431 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :Maybe incorporate some new stuff into Kallisti to make it bearably workable. < 1174952462 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :lament: Can you run Haskell? < 1174952477 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: i've got hugs < 1174952481 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :me too < 1174952503 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i also have my own dupdog interpreter in python < 1174952514 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i just want third-party confirmation :) < 1174952518 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :like... instead of checking source-code evenness... ? could check the character in front of it for some condition. < 1174952524 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :-shrug- doesn't matter to me. < 1174952544 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :The files are oerjan.nvg.org/esoteric/Dupdog.hs and oerjan.nvg.org/esoteric/FingerTree.hs (third party module) < 1174952565 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but its interface is atrocious at the moment < 1174952587 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :however, it uses shared datastructures for duplication < 1174952603 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :so is it super-efficient? < 1174952632 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probably not, but it should be miles above a string-based one < 1174952701 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :my interpreter: z3.ca/~lament/dupdog.py < 1174952720 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it also contains a tracer, but the actual debugging commands and command-line options are not implemented < 1174952725 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...or you could make other changes... like have instructions that alter the number at which the length calculation wraps. ...but I'd like the new ideas to go into the construction of Kallisti. < 1174952903 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :hello < 1174952914 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :EVENING < 1174952915 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Most importantly it should support many duplications without running out of memory, although I haven't tested it < 1174952945 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :...yeah... with Python at least... huge string modifications take forever... because of the non-in-placicity. < 1174953111 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Also I am clever about substitution and reversal < 1174953136 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :No actual change of program, just a couple of status flags < 1174953175 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :ah... < 1174953193 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :yeah... there's only three substitution states possible... and two reversal states. < 1174953307 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :heh.... since dupdog reverses its source code often... does that make it reversible? < 1174953436 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :whew... took like an hour to read the logz 8|| < 1174953514 0 :Figs!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1174953536 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i woke up an hour ago, it's 2 am now < 1174953573 0 :SevenInchBread!unknown@unknown.invalid PRIVMSG #esoteric :let's see... < 1174953581 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :FWIW, the command to actually run a dupdog program is like: runStateT (runErrorT (runLoop (tracer 30 []) 0)) (initPState (DS "" "?~" 257 0 0 30 [] False True))