< 1236211280 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1236211291 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :copy + pasting glibc's strchr and remnoving checks leads to lower performance < 1236211315 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: add more compiler switches < 1236211327 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-O3 -fomit-crucial-operations -fnuclear-weapons-on-invalid-memory-access < 1236211338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-funsafe-addition < 1236211342 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I was about to copy that then I read the rest < 1236211352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1236211355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1236211356 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1236211426 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :inlining significantly reduces time < 1236211429 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :that's nice < 1236211448 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: how fast is it? < 1236211486 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :funroll-loops may save you time on that sort of code, you could profile to find out < 1236211618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: show us the generated asm < 1236211619 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(-S) < 1236211648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1236211651 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: % 59 < 1236211653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :slooow < 1236211659 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's multiplicified < 1236211663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236211671 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway, generated asmmy! < 1236211675 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :funroll helps, ftracer doesn't < 1236211685 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :208ms including java overhead and copy time for a 6mb string < 1236211688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you are using -O3 right < 1236211695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, that's insanely fast < 1236211707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asm asm asm :P < 1236211751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also won't that crash on invalid inputs < 1236211753 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1236211758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well I guess not since %59 < 1236211783 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: only if the output length is not divisible by 4, maybe, and I can fix that < 1236211793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: ASMMMMMM < 1236211794 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1236211826 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :sorry, disassembledhttp://pastie.org/407791 < 1236211834 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I don't know x86 :< < 1236211844 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :for the same code except using custom strchr < 1236211854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: err, that's a bit long isn't it? < 1236211859 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :inefficient looking, at least < 1236211863 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lots of movs < 1236211868 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :you mean comex:? < 1236211871 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i guess its the unrolling & inlining < 1236211874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: no, you don;'t know asm < 1236211874 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1236211884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :00000d16 nopw %cs:0x00000000(%eax,%eax) < 1236211888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wish that meant 'wide nop' < 1236211915 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :what does it mean? < 1236211935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, it seemed to have changed the modulo into a multiplication by 0x22b63cbf < 1236211935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fucked if I know < 1236211937 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :magic numbers ftw < 1236211946 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236211951 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is 0x22b63cbf a power of two? < 1236211955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236211956 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if it is... yo bitshift? < 1236211959 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: aw < 1236211960 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :powers of 2 are very simple in hex < 1236211965 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, of course < 1236211965 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236211974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you WOULD get better performance from a bitshift, right? < 1236211980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its just a matter of finding out which... < 1236211984 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :bitshift won't work by definition because you will get just some of the characters < 1236212001 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :0x12345678 << 8 will discard 12 < 1236212011 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :0x22b63cbf * 59 is 0x800000005, by the way < 1236212015 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :with % 59 you get unique results from all 27 possibilities < 1236212022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: left bitshift is multiplying by 2**n < 1236212022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I strongly suspect that there are gcc shenanigans involved in there somewhere < 1236212023 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :though I don't know if there are better values < 1236212030 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yeah, and you will discard 12 < 1236212041 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :the first byte I mean < 1236212045 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: so find another constant < 1236212060 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I mean, 0x12345678 is my four bytes < 1236212082 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :shifting it by any amount will discard the first bits, and is very unlikely to give me a unique 'hash' < 1236212090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the thing that worries me most are those jumps in the middle of the loop < 1236212105 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :jumps can take something like 60 or 70 cycles nowadays if the branch prediction screws up < 1236212111 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as the processor has to flush the entire pipeline and try again < 1236212120 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: strchr, probably < 1236212123 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they only take about 2 cycles if the branch prediction is correct, though < 1236212129 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the silly thing is that he accesses the 4 characters one at a time < 1236212133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then does it AGAIN in one block later < 1236212134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just stupid < 1236212142 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he should inline the strchr, going 4 at a time, and save the access of the first block < 1236212143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for the next part < 1236212154 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd suggest using an algorithm such as first char * 16 plus second char * 8 plus third char * 4 plus fourth char * 2 < 1236212162 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which can be implemented in 8 addition instructions, so 8 cycles < 1236212193 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: do what I said for strchr :| < 1236212220 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :will that work? < 1236212221 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :c1: error: invalid option ‘cpu=core2’ < 1236212221 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :cc1: error: unrecognized command line option "-fearly-inlining" < 1236212226 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :and why the fuck did I suddenly get that < 1236212236 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: what I said? < 1236212238 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why wouldn't it work < 1236212307 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :__builtin_expect helps < 1236212313 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what are you expecting me to return from strchr < 1236212315 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :(which I do have inline) < 1236212334 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, two values, and since you're inlining it, just put it in the function tiself < 1236212336 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :basically < 1236212381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read 4 chars at a time using the int * trick, (to see how to use that to do strchr see the glibc explanation & link in http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/) and save the first block after reading it (since that's what you'll be processing anyway) < 1236212386 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :stop pasting that < 1236212386 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1236212390 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i didn't < 1236212392 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i explained it < 1236212404 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: but I'm going one character at a time and wait fuck I'm dumb < 1236212414 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i agree! < 1236212415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1236212418 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I know the space will be here or later < 1236212456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :O RLY < 1236212466 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :why is -mtune=core2 not working < 1236212468 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :it should < 1236212472 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I blame apple < 1236212477 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you can do it as multiple &s, I think < 1236212478 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read the first block < 1236212490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then & 000space0 < 1236212492 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0space000 < 1236212493 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1236212512 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1236212516 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: what's the shortest morse code? < 1236212529 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i have an idea < 1236212532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, 1 < 1236212551 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1236212552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: so, the space is either in [1], [2], [3] or [4] < 1236212561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, you've already just said 0-3 < 1236212563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*read < 1236212575 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you just have to do 3 bitwise ands < 1236212580 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to know if you have a space and where it is < 1236212585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: confirm? < 1236212611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not entirely sure exactly what you're planning < 1236212617 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the general details sound plausible < 1236212629 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: instead of doing the strchr then reading from the int* cast < 1236212633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read from the int* cast, because < 1236212637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the max is 4 chars < 1236212639 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, yes < 1236212641 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you don't even have to read more than the machine word < 1236212644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: and, it can't be the first char < 1236212647 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since the minimum is 1 < 1236212648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :SO < 1236212650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's pretty much what I was expecting you'd do < 1236212650 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you just do some &s < 1236212655 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with 0s and a space inbetween < 1236212658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, 3 of them < 1236212661 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to account for all the possibilities < 1236212663 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ah, MUCH faster < 1236212670 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: did you use what I described? < 1236212676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it worked? woo I'm not an idiot < 1236212679 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :only problem being that it doesn't work < 1236212682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1236212684 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :no, I was implementing while you were talking < 1236212687 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pastie the C? < 1236212696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, would mine work well? < 1236212697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i think so < 1236212718 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure of the details, but I'm pretty sure something like that could work < 1236212755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1236212763 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ah, the input which contains .-.-.- is fucking it up otherwise it's working < 1236212765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :0x00320000, 0x00003200, 0x00000032 < 1236212768 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :what is .-.-.- anyway < 1236212774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :read the first block from the int* < 1236212779 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then & by those in order < 1236212782 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :see? < 1236212784 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: it's an abbreviation code < 1236212788 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you get your input back < 1236212790 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :given that it's at least 6 bytes, it's not a single letter < 1236212792 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i.e. 0x00320000 or w/e < 1236212792 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :whatever, fuck that < 1236212794 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then the spacei s there < 1236212796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :get it ais523? < 1236212813 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, ok, but I don't like the "if you get your input back" < 1236212817 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: that means you replace the strchr with *3* pairs of bitwise-and and equality checks < 1236212818 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that has "if" in < 1236212824 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it beats strchr < 1236212830 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my preferred method would be to use arithmetic to set all of the word past the 0 to some known value < 1236212831 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which goes through every character individually < 1236212833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and checks it < 1236212840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that gives you 26 different values, which you then make a perfect hash out of < 1236212847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and importantly, there's no branching involved at all < 1236212853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1236212867 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :anyway comexk implemnt my algorithm it'd work. < 1236212884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: apparently .-.-.- is full stop < 1236212886 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is not a letter < 1236212888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1236212888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais < 1236212889 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1236212894 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can do it with ONE AND < 1236212900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which one are you planning? < 1236212906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: 0x00323232 < 1236212907 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and does your method involve branching? < 1236212911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, but only one brancha < 1236212912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and < 1236212914 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :strchr branches anyway < 1236212916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so this is a huge improvement < 1236212920 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1236212931 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm not trying to get something better, though, but trying to figure out what the best is < 1236212931 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :wtf < 1236212942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: are you sure your input only contains letters? < 1236212943 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :why is this optimization working, it's not supposed to work < 1236212945 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: in theory < 1236212948 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : if(a & 0x20202020) { < 1236212952 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :better use long longs rather than ints, if there's .-.-.- in your input < 1236212966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :long long? how efficient < 1236212971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: are you even listening to me < 1236212972 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sigh < 1236212974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why do I try and help you < 1236212992 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: long long beats branching easily, on a modern x86-compatible processor < 1236212995 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :except ., -, and / all and with 0x20202020 < 1236213002 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: explain to me what I should do, clearly < 1236213008 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ffffffffff < 1236213009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I did < 1236213012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It's not my fault you can't read < 1236213024 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because add qword ptr's in the instruction set, and I strongly suspect it takes either 2 or 3 cycles < 1236213028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: care to explain my idea to him? < 1236213032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since I evidently can't < 1236213053 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I still think your idea's suboptimal, despite being better than what's been mentioned so far < 1236213063 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :WTF < 1236213065 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, morse groups terminate with / not NUL < 1236213067 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :how come removing a check that always passes < 1236213068 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, well, while you're thinking of the optimal solution can you be my english->comex translator? < 1236213070 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :slows it down < 1236213074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, NUL has nothing to do with it < 1236213074 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kthx < 1236213080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :mine doesn't do anything with NUL < 1236213081 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: no, because I ought to be going home < 1236213090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I thought you were using masking to detect where the end-of-string was? < 1236213094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236213095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236213097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i was replacing his < 1236213099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :strchr(s, ' ') < 1236213100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1236213103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :with an efficient method to check for the space < 1236213110 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that also saved time just after < 1236213115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: pastie your C < 1236213119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I'll put my optimization in < 1236213121 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, your efficient method finds the space, but does it return it in a usable format? < 1236213133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: y oudon't need the space, you just need to know where the space is < 1236213141 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: agreed < 1236213145 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but your method returns a string with the space in < 1236213149 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :rather than the position of the space < 1236213179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irb(main):012:0> "%08x" % (0x11321111 & 0x00323232) < 1236213179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=> "00321010" < 1236213189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> space is at [1] < 1236213195 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: fail < 1236213202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :space 0x20 = decimal 32 < 1236213207 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*forehead* < 1236213210 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no wonder I couldn't understand what you were doing < 1236213216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irb(main):013:0> "%08x" % (0x11201111 & 0x00202020) < 1236213216 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :=> "00200000" < 1236213219 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :space is at [1] < 1236213223 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1236213226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :agreed < 1236213229 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's what I thought you were doing < 1236213239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the problem is, how do you convert the string "00200000" into a usable form < 1236213240 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for the masking? < 1236213243 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : if(!(a & 0x03000000)) s2 = s; < 1236213243 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : else if(!(a & 0x030000)) s2 = s + 1; < 1236213243 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : else if(!(a & 0x0300)) s2 = s + 2; < 1236213243 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : else if(!(a & 0x3)) s2 = s + 3; < 1236213244 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric : else s2 = s + 4; < 1236213246 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :that slows it down a lot :( < 1236213248 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :and I don't know why < 1236213251 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :over memory accesses < 1236213252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comexk: you do ONE & < 1236213254 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not 4 < 1236213255 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comexk: it would do, you have ifs in there, you even have elses < 1236213256 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also < 1236213260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there can't be a space at position 0 < 1236213270 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately there can < 1236213281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :balls. < 1236213287 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :okay then, and by 0x20202020 < 1236213288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: // is the traditional way to send a space character in Morse < 1236213289 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the alternative being strchr which contains all those things < 1236213294 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :i.e. a zero-length string < 1236213294 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236213295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not strchr < 1236213300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you only need to do one memory read < 1236213304 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: 0x20202020 will ALWAYS and < 1236213305 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1236213307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236213308 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no shit < 1236213310 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you use the result from the and < 1236213312 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not just checking it < 1236213319 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what do you /do/ with the result from the and? < 1236213322 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it won't magically fix your string < 1236213323 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: err, the obvious? < 1236213326 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is? < 1236213326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it shows you where the space is < 1236213332 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know it shows you where the space is < 1236213334 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird < 1236213335 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :problem is < 1236213336 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't < 1236213338 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but how do you change it into the masking of the string you need? < 1236213339 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :this isn't 0x11 < 1236213343 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :this might be < 1236213343 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :0x2d < 1236213346 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :0x2e < 1236213348 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err so < 1236213350 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :0x2f < 1236213352 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :all of which & 0x20 < 1236213358 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... no shit < 1236213388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, how come these strings are space-separated all of a sudden, Morse is normally separated with / < 1236213394 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is your teacher using an unusual encoding? < 1236213449 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: what I mean is, even if your method does determine the location of the space (and it can do that, and against 0x0c rather than 0x20 because that's contained by dash and dot but not space) < 1236213455 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :once you have the location, what do you do with it? < 1236213462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: comex's code < 1236213464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just uses the location < 1236213473 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: comex's code requires the location to be encoded as 0, 1, 2, 3, 4 < 1236213478 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :your code doesn't encode the location like that < 1236213480 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so change it to that < 1236213489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :err... comex's code uses a multiplication < 1236213508 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in other words, you need to convert your found-space into the position of the space so you can multiply by it < 1236213676 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1236214021 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236214043 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but I still don't understand why REMOVING A BRANCH THAT ALWAYS GOES ONE WAY < 1236214044 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :speeds it up < 1236214049 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :branch prediction < 1236214054 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :uh, I mean slows it down < 1236214066 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :branch prediction < 1236214075 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :__builtin_expect(it, 1) slows it down < 1236214079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :branch prediction < 1236214098 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :ehird: why is it faster to predict the wrong thing < 1236214103 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :butts < 1236214123 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :well, it's not < 1236214131 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :it's fastest without any prediction < 1236214139 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :but this shouldn't matter. < 1236214155 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :also, ehird: give me your code :p < 1236214163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what code < 1236214169 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :code to give me a position :p < 1236214178 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::| i just gave an algo < 1236214179 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not code < 1236214215 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :how will anding with 20202020 help anything < 1236214221 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :butts < 1236214225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tiredlazy < 1236214509 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :holy shit this sped it up < 1236214514 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wut < 1236215040 0 :Azstal!n=asztal@cpc3-stkn2-0-0-cust528.midd.cable.ntl.com JOIN :#esoteric < 1236215076 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1236215083 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :i don't think it's very easy to get access to jstring < 1236215105 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I'll try a memory dump < 1236215219 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :also, GetStringUTFChars returns a const char < 1236215224 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :so it's probably giving me an existing pointer < 1236215300 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I give up < 1236215303 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :how do I make this faster < 1236215315 0 :comexk!unknown@unknown.invalid PRIVMSG #esoteric :I'll just go to sleep < 1236216061 0 :Asztal^_^!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236217128 0 :Asztal^_^!n=asztal@cpc2-stkn13-2-0-cust73.11-2.cable.virginmedia.com JOIN :#esoteric < 1236218025 0 :Azstal!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236220437 0 :GreaseMonkey!n=gm@unaffiliated/greasemonkey JOIN :#esoteric < 1236226724 0 :ab5tract!n=ab5tract@pool-98-111-165-233.phlapa.fios.verizon.net JOIN :#esoteric < 1236230766 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I want to hear a lounge version of O Fortuna. < 1236231867 0 :oklopol!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236231888 0 :oklopol!n=nnscript@a91-153-121-248.elisa-laajakaista.fi JOIN :#esoteric < 1236232305 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hm, that could really work < 1236232474 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :You're singing it in your head now, aren't you? :) < 1236232477 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :I think it would be good. < 1236232479 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :In a weird way < 1236232501 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236232596 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not really singing in my head, i'm preparing the looper and the guitar and the bass to try to record the verse at least < 1236235533 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :ACTION would love to hear that when it's done < 1236236229 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :with or without my crappy singing? < 1236237517 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :with should work < 1236237540 0 :Robdgreat!unknown@unknown.invalid PRIVMSG #esoteric :but ultimately it's your call < 1236237920 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :one sec < 1236238115 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :crap, all audio is in one channel, how do i fix this < 1236238223 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ok got it < 1236238282 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :jeez hurry up < 1236238388 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/qyxpp/ofortuna.mp3 < 1236238550 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :wtf was that < 1236238606 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION will appreciate more constructive feedback. < 1236238889 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION pokes GregorR  < 1236239134 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1236239999 0 :clog!unknown@unknown.invalid QUIT :ended < 1236240000 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1236240447 0 :ab5tract!unknown@unknown.invalid PRIVMSG #esoteric :lament: reminds me of 'Piggy' by NiN on Further Down The Spiral < 1236241835 0 :GreaseMonkey!unknown@unknown.invalid QUIT :"Client Excited" < 1236242192 0 :tombom!i=tombom@wikipedia/Tombomp JOIN :#esoteric < 1236243044 0 :ab5tract!unknown@unknown.invalid QUIT : < 1236244024 0 :impomatic!n=John@nat67.mia.three.co.uk JOIN :#esoteric < 1236244327 0 :impomatic!unknown@unknown.invalid QUIT :"mov.i #1,1" < 1236244464 0 :Slereah!unknown@unknown.invalid QUIT : < 1236244498 0 :Slereah!n=butt@ANantes-259-1-105-125.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1236244601 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1236245230 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236246121 0 :Slereah_!n=butt@ANantes-259-1-43-11.w92-135.abo.wanadoo.fr JOIN :#esoteric < 1236246865 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236247154 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236247295 0 :ais523!n=ais523@147.188.254.121 JOIN :#esoteric < 1236247653 0 :ais523!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1236247656 0 :ais523_!n=ais523@147.188.254.121 JOIN :#esoteric < 1236247879 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1236248144 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1236249089 0 :comexk!unknown@unknown.invalid QUIT :Remote closed the connection < 1236249143 0 :comex!n=comex@teklinks.org JOIN :#esoteric < 1236249170 0 :ais523_!n=ais523@147.188.254.121 JOIN :#esoteric < 1236249289 0 :ais523!unknown@unknown.invalid QUIT :Nick collision from services. < 1236249291 0 :ais523_!unknown@unknown.invalid NICK :ais523 < 1236249382 0 :lifthrasiir!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1236249391 0 :lifthrasiir!n=lifthras@143.248.133.205 JOIN :#esoteric < 1236249637 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1236249907 0 :lifthrasiir!unknown@unknown.invalid QUIT :calvino.freenode.net irc.freenode.net < 1236249931 0 :lifthrasiir!n=lifthras@haje12.kaist.ac.kr JOIN :#esoteric < 1236254092 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1236260285 0 :ais523!n=ais523@92-236-187-64.cable.ubr08.king.blueyonder.co.uk JOIN :#esoteric < 1236261255 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :http://➡.ws/Ⱒ < 1236261263 0 :ais523!unknown@unknown.invalid TOPIC #esoteric :Logs: http://➡.ws/Ⱒ < 1236261274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there, we have the spidery ha in the log link now < 1236261285 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :golfing the topic can be fun... < 1236261331 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :How is it golfed? < 1236261366 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because it contains the same information as before < 1236261368 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but is shorter < 1236261386 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Does it? < 1236261394 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, it contains the link to the logs < 1236261404 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a glagolitic capital letter spidery ha < 1236261416 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :In short URL form and using ASCII->Unicode? < 1236261434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in short URL form < 1236261436 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a unicode URL < 1236261476 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Though you can't actually click it or kopipeit < 1236261487 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Sure you can. I just did. < 1236261491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, that's the fault of your client < 1236261497 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Firefox? < 1236261501 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Well, it is Firefox2. < 1236261531 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :But I'm surprised that the glagolitic capital letter spidery ha was free-for-taking at ➡.ws. Would have thought someone had already used it. < 1236261537 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :mIRC ... though I get to the wrong place < 1236261611 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, err, I only see an arrow < 1236261611 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :http://xn--hgi.ws/Ⱒ is what the URL should be translated to for non-Unicode-aware systems < 1236261613 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1236261617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is how it looks < 1236261619 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in the url < 1236261620 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's a Unicode arrow < 1236261628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so what is the spidery thing? < 1236261631 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't see it < 1236261632 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :I get http://xn--7a3kss.ws < 1236261637 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a glagolitic capital letter spidery ha < 1236261646 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Spidery HA is after the /, in the path part. < 1236261646 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Same here < 1236261658 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I get on that website and it does not redirect me at all < 1236261659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, is it a "glagolitic capital letter spidery ha" or an unicode arrow < 1236261660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :decide < 1236261661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :obviously there's a character encoding fail somewhere < 1236261664 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: There's both. < 1236261671 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no there ins't < 1236261673 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's [arrow].ws/[spidery ha]. < 1236261676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236261676 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: the URL is http:// unicode arrow .ws/ glagolitic capital letter spidery ha < 1236261685 0 :Slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Spidery spidery < 1236261687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that looks like [2C22] here < 1236261689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236261698 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :same here, I don't have a spidery ha in my font < 1236261713 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Well, me neither. But I trust it's the ha if ais523 says so. < 1236261729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why the interest in that char? < 1236261734 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it comes out in mojibake on the clog logs < 1236261758 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my guess is that 7a3kss is the encoding of the mojibake, whereas hgi is the encoding of the correct unicode character < 1236261759 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Whoops, I need to be elsewhere already. -> < 1236261831 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Ah. If I copy it to chrome I get xn--hgi, but if I double-click it, I get xn--7a3kss < 1236262059 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm, fast integer square root in C... anyone knows anything good? < 1236262071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the newton algorithm is pretty fast < 1236262080 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION googles < 1236262091 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, start with 2 < 1236262102 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, x=2 < 1236262111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iterative? < 1236262113 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then change x to ((n/x)+x)/2 < 1236262115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, iterative < 1236262155 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :http://www.beyond3d.com/content/articles/8/ < 1236262190 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is float < 1236262199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the target system doesn't have floating point hardware < 1236262202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236262202 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :embedded target < 1236262225 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm sure there's an integer arithmetic version < 1236262315 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds a pdf from microchip named "fast integer square root" < 1236262372 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yay one avoiding slow division too < 1236262383 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :http://www.google.com/codesearch/p?hl=en#dl-KOTbXso4/libcs/isqrt.c&l=22 < 1236262404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :libcs? < 1236262433 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, microchip < 1236262465 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Here's one with only a for-loop: http://www.google.com/codesearch/p?hl=en#G1Uvi1prmwc/kernel2_4/drivers/media/video/omap/v4l2.c&l=189 < 1236262467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well my target isn't a microchip, but it is is still interesting < 1236262478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I can't use the same asm, but the general idea should work I think < 1236262485 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes to experiment < 1236262565 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MizardX, that seems to work on the same model basically. < 1236262580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same idea. slightly different implementations < 1236263136 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I don't know for certain that's a spidery ha, I just copied it from the old topic < 1236263221 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :Character 0x2C22 ... I don't have any font that supports it. :) < 1236263302 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :>>> unicodedata.name(u'\u2C22') < 1236263302 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :'GLAGOLITIC CAPITAL LETTER SPIDERY HA' < 1236263510 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :nice < 1236263626 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :too bad http://➡.ws/λ is already taken (and doesn't point to anything haskell) < 1236264973 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comex: that domain is still stupid < 1236264975 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :as discussed before < 1236265058 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Ⱒ GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/ < 1236265078 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :14:33 comex: too bad http://➡.ws/λ is already taken (and doesn't point to anything haskell) < 1236265080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes it do < 1236265080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :es < 1236265094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :johnnowak does Haskell and concatenative langs like factor < 1236265095 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1236265112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what is wrong with ➡.ws ? < 1236265116 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I like it, so did ais523 < 1236265120 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or does I guess < 1236265131 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think it's a bad idea for general use < 1236265134 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the whole purpose is to subvert the twitter length limit, but it counts in bytes, not characters < 1236265138 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but very funny for a #esoteric topic < 1236265143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so the makers are complete idiots < 1236265147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :who buy domains and advertise them without thinking < 1236265156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err what? < 1236265167 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, a tiny url is mainly useful apart from twitter to write down < 1236265167 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what has twitter got to do with it < 1236265177 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: oh shut the heck up < 1236265188 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what? < 1236265205 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm tired of being expected to explain 5 billion things to you every time I say something < 1236265217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there is nothing about twitter on http://➡.ws < 1236265228 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you aren't making any sense < 1236265229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1236265251 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1236265282 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: there is something about twitter on http://➡.ws, but only on the results page after you've worsened a URL < 1236265313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and, besides, the other purpose is to write it down or tell people irl. < 1236265316 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :good luck typing those urls < 1236265331 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: you're missing the point < 1236265334 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is to make a funny topic < 1236265341 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I never said the topic wasn't funny < 1236265351 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :URL redirection services can be used to make a point, just as much as they can be used to shorten things < 1236265352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I just saw comex's message at the start of my quicklog < 1236265353 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and replied to it < 1236265357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :before seeing the context < 1236265412 0 :Hiato!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1236265888 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, I just realised that the creators were quite young when they made INTERCAL < 1236265900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :interesting < 1236265903 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was expecting them to be bearded like they are now, I guess that explains why INTERCAL _isn't_ popular < 1236265906 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suppose they must have been, as they're still in work now < 1236265918 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just finished freshman year final exams, sez don woods < 1236265919 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and that explains why INTERCAL wasn't popular back in 1972 but has become more popular since < 1236265921 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(http://www.computerworld.com.au/article/251892/-z_programming_languages_intercal) < 1236265974 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, if I have my american educational system right, < 1236265980 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :late teens/early 20s? < 1236266069 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.diku.dk/hjemmesider/ansatte/jespera/doc.html oh god the comic sans it burns < 1236266345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: also, do jumps -really- cost 60 cycles? < 1236266352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's just painful... < 1236266358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it depends on which way they go < 1236266374 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, branch prediction is the processor predicting in advance which way the jump will go < 1236266384 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it guesses wrong, you have to flush the pipeline and that takes ages < 1236266394 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how often does it get it right? < 1236266400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :quite a lot, nowadays < 1236266406 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :especially if jumps mostly go the same way < 1236266411 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and even more with profile-guided optimisation < 1236266417 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it depends on how long the pipeline is < 1236266419 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's one of the main purposes of that optimisation < 1236266429 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, on a pentium 4 a mispredicted branch is *very* expensive < 1236266437 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :did the RISC-y sort of processors do jumps better? < 1236266439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it had such a long pipeline < 1236266472 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's nothing but pipeline length and prediction quality that affects the jump < 1236266473 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah riscs do better < 1236266481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: i'll trust you <3 < 1236266484 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for instance, on a PIC microcontroller, the pipeline has length 2 so jumps only take 2 cycles < 1236266485 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :they generally have shorter pipelines < 1236266487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, there are some CPUs with "delayed branch" stuff, basically they continue executing n instructions after the branch instruction even when jumping (iirc n was/is usually 1 or 2) < 1236266496 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and as oklopol says, you can likely get away with a shorter pipeline on a RISC < 1236266502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1236266528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :15:21 AnMaster: ehird, there are some CPUs with "delayed branch" stuff, basically they continue executing n instructions after the branch instruction even when jumping (iirc n was/is usually 1 or 2) < 1236266532 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that sounds rather dangerous for IO :D < 1236266536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, delayed branches are another interesting way to solve it. It potentially reduces the issues to zero if you can reorder < 1236266536 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: delayed branch is just telling the compiler to use software to sort out what most processers do in hardware < 1236266542 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*processors < 1236266548 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236266551 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1236266555 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :presumably not as well < 1236266556 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it gives the same result as the hardware version would do < 1236266565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since hardware tends to be faster... < 1236266579 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it slows down the compilation but not the execution < 1236266584 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's not nearly as dangerous for io as it is for exceptions < 1236266591 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1236266610 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and all kindsa data hazards < 1236266618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but yes, there are lots of subtleties, it's really easy to screw up < 1236266627 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and why would you start talking about something i'm actually interested in right when i'm about to leave < 1236266628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think VLIW and delayed branch slots are both great ideas. < 1236266634 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: sry I will talk mor ewhen you return. < 1236266636 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :damn you all to germany! < 1236266637 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1236266644 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1236266648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm rather upset jumps are so slow < 1236266654 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i don't like my cpu :< < 1236266657 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not if they are correctly predicted < 1236266667 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, it's more that non-jumps can be sped up more easily then jumps < 1236266678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway, Intel Core is *fast* at mispredicted jumps compared to Pentium 4 < 1236266690 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and AnMaster's right, a correctly predicted jump hardly costs anything, usually 1 or 2 cycles < 1236266695 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i bet a functional-tuned cpu for lisp would get it right because it'd be more structured than 'jmp' :< < 1236266702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for some specific work loads a Pentium 4 is *worse* than a *slower* Pentium 3 < 1236266713 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to the high cost for stuff like branch misprediction < 1236266719 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :unfortunately, you can't also predict jumps correctly, if you could it would defeat the point of having if statements in the first place < 1236266729 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed < 1236266729 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :an unconditional goto, by the way, is fast because it's always trivial to predict < 1236266751 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we just need to tie a crystal ball to our cpus < 1236266758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :perfect branch prediction & halting problem solved to boot < 1236266770 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some processors, like the PIC, are primitive enough that they don't even try to predict unconditional jumps < 1236266773 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and so waste cycles when jumping < 1236266783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, a crystal ball is slow. You need L1/L2 cache for the crystal ball lookups < 1236266789 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but on modern hardware, you don't need to worry about it < 1236266791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which would defeat the point < 1236266797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ok then, the beating heart of a dead wise oracle < 1236266802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :much more efficient < 1236266808 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, crystal is made from silicon < 1236266813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dead & wise, not "dead wise" as in slang that is < 1236266817 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, however delayed branch slots does solve the issue if you can reorder some. Sure there are cases where you can't, and have to put in NOP < 1236266820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so I'd suggest embedding the processor inside the crystal ball < 1236266821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oracles's hearts are made from silicon too < 1236266841 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: delayed branch slots are great, I agree < 1236266846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was planning to implement them in INTERCAL < 1236266853 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah! < 1236266861 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is obviously ridiculous as INTERCAL's far too high a level to gain any benefit < 1236266867 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I think they could be useful for debugging purposes < 1236266872 0 :FireFly!n=FireFly@1-1-3-36a.tul.sth.bostream.se JOIN :#esoteric < 1236266882 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway if you had a delay of 40 like ehird talked about then delayed branch slots would be bloody annoying < 1236266884 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :INTERCAL is low level, but delayed branch slots are slightly lower level than asm < 1236266896 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ais523 claimed comex's branch was taking ~60 cycles < 1236266896 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it only works great with a delay of 1-2 < 1236266899 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is crazy as fuck < 1236266904 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes, but I'm sure you can find something else to do for 40 cycles < 1236266913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ok 60 then < 1236266913 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or however many it is < 1236266918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway it varies depending on CPU < 1236266944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hmm... pentium 4 has a pipeline length of 31, according to Wikipedia < 1236266986 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, hm what about mispredicted branch + IL1 miss ? < 1236266990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that would be very slow < 1236266994 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ooh, nasty < 1236266997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :possibly also L2 miss < 1236267006 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comex's code didn't have much chance of an L1 miss, though, it was hardly using any memory < 1236267009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :then you would hit a few hundred cycles right? < 1236267026 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well DL1 and IL1 are luckily separate.. < 1236267038 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so, just to put it into context, < 1236267060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :how long do 100 cycles take on this 2.1ghz intel core 2 duo, on average? :P < 1236267061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :btw, where is the code comex wrote? < 1236267076 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://pastie.org/407770 < 1236267077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so far < 1236267079 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're still improving it < 1236267084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a morse code decoder < 1236267088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're trying to eliminate the strchr atm < 1236267089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1236267098 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: his prof told him to optimize some java code < 1236267105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so he's writing it in C and linking it with Java Native Interface < 1236267115 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using tricks like < 1236267117 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : int a = *((int *) s); < 1236267124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :to read 4 characters (the max morse cod ehe's processing) in one go < 1236267125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I see < 1236267133 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :does that mean 'I don't see'? < 1236267143 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not in this case < 1236267158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I still don't see what the algorithm is though... < 1236267165 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just morse code decoding < 1236267170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: stuff[] is a perfect hash table < 1236267175 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236267182 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now that explains a lot < 1236267185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the mask removes stuff after the space, essentially < 1236267195 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but since the space can be determined just from the 'a' there < 1236267200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :we're trying to figure out how to do it the quickest way < 1236267203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is the space for? < 1236267206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(since strchr will do the 4 accesses and branch on each one) < 1236267208 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: separate the codes < 1236267212 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1236267214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :..-.- ...- .-... < 1236267215 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and stuff < 1236267218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1236267242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but he has two branches there, and up to 5 hidden in strchr < 1236267249 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1236267249 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so we're trying to reduce those, and fold them into each other < 1236267250 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: 15:30 ehird: how long do 100 cycles take on this 2.1ghz intel core 2 duo, on average? :P < 1236267266 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how long did you say max length was < 1236267268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this is actually surprisingly like writing INTERCAL < 1236267278 0 :MigoMipo!n=MigoMipo@84-217-15-51.tn.glocalnet.net JOIN :#esoteric < 1236267279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and do you need to fail in a good way on bad input? < 1236267281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: 4 characters, so that's why we use an int < 1236267284 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and no, he doesn't < 1236267287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236267291 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, whatever you say we've probably tried :P < 1236267292 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and 100 cycles at 2.1 GHz is 100/2.1 ns which is just under 50 nanoseconds < 1236267298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it may be possible to use SIMD then < 1236267300 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*may* < 1236267318 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Oh. < 1236267324 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :depends on alignment though < 1236267326 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Er, that's not so bad then. < 1236267330 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so probably not a good idea < 1236267342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: we need the actual code to be portable < 1236267344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, depends on how much data you need to process < 1236267345 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since java is portable < 1236267350 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hrrm ok < 1236267354 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc, he's going to get marked badly for, y'know, not using java but there you go < 1236267359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, then it isn't. It assumes int == 32 bits < 1236267359 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: also, he's testing it on 6mb strings < 1236267365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, yes < 1236267370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's universally true on modern systems. < 1236267384 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a system in which it isn't probably doesn't run java < 1236267389 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc there are systems with int == 64 bits < 1236267410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :don't remember which system < 1236267419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only a vague memory of reading those existed < 1236267437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably some HPC stuff < 1236267439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :your personal anecdotes aren't too useful :D < 1236267452 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, was it supposed to be? < 1236267456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dunno < 1236267467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway there is int32_t in C99 < 1236267494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, btw how did you calculate the perfect hash? < 1236267501 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or how did comex rather I guess < 1236267504 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'm not sure, ais523 did that < 1236267509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1236267512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how ais523? < 1236267513 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I told comex about the *((int*)s) trick though < 1236267520 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :let me read backlog < 1236267530 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: his original code was ridiculously bad, take a look: http://pastie.org/407681 < 1236267530 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well, that could be slow. If it isn't aligned < 1236267544 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was comex who did the perfect hash, not me < 1236267560 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, 1) some systems will SIGBUS on non-aligned int. IIRC Alpha for example. Not sure about MIPS, ARM, PPC and such < 1236267566 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nobody actually cares < 1236267570 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :2) even on x86, reading non-aligned int is slower < 1236267572 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it has to work on most systems, < 1236267574 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and be fast on x86 < 1236267576 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :not sure how much slower < 1236267578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but yes slower < 1236267586 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :his code takes something like 300ms on a 6 megabyte string now, iirc, and that _includes_ the overhead of the Java bridge and the like < 1236267592 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :x86 can certainly manage misaligned accesses < 1236267605 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :also, does his code work? < 1236267607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes it can. But it is still slower than aligned access < 1236267617 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: he broke it recently IIRC < 1236267621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but the last working version :P < 1236267631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: but < 1236267633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's faster than < 1236267637 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s[0], s[1], s[2], s[3]. < 1236267645 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1236267659 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although the strchr does that anyway < 1236267663 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus why we're trying to eliminate it < 1236267665 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or at least i am < 1236267678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that strchr. I think you could do that faster with testing against a bitmask or something. < 1236267684 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236267688 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that was what I was suggesting < 1236267690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bitmasking a < 1236267694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but I couldn't figure out what the right bitmask was < 1236267697 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and what to do with the result < 1236267715 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, take a look at strlen in glibc. It is pretty insane. That is the generic C version. Each CPU also has an even crazier asm implementation < 1236267724 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's where I got the int * trick from < 1236267728 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :via http://www.stdlib.net/~colmmacc/2009/03/01/optimising-strlen/ < 1236267734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah you have seen the bitmasking in glibc then? < 1236267746 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ofc, strlen() is pointless since you should use length-tagged strings. < 1236267755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236267765 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if I could do anything to glibc, I'd add a 1 second wait for every strlen call :P < 1236267769 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: the principle of searching for a NUL is still useful, though < 1236267777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and modify gcc to never, ever optimize out a strlen < 1236267781 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: strchr(s,0) < 1236267784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if you _must_ :P < 1236267794 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I was thinking of strchr in general < 1236267799 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although notice that strchr stops on NUL < 1236267805 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some things are faster for NUL-termination < 1236267821 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes, but in general strings should be length-tagged < 1236267826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :personally, I think one of the better methods for storing strings is to both length-prefix and nul-terminate < 1236267829 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just about every HLL does that, and their string handling is great < 1236267838 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that can work < 1236267978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you can do length tagged strings in C < 1236267990 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1236267993 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but its a pain < 1236267997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because libraries don't like it < 1236268001 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there are at least two libraries with macros for it < 1236268001 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and you can';t use the stdlib < 1236268004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that I know of < 1236268008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably a lot more exists < 1236268019 0 :impomatic!n=John@nat66.mia.three.co.uk JOIN :#esoteric < 1236268022 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in C, using non-null-terminated strings is pretty painful < 1236268032 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Hi :-) < 1236268032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you're doing both length tag and nul-terminate, then you can use most of the read-only stdlib functions < 1236268035 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1236268035 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, just consider it a generic byte buffer < 1236268042 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, memchr = strchr for length-prefixed strings < 1236268049 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes indeed < 1236268057 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :there exists quite a few mem* functions < 1236268058 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and likewise with the other mem* functions < 1236268063 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that are *FASTER* than str* ones < 1236268071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because they don't need to check for end all the time < 1236268077 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :actually < 1236268081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comex switches to using memchr < 1236268083 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and it was slower < 1236268085 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :memcpy() is faster than strcpy() for example < 1236268089 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, that's strange < 1236268090 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe the \0 checking helped branch prediction :P < 1236268099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea < 1236268103 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, most CISC processors can do branch prediction perfectly for for loops < 1236268112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but most processors aren't CISC nowadays < 1236268112 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, interesting < 1236268125 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they're RISC-core, disguised as CISC using microcode < 1236268137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, but can they still branch predict? < 1236268157 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :branch predict perfectly I mean < 1236268163 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, I've worked with a DSP before < 1236268170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that branch-predicted for-loops perfectly < 1236268174 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as long as you didn't change the control variable < 1236268193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :not only that, but it didn't even spend any cycles on the decrement-and-test such loops normally have < 1236268223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, at least some x86 use microcode. I'm pretty sure AMD64 does for some instructions. I have a pdf somewhere around here documenting type of execution, with those in microcode marked "VectorPath", other ones marked "DirectPath" < 1236268224 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1236268233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION searches his desktop < 1236268242 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah there it is < 1236268263 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think all modern x86-compatibles use microcode < 1236268271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed. Instruction latencies for the AMD64 ISA (k8 family) < 1236268277 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :DSPs are weird, though, they have some very specific CISC instructions < 1236268315 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1236268332 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, even with microcode x86 is pretty CISC in the core. Just consider all the core SIMD instructions for example < 1236268348 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :are those non-microcode/ < 1236268350 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm surprised < 1236268359 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and suddenly realise why ARM uses so much less power < 1236268366 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't like computers < 1236268370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :They don't work very well < 1236268371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1236268395 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :From "Legend for table C.1": Decode type Shows the method that the processor uses to decode the instruction—either DirectPath Single (DirectPath), DirectPath Double (Double), or VectorPath. < 1236268411 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think it was clarified elsewhere in the pdf < 1236268447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1236268462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/nVH4iJ51.html < 1236268554 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ahem < 1236268557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :don't use rafb.net < 1236268578 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for people reading this sometime after tomorrow: http://pastie.org/408374 < 1236268582 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is the one that loads fastest here. pastebin.ca take a lot of time to load. Same for all the others < 1236268590 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :pastie.org is always quick for me < 1236268595 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not for me < 1236268607 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rafb takes maybe 1 second to load. pastie.org around 5 < 1236268614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236268628 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I guess there is much more design on pastie.org < 1236268635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rafb has a very minimalistic design < 1236268639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :your browser will cache the css. < 1236268656 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, I'm tempted to just say tha ta few more seconds now beats expiry in the future, but I'll look for something faster < 1236268672 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: that CSS expires, think of the logreaders! < 1236268682 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lol wut < 1236268696 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236268709 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://paste.lisp.org/? < 1236268713 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :about as minimalist as rafb < 1236268718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irritating captcha though < 1236268722 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well < 1236268725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it always says lisp < 1236268727 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1236268727 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so you can easily script that < 1236268741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, really? greasemonkey tends to slow down stuff < 1236268753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you don't really need greasemonkey for that < 1236268757 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :best captcha ever < 1236268773 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :comex: well, you have to target it specifically < 1236268777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I use paste.lisp.org when I want to highlight erlang < 1236268778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :most spambots just generically spam everything < 1236268780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it'd trip them up < 1236268815 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it does load quite fast. But rafb does load even faster < 1236268822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1 second vs. 3 or such < 1236268831 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if it takes more than 50 nanoseconds, it's too slow! < 1236268836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://pastey.net/? < 1236268843 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :loads very fast for me, and has ids going back to 2006 (I just checked) < 1236268860 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I suggest you use paste.eso-std.org < 1236268865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes! < 1236268879 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, hm 2 seconds < 1236268882 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :still parked < 1236268886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it will give you vaginal herpes on your iso standards. or at least, that's what it claims. < 1236268887 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err didn't eso-std expire? < 1236268891 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so? < 1236268895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can still use it! < 1236268905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well the pastes are gone. < 1236268913 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the urls no longer valid < 1236268917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :THINK OF THE LOGREADERS! < 1236268919 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://expired.revenuedirect.com/park.php?domain_name=&site_id=20788 < 1236268925 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then give us that link < 1236268926 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :never let your pastebin expire < 1236268935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, nobody actually used it < 1236268939 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I did < 1236268940 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you did iirc < 1236268943 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and ais523 did < 1236268945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: okay, like thric < 1236268947 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1236268950 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :until anmaster told you not to < 1236268955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I used it more than ehird, I think < 1236268963 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, fixing that download bug might have helped < 1236268970 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and THINK OF THE LOGREADERS!! < 1236268971 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not a bug < 1236268972 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that wasn't a bug, that was correct < 1236268982 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doing things which are unusual but correct is very eso < 1236268993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, Microsoft have come up with their own way of doing that < 1236268998 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1236269003 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i linked to that article yesterday < 1236269004 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :they wrote a standard, made it an RFC, and are now complying with it < 1236269013 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, um really? < 1236269016 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :details? < 1236269037 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://drplokta.livejournal.com/109267.html < 1236269055 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, I was going to ask ehird if he had the link, I couldn't find it < 1236269064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh, http://pastey.net/ thinks Erlang means Ericsson Language. It actually doesn't < 1236269077 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it is a reference to a person named Erlang < 1236269080 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it does and it doesn't < 1236269081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's both < 1236269084 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :same as Haskell is named after someone < 1236269088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they named it because of both connotations < 1236269093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :even though only one is official < 1236269105 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"Keep my history for at least [99999999] days" —Firefox < 1236269107 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, true. But according to one of the original developers it was primarily due to the person < 1236269109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I should become the U.S. archivist. < 1236269146 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :~273972 years? < 1236269151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1236269156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and yes that was using 365 and integer division < 1236269157 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I don't intend to be using Firefox by that t ime. < 1236269160 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so probably off by a bit < 1236269205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, personally I have it set to one week < 1236269211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't like to keep history around < 1236269212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: DATA LOSS AAAAAAAAAGH < 1236269214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :NO NO NO NO NO NO NO < 1236269217 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :YOU MUST PRESERVE ;_; < 1236269223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, No. I'm paranoid < 1236269227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is the reason < 1236269232 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So encrypt it :P < 1236269234 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I do < 1236269240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :/home is encrypted < 1236269252 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I have a huge obsessive aversion to deleting anything. < 1236269262 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :probably because of my logreading tendencies < 1236269268 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I have a huge obession with having more than 3 GB free space on my disk < 1236269271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do have backups of course < 1236269278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on tape < 1236269279 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Eh, just transfer old stuff to a backup drive. < 1236269282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Lol, tap.e < 1236269283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :*tape < 1236269289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Want to survive a nuclear attack? < 1236269289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it lasts. < 1236269297 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :disks last pretty well y'know < 1236269307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ever had a disk fail? < 1236269311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION has < 1236269313 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1236269321 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Backup your backups. < 1236269325 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :To Xzibit's body. < 1236269331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1236269339 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Xzibit is the origin of the yo dawg meme. < 1236269346 0 :AnMaster!unknown@unknown.invalid TOPIC #esoteric :Ⱒ GLAGOLITIC CAPITAL LETTEmhmR SPIDERY HA | http://tunes.org/~nef/logs/esoteric/ < 1236269349 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1236269352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wth < 1236269352 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LETTEmhmR < 1236269355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :leave it like that :D < 1236269362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(I also don't keep backups. Yet.) < 1236269363 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :my kb2OPJħßj strs < 1236269369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: indeed, it does str. < 1236269373 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah better... < 1236269377 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :keyboard went strange < 1236269379 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no idea why < 1236269390 0 :AnMaster!unknown@unknown.invalid TOPIC #esoteric :Ⱒ GLAGOLITIC CAPITAL LETTER SPIDERY HA | http://tunes.org/~nef/logs/esoteric/ < 1236269390 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Nice topic < 1236269394 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fixed it < 1236269396 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1236269397 0 :ehird!unknown@unknown.invalid TOPIC #esoteric :Ⱒ GLAGOLITIC CAPITAL LETTEmhmR SPIDERY HA | http://tunes.org/~nef/logs/esoteric/ < 1236269399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fixed it. < 1236269400 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric ::> < 1236269404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236269425 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway. Where was I < 1236269428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1236269434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :FireFly: sometimes I fly around in a spaceship? < 1236269441 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you do? < 1236269448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a reference to eso-std.org < 1236269452 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which was only ever placeholder text < 1236269454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: now _that's_ obscure < 1236269456 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, no < 1236269459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well. < 1236269460 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"sometimes I fly around in a spaceship :>" < 1236269461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in variou forms. < 1236269464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, backups on tape may not survive a nuclear attack < 1236269468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it had infrastructure set up/ < 1236269469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor do I think anything I have will < 1236269471 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was just never used :P < 1236269479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: will you survive a nuclear attack? < 1236269483 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :just keep a backup in your pocket < 1236269489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I live in a house based on the log technology < 1236269490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :backup yourself in your pocket < 1236269491 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that way, if you survive the attack probably so will the backup < 1236269496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :INFINITE BACKUPS. < 1236269499 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :hey, I recognized it < 1236269501 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can never die. < 1236269502 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ever. < 1236269506 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :comex: wow < 1236269519 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it would take infinite time to destroy all the copies of yourself < 1236269520 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was pretty obscure... < 1236269527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that would require fitting 500 GB in my pocket < 1236269528 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how < 1236269540 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :flash memory's getting better all the time < 1236269546 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :MicroSDs are small < 1236269548 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I have an 8 GB memory stick in my pocket at the moment < 1236269550 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :depends on the size of your pocket < 1236269552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and wear out quickly with daily backups < 1236269559 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :There are 32 gig SDHCs IIRC < 1236269559 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :er < 1236269561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, my pocket-backup isn't daily < 1236269565 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :its for a nuclear attack AnMaster < 1236269568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and it's mental-incremental < 1236269569 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :currently I have incremental daily backups < 1236269571 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i'm sure you could lose a month < 1236269582 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, I back something up if I think it needs backing up and I remember it changes < 1236269586 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :I'd be happy to live < 1236269597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :every now and then I'll tarball all the backup-requiring bits of my home dir and store that on the USB stick < 1236269598 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :FireFly: pfft, you and your logic < 1236269607 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :ACTION likes his logic < 1236269609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my disaster plan: grab backup drive, run. < 1236269614 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway I keep them in a safe. That is metal. That should at least reduce EMP *a bit* < 1236269620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :do not perform step 2 until step 1 is complete. < 1236269631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :incidentally, radioactivity has a much larger effect on fibre optic cables than both other electronic stuff and humans < 1236269632 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :My disaster plan: null < 1236269632 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric ::< < 1236269635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: okay, listen, if there's an EMP attack < 1236269639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you're fucked anyway < 1236269640 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't do backups, but I should < 1236269643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes < 1236269648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, as in, death imminent :P < 1236269649 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :me too < 1236269652 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :FireFly: definitely, most people only learn that lesson until they've already lost one set < 1236269660 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :And I havn't been there < 1236269661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: surely it depends on how near the EMP attack is? < 1236269668 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and how strong < 1236269668 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I've lost data before, but it wasn't vital < 1236269676 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(Just some music, the drive partially made some files vanish) < 1236269690 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how did the drive manage that? < 1236269690 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: considering it would wipe out infrastructure... < 1236269694 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, dunno < 1236269696 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it was in my old computer < 1236269698 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :very dusty < 1236269698 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :CD ROM should be a pretty good backup < 1236269699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :bashed around a lot < 1236269702 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :dropped a few times < 1236269704 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm sufficiently old I've lost data due to bad sectors on floppy disks < 1236269705 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :never maintained < 1236269706 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1236269709 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I don't mean CD-R. But CD-ROM < 1236269714 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :quite a difference < 1236269725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not really < 1236269727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the second computer I used didn't have a sufficiently large hard drive to store the things I did, so I stored everything on floppies instead < 1236269728 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have too < 1236269730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can snap a disk trivially < 1236269740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've done it in seconds < 1236269745 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, well assuming it is stored in a dry protected place < 1236269748 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :disk splinters everywhere :| < 1236269752 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :ACTION backs up to memory sticks < 1236269755 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I was kind of stupid and tired. < 1236269757 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I mean, EMP wouldn't be much of an issue < 1236269761 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it's relatively hard to snap them accidentally, it's easy but not easy to do accidentally < 1236269769 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1236269776 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :my hands stung a bit after snapping that disc :D < 1236269778 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: anyway, I had to spend ages cleaning up after your quit message last time < 1236269787 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :I'm not really evolving as fast as the technology does. I'm fine with my 512 MB Mp3 player, I don't need no more < 1236269787 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was threatening to overwrite the logs < 1236269789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :uh < 1236269795 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what was that quit message? < 1236269802 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: a redcode quine < 1236269808 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1236269809 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that ran itself immediately after printing < 1236269816 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :known as an "imp" < 1236269818 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :What quit message? < 1236269820 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :thus presumably impomatic's username < 1236269833 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Aha :-) < 1236269847 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and I'm not sure I knew enough offhand redcode to write an imp-gate to stop it < 1236269859 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I forgot about that. Cool that the logging software runs redcode < 1236269872 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :jmp #0, <-5 should stop it next time < 1236269873 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it does < 1236269879 0 :jix!n=jix@dyndsl-095-033-098-197.ewe-ip-backbone.de JOIN :#esoteric < 1236269882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: clog rebooted yesterday or the day before < 1236269887 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and the mysterious nef was online < 1236269891 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :It was yesterday, yeah < 1236269895 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for the first time since 2000 < 1236269897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IIRC < 1236269900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or 2004 or something < 1236269900 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I'm trying to be sure < 1236269902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ages ago, anyway < 1236269910 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you never know when the logging software might suddenly become Turing-complete < 1236269920 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I have a proper redcode Quine actually, 170 instructions. I just need to recompile the MARS to run programs longer than 100 lines :-) < 1236269933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :clog is pretty good, it's pretty stable < 1236269935 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that needs a recompile? I thought the limit was just there to stop people cheating < 1236269937 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Who's nef? < 1236269942 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: see log link < 1236269942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: the person who keeps the logs < 1236269947 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apart from that, we don't know anything about them < 1236269955 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no idea why they're logging the channel, for instance < 1236269958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: apparently the tunes.org server admin administers it now < 1236269962 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I see :-) < 1236269965 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, lament or someone asked < 1236269983 0 :FireFly!unknown@unknown.invalid PRIVMSG #esoteric :Wait, we don't know _why_ they're here, logging our channel? ;o < 1236270006 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I've finished Redcode Forth. It's currently doing well on the programming reddit. There's also an article on there about OISC. < 1236270049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, I read proggit from time to time but somehow I missed that < 1236270071 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric : This is completely pointless and has no real world application. I love it! < 1236270078 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Well it's handy to have logs as evidence! :-) < 1236270078 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :only one comment, I may as well copy it here < 1236270081 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a while ago I was going to link impomatic to an article I saw on reddit last year about someone implementing a bunch of algorithms like from TAOCP in redcode, but then I clicked the link again and saw it was him :D < 1236270085 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1236270094 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :did you link him anyway? < 1236270096 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I would have < 1236270100 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :haha, not that I recall < 1236270104 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Where's that? ;-) < 1236270112 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: it just linked to impomatic.blogspot.com < 1236270122 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I implement another ever now and again. < 1236270169 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : org euclid+2 < 1236270170 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :euclid mod.ab #a, #b < 1236270170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: I like your descriptions of esolangs, very clear < 1236270171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : mov.x euclid, euclid < 1236270173 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : jmn.a euclid, euclid < 1236270175 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I didn't realise that was so simple < 1236270176 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I ought to finish off Heap sort. It's about 70 instructions though, 4 times longer than anything else. < 1236270191 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Quicksort and Combsort are both under 20 instructions < 1236270192 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how long is mergesort in redcode, I wonder? < 1236270212 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I might tackle merge sort. < 1236270219 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I love redcode, actually, it's a sort of anti-esolang < 1236270226 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it occurs to me that sorting arrays is a pretty rare operation. < 1236270233 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I haven't quite figured in-place mergesort < 1236270235 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1236270241 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and most of the time your values have a trivial mapping to integers, so you should just use one of the non-comparison sorts < 1236270244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like, wossname, bucket sort? < 1236270261 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1236270281 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, recently I was sorting a large list of words ordered by the words with letters sorted into alphabetical order < 1236270288 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sort of a lookup table for anagrams < 1236270290 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :letters have a trivial isomorph to integers. < 1236270293 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so there are uses < 1236270293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1236270296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :letters do, but words don't < 1236270300 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, true < 1236270306 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or, they do, but they're sufficiently large that bucket sort would be very inefficeint < 1236270307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :still, that's quite a rare cas < 1236270307 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :e < 1236270309 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*inefficeint < 1236270324 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If I was making a standard library, I would have 'sort : (a -> int) -> [a] -> [a]' < 1236270335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and 'genericSort : {comparable a} [a] -> [a]' < 1236270342 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or similar < 1236270454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, it turns out that strongly typing OOP duck-typing is easy. < 1236270468 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for instance: < 1236270469 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello : 'a = {(+) : 'b -> 'c} -> 'b -> 'c < 1236270470 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello a b = a + b < 1236270481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :trying to figure out how to do that with multi dispatch < 1236270543 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: does that collapse into a '_a sort of type? < 1236270550 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or does it stay fully polymorphic? < 1236270558 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fully polymorphic < 1236270563 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :assuming + is a message, ofc. < 1236270565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pretty impressive < 1236270570 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ocaml pretty much does the same < 1236270572 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and yes, that's pretty clear from your syntax < 1236270582 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for multi dispatch, well, it's harder < 1236270585 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :because you dispatch on all arguments < 1236270587 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :here's my attempt: < 1236270607 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION suddenly wonders what unassignable compiled into ocaml would look like < 1236270609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello : { (+) : 'a -> 'b -> 'c }. 'a -> 'b -> 'c < 1236270609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hello a b = a + b < 1236270631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so { } is a "context", basically meaning 'for the multi dispatch methods satisfying...' < 1236270644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: oh, I might try that < 1236270646 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't be hard < 1236270650 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it would be < 1236270805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: unfortunately, < 1236270805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :avg : { length : 'a -> 'b; (/) : 'b -> 'c -> 'd; sum : 'a -> 'c } 'a -> 'd < 1236270805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :avg lst = length lst / sum lst < 1236270811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you pretty much end up repeating the function body < 1236270826 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's to be expected < 1236270833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :OMG < 1236270839 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why the OMG? < 1236270840 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The new version of D < 1236270842 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is 100% open source < 1236270846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :fully buildable dmd < 1236270848 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wasn't the old version? < 1236270853 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not all of it < 1236270862 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the frontend and some of the backend, iirc < 1236270866 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but there was some code from other places < 1236270870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that couldn't be relicensed < 1236270877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but finally it's fully open source < 1236271070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gr, this is irritating < 1236271367 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why is this brokennn < 1236271419 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh. < 1236271424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Grah. < 1236271429 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Depends on gnu sed, I think. < 1236271443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ifdef LIB_PACK_NAME < 1236271444 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : FOR_PACK_NAME := $(shell echo $(LIB_PACK_NAME) | sed -e 's/^\(.\)/\U\1/') < 1236271446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :endif < 1236271449 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why must people not test on BSD < 1236271479 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :does BSD sed have arbitrary limits < 1236271491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: is that a reference < 1236271491 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1236271525 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's a backrefence, yes < 1236271530 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I thought all seds did that, though < 1236271536 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i meant < 1236271541 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :16:44 ais523: does BSD sed have arbitrary limits < 1236271544 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :is that a reference to something < 1236271549 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it isn't < 1236271561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :% sed -e's/^\(.\)/\U\1/' < 1236271561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a < 1236271562 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ua < 1236271564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :some old versions of sed couldn't handle more than a certain amount of text at once < 1236271568 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thus causing my Usexplib problem < 1236271585 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :\U is a perlism for translating into uppercase, I wonder if GNU sed has it too? < 1236271594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes < 1236271596 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :definitely < 1236271599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :since it should be Sexplib < 1236271609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now, I'd loathe to install gsed, and I can't modify omakefile < 1236271614 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, ocamlmakefile < 1236271618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so ... hm. < 1236271944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: any suggestions> < 1236271983 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :write your own wrapper for sed that specifically traps that line, and put it higher up on your PATH? < 1236272007 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I would not be surprised to find more gstupidity. < 1236272022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, replace it with an s2p followed by perl layer, then < 1236272028 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe I should create /usr/local/hell. < 1236272031 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Containing gnu tools. < 1236272032 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a sort of perl-sed which is more likely to be GNU-sed compatible < 1236272039 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :And tell godi to put it on its path. < 1236272046 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you seem to really dislike gnu tools for some reason < 1236272047 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :bloar/ < 1236272049 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*bloat? < 1236272073 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd dislike them less if software didn't rabidly depend on them when I preferred bsd tools < 1236272092 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sort of like how Windows would be a bad OS but not really that bad if it wasn't so ubiquitous < 1236272118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ehird:~] % s2p -e 's/^\(.\)/\U\1/' >x.pl < 1236272118 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ehird:~] % perl x.pl < 1236272119 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :sexplib < 1236272121 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Usexplib < 1236272127 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh < 1236272133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that really is a bad sed script, then < 1236272244 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm... < 1236272261 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :install gsed as /opt/local/bin/sed, then alias sed='/usr/bin/sed' in zsh? < 1236272351 0 :BeholdMyGlory!n=arvid@d83-183-183-70.cust.tele2.se JOIN :#esoteric < 1236272416 0 :Judofyr!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1236272564 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is very impressed with impomatic's print-in-decimal code < 1236272618 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a pretty simple algorithm, just everything looks more impressive when written in redcode for some reason < 1236272623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Is FP implemented? < 1236272631 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :floating point, no < 1236272636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Function Programming. < 1236272641 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Backus's apology for Fortran. < 1236272642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/FP_programming_language < 1236272645 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1236272661 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION misread wikipedia as esolang somehow < 1236272664 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236272687 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :ais523: which print in decimal algorithm? I think there are 3 on there. Recursive, interative, and one which can also do any number base < 1236272727 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the one in your forth program < 1236272732 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I was just shocked at how short it was < 1236272735 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in a lang looking like asm < 1236272739 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :redcode does that to me < 1236272750 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :redcode is far superior to x86... < 1236272753 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Scary. < 1236272764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I imagine it would be a real pain to implement in hardware < 1236272786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Conventional programming languages are growing < 1236272786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ever more enormous, but not stronger. Inherent defects < 1236272787 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :at the most basic level cause them to be both fat and < 1236272789 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :weak: their primitive word-at-a-time style of program- < 1236272791 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ming inherited from their common ancestor--the von < 1236272793 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Neumann computer, their close coupling of semantics to < 1236272795 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :state transitions, their division of programming into a < 1236272797 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :world of expressions and a world of statements, their < 1236272799 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :inability to effectively use powerful combining forms for < 1236272801 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :building new programs from existing ones, and their lack < 1236272803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of useful mathematical properties for reasoning about < 1236272805 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :programs. < 1236272807 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yikes, flood. < 1236272809 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Sorry. < 1236272811 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Didn't know PDF linebreaks were, y'know, real. < 1236272846 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :pdf is a strictly presentational language < 1236272854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Yeah. < 1236272855 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I hate pdfs. < 1236272860 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :x86 http://assemb.atspace.com/printdec.txt < 1236272861 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my client warns me about unexpected linebreaks in what I'm pasting, it's usual < 1236272868 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :So does mine < 1236272872 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it doesn't tell me how many < 1236272877 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just shows me a multi line edit form < 1236272877 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, there are quite often unexpected linebreaks < 1236272882 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and I entered it away too quick < 1236272886 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: impressive < 1236272887 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and mine just gives me a line count with a yes/no option < 1236272906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1236272907 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: < 1236272908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : call printdec < 1236272911 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't that be < 1236272912 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :jmp printdec? < 1236272916 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a tail recursion... < 1236272938 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :did impomatic write that one, I wonder? < 1236272944 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236272944 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, yes < 1236272953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the main page is in the style of corewar.co.uk, and his name is on it < 1236272968 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, he's right here y'know < 1236272976 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I nkow < 1236272981 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I nkow too < 1236272981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I saw the name < 1236272986 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*know < 1236272993 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and was wondering if it was impomatic < 1236272996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nkow: To nkep in a ow sort of way. < 1236273012 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :No, can't be changed to printdec. Yes, that's another of my pages! :-) < 1236273013 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's, like, a double abbreviation < 1236273032 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236273042 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :why can't call at a tail position be turned into a jump...? < 1236273054 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, is that PUTCHAR for dos or linux or? < 1236273063 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ugh, the first Google result for nkep is actually the correct meaning < 1236273067 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :DOS < 1236273088 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although the fifth version is the one that actually defines it < 1236273089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: for me, it suggests nkdep, and shows the top two sesults for that < 1236273092 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*result < 1236273094 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :before the agora results < 1236273099 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, yes, but those don't count < 1236273115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, http://jmcteague.com/mediawikiold/index.php?title=Nkep&redirect=no looks so much like vandalism < 1236273124 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[[So you are denying the existence of nonsensical action? Over 50 < 1236273125 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :million idiots in this world prove you wrong every day.]] < 1236273127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :--bobthj < 1236273131 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but "nkeplwgplxgioyzjvtxjnncsqscvntlbdqromyeyvlhkjgteaqnneqgujjpwcbyfrpueoydjjk" bears a strong resemblence to its actual definition < 1236273136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, err, why does using DOS prevent you from jumping? < 1236273138 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I wonder what politically motivated thing he's referring to. < 1236273147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: SCROLLBACK. < 1236273152 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric : also, is that PUTCHAR for dos or linux or? < 1236273155 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that isn't vandalism < 1236273156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236273158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's iammars's site < 1236273163 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: I know < 1236273166 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236273172 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's why I said it /looked/ like vandalism < 1236273176 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even though I know it's probably not < 1236273184 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :on the other hand, if someone did vandalism that string, would you ever know? < 1236273192 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*vandalise < 1236273194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :vandalism is a verb! :D < 1236273205 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :The routine builds a list of digits on the stack, which are then popped off and printed. < 1236273218 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, so it's non-tail recursin < 1236273230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236273234 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but < 1236273240 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236273242 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1236273246 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you need call's stack effects < 1236273256 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :It can be made iterative, but that is 2 bytes longer. < 1236273276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you could make an iterative one that iterates backwards. I wrote one, The max space you may need is rather trivial to calculate iirc. < 1236273279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for the code < 1236273313 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right. My code is for any base 0-36 and in C < 1236273318 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1236273320 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :1-36 < 1236273333 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :.. the whole point is to be short. < 1236273349 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Not bases <= 0 ? :-( < 1236273357 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :minus bases rock < 1236273358 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :everyone loves negative bases < 1236273365 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, bases 0-36 and in C is trivial < 1236273366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://rafb.net/p/o7Da1r12.html < 1236273368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although you need negative digits < 1236273371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> negative strings < 1236273371 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because there's a standard library function for doing that < 1236273378 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :umm.... 2-36, probably < 1236273383 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what does base 0 mean, anyway? < 1236273388 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://pastie.org/408471 < 1236273388 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even base 1 = unary is dubious < 1236273398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I just followed BASE spec < 1236273399 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: highly dubious, base 1 is useless < 1236273401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's all 0 < 1236273408 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, make an automatic rafb repaster bot < 1236273410 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: agreed < 1236273410 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1236273418 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It'll do that, then spam you with messages. < 1236273424 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/notices, to be precise. < 1236273431 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Your choice < 1236273432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I can ignore them easily < 1236273439 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :*shrug* < 1236273442 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Not if it makes 100 clones over proxie. < 1236273443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :proxies. < 1236273449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, anyway, I need to paste from command line. < 1236273454 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in wgetpaste < 1236273467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so? you can script that trivially < 1236273470 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: then we just get freenode to ban oyu < 1236273476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for spamming someone with 100 proxies < 1236273477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, I already have a working script < 1236273481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, indeed < 1236273481 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so I use a proxy :P < 1236273500 0 :Slereah!n=butt@ANantes-259-1-95-64.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1236273503 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you write hex in lowercase? < 1236273519 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, why shouldn't I? < 1236273528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: negative bases digit sets use your negative strings < 1236273528 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236273531 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no real reason, I'm just surprised < 1236273536 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: haha! < 1236273541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, BASE is RC/Funge, so it isn't that well defined anyway < 1236273559 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what does it define bases 0 and 1 as? < 1236273578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, reflect iirc. in mycology BASE is *all* UNDEF < 1236273586 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha! < 1236273594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so what's the point of testing it, then? < 1236273597 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to see what it does? < 1236273617 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes, and it is partly UNDEF because there is no way the program can verify it itself < 1236273626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since it only goes to output < 1236273660 0 :jix!unknown@unknown.invalid QUIT :Connection timed out < 1236273677 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, anyway my implementation is CCBI compatible, though different code. IIRC CCBI used some D string format stuff which could do any base < 1236273692 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, is that underspecified < 1236273701 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"Output n in base b" < 1236273717 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, well, it doesn't say iirc what range is valid < 1236273722 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, it doesn't < 1236273726 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what I just wrote is the /entire definition/ < 1236273732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1236273741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, and that could vary a lot < 1236273760 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :base 2-16 are pretty well defined, by common practise. But apart from that... < 1236273774 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :meh, that's not too unspecified < 1236273809 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :My 8086 code for IEEE multiplication is more accurate than my processor. The processor rounds incorrectly about 1 time in 3 billion < 1236273822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, um, for specific values I guess? < 1236273847 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, also that isn't strange. x87 is using 80 bits internally < 1236273878 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, use SSE2 to do it, and you will get IEEE iirc < 1236273883 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I didn't check the range of values... just ran it for a day and then compare some of the discrepancies. < 1236273918 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, this was using float or double? < 1236273923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also what specific CPU? < 1236273926 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I checked the results by hand and re-read the spec and it turns out the processor is wrong. < 1236273952 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as well as, what exact instructions were you using for the CPU floating point < 1236273971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and what FPU flags did you have set... If you used x87 < 1236273986 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yeah impomatic can remember all these minute details from years ago < 1236273988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :who can't < 1236274000 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I didn't know it was years ago < 1236274012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he said 8086 < 1236274018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's not very modern < 1236274030 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I know people using C64 for fun these days < 1236274038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for nostalgia < 1236274039 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and such < 1236274047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, your point was? < 1236274056 0 :Slereah_!unknown@unknown.invalid QUIT :Connection timed out < 1236274060 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :8086 isn't very nostalgaic < 1236274065 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's just an old x86 < 1236274070 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the first one < 1236274070 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :nothing much special < 1236274076 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :8086 makes me nostalgic for the old versions of DOS < 1236274081 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see! < 1236274084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's DOS nostalgia < 1236274089 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not 8086 nostalgia < 1236274096 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :Intel Celeron 600Mhz, can't be more specific. Single precision. < 1236274096 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know < 1236274105 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, wasn't it FOS back then rather? < 1236274108 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but the 8086 is a nostalgia-trigger for me < 1236274110 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: ? < 1236274117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Floppy Operating System < 1236274118 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I prefer Z80 < 1236274118 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :;P < 1236274126 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :A floppy is a disk. < 1236274135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, "Intel Celeron 600Mhz" != "8086" < 1236274136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236274145 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then ehird's argument is even more void < 1236274147 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(So is an HD. A cd-rom is a disc though.) < 1236274154 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, because that's even less special < 1236274161 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and so less nostalgiac < 1236274180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I use a Pentium 3 as a file server. < 1236274189 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, you're bonkers. < 1236274210 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, No I'm just not rich < 1236274225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes but pentium 3? < 1236274238 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes, I had one around. A waste to throw it away < 1236274239 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: file servers don't need a fast processor < 1236274243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :true < 1236274248 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but a pentium 3 in _anything_... < 1236274252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :indeed. All it does is serve NFS from two IDE disks < 1236274258 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, better than Pentium 4 < 1236274262 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I think I have some even older computers lying around < 1236274268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I've got a computer which used to run windows 3.1 < 1236274274 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, I have some old world macs. < 1236274278 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but both the Windows and the DOS on there have died to bitrot < 1236274283 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a pentium 3 isn't better than a pentium 4... < 1236274285 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well one pre-PPC < 1236274290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, it is. in fact. < 1236274296 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i disagree. < 1236274298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, consider the pipeline stall < 1236274304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that's one aspect. < 1236274304 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see logs from today < 1236274339 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, Pentium 4 also stalls badly at context switch < 1236274358 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :just FYI < 1236274388 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I have about 40 old computers lying around. Several Z80 computer (z80, amstrad, msx) a few 6502, 6809 machines, one 8085 and others I haven't got a clue about. < 1236274400 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I have a Hektor II and a Cray OWS :-) < 1236274409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and stalls a bit at syscall() too, it was worse when linux used interrupts, with 2.6 kernels it uses SYSENTER/SYSEXIT SYSCALL/SYSRET (forgot which is intel and which is amd) < 1236274419 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which stalls less badly on Pentium 4 < 1236274443 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :impomatic, CRAY! :D < 1236274459 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this laptop's a celeron M, I have no idea if that's good or bad < 1236274462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, in any case a P4 uses more power than a P3 too < 1236274471 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and finally < 1236274476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't have a P4 < 1236274487 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did have one years ago. it overheated in the end < 1236274490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i had a p4 way back. < 1236274490 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :even with a huge fan < 1236274494 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it sucked! < 1236274499 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236274502 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :p4 sucks < 1236274505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i also had 15 inches. < 1236274507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :of monitor, that is. < 1236274509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1236274512 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :afk food < 1236274518 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: all my previous processors sucked too, though. < 1236274523 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the p4 was a mild improvement. < 1236274621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Huh, I knew haskell in 2007. < 1236274748 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :The Cray isn't a supercomputer, although it's the size of a washing machine, has 12 huge fans and 8 processors. < 1236274761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: However, it CAN execute an infinite loop in 6 seconds. < 1236275291 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Sure, but so can your FACE. < 1236275309 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::'( < 1236275360 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: 2 seconds according to answers.com < 1236275379 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, 6 < 1236275383 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :was the original < 1236275399 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the same search let me find this: http://stackoverflow.com/questions/367571/detecting-infinite-loop-in-brainfuck-program < 1236275414 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :which is interesting, and also contains some really stupid beliefs about infinite loops < 1236275422 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"EDIT: I do know that the halting problem is unsolvable in general, but I was not sure whether there did not exist special case exceptions. Like, maybe Matlab might function as a Super Turing machine able to determine the halting of the bf program. I might be horribly wrong, but if so, I would like to know exactly how and why." < 1236275443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :stack overflow is a hilarious cesspool of people with slightly less intelligence than jeff atwood < 1236275457 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't mean it can't be interesting, if maybe in a perverse sense < 1236275473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"SECOND EDIT: I have written what I purport to be infinite loop detector. It probably misses some edge cases (or less probably, somehow escapes Mr. Turing's clutches), but seems to work for me as of now. In pseudocode form, here it goes:" < 1236275474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x_x < 1236275483 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Interesting like a freakshow... < 1236275500 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :" Call bfexec recursively with subprog" < 1236275502 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :doesn't that fail on +[>+]? < 1236275503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :That will never go wrong. < 1236275506 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Yes. < 1236275559 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :Hahaha, that fails spectacularly :P < 1236275569 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :It'll also call this an infinite loop: +>++<[>] < 1236275587 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most of the answers are surprisingly sane < 1236275607 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :The worst part is that you can actually have a good crack at a halting detector for BF, allowing for uncertainty for tricksy programs. < 1236275617 0 :GregorR!unknown@unknown.invalid PRIVMSG #esoteric :The sad part is, there /are/ specific cases where infinite loops are detectable, but this poor sap will never understand the distinction between "general" and "specific" at all :P < 1236275621 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'd like to see a usually-right halting oracle for BF < 1236275623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: snap < 1236275631 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: not usually-right < 1236275639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just right-a-good-portion-of-the-time-in-non-tricksy-cases < 1236275658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://research.microsoft.com/en-us/um/cambridge/projects/terminator/ < 1236275732 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I still like the idea of being able to submit a program with an automatically verifiable proof it always halts < 1236275742 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or always spends a finite time between asking for input < 1236275747 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or something like taht < 1236275761 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, the halting problem is neatly sidestepped by going slightly subturing < 1236275778 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :enough to express most things, but you can only loop forever if given infinite input from the outside environment < 1236275796 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(if you want to run a program that requires infinite livelihood, pipe something like 'yes' to it) < 1236275803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :or rather, that'd be optimised out < 1236275806 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but that's the basic idea < 1236275854 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: the last answer: "I have created a truly marvelous program to do this, which this textbox is too narrow to contain. " < 1236275935 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: same user answered with befunge on another question < 1236275939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://stackoverflow.com/questions/62188/stack-overflow-code-golf/ < 1236275945 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using '1' as a befunge stack overflow < 1236276002 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :? < 1236276012 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: 1 pushes 1 to the stack < 1236276014 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then it loops < 1236276014 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need to have a very small stack to do that < 1236276017 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1236276017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so it pushes infinite 1s < 1236276019 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :clever < 1236276020 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eventually overflowing the stack < 1236276022 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :'1' not '1@; < 1236276025 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :* '1@' < 1236276089 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that befunge solution is clever, even though it's a different sort of stack < 1236276107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :shortest stack overflow I can think of in INTERCAL is (1)DO(1)NEXT < 1236276115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that beats most of the submissions there < 1236276151 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: Ruby/Perl `$0` < 1236276161 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is that, technically speaking, a stack overflow? < 1236276163 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :system stack overflow! < 1236276167 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's an ingenious infinite recursion < 1236276170 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but it's overflowing something else I think < 1236276172 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: yes, because `` returns a value < 1236276176 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you could do < 1236276184 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :puts `$0` + " and " + `$0` < 1236276185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :in ruby < 1236276187 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, but it's a different stack each tiem < 1236276193 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, it's a number-of-stacks overflow < 1236276197 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a stack stack overflow! < 1236276197 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: it's the stack of process children < 1236276199 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1236276200 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which is more of a tree < 1236276202 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but still < 1236276249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :someone wrote a compile-time soverflow in C++ < 1236276251 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :*overflow < 1236276256 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think it's a stack overflow, though < 1236276260 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://stackoverflow.com/questions/62188/stack-overflow-code-golf/63812#63812 < 1236276264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :now _that's_ cool < 1236276265 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's a type-complexity-overflow < 1236276295 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :heh, that's ingenious, a non-looping stack overflow < 1236276308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1236276360 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :grr, the Scheme submissions are stupid < 1236276363 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :they're tailcalls < 1236276378 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and all Scheme standards mandate TCO < 1236276423 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :irssi: < 1236276425 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :/eval $L < 1236276433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :about infinite recursion. You can detect trivial cases of finite/infinite. In fact compiler do that to optimise better. < 1236276453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :GCC can warn you about loops it can't decide about < 1236276453 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :thanks, we only said that 5 times before you. < 1236276453 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1236276469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, I'm still reading scrollback. My comment memory is rather small < 1236276476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so I can't wait until I read it all < 1236276482 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :the IRC equivalent of ais523's agora posting < 1236276490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except IRC lines are a lot easier to read ahead on.. < 1236276538 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how do you declare something at the gprolog prompt? < 1236276540 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I forget < 1236276547 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :use assert < 1236276553 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you need an extra pair of parens due to precedence < 1236276561 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but you write assert((head :- body)). < 1236276561 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uncaught exception: error(existence_error(procedure,assert/1),top_level/0) < 1236276567 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1236276568 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :assertz < 1236276578 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(or asserta to declare it at the start of the program) < 1236276609 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :| ?- assertz((a(X) :- assertz(X))). < 1236276623 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :did that work? < 1236276627 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't see why it wouldn't have < 1236276633 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it did < 1236276639 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ooh, another one small as the befunge one < 1236276640 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :intel 4004 < 1236276641 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :CALL $ < 1236276644 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :-> ascii , 0101 0000 < 1236276649 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :a lot faster too :P < 1236276653 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://stackoverflow.com/questions/62188/stack-overflow-code-golf/597372#597372 < 1236276673 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :a Prolog stack overflow would be a:-a,b. < 1236276678 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : a stack stack overflow! <-- possible in Funge-98. < 1236276685 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :although you need to set compiler flags not to error on the undefined command b < 1236276685 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and in a different meaning < 1236276689 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: or just < 1236276692 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :p:-p < 1236276697 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's tail-recursion < 1236276704 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :gprolog doesn't optimize it < 1236276707 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fatal Error: global stack overflow (size: 16385 Kb, environment variable used: GLOBALSZ) < 1236276713 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :WOW IT IS RUBBISH < 1236276718 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :LOL < 1236276724 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :how can any prolog interp not optimise tail-recursion? < 1236276726 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that was unexpected < 1236276726 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if { can't allocate another stack in the stack-stack it is required to reflect though, so it doesn't fail at overflow < 1236276748 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's the only general way to do looping in prolog < 1236276757 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :apart from assert/retract in a backtrack loop, which is insanely ugly < 1236276758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :[ehird:~] % GLOBALSZ=-1 gprolog < 1236276758 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Fatal Error: global stack overflow (size: 1 Kb, environment variable used: GLOBALSZ) < 1236276780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: < 1236276784 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :p :- print(hi), p < 1236276785 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :works < 1236276786 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just not p :- p < 1236276810 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :wait, no < 1236276812 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, that's even weirder < 1236276813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it just takes longer to overflow < 1236276855 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, gprolog's the only interp for any language I know of, other than OIL which doesn't count, which can crash because it's run out of strings < 1236276870 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hahahaha < 1236276870 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I mean, running out of strings is a dubious concept anyway < 1236276928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it has a fixed size string pool? < 1236276937 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236276984 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :technically current erlang versions can run out of atoms. But the limit is a few millions iirc, and someone said it will most likely go away in the next major release < 1236277023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ you can change the limit with some obscure command line option iirc < 1236277064 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"The maximum number of atoms is 1048576." (in R12B-5) < 1236277093 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://www.erlang.org/doc/efficiency_guide/advanced.html#9.2 < 1236277099 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: try running setof(Property,atom_property(Atom,Property),PropertyList). at the gprolog repl < 1236277106 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and use ; to run through the results < 1236277109 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :... is that russel's paradox? < 1236277112 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236277118 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it returns the string pool, and data about it < 1236277123 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ha < 1236277132 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :really amusing is that some of the strings in the pool are filenames on the computers where it was defined or edited < 1236277135 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that seems strange < 1236277141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Atom = '/home/diaz/GP/src/src/BipsPl/dec10io.pl' < 1236277141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :PropertyList = [needs_quotes,hash(458243),length(39)] ? < 1236277158 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, strange... < 1236277177 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: GNU Prolog is crazily reflective < 1236277194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :| ?- setof(Property,X,Y). < 1236277194 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :uncaught exception: error(instantiation_error,setof/3) < 1236277196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1236277196 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :o_O < 1236277202 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :even more so than the standard portable version, which is also crazily reflective < 1236277205 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: why is that o_O? < 1236277210 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :idungeddi < 1236277213 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :t < 1236277221 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's "for all commands, run that command and return the set of results" < 1236277231 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, still don't you think running out of atoms is a bit funny? < 1236277236 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes I do! < 1236277243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:20 ais523: that's "for all commands, run that command and return the set of results" < 1236277243 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so? < 1236277245 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i tshould do it! < 1236277263 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would work in my language < 1236277264 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :> x < 1236277266 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = 0 < 1236277267 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = 1 < 1236277269 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(forever) < 1236277273 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = {} < 1236277275 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = {0} < 1236277277 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = {1} < 1236277278 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(forever) < 1236277280 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :x = {0,0} < 1236277282 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(etc) < 1236277286 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.. < 1236277287 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :most Prolog interpretations have some restrictions on what they can do < 1236277296 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :insane things are very easy to write in Prolog < 1236277344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I'd also have (crash = 1/0) < 1236277349 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :for error reporting. :P < 1236277361 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :surely running all commands would cause an exception before long? < 1236277368 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: ooh, that's a good idea < 1236277369 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, the reason erlang can run out of atoms currently is that for speed reasons it maps each atom to an integer internally. Type tagged in some way of course. < 1236277373 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :in fact, how did you know it didn't work? < 1236277373 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then < 1236277380 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :maybe the first command it ran caused an instantiation_error < 1236277387 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: same reason in Prolog < 1236277395 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :except the pool seems smaller < 1236277401 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isa(crasher(x), _) < 1236277405 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :crasher is all functions < 1236277413 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although I'm not sure that would be valid code < 1236277443 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ah, no < 1236277445 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that'd just define x < 1236277446 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :not crasher < 1236277448 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :eval(_) should work < 1236277454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :eval(x) would work < 1236277456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it also has some lookup table for it. Anyway the limit is too large for any sane program to hit. Oh and atoms are in the current version never removed from said table. Plans are to change that in the future. < 1236277458 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :but it'd just evaluate boring things < 1236277459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like '' < 1236277461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :'\0' < 1236277461 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1236277464 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd want < 1236277477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, that is garbage collect the atom ids. < 1236277479 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :some sort of < 1236277489 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :wow, it seems that Erlang copied some of the deficiencies of Prolog as well as some of its advantages < 1236277496 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :isa(x,string); try(eval(x), 'error') < 1236277505 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, How do you mean? < 1236277505 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :note: cannot distinguish errors from programs outputting 'error' :P < 1236277569 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/ <- Puh leez. < 1236277573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, oh and erlang seems more useful in "real world". I mean from what I understood, and I may be wrong, Prolog is a bit like Scheme: both languages are very nice and such, but aren't very easy to use for anything practical. < 1236277579 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least in a portable way < 1236277594 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"You've got a Turing complete language and a toy model of complexity. That oracle will practically write itself!" --reddit. < 1236277612 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :scheme is very practical. < 1236277617 0 :olsner!n=salparot@h-60-96.A163.priv.bahnhof.se JOIN :#esoteric < 1236277618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :just not for networked applications, or the like. < 1236277635 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :there are plenty of standalone, {file,keyboard}-to-{file,stdout} programs < 1236277685 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: "We're making early access available to a few select individuals. Contact us for information »" < 1236277685 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :I will totally write "dong" in it < 1236277691 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you must apply :P < 1236277697 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :um < 1236277701 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what is NKS? < 1236277707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in that link ehird posted < 1236277715 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new kind of science, Wolfram's ego in book form. < 1236277724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236277724 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1236277740 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :although the classification book is more generous, let's say "dead tree". < 1236277747 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :s/more/too/ < 1236277765 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Oh you. < 1236277865 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://www.theonion.com/content/node/34168 < 1236277884 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : http://blog.wolfram.com/2009/03/05/wolframalpha-is-coming/ <- Puh leez. <-- so, what do you think about it? < 1236277908 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Wolfram is pioneering his revolutionary new "Masturbate direct to a web page" technology. < 1236277923 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, cuil fail? < 1236277933 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Oh, cuil is at least amusing. < 1236277938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :This will probably just be pathetic. < 1236277941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236277977 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I actually knew it was coming, but had to keep it a secret < 1236277994 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Really, reading about it < 1236278003 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It sort of reminds me of EsCo :o < 1236278006 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Iunno why < 1236278009 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: LOL, since when < 1236278013 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wonders why the corewar subreddit has been banned :-( < 1236278018 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: o_O it has? < 1236278019 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :for ages < 1236278024 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Let's torture ais523 for more secrets < 1236278033 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: how could you keep the excitement in you?! < 1236278047 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, how did you know about it? < 1236278058 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Slereah, good idea < 1236278070 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :one of the wolfram people was talking to me and showing it off < 1236278077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I even suggested a couple of changes < 1236278080 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So... what does it do? < 1236278088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, does it fail badly? < 1236278088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Slereah: it searches KNOWLEDGE ITSELF!!!!!!!1111111 < 1236278090 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :read the wolfram blog description < 1236278098 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :So it's wikipedia? < 1236278101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no < 1236278102 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236278109 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :http://www.reddit.com/r/corewar/ < 1236278111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it actually works? < 1236278116 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's like wikipedia but useless! < 1236278121 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, it works well? < 1236278128 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: I'd try the feedback < 1236278129 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's not really like wikipedia < 1236278134 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's more like google calculator + insane < 1236278141 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :+ ego < 1236278149 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, so is it fail or not? < 1236278158 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :impomatic: you could start a new one called "raweroc" or something temporarily < 1236278171 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: its failure status is covered by his NDA. < 1236278179 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :why was corewar reddit banned, anyway/ < 1236278184 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, he didn't say so < 1236278185 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :that;'s what he's asking < 1236278188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it was a joke < 1236278204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, which line was a joke < 1236278204 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't actually sign an NDA, it was an informal agreement < 1236278214 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :18:36 ehird: AnMaster: its failure status is covered by his NDA. < 1236278217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I didn't really see enough to tell much more about it than what's been announced < 1236278227 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1236278230 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: with less hyperbole, I assume? < 1236278235 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ah ok. "It" could have meant one of ais523's comments too < 1236278293 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so, is it fail? < 1236278342 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you'll see < 1236278369 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you'd think that'd be a vague enough question to answer < 1236278385 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION agrees with ehird < 1236278389 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"All one needs to be able to do is to take questions people ask in natural language, and represent them in a precise form that fits into the computations one can do." < 1236278395 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :from the Wolfram blog < 1236278407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, yes, that implies fail < 1236278412 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: so it takes mathematica expressions? < 1236278415 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and EVALUATES THEM?! < 1236278415 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236278427 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ehird: it is certainly capable of doing that < 1236278427 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :holy shiiiiiiii < 1236278432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wow < 1236278435 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :can it make toast < 1236278439 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if it can, I'm sold < 1236278447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :will it cost money? < 1236278449 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or be free < 1236278454 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :both < 1236278465 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no idea about that, they changed the name since I last saw it < 1236278467 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :where did it say that? < 1236278473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for it in the blog < 1236278474 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what was it called? AMAZINGWIN? < 1236278534 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, the biggest clue about what they expect it to be used for is "But if one’s already made knowledge computable, one doesn’t need to do that kind of natural language understanding.", I think < 1236278546 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :or maybe "Pulling all of this together to create a true computational knowledge engine is a very difficult task." < 1236278552 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what the fuck does that mean < 1236278557 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's so vague scigen could have made it < 1236278564 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scigen? < 1236278567 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/SCIgen < 1236278594 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :"Let’s say we succeed in creating a system that knows a lot, and can figure a lot out." is maybe an even better description < 1236278615 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: they created strong AI? < 1236278623 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Enslaved 5 thousand chinese teenagers to answer the queries? < 1236278632 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :nah < 1236278645 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Wolfram personally answers all input? < 1236278658 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :anyway, they probably had a reason for not telling anyone what the hell it's about, so I'll shut up now < 1236278680 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Get the thumbscrews, we'll get the truth out of him! < 1236278699 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: I'm pretty sure the reason was "Wolfram is a megalomaniac theater director"... < 1236278699 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :either that, or they just have insanely bad marketing < 1236278745 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yep, a web search about it reveals people saying, "that's too vague, it must just be an appetiser" < 1236278779 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1236278780 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://motls.blogspot.com/2009/03/wolframalpha-central-brain-of-mankind.html < 1236278783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"central brain of mankind" < 1236278783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that sounds like Apple < 1236278783 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :XDDD < 1236278789 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :about future products < 1236278790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :vague < 1236278796 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rumors < 1236278803 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: apple are _silent_ about future products, except via rumours < 1236278809 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, ok true < 1236278812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is a difference < 1236278813 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :and most often those rumours are ridiculously precise < 1236278825 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you mean intentionally leaked? < 1236278836 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :possibly :P < 1236278902 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :ais523: one question -- is it actually something new that works? < 1236278906 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :surely that's vague enough to answer... < 1236278920 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that blog: "Once you'll be able to open www.wolframalpha.com, it will be ready to convert every question of yours, formulated in a natural language, into a well-defined computational format that represents the natural language." < 1236278928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's a NLP? < 1236278938 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :English -> Mathematica... < 1236278939 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :? < 1236278942 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and "The Central Brain of Mankind will search all (so far only millions of lines of) possible algorithms, methods, statements, and all (so far only trillions) of curated data that exist on the Internet, combine them and recombine them in all conceivable ways, and answer your question." < 1236278947 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ok, I think that's clear enough < 1236278960 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it's clear if you deal in marketing bullshit and vagueities < 1236278968 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it compiles English into Mathematica, and then combines it with a massive database < 1236278982 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :right, right, nothing special < 1236278988 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :plus a few other miscellaneous things which probably they've dropped by now because they struck me as ridiculous ideas at the time < 1236278990 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1236278995 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :specifically, the NLP is probably awful < 1236278996 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but they haven't been mentioned yet so I won't tell < 1236278997 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :quantum computer? < 1236278997 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like terrible awful. < 1236279000 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no < 1236279004 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :"combine in all possible ways" < 1236279019 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :surely only a quantum computer could do that for such a large data set < 1236279025 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :are they renting out google's servers? :P < 1236279068 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, the TLA NLP means? < 1236279074 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(in this context) < 1236279084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :natural language probes. < 1236279088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :except with a different p < 1236279090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probes? < 1236279092 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236279093 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :which I'm sure you can deduce < 1236279095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :processor? < 1236279097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :(hint: it's "parsing") < 1236279101 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236279142 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait, if this uses the internet, then the data isn't verified correct is it? < 1236279154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is one reason it will fail < 1236279161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you won't know what is true and what is false < 1236279183 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know where the dataset comes from < 1236279193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, btw, how comes you were told about this? < 1236279206 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he won the prize < 1236279212 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: someone working on it was interviewing me < 1236279212 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :presumably wolfram have spammed him ever since < 1236279215 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and decided to show it off < 1236279229 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1236279240 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, what did you say the name was back then? < 1236279247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I didn't < 1236279253 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and there were at least two possibilities < 1236279257 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but they didn't choose either < 1236279264 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :besides, does Wolfram's internal codename for something matter/ < 1236279269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :would it hurt revealing them? < 1236279274 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :probably < 1236279279 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1236279280 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1236279295 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :he was told not to. < 1236279295 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because there's no reason anyone should know it, really, and they might have a reason for people not to know it? < 1236279304 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, what possible reason? < 1236279306 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm ok < 1236279319 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't know of a reason, but I don't specifically know that there isn't < 1236279330 0 :Judofyr_!n=Judofyr@c349BBF51.dhcp.bluecom.no JOIN :#esoteric < 1236279342 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :we could help you find out ;P < 1236279362 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using wolfram|alpha < 1236279370 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"WHAT WAS THE CODENAME OF WOLFRAM|ALPHA?" < 1236279372 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"PARSE ERROR" < 1236279376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"**RESET**" < 1236279377 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"" < 1236279421 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236279424 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :actually, so ask it that when it does come out, I'd be amused to see the reply < 1236279438 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Or "HOW IS BABBY FORMED" < 1236279445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why in upper case? < 1236279451 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: It's 80s technology! < 1236279459 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"WHAT SETS DO NOT CONTAIN THEMSELVES?" < 1236279459 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :Because capslock is cruise control for cool < 1236279462 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"GO TO HELL" < 1236279464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, wrong. It's because it is a REAL QUERY LANGUAGE < 1236279467 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"**RESET**" < 1236279497 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :people typing with caps lock on should do it in lowercase < 1236279509 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :this message and the previous were typed using caps lock < 1236279511 0 :Slereah!unknown@unknown.invalid PRIVMSG #esoteric :It's the next best thing to knowing how to use a search engine! < 1236279517 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ais523, shift < 1236279523 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes, I know, that was obvious < 1236279571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think my old mac didn't lower case on shift + caps lock < 1236279602 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it only caused the non-letter keys to change (they were unaffected by caps lock) < 1236279606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :new macs don't either < 1236279610 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1236279618 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :IT IS QUITE NICE FOR WHEN YOU WANT DOUBLE_POWERED CAPS LOCK < 1236279624 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, why? And I assume apple have a reason to change it? < 1236279627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1236279634 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :have an option to change it* < 1236279648 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because if you hit the shift key instinctively for new sentences, yOU DON'T LOOK LIKE THIS. sEE? < 1236279650 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(never try writing two different things at once) < 1236279658 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :also, no, it's not an option, it's a rather trivial thing really < 1236279672 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, oh, like there is no option to change font < 1236279680 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :what < 1236279693 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, you can't change font size in Tiger iirc < 1236279702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or was it typeface you couldn't change < 1236279705 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, one of them < 1236279707 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for menus and such < 1236279725 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You know, your valid OS criticisms would be listened to more if you didn't say ridiculous vague things that on the mostpart aren't even legitimate criticisms. < 1236279730 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :You do that with Windows too... < 1236279739 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, err see above < 1236279742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I did clarify < 1236279765 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as far as I remember you can't change either font, or size, in the menus in OS X 10.4 < 1236279772 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I may be wrong < 1236279777 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I don't use OS X often < 1236279783 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and if I am, please tell < 1236279800 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :"the font" < 1236279802 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so very specific < 1236279810 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, how is it unspecific? < 1236279832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :Change to Helvetica in the Apple Menu using the settings panels in OS X < 1236279833 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how < 1236279835 0 :jix!n=jix@dyndsl-095-033-083-061.ewe-ip-backbone.de JOIN :#esoteric < 1236279839 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or if it is Helvetica < 1236279842 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :change it to Times < 1236279846 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, in the actual system. < 1236279849 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :no, you can't do that. < 1236279854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, yes menus < 1236279857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :how was it vague < 1236279857 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :well, you can. < 1236279858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it wasn't < 1236279873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, not documented with standard tools < 1236279873 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :using tinkertools < 1236279879 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so? < 1236279884 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :who gives a shit apart from you? < 1236279914 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, some old people can't see very well for example < 1236279919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :they would need larger font < 1236279920 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :you can make fonts bigger. < 1236279932 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, and possibly a clearer type < 1236279934 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :typeface* < 1236279941 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :lucida grande is very clear. < 1236279977 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, for example I read recently there are some type faces optimised for people who are dyslectics. I don't think lucida grande is, but I may be wrong < 1236279996 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :if I was dyslexic I'd probably use the speech features < 1236280008 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, sure. But can you get it to read the menus? < 1236280015 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes. < 1236280017 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :everything < 1236280030 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :blind people can use OS X just fine < 1236280043 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, What about speech-to-text? < 1236280047 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1236280051 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :it does speech recognition < 1236280053 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I've tested it < 1236280088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I tried it. "Open Safari." *firefox opens*. "Close window." *system preferences pops up* < 1236280088 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1236280095 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :+ it isn't available in Swedish < 1236280099 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :works for me. < 1236280099 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :only in English < 1236280104 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :maybe your voice is unclear. < 1236280122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, still neither TTS or STT is available in Swedish < 1236280125 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in OS X < 1236280143 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh well, swedes are dirty anyway. who cares about them. < 1236280168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if you are trying to be funny you aren't succeeding < 1236280170 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :bbl < 1236280188 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :err, do you realise who you are? i could say that every time you speak :D < 1236280194 0 :Hiato1!n=1@dsl-245-24-250.telkomadsl.co.za JOIN :#esoteric < 1236280386 0 :Judofyr!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236280416 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if snobol still exists < 1236280573 0 :Hiato1!unknown@unknown.invalid QUIT :"Leaving." < 1236280812 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :i love weird languages when people actually use them for real programs < 1236280835 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :like java < 1236280840 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :practical esolanging is always fun < 1236280853 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :tombom: who are you, by the way? < 1236280858 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I've seen you here before < 1236280908 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :oh nobody special, i'm new here < 1236280943 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :what are you interested in, esolang-wise? < 1236280984 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :State-of-the-art text-to-speech in Finnish sounded better than I remembered it doing. (Some EU project people asked our speech group to answer a web-based speech synthesis listener-evaluation thing.) < 1236280993 0 :tombom!unknown@unknown.invalid PRIVMSG #esoteric :nothing special, i'm not massively into it. it's something interesting to code and i find the concepts pretty clever < 1236281089 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh, and there was one hilarious section, where they had the speech synthesizer read completely nonsense sentences, because the aim in that part was just to evaluate isolated-word intelligibility, and context would've helped if it were real text. I'd paste some of the examples if they weren't in Finnish. < 1236281107 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul (aS(:^)S):^ < 1236281108 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(aS(:^)S):^ < 1236281133 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((^ul )SaS(:^)S):^ < 1236281133 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((^ul )SaS(:^)S):^ < 1236281175 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1236281222 0 :impomatic!unknown@unknown.invalid PRIVMSG #esoteric :I keep meaning to add keymaker's quine to my underload page < 1236281311 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underload is such a good language for quines < 1236281336 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :A more impolite person might, at this juncture, remark something about that being all it's good for. :p < 1236281352 0 :Hiato!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236281355 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SaS(:^)S):^ < 1236281355 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul ((+ul )SaS(:^)S):^ < 1236281365 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Dog nabbit < 1236281371 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Ooh. < 1236281376 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :If ! was the char for two interps < 1236281381 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :then !ul ((!ul )SaS(:^)S):^ < 1236281382 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :would be a forkbomb < 1236281406 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if an interp can handle writing newlines < 1236281412 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :then you could forkbomb even with different chars < 1236281418 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :EgoBot used to be able to output newlines... < 1236281426 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :I miss Egobot. <3 < 1236281430 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :GregorR: Psst. < 1236281473 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Someone should golf the +ul/^ul loop shorter; I don't think I've seen shorter than < 1236281476 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (^ul )(+ul )(~:SaS~aSaS(:^)S):^ < 1236281476 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul (+ul )(^ul )(~:SaS~aSaS(:^)S):^ < 1236281488 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's the shortest symmetrical one I know < 1236281498 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :asymmetrical can be shorter < 1236281535 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :asymmetrical? < 1236281549 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :as in, one just tells the other to run a cat with its own source code < 1236281555 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (^)(+)(~:S(ul )SaS~aSaS(:^)S):^ < 1236281555 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul (+)(^)(~:S(ul )SaS~aSaS(:^)S):^ < 1236281564 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :That seems to have the same amount of chars. < 1236281565 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ah, clever < 1236281599 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (+ul butts)S < 1236281600 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul butts < 1236281606 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul butts)S)^ < 1236281606 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul butts < 1236281620 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SS):a~^ < 1236281620 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul ((+ul )SS) < 1236281642 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Someone may continue. < 1236281751 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )Sa(^ul )~*(:^)*a(S)*S):^ < 1236281751 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul (^ul ((+ul )Sa(^ul )~*(:^)*a(S)*S):^)S < 1236281764 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :is that shorter? < 1236281767 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :that's an asymmetrical one < 1236281777 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :hoorah < 1236281795 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :It seems to again have the same amount, heh. < 1236281833 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Maybe it's the THEORETICAL LIMIT < 1236281902 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :well, there must be a theoretical limit < 1236281948 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SS):^ < 1236281948 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul (+ul )SS < 1236281953 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SaS):^ < 1236281954 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul ((+ul )SaS) < 1236281958 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SaS(:^)S):^ < 1236281959 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul ((+ul )SaS(:^)S):^ < 1236281966 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Almost, almost < 1236281970 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((+ul )SaS(S)S):^ < 1236281970 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :+ul ((+ul )SaS(S)S)S < 1236281974 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you have to get it to prefix with ^ul when the +ul program is run, though < 1236281981 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so the ^ has to end up somewhere in the result < 1236281987 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :oh, right < 1236281988 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :darn < 1236282011 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes, about outputting newlines to fork-bomb; underload is very difficult for that, since you can hardly input newlines in IRC. < 1236282031 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Underlambda will likely have sugar for output-newline < 1236282087 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ( < 1236282087 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...unterminated (! < 1236282088 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :)S < 1236282097 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Bah, it should keep reading the IRC lines following. < 1236282098 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul . < 1236282099 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...bad insn! < 1236282104 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :^ul ...bad insn! < 1236282104 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...bad insn! < 1236282111 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :kimian < 1236282115 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Kimian quines FTW < 1236282127 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (...bad insn!)S < 1236282127 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :...bad insn! < 1236282137 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ((a)~:^):^ < 1236282139 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of time! < 1236282167 0 :Slereah_!n=butt@ANantes-259-1-90-237.w92-139.abo.wanadoo.fr JOIN :#esoteric < 1236282206 0 :impomatic!unknown@unknown.invalid NICK :^ul < 1236282220 0 :^ul!unknown@unknown.invalid PRIVMSG #esoteric :Hmmm... < 1236282225 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (hi!)S < 1236282225 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :hi! < 1236282259 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:aSS:^):aSS:^ ...out of stack! < 1236282259 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(:aSS:^):aSS:^ ...out of stack! < 1236282281 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1236282289 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :beautiful < 1236282315 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:aSS(:^):^):aSS(:^):^ ...out of time! < 1236282315 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(:aSS(:^):^):aSS(:^):^ ...out of time! < 1236282327 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The sense, it has none. < 1236282340 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul S < 1236282340 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of stack! < 1236282346 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1236282350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Shouldnt' that say underflow? < 1236282389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul ^ < 1236282389 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...out of stack! < 1236282482 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1236282484 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Yes. < 1236282507 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:S^):S^ < 1236282507 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::S^ ...out of stack! < 1236282524 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (::S^)::S^ < 1236282524 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^::S^ ...too much output! < 1236282534 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :Oh yes, that's the underflow message. < 1236282539 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:::aSS^):::aSS^ < 1236282540 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(:::aSS^):::aSS^(::: ...too much output! < 1236282546 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:::aSS^ ):::aSS^ < 1236282546 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ (:::aSS^ ):::aSS^ ...too much output! < 1236282560 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (:::aSS^. In case you missed that: ):::aSS^ < 1236282561 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :(:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. In case you missed that: (:::aSS^. In case you missed that: ):::aSS^. ...too much output! < 1236282577 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :^ul (foooooo)(~:*~:^):^ < 1236282577 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric : ...too much stack! < 1236282585 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :There's the stack overflow message, too. < 1236282616 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (butts)(:*S):^ < 1236282617 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric ::*S:*S < 1236282621 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (butts)(*S):^ < 1236282621 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :butts*S < 1236282636 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (butts)(~*S):^ < 1236282636 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :~*Sbutts < 1236282643 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :^ul (butts)(~*:S:^):^ < 1236282644 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :~*:S:^butts ...out of stack! < 1236282665 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :fungot: What exactly do you mean with "butts out of stack"? < 1236282666 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: probably chicken or gambit. i think you're supposed to smile and notice i was only joking... also im sure it'll be the best way < 1236282678 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1236282731 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 110 (Connection timed out) < 1236282791 0 :Asztal!unknown@unknown.invalid QUIT :Remote closed the connection < 1236282833 0 :Asztal!n=moo@chunkybacon.org JOIN :#esoteric < 1236283084 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :http://funcall.blogspot.com/2009/03/not-lisp-again.html < 1236283138 0 :Asztal!unknown@unknown.invalid QUIT :Remote closed the connection < 1236283141 0 :Asztal!n=moo@chunkybacon.org JOIN :#esoteric < 1236283547 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :back in ~1hr < 1236283687 0 :^ul!unknown@unknown.invalid QUIT :"spl #0,0 / mov.i #1,1" < 1236283870 0 :Judofyr_!unknown@unknown.invalid NICK :Judofyr < 1236284141 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :back < 1236284282 0 :ais523!unknown@unknown.invalid QUIT :Remote closed the connection < 1236284393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : Kimian quines FTW <-- ? < 1236284414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ehird, what are those? < 1236284700 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :An error message which produces itself when run. < 1236285102 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :^ul ( )(*)(~:S:*a~a~*~a*^:Sa~a*~a*^:^):^ < 1236285103 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :* ** **** ******** **************** ******************************** **************************************************************** ******************************************************************************************************************************** ************************************************************* ...too much output! < 1236285231 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :btw < 1236285233 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :http://www.int80h.org/strlen/ < 1236285556 0 :MizardX!unknown@unknown.invalid PRIVMSG #esoteric :^ul (*)()(a~a*~a*^:S( )S:a~a*~a*^*a~a*~a*^:^):^ < 1236285557 0 :fungot!unknown@unknown.invalid PRIVMSG #esoteric :* * ** *** ***** ******** ************* ********************* ********************************** ******************************************************* ***************************************************************************************** ********************************************************************************* ...too much output! < 1236286083 0 :tombom!unknown@unknown.invalid QUIT :"Peace and Protection 4.22.2" < 1236287253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1236288402 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, modern libc uses highly optimised strlen() < 1236288438 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example glibc has different very fast optimised ones for i486, i586, i686 and so on < 1236288466 0 :Judofyr!unknown@unknown.invalid QUIT :Remote closed the connection < 1236288470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scasb isn't fastest on modern x86 < 1236288481 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :rather a much more complex SIMD using variant is iirc < 1236288488 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :o_o < 1236288500 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :also, FUCK THIS < 1236288507 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, fuck what? < 1236288515 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :I just tried to watch an episode of the daily show and it showed me about 5 30-second ads < 1236288527 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :huh < 1236288533 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :on their website < 1236288534 0 :MigoMipo!unknown@unknown.invalid QUIT :"QuitIRCServerException: MigoMipo disconnected from IRC Server" < 1236288536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fast forward? < 1236288540 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :you can't < 1236288546 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :after the end of one of them, I forgot to unmute in time, so I tried to go back ten seconds < 1236288575 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :I accidentally went back before the break, so it gave me a commercial and then I watched the last few seconds of the last part < 1236288588 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :after that, it gave me another commercial < 1236288603 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :and then I finally got to watch the show < 1236288606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, anyway asm hacks for stuff like strlen, memcpy and so on are stupid on modern systesm < 1236288608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :systems* < 1236288619 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1236288626 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :because the libc includes highly optimised variants < 1236288627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :! < 1236288629 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as I said above < 1236288635 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :using libc will be faster! < 1236288636 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :doesn't that count as asm hacks :p < 1236288641 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :just not ones you make yourself < 1236288643 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, not in your code < 1236288665 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :mmmm, not enough benefit in inlining? what if you call $function a million times < 1236288676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, also your code will be more portable, you don't need one asm hack for x86, one for PPC and so on. < 1236288682 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as libc provides each < 1236288687 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, glad you asked < 1236288702 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, gcc has a builtin one anyway that it uses when possible < 1236288719 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so libc one actually only ends up used when you do stuff that needs the function to be called < 1236288723 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like function pointers < 1236288734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or when you use -O0 < 1236288741 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or possible sometimes else < 1236288756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, for constant string literals, gcc will compute length at compile time < 1236288775 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1236288830 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Other-Builtins.html#Other-Builtins < 1236288836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is a LOT of them < 1236288856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, and there are other pages with other categories < 1236288863 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like vector builtins < 1236288869 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :also, what are you trying to convince me of < 1236288869 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sync built ins < 1236288871 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1236288873 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1236288889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, that doing stuff like in http://www.int80h.org/strlen/ is counter productive < 1236288892 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on modern systems < 1236288904 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/408758 < 1236288927 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, looks like the one yes < 1236288927 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :indeed, quite unlike what that optimizing strlen article says < 1236288930 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for i686 < 1236288934 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :that's x86_64 < 1236288939 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah right < 1236288944 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and I tell you the glibc one is faster < 1236288960 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for various reasons < 1236288964 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :and I believe you, which makes me wonder why doing it manually is faster < 1236288967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah yes I should have seen it was x86_64 < 1236288971 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :had I read it properly < 1236288978 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sees rax now < 1236289025 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, in any case gcc uses a builtin when it deems it better < 1236289032 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which mean code is inlined < 1236289041 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :other compilers do it too < 1236289045 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like icc and so on < 1236289052 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so is there any builtin for "scan forever for a certain character" < 1236289064 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :no, I mean manually as in asm stuff versus scasb < 1236289066 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :http://gcc.gnu.org/onlinedocs/gcc-4.3.3/gcc/Other-Builtins.html#Other-Builtins < 1236289071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :The ISO C90 functions abort, abs, acos, asin, atan2, atan, calloc, ceil, cosh, cos, exit, exp, fabs, floor, fmod, fprintf, fputs, frexp, fscanf, isalnum, isalpha, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, tolower, toupper, labs, ldexp, log10, log, malloc, memchr, memcmp, memcpy, memset, modf, pow, printf, putchar, puts, scanf, sinh, sin, snprintf, sprintf, sqrt, < 1236289071 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : sscanf, strcat, strchr, strcmp, strcpy, strcspn, strlen, strncat, strncmp, strncpy, strpbrk, strrchr, strspn, strstr, tanh, tan, vfprintf, vprintf and vsprintf are all recognized as built-in functions unless -fno-builtin is specified (or -fno-builtin-function is specified for an individual function). All of these functions have corresponding versions prefixed with __builtin_. < 1236289075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that lists strchr < 1236289079 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which I assume is what you want < 1236289083 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :no, it's not < 1236289087 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :I don't want to stop at a null byte < 1236289102 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :though I suspect the speed difference is negligible < 1236289114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, hm. memchr with size set to max pointer - start address :P < 1236289127 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if you saw the discussion yesterday, memchr was slower than strchr < 1236289132 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :with gcc -O3 < 1236289193 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, how did the generated asm differ? < 1236289194 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :sometime I intend to look at gcc's internals < 1236289196 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :they must be crazy < 1236289198 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that caused it < 1236289198 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: didn't look :p < 1236289201 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm ok < 1236289205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, then it is hard to know why < 1236289243 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, also how much slower? < 1236289246 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :did it matter? < 1236289281 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, glibc has rawmemchr... not portable < 1236289292 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and not a builtin < 1236289315 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :about 10ms :u < 1236289316 0 :atrapado!n=abx@cm19117.red91-117.mundo-r.com JOIN :#esoteric < 1236289317 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :maybe 20 < 1236289337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mhm < 1236289344 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, for how many calls? < 1236289351 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :also rawmemchr if you don't need portable < 1236289356 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :about, uh, a few million or so :u < 1236289361 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1236289366 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :also not a builtin < 1236289383 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, that doesn't prevent inline sometimes... < 1236289398 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, some stuff expand to macros < 1236289407 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in *certain cases* < 1236289414 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, glibc headers are pretty insane < 1236289432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as for gcc internals... Ask ais < 1236289434 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :he worked on them < 1236289441 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :when me made gcc-bf < 1236289457 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :uh, I'm scared < 1236289463 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :and for all this icc is still faster :u < 1236289480 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, not on my AMD CPU < 1236289493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, btw I see one very very stupid thing on http://www.int80h.org/strlen/ < 1236289498 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : sub ecx, ecx ; ECX = 0 < 1236289503 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is very stupid < 1236289513 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :everyone knows xor is the fastest way to zero a register on x86 < 1236289524 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :xor it with itself < 1236289540 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is even specially optimised in some x86 cpus < 1236289554 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sub with itself is slower < 1236289571 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least in some cases < 1236289573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :iirc < 1236289687 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :hey, even I knew to notice that :p < 1236289711 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :though I still don't know shit about x86 and it seems to me that there's a lot more shit than, say, ARM < 1236289713 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric ::u < 1236289729 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :yeah, I know, not risc < 1236289738 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, so I wouldn't trust that page too much. But it looks similar to the glibc implementation for i386... < 1236289762 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why does x86 use push and pop so much anyway? < 1236289764 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, actually modern x86 are RISC on the inside. They run CISC in microcode... < 1236289780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, register starved. x86 doesn't have a lot of registers < 1236289781 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :thought I read somewhere that that used to be true but not so much anymore < 1236289788 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: why? < 1236289819 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :is there a reason? < 1236289822 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, iirc: 1) making register memory is expensive 2) the original 8086 and even some later models were made to be cheap < 1236289832 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :x86_64 double the register count after all < 1236289849 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh and you can't add more registers as you go without breaking existing stuff < 1236289858 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to the changes needed < 1236289876 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :you mean like x86_64 did :p < 1236289876 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, not add general purpose ones that is < 1236289893 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, yes it did as I said above. But it did break everything else too by going 64-bit < 1236289898 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :why can't arguments be passed in r8-r15 now :u < 1236289906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1236289919 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't remember x86_64 calling convention on the top of my head... < 1236289949 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I do know some asm, but I'm far from an expert. I prefer high level stuff. Like Scheme. < 1236289960 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :scheme is pretty low-level < 1236289967 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :car? cdr? wtf is this bullshit. < 1236289967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, compared to? < 1236289986 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: compared to modern high-level languages like C#. < 1236290009 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :lament, car? well the modern world are based on those :P < 1236290021 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION ducks < 1236290055 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I know enough asm and quite a bit of C. And modern glibc uses very optimised routines for stuff like memcpy, strlen, strcpy and so on < 1236290104 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :also, backwards syntax is annoying < 1236290109 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :mov source, dest < 1236290110 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :fuck that < 1236290112 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric ::u < 1236290128 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :(in the sense that 'mov source, dest' is backwards.) < 1236290147 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, I prefer AT&T syntax < 1236290169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :mostly I deal with asm as it shows up from objdump < 1236290173 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or gcc < 1236290177 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I don't code much in asm < 1236290180 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why would I < 1236290189 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :compilers tend to do a great job a lot of the time < 1236290193 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :what can I use to assemble x64 anyway < 1236290205 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, well, there is gas < 1236290207 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :oh, I guess nasm supports it now < 1236290208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the GNU asm < 1236290214 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, there is yasm < 1236290217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and finally nasm < 1236290222 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but gas is best certainly < 1236290223 0 :comex!unknown@unknown.invalid PRIVMSG #esoteric :...for a year and a half < 1236290227 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I mean it is a nice syntax < 1236290235 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :compared to the horrible intel syntax < 1236290244 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, ^ < 1236290298 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :i prefer the intel syntax < 1236290325 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :it's closer to the arm syntax.. which was the first assembly language i really used < 1236290368 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but for x86 the at&t syntax is easier to handle by automated tools < 1236290375 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :because it's more verbose < 1236290388 0 :jix!unknown@unknown.invalid PRIVMSG #esoteric :but for coding in it it's too verbose imho < 1236290464 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :comex, I checked other stuff on http://www.int80h.org... the site is utter bullshit in many places. < 1236290470 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would recommend not using it < 1236290514 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems to suggest a syscall convention where you push arguments rather than fill them in the registers is "faster". < 1236290518 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which is utter bullshit < 1236290552 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :no justification for it? < 1236290618 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well it suggests it on freebsd, so I guess it talks about linux emulation layer. But really, use some macro or wrapper to use whatever the system prefers < 1236290632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :for example linux doesn't use interrupt for system calls nowdays < 1236290633 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at all < 1236290638 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :nor does freebsd afaik < 1236290660 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :on recent x86 they both use SYSCALL/SYSRET or SYSENTER/SYSEXIT < 1236290669 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :one of those pairs is for intel, the other for amd < 1236290673 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forgot which was which < 1236290912 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in any case at least the linux kernel injects this with a fake dynamic library on x86 < 1236290928 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it decides at boot if it should use the intel one or the amd one < 1236290946 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :libc then calls this for system calls < 1236290948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :very fast < 1236291197 0 :jix!unknown@unknown.invalid QUIT :"..." < 1236292156 0 :fizzie!unknown@unknown.invalid PRIVMSG #esoteric :The AMD64 ABI calling convetion does use some of the extra registers for argument-passing; namely it does rdi, rsi, rdx, rcx, r8 and r9 for integer and pointer arguments. More than six function parameters is probably rather rare anyway. < 1236292276 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, it seems useful if the other ones were kept for local scratch I guess < 1236292289 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and more than 6 does happen, but the norm is fewer < 1236292303 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :fizzie, also iirc it passes some other stuff in registers too < 1236292310 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :according to an elaborate schem < 1236292312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :scheme* < 1236292923 0 :atrapado!unknown@unknown.invalid QUIT :"Abandonando" < 1236294892 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :21:34 AnMaster: comex, that doing stuff like in http://www.int80h.org/strlen/ is counter productive < 1236294897 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :get it in your head < 1236294900 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :THIS IS #ESOTERIC < 1236295905 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1236296344 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Had to powercycle my machine there; it decided putting the fans on full was an excellent idea. < 1236296350 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :It does that once in a while, I wonder why? < 1236296386 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :23:33:08 http://filebin.ca/qyxpp/ofortuna.mp3 < 1236296389 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :i like it < 1236296907 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :My dad is asking me to model a ball of gas in a vacuum held together by gravity at equilibrium. < 1236296928 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Tell him to fuck off. Or, you know, do it. < 1236297030 0 :kerlo!unknown@unknown.invalid PRIVMSG #esoteric :But eh. < 1236297203 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :Why does he want you to < 1236297311 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehird: yay, constructive feedback <3 < 1236297335 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :23:55 JuanDaugherty: brainfuck is offensive ... as a waste of time and resources < 1236297338 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :--#haskell < 1236297446 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :he's on #squeak, #lisp, and #haskell, and he's talking about waste of time and resources? < 1236297452 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :pot. kettle. < 1236297473 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :23:57 JuanDaugherty: I didn't say I had a right not to be offended, just that I find it offensive as a concept and a reality < 1236297490 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :23:58 JuanDaugherty: it's to computing like bleeding is to medicine < 1236297503 0 :ehird!unknown@unknown.invalid PRIVMSG #esoteric :so ridiculous so funny :DD