< 1203996047 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1203996047 0 :clog!n=nef@bespin.org JOIN :#esoteric < 1203996052 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, does it work with PSOX? Offer PSOX integration? *keeps trying to drum up interest in PSOX* < 1203996069 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION does want to see tools with PSOX integration < 1203996082 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :uh... I suppose I could write a simple header or something once I get I/O down? < 1203996095 0 :Corun!unknown@unknown.invalid QUIT :Client Quit < 1203996137 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I need to add module, change coming to domain 0x04 < 1203996140 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :just a heads-up < 1203996146 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :modulo even < 1203996439 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://trac2.assembla.com/psox/changeset/96 nothing too serious < 1203996446 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :and http://trac2.assembla.com/psox/changeset/97 slight correction < 1203996544 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Serious updates on Wednesday though relating to safety < 1203996784 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION vaguely considers a BF.PSX language.. < 1203997282 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :my assembler now allows for the definition of constants- this significantly improves readability < 1203999728 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Maaaan, I look at the X86 instruction set. < 1203999749 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :To think that even machine code's got more instructions than most esolangs! < 1203999878 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :They've got like 30 jump instructions :o < 1203999880 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :slereah_: x86 assembly *is* an Esolang. < 1203999902 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :s/Esolang/esolang/ < 1203999976 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :If it is, then it is "commercial" and "sold out" :o < 1203999984 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :While brainfuck remains indie. Or something. < 1204000098 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :I wonder, are there direct equivalents to some BF instructions in X86? < 1204000180 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Bleh. You actually have to know computer architecture for x86. < 1204001900 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :slereah_: behold the wonder and fear that is CISC < 1204001960 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :Learn MIPS assembly, and then look at the x86 instruction set and you'll pretty much hate the entire computer industry < 1204002266 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, I *love* x86 assembly. < 1204002275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :In *exactly* the same way as I love Brainfuck. < 1204002275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :;) < 1204002502 0 :oerjan!n=oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1204002802 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :RodgerTheGreat, hm? < 1204002812 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric : Learn MIPS assembly, and then look at the x86 instruction set and you'll pretty much hate the entire computer industry < 1204002815 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I don't get it < 1204002858 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And don't think me leaving means you don't have to respond.. I can read logs you know < 1204002876 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :well < 1204002882 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :presumably MIPS is a thousand times more elegant than x86, despite the second being ubiquitous < 1204002897 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :oerjan has it pretty much right < 1204002915 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Like I said earlier: x86 assembly is an esolang in its own right. < 1204002919 0 :RodgerTheGreat!unknown@unknown.invalid PRIVMSG #esoteric :CISC hurts your insides when you know a really good RISC architecture < 1204002961 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I dunno: there's something to be said about switching to 32-bit mode being nontrivial. < 1204002964 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1204003058 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://news.zdnet.com/2100-3513_22-6231761.html < 1204003069 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Anyone here besides me think that this is either useless or harmful? < 1204003107 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Well, g'night all < 1204003214 0 :Sgeo!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204005413 0 :bsmntbombdood__!unknown@unknown.invalid NICK :bsmntbombdood < 1204006320 0 :immibis!n=immibis@125-238-252-202.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1204006326 0 :immybo_!n=IceChat7@125-238-252-202.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1204006344 0 :immibis!unknown@unknown.invalid QUIT :Client Quit < 1204006363 0 :immibis!n=immibis@125-238-252-202.broadband-telecom.global-gateway.net.nz JOIN :#esoteric < 1204006451 0 :immibis!unknown@unknown.invalid TOPIC #esoteric :If this channel has been deleted, how come we're in it? "This channel" refers to the alternative, since that's where we are. So if the alternative has been deleted where are we? Floating around in a void of zero channels? < 1204006484 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks for yesterday's log < 1204006531 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :http://ircbrowse.com/channel/esoteric/20080225 < 1204006535 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :scroll down about halfway < 1204006579 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :anyone wants to play Theatre, by Brenten Wyber, join #interactive-fiction < 1204007688 0 :immybo_!unknown@unknown.invalid NICK :immybo[A] < 1204008225 0 :immybo[A]!unknown@unknown.invalid NICK :immybo_ < 1204008230 0 :immybo_!unknown@unknown.invalid QUIT :"He who laughs last, thinks slowest" < 1204011733 0 :olsner!unknown@unknown.invalid QUIT :"Leaving" < 1204011766 0 :SimonRC!n=sc@fof.durge.org JOIN :#esoteric < 1204012502 0 :oerjan!unknown@unknown.invalid QUIT :"leaving" < 1204012799 0 :clog!unknown@unknown.invalid QUIT :ended < 1204012800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1204013277 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"To remove air from a flask, fill it with water, tip the water out, and put the cork in quick before the air can get back in." < 1204013326 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"For a nosebleed: Put the nose much lower then the body until the heart stops." < 1204013581 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :# "Do not use if you cannot see clearly to read the information in the information booklet." -- In the information booklet. < 1204013595 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Do not use while sleeping or unconscious." < 1204013603 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Recycled flush water unsafe for drinking." < 1204013625 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Do not use near fire, flame, or sparks." -- On an "Aim-n-Flame" fireplace lighter. < 1204013661 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Do not recharge, put in backwards, or use." -- On a battery. < 1204013679 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"For use by trained personnel only." -- On a can of air freshener. < 1204013703 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Warning: Do not climb inside this bag and zip it up. Doing so will cause injury and death." -- A label inside a protective bag (for fragile objects), which measures 15cm by 15cm by 12cm. < 1204013719 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :you know, every time i paste one i tell myself it will be the last, then i read the next. < 1204013742 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Warning: has been found to cause cancer in laboratory mice." -- On a box of rat poison. < 1204013749 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Fragile. Do not drop." -- Posted on a Boeing 757. < 1204013783 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Product will be hot after heating." -- On a supermarket dessert box. < 1204013802 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"May be harmful if swallowed." -- On a shipment of hammers. < 1204013843 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Not dishwasher safe." -- On a remote control for a TV. < 1204013894 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Malfunction: Too less water." -- A notice left on a coffee machine." < 1204013930 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"In case of flood, proceed uphill. In case of flash flood, proceed uphill quickly." -- One of the emergency safety procedures at a summer camp. < 1204013947 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :"Some materials may irritate sensitive skin. Please look at the materials if you believe this may be the case. < 1204013947 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :Materials: < 1204013947 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :Covering: 100% Unknown. < 1204013947 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :Stuffing: 100% Unknown." < 1204013947 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :-- On a pillow. < 1204013950 0 :immibis!unknown@unknown.invalid PRIVMSG #esoteric :ACTION stops < 1204014380 0 :immibis!unknown@unknown.invalid QUIT :Client Quit < 1204026330 0 :jix!i=jix@78.47.212.92 JOIN :#esoteric < 1204030560 0 :puzzlet!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1204030560 0 :pikhq!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1204030560 0 :lifthrasiir!unknown@unknown.invalid QUIT :brown.freenode.net irc.freenode.net < 1204030617 0 :puzzlet!n=puzzlet@147.46.241.160 JOIN :#esoteric < 1204030617 0 :pikhq!n=pikhq@209.248.124.243 JOIN :#esoteric < 1204030617 0 :lifthrasiir!n=lifthras@haje8.kaist.ac.kr JOIN :#esoteric < 1204034093 0 :RedDak!n=dak@79.26.80.235 JOIN :#esoteric < 1204034609 0 :sebbu!n=sebbu@ADijon-152-1-12-122.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1204035396 0 :Slereah!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204035424 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204036541 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1204041745 0 :n0nsense!n=chatzill@p57B39E52.dip0.t-ipconnect.de JOIN :#esoteric < 1204041759 0 :n0nsense!unknown@unknown.invalid PART #esoteric :? < 1204042468 0 :RedDak!n=dak@host235-80-dynamic.26-79-r.retail.telecomitalia.it JOIN :#esoteric < 1204043092 0 :timotiis!n=timotiis@jfkew.plus.com JOIN :#esoteric < 1204045653 0 :slereah_!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204045833 0 :Slereah!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204046852 0 :ais523!n=ais523@147.188.254.202 JOIN :#esoteric < 1204050086 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :>>> from __future__ import braces < 1204050088 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :File "", line 1 < 1204050091 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :SyntaxError: not a chance < 1204050998 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1204051582 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :hehe < 1204051672 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :better braces than those things ruby has < 1204051679 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :isn't that the solution Haskell used? < 1204051689 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :allow layout, but if you don't like it you can use braces and semicolons C-style < 1204051696 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1204051699 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but < 1204051725 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :1) haskell's whitespace-sensitive layout is much trickier than python's and harder to get right < 1204051741 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :2) in practice, everybody uses it anyway, and nobody uses braces much < 1204051752 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :Haskell's looks nicer than Python's IMO < 1204051766 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and the brace-semicolon style is useful for short things you want to fit on one line < 1204051769 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :haskell is optimized for looking nice < 1204051779 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(although that would be more useful in Python than it is in Haskell) < 1204051800 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION recalls attempting to type Python loops in to bsmnt_bot via IRC < 1204051823 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it was a case of ~exec exec("while 1:\n do_something;") < 1204051833 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :there ought to be a better way < 1204052045 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :haskell uses the offside rule I think, except where it doesn't < 1204052241 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hm, extending python with c is a chore. < 1204052396 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: your statement is a tautology. But what is the offside rule? < 1204052400 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(in this context?) < 1204052447 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to express it < 1204052486 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it means that (usually) expresions must fit into the least southeast quadrant that contains their initial word < 1204052490 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :roughly < 1204052731 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I have ever remembered a formal definition of the indentation rules < 1204052739 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it's just intuitive < 1204052769 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :heh, extending ocaml with c: < 1204052771 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :User primitives with arity greater than 5 should be implemented by two C functions. The first function, to be used in conjunction with the bytecode compiler ocamlc, receives two arguments: a pointer to an array of Caml values (the values for the arguments), and an integer which is the number of arguments provided. < 1204052784 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1204053344 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the exact rules are a bit complicated: http://haskell.org/onlinereport/syntax-iso.html#layout < 1204054009 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my favourite example in that is do a == b == c < 1204054039 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :because == is non-associative, the only possible way to parse it is (do {a == b}) == c < 1204054100 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :now we just need a program where that actually types... < 1204054220 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :haskell ffi is so nice < 1204054227 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :really? < 1204054234 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric : well < 1204054247 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION was planning an esoteric ffi < 1204054252 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: compared to Python < 1204054255 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and ocaml < 1204054262 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :where the relationships between programs are shown by drawing flowcharts in ASCII art < 1204054267 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :why are you reading about ffis? < 1204054268 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it's nice because the c side doesn't need to know about haskell < 1204054272 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but I haven't really worked out the details < 1204054276 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ais523: heh < 1204054278 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :your c functions are simply c functions < 1204054282 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :you don't need a wrapper < 1204054284 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :lament: Prolog's was good too < 1204054289 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and worked much the same way < 1204054299 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah, but haskell is actually a good language :) < 1204054300 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :OTOH, the C ffi interacts poorly with Haskell threads < 1204054308 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :you could even do something like this: < 1204054314 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: really? that could hurt me < 1204054315 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(in Prolog) call a C function < 1204054320 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(in C) call a Prolog function < 1204054325 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: what are the problems? < 1204054326 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(in Prolog) fail < 1204054335 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the bizarre thing is that both Prolog and Haskell have different evaluation orders than C. < 1204054340 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :the C function just gets cut out altogether, as if it itself had failed < 1204054356 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: Prolog's evaluation order is the same as C's. It's an eager language < 1204054360 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :lament: I think that no thread-switching occurs while a C function is running < 1204054369 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it might have a fix around somewhere < 1204054369 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it's just that Prolog also has a re-evaluation order... < 1204054379 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ais523: that was what I was refering to < 1204054386 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it just seems abit Ironic < 1204054391 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :erm, "ironic" < 1204054395 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm slightly annoyed with Prolog, because it's almost a very nice language < 1204054406 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but there's things you should be able to do with it but can't < 1204054409 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :like? < 1204054413 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :like solve simultaneous equations, for instance < 1204054434 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I want to be able to write goal :- A = B + 1, A = 2* B + 2, write(A). < 1204054444 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but Prolog interps can't handle that sort of thing < 1204054464 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :because it's the wrong side of Gödel < 1204054476 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :maybe < 1204054476 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :it makes perfect sense within the language, it's just confusing to figure out how to interpret, and probably uncomputable < 1204054483 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1204054515 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :goal :- A > 2, B > 2, integer(A), integer(B), A * B = (insert large prime here), write(A). < 1204054539 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I'm planning a blatantly uncomputable esolang version of Prolog to address these problems < 1204054557 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if you want something to be worried about, ponder that user-defined functions have to start with capital letters < 1204054570 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :oh, and there's no backtracking, it uses multithreading instead < 1204054581 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: oh, that shouldn't be a problem for me, but i see how that can be a pain. < 1204054581 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so an infinite loop is impossible, but it's super-TC anyway < 1204054618 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :goal :- A > 1, B > 1, C > 1, N > 2, A^N + B^N = C^N < 1204054619 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1204054842 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :my language sorts that out simply by multithreading and processing all possible values of A, B, C, and N in parallel. < 1204054852 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :You'd probably want to restrict them to be integers, though. < 1204054862 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :will it not prove it impossible? < 1204054889 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :how lame! < 1204054893 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if the proof is correct, it ought to fail < 1204054928 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :if the integer restriction is there < 1204054940 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :ACTION wanted to design a programming language in which just about everything was very easy to express < 1204054950 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so programmer productivity could be massive < 1204054957 0 :slereah_!unknown@unknown.invalid PRIVMSG #esoteric :Python? < 1204054962 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :no, that Prolog-like language < 1204054991 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :try translating C's ?: operator into Python. It's possible, but ugly and nonintuitive < 1204055034 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :ais523: prove impossible == fail, no? < 1204055044 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1204055066 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :basically, every statement in the entire program puts a condition on the state of the world < 1204055077 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :and a failure means that the conditions are incompatible. < 1204055101 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :such as SimonRC's conditions above, plus a condition restricting A, B, C, N to be integers < 1204055117 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(point of interest: does anyone know if the result also holds for non-integer N?) < 1204055170 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, after the guy spent 20 years solving that for integer n, i quickly extended for reals. < 1204055217 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :I quickly extended for negative numbers < 1204055226 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :but if you know the result for positive numbers, that's easy to prove < 1204055243 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :(results for -1 and -2, no results for <=-3) < 1204055244 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :for negative N? < 1204055249 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1204055258 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :BTW, no results for 0 either < 1204055265 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1204055268 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :so +2, +1, -1, -2 are the only integer values of N that work < 1204055346 0 :ais523!unknown@unknown.invalid PRIVMSG #esoteric :to prove the result for negative N, just multiply both sides by (A*B)^-N: < 1204055361 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :yeah, naturally < 1204055445 0 :ais523!unknown@unknown.invalid QUIT :"looking fruitlessly for the original #esoteric..." < 1204055564 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :umm < 1204055575 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I am not totally sure that proof works < 1204055594 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :if z = -n, I get: b^z + a^z = (ab/c)^z < 1204055600 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :didn̈́'t try, but just realized that's not what i was thinking < 1204055607 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :and started looking at it < 1204055715 0 :Corun!n=Corun@halls-129-31-72-183.hor.ic.ac.uk JOIN :#esoteric < 1204055821 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hehehe < 1204055828 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :http://www.accu.org/index.php/book_reviews?url=search.xqy%3Fx&term=schildt < 1204055878 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Look at all the results that are not by Schildt, and you will see that Schildt is the standard for measuring crapness of C++ books < 1204055926 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :man, haskell ffi is awesome. < 1204055935 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it just, like, works < 1204055936 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you said that above < 1204055942 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :written some? < 1204055964 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :just playing < 1204055989 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :once i figured out how to run ghc to compile it (which took a while because there's like, no documentation anywhere), it all seems easy < 1204056028 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :is the code on-line? < 1204056053 0 :Corun!unknown@unknown.invalid NICK :TheChris < 1204056055 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no, but there's nothing there < 1204056064 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i just create an array in c and send it to haskell. < 1204056096 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :are you using a thing to automatically generate the haskell declarations from the C ones? < 1204056109 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no < 1204056114 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1204056127 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i don't need any heavy machinery, just interface with one c function i have < 1204056139 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I just seem to recall the syntax for the declaration on the Haskell side to be a bit arcane < 1204056146 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :maybe I am thinking of something else < 1204056156 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :well < 1204056172 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :my function takes no arguments, and returns a pointer to an array of doubles. < 1204056181 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the declaration is: foreign import ccall "module.h getArray" _getArray :: IO (Ptr Double) < 1204056187 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1204056193 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1204056219 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and then from that pointer, i create an actual haskell list of doubles (i know the size in advance): < 1204056222 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray :: IO [Double] < 1204056224 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray = do ptr <- _getArray peekArray arrayLen ptr < 1204056226 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :err < 1204056232 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :it killed my newlines < 1204056244 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray = do {ptr <- _getArray; peekArray arrayLen ptr} < 1204056251 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :that's it < 1204056268 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1204056274 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :can't expect it to get any prettier than that... < 1204056348 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :how about: getArray = _getArray >>= peekArray arrayLen < 1204056351 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric ::-) < 1204056394 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :do you honestly think that's more readable? :) < 1204056405 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1204056419 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i guess i'm just not used to haskell enough < 1204056439 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :>>= is no worse that unix pipes < 1204056772 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i'm not saying >>= is bad < 1204056803 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but i think my version is better < 1204056826 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :because if you're not 100% sure what _getArray and peekArray do, my version makes it very obvious < 1204056878 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :in absence of a good haskell IDE that would tell you the type of peekArray as you hover the mouse over it, i think being explicit helps. < 1204057197 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :of course, i don't actually want a list... i want an array... < 1204057258 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Isn't there an appropriate instance of Array? < 1204057263 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :or similar < 1204057274 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204057319 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :no clue < 1204057380 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION researches Data.Array.Storable < 1204057406 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION finds unsafeForeignPtrToStorableArray < 1204057505 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION laments haskell's lack of proper documentation < 1204057538 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :haskell's idea of docs is type signatures < 1204057594 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :but bloody powerful ones < 1204057607 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :nothing vague like "Collection" < 1204057630 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ehhhhhhh < 1204057634 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :unsafeForeignPtrToStorableArray :: Ix i => ForeignPtr e -> (i, i) -> IO (StorableArray i e) < 1204057656 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :seems fine to me < 1204057662 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what's (i, i)? < 1204057668 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION explains... < 1204057737 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Given any type i that is usable as an array index, the function takes in a ForeignPtr e (e = element type) and the array bounds and returns an IO of a Haskelly version of the array < 1204057769 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Ix i => ... (i, i) ... almost always means array bounds < 1204057774 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :are the bounds inclusive or exclusive? < 1204057782 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :um, not sure < 1204057797 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :see... < 1204057814 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :notice some of the instances there are of Ix, BTW... < 1204057840 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :instance (Ix i, Ix j, Ix k) => Ix (i, j, k) and such like < 1204057848 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :proper multi-dimensional arrays < 1204057873 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the documentation for unsafeForeignPtrToStorableArray should really say if the bounds are inclusive or exclusive < 1204057883 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but since it doesn't, at least the documentation for Ix should < 1204057885 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :and it doesn't either! < 1204057891 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :they will be same as everywhere else, I assume < 1204057897 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION looks < 1204057897 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :exactly < 1204057925 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :inclusive, apparently. Had to check in ghci. < 1204058161 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1204058169 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the function is a little less pretty now: < 1204058174 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray :: IO (StorableArray Int Double) < 1204058174 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray = do ptr <- _getArray fp <- newForeignPtr_ ptr unsafeForeignPtrToStorableArray fp (0, arrayLen-1) < 1204058187 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :argh, i don't know what's going on with indentation. < 1204058214 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :getArray = do {ptr <- _getArray; fp <- newForeignPtr_ ptr; unsafeForeignPtrToStorableArray fp (0, arrayLen-1)} < 1204058248 0 :olsner!n=salparot@cust.fiber-lan.vnet.lk.85.194.50.194.stunet.se JOIN :#esoteric < 1204058603 0 :slereah_!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204058612 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :lament: for why indices are inclusive, see the recent conv on #haskell < 1204058623 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :(suppose you are indexing on Bool...) < 1204058770 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but would you actually? Especially an array imported from C? < 1204058836 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :well you might have your own instance of Enum and Ix that corresponds to a load of C #defines < 1204058838 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i sort of understand the reasoning, but realistically this only clutters the semantics to address about 0.00001% of the usage. < 1204058896 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :A function that turns c-style bounds into Haskell bounds is trivial to write < 1204058950 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :oh, sure < 1204058969 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :although that's among things like "begin and end instead of braces are very easy to define in C" < 1204058976 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and Haskell bounds interact well with [a..b] < 1204059011 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Haskell is really one for the theoretical purity. And that means indexing on all kinds of crap, not just numbers. < 1204059045 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :sure. i can live with that. < 1204059076 0 :RedDak!n=dak@host235-80-dynamic.26-79-r.retail.telecomitalia.it JOIN :#esoteric < 1204059122 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i do like syntactic sugar, though < 1204059162 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but it's not a big deal < 1204059237 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :ACTION sounds like he's always complaining, and he really isn't. < 1204059245 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :but i wish haskell had proper docs :D < 1204059339 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :you've done that one already < 1204059408 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :yeah, i guess i should actually start coding or something. < 1204059412 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :or go for lunch. < 1204061220 0 :TheChris!unknown@unknown.invalid NICK :Corun < 1204061819 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :SimonRC: have you actually written anything serious in haskell? < 1204062156 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1204062177 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I did some extensions to a miniture Java compiler. < 1204062244 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cool < 1204062255 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what did it compile to? < 1204062262 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :a C subset < 1204062304 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cool! < 1204062360 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the subset was designed to be machine-code-like < 1204062374 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :with an obscene collection of addressing modes < 1204062386 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :there were some register variables < 1204062426 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I implemented, among others, a jump optimiser < 1204062440 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :did anything practical come out of it? < 1204062453 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :it looked at the flowgraph and chose a set of paths with the minimal number of jump instructions < 1204062472 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I evaluated the results, and found that it was absofuckinglutely useless < 1204062491 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :hah < 1204062499 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :Java's control structures aren't complex enough to benefit from the jump optimisation < 1204062539 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :I expect it only really shines when you have deep breaks, "break 5;" or whatever < 1204062584 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :the only breaks the miniture java had were in the conditions of loops, immediately at the top < 1204062590 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :and they only wen out 1 < 1204063223 0 :uvanta!n=uvanta__@116.45.53.15 JOIN :#esoteric < 1204063837 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1204064465 0 :SimonRC!unknown@unknown.invalid PRIVMSG #esoteric :ACTION goes < 1204064643 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204064664 0 :slereah_!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204065265 0 :RedDak!unknown@unknown.invalid QUIT :Remote closed the connection < 1204065525 0 :pikhq!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204065730 0 :Sgeo!n=Anonymou@ool-18bf68ca.dyn.optonline.net JOIN :#esoteric < 1204065820 0 :pikhq!n=pikhq@209.248.124.243 JOIN :#esoteric < 1204065831 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :hi pikhq < 1204066856 0 :slereah__!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204066964 0 :slereah_!unknown@unknown.invalid QUIT :Read error: 104 (Connection reset by peer) < 1204068394 0 :timotiis!unknown@unknown.invalid PRIVMSG #esoteric :Liempt: speaking of bold, does that work? < 1204068404 0 :timotiis!unknown@unknown.invalid PRIVMSG #esoteric :damnit, wrong channel < 1204068428 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :or is it? < 1204068432 0 :slereah__!unknown@unknown.invalid PRIVMSG #esoteric :Aren't we bold? < 1204068436 0 :timotiis!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1204068437 0 :timotiis!unknown@unknown.invalid PRIVMSG #esoteric :possibly < 1204069032 0 :slereah__!unknown@unknown.invalid QUIT :Remote closed the connection < 1204069046 0 :slereah__!n=slereah@ANantes-252-1-7-52.w82-126.abo.wanadoo.fr JOIN :#esoteric < 1204069259 0 :timotiis!unknown@unknown.invalid QUIT :"leaving" < 1204069766 0 :Corun!unknown@unknown.invalid QUIT :"This computer has gone to sleep"