< 1313280108 478772 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net JOIN :#esoteric < 1313280147 551822 :pikhq_!~pikhq@71-219-245-171.clsp.qwest.net QUIT :Ping timeout: 276 seconds < 1313280192 117903 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :@undo [x | Just x <- hm] < 1313280192 504289 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :concatMap (\ a -> case a of { Just x -> [x]; _ -> []}) hm < 1313280202 391390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: Hey where are our barracks. < 1313280212 395551 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :nya? < 1313280262 45798 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: YOU ARE THE ONLY DF PERSON ONLINE OK < 1313280275 338215 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :CHECK "R" < 1313280328 921943 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: I did < 1313280333 618873 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I found no barracks :P < 1313280337 540642 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Make one. < 1313280365 214038 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: We have one. < 1313280368 9905 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I just can't find it :P < 1313280381 69534 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :make a barrack, call it obama < 1313280387 104087 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Check armor stands and weapon racks. < 1313280393 626511 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PART :#esoteric < 1313280411 503982 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm < 1313280438 310797 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Why does this guy have a weapon rack in his bedroom < 1313280461 279487 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Requirements probs. < 1313280523 128404 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: you've found a budding terrorist! < 1313280646 176791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh fuck you Lymee, you're at happiness 0 nad have mandated the cosntruction of ````certain goods'''' < 1313280650 10687 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You know what it's time for you to do Lymee???? < 1313280652 970390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's time for you to DIE. < 1313280655 126367 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :;-; < 1313280655 809808 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what? the download link for Firefox 3.6 gives me version 5... < 1313280672 833797 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Why'd you want 3.6 < 1313280672 942864 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :how's monqy going < 1313280682 44009 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: Still our good ol' miner < 1313280685 850689 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :\ < 1313280689 777831 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do i have any miner friends < 1313280691 959043 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: the plugin I need only works with 3.6 < 1313280693 666625 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: A few < 1313280747 774917 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dammit PH, where is the execution chamber < 1313280777 121113 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what? no really this 3.6 download is 5. < 1313280778 486091 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :WHY < 1313280779 650422 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: Dear god, your bedroom is insane. < 1313280792 995817 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Lymee is insane. < 1313280811 96672 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: http://ompldr.org/vOXcwdg < 1313280829 391876 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what does that mean < 1313280836 724417 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: what mean < 1313280840 94141 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: All the floor tiles are engraved < 1313280846 3473 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh < 1313280851 778310 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Basically Lymia is living in a queen's bedroom. < 1313280852 303542 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what are the what are those taus < 1313280855 494721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :She's only a fucking county. < 1313280861 184916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: Uh, plants or something I think < 1313280871 995937 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :They're not taus < 1313280873 496074 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think < 1313280874 251661 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Plants. < 1313280882 817988 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :well they're somethings and I don't know what they are < 1313280887 164343 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :and they look kind of like taus < 1313280968 964527 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Did PH build a ton of levers just so that I wouldn't use the execution chamber < 1313280970 749327 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sigh < 1313281094 210780 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: btw you are a girl and also, fifty-seven years old < 1313281129 705717 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :ok < 1313281157 695186 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: Do countesses get elected, I suppose not < 1313281160 590303 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And also I can't replace you < 1313281166 400894 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So I guess I have to arrange a nice accident < 1313281177 676163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You're demanding an adamantine throne < 1313281181 171920 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't like you, Lymee < 1313281243 557667 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what would happen if execution < 1313281256 918796 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what... I need 3.6 < 1313281259 513125 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :WHAT IS THIS. < 1313281264 532922 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what is that < 1313281266 662256 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: just get it from the ftp dude < 1313281269 846536 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : what would happen if execution < 1313281272 84841 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :she'd die < 1313281276 127671 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :and maybe tantrum spiral but probably not < 1313281280 959168 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh nevermind I figured out the problem. < 1313281281 135884 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :do it do it do it < 1313281287 229824 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I was running firefox instead of ./firefox. :3 < 1313281332 903404 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :smart < 1313281339 983837 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: i dont know how to work the execution chamber :( < 1313281349 831763 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::( < 1313281355 522915 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yep I'm pro like that. < 1313281408 930071 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: I want to remove all but my best engraver if I'm trying to give my bedroom a wonderful total engraving, right? < 1313281699 914114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :thx Lymee < 1313282435 338870 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: :( < 1313282452 91222 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :I guess. < 1313282464 487044 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess I'll let them all do it, since I have an awful lot of wall and floor to do < 1313282512 974402 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Wait, you can't engrave floor? < 1313282560 673621 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :A place of nostalgia for me is free again < 1313282562 408190 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :<3 < 1313282563 100460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, you're meant to be able to... < 1313282581 979208 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sgeo_: oh my god stop embarrassing yourself. < 1313282607 411347 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: So, um... what does it mean if I try and engrave a floor and the designation just doesn't stick. < 1313282614 783299 :Gregor!Gregor@codu.org TOPIC #esoteric :FALCON PAUNCH | iridium is too mainstream | http://codu.org/logs/_esoteric/ < 1313282620 520498 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliott: jokes on you; sgeo has no shame < 1313282694 875571 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :elliott, I... don't think that's happened before. < 1313282697 575198 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Is it constructed? < 1313282960 908178 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yes. < 1313283476 139034 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :You can't engrave constructed flooring or walls. < 1313283644 533700 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: But why/ < 1313283660 207355 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And... can I somehow get natural floor to... grow? < 1313283685 403224 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Nope~ < 1313283692 291090 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net JOIN :#esoteric < 1313283692 875752 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Not unless you want to cast obsidian < 1313283704 714532 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net QUIT :Client Quit < 1313283722 752239 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: How < 1313283746 401298 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Mix water and lava. < 1313283818 124085 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sounds easy :-P < 1313283848 208276 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :this will clearly end well. < 1313284028 702508 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de JOIN :#esoteric < 1313284151 113190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Lymee: Why did nobody tell me :P < 1313284166 788212 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Tell you what? < 1313284177 921552 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That you can't egnave constructed floor < 1313284186 528232 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric ::kyubey: You never asked. < 1313284208 268486 :cheater__!~ubuntu@g229096122.adsl.alicedsl.de QUIT :Ping timeout: 250 seconds < 1313284229 662085 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Argh networking argh. < 1313284243 525642 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: UMLBox again? < 1313284248 439629 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Naturalismo. < 1313284270 18890 :elliott_!~elliott@95.149.230.11 JOIN :#esoteric < 1313284275 461706 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : Gregor: UMLBox again? < 1313284279 369995 :elliott!~elliott@unaffiliated/elliott QUIT :Read error: Connection reset by peer < 1313284280 123628 :Gregor!Gregor@codu.org PRIVMSG #esoteric : elliott: Naturalismo. < 1313284286 93701 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i'm sure elves should be able to engrave wood *cackles evilly* < 1313284301 863502 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: Too busy killing 'em < 1313284319 177735 :Lymee!~moe@unaffiliated/cirno-chan PRIVMSG #esoteric :Why does DF have no support for cross-species migration? < 1313284320 521750 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Dude, you really want a generic host<->guest communication mechanism :P < 1313284325 962167 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It would make your life _so much easier_. < 1313284344 913368 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: DO NOT WANT TO HACK KERNEL :( < 1313284362 126103 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Wait < 1313284364 633002 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Why not just use a FIFO < 1313284370 225736 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Or unix socket < 1313284370 642458 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :On the host filesystem < 1313284374 400907 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: FIFOs aren't communicated host->guest < 1313284374 527218 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And expose that to the guest < 1313284378 659421 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Unix socket? < 1313284384 445153 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Nope < 1313284389 934218 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That's stupid < 1313284392 48488 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :What are you meant to do < 1313284397 100987 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Cry < 1313284400 572254 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :No but really < 1313284403 190999 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :s/ / / < 1313284508 778874 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Wait < 1313284515 99043 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You communicate through stdout and stdin, right? < 1313284522 671676 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Why not just make another tty for doing communication on < 1313284581 88121 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Um ... OK, I can do that ... < 1313284611 358504 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Well, it'd work, wouldn't it? < 1313284615 957536 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yup < 1313284616 347238 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And it's a simple bytestream < 1313284623 167452 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And you can just tunnel all sockets and the like over that with a simple binary format < 1313284628 940714 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Or make one tty per socket, if that's feasible? < 1313284638 649372 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That would be simpler, no protocol involved apart from a "lol gimme socket" tty < 1313284737 200217 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I think the max # sockets is 20? (10 tty's, 10 ttyS's) < 1313284743 368064 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That might be feasible ... < 1313284745 296131 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Lesse ... < 1313284753 983157 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Ehh, just do it over one tty < 1313284757 422908 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That's probably less work < 1313284775 208707 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I mean, yeah, you need to define a protocol, but it can be a super-trivial one < 1313284787 790754 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Only need to mux, really. < 1313284804 361526 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Note that your "sockets" still involve using a totally different API for any socket-using program :P < 1313284813 967860 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So you still need a custom-written HTTP proxy, but that's like fifty lines of Python < 1313284828 68257 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Or ... socat :P < 1313284838 949262 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: socat understands your special protocol? < 1313284850 79105 :Gregor!Gregor@codu.org PRIVMSG #esoteric :It does if I expose it as a UNIX domain socket on both ends *shrugs* < 1313284853 497681 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(i.e. "prefix every packet with the socket ID" :P) < 1313284864 486590 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: Why HTTP? < 1313284866 388439 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Oh, you mean just have a general socketotrond? < 1313284871 425627 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Tunnel OpenVPN over this. < 1313284873 839784 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: That's all HackEgo allows < 1313284877 113411 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: That's what I was thinking. < 1313284881 744047 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Laaaame! < 1313284895 347003 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Still makes opening a socket have a special protocol, unless you override libc :P < 1313284898 507666 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But yeah < 1313284904 375570 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That's basically what I meant < 1313284952 859023 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: But yeah, you definitely want to do it with one tty, because making ttys on-the-fly and the like sounds even more painful than a little protocol :P < 1313284961 664314 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :TCP over pty: the best? < 1313284968 171951 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Wait < 1313284968 996988 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Actually that doesn't sound particularly difficult *shrugs* < 1313284969 69591 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : I think the max # sockets is 20? (10 tty's, 10 ttyS's) < 1313284972 327510 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You can have arbitrary ptys... < 1313284975 836560 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Can't you? < 1313284977 116207 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :More or less? < 1313284985 610567 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Those that are communicated host-to-guest; they're not pty's as far as the guest is concerned. < 1313284989 330782 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I thought that limitation was Old-Style. < 1313284991 676025 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Ugh >_> < 1313285017 780413 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: A one-tty solution is more elegant, then, my critical IRC bot application requires twenty-one socket ;-) < 1313285018 318906 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :s < 1313285024 84345 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also it'd be eighteen < 1313285027 726222 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :One is stdio < 1313285034 504201 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :One is the socket-creation-and-closing service < 1313285092 442401 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Surely somebody's already solved this problem. < 1313285095 951235 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Modulo the UML part. < 1313285106 219187 :Gregor!Gregor@codu.org PRIVMSG #esoteric :The "mux a bunch of sockets over a single I/O device" problem. < 1313285106 710207 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: The UML part is what makes it a problem, man :P < 1313285116 232046 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I'm not willing to write code :P < 1313285129 772089 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Dude, you can write a trivial program for this in like ten minutes :P < 1313285135 139695 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh god, you're going to rope me into this aren't you >_< < 1313285143 85544 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :REMIND ME NEVER TO GIVE IDEAS < 1313285144 344889 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Maaaaaaaaybe. < 1313285198 607766 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It's literally just (:open,server,host) --> id|:fail; (:send,id,text) --> bytes|:fail; (:recv,id,bytes) --> buf|:fail < 1313285199 781194 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Or whatever :P < 1313285206 461093 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, and (:close,id) I guess < 1313285218 355673 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Obviously that doesn't cover all of networking ever, but all you need is basic TCP/IP < 1313285269 640985 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yeahyeahyeah, I'mma start working on it now >_< < 1313285276 773915 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Too late, I opened up a file :P < 1313285282 699658 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yessss, now I don't have to. < 1313285296 569160 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: So I was thinking I'd write it in Haskell instead of Python................ < 1313285308 643043 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I was thinking I'd write it in C ... < 1313285312 695388 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ACTION sits in his Passive-Aggressive Programming Warchair. < 1313285327 399853 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, what is the actual tty interface you get? < 1313285335 13454 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Like, can both the host and client literally just read from stdin/write to stdout? < 1313285364 907696 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Well, the guest would be communicating to /dev/ttyS, and the host would be using FIFOs. < 1313285387 853175 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yah, but I just mean, how easy is it to plug a simple stdin/stdout program into the host/client end of the deal < 1313285393 923541 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Mostly the host I guess, since the client part is easy < 1313285434 778424 :Gregor!Gregor@codu.org PRIVMSG #esoteric :On the host you'd have to use FIFO's, stdin/stdout are already taken. < 1313285442 77806 :Gregor!Gregor@codu.org PRIVMSG #esoteric :So, y'know, simple :P < 1313285446 826429 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Right :P < 1313285450 417607 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I've just avoided FIFOs religiously. < 1313285491 902894 :Gregor!Gregor@codu.org PRIVMSG #esoteric :You realize that anything you write in Haskell I'll just have to rewrite in C, right? :P < 1313285499 774239 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'm writing it in Python :P < 1313285538 868865 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Unless that doesn't meet your LANGUAGE REQUIREMENTS < 1313285548 406699 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Depending on Python in the host and guest is not the most strenuous thing :P < 1313285551 584336 :Gregor!Gregor@codu.org PRIVMSG #esoteric :The reason I wanted to write it in C is so that it could run on the guest with no requirements whatsoever (even no FS if necessary) < 1313285565 796534 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, you can statically link the Python interpreter with a script. < 1313285566 263781 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Errm, not "no FS", but "host FS not loaded yet" < 1313285572 452256 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But I don't know why you'd want to do THAT :P < 1313285585 576416 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: BTW, you know Haskell can be statically linked too? :P < 1313285595 297116 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Producing a, what, 15MB binary? < 1313285599 583895 :Gregor!Gregor@codu.org PRIVMSG #esoteric :For Hello, world? < 1313285603 381130 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Nah < 1313285614 379528 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ACTION measures out of curiosity < 1313285678 835982 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :-rwxr-xr-x 1 elliott elliott 2.1M 2011-08-14 02:35 hello < 1313285681 488252 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Less if it wasn't glibc < 1313285685 460076 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Probably less with the LLVM code generator < 1313285691 446410 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, that's not stripped < 1313285698 150432 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :-rwxr-xr-x 1 elliott elliott 1.6M 2011-08-14 02:36 hello < 1313285711 314402 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It's whole kilobytes bigger than the equivalent C program statically linked with glibc :P < 1313285712 713007 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :And getting rid of glibc would remove at least a meg of that. < 1313285739 546819 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: that's THOUSANDS of bytes! < 1313285767 621363 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: But sure, I am able to write C programs, the question is whether you want it with lots of bugs or not ;D ;D ;D ;DD:D:D:D:D:D:D:D: < 1313285770 336436 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yeah OK fine /me opens host.c. < 1313285779 995744 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Python is probably fine :P < 1313285792 583711 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(The more I think about "standard use", the more C is fine ... ) < 1313285802 421942 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: "Standard use"? < 1313285805 556312 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I don't actually know what you mean :P < 1313285812 727549 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Common use of umlbox. < 1313285819 513021 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Emoticon most commonly used by programmers: :P < 1313285823 957550 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Do you mean to s/C/Python/? < 1313285825 873494 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Which would generally include Python on the guest; and if it didn't, you probably don't care about X11 or networking. < 1313285856 54060 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: X11? Whoo boy :P < 1313285868 337287 :Gregor!Gregor@codu.org PRIVMSG #esoteric :X11 isn't difficult if you have UNIX sockets *shrugs* < 1313285884 874496 :Gregor!Gregor@codu.org PRIVMSG #esoteric :My mind keeps wandering back to X11 even though I care about it roughly none at all :P < 1313285896 717454 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :IRC quirk most common to mostly programmers: != < 1313285921 657381 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :def read_string(tty): < 1313285921 921938 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : bytes = tty.read(1) < 1313285921 994672 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : return tty.read(bytes) < 1313285924 893232 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Look at mah ad-hoc format < 1313285940 285805 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Really? 255 bytes per packet max? < 1313285945 33254 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Oh, point >_> < 1313285946 989048 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Can't we make it ... 65536? < 1313285950 964652 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yeah aight :P < 1313285956 175336 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I was writing cmd_connect < 1313285959 255509 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So that hadn't crossed my mind < 1313285990 147889 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: the unecessary use of variables is apalling. < 1313285999 296914 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : ord(bytes[0]) + (ord(bytes[1]) << 8) < 1313286003 234908 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :LOOK AT MAH LITTLE-ENDIAN NETWORK PROTOCOL < 1313286005 334358 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :<-- DOESN'T GIVE A FUCK < 1313286066 237843 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: You should also have a socket ID in that ad-hoc format :P < 1313286078 734209 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Umm, that's just to read a string internally < 1313286081 897300 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :e.g. < 1313286083 759375 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :def cmd_connect(tty): < 1313286084 14336 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : host = read_string(tty) < 1313286084 87142 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : port = read_string(tty) < 1313286113 583023 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :c[9][0]abcdefghi[9][0]999999999 would be the thing to send to connect to abcdefghi:999999999 < 1313286137 643201 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :sum(map(ord,bytes[:2])) << 8 < 1313286145 3496 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: That... no. < 1313286164 617740 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :what? < 1313286167 678967 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: ... wha? I get the feeling that we're writing very different things :P < 1313286175 861741 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(Or rather, I'm imagining vs you're writing) < 1313286185 464003 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: There needs to be a protocol for the guest to tell the host it wants to make a new socket. < 1313286200 294564 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Basically, I'm doing everything over one tty because it's simpler, and you there's four commands: connect, disconnect, send, recv. < 1313286212 143533 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Obviously connect has to take two strings, host and port, so I'm just using a simple length-prefixed thing < 1313286215 844991 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: No, that's bad and nasty, it'd require a bunch of security shit to make sure you only did "OK" connections. < 1313286217 968406 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Connect will yield a socket ID that the guest can then use. < 1313286232 368775 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Well, how do you avoid that? You need some sort of explicit checks < 1313286247 29175 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: All I wanted was a UNIX-domain socket multiplexor. < 1313286257 312926 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: That breaks most of HackEgo < 1313286264 650389 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Because sockets would have to be known beforehand < 1313286267 759502 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Not if one of those UNIX domain sockets is an HTTP proxy. < 1313286275 84638 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, okay < 1313286283 124023 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess that works :P < 1313286286 318319 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: it's more pythonic, bro. :3 < 1313286289 235381 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I'm trying to punch the smallest possible hole :P < 1313286292 868916 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: It _doesn't do the right thing_. < 1313286304 540213 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Fairy nuff then < 1313286308 28330 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: And if they could be either UNIX domain or TCP, even better >_> < 1313286324 9821 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Surely there's some program to do UNIX domain → TCP < 1313286325 828487 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Erm < 1313286327 191147 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And vice-versa < 1313286332 377 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Anyway, it'd require both socket IDs and connection IDs, plus length, plus ... now you see why I didn't want to do this :P < 1313286338 19798 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Yeah, it's called socat :) < 1313286346 815652 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Connection IDs? Can't you just enforce that at the guest layer < 1313286355 143466 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :CakeProphet: Uh, that's (ord(bytes[0]) + ord(bytes[1]) << 8. < 1313286358 781481 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :CakeProphet: n00b. < 1313286360 743775 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: You can have multiple separate connections to a single UNIX domain socket. < 1313286361 921066 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes I see that now. < 1313286369 920086 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yeah, but is there any reason to support that? < 1313286387 355954 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: ... yeah, so you can have multiple connections to the HTTP proxy ... for, like, making two requests ... < 1313286392 775182 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, OK :P < 1313286410 999104 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, sweet, Python's API for this seems easy enough < 1313286415 166660 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK, well the changes are minor then < 1313286423 821888 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: The "c" command just connects to a Unix domain socket < 1313286426 936001 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It should just take the filepath of the socket < 1313286431 910697 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And check that it's in its "allowed sockets" list < 1313286434 366514 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(host filepath) < 1313286459 949515 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It would be easier I think for both of us if it just took an index into that list. < 1313286468 535992 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That would work too < 1313286499 493196 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That way, you just connect to one of them on the guest, the proxy sends a connection for that same ID, and it connects on the host; the guest doesn't even need to know what it was called on the host. < 1313286507 679647 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliott_: so i made a guessing game but half of it doesn't work in the general case help < 1313286515 722848 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :monqy: lol < 1313286529 201140 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliott_: it's the tamplete haskell half < 1313286546 434339 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1313286576 174820 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Should I bother with buffering or should I just assume that every packet is small enough >_> < 1313286585 818197 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Or do Unix sockets not even act the same here < 1313286588 966756 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Help I am a citizen of TCP < 1313286595 923948 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :monqy: Why do you need TH for a guessing game < 1313286605 26296 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Donno < 1313286635 934248 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :elliott_: i tried making case-lambda but i don't know how to get the bindings from the pattern to transfer to the expression. luckily, the guessing game doesn' tneed that to work < 1313286640 901504 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: So the guessing game occurs at compile-time, of course. < 1313286687 181332 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it's an ugly case lambda too because I didn't want to bother with parsing stuff in quasiquoters < 1313286840 694887 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm, Python's standard libraries must come with an allocator of some kind < 1313286847 946211 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :At this point Gregor whacks me for trying to conserve space in the list of connections < 1313286860 604933 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why are you using python < 1313286869 610831 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :monqy: Least common denominator < 1313286883 266844 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hm? < 1313286889 911277 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It runs on everything < 1313286892 909695 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And isn't C < 1313286906 776719 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh < 1313286961 781364 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what doesn't (implementation of a better language) run on < 1313286975 257755 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :or is python well-suited to your task < 1313286976 625678 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :whatever it is < 1313286990 160649 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: an allocator? lol < 1313286992 36415 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :does java run on everything yet < 1313287031 953337 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, so wait, a UNIX domain socket is what it actually operates on too? < 1313287037 747390 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As in, the host talks to the guest through a UNIX domain socket < 1313287042 591936 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I was assuming a file-like device, which is stupid of me < 1313287062 438900 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I have a basic host.py written though < 1313287119 520274 :Gregor!Gregor@codu.org PRIVMSG #esoteric :No, the host talks to the guest through a FIFO, and the guest talks to the host through a character device. < 1313287125 297633 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Both more file-like than socket-like. < 1313287148 549901 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: the only allocators I know of exist in the C API. < 1313287261 260496 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Right. < 1313287350 63888 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It's OK if reading or writing to one socket blocks everything until it goes thorugh... right? :P < 1313287373 1074 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :select? < 1313287378 602952 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: I suppose. < 1313287384 434965 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: Complicates the internal protocol < 1313287388 648853 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Alright, how should I get this WIP .py to you so that you can see the protocol etc.; just sprunge it? < 1313287429 421163 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: http://sprunge.us/QGIP < 1313287439 414855 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: international mail. < 1313287453 319034 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you'll need to print it out and go buy a stamp. < 1313287460 139847 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :# lol I have no idea how to open a FIFO?? is this right?? help < 1313287464 951271 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :best comment best line < 1313287605 951198 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Dood, just do the protocol on stdin/stdout. < 1313287616 151180 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I can open the FIFO with < lol.in > lol.out < 1313287626 994124 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Wait why did I even do < 1313287628 120675 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :def recv_all(n): < 1313287628 287515 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : bytes = '' < 1313287628 360079 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : while len(bytes) < n: < 1313287628 360209 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : bytes += tty.recv(n - len(bytes)) < 1313287628 360317 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : return bytes < 1313287630 423848 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :the tty is reliable < 1313287631 866948 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :lol < 1313287634 7872 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yeah OK will fix < 1313287642 775426 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott_: now obviously you should make a class on top of having functions. Like all of the standard Python modules. < 1313287660 547082 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and everyone will just use the functions anyways because they secretly hate OO < 1313287681 67347 :Gregor!Gregor@codu.org PRIVMSG #esoteric :BBIAB < 1313287697 542412 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: client.py has to deal with a Unix domain socket which is rather less predictable, right? < 1313287704 952355 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :BTW, I could extend this to TCP very, very easily, like a few lines < 1313287925 61877 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And, heh, my "TCP support" doesn't really maintain one socket it just lets people connect any time they want to it???? yeah < 1313287928 378129 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess that is okay maybe < 1313287972 402012 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :def recv_all(n): return "".join(tty.recv(n-x) for x in xrange(n)) < 1313287986 28106 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: How about ... no, it doesn't work that way. < 1313287998 760642 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But feel free to continue making incorrect simplifications of my code < 1313288479 435993 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :nah I'm good. However: connections[conn_id] = None < 1313288480 895128 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :why? < 1313288509 754898 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :so you can't continue to use it < 1313288515 131527 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oh wait i should probably close the socket there lol < 1313288519 818884 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: also so it can be gc'd < 1313288539 109722 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :to preserve the length of connections so that future conn_ids continue to increment? < 1313288546 687007 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no I was just wondering why you didn't delete the index instead. < 1313288555 347085 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :because that would ruin every conn_id greater than that one?? < 1313288567 732064 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right, okay. < 1313288833 150746 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for some reason having Nones in the list is terrible. < 1313288849 327860 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but oh well. < 1313288873 789870 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :that's why I wanted an allocator < 1313288880 736793 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :except it's just a one-byte allocator so it's really just a freelist < 1313288918 487656 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :a dictionary and a max_conn_id would work, but... too much work really when the current approach works fine. < 1313288934 286547 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :doesn't need a list < 1313288937 610329 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :and that wouldn't work either < 1313288941 158544 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :well < 1313288945 899893 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :a list would have better memory characteristics < 1313288949 266445 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :right. < 1313288972 810179 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :except it's full of hideous Nones. < 1313288975 299481 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/Nones/nuns/ < 1313289019 999072 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :not if you used a freelist. < 1313289026 725653 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :well, it'd have nones, but they'd get filled instantly < 1313289052 936839 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, recycle the old ids? < 1313289140 808113 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :yes, that is what a freelist is :P < 1313289220 900524 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :a functional protocol would be interesting.. < 1313289224 735160 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :higher-order...commands? < 1313289504 940623 :GreaseMonkey!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1313290005 978748 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Someone upgrade GHC for me so I can test this < 1313290008 518764 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :TIA < 1313290167 644972 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :Transient ischemic attack. < 1313290205 687299 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :terror induced ascension < 1313290346 423926 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Taxidermic Investigation Agency < 1313290393 905588 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :thanks in advance < 1313290418 734832 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that one's too boring.. < 1313290465 489696 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Tubular intermittent acceleration < 1313290757 769295 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net JOIN :#esoteric < 1313290951 588191 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t break < 1313290952 822158 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (a -> Bool) -> [a] -> ([a], [a]) < 1313290954 552335 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t split < 1313290955 653771 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall g. (RandomGen g) => g -> (g, g) < 1313290958 885603 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :please tell me you have data.list.split < 1313290960 21270 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :eurgh < 1313290973 845131 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t splitOn < 1313290975 122010 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `splitOn' < 1313291730 904154 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :CakeProphet: btw, it's not actually true that you need unsafeCoerce to do Data.Dynamic < 1313291734 564747 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :because < 1313291734 831554 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :cast :: (Typeable a, Typeable b) => a -> Maybe b < 1313291735 328379 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :exists < 1313291769 515897 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :data Dynamic = forall a. (Typeable a) => Dynamic a < 1313291864 424490 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :three guesses what already mentioned function is used to implement cast... < 1313291953 749229 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: Shhhhhhhhhhhhh, obviously it's a primitive. < 1313291960 420212 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And all the values are type-tagged at runtime so it's OK. < 1313293055 605516 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net QUIT :Ping timeout: 252 seconds < 1313293057 276753 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :http://twitter.com/#!/catnutritionist < 1313293123 785968 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net JOIN :#esoteric < 1313293138 956348 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Observation: a power supply should not be accessible by foot. < 1313293144 20832 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Erm, bleh. < 1313293151 493666 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :s/supply/strip/ < 1313293430 192192 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :im a power suply < 1313293783 678416 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq does not understand suply society < 1313294125 311300 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net JOIN :#esoteric < 1313294384 769356 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :I have just come to the conclusion that the IT industry is largely responsible for compensating for the failings of bad developers and user experience designers. < 1313294390 716416 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :k < 1313294404 531768 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :evincar: Welcome to reality < 1313294424 762103 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :I suppose next you'll be saying that the Emperor has no clothes. < 1313294463 925202 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :Naturally. Au naturel-ly. Naturellement. < 1313294493 606265 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :It's just depressingly amusing that such an industry can exist. < 1313294512 454305 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm... @'s serialisation really needs work. < 1313294524 506230 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@ has serialisation? < 1313294527 244726 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :@ has? < 1313294532 861607 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: What? < 1313294545 570584 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :Yeah, I thought @ was sort of a hipster thing. < 1313294551 462968 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: What? < 1313294552 452747 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :You're making it sound to me like @ exists in some form < 1313294552 960218 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :It doesn't "have" features. < 1313294555 743041 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :Not in the usual sense. < 1313294560 264188 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: No I'm not. < 1313294560 513872 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :They're different. < 1313294576 164923 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :elliott_, or that there's a partial spec of serialisation < 1313294580 461389 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: I'm just doing this weird thing called "designing something before building it". < 1313294587 770248 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The spec exists in my head; it is deficient and vague. < 1313294589 391585 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :@ has "serialisation" meaningfully distinct from "in memory representation"? < 1313294611 212718 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :pikhq: Well, you've got to make concessions to get the thing to run on existing hardware. < 1313294612 133728 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Of course it does. You think that in-memory representation will work on an architecture with a different endianness? < 1313294615 379500 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Pointer size? < 1313294622 885192 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: Fuck reality. < 1313294645 192171 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It is not more pure to tie the system design to various variables of a specific machine when that is unnecessar. < 1313294647 476583 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :unnecessary. < 1313294662 55781 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :I still vote to copulate with reality. < 1313294753 628930 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Anyway, in-memory representation has pointers. < 1313294760 605021 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Pointers are machine- and time-specific. < 1313294786 592630 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Unless you want it to do a massive lookup EVERY TIME IT WANTS TO DEREFERENCE A POINTER in which case, lol @ you. < 1313294840 200398 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Come to think of it, in-memory representation includes machine code. < 1313294845 82949 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also not viable. < 1313294879 686724 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :pikhq: Theory copulating with reality is known to produce useful, if imperfect, hybrids. < 1313294884 211885 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :elliott_: Did you finally get number keys, or are you copy-pasting @? < 1313294900 944531 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :NihilistDandy: alt-q < 1313294906 234767 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :q is also my favourite letter, so this makes me happy < 1313294906 432698 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :I get the strong feeling that either @ is never happening or you're going to sit down to write it one day and the singularity happens the next day because of it. :P < 1313294909 254264 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :O.o < 1313294910 334088 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :to clarrify, alt gr + q < 1313294914 136946 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :Ah < 1313294937 177472 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :pikhq: I'd bet my bottom dollar said day is fueled by meth. < 1313294937 867446 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: the design has been getting more concrete, so... < 1313294973 83381 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :evincar: Given elliott's sleep habits, I don't think the meth will do anything notable. < 1313294983 31569 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I would like to see the design of @ < 1313294990 271005 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: now, you mean? < 1313294996 326980 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :No! I mean later. < 1313294999 813240 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oh good :D < 1313295033 436024 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :the process of viewing the design of @ involves me remembering it and rewriting a quarter of it in the process while typing it out into irc < 1313295049 601879 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :design documents are for squares and other rectangular shapes < 1313295062 397250 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :You should make a proper design document. < 1313295090 209468 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :but it keeps changing :( < 1313295145 405114 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What programming language would you use? LLVM? < 1313295172 808464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :you mean the top level that day-to-day things are actually written in? or something lower < 1313295184 224048 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I mean the system itself. < 1313295211 747641 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :"the system" encompasses every single piece of code running on it :) < 1313295224 964519 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :there's not really any one part you could call the kernel; it'd either be too small, or too big and fluid < 1313295237 387242 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :unless you consider a scheduler and maybe an allocator of some sort a kernel < 1313295248 625330 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :I imagine there would be some funny business with assembly and C to get things up and running, at which point you can use whatever you like. < 1313295256 264308 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What would those parts be written in though? < 1313295257 41956 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :That is, whatever you're prepared to provide runtime support for. < 1313295271 553888 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: No C. Ever. < 1313295292 152560 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :elliott_: Anything I don't have to write by hand is time saved. *shrug* < 1313295294 720799 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: To start with? Assembly. There's no other choice, really; it is the absolute lowest layer of the system. < 1313295304 244517 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :evincar: C running on bare hardware *seems* like it'd be pretty much incompatible with everything else @ is. < 1313295309 441476 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Once @ is fully bootstrapped, it'll just be rewritten in an @ assembler. < 1313295327 840229 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: C has the wrong model. It cannot save me time because all its assumptions are wrong in the face of @. < 1313295345 682300 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is it intended to run on many computers? < 1313295359 137740 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Or just one? < 1313295379 702323 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: I'm pretty sure there's a name for "a scheduler and maybe an allocator of some sort". < 1313295382 629020 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Exokernel. < 1313295399 327438 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: The basic model is such that @ would be more portable than typical operating systems; for instance, transferring binaries would be a rare operation, because of the security requirements (you'd basically either have to say "yes, I really want to do this risky thing" or provide a proof of the binary's safety, which would be quite thoroughly difficult). < 1313295431 792698 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: I am only planning to implement it for x86-64 computers to start with, but hopefully the non-portable parts could be kept to a minimum. < 1313295448 812640 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK, that makes sense. But if you write the system in assembly language then you need to write it in the assembly languages for many computers! < 1313295448 978691 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :For instance, like NetBSD, there is no reason that any driver would have to be CPU or bus-specific. < 1313295463 423785 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :elliott_: Are there applications in a traditional sense? Barring any details of persistent state, namelessness and the other peculiarities of @. < 1313295472 678521 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Well, it's impossible to avoid writing any assembly at all without relying on someone else's assembly (e.g. GRUB). < 1313295488 676946 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But the scheduler code should be rather small, and the remaining assembly should merely involve boot-up and some other miscellaneous tasks. < 1313295521 297790 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Well, yes. You would still need to write things such as the MBR code in assembly. The other stuff could be written in LLVM so that much of it can easily be ported to other computers. < 1313295538 663729 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: No. The definition of application is basically "the smallest non-composable unit of software"; information can't pass application walls without specific code to make it happen. That's pretty much antithetical to what @ is. < 1313295580 766726 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Do all programs need to be compiled and put everything together to make up the entire operating system? < 1313295636 529259 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :elliott_: How do I run existing software on it? < 1313295668 221920 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Because of the safety, portability and openness reasons I mentioned, everything is stored as source code (well, ASTs; there's no real reason to have a textual form of source code when it's not explicitly requested). A major goal for the compiler is to be fast enough that code can be compiled "on-the-fly" without noticeable delays. (The Oberon system achieves this.) < 1313295682 767498 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So basically, things will be compiled as they're loaded, or speculatively, if the system thinks some code is about to be used. < 1313295689 506716 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: Like, Windows or Unix software? < 1313295698 529569 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: http://web.purplefrog.com/~thoth/netpipes/encapsulate.html (I have no idea wtf this does, but it has pretty keywords) < 1313295698 725583 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK. < 1313295715 41053 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Did you see what I said? It does TCP now. < 1313295718 978122 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION still wants to try Oberon < 1313295719 253508 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net PRIVMSG #esoteric :Sure. Say I want to run Blender, make a 3D model, and if not actually save it, at least make sure that it continues to exist. < 1313295724 745076 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: Download the floppy, have fun < 1313295734 564643 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: "Say I want to run Blender" <-- this is the first hurdle. < 1313295744 165923 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :If you want to run existing software, could you use a C compiler or Pascal compiler or LLVM compiler or Haskell compiler or so on that is meant for this system? < 1313295764 883173 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: You'll run it under a compatibility layer, which could be as coarsely-grained as a full qemu with an Ubuntu installation, to something that is just an implementation of C and the like, plus a shell, and the various POSIX functions. < 1313295781 812649 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :evincar: The finer-grained the layer, the more pleasant an experience you're likely to have, but the more work someone else has had to do to make it happen. < 1313295785 832648 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Yes. < 1313295790 624013 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :In the case of Haskell, would you use a different type of main than other computers, but have a separate function to convert in case you need to run Haskell program meant for other systems? < 1313295811 575142 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yes, that would be a reasonable approach. I'm not even sure you'd need a main value at all. < 1313295831 141520 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK. < 1313295845 135475 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Unlike you, I don't read backlog :P < 1313295855 688014 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I pinged you < 1313295874 971442 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: tl;dr I asked a question about client.py, and then said that I generalised server.py to do TCP, but it might not behave correctly < 1313295885 959243 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Ah. < 1313295887 690752 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :02:08:17: Gregor: client.py has to deal with a Unix domain socket which is rather less predictable, right? < 1313295887 940641 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :02:12:05: And, heh, my "TCP support" doesn't really maintain one socket it just lets people connect any time they want to it???? yeah < 1313295888 23433 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :02:12:08: I guess that is okay maybe < 1313295889 685968 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Thar you go < 1313295915 424659 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It basically treats (host,port) ~ path to domain socket. < 1313295969 993676 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Hm hm hm. < 1313295978 41281 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yeah, that seems about right. < 1313295983 177499 :Gregor!Gregor@codu.org PRIVMSG #esoteric :In fact, yeah, that's exactly right. < 1313295986 964620 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I mean, otherwise you'd have to enforce a one-person-per-TCP-socket thing. < 1313295988 868669 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Which is just stupid, so yeah. < 1313296044 852886 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Upon further investigation, I believe that encapsulate does in fact do everything I want, /except/ for actually creating/opening the sockets, which is kind of obnoxious :P < 1313296054 952777 :Gregor!Gregor@codu.org PRIVMSG #esoteric :So, I continue to eagerly await your solution. < 1313296068 15092 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Well, I just need refreshing on how client.py talks :P < 1313296071 2145 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :server.py is through stdio < 1313296084 840540 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :If client.py could be the same that would be nice < 1313296085 934843 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Also stdio. < 1313296088 793766 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :e.g. via socat/nc < 1313296100 721386 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Aight then < 1313296101 678730 :Gregor!Gregor@codu.org PRIVMSG #esoteric :It's via a tty device, but that's ultimately just stdio. < 1313296109 411869 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The tty device is owned by root, right? < 1313296114 181558 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So that nobody else can fuck with it :P < 1313296116 302414 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Naturalismo. < 1313296144 858337 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: How should it serve the creation of new sockets? Local TCP server? < 1313296186 146859 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Hmmmmm < 1313296196 631429 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It could use a FIFO too, I guess < 1313296200 899886 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Except that has awkwardness about it < 1313296202 688664 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Actually, that makes me think ... why do the server and client even need to be different? < 1313296219 904833 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Because... the server is on one end of the protocol and the client another? :P < 1313296231 960240 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Why does my toaster and my bread have to be different? < 1313296234 126748 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :[asterisk]do < 1313296268 619740 :Gregor!Gregor@codu.org PRIVMSG #esoteric :The server is accepting connections and the client is making connections, but ultimately those are just requests made through the multiplexing connection ... < 1313296283 521950 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yes, but it's implemented with a custom protocol on top of Unix < 1313296311 82816 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Hm ... I feel like it would simplify things if they were the same, but ANYWAY, yeah, a local TCP server should be fine. < 1313296333 724237 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But the actual things it offers are solely Unix domain sockets, not TCP, yes? < 1313296338 543719 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm, TCP might actually be more convenient < 1313296341 209275 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I mean, it's one less layer < 1313296379 819640 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess that makes X a pain, though < 1313296385 370904 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Whereas it's easy to turn a domain socket into TCP < 1313296388 66097 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Even though that's yet another program < 1313296397 423914 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Well, so long as you're implementing both on the host, wouldn't it make sense to implement both on the guest? So TCP can connect to TCP and UNIX to UNIX? < 1313296399 545003 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I don't really want to write code that serves domain sockets and TCP generically as either a domain socket or TCP < 1313296416 737665 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: The host doesn't distinguish, so you could even convert >_> < 1313296423 835351 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess I can do it, it's just that servers are always more of a pain than clients < 1313296428 39398 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The guest is a server, the host is a client :P < 1313296429 17481 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sort of :P < 1313296447 537977 :Gregor!Gregor@codu.org PRIVMSG #esoteric :But aren't servers for TCP and Unix painful in identical ways after the initial socket() call? < 1313296467 976606 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, yes :P < 1313296473 541925 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It's just STRICTLY MORE lines of server code :P < 1313296477 741093 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK here goes. < 1313296512 41276 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, do Unix sockets have a specific way of indicating "disconnection"? < 1313296514 480911 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess they just act like EOF < 1313296526 122198 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yeah, which is the same as TCP. < 1313296541 103270 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Unless you're talking about the protocol, not the API? < 1313296547 215929 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :API, yeah. < 1313296581 413590 :Gregor!Gregor@codu.org PRIVMSG #esoteric :After socket() and bind(), the API is supposed to be the same ... that's, like, the whole point of all the complicated mess that is BSD sockets :P < 1313296591 27626 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Though Idonno if that translates into Python (I'd hope so) < 1313296599 14872 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Python's socket API is completely low-level. < 1313296607 541849 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It hurts only slightly less than BSD sockets because there's no fucking casting and htons and shit. < 1313296612 233220 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :GOD I hate BSD sockets. < 1313296713 691304 :Gregor!Gregor@codu.org PRIVMSG #esoteric :BSD sockets are yummy < 1313296751 144788 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'm trying to figure out what you'd call the order-and-then-later-on-receive-vaguely-edible-junk place in a fast food store, because it's the perfect name for the TCP server socket this thing creates :P < 1313296759 394006 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I hope in the future people curse me for creating such a shitty protocol. < 1313296779 773459 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Of course, it's called the "wtf". < 1313296792 210163 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :`addquote I hope in the future people curse me for creating such a shitty protocol. < 1313296796 592798 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :592) I hope in the future people curse me for creating such a shitty protocol. < 1313296799 559568 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: What's a TCP port < 1313296802 942549 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :A nice low one < 1313296820 156076 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: How about ... whichever port I ask for at runtime? :P < 1313296825 789792 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: Y'know, anyone can register a TCP port with IANA. < 1313296834 727689 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Butbutbut... # 4/tcp Unassigned < 1313296845 166439 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :tcpmux 1/tcp TCP Port Service Multiplexer < 1313296847 543958 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :P E R F E C T < 1313296852 614259 :Gregor!Gregor@codu.org PRIVMSG #esoteric :wtf < 1313296855 179492 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK yeah fine :P < 1313296861 104911 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: what < 1313296876 49236 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: I don't understand why you would want a pre-specified TCP port .... this is the listening port that corresponds to one outgoing connection on the server, right? < 1313296896 480547 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is the port that everything on the guest connects to when it wants to create a scoket. < 1313296898 87657 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :socket. < 1313296905 469764 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :!sanetemp 104 < 1313296906 874639 :EgoBot!Gregor@codu.org PRIVMSG #esoteric :313.1 < 1313296918 103076 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: ... huh? < 1313296931 872859 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Why is there such a port? The available sockets should be predetermined. < 1313296941 671168 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Ohhh, right < 1313296949 379945 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I forgot that you're a crazy static guy :P < 1313296958 106227 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Security, dood :P < 1313296971 593910 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Make a very airtight box, then poke the smallest possible holes in it. < 1313296986 434442 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is sooooooooo inelegant :P < 1313296993 222341 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That's why I wanted the connection requests to be by index instead of name too ... < 1313297001 930785 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :*sigh* < 1313297005 253469 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: ? < 1313297006 297224 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Lemme fully articulate my thoughts: < 1313297013 80653 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I do get it :P < 1313297015 925579 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I just lapsed thought < 1313297021 211327 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Okidoke < 1313297033 621047 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott_: someone's being funny with !sanetemp < 1313297038 563967 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :!show sanetemp < 1313297038 783367 :EgoBot!Gregor@codu.org PRIVMSG #esoteric :sh dc -e "1k?459.67+5*9/p" < 1313297041 254141 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: wat? < 1313297057 888804 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : if ':' in arg: < 1313297058 70194 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : start('tcp', n) < 1313297058 143509 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : else: < 1313297058 143676 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : start('unix', n) < 1313297064 358111 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I Can't Believe They're Not Interned Symbols < 1313297083 377594 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :!sanetemp 104 < 1313297083 737057 :EgoBot!Gregor@codu.org PRIVMSG #esoteric :313.1 < 1313297092 212472 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :^ not particularly sane < 1313297094 7333 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, I should probably specify the target paths and ports, huh >_> < 1313297115 371973 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :> 313.1 - 273.15 < 1313297116 354528 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 39.950000000000045 < 1313297118 995406 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: So the specification should look like "host:port" or "/foo/bar" for host.py, and "host:port:guestport" or "/foo/bar:/guestpath" for guest.py < 1313297153 384172 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: I don't see why the guest even needs to know what the host's ports are. If they're just by-index, then they just need to be in the same order. < 1313297160 979099 :Gregor!Gregor@codu.org PRIVMSG #esoteric :So it'd be guest.py :guestport /guestpath < 1313297176 245323 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Needs to know whether it's TCP or Unix, but yeah, I was just using the same format before I realised that I need to specify guest port or path :P < 1313297176 898341 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So yeah. < 1313297312 364465 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ACTION looks at Python's select binding < 1313297318 12810 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh thank god, it's non-terrifying enough to use. < 1313297343 255141 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm < 1313297348 743210 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :How do you accept() from multiple sockets at a time? < 1313297370 313896 :Gregor!Gregor@codu.org PRIVMSG #esoteric :... you accept from one at a time ... < 1313297385 865603 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: But what if someone connects to B while you're sitting around waiting for A? < 1313297407 925193 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'm trying to avoid threads :P < 1313297420 303747 :Gregor!Gregor@codu.org PRIVMSG #esoteric :What IF? The connection to B in no way hinders your A ... accept() returns a socket, you keep right on select()ing over it. < 1313297431 782244 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yeeeeeees < 1313297433 696438 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But accept() blocks < 1313297441 663831 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You have two server sockets A and B with no connections. < 1313297446 191401 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You accept() on A. < 1313297446 690557 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh wait < 1313297450 824829 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :listen() is the one that blocks lol < 1313297452 17485 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Your listen()ing socket will only barf at select() if there's a connection waiting. < 1313297455 62551 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :s/accept/listen/ in everything I said above < 1313297463 849863 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(accept() does block if you didn't wait for listen() :P ) < 1313297482 15165 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Oh, hmm < 1313297488 411757 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I've only used select on already-connected sockets before >_> < 1313297494 722354 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So what, I just .listen() it and then select() on it in the ... rlist? < 1313297499 27910 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yup < 1313297507 382206 :Gregor!Gregor@codu.org PRIVMSG #esoteric :If you get a poing from it, accept() < 1313297510 739402 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Why read and not write, sooo arbitrary :-P < 1313297531 193522 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ACTION gets the genius idea of having a hash table of "what to do when select poings" indexed by socket. < 1313297534 35176 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :SUCH A GENIUS < 1313297554 730301 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(Because I have both server sockets and connection sockets >_>) < 1313297705 754600 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is an IO monad inside of Template Haskell allowed to have its own command-line parameters? < 1313297763 828398 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: I don't think you're guaranteed as to the behaviour of that at all; as in, the arguments could be anything < 1313297770 223081 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK, this is going fairly non-terribly :P < 1313297793 412781 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK. < 1313297820 585922 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, er < 1313297834 854178 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: When I'm select()ing, if the clients on the guest start recv()ing from one of my shim sockets, < 1313297845 304666 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That'll be reflected only if they're in the "ready to write" fds list of the select() call, right? < 1313297848 919168 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So < 1313297849 467392 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : ready, _, _ = select.select(sockets.keys(), [], []) < 1313297850 736777 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :is wrong < 1313297865 814264 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yeah, it is < 1313297866 779890 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK < 1313297929 503687 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Why even ask me if you're just going to answer your own questions :P < 1313297945 738070 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Rubber duck :P < 1313298185 682856 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm, wait < 1313298191 917230 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Never mind < 1313298414 258379 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK, I've written client.py. It might even have no parse errors. < 1313298425 577321 :Gregor!Gregor@codu.org PRIVMSG #esoteric :No parse errors = works < 1313298430 231426 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ACTION renames it to guest.py for goodness. < 1313298433 677384 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Welp, it runs and blocks correctly < 1313298438 237707 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You wanna try and test this? :-P < 1313298450 216305 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Sure. < 1313298463 848957 :Gregor!Gregor@codu.org PRIVMSG #esoteric :shar *.py | sprunge < 1313298464 448771 :Gregor!Gregor@codu.org PRIVMSG #esoteric ::P < 1313298476 724761 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :host.py: http://sprunge.us/QeMO; usage: python host.py host:port /path ... < 1313298488 46450 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :guest.py: http://sprunge.us/TfUj; usage: python guest.py :guestport /guestpath ... < 1313298519 429488 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Note that any errors during read or write result in guest.py basically just disconnecting the client socket :P < 1313298538 817534 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Because there's no way to make the client get "the same error" without, like, trying to do the same thing that the socket on the other end did. < 1313298547 611919 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Which is left as an exercise to the reader. < 1313298564 775236 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That's fine *shrugs* < 1313298580 7610 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :If these work I will be incredibly surprised :P < 1313298581 31255 :olsner!~salparot@c83-252-161-133.bredband.comhem.se QUIT :Ping timeout: 260 seconds < 1313298622 799928 :Gregor!Gregor@codu.org PRIVMSG #esoteric :TypeError: getsockaddrarg: AF_INET address must be tuple, not int < 1313298638 104179 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh < 1313298639 13338 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Duh < 1313298659 135537 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Can I have one two seven point oh point oh point one < 1313298659 395103 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :thx < 1313298678 933345 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I should never get my keyboard fixed, I am so hardcore like this < 1313298698 994372 :Gregor!Gregor@codu.org PRIVMSG #esoteric :127.0.0.1 < 1313298721 71915 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: guest.py: http://sprunge.us/EPGQ < 1313298733 175042 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :eight six seven five three oh nine < 1313298759 239361 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :"There is only one thing which is more unreasonable than the unreasonable effectiveness of mathematics in physics, and this is the unreasonable ineffectiveness of mathematics in biology." < 1313298853 966366 :Gregor!Gregor@codu.org PRIVMSG #esoteric :What da heww? < 1313298874 668340 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: What < 1313298876 606568 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: This is perhaps the craziest behavior I've ever seen, anywhere. < 1313298884 343511 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Oooh < 1313298885 496058 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Tell me :D < 1313298890 207983 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :Is it drawing penises all over the screen? < 1313298900 256914 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :NihilistDandy: That's a design feature < 1313298922 978636 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It's ... like it's periodically running xwininfo ... < 1313298923 387464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Stop trying to debug my code it's impossible. < 1313298938 449795 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Um < 1313298940 293191 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: What < 1313298943 799742 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :NihilistDandy: Praise be to our improbably logical universe! < 1313298946 182251 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Like what sockets are you using to test < 1313298956 87349 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Please tell me they're X-related < 1313298958 513354 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: And then it's writing two postscript files, "socket" and "sys" to pwd. < 1313298965 336628 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Nope, localhost:80 and :8080 < 1313298971 352302 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :... X-D < 1313298976 148785 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Which postscript files? < 1313298979 966740 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :pikhq: Al-jebr be praised! < 1313298988 25406 :Gregor!Gregor@codu.org PRIVMSG #esoteric :WTF, they're screenshots < 1313298991 699438 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :X-DDD < 1313298998 759659 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I think it's developed sapience and it's attempting to communicate by gluing random services together < 1313298999 986964 :Gregor!Gregor@codu.org PRIVMSG #esoteric :This is like fifty levels of not possible. < 1313299015 931019 :Gregor!Gregor@codu.org PRIVMSG #esoteric :OHWAIT < 1313299018 476664 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :When it seems to run xwininfo, try ps < 1313299018 892954 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::P < 1313299021 460094 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :I have to try this shit out < 1313299033 330018 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :NihilistDandy: In the name of Al-jeber, CALCVLVS, and the scientific method, amen. < 1313299038 994637 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :Sounds like acid for computers < 1313299045 514836 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Hyuk, I had put a #! line on my version, then overwrote it with your #!less one. < 1313299047 194564 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: What is it doing because I don't WANT to fix it < 1313299054 978474 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: How... how does that explain anything < 1313299062 663999 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh < 1313299064 988905 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :import is a shell command < 1313299065 420554 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Apparently "import" is a program that takes a screenshot ... for some reason. < 1313299067 484152 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net PRIVMSG #esoteric :pikhq: Also, fuck biologists. Amen. < 1313299071 894918 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: ImageMagick < 1313299085 684717 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :NihilistDandy: With pleasure. < 1313299088 123695 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I just want you to know that this is the best bug EVER :P < 1313299088 196586 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric ::P < 1313299093 213493 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: http://sprunge.us/KRCC < 1313299114 981473 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :def read_short(): < 1313299115 268408 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : bytes = sys.stdin.read(2) < 1313299115 340585 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : return ord(bytes[0]) + (ord(bytes[1]) << 8) < 1313299119 408891 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Did you EOF it or something < 1313299139 6538 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : socket_index = read_string() < 1313299139 898034 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Herp derp < 1313299143 940483 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Change string to short on that line < 1313299180 605086 :Gregor!Gregor@codu.org PRIVMSG #esoteric :http://sprunge.us/ObCG < 1313299199 307366 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm < 1313299220 129047 :Gregor!Gregor@codu.org PRIVMSG #esoteric :*confused* < 1313299221 769318 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :>>> (65535 & 256) < 1313299221 934944 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :256 < 1313299222 706372 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh durr < 1313299229 419076 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: s/256/255/ < 1313299232 30478 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As for the other bug... hmm < 1313299238 874875 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ohh hmm < 1313299240 461244 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm < 1313299245 61247 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Can you print sockets.keys() just above that? < 1313299293 91266 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Sure < 1313299312 800935 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1313299331 374078 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Incidentally, I find the fact that there's no select anywhere in host.py highly disturbing. < 1313299351 941650 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Why would there be < 1313299355 681787 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It only recvs or sends when asked to < 1313299361 190840 :olsner!~salparot@c83-252-161-133.bredband.comhem.se JOIN :#esoteric < 1313299392 342266 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: [] < 1313299408 663247 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Yeah, but it needs to receive and send simultaneously ... < 1313299419 509533 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Uhh, it does? < 1313299428 199313 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : elliott_: [] < 1313299428 934675 :Gregor!Gregor@codu.org PRIVMSG #esoteric :OHHHH, I didn't understand how it worked at all :P < 1313299430 809990 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK, wtf < 1313299436 788751 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :print sockets.keys()[0].fileno()? < 1313299445 476794 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yeah it's literally a syscall servicer :P < 1313299448 85083 :Gregor!Gregor@codu.org PRIVMSG #esoteric :The guest actually proxies the REQUESTS, not just the DATA. Now I gets it. < 1313299455 984464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm, how else would it work < 1313299478 40432 :Gregor!Gregor@codu.org PRIVMSG #esoteric :With buffering, which would be terrible :P < 1313299478 146662 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Just out of curiosity < 1313299509 82644 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(You could just pull in anything ready to read, buffer it up for writing, and write whenever possible) < 1313299519 767062 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Right < 1313299523 84880 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Moar code :P < 1313299527 392991 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But yeah < 1313299527 640267 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : print sockets.keys()[0].fileno()? < 1313299532 374410 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :http://www.smbc-comics.com/index.php?db=comics&id=2325#comic somehow resonates with me < 1313299543 910129 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ACTION whistles innocently < 1313299548 274653 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: 3 :P < 1313299552 225579 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: wtf. < 1313299558 98642 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: ps mouse over the red circle < 1313299572 28866 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Why wtf? That's a fileno < 1313299575 45129 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: also oblig.: http://esolangs.org/wiki/User:Chris_Pressey#Laws_of_Form < 1313299575 984416 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yep < 1313299579 813729 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: read_ready, write_ready, _ = select.select(sockets.keys(), sockets.keys(), []) < 1313299579 979100 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :TypeError: argument must be an int, or have a fileno() method. < 1313299586 684645 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is a straightforward interface to the Unix select() system call. The first three arguments are sequences of ‘waitable objects’: either integers representing file descriptors or objects with a parameterless method named fileno() returning such an integer: < 1313299589 437349 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Oh < 1313299592 25914 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So what on earth is wrong :P < 1313299605 423071 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It's a sequence, the sequence contains one object, said object has a fileno method returning an integer < 1313299648 298505 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmmmmmmmm < 1313299653 216047 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Ohohoh < 1313299654 401618 :Gregor!Gregor@codu.org PRIVMSG #esoteric :[, (, ('127.0.0.1', 36796))] < 1313299656 640886 :Gregor!Gregor@codu.org PRIVMSG #esoteric :It grew :P < 1313299673 919605 :Gregor!Gregor@codu.org PRIVMSG #esoteric :accept(), presumably, gave a tuple < 1313299695 828242 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Oh < 1313299698 111996 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Um < 1313299712 707464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sockets[client] = (lambda: got_data(conn_id, client), lambda: want_data(conn_id, client)) < 1313299716 172759 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :client is definitely a socket object... < 1313299718 575668 :Gregor!Gregor@codu.org PRIVMSG #esoteric :client, _ = sock.accept() < 1313299720 207146 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sockets[sock] = (lambda: handle_connection(proto, n, sock), lambda: None) < 1313299720 377815 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :sock too < 1313299726 769717 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yeah... < 1313299730 953964 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Is that the wrong way around? < 1313299736 785891 :Gregor!Gregor@codu.org PRIVMSG #esoteric :You didn't have that before. < 1313299748 598486 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh < 1313299748 745107 :Gregor!Gregor@codu.org PRIVMSG #esoteric :It was just client = sock.accept() < 1313299749 300408 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Duh :P < 1313299756 951227 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Does it work NOW? :P < 1313299773 355436 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott_: damn you now i have to check all the other red circles < 1313299775 474401 :Gregor!Gregor@codu.org PRIVMSG #esoteric :sys.stdout.write(chr(n & 256) + chr(n >> 8)) # really? n & 256? You suck at bits < 1313299787 979417 :Gregor!Gregor@codu.org PRIVMSG #esoteric :ValueError: chr() arg not in range(256) < 1313299798 998464 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I think a problem of the Constantinople esolang is the "replace" and "nand" taking two arguments. You could fix it by requiring the word "with" between the arguments, which also means you don't need the parentheses anymore. < 1313299802 121258 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Dude < 1313299804 33443 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I told you to fix that < 1313299806 621942 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Earlier above < 1313299812 78746 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It's just in two files because lazy >_> < 1313299842 599456 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :If it works, you can send me the modified version and I'll factor them out into common.py < 1313299846 886083 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Whah? I don't see that fix request ... < 1313299854 108249 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : http://sprunge.us/ObCG < 1313299854 280718 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : Hmm < 1313299854 353348 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : *confused* < 1313299854 353524 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : >>> (65535 & 256) < 1313299854 353634 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : 256 < 1313299856 569684 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : Oh durr < 1313299858 695677 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : Gregor: s/256/255/ < 1313299893 774739 :Gregor!Gregor@codu.org PRIVMSG #esoteric :OK, now rather than crashing, it just doesn't work. < 1313299900 867432 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yay < 1313299917 548160 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So it just... < 1313299924 522668 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Does nothing? < 1313299925 672130 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Connection just hangs. < 1313299930 480007 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Geh >_< < 1313299935 431931 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It could be like one of a million things :P < 1313299950 377593 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm < 1313299952 167 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Ctrl+C < 1313299956 874585 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It'll tell me what it's hanged on ;-) < 1313300099 60289 :Nisstyre!~nisstyre@infocalypse-net.info JOIN :#esoteric < 1313300121 22466 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: http://sprunge.us/CNOC < 1313300152 73208 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm, oh dear < 1313300174 481043 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Either the guest and the host have a different idea of the protocol, or (I think this) the host was blocked reading from its connection? < 1313300189 162885 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Try it so that the socket the host is given gets written to < 1313300189 621537 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As in < 1313300190 212151 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Umm < 1313300192 665825 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is so ambiguous < 1313300194 326043 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Thought: If the guest select()s over its sockets, it will never recv. < 1313300196 156757 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Make the host's recv call return < 1313300200 122485 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ugh < 1313300203 645485 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You're right < 1313300210 241222 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I think the buffering strategy is strictly necessary >_> < 1313300215 743856 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Well, there is one other strategy < 1313300221 66421 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Threads in guest.py < 1313300239 680583 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That too. < 1313300245 606606 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: That's probably worse though < 1313300252 771282 :Gregor!Gregor@codu.org PRIVMSG #esoteric :s/too/alternatively/ < 1313300258 314701 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Idonno, they're both pretty awful. < 1313300270 175647 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Anyway, I'm not sure what this implies. The host would send the data to the guest as soon as it gets read? < 1313300281 858290 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Right now, the server only ever responds to queries, which makes things so much simpler. < 1313300311 13485 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The thread solution would just involve: one, threads; and two, a mutex of some kind so that writes don't overlap. < 1313300312 656224 :Gregor!Gregor@codu.org PRIVMSG #esoteric :This is sort of why I thought they should be the same; they both need to transfer data across the muxing connection as soon as possible for the other end to react properly. < 1313300340 20803 :Gregor!Gregor@codu.org PRIVMSG #esoteric :"They" = host and guest < 1313300349 326856 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :9-D < 1313300354 160738 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So what was that thing that does everything but opening the sockets < 1313300367 417401 :evincar!~jon@d-rev-bng-70-20-46-219.ngn.east.myfairpoint.net QUIT :Quit: leaving < 1313300367 948163 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Can we have: program is nothing or "replace" argument "with" argument program or "repeat" argument program "end" program or "in" argument program or "out" argument program; and argument is nothing or "head" argument or "tail" argument or "nand" argument "with" argument. It seems this fixed the problem of Constantinople. Is it? < 1313300386 293663 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: http://web.purplefrog.com/~thoth/netpipes/encapsulate.html < 1313300395 814699 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: But I'm still a bit confused by it, I'm not 100% sure that it's useful at all :P < 1313300441 395719 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :http://www.google.co.uk/search?sourceid=chrome&ie=UTF-8&q=Session+Control+Protocol < 1313300445 620907 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This does not seem to be a widely-implemented thing < 1313300460 179023 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also it came out of an HTTP working group, so it's going to be terrible and awful < 1313300475 936705 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Indeed, encapsulate seems to be the only program that ever implemented it. < 1313300486 872865 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Maybe that's a different SCP < 1313300490 556627 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Right bastards, convinced that HTTP is the end-all be-all of protocols. < 1313300491 654447 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Than the working group one, I mean < 1313300502 8455 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Didn't HackEgo just allow "full networking" but then firewall it all off? < 1313300505 204312 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Wouldn't that work? < 1313300514 430561 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Nope, same one. < 1313300520 407267 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Eh? < 1313300526 323657 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Same SCP < 1313300552 270064 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Yes, HackEgo just firewalled everything. That won't work because UML's "full networking" options all suck ass. < 1313300562 89255 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: They do? :-P < 1313300601 983502 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmmmmmm < 1313300618 259714 :Gregor!Gregor@codu.org PRIVMSG #esoteric :There's slirp, which is previously-discussed terrible, various things that only communicate between multiple UMLs, and a TUN/TAP-based protocol, which isn't going to work since that's a new host-kernel net device per guest. < 1313300623 30366 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I'm slightly worried that I'm tempted to say this solution is the wrong way seemingly just because it's become actual work for me < 1313300632 16258 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Which is not really good thinking < 1313300636 408637 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :"various things that only communicate between multiple UMLs" < 1313300641 987624 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :What if you used another UML with full network access < 1313300667 582651 :Gregor!Gregor@codu.org PRIVMSG #esoteric :... hmmmmm ... I hadn't investigated those options at all because they're so failury ... < 1313300675 175497 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It's horrible, but it might be easier. < 1313300679 847132 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(The just-multiple-UML-options that is) < 1313300683 497845 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Although I fear you'd have to end up doing the multiplexing yourself < 1313300686 515264 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also: "which isn't going to work since that's a new host-kernel net device per guest." < 1313300691 355133 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :TUN/TAP xreation is hardly expensive is it < 1313300698 406213 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :creation < 1313300723 249244 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Why can't UML do qemu's (horrible) userspace networking emulation? < 1313300755 202571 :Gregor!Gregor@codu.org PRIVMSG #esoteric :pikhq: Because it's not UML's, it's qemu's :P < 1313300768 662406 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :Gregor: The scheme should be general. < 1313300777 968261 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :If also a royal pain to implement. < 1313300786 956165 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The easiest way to get started with UML networking involves nothing special besides adding a switch to the UML command line. < 1313300787 136129 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The uml_net helper < 1313300787 219121 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :First, you need to make sure that the uml_utilities are installed on the host. You'll be needing the uml_net helper from that package. < 1313300787 291297 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Configuring an eth0 device < 1313300787 881426 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You can either < 1313300789 848062 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :specify eth0 on the command line: < 1313300791 846445 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :eth0=tuntap,,,192.168.0.254 < 1313300793 913657 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Enabling the device is exactly the same as any other Linux machine, except you'll likely do by hand at first for UML: < 1313300797 2042 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :UML# ifconfig eth0 192.168.0.253 up < 1313300799 19315 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* modprobe tun < 1313300800 898108 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* ifconfig tap0 192.168.0.252 netmask 255.255.255.255 up < 1313300802 885640 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* bash -c echo 1 > /proc/sys/net/ipv4/ip_forward < 1313300804 856416 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* route add -host 192.168.0.253 dev tap0 < 1313300806 861937 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* bash -c echo 1 > /proc/sys/net/ipv4/conf/tap0/proxy_arp < 1313300808 891090 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :* arp -Ds 192.168.0.253 eth0 pub < 1313300810 912574 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: this does not sound all that difficult < 1313300815 725047 :Gregor!Gregor@codu.org PRIVMSG #esoteric :pikhq: Especially so since it's based on slirp. And yet, fail. < 1313300857 266433 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: BTW: I feel like this might be easier with Xen, in the long-run, minus the pain that is Xen < 1313300861 70401 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It's easy enough to get running, but A) it requires a setuid-root binary, which I find terrible in general even if it works for me now and B) it's one host-kernel tap device per guest, which is just lame. < 1313300898 129329 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It's also about three hundred lines less work :P < 1313300916 794457 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But OK, do you want me to make host.py do the select and buffer thing? < 1313300935 549252 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Sowait ... doesn't encapsulate do everything we need? :P < 1313300960 369518 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(Other than the initial socket()s and bind()s) < 1313300968 881088 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You implied it didn't < 1313300974 445641 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It requires a client that supports SCP doesn't it < 1313300985 251801 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yes, namely encapsulate. < 1313300985 704770 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :australian music is proving to be very introspective < 1313300993 348992 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :thats our kick over here < 1313301020 44240 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I don't really understand how it works if it does not create the sockets < 1313301028 395379 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It can't just read other processes' fds < 1313301042 962562 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It gets passed in the FDs from the caller. < 1313301085 253743 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : server$ faucet 3001 --once --fd3 \ < 1313301085 983010 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sh -c 'while ~/src/netpipes4.0/encapsulate --fd 3 -so5i4 \ < 1313301086 55555 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sh -c "fname=`cat 0<&4`; echo \$fname; cat < \$fname 1>&5"; \ < 1313301086 55707 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : do true; done' < 1313301086 55812 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : client$ hose server 3001 --retry 10 --delay 1 --fd3 \ < 1313301087 698773 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sh -c 'while read fname; do \ < 1313301089 828501 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : ~/src/netpipes4.0/encapsulate --fd 3 -si4o5 \ < 1313301091 690775 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sh -c "echo $fname 1>&5; exec 5>&-; cat 0<&4" \ < 1313301093 615963 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : || break; done' < 1313301095 772186 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This guy really likes his programs < 1313301099 93054 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(faucet and hose are also fom that :P) < 1313301122 856836 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Weellllllllllll. Don't we already have 90 percent of what we need already < 1313301137 25937 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I mean, effort of figuring out encapsulate + the wrapper required vs. effort of a select() and some buffering < 1313301172 815266 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Idonno, you tell me, you're the one writing it right now X-D < 1313301189 153905 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: I was asking how much effort the former would take, 'cuz I'm not doing it < 1313301209 129352 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also netpipes looks very bitrotten: < 1313301209 291296 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : encapsulate.html 28-Oct-1998 15:39 13K < 1313301215 214284 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : netpipes-4.2-export...> 30-Jan-1999 12:09 74K < 1313301219 410376 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yowza < 1313301223 800110 :Gregor!Gregor@codu.org PRIVMSG #esoteric :That I didn't notice ... < 1313301232 392195 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Yeah, should probably continue without it :P < 1313301235 482565 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :netpipes (As of November 1998, version 4.2 is available) < 1313301243 237525 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :COPYRIGHT < 1313301243 486760 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Copyright (C) 1997-98 Robert Forsman < 1313301243 902579 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::P < 1313301265 172563 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: (Says the guy who's favoured networking tool was last updated two to three years before that) < 1313301284 286715 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK, can I have guest.py and host.py? :-P < 1313301316 30114 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric :elliott_: What, nc? < 1313301329 448957 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Yes. < 1313301334 583159 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net PRIVMSG #esoteric ::) < 1313301345 925625 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: curl http://sprunge.us/PWAL | sh < 1313301366 699504 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :X_X < 1313301370 389474 :Gregor!Gregor@codu.org PRIVMSG #esoteric ::P < 1313301405 28232 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK, here goes shit >_< < 1313301429 108798 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : sys.stderr.write(str(sockets.keys()) + "\n") < 1313301431 822025 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Y'can remove that now :P < 1313301438 988508 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Wait, how did we fix that < 1313301440 644489 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh right < 1313301441 649990 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I remember now < 1313301446 482570 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :BTW, that flush is redundant < 1313301449 753465 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And the whole thing could be a print :P < 1313301489 719488 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :!python filter(None, [9,None,0]) < 1313301493 857558 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :!python print filter(None, [9,None,0]) < 1313301494 447449 :EgoBot!Gregor@codu.org PRIVMSG #esoteric :​[9] < 1313301498 857172 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh god dammit < 1313301498 966617 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I don't know how to print() to stderr < 1313301502 379379 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Good enough < 1313301506 75596 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: print >>sys.stderr, ... < 1313301512 514746 :Gregor!Gregor@codu.org PRIVMSG #esoteric :And now I doooooo! < 1313301522 242052 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Python 2.x? < 1313301530 300759 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: Yes, aka the version everyone uses. < 1313301561 218693 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is it better < 1313301563 787561 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You're right in that the guest and host will look very similar after this... < 1313301601 843537 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Sooo ... mux.py :) < 1313301611 200763 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Well, I'll do host.py first, and then see :P < 1313301623 389635 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Or mudem.py! < 1313301718 917741 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Cows go mudem < 1313301888 278568 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK, this is sort of working out >_> < 1313301982 335553 :augur!~augur@c-71-57-177-89.hsd1.fl.comcast.net PRIVMSG #esoteric :elliott_: so < 1313301988 941148 :augur!~augur@c-71-57-177-89.hsd1.fl.comcast.net PRIVMSG #esoteric :hows life with the riots ey < 1313302002 221079 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :augur: i live in a small rural town < 1313302018 21032 :augur!~augur@c-71-57-177-89.hsd1.fl.comcast.net PRIVMSG #esoteric :oh? < 1313302026 663080 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :so, the answer is exactly as normal :P < 1313302071 288583 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Hmm, how do disconnections show in select()? < 1313302075 939879 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As a read or as an ~exceptional condition~ < 1313302083 908006 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I don't recall < 1313302095 595742 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ugh >_> < 1313302117 269291 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I seem to recall, however, never ever using the exceptional conditions buffer ... < 1313302143 94365 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Fair enough, then < 1313302166 396408 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Actually it shouldn't matter (much) < 1313302179 168531 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I love how my Python style involves NO OBJECTS EVER < 1313302184 627047 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Time to add another global hashtable < 1313302197 196455 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This can be cleaned up when it works >_> < 1313302211 156141 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Happily, the same protocol can be maintained < 1313302216 622510 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The host just does weird shit to maintain it < 1313302570 878320 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: OK. < 1313302573 442631 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I _think_ it might work. < 1313302578 765182 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I've tested it none, but hey. < 1313302598 272612 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: http://sprunge.us/CUiE < 1313302606 522292 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Dammit it's revealed my secret codename. < 1313302724 300371 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I would recommend actually importing sys if you intend to use it. < 1313302739 184110 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Erm < 1313302744 139170 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: It gets imported from host and guest, luckily < 1313302749 790773 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But yes good idea < 1313302801 212130 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It needs to be imported in common to run at all. < 1313302807 500462 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Python doesn't muddy namespaces like that. < 1313302822 532280 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Anyway, I'm back to the eternal nonfunctional wait. < 1313302828 513083 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yer kidding me < 1313302836 194729 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It uses select, that shouldn't happen :( < 1313302842 585527 :Gregor!Gregor@codu.org PRIVMSG #esoteric :http://sprunge.us/IagV < 1313302845 856323 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :If I wasn't too scared of how horrific the Python debugger was... < 1313302850 683804 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Is, presumably is, whatever. < 1313302852 928195 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Wait, is elliott_ facing the same problem I was once? < 1313302860 609831 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: What did you actually change < 1313302862 679000 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sgeo_: What problem < 1313302875 512471 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Globally accessible variable from multiple modules < 1313302879 293439 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :No < 1313302880 584527 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: import sys, global next_id in host.py:cmd_connect < 1313302885 773860 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Also, mux <<<<<<<<<<<<<<<<<<<<<<<< proxy-motown < 1313302896 658341 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Latter is unneeded < 1313302900 550341 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Because += is not the same as = + < 1313302901 945396 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As in < 1313302904 369748 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :next_id += 9 < 1313302906 34211 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :works < 1313302906 372586 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :but < 1313302908 451112 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :next_id = next_id + 9 < 1313302910 678473 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :wouldn't < 1313302917 553111 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is because Python < 1313302936 208303 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: This was not a "I'mma just write some shit" change, this was a "does not run" change. < 1313302944 576906 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Hmm < 1313302945 321696 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: next_id += 1 forced next_id to be a local. < 1313302947 168462 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Then Python changed :P < 1313302953 642711 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Python's scoping rules are as bad as you can possibly imagine. < 1313302955 247641 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :God I hate Python, but yeah OK. < 1313302961 96971 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Yes but I thought += operated on the object < 1313302964 500934 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Which made it work < 1313302966 202672 :Gregor!Gregor@codu.org PRIVMSG #esoteric :They make PHP's scoping rules look brilliant. < 1313303046 347294 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: So, OK, um. < 1313303052 349992 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You need to pause the program and print out some variables for me :-P < 1313303054 804395 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Actually hmm < 1313303056 977937 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :If you pass -i to python < 1313303061 697237 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Then Ctrl+C drops you at a REPL with all the variables < 1313303062 570537 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Why don't you run it :P < 1313303063 974284 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So you actually can do that < 1313303069 434502 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Because I have no socket servers to do it on >_> < 1313303083 472767 :Gregor!Gregor@codu.org PRIVMSG #esoteric :I'm just using dpipe and TCP. < 1313303096 674077 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Never heard of dpipe < 1313303099 245417 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, something from that vde thing < 1313303105 862023 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I guess netcat would work < 1313303107 966201 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It's totally non-vde-related. < 1313303117 951222 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: It's just a bidirectional pipe. < 1313303125 743855 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Right. < 1313303130 94919 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott_: Also, going interactive when your stdin and stdout are crazy protocol isn't useful :P < 1313303142 248490 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yes it is, because Ctrl+C stops the program < 1313303145 469953 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, I see < 1313303147 334473 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Right :P < 1313303148 687239 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sucks < 1313303149 662944 :Gregor!Gregor@codu.org PRIVMSG #esoteric :But now, I must go to sleep. < 1313303181 234824 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: Um wait < 1313303185 517326 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: You did tie the ends together, right? < 1313303192 702499 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Like, you did pipe guest.py and host.py properly :P < 1313303198 858912 :GreaseMonkey!~gm@unaffiliated/greasemonkey QUIT :Ping timeout: 258 seconds < 1313303763 942477 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net JOIN :#esoteric < 1313303770 831387 :pikhq!~pikhq@71-219-244-48.clsp.qwest.net QUIT :Ping timeout: 252 seconds < 1313304241 443102 :derrik!~xix@gprs-inet-65-6.elisa.ee JOIN :#esoteric < 1313304814 175793 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net QUIT :Remote host closed the connection < 1313304833 3491 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net JOIN :#esoteric < 1313304995 350651 :derrik!~xix@gprs-inet-65-6.elisa.ee PART :#esoteric < 1313305059 476310 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: NihilistDandy: HAHAHAHAHA I AM TAKING YOUR BELOVED HASKELL HOSTAGE < 1313305066 981044 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :WHEN I AM THROUGH WITH IT YOU WON'T HAVE ANY IDEA WHAT IT USED TO BE < 1313305082 741481 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I SHALL STRIKE INTROSPECTION THROUGH THE HEART OF THE THING!!!!!!!!!!!!!!!!!!!!!!! < 1313305094 822066 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :elliott_: ÞOU SHALT DIE I SHALL MAKE SURE OF ÞY DEAÞ. < 1313305106 95840 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :FOR ÞE ÞORN DEMANDEÞ IT < 1313305177 326208 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :HAHAHAHAHAHAHA YOU WON'T BE SAYING THAT WHEN YOU CAN BRING UP ANY OBJECT IN THE SYSTEM AND VIEW ALL ITS FIELDS AND MODIFY THEM FROM WITHIN ELLIOTTCRAFT < 1313305204 491267 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(YES THIS IS ACTUALLY USEFUL IT'S BASICALLY AN OBVIOUS EXTENSION OF THE GENERIC SERIALISATION MECHANISM + THE FACT THAT I NEED TO PRESENT MODIFIABLE DATA STRUCTURES AS FORMS, ANYWAY) < 1313305204 574524 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :... < 1313305216 392924 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :You frighten me sometimes. < 1313305220 142766 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(BASICALLY IT'S AS EASY AS WRITING A GENERIC FORM TO DISPLAY "A RECORD, ANY RECORD") < 1313305271 642350 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: OK but seriously it will be SO GOOD you have no idea. < 1313305281 108059 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I don't even need another typeclass to do the basic thing. < 1313305293 832061 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I can get a lens out of anything with a Data instance given a constructor and an index. < 1313305308 406308 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I can convert the field name "playerName" into "Player name" trivially. < 1313305318 553047 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :From that it's a simple matter of presenting it. < 1313305338 356761 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I do need one extra type class, so that you can specify overridden names, like "worldDir" should be "World directory", not "World dir". < 1313305351 631214 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And also so that you can specify how fields should be displayed -- i.e. what form component should be used to display them. < 1313305366 778496 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :For instance, the most appropriate control for the volume field is a slider. < 1313305371 55384 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :That doesn't mean you've stopped frightening me. < 1313305371 165301 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But for another it might be a text field. < 1313305386 493554 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :It just means you don't also make me murderous. < 1313305429 995350 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: Let's put it this way: If I don't write this code, I write an entirely new heap of GUI controls for every single form in the game. < 1313305452 587422 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And if I do write it, I also get debugging inspection of any object at all automatically. < 1313305455 945950 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Which will be useful. < 1313305501 153824 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :elliott_: I should note that Oleg also frightens me. < 1313305549 886058 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :This does not mean I *dislike* the things he has made. < 1313305644 320009 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: Anyway, my pain is already going to be quite fun, because I want GUI-ish widgets, obviously, for things like the chat box, configuration pages, blah blah blah. Now, I can't use GTK, one because of portability (it sucks on Windows and OS X) and two because... well, look, popping up normal-looking GUI widgets all over your game window looks horrible, no matter how "right" it may be. The same applies to any other generic UI toolkit, apart from may < 1313305644 568622 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :be Qt. Now, I know Qt can be "skinned" in a way that makes it integrate perfectly with a game's look because Hedgewars does it. Unfortunately, one: Qt sucks; two: I don't like Qt; three: I don't think there's any decent Haskell binding to Qt. Besides, a lot of GUI toolkits are ruled out anyway because they won't interact properly with OpenGL. < 1313305658 549181 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: So, basically... I get to code my own GUI widgets. From scratch. Using OpenGL. < 1313305708 253494 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Would it make you feel better to know that the Qt scheming mechanism is CSS? < 1313305730 547155 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I think I knew that, but yeah. Not sure I did. < 1313305734 897462 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :(probably not, because you're not going to want to use Qt, anyways) < 1313305739 919621 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: Still, there doesn't even appear to be a Qt binding on Hackage. < 1313305747 246424 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The wiki just points to http://qthaskell.berlios.de/ which doesn't inspire confidence. < 1313305756 758104 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: Qt is obviously not so much fun to bind because Haskell can't bind directly to C++. < 1313305757 847308 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Understandable. The impedence mismatch is huge. < 1313305765 278081 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :qtHaskell User Guide < 1313305765 527441 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :David Harley < 1313305765 610389 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Copyright © 2010 David Harley < 1313305765 683126 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, OK, it could be worse. < 1313305777 562838 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Could be Qt 2. < 1313305785 382838 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Or 1. Mmmm, nonfree. < 1313305786 75573 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :In two thousand and ten? < 1313305798 672362 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :No, I'm saying that in response to "could be worse". < 1313305801 372166 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ah :P < 1313305804 66860 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :http://qthaskell.berlios.de/doc/apiGuide/index.html ;; Meeeeeeeeh < 1313305812 524721 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'm quite happy writing my own widgets really < 1313305815 789190 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Only a complete, insane *moron* would deal with Qt 1 or 2 in 2010. < 1313305823 485372 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Why should you have to deal with Qt suckage when playing the perfect game ;-) < 1313305835 274855 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :... That API. < 1313305838 721730 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :*hurl* < 1313305843 529543 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It's a fair low-level binding < 1313305849 798300 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :No kidding. < 1313305851 201953 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But, well, it's a low level binding. < 1313305857 368506 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Wait, waht the fuck, why is it using typeclasses everywhere < 1313305861 658269 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Eh, I don't even want to know < 1313305863 693227 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, for C++ overloading < 1313305874 452343 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: It amused me that right-clicking a text input field in Hedgewars popped up a "regular" menu, but styled with its vaguely cartoony look. < 1313305894 134651 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: So it was offering me input methods and Unicode control character insertion inside a cartoony game interface. < 1313305919 401017 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :bsnes did an April Fool's release doing something similar. To imitate zsnes's UI < 1313305932 925401 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :(y'know, the UI designed for direct VGA access from DOS?) < 1313305934 804426 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I remember that < 1313305955 603282 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net PRIVMSG #esoteric :Shame it didn't get the pointless snow covered. < 1313305967 262373 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ZSNES has snow? < 1313305970 739686 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Best emulator. < 1313305983 490465 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i have zsnes < 1313305989 9359 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: You don't want it. < 1313305995 229327 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net JOIN :#esoteric < 1313305997 425594 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Get Snes9x :-P < 1313306005 796441 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :hmm < 1313306008 671230 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(Or bsnes, but I doubt you have the computer for that) < 1313306016 104708 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :lol < 1313306045 880955 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq_: Hmm, there's a slight problem with designing my own controls, in one area: I can't support X compose and the like. < 1313306055 24136 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i have always stuck with zsnes < 1313306068 766127 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :As in, the input method will just be... whatever I code, which is unlikely to make you happy if you type in anything that isn't English, because I'm not gonna bundle my own alt gr table or whatever. < 1313306070 865346 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :so, snes9x is the way to go? < 1313306084 737662 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: ZSNES is a very inaccurate emulator, and basically piles upon dozens of hacks to make any game work < 1313306090 90782 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It emulates even many popular games incorrectly < 1313306099 690662 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :but that gives it speed? < 1313306110 725708 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Snes9x is much better, it's not written in unportable assembly for one :P, and it's fast enough to run on anything ZSNES will nowadays. < 1313306110 958279 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Yes, in the same way that Windows 3.1 is fast. < 1313306133 969395 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Then I would suppose homebrew games are going to work even more incorrectly < 1313306134 813415 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Snes9x still has a bunch of hacks, but the only thing that doesn't is bsnes, which has basically completely accurate SNES emulation; you need a beefier CPU though < 1313306138 299340 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :In pretty much *exactly* the same way, in fact: ZSNES is a DOS-era program that got ported. < 1313306144 344228 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Sadly, many homebrew games _only_ work on ZSNES. < 1313306152 848313 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Because people test them on ZSNES rather than the real console, because it's much more convenient. < 1313306158 847979 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i don't have philosophical dilemmas about whether the opcodes of a rom are being emulated in a uniform way < 1313306159 41801 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So they end up relying on ZSNES' many emulation bugs. < 1313306169 387921 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: You don't care if your game runs wrongly? < 1313306178 557312 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: bsnes works just fine on my not-that-beefy system, though. < 1313306182 176058 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :if it has hacks in placeto make it work < 1313306186 597374 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :then i don't mind < 1313306187 747100 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: It isn't perfect. < 1313306190 1601 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Not by any means. < 1313306194 164246 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :ZSNES has noticeable emulation bugs in many popular games. < 1313306202 284367 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Anyway, Snes9x has a much nicer interface too, so you'll be doing yourself a favour. < 1313306210 559280 :pikhq_!~pikhq@71-219-220-245.clsp.qwest.net QUIT :Ping timeout: 240 seconds < 1313306216 139926 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(BTW, ZSNES isn't actively developed any more.) < 1313306227 143179 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Last commit was, what, 2003? < 1313306230 141926 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(Well, OK, they say it is, but it hasn't released for four years and development is private.) < 1313306238 391267 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Release in 2007 apparently, says Wikipedia < 1313306239 988459 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :s/Last/Last public/ < 1313306241 345543 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :which noticeable emulation bugs? i won't argue their signifigance.. but i am curious < 1313306249 959740 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Too numerous to list, unfortunately < 1313306267 158006 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :itidus20: http://byuu.org/bsnes/images/accuracy/harukanaru-incorrect.png < 1313306270 36350 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: You can see some of the ntoiceable effects in this article: < 1313306272 678805 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :http://arstechnica.com/gaming/news/2011/08/accuracy-takes-power-one-mans-3ghz-quest-to-build-a-perfect-snes-emulator.ars < 1313306281 828173 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(written by the bsnes author, with a bunch of screenshots) < 1313306299 419706 :Taneb!~Taneb@host-78-146-170-91.as13285.net JOIN :#esoteric < 1313306306 918285 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :pikhq: that is a pretty awful emulation in that screenshot < 1313306312 268250 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Morning! < 1313306320 883175 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :it did get the word Player right though < 1313306351 365376 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Taneb: you might want to check the logs for zzo38's Constantinople comments < 1313306357 540357 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: he put them on the wiki < 1313306359 457 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :what exactly makes snes so hard to emulate? < 1313306361 1278 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: But yeah, any ideas what to do with Unicode in my text input? < 1313306361 83628 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh < 1313306362 518648 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ok < 1313306374 450630 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Basically, the hardware has very precise timing. < 1313306378 764594 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :ahhhh < 1313306381 276294 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: You can't even synchronise everything at the instruction level. < 1313306389 612904 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You have to synchronise all the many different parts of it at the cycle level. < 1313306398 415365 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :itidus20: Additionally, the SNES has tons of processors to emulate. < 1313306405 45169 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Oh, and cartridges can literally include their own CPUs. < 1313306421 965904 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Yes, many, many popular games had their _own specialised processors_ on the cart. < 1313306423 810356 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :when i was growing up... i wanted a snes more than i wanted a girlfriend < 1313306430 444592 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :itidus20: this is normal < 1313306440 947878 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Some of them had a *better* processor than the SNES. < 1313306445 606317 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i mean.. i wanted it _BAD_ < 1313306454 821529 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :(SuperFX) < 1313306457 573712 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : pikhq: But yeah, any ideas what to do with Unicode in my text input? < 1313306463 934875 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i knew that this fucking device was going to be the best thing to ever happen < 1313306470 632543 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :and as time has told us.. it pretty much was < 1313306473 908852 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :hell, even now, I consider a companion to be "something nice that I'd wouldn't mind having" < 1313306508 286318 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: Uh, convert (lossily) to CP437? < 1313306515 525257 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: :P < 1313306525 867098 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: I can handle Unicode just fine, I'm just saying that all keypresses come in raw < 1313306533 172728 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Only processed to make the scancodes portable :P < 1313306533 506357 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I still prefer NES anyways, rather than SNES; not only the games (which include both homebrew games and offical games) but also the way the system works < 1313306534 488638 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i can't describe the sheer desire i had for a SNES < 1313306536 844662 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Yeah, I dunno. < 1313306548 21553 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: So alt gr won't work, compose won't work... I dunno how to let people input Unicode without making it a huge pain for me or bad for them < 1313306554 548865 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :like that nintendo 64 kid < 1313306560 173423 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :except i was older and i had no excuses < 1313306571 823590 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: Sounds utterly non-trivial with the current stack. < 1313306609 729059 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: Would be easy in not-too-long. All the keyboard handling is getting factored out into a library in the name of Wayland. < 1313306614 758098 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: I suppose I could parse XCompose files... but then most people don't use compose either, they use their locale-specific keyboard layout... which I suppose _will_ work here, because I think the keyboard layout is taken into account < 1313306617 572658 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It should be because I get a Char < 1313306626 224059 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But anything that involves pressing multiple keys together... nope < 1313306719 804179 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Oh well, I can't possibly do worse than Minecraft does Unicode < 1313306732 450760 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :"Doesn't"? < 1313306764 462366 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Well, it supports SEVERAL characters that also feature in Unicode! < 1313306777 985155 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :so is there a dynamic recompiling snes emulator? < 1313306782 323212 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Swedes, Finns and Norwegians may even find that their ENTIRE ALPHABET is available! < 1313306797 845368 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: The overhead required to synchronise everything would make that slower than the emulation approach < 1313306803 39636 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: Actually, only an approximation. < 1313306865 690372 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :how complex could it be though... does the SNES have anything that could resemble an abstract machine? < 1313306866 807686 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: CP437 lacks Ø and ø. < 1313306887 44840 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Woot :P < 1313306902 12847 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: It could be very complex, since there are multiple processors doing their job at once, with different clock rates, that are all communicating. < 1313306907 42859 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :And one of them is analogue. < 1313306910 71860 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :its basically about character blocks, sprites, rotations, controller input, calculations, and sound < 1313306913 835774 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :No, no it isn't. < 1313306923 120105 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: How long has bsnes been in development? < 1313306928 724509 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ah, seven years. < 1313306954 897366 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: If you want to learn what the SNES is "basically about", i.e. the abstract machine behind it, here's the product of seven years of research: http://bsnes.googlecode.com/files/bsnes_v081-source.tar.bz2 < 1313306974 906150 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: It's written for humans rather than for speed, so you should be able to discern all details of the abstract machine underlying the SNES from it. < 1313306977 177672 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :It'd probably take much less time to implement from scratch, though: much of that time was *obscene* amounts of research into the behavior of the system. < 1313306984 454594 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Note: This may be a much more difficult task than you anticipate. < 1313306995 414249 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :bsnes/snes/ is the directory you want. < 1313307007 968361 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :You'll note that it contains a Gameboy emulator by necessity. < 1313307029 961332 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i .. find the term i used abstract machine to be quite ugly now seeing it turned back on me < 1313307030 213798 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :wha < 1313307063 550730 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :coppro: One of the CPUs placed on a cartridge was a Gameboy. < 1313307077 153696 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i had a super gameboy < 1313307088 794170 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i was dissapointed when i discovered it wasn't portable though < 1313307088 960257 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: OK, now I really want to fashion some kind of cartridge output onto the playstation two. < 1313307111 600251 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Maybe it'll crush your SNES if you plug it in vertically, but bsnes would be FORCED to include a full cycle-accurate emulator!!!!!! < 1313307116 116747 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I wrote a Constantinople compiler completely except for the parser. Once the parser is written then it will be complete. < 1313307124 455321 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :it seemed obvious to me that the super gameboy would be handheld and also plug into the snes for a tv play.. but twas not to be the case < 1313307131 162659 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Yay! < 1313307148 559948 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :I've made the change to the spec yoou suggested < 1313307152 98410 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :i.e. the withs < 1313307162 978110 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes I saw that. Thank you < 1313307203 668661 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :I think constantinople manages to be human readable while still being really hard to work out what's going on < 1313307207 386744 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: I somehow feel that Elliottcraft is going to take an awful lot of infrastructure. < 1313307435 520728 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :pikhq: brilliant < 1313307446 871789 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :also holy crap I might still win this BN dynasty < 1313307549 735067 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :is blognomic any less boring than the last time < 1313307579 141610 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :when is "last time"? < 1313307591 11567 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :any other time in history < 1313307671 276404 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: The main problem with this generic introspection infrastructure is that I'm not sure how to structure the additional class I need without it being redundant with things already offered by Data. :/ < 1313307708 741675 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :...and that also isn't really brittle when you change the record but forget to change the instance. < 1313307734 306087 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott_: subclass actual Data? < 1313307781 541237 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: well yes, but the point is that I can't find a way to structure the needed typeclass _member_ in such a way that you can't accidentally fill it in and give inconsistent information to Data < 1313307791 271710 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: then no < 1313307791 627107 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :as in, I can't find out a way to guarantee that Data and this class don't contradict each other < 1313307822 149486 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm < 1313307833 946612 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: although this time it has relatively good gameplay, a defined victory condition, and several people all within reasonable distance of the end < 1313307877 522285 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: but does it still have that essential boringness < 1313307906 241669 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: hmm, I suppose I could just have "fieldInfo :: String -> Maybe (String,FormComponentLol)" < 1313307909 849878 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :where the string is the human name < 1313307917 958676 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :that's kind of gross though since what it really is meant to be is < 1313307929 118144 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fieldInfo :: FieldName a -> (String,FormComponentLol) < 1313307931 11641 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :with the clause < 1313307940 48204 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fieldInfo a = (humanify a, defaultformcomponentforitstype) < 1313307941 277262 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :at the end < 1313307946 249406 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :but you can't.... < 1313307947 205310 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :do that < 1313307996 574839 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: you'd have to decide that yourself < 1313308008 268960 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: so yes then :P < 1313308024 472662 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: If I'd said no, would you have believed me? < 1313308035 841099 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: maybe enough to load blognomic.com < 1313308249 262798 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :If it has a well-defined win condition, but does it have a well-defined end condition? Go has a well-defined win condition but not a well-defined end condition. < 1313308311 661165 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :nomics frequently end when there is a win < 1313308347 753962 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :either that, or they never end < 1313308365 422905 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :unless there's a total collapse < 1313308402 884999 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :This is what I have of the Constantinople compiler so far, it consists of two files: Constantinople.lhs = http://sprunge.us/NQQV Main.hs = http://sprunge.us/FKYe < 1313308440 358245 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i have this vague recall that agora shifted at one time from saying that a new game started when someone won, to saying that the game just goes on indefinitely < 1313308487 259024 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: Yes. < 1313308531 225092 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: < 1313308531 491881 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Rule 104/0 (Power=3) < 1313308531 719856 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :First Speaker < 1313308531 803257 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : The Speaker for the first game shall be Michael Norrish. < 1313308531 875789 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :[CFJ 1534 (called 8 March 2005): This does not mean that Michael < 1313308531 875978 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Norrish necessarily fills the position of Speaker at the present < 1313308533 515980 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :time.] < 1313308535 714742 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :[CFJ 2154: (called 8 September 2008) The Speaker for the first game < 1313308536 664996 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :(This program does work I have tested it.) < 1313308537 496001 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :shall be Michael Norrish.] < 1313308539 500560 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :History: < 1313308541 517762 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Initial Immutable Rule 104, Jun. 30 1993 < 1313308543 509988 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Mutated from MI=Unanimity to MI=3 by Proposal 1482, Mar. 15 1995 < 1313308549 59963 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oerjan: The only unchanged rule in Agora, 104/0, from the current ruleset. < 1313308569 789811 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :heh < 1313308593 319349 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Taneb: Can you look at my program tell me if it follows what you are thinking of? < 1313308600 468196 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That rule's last change is of adult age in many parts of the world. < 1313308631 736467 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Let's declare it a player. < 1313308654 133640 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Agora's an autonomous person as of shortly after its eighteenth birthday < 1313308662 892727 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It is ostensibly going to try and play BlogNomic at some point < 1313308745 415614 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Sooo... Elliottcraft main non-game todo list: Implement generic introspection and modification system for objects. Implement generic serialisation mechanism on top. Implement FRP-based GUI toolkit using OpenGL through GPipe. < 1313308794 320077 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :elliott_: No, just that rule. < 1313308810 285471 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Well... there's precedent... < 1313308929 759229 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Tell me if I did anything messy because I am not very good at Haskell and maybe some things I could have done in better way. I know the patterns of w_tail is not exhaustive but the specification of Constantinople doesn't say anything about that. < 1313308975 565652 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :elliott_: is the main problem with emulation really sound? i imagine that being that graphics are fixed at a framerate it's much easier to handle them < 1313308977 382736 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: you don't need the ; at the end of every line < 1313308981 108966 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :it's unidiomatic < 1313309002 698282 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :itidus20: The main problem is everything. < 1313309022 936063 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Though, amusingly, the sound is one of the *easier* bits to emulate. < 1313309024 880029 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Sound is a major problem because of the latency guarantees and the fact that it's partly analogue on the SNES. But... the main problem is synchronisation, and emulation at the cycle level. < 1313309033 671800 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Wait, you make compilers for people if they just ask you? < 1313309044 443290 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Doesn't look like a compiler to me. < 1313309049 788695 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :elliott_: It is not at the end of every line. Although the reason is I use nonlayout style so I put ; at the end of every line. < 1313309050 35587 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Oh sorry, interpreter < 1313309058 95218 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Why non-layout < 1313309073 24992 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :in other words.. i simply cannot imagine that you need a 3ghz pc to produce a 640x480 frame in 2d at 60fps < 1313309076 575140 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Everything you have there would work identically if you removed the two {}s and the semicolons < 1313309092 832542 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: It isn't just displaying frames < 1313309093 993706 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i know its not 640x480.. i don't know what it is though < 1313309094 869908 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :elliott_: It is a compiler. It is just incomplete because the parser is not written yet. And then you can ghc Main.hs < ConstantinopleProgramCode and it compile into the executable file. < 1313309103 377171 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: It's emulating many, many systems < 1313309109 12120 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I just prefer nonlayout. < 1313309110 45529 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Oh, okay. < 1313309128 171615 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Well, you don't have to use layout just because it's enabled. < 1313309138 75983 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The only affect it'd have would be to let you elide the semicolons. < 1313309138 173675 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :hummmmmmmmmmmmm............. ok < 1313309166 773370 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I find nonlayout clearer actually... < 1313309180 336444 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well, OK. It's not very idiomatic, though. < 1313309238 802014 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is there anything else wrong other than the semicolons? < 1313309251 958048 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Not that I can see. < 1313309258 496789 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: you also forgot that Agora is actively playing itself < 1313309267 238281 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: It is? < 1313309274 17703 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I know I don't need "deriving Show" for Memory but I put it there for debugging purpose. I can remove it when it is finished. < 1313309278 380464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Although another unidiomatic thing is using _s as a suffix < 1313309278 718124 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: yes < 1313309301 788298 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :elliott_: well, it's amazing how difficult emulation proves to be... it's counter-intuitive < 1313309306 439501 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(Generally camelCase is preferred to separate words, but under_scores aren't unheard of; but as a suffix it's very unidiomatic, especially as it can be confusing (f'_ looks like the function f' with the pattern _ to me)) < 1313309326 913270 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: someone made a rule saying that agreements intending to be persons are persons. Then someone made a rule saying that Agora intends to be a person. Then someone proposed that Agora register IIRC < 1313309337 385628 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :O, OK, I didn't know that. I put the _ suffix to prefer conflict with reserved words and imported words. < 1313309340 626647 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: Fair enough < 1313309347 513333 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :s/prefer/avoid/ < 1313309356 527642 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :(on the basis that Agora is effectively an agreement to play by its rules) < 1313309371 104593 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What can you suggest I change it to? < 1313309406 836811 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Well, "out" isn't in any of those packages AFAIK and it isn't a keyword... but I'd just try to rename them, mostly. I'm not sure what repeat_/repeat'_ do, so I can't really offer advice < 1313309420 510319 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :You should probably use where clauses for your foo' functions, though < 1313309438 277885 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :The repeat_ does the "repeat" command of Constantinople. < 1313309467 667482 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Ah < 1313309471 998362 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK how should I use where clauses? I don't know much about where clauses < 1313309474 412138 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'd prefix every command, say cmd_repeat < 1313309482 390950 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK. Thanks < 1313309499 944224 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: where clauses look like this: < 1313309501 29331 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :grr stupid metroid prime game < 1313309501 530812 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :foo :: a -> b -> c < 1313309501 697193 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :foo = foo' 0 < 1313309501 780453 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : where foo' 0 a b c = ... < 1313309501 852714 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : foo' n a b c = ... < 1313309505 598749 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :and stupid achievements < 1313309508 314086 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Presumably add a bunch of {}s and ;s for ugly non-layout :P < 1313309508 397170 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :achievements suck < 1313309511 635532 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :why am I a perfectionist < 1313309552 419760 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :zzo38: Basically, foo' there is restricted to the scope of foo's body < 1313309564 38094 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :elliott_: this reminds me of what carmack was saying about optimization. that optimized code becomes brittle and fragile. and as we can see snes software is so tightly bound to the snes hardware configuration that it can even strain a 3ghz cpu to replicate it. amazing < 1313309564 433496 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It helps you show that certain definitions are only used in the body of foo < 1313309589 742062 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes I can see it is not used anywhere else, things like "foo'" used only in the definition of "foo" < 1313309598 167166 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :itidus20: Yes; later hardware like the Nintendo 64 had a much more well-defined and concrete API, so it is simpler to emulate; one can simply emulate the API, rather than every single piece of hardware at the lowest level. < 1313309612 315303 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :ironic :D < 1313309615 940889 :Taneb!~Taneb@host-78-146-170-91.as13285.net QUIT :Remote host closed the connection < 1313309632 675995 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :ironic in that their own API left them vulnerable to emulation < 1313309664 839187 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :"Vulnerable" seems the wrong word < 1313309697 11872 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK, I can try to use where clauses < 1313309757 731369 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :perhaps the trick to avoiding piracy is making something impossible to emulate < 1313309779 755193 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :no, there is no way < 1313309793 734964 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :you can't avoid piracy < 1313309810 709354 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :except by having a peripheral that' svery expensive, so you have to buy that or not enjoy the game < 1313309825 307802 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :think that mech game with the console of 30 different buttons (steel battalion?) < 1313309830 439699 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Making it impossible to emulate probably won't help a lot, it just makes it more difficult to write software for instead < 1313309852 974708 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :suppose that you made a powerful hardware configration even more convoluted than the SNES... and wrote games for it in a way that it depended heavily on the hardware < 1313309880 876442 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Sega Saturn < 1313309883 52303 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :well i suppose piracy would still happen < 1313309884 767164 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Actually has anyone bothered to emulate that yet < 1313309887 253763 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :OK, I made it use where clauses now. < 1313309889 250381 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :(no because it was a failure) < 1313309895 993058 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :And I renamed them to use cmd_ prefix instead of _ suffix < 1313309920 670843 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :piracy would still happen because then the console itself becomes the weak point < 1313309933 873128 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :once you have the console you can copy all of the softwares < 1313309950 87878 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :PatashuWarg: yes < 1313309961 684456 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :PatashuWarg: things much more esoteric have been emulated < 1313309966 25787 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :ever heard of a WonderSwan/ < 1313309972 868911 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :No? Good. Neither have I. < 1313309975 796777 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :is that like a neogeo? < 1313309986 386644 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :wonderswan was a competitor to the gameboy < 1313309988 267582 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :where's my n-gage emulator < 1313310005 532196 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :it was made by the same guy who designed the gameboy < 1313310029 157481 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t gmapQi < 1313310030 564850 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall u a. (Data a) => Int -> (forall d. (Data d) => d -> u) -> a -> u < 1313310050 651994 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What you have to do to avoid piracy is to make one arcade where you can play the game only there, you cannot get a copy of the software or go elsewhere to play game. However it makes it you will not get paid as much. With more piracy possible it actually means you can potentially get paid more, regardless of the actual amount of piracy. < 1313310099 609543 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :your site's navigation fails when: I can find the page I want faster with Google < 1313310106 921839 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :and another problem with rigid privacy prevention systems is that it prevents people who really can't afford it from playing your works < 1313310130 711952 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Yes; which also means they cannot recommend it to someone who is able to pay for it. < 1313310160 104374 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: that's probably true of almost every site design < 1313310184 454497 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :where's my n-gage emulatort < 1313310187 536054 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :whoops < 1313310191 775111 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :no but seriously. where is it < 1313310199 999282 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I don't know < 1313310217 869309 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :the n-gage threads on gamefaqs were hilarious < 1313310218 744359 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :good times < 1313310221 221317 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :zzo38: but it makes a good excuse for sueing people and raising prices < 1313310240 228170 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: So, your package manager. < 1313310269 183461 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: that it is faster to navigate by google? < 1313310274 748329 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: Yes. < 1313310295 11754 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: I suppose, but some try harder than others < 1313310326 261313 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: Perhaps site headers should just include a big fat "search with google" box and then a link to a sitemap. :p < 1313310340 456962 :Taneb!~Taneb@host-78-146-170-91.as13285.net JOIN :#esoteric < 1313310410 627647 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :k, I'm pause-scumming this < 1313310739 874326 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I will sleep today and will try to figure out how to write the parser tomorrow. < 1313310756 71387 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Okay < 1313310783 950234 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com QUIT :Quit: (In addition, remember Dangelo project if anyone has more ideas about it or responses to what I have added to its wiki) < 1313312299 562712 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake QUIT :Read error: Connection reset by peer < 1313312373 23677 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1313312641 704356 :sebbu2!~sebbu@ADijon-152-1-3-131.w83-194.abo.wanadoo.fr JOIN :#esoteric < 1313312641 802459 :sebbu2!~sebbu@ADijon-152-1-3-131.w83-194.abo.wanadoo.fr QUIT :Changing host < 1313312641 874527 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1313312726 110095 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 264 seconds < 1313312726 292261 :sebbu2!~sebbu@unaffiliated/sebbu NICK :sebbu < 1313312738 496875 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1313312846 835157 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1313312888 802376 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net JOIN :#esoteric < 1313312979 526250 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :instance Fields Config where < 1313312979 688945 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : data Field Config t where < 1313312979 807255 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : F_Config_Volume :: Field Config Int < 1313312979 880160 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : F_Config_PlayerName :: Field Config String < 1313312979 880307 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : F_Config_WorldDir :: Field Config FilePath < 1313312980 485601 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : fields Config{} = [F_Config_Volume, F_Config_PlayerName, F_Config_WorldDir] < 1313312982 466060 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : fieldInfo F_Config_Volume = FieldInfo "Volume" volume < 1313312984 431682 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : fieldInfo F_Config_PlayerName = FieldInfo "Player name" playerName < 1313312986 569506 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric : fieldInfo F_Config_WorldDir = FieldInfo "World directory" worldDir < 1313312988 526005 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: BEHOLD MY UGLY. < 1313313344 484055 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :ewwwwwwwwwwwwwwwww < 1313313427 692560 :augur_!~augur@c-71-57-177-89.hsd1.fl.comcast.net JOIN :#esoteric < 1313313438 711219 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1313313443 347372 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: To be fair, the underscores were only because I expect this to be generated, so I'm basically mimicking a computer by being as mechanical as possible. < 1313313451 197692 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The actual API is fairly elegant. < 1313313485 387871 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: you expect me to treat you seriously after you whipped your ugly out in public like that? < 1313313495 760896 :augur!~augur@c-71-57-177-89.hsd1.fl.comcast.net QUIT :Read error: Connection reset by peer < 1313313513 764586 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :coppro: It's a free country. < 1313313568 259130 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :elliott_: that's what they want you to think < 1313314889 681958 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t find < 1313314890 739096 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. (a -> Bool) -> [a] -> Maybe a < 1313314898 613324 :augur_!~augur@c-71-57-177-89.hsd1.fl.comcast.net NICK :augur < 1313314905 175279 :FireFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1313314909 26750 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric ::t findBy < 1313314910 217242 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `findBy' < 1313314912 834189 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :grr < 1313314914 779798 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :?hoogle findBy < 1313314915 645483 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No results found < 1313314930 450410 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :findBy? < 1313314931 202022 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :erm find is already "By" < 1313314937 450327 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :oh right < 1313314938 345636 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :im dumb < 1313315048 590207 :coppro!~scshunt@denardo.csclub.uwaterloo.ca PRIVMSG #esoteric :woot finally < 1313316356 976513 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Out of interest, have you ever used SIGPOLL? < 1313316385 548016 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, hmm, it seems like aio.h is the new thing. < 1313316387 411557 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :(Does musl have that?) < 1313316512 29351 :nooga!~nooga@maverick.aircity.pl JOIN :#esoteric < 1313316584 577984 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Seems not. < 1313316601 748753 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, hmm, it's in -lrt. < 1313316872 311673 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :pikhq: Ello. < 1313316958 622722 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I vaguely recall that glibc's librt aio_blah implementations do a (mostly) POSIX implementation of aio in userspace (presumably with threads), instead of using the kernel's "native" asynchronous IO interfaces. But maybe that's been improved. < 1313317056 905576 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :http://www.kernel.org/doc/man-pages/online/pages/man7/aio.7.html "The current Linux POSIX AIO implementation is provided in userspace by glibc.This has a number of limitations, most notably that maintaining multiple threads to perform I/O operations is expensive and scales poorly. Work has been in progress for some time on a kernel state-machine-based implementation -- but this implementation hasn't yet matured --" < 1313317064 701319 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I don't even have such a manpage, but anyhows. < 1313317094 877931 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I have an aio_read manpage. < 1313317100 517745 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :But that sounds crappy. < 1313317108 64967 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :The SIGIO type approach seems to be the best. < 1313317113 859678 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I have one for the functions too, but not for "aio" in section 7. < 1313317130 930195 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :With fcntl(fd, F_SETSIG, signum) apparently you can even set it to a realtime signal, which I suppose creates MAGIC. < 1313317238 948239 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Not terribly portable, is it? < 1313317316 56339 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Well... not as such, no... < 1313317338 80253 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: But as long as it works on Linux and is the fastest possible way to do IO without writing it in the kernel, I'm agme. < 1313317351 634230 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Let's code BEER that emulates Linux syscalls on Windows < 1313317367 298399 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :WINE emulates the API, not syscalls. < 1313317376 290149 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Cygwin is pretty much the exact same thing as WINE, but without the ABI translation. < 1313317384 156546 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Oh yeah, cygwin < 1313317388 205747 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :gelfload handled the rest I think -- ask Gregor < 1313317390 61180 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Thanks for reminding me it exists < 1313317398 172464 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :PatashuWarg: Don't thank me, Cygwin is terrible < 1313317400 803112 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :elliott_: You could consider the Linux-native syscalls, which do have library wrappers: see "man io_setup" + io_submit + io_getevents + io_cancel + io_destroy. < 1313317403 360750 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Pfflol < 1313317429 548187 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :(That's what the future aio_blah functions are going to be implemented in, if it ever happens.) < 1313317444 905431 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Oh, "glibc does *not* provide a wrapper function for this system call". < 1313317456 344675 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Weeell, the advantage of the signal approach is that you can avoid pretty much all the kernel<->userspace and polling/blocking overhead, right? < 1313317460 326851 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Because it's "hey, you call me". < 1313317463 241426 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :There's a libaio and somewhere. < 1313317473 143584 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Not that I've even man'd those named ones, but they look suspiciously like the other, slower kind. < 1313317515 90727 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :...How about MEAD that does... um... < 1313317524 286804 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :Mac OS? < 1313317527 851859 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :BSD? < 1313317535 45047 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Taneb: Emulates the QNX API on Movitz? < 1313317551 680906 :oerjan!oerjan@tyrell.nvg.ntnu.no QUIT :Quit: Good night < 1313317820 640332 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Well, it's... asynchronous. It's not really relevant how it reports completion. There's still exactly the same amount of kernel-to-userspace copying going on. I mean, for POSIX aio, you can just set your struct aiocb's aio_sigevent to SIGEV_SIGNAL to get vaguely SIGIO-stylish "notice by signal when finished" behaviour; it's just non-natively implemented at the moment. < 1313317836 52841 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I don't know how the kernel's AIO interfaces do it, they seem a bit too work-in-progressy too. < 1313317878 371156 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :But SIGIO doesn't really get you any sort of asynchronous IO, you just get signals when you can read/write, right? < 1313317899 923059 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :back < 1313317918 935687 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Well, hmm < 1313317927 470863 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I'm getting all these methods mixed up < 1313317939 315775 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1313317995 492640 :Taneb!~Taneb@host-78-146-170-91.as13285.net QUIT :Ping timeout: 260 seconds < 1313318001 719469 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Yeah, that does indeed seem to be true. I was hoping that you could tell the kernel "here's a buffer; here's the number of bytes I want; send me a signal when you've filled it". < 1313318051 292158 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Probably the Linux syscalls are the best way, then. < 1313318101 764726 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It looks like they're edge triggered, which propaganda tells me is good. < 1313318142 811873 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: I'll probably avoid libaio because of all that, you know, overhea.d < 1313318144 628368 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :overhead. < 1313318189 15818 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I must say that I find these syscalls' documentation of their input formats to be lacking. < 1313318242 651081 :Taneb!~Taneb@host-78-146-170-91.as13285.net JOIN :#esoteric < 1313318275 232486 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Yes, it seems to be quite sukcy. < 1313318292 707820 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Also http://lse.sourceforge.net/io/aio.html says it doesn't really work in most cases. < 1313318323 787498 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :"AIO read and write on sockets (doesn't return an explicit error, but quietly defaults to synchronous or rather non-AIO behavior)" < 1313318327 547852 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :OK, well that's fucking useless then. < 1313318346 34358 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I can't quite believe that there's no kernel asynchronous IO for sockets. < 1313318375 348562 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Only for raw devices and O_DIRECT files on some filesystems; it seems that it's been implemented according to database folks' requirements. < 1313318421 31191 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :"Asynchronous I/O on linux or: Welcome to hell." Well, that's a nice-sounding title. < 1313318431 354891 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Nice < 1313318438 152199 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, that's the page I was reading < 1313318455 908144 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Unfortunately POSIX AIO on linux is implemented at user level, using threads! (Actually, there is an AIO implementation in the kernel. I believe it's been in there since sometime in the 2.5 series. But it may have certain limitations - see here - I've yet to ascertain current status, but I believe it's not complete, and I don't believe Glibc uses it). < 1313318467 564461 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Also apparently the POSIX API is crazy. < 1313318590 263148 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Yes, that's not too surprising. < 1313318611 155125 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So, um, there is _no_ actual asynchronous IO on sockets for Linux?? < 1313318612 272715 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :This is insane. < 1313319135 837976 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Is... that right? I mean, I could be misreading... < 1313319182 362389 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :It seems to be mostly right. I don't think very much work is going on with the kernel-side aio mechanism; there's a lot of stuff from ~2007 or so, but haven't seen any real news. < 1313319190 135680 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Well that's crap. < 1313319194 965476 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :What do the BSDs have to offer, I wonder ;-) < 1313319273 939159 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :They have the POSIX AIO api in their libc, I believe. No guess on lower-level implementation details. < 1313319302 835605 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So I suppose the Most Asynchronous you can get is either epoll or SIGIO plus blocking reads. < 1313319306 293702 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :That's... super lame. < 1313319460 156439 :nooga!~nooga@maverick.aircity.pl QUIT :Ping timeout: 258 seconds < 1313319541 4953 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :My guess is that they've just given up implementing it in the kernel, since everyone seems to be doing networking just fine without it (with worker-thread pools and so on); and it works for direct-file IO because database people have been more interested. < 1313319541 503181 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :It may even be the: super-lamest. < 1313319555 428444 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Well yeeeeeees, but where's the fun in threads? < 1313319596 542000 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :I wonder whether the SIGIO-type dealie set to a realtime signal or epoll is more OPTOMIZED. I suspect the answer is "the former, but signal handlers are so restricted that the infrastructure you need makes it as slow as the latter". < 1313319641 93211 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :epoll's supposed to scale well for a large number of watched descriptors, at least. < 1313319948 411663 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Still, it's distinctly unsatisfying... you have to fork off or spawn a thread or _something_ if you want to be reading and writing to it. Or, hmm, I wonder if I could make it O_NONBLOCK? < 1313319993 935860 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I'm not sure how that'd help; I mean, epoll already tells you when it's safe to read/write some without blocking. < 1313320020 236668 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Oh, well, dur. < 1313320045 603995 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Maybe I'll just run Synthesis in a Motorola CPU emulator. That's practical, right? < 1313320148 35555 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Incidentally, I'm not even sure what you're doing. < 1313320177 238256 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :elliott_: bonus points if the motorola cpu emulator needs to be run in a PowerPC emulation < 1313320195 386325 :nooga!~nooga@maverick.aircity.pl JOIN :#esoteric < 1313320237 96162 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: Well, that's because I didn't tell you. Basically I'm hoping that minimalism will help me overcome the unrealisticness of hubris. < 1313320246 55759 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :What I'm saying is I'm trying to write the fastest server possible but it doesn't have to do much. < 1313320327 993110 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :There's the Linux-only trick for playing around with splice/vmsplice to do no-userspace-copy socket-to-socket or file-to-socket (though for the latter there's the far easier-to-use sendfile, of course) stuff you can do if you pretend to be interested in performance, but that's not appilcable if what you're feeding is locally programmatically computated stuff. < 1313320347 908181 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :APPIL CABBEL. < 1313320373 592518 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :fizzie: It's read from socket -> process -> send directly back from filesystem. < 1313320417 541352 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :So ostensibly, epoll, process as efficiently as possible, sendfile, repeat. < 1313321042 967852 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net QUIT :Quit: hello < 1313321066 798107 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Gregor: BTW, what's with the srand random in umlbox? < 1313321394 535772 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Based on a glance, it looks like it wants to give a different seed for each handleRun-forked process. < 1313321453 254889 :elliott_!~elliott@95.149.230.11 PRIVMSG #esoteric :Heh :P < 1313321711 297382 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Funnily, if it were a "use given seed directly as if it was the last output, no state larger than the returned value" RNG, srandom(random()) would be just as useful as a single random() and would just start each process one value later in the sequence. But random() has a large table of state and presumably does something else. < 1313321729 982047 :elliott_!~elliott@95.149.230.11 QUIT :Read error: Connection reset by peer < 1313321732 96001 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1313322070 16255 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :`run echo -e '#include \n#include \n int main(void) { int i,j; char states[4][128]; for(i=0; i<4; i++) initstate(random(), states[i], 128); for(i=0; i<4; i++) { setstate(states[i]); for(j=0; j<6; j++) printf(" %ld",random()%100); printf(" -"); } return 0; }' | gcc -xc -o ./tmp.tmp - ; ./tmp.tmp < 1313322072 522883 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :98 75 6 22 99 12 - 24 54 86 60 0 74 - 36 83 15 19 16 6 - 50 3 47 38 76 55 - < 1313322081 51745 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Seems to create quite independent-looking sequences. < 1313322591 951235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: So have I mentioned that @ has no kernel<->userspace overhead at all and so its IO model is simple and fast because, and I don't think everyone quite knows this yet, < 1313322595 419329 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :@ IS THE BEST FUCKING THING EVER < 1313322679 747920 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :`run echo -e '#include \n#include \n#include \n int main(void) { int i,j; unsigned short states[4][3]; for(i=0; i<4; i++) { unsigned long long u=drand48()*pow(2,48); states[i][0] = u; states[i][1] = u>>16; states[i][2] = u >> 32; } for(i=0; i<4; i++) { seed48(states[i]); for(j=0; j<6; j++) printf(" %ld",lrand48()%100); printf(" -"); }}' | gcc -xc -o ./tmp.tmp - ; ./tmp.tmp < 1313322682 377374 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :18 95 86 66 96 89 - 95 86 66 96 89 21 - 86 66 96 89 21 12 - 66 96 89 21 12 46 - < 1313322691 631702 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :That one's not so clever. < 1313322711 17008 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :(If you go to the trouble of actually extracting the internal 48-bit state, anyway.) < 1313322742 889643 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Enjoying yourself, are we < 1313322748 957457 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :But of course! < 1313322756 853809 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Butt, of course. < 1313322781 309778 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You should ask me to explain how @ avoids ALL kernel<->userspace overhead and therefore can do IO perfectly in every direction and whichway because yes?????? < 1313322785 29023 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :EVERYONE SHOULD ASK ME THAT < 1313322854 855167 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'll ask you when you've implemented it < 1313322885 189486 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I've seen you blab something about not having any kernel/userspace split at all because everything is oh-so-safe whee, I just, you know, assumed. Also what he said. < 1313322911 594852 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'm working on that, dude :P < 1313322930 862340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's not like there's any amazingly hard problem I have to solve to implement it < 1313322945 205299 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's just that there's a bunch of things I haven't fully specified yet that affect the design of other components in a major way < 1313323016 607525 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: But you're free to help, if you're so eager to see it implemented :-) < 1313323072 971942 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Other than getting yourself motivated < 1313323126 793066 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm perfectly motivated to write @, but I don't see the point in starting on an implementation that I know will fail (in a much stronger sense than "build one to throw away") < 1313323129 609798 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :Deewiant is lazy functional. < 1313323881 581680 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1313324098 684662 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :`addquote Maybe if you try diplomacy. Pointy steel diplomacy < 1313324100 393287 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :593) Maybe if you try diplomacy. Pointy steel diplomacy < 1313325437 484840 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is it possible to run Firefox with a different layout engine? < 1313326202 643036 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Why do I always end up with a bunch of functions with 8 or more parameters < 1313326205 938797 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :It used to be possible to run some version of Netscape (8?) with IE's "Trident" engine on Windows. < 1313326258 439900 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: In which language < 1313326265 312898 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :In all languages < 1313326268 192956 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :In this case, C < 1313326285 845105 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If C: Because you don't have enough structs, or aren't separating things out into separate initialisation procedures < 1313326297 999971 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If Haskell: Because you fail at building combinator libraries < 1313326310 600484 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What do you mean by initialisation procedures < 1313326426 307335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, that wasn't very explicit, I just mean that instead of doing an entire operation as one atomic procedure, you can factor it out into initialising a state, repeatedly applying some action to it, and then destructing it < 1313326439 977385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :If that doesn't make any sense, then it's not the right advice for the situation :-P < 1313326514 347929 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What procedure is it, anyway < 1313326533 184752 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's not a "procedure", it's "a bunch of functions" < 1313326544 840565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, what's the one with the most parameters :-P < 1313326586 621971 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Let's see, it's probably the one that wishes it were a nested function < 1313326600 180340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Questioning your API design at this point < 1313326625 818323 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hey, my public API is minimal < 1313326668 169919 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What is it :-P < 1313326677 299087 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What it < 1313326684 391864 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :A third-person neuter pronoun < 1313326685 513257 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Your public API, I'm being a horrible sceptic < 1313326694 533678 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :But that's not important < 1313326749 841640 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Taneb: Why'd you give a peasant a fancy bed anyway < 1313326762 226944 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :allocate(void*, stats*) free(space*) get(space*, coords) put(space*, coords, cell) load_string(space*, char*, size_t, coords, coords*, bool) modulo names/const/etc < 1313326766 810147 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :I did? What? < 1313326775 666789 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :+ the cursor stuff I haven't done yet < 1313326787 609064 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: load_string is strictly superfluous ;-) < 1313326813 153893 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well, depends on how you define "minimal" < 1313326840 655250 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :free is also strictly superfluous :-P < 1313326862 349125 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If you're going to be all performance-minded like that, you should at least offer a way to get/set in bulk :P < 1313326873 733047 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like "copy this two-dimensional array in/out" < 1313326881 68336 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh yeah, I do < 1313326893 200682 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I forgot about those, they're not in the .h yet < 1313326899 127658 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm a genius < 1313326919 438629 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :I'm a genus < 1313326926 951505 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or, even better, the required wrappers aren't in the .c either < 1313326931 90154 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Show some fun internal function signatures then :P < 1313326988 274913 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But, uh, those would look like map(coords, coords, void(*)(cell*, size_t, stats*)) and map_no_alloc(coords, coords, void(*)(cell*, size_t, stats*), void(*)(size_t)) I think < 1313327009 798694 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: That's... not the most efficient API I can think of :P < 1313327022 306043 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Do tell < 1313327031 956031 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Weeeeeell, I have a natural aversion to function pointers < 1313327040 737835 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'd just make it take a pointer and have it basically be a blit < 1313327050 79070 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I have a natural aversion to copying when it's not necessary < 1313327053 638126 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sure, you end up "iterating twice" if you're going to for over it afterwards, but the constants are low < 1313327065 494942 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You might be doing a search or whatever < 1313327066 349585 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You don't need to copy if it's contained within a region boundary < 1313327091 609587 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You'd have it return the pointer? < 1313327103 669244 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :In any case, that requires copying in the general case :-P < 1313327121 700981 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Yeah; and so what, just say "This will be slow unless [conditions]" ;-) < 1313327131 840696 :Gregor!Gregor@codu.org PRIVMSG #esoteric : Gregor: BTW, what's with the srand random in umlbox? // I only use the randomness within a fork(), so if I don't reseed it before every fork, I'll get the same random numbers every time. < 1313327142 622867 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'd rather say "this will be fast always" < 1313327161 366209 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Right. < 1313327222 358356 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You still haven't supplied any internal signatures ;-) < 1313327229 386191 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :WE WILL FIND OUT < 1313327230 79449 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ONE WAY < 1313327230 509149 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OR < 1313327231 90148 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ANOTHER < 1313327259 812872 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :static bool mushspace_newline(bool*, mushcoords*, mushcoords, mush_aabb*, size_t, size_t*, size_t*, mushcoords, size_t*, uint8_t*); < 1313327267 696141 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :As I thought < 1313327273 227186 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The one that wants to be nested < 1313327349 251233 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gross, remind me to put shiro-lahey on Hackage before you get that out < 1313327367 747345 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Generalised N-dimensional Lahey spaces with an efficient unboxed representation" < 1313327373 590847 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :People might even mistake it for something useful < 1313327390 345726 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I have a macro for calling that < 1313327396 436979 :derrik!~xix@gprs-inet-65-59.elisa.ee JOIN :#esoteric < 1313327405 986638 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Why are there four size_ts? < 1313327418 545274 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :static bool mushspace_newline( < 1313327418 675314 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : bool* got_cr, mushcoords* pos, mushcoords target, < 1313327418 747744 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : mush_aabb* aabbs, size_t aabbs_len, size_t* a, size_t* max_a, < 1313327418 747923 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : mushcoords last_nonspace, size_t* found_nonspace_for, uint8_t* get_beg) < 1313327473 96332 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :10 parameters and 13 non-blank lines of code < 1313327563 128320 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You should really have a (T *, size_t) pair < 1313327575 127651 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah I probably should < 1313327587 591539 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It'd take this from 10 to 9! < 1313327599 472935 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :#define DECL_BUFFER(T) typedef {size_t size; T *data;} T##_buffer < 1313327600 251874 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::P < 1313327621 706079 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: "size_t* a, size_t* max_a" also makes me suspicious < 1313327632 70331 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Howso < 1313327637 808966 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Could be a struct :-P < 1313327638 180649 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Also "mushcoords" vs. "mush_aabb" vs. "mushspace_" -- get some consistency < 1313327661 273551 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :mushspace_ is the module, mush_ is internal, mush is external < 1313327684 951982 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: The distinction between the latter two is confusing :P < 1313327685 24682 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I don't want to make a struct to be used by exactly one function < 1313327697 505336 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You don't need to care, you're a user, you'll only see mush < 1313327704 489419 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Nazi_talking_dogs < 1313327704 932726 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Sorry for commenting on your code :P < 1313327718 991695 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No worries dude :-P < 1313327744 999619 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Also, I'm offended that the implication that I'd use code with so many parameters < 1313327745 808008 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's just: mushcell, mushcoords, mushspace, and mushcursor < 1313327758 69394 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh, and mushstats < 1313327766 979755 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So is it N-dimensional < 1313327770 668 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No < 1313327782 545068 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's [1-3] selectable at compile time < 1313327824 205683 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well then, is it ... uhh, what was that structure I was going to use... R-tree? < 1313327830 489989 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Nope < 1313327834 409559 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No trees here < 1313327837 348047 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Is it purely-functional? < 1313327852 304691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: And does it have the words LAHEY SPACE anywhere???? < 1313327868 635802 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Does it look purely functional? :-P < 1313327874 711100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: ALL I AM SEEING ARE FLAWS HERE < 1313327875 480985 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And no, I don't think it does < 1313327885 457246 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hey, it has 10-parameter functions < 1313327888 80456 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :THAT'S A GOOD THING RIGHT < 1313327890 867133 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Precisely :-P < 1313327904 16839 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well if those are a good thing < 1313327918 97887 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Where's your mergeByteString < 1313327926 295863 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :load_string? < 1313327928 940273 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :A function unparalleled in API and implementation consistency < 1313327933 443029 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, that's just a function that does the same thing < 1313327943 98779 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm asking, where's your equivalent jewel < 1313327958 641463 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: http://sprunge.us/SATe < 1313327966 684463 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Where is your FUNCTION OF EQUIVALENT OR GREATER ELEGANCE?????? < 1313328021 785577 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think I'll go with mushspace_newline < 1313328052 575626 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Can't argue with binary arithmetic: *max_a = mush_size_t_max(*max_a, *a |= 0x02); < 1313328057 136964 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313328068 300461 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :My fungespace representation is really bad :/ < 1313328076 293067 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But I'm trying to clean up the rest of the code first < 1313328085 871286 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or any effort will collapse in on itself < 1313328217 832389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also I use String all over the place, I should fix that < 1313328233 432470 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :String is good, list-tries supports it < 1313328255 508231 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Tries are like the only time String has a nice structure :P < 1313328265 301119 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yup :-P < 1313328277 586326 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I decided not to like list-tries when I noticed you had completely unnecessarily abstracted the map out ;-) < 1313328292 639147 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's pretty gross, I know < 1313328294 361437 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(OK, so for really small alphabets you can avoid map overhead but come oooon.) < 1313328300 483791 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But what's the better alternative < 1313328308 153361 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Pick one map, force it on everyone < 1313328309 518120 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It was more about being able to use Eq/Ord/whatever keys < 1313328312 373546 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't want that < 1313328317 887374 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I want that < 1313328323 965365 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :"force X on everyone" is something I abhor :-P < 1313328338 345277 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's called a library, if you didn't force something on everybody it'd be empty < 1313328365 61977 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Let's put it this way: There is no way that that Map class can lead to anything good :-P < 1313328404 239371 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: How about just using a type family < 1313328405 19385 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It leads to being able to use keys without Ord instances while not having to use linked lists for maps in general < 1313328409 164443 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: How about just using a type family < 1313328416 419394 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Type families were pretty experimental when I started it < 1313328420 305390 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :They're not now < 1313328420 376702 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Nobody was using them < 1313328423 693034 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah so < 1313328427 19620 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: How about just rewriting it < 1313328439 167705 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: But someone's already roped me into one bit of work today :-( < 1313328458 423144 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's child labour < 1313328488 242733 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :In the meanwhile you can live with it < 1313328495 183059 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Bug report < 1313328495 475970 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-- 'Just'@ a@is returned, the old value is replaced with @a@. If the key is < 1313328506 937511 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And yeah, I'll live with it by not using it :-P < 1313328552 667519 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :There's also an \ue000 between the @ and the is, somehow < 1313328565 858370 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's the bug report < 1313328584 535092 :derrik!~xix@gprs-inet-65-59.elisa.ee PART :#esoteric < 1313328586 159550 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, I'm not sure type instances would actually work < 1313328587 344330 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or, well < 1313328604 837595 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :They might, actually < 1313328612 461453 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(Map k) => ... < 1313328617 316199 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Map k where type MapFor k < 1313328619 177785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm < 1313328632 675129 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dammit, now you've got me pondering :-P < 1313328638 576677 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :heh < 1313328644 227914 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Heeeeey, technically I _am_ a user of list-tries. < 1313328650 115634 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :GPipe, yes < 1313328658 150344 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CHAINSAW TIME < 1313328663 994921 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-P < 1313328697 890532 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION promptly gets himself stuck on whether "class HasMap k where type Map k" or "class Map k where type MapFor K" is nicer, conveniently uses this to drop the whole thing. < 1313328713 862459 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Bikeshedding is annoying like that < 1313328742 907317 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which is nicer, I'll just pick the opposite of whatever you say, problem solved < 1313328754 512815 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :HasMap < 1313328756 742096 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Is this three space indentation good lord < 1313328765 711572 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yep < 1313328771 790392 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't like you :( < 1313328773 414198 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Incidentally, why do we only have +cn? All the *real* channels have something like +CLPcfjnt on. (Okay, so you need freenode admins for +LP, but...) < 1313328774 674149 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-( < 1313328788 185389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: Both +c and +n are bad modes for bad people < 1313328790 35705 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Can we remove them < 1313328791 487766 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :We don't have +t because people like to change the topic < 1313328802 624004 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And I don't know what the others do < 1313328819 94229 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What's wrong with three space indentation < 1313328819 300735 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :+j is join-throttling, only N joins in M minutes. < 1313328831 593947 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :+c filters colours and also bold. < 1313328834 307803 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :+f forwards the +j-throttled to other channels. < 1313328836 199469 :sllide!~jari@ip565eb113.direct-adsl.nl JOIN :#esoteric < 1313328838 66561 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :+n stops people sending a message when outside the channel. < 1313328841 529440 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh wait < 1313328844 122790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You're asking about fizzie's < 1313328845 203552 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :+C filters to-channel CTCPs. < 1313328847 563493 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Im smart < 1313328864 989555 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :And +LP are large-ban-lists + permanent. < 1313328889 642911 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :When admins start wondering why so few people have been banned, worry < 1313328892 958436 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Three-space indentation is just weird because it is < 1313328901 213576 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Powers of two are the only good indentation widths < 1313328907 12012 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :2 is too narrow, 4 is too wide < 1313328917 766642 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Two is fine for Haskell code < 1313328930 101111 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The nesting is shallow in idiomatic code, and the left-side rule means that you get more indentation than that < 1313328932 649529 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Maybe, I haven't thought about it per-language < 1313328942 960200 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :e.g. " where " is actually an eight-char indentation, really < 1313328974 482647 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah but I often write that as " where\n" < 1313328984 746747 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well that's bad :) < 1313328988 147363 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :If a lot of stuff follows it < 1313328990 796688 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well why :-p < 1313329001 840431 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because it reads less fluidly and also makes two space worse < 1313329011 920813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Do you really use all the functions in the Map class < 1313329015 359378 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think of "where" as invisible < 1313329016 297556 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes < 1313329018 981963 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Wow < 1313329030 545605 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It started out smaller :-P < 1313329033 484101 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Don't you think putting some of them outside the class would have a certain... elegance < 1313329048 8180 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :They all have direct implementations in Map/IntMap IIRC < 1313329048 222407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, how would you optimise mapAccum to be faster than the obvious implementation in terms of mapAccumWithKey :-P < 1313329063 370678 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, but those implementations will probably reduce to basically the same thing as the obvious transformation... < 1313329081 297757 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :mapAccum on a trie doesn't need to remember the key < 1313329137 958033 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313329151 40319 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Most of them are probably there because my trie API was just union(Data.Map, Data.IntMap) and it turns out that you need mapAccum to implement mapAccum (or whatever) < 1313329167 461036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Data.Map.Map seems like a really bad default choice to use < 1313329178 985351 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, compared to something hash-based < 1313329185 199775 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Where the hash for Char helpfully reduces to id < 1313329199 50484 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :There's no "default choice"? < 1313329215 606298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, OK, I just mean that you provide instances for Map :-P < 1313329217 509334 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You pick by type class: Eq, Ord, Enum are provided < 1313329225 442416 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Feel free to add Hashable or whatever :-P < 1313329228 906712 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Admittedly I was thinking in terms of HasMap which I've actually just created :P < 1313329280 881452 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If you're such a fan of iteration over conversion followed by traversal, shouldn't you take a traversal function rather than [k] so that you can use Text/ByteString directly :-P < 1313329291 688211 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That started out as a joke but then it turns out I couldn't answer it oops < 1313329299 205769 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :heh < 1313329319 900009 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :[k] pretty much is a traversal function in Haskell < 1313329325 182601 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Given laziness and all < 1313329327 390790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, 'strue :P < 1313329367 506718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Would Foldable work or something, I don't actually know that family of classes very well < 1313329375 338188 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, to avoid wrapping it with a bunch of conversions < 1313329417 842471 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What exactly are you talking about now < 1313329425 293961 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Work where, to avoid what < 1313329442 949118 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :As in, everywhere you take a [k] < 1313329454 51930 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :To avoid having to write a ByteStringTrieMap that listifies it < 1313329458 881139 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :For every function < 1313329507 354497 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: So how's mudex? < 1313329535 860709 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I haven't touched it much, unfortunately < 1313329540 180730 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's CLOSE to working :P < 1313329552 890160 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Traversable might work < 1313329589 452575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: class ToList k where type Elem k; toList :: k -> [Elem k] would probably work :-P < 1313329594 767108 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I guess Foldable is better because you can use foldr (:) [] to get a list < 1313329605 945107 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You could even optomize it < 1313329662 822192 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Foldable makes it be x a -> [a] though instead of your x -> [Elem x] < 1313329676 721004 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Exactly, which is worse, because it doesn't support monomorphic containers < 1313329682 320138 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yep < 1313329688 626621 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I guess there's no point in caring about non-GHC portability these days? :-P < 1313329693 355700 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like, say, ByteString and Text, the most popular third-party string types :-P < 1313329698 143652 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Dude, you depend on functional dependencies < 1313329699 980497 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Text didn't exist back then < 1313329705 617482 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Implementing type families is both equivalent and easier :-P < 1313329707 522658 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: It worked in Hugs IIRC < 1313329710 255717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah < 1313329711 939356 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But, I mean < 1313329714 841634 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hugs doesn't exist any more :P < 1313329719 418893 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah, and that was my point < 1313329722 902916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, yeah < 1313329731 335230 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Is there for any practical purpose a non-GHC Haskell implementation < 1313329740 384816 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :jhc < 1313329743 523118 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But nobody really uses it < 1313329746 517735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And it doesn't support much at all < 1313329749 834952 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I doubt it does fundeps < 1313329750 721880 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Is that semi-up-to-date these days? < 1313329754 371514 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :There's LHC... but that's a backend < 1313329759 49509 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :UHC maybe? Naw < 1313329760 438792 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I know of only UHC < 1313329763 361775 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Basically, no, there isn't, but there should be one < 1313329773 603276 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :As something that is reasonably developed < 1313329775 183077 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But if there becomes one, it'll probably support type families before fundeps < 1313329780 493673 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Fair enough < 1313329863 138585 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Pro AList < 1313329887 895210 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Now I just have to think of a type for which AList is actually desirable so that it doesn't end up with no instances :-P < 1313329897 997322 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Maybe if your keys are other ALists? < 1313329906 787821 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Then you're already suffering with ALists < 1313329913 231907 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So more probably won't hurt much < 1313329987 723114 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :AList is if you only have Eq < 1313330040 676656 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, the question is how to provide the AList machinery without actually giving it instances < 1313330051 328692 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That is, you want to be able to just use a line or two to say "hey, use an AList" for this. < 1313330054 218425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Aha, hmm < 1313330074 719811 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Maybe if the Map class was kept as is with the m parameter, and MapFor was a /separate thing/ < 1313330077 131934 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Then the context would become < 1313330081 415951 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(Map (MapFor k) k) => ... < 1313330082 785858 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which is < 1313330084 758413 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Extremely ugly < 1313330096 546052 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But the alternative is implementing all the HasMap methods every single time you want to make a type use that map? < 1313330099 707735 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which is very stupid < 1313330101 169790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh wait < 1313330109 890245 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Map (MapFor k) k => HasMap k where type MapFor k < 1313330112 372995 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Genius < 1313330205 713979 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :At this point Deewiant has blocked me on every communication method he can and put notes all around his house to never accept a patch from me ever < 1313330220 248591 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Wrong < 1313330230 246188 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :If by wrong, you mean right < 1313330284 466228 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That combined Map/HasMap approach seems distinctly unsatisfying, but I'm not sure why... < 1313330336 765704 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Woo, 7 parameters and 7 lines of code (+ 6 for the introduction and closing curly bracket) < 1313330385 314133 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: How many typeclasses :-P < 1313330391 970140 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :This is C < 1313330399 946129 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or are you asking me how many to add < 1313330402 859467 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or what < 1313330426 893639 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It was a joke < 1313330433 792803 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It failed < 1313330436 406719 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Clearly < 1313330442 229422 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, you're just not refined enough to get it < 1313330690 540926 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess what's really required is... default instances for certain values of a type family < 1313330691 497335 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Wooooooo < 1313330709 511751 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Map (MapFor k) k => HasMap k where type MapFor k is certainly looking appealing < 1313330736 863646 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :2011-08-14 16:33:54 ( Deewiant) HasMap < 1313330738 778682 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I toldya < 1313330761 791969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Uh, I decided on HasMap back then < 1313330767 570002 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It's just that what I did was wrong < 1313330780 15774 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I changed class Map m k where HOLY GOD SO MUCH STUFF < 1313330780 997519 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :to < 1313330792 607058 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class HasMap k where type Map k :: asterisk -> asterisk; HOLY GOD SO MUCH STUFF < 1313330799 561773 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Whereas I actually want it to be < 1313330811 360480 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class IsMap m where type Key m; HOLY GOD SO MUCH STUFF < 1313330814 529365 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :then later on < 1313330825 193420 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class IsMap (Map k) => HasMap k where type Map k < 1313330829 575158 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, actually < 1313330836 953282 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class (IsMap (Map k), Key (Map k) ~ k) => HasMap k where type Map k < 1313330843 516724 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But yeah, that avoids type families :-P < 1313330851 669860 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And is seemingly as generic as possible < 1313330871 847564 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And makes saying "oh, Chars should use BlahMap" as simple as "instance HasMap Char where type Map Char = BlahMap Char" if there's a proper IsMap instance < 1313330897 880727 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And makes it impossible for somebody to use a FooMap instead if he wants to? :-P < 1313330984 29548 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, firstly, that's basically the entire tradeoff being made by using a type family; in return there's not an ugly extra parameter going around everywhere. But let's put it this way, I am finding it _very_ hard to think of a situation where you'd have two people thinking a certain map type is best for (element type), and one of them not being wrong :-P < 1313330994 352253 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like, for Chars, there's not N usecase strategies or whatever that would suggest different maps < 1313331000 915870 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :There's going to be one map that has the best all-round performance on Chars < 1313331027 320906 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OK, when your keys are like [[k]] then it gets more complicated, but you probably want that to become a nested TrieMap really < 1313331055 848660 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What if user U has a closed source super map he wants to use but can't be provided by list-tries because it's closed source < 1313331129 684115 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If the key type is not a "generic" type, then just give the instance directly; else, newtype wrapper -- remember that I'm going to introduce ToList, so actually this isn't a pain < 1313331136 186506 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, it's less of a pain, anyway < 1313331155 481950 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :At the most, you'll need to wrap the functions for convenience as much as you'd have to now to use ByteString or Text < 1313331164 567794 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And the latter two are far more common than a closed source supermap :-P < 1313331168 12870 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Fair enough I guess < 1313331171 201113 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :super map* < 1313331178 288056 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Duper map < 1313331183 428555 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Souper map < 1313331202 65931 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Is there a repository of some sort I should clone rather than patching up the latest Hackage release < 1313331271 853940 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :git://tar.us.to:9418 I think < 1313331279 758875 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :`run where sh < 1313331281 414019 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :sh: where: command not found < 1313331285 961587 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er < 1313331298 649721 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :`run which sh < 1313331300 157202 :HackEgo!Gregor@codu.org PRIVMSG #esoteric :​/bin/sh < 1313331306 990098 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah which < 1313331320 676244 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: elliott@katia:~/Code$ git clone git://tar.us.to:9418 list-tries < 1313331320 842862 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Initialized empty Git repository in /home/elliott/Code/list-tries/.git/ < 1313331320 925999 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fatal: Unable to look up (port 9418) (Name or service not known) < 1313331338 139163 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :for some reason this cmake nonsense isn't finding qmake... but, it's there in /usr/bin < 1313331342 66770 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't know how git hosting works, dammit < 1313331345 127984 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I just ran 'git daemon' < 1313331368 769813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Guess who else doesn't know :P < 1313331389 704466 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well your git didn't connect < 1313331392 967953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I thought you were an hg guy, anyway < 1313331397 486265 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You thought wrong < 1313331405 151211 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I think the git:// part was wrong < 1313331415 135227 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"unable to look up 'space'" is suspicious < 1313331426 216742 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Aha < 1313331428 552875 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :/ makes it closer < 1313331432 920288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What's the directory name perchance < 1313331439 735181 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :list-tries < 1313331440 782825 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :? < 1313331448 793191 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I ran it in the list-tries directory < 1313331449 983459 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code$ git clone git://tar.us.to:9418/list-tries.git list-tries < 1313331450 236416 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Initialized empty Git repository in /home/elliott/Code/list-tries/.git/ < 1313331450 317186 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fatal: The remote end hung up unexpectedly < 1313331450 389866 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code$ git clone git://tar.us.to:9418/list-tries list-tries < 1313331450 390006 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Initialized empty Git repository in /home/elliott/Code/list-tries/.git/ < 1313331450 483987 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fatal: The remote end hung up unexpectedly < 1313331452 341066 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Meh < 1313331454 631300 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :So it would make sense if it were / < 1313331458 726545 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I think you need to do "git daemon list-tries" in the parent? < 1313331465 992407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And /.git and / both failed too < 1313331490 562939 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Prepare the repository < 1313331490 675202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :To allow git-daemon to read your project you have to add the file .git/git-daemon-export-ok to your project. < 1313331492 199290 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: lawl < 1313331503 962230 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so for some reason /usr/share/cmake-2.8/Modules/FindQt4.cmake can't find qmake... < 1313331514 39155 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which means it's stupid because it's in /usr/bin < 1313331639 917855 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Okay I gave it --base-path=. and now it should maybe work < 1313331680 206258 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :/.git worked, thanks < 1313331687 11179 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You didn't need that methinks < 1313331692 609245 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It worked locally with just / < 1313331708 805206 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-- Funky instances for this type are marked with **FUNKY** < 1313331708 970810 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't even want to know < 1313331824 677717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I note that the Map typeclass is not sufficiently general to handle a map that has constraints on the values :-P < 1313331836 143715 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm sure this issue has you quaking in your boots < 1313331868 658147 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Feel free to fix it < 1313331927 454889 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No thanks, that would even lose Traversable :-P < 1313331961 693828 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah, fix the base libraries first ;-) < 1313332005 392831 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'm not sure "fix" = "make more general" < 1313332029 686258 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It always is < 1313332036 909477 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Here's my new Prelude: < 1313332048 509761 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :something :: c a -> d b < 1313332059 733996 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Specialise c=d=Identity for normal operations < 1313332069 347064 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Like unsafeCoerce < 1313332084 837970 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, that's what the d on the return is there for, so it can refuse < 1313332098 502995 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :How does it know how to refuse in d? Well simple, it uses something < 1313332102 794274 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-D < 1313332193 482176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION wonders whether changing Map to have the key as a type family actually simplifies things. < 1313332207 384055 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, it does < 1313332217 62903 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Ord k) => IsMap (Map k) < 1313332218 854768 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, hmm, no < 1313332232 950703 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Just because it's a Report-compliant instance head doesn't mean you're not going to use an extension the next line by necessity < 1313332242 896121 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, wait, it is useful < 1313332249 663461 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance IsMap (a,a) where < 1313332254 666698 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : type Key (a,a) = Bool < 1313332258 988756 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Ain't it beautiful :-P < 1313332272 843133 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You couldn't do that before without a newtype wrapper. < 1313332301 223440 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Because a mostly-internal newtype wrapper is just so terrible :-P < 1313332349 107921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, if you'd like to turn FunctionalDependencies into FunctionalDependencies _and_ TypeFamilies rather than replacing it, I'm happy to oblige :-P < 1313332361 185960 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I suppose, uh, depending on the mtl already implies FunctionalDependencies, though < 1313332372 877869 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-D < 1313332375 768230 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Whoops < 1313332426 162966 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OK, here's what shiznit be up, yo: I'm way too lazy to s/k/Key m/ and the like so I'm just going to rename Map and OrdMap to have Is in front :-P < 1313332432 9578 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm < 1313332436 654166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :class Foldable (m k) => IsMap m k where < 1313332439 462898 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What's with the missing fundep < 1313332463 230033 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Maybe you dropped it somewhere < 1313332465 836395 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Nope < 1313332473 421183 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You just didn't have one < 1313332475 435578 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Clever < 1313332483 896870 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Why fundep when the code compiles without it eh < 1313332516 983544 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'd love to see an instance violating m -> k < 1313332519 562836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :By love I mean auuuuuuuuugh < 1313332523 867281 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Maybe if you use like < 1313332526 864037 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Map Dynamic a < 1313332532 626635 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or, well, AList Dynamic a < 1313332537 213139 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's possible!! < 1313332547 508944 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :NOT IN A GOD-FEARING SOCIETY < 1313332564 827426 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Kids these days will do anything < 1313332589 283748 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :newtype WrappedIntMap k v = IMap (IM.IntMap v) deriving (Eq,Ord) < 1313332589 557002 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, what's with the wrapping < 1313332597 161578 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Dropping k < 1313332602 18729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313332605 957900 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That < 1313332616 949885 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay so I figured out the qmake stuff, but now it can't find qt4-core...which is also installed. < 1313332618 86165 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Is a damn good argument not to use m k all over the place :P < 1313332620 227354 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :WHAT IS GOING ON AAAH < 1313332626 714703 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Actually I can do that while keeping the fundep < 1313332627 559088 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think I hate cmake. < 1313332631 717035 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Just make it become < 1313332637 739836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance IsMap (IntMap v) Int < 1313332638 322394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :vs. < 1313332643 859985 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance IsMap (M.Map k v) k < 1313332646 333996 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Erm < 1313332648 864658 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance IsMap (M.Map k) k < 1313332649 114474 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :vs < 1313332653 491301 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance IsMap IntMap Int < 1313332773 348493 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Holy shit, right after you say that I violate the fundep < 1313332777 941872 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Enum k => IsMap IM.IntMap k where < 1313332783 483918 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Are you a wizard????????????????????? < 1313332807 247468 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'm waiting for my "auuuuuuuuugh" < 1313332822 416243 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :>_> < 1313332836 925868 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I am "auuuuuuuugh"ing as we speak < 1313332846 167918 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I guess that's acceptable < 1313332886 387633 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :cmake keeps telling me to check a CMakeError.log < 1313332889 5834 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that doesn't exist. < 1313332891 281047 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :THANKS CMAKE < 1313332893 400072 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I HATE YOU < 1313332895 229448 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Why are you using CMake < 1313332899 741967 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's almost as bad as SCons < 1313332901 133549 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because I have to. < 1313332907 440401 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Why < 1313332908 136188 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because this isn't my software that I'm trying to install. < 1313332913 571814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Stop using that software < 1313332914 864710 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :CMake is okay < 1313332915 961543 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION is install Qyoto < 1313332919 397163 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :+ing < 1313332921 535275 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :rewrite it and make it your software < 1313332928 11171 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :.....yeah okay I'll get right on that. < 1313332929 167151 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The elliott way of doing things < 1313332934 469965 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So what's with the random double/triple spaces everywhere, it looks like you once aligned osmething but then there was nothing to align < 1313332936 569279 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :since I have like 4 days to finish this. should be easy. < 1313332937 532134 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :at least you can rewrite the cmake part < 1313332959 48541 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Is this before or after you've run a s/x/y/ expression on it < 1313332977 367916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I've run no such thing < 1313332979 726136 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or you just not seeing the genius of my indentation/alignment < 1313332982 785558 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Consider the "alter" method in the IntMap instance < 1313332995 240380 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or how about this < 1313332999 719395 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : toAscList :: m k a -> [(k,a)] < 1313332999 982684 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : toDescList :: m k a -> [(k,a)] < 1313333003 493423 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :In a completely standalone block < 1313333017 447261 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically the guy who hired me said "use qtwebkit to make a small proof of concept for Mono/C#" < 1313333025 265964 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well...qtwebkit is in FUCKING C++ < 1313333027 152620 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Okay that's random < 1313333045 692335 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so... I had to go find some C# bindings, which I did, and it's called Qyoto. And now I am trying to install this and it is not finding shit. < 1313333048 149393 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :alter is aligned with update/adjust/delete? < 1313333049 252121 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is obviously there. < 1313333065 676255 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Is it even aligned < 1313333067 886031 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It is after my modification < 1313333072 508280 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But I don't recall before < 1313333075 719477 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can't find an alter that isn't < 1313333080 535967 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Fair enough < 1313333085 193356 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Still weird :-P < 1313333101 392695 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : delete k (IMap m) = IMap$ IM.delete (fromEnum k) m < 1313333101 540117 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : alter f k (IMap m) = IMap$ IM.alter f (fromEnum k) m < 1313333106 682185 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I assumed you were referring to that < 1313333109 691967 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah < 1313333112 406104 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And that's aligned < 1313333112 509355 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Now insert a blank line after delete < 1313333114 898415 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And it stops making any sense :-P < 1313333118 98060 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah there's a blank line < 1313333119 964356 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's still aligned :-P < 1313333142 271127 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The blank lines are based on the grouping in the definition of Map methinks < 1313333148 411586 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t second specialise it on (->) you ashole < 1313333149 543789 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :parse error on input `->' < 1313333153 967448 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :: tufuck you < 1313333157 336361 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t second < 1313333158 400097 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (a :: * -> * -> *) b c d. (Arrow a) => a b c -> a (d, b) (d, c) < 1313333163 578927 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t i hat eyou and i hate arrows < 1313333164 827458 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `hat' < 1313333165 171853 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `eyou' < 1313333165 244310 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Not in scope: `hate' < 1313333173 770891 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :second :: (a -> b) -> (c, a) -> (c, b) < 1313333186 593917 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I hate cmake < 1313333273 945947 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Warning: QT_QMAKE_EXECUTABLE reported QT_INSTALL_LIBS as /usr/lib < 1313333275 32884 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Warning: But QtCore couldn't be found. Qt must NOT be installed correctly, or it wasn't found for cross compiling. < 1313333286 428706 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :must NOT be installed correctly. it has nothing to do with cmake being terrible. < 1313333289 476089 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :nope. < 1313333306 759854 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You're all such haters < 1313333323 922710 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :all we do is hate. < 1313333347 968309 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :time to go manually install libqt4-core < 1313333401 331691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?unpl Just . first toEnum *** IMap < 1313333402 31569 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(\ c -> (Just) (((first toEnum) *** (IMap)) c)) < 1313333406 830018 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Not fucking helpful < 1313333431 929517 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Are you having trouble? < 1313333433 2748 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :so it needs Qt to NOT be installed correctly? < 1313333439 228984 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Just this bit :P < 1313333439 571943 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes. < 1313333442 403059 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or, maybe < 1313333443 884808 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I have no idea. < 1313333453 209481 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :actually libqt4-core is a transitional package so it might be the wrong one. < 1313333461 837812 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so maybe I actually hate Debian's package repos. < 1313333463 90431 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :\(a,b) -> (Just (first toEnum a), IMap b) < 1313333480 484140 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So (Just . first toEnum *** id), then < 1313333482 488325 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :you should just need libqt4-dev I think < 1313333494 898551 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: f *** id is the same thing as first f < 1313333515 208084 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Data/ListTrie/Base/Map.hs:196:21: < 1313333515 374942 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Ambiguous type variable `k10' in the constraint: < 1313333515 540702 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (IsOrdMap m k10) arising from a use of `mapAccumDescWithKey' < 1313333515 613543 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Probable fix: add a type signature that fixes these type variable(s) < 1313333515 613624 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : In the expression: mapAccumDescWithKey (const . f) < 1313333515 685859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : In an equation for `mapAccumDesc': < 1313333517 420488 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : mapAccumDesc f = mapAccumDescWithKey (const . f) < 1313333519 472455 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dude what... < 1313333521 136375 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313333523 228685 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm < 1313333525 582026 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmmmmmmmmmmmmmmmmmmmmmmm < 1313333537 877099 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :MR? :) < 1313333543 873362 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :olsner: nope, it's a typeclass default < 1313333548 755549 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: You should add a type signature that fixes these type variable(s) < 1313333549 422638 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :but < 1313333552 598944 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Guess what we need < 1313333558 59557 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :We need the functional dependency < 1313333559 551834 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :A type signature that fixes these type variable(s) < 1313333563 967629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dude < 1313333564 493844 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :No < 1313333569 122144 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh hey look libqt4-dev is uninstalled < 1313333570 63822 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But that's what it says < 1313333575 36078 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :"Probable fix: add a type signature that fixes this type error" < 1313333577 601507 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Probable fix" < 1313333583 29592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's a TYPECLASS DEFAULT < 1313333584 632390 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :When is GHC ever wrong? < 1313333606 991088 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, I've internal exception'd GHC before, whippersnapper < 1313333610 580069 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Probable fix: add an unsafeCoerce that fixes this type error. < 1313333620 562271 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think I have, as well < 1313333643 575080 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: That doesn't mean it wasn't the right way to handle the situation < 1313333659 420100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :..............There is exactly one signature and it is ALREADY THERE < 1313333665 14264 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The problem is an ambiguity caused by the lack of the fundep < 1313333668 235717 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I meant the internal exception < 1313333674 98718 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313333676 310721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It most definitely was wrong < 1313333688 61462 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :CMake Error at CMakeLists.txt:88 (macro_log_feature): Unknown CMake command "macro_log_feature". < 1313333691 115181 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :awesome < 1313333700 641931 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: http://sprunge.us/DJca < 1313333704 987674 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: GHC bomb at least as of a while ago < 1313333732 662733 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :arst.hs:31:18: < 1313333732 790019 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : Cannot deal with a type function under a forall type: < 1313333732 862657 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : forall fp. Fingerprint fp => (fp, FPGlobalState fp) < 1313333732 862824 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : In the expression: return () < 1313333732 862936 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : In an equation for `fpRun': fpRun NULL _ = return () < 1313333735 188730 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric : In the instance declaration for `Fingerprint NULL' < 1313333736 148604 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Me too < 1313333739 871860 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It was in ghc six days < 1313333760 616989 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :As in, months ago :-P < 1313333784 73914 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so apparently I need libsmokeweroidofihwerhsomething < 1313333796 406015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: BTW, I don't think the Map classes are generic enough to handle a dependent map :-P < 1313333810 671599 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :JUST SAYING < 1313333813 701749 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Again, if you can fix it, go ahead :-P < 1313333828 395117 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think I can :P < 1313333833 694661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Illegal instance declaration for `IsMap IM.IntMap k' < 1313333833 861079 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : (the Coverage Condition fails for one of the functional dependencies; < 1313333833 944111 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Use -XUndecidableInstances to permit this) < 1313333836 439423 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Best extension????????????? < 1313333845 531857 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah no < 1313333873 813739 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :How can I revert just all the lines that previously said IMap :-P < 1313333907 771036 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :If you have vim and haven't mapped U to something else, U undoes changes on one line < 1313333927 31830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Great; now assume I have emacs < 1313333933 389933 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :RTFM < 1313333938 713447 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :you're pretty much fucked. < 1313333939 418665 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I was thinking more along the lines of some fancy git reset tool :-P < 1313333946 716997 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :My knowledge of emacs is limited to C-x C-c and I'm not even sure that's right < 1313333969 200369 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :Deewiant, that seems to be all the knowledge you need of it < 1313333976 719846 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :vim fanatics < 1313333982 548358 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Another hater < 1313333991 935288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: points to the sign marked "don't feed the troll" < 1313334002 994268 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :which sign? there is no such sign here < 1313334003 670112 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, oh, good point < 1313334009 106440 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Holy shit, excite.com still exists < 1313334011 714268 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And looks identical < 1313334035 326425 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, what is it? I just get a 500 there < 1313334044 373793 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :at least it didn't go down with altavista < 1313334080 386417 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: http://www.excite.com/ should load < 1313334097 540115 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, tried it. 500 still < 1313334103 327823 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Huh < 1313334107 238294 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's a really 90s web portal :) < 1313334107 401671 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay so now it can't find smoke, but I've installed libsmokeqt4-dev < 1313334111 420571 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :which should have installed everything I need. < 1313334131 607249 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, oh I see, I selected to NOT disallow the cookie, then it stopped doing 500 < 1313334131 942711 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I think < 1313334162 677107 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :CakeProphet, he's in the trapping grounds west of the village, opposite side to the temple of trials. you have to kill some geckos and watch out not to step into the pools of acid, that's a bit of HP gone every time you do that. < 1313334191 136541 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :ACTION wonders if anyone got the reference. < 1313334212 760226 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :it's lost to me < 1313334243 530287 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :minMaxView :: (Alt st a, Boolable (st a), Trie trie st map k) < 1313334243 723228 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : => (trie map k a -> Bool) < 1313334243 795386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : -> (CMap trie map k a -> Maybe (k, trie map k a)) < 1313334243 795554 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : -> trie map k a < 1313334243 795614 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : -> (Maybe ([k], a), trie map k a) < 1313334247 743459 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Nice < 1313334262 959069 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :2011-08-14 15:51:22 ( Deewiant) Why do I always end up with a bunch of functions with 8 or more parameters < 1313334274 142252 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because you suck :-P < 1313334277 122199 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :cmake wants me to set a bunch of stupid configuration variables and I'd really rather not since that's probably not the problem. < 1313334279 323431 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Meh :-( < 1313334307 133941 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :http://fallout.wikia.com/wiki/Rescue_Nagor%27s_dog,_Smoke,_from_the_wilds < 1313334321 828162 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I bet if I got Conal to reimplement list-tries... ;-) < 1313334336 238300 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :THREE LINES OF CODE SO PURE THEY DON'T EVEN EXECUTE AT RUNTIME < 1313334350 92581 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :BANANAS EVERYWHERE < 1313334373 572737 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The three lines of code < 1313334378 465036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :banana :: Banana -> Banana < 1313334381 524473 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :banana v < 1313334388 992233 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | isBanana v = banana v < 1313334403 176933 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | otherwise = ex (banana v) (re (banana v)) < 1313334407 372506 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Beautiful < 1313334412 281510 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :> let na = "na" ++ na in "Ba" ++ na < 1313334414 228340 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "Banananananananananananananananananananananananananananananananananananana... < 1313334420 491491 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1313334479 400890 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, that is 4 lines (with the type signature) < 1313334494 101408 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: There's another line of negative space above < 1313334499 343835 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You just can't see it with your stateful IRC client < 1313334499 645742 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, oh right < 1313334515 929048 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :what's ex and re? < 1313334536 910845 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :and Banana, for that matter < 1313334567 508124 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :olsner: I'm not at liberty to discuss that with you < 1313334578 841669 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :elliott: ok < 1313334579 709742 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, and more to the point: why is there no mention of audio-only communication devices in there < 1313334594 734440 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: wat < 1313334599 450314 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, bananaphone < 1313334611 971315 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Too ordered < 1313334618 418722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The Bananamiasma is used instead < 1313334625 639896 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :touche < 1313334651 426937 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So, um, care to walk me through each parameter of the Trie class < 1313334671 142171 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's just so that I can do Map and Set without having to reimplement everything < 1313334672 819863 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, heh I read that as "Trine" since I played that yesterday < 1313334689 600778 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Yes, I just want to know what each parameter is so I can make them into type families :-P < 1313334704 276529 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :instance Map map k => Base.Trie TrieMap Maybe map k where < 1313334706 206065 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :instance Map map k => Base.Trie TrieSetBase Identity map k where < 1313334712 434154 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Does that answer your question < 1313334730 533161 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm not sure what's up with Maybe/Identity there, but apart from that, yes < 1313334755 767999 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: It's for the value: for maps it's Maybe value, for sets it's Identity Bool < 1313334762 791274 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313334770 891472 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And hence funky instances etc < 1313334774 525185 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What's st stand for anyway < 1313334783 372852 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :storage or something < 1313334819 945869 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> 'B':fix("an"++) < 1313334821 867997 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "Banananananananananananananananananananananananananananananananananananana... < 1313334878 20003 :cheater_!~ubuntu@g229096104.adsl.alicedsl.de PRIVMSG #esoteric :ACTION just tried pronouncing that, but doesn't know which syllable the stress is on. < 1313334881 454776 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :truly this is a shining example of what Haskell excels at. < 1313334884 614956 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :import qualified Data.DLiStorage trie as DL < 1313334886 456128 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Herp derp < 1313334902 935928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :adjuStorage trie :: Trie trie map k < 1313334904 66247 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh my god < 1313334913 880540 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-D < 1313334937 118066 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :toLiStorage trie = genericToLiStorage trie Map.toLiStorage trie DL.cons < 1313334956 3066 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Turns out "st" is a common consonant pair huh < 1313334972 108229 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I put a space after for a reason ;_; < 1313335005 802305 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Turns out "list " turns up often in a library dealing largely with lists < 1313335018 541694 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And "Just " in a Haskell program < 1313335048 420392 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :tVal = fStorage trie . tParts < 1313335051 752281 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh my fucking god < 1313335059 344346 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Dude < 1313335067 412015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :yes i am trying to repair it piece by piece :D < 1313335067 524521 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Press the M-x undo or whatever it is < 1313335087 614835 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And then look for M-x i-want-perl-regular-expressions-dammit and use < 1313335120 114366 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :replace-regexp, but it's elisp regexps < 1313335131 71790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :\bst\b -> Storage trie should work < 1313335156 135116 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You can call it something else than Storage as well, if you want :-P < 1313335176 58386 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's not exactly descriptive and if it's going to get a name longer than two characters it probably should be < 1313335320 973532 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm just sitting here wondering if it could all be done in a simpler manner :-P < 1313335375 675602 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Vorpal: Another 360 degrees: http://users.ics.tkk.fi/htkallas/20110813_005-020.jpg < 1313335400 380594 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Like, I think people have implemented tries in languages without four-parameter type classes before :D < 1313335437 540442 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, and with a lot less type checking < 1313335449 551041 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can replace the "st" parameter with a void* ;-P < 1313335513 469876 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::-P < 1313335537 688413 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, *looks* < 1313335545 154109 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, nice < 1313335547 55197 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :where is it? < 1313335558 909484 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, and what is the blacked out stuff < 1313335563 312676 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, defence secret? < 1313335566 308394 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Vorpal: It's a redacted person. :p < 1313335574 588837 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, defence secret :P < 1313335575 104132 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"Person" < 1313335579 891813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :If that's what you're calling them these days < 1313335582 851052 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I'm trying to find it on the map, but Google's satellite photos are rather low-res from where it's from. < 1313335596 669883 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, yeah in my time we used to say as it were... < 1313335703 876801 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :$ tup upd |& wc -l < 1313335704 9244 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :366 < 1313335712 618537 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think that's a good place to leave it < 1313335716 207276 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Vorpal: It's approximately from http://maps.google.com/?ll=59.820035,22.955804&spn=0.020798,0.065961&t=h&z=15 I think. < 1313335728 232932 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Wait, how many files is mushspace exactly < 1313335737 394535 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or do you have hundreds of warnings < 1313335753 156104 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :$ tup upd |& grep error | wc -l < 1313335753 284969 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :89 < 1313335755 926063 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also, tup monitor -a -f power :-P < 1313335761 534160 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Those are all from the same file < 1313335761 922082 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Without the power part, that's just my comment < 1313335763 75744 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also the smiley < 1313335798 574232 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I doubt that's helpful < 1313335845 45917 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It's incredibly helpful for development :-P < 1313335857 701970 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Make change, , tab back to terminal, see errors immediately < 1313335861 586236 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or with a split-screen, etc. < 1313335880 182208 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Adding the "press up, enter" after "tab back" isn't that bad :-P < 1313335903 262367 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Also I don't want to see it scroll by every time I :w, I can read through the 100 errors myself < 1313335912 169615 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't need to see the updates as it goes to 99, 98, ... < 1313335929 995031 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Your loss :P < 1313335937 129378 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Adding the "press up, enter" after "tab back" isn't that bad :-P < 1313335939 236341 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I consider it a gain :-P < 1313335941 43475 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's why the split-screen is nicer < 1313335944 758362 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :0 steps versus three < 1313335953 814747 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'd find the constantly scrolling errors even more distracting < 1313335981 517167 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I have zero interest in how little of $FUNCTIONALITY compiles until I'm done writing it < 1313336014 529162 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's mostly useful when debugging < 1313336021 339000 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh, sure < 1313336021 596477 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also, why do you have hundreds of errors in one file < 1313336027 206314 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But in this case, it's not very useful < 1313336032 684060 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I didn't say it's never useful < 1313336038 757972 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Fair enough < 1313336040 820545 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But uh, as to how many files, that's probably going to change by a divisor of 2 soonish and then blow up again as I split functionality into files with higher granularity < 1313336065 2667 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I am determined to make Shiro have a faster fungespace :P < 1313336077 308485 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm sure I can beat you in fungicide < 1313336085 565510 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: I mean currently this works like http://sprunge.us/LEGH < 1313336096 211150 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: #pragma push_macro < 1313336099 223652 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yep < 1313336099 336196 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Dude, I've taught you bad things < 1313336102 795124 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Don't be me < 1313336125 55524 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :My coming solution to that is to list the .c.in files four times in the Tupfile, with different -DFOO < 1313336127 596669 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Have I mentioned that shiro-lahey can support both compile-time optimised dimensions and also arbitrary at runtime thanks to existentials < 1313336133 439507 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :~The~ ~Best~ < 1313336141 942934 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(And some judicious SPECIALISE pragmas) < 1313336154 32730 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : My coming solution to that is to list the .c.in files four times in the Tupfile, with different -DFOO < 1313336162 459389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: This is why your cc rule should include CFLAGS_[percent]f < 1313336174 743937 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or for instance... < 1313336175 932422 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :How would that help < 1313336227 284723 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :!ndcc = |> ^ CC %f^ $(CC) -c %f -o %o $(CFLAGS) -DDIMENSIONS_LOL=$(DIMENSIONS) $(CFLAGS_%f) |> %B_$(DIMENSIONS).o < 1313336229 495846 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't need per-file flags, I need four different sets of flags which are applied to each file :-P < 1313336237 625190 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess that needs DIMENSIONS to vary there, which I dunno if is possible < 1313336243 747709 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ask the tup list :-P < 1313336285 90170 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I still don't see how CFLAGS_%f is relevant :-P < 1313336365 508241 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It isn't < 1313336369 261460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Momentary lapse of thinking < 1313336486 676621 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Anyway, 10 .c, 13 .h, 6 _impl.c.in, 6 _impl.h, 1 config.h.in < 1313336511 805851 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :+ a hash table library which is one .h < 1313336643 616469 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: man tup sez "The !-macro is not expanded until it is used in the command string of a :-rule." so I guess it's possible to vary it by setting DIMENSIONS_LOL in the Tupfile prior to each relevant :-rule < 1313336662 608957 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Right < 1313336918 163884 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com JOIN :#esoteric < 1313337274 146848 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :shiro is finally cabalised. < 1313337307 860238 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Now all it needs is a major cleanup, and I'll put it on GitHub < 1313337317 769914 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: And then you have to start including it in Mycology results ;-) < 1313337331 221004 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :All the great Computer Scientists seem to be British, American, or German < 1313337340 878027 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Taneb: Dijkstra < 1313337352 427267 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Taneb: Wirth < 1313337355 864068 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: So does slowdown work yet < 1313337361 812501 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Hmm < 1313337366 151033 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Excuse me, you need to work with me to disprove Taneb first < 1313337367 636795 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::-P < 1313337387 232939 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess Wirth counts as basically German [simultaneously offends every Swiss on the planet] < 1313337405 277611 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: But yes, I htink it does < 1313337419 641927 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Does Mycology have a permanent git repository location I could submodule? < 1313337424 109179 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Okay, it seems all great Computer Scientists' first languages are Germanic < 1313337427 965919 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Seems gross to add rsc/mycology to my git repository < 1313337439 59554 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Taneb: Probably because you can't read the work of the others < 1313337442 491715 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No because I haven't githubbed my stuff < 1313337451 879698 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Something I plan to do at some point < 1313337483 94538 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess I'll mirror all the catseye stuff in a separate repo < 1313337487 786205 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Since those don't load in browsers, sigh < 1313337495 74472 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Like what? < 1313337521 234872 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: http://catseye.tc/projects/funge98/library/MODU.html < 1313337535 410301 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :pikhq went all anal-XHTML-Nazi on him, now I can't access valuable resources without wgetting them < 1313337546 31145 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Oh, it was pikhq's fault? heh < 1313337553 373288 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Anyhoo, you can "view source" < 1313337557 679394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, pikhq whined at Gregor, Gregor had a breakdown and did it < 1313337564 619722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Then cpressey went "hey that looks like fun" < 1313337567 386813 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So yeah, all pikhq's fault < 1313337583 643177 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I can, but I might as well just try and archive every fingerprint spec I can into one repository and include it as a submodule < 1313337592 259925 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Basically a "funge-standards" repository < 1313337592 935117 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Taneb: Does Kolmogorov count? < 1313337599 256991 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Include the standards we have copies of too, why not < 1313337615 350765 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah, sure < 1313337617 78516 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Christos Papadimitriou < 1313337629 700039 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :His first language is Greek < 1313337681 185440 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :$ dist/build/shiro/shiro rsc/slowdown.b98 rsc/forks.b98 < 1313337681 478580 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[hang] < 1313337689 873253 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So yes, I can run slowdown, unless I fucked up one of the instructions it uses < 1313337691 429497 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What's forks.b98 < 1313337694 716973 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which is possible, I'm lagging behind on Mycology < 1313337697 232245 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Something you wrote < 1313337704 3610 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I suggest something like "a,@" < 1313337723 616944 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code/shiro$ cat >test < 1313337723 700729 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :a,@ < 1313337723 796432 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code/shiro$ dist/build/shiro/shiro rsc/slowdown.b98 test < 1313337723 869393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[hang] < 1313337728 367345 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :My fungespace is naive dude, this will take years < 1313337729 271616 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Although I'm not sure how much the size of the program loaded affects the runtime < 1313337736 252508 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Blaise Pascal < 1313337736 330062 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Perhaps not much at all < 1313337738 895945 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :He was French < 1313337741 282127 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, cfunge's is naive, but it's naive microoptimised C < 1313337754 357157 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And how long does cfunge take < 1313337770 692644 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Dunno; you do it as part of fungicide, but your computer is a lot faster than mien < 1313337774 154163 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :mine < 1313337776 54977 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No I don't < 1313337781 955012 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :fungicide doesn't include slowdown in any shape or form :-P < 1313337782 27101 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313337783 413487 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I thought you did < 1313337786 170118 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmph < 1313337787 478389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well it should < 1313337789 91419 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Why doesn't it < 1313337790 806905 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Taneb, Allan Turing Was English < 1313337792 56344 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :>_< < 1313337796 339234 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: Alan < 1313337800 680706 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :right < 1313337805 468670 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, you'd win even more ;-) < 1313337811 327978 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Because fungicide is 100% synthetic benchmarks so that everybody can complain at me for not including "real programs" < 1313337813 939927 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Taneb, and what about Donald Knuth? < 1313337816 122028 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Although you would have to remove Language::Befunge < 1313337833 762392 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I won't complain because my tactics involve code rather than whining :-P < 1313337840 986264 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well < 1313337843 15731 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Whining, then code < 1313337846 905790 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But that's just as good, right? < 1313337858 552688 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :If I'm going to do more Fungiciding I'm going to do what I did with Mycology and say "here are the old results which include slow interpreters, from now on I'm only doing the fast ones" < 1313337864 96894 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :English is a Germanic Language < 1313337865 129439 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :23013 elliott 20 0 29884 3420 1840 R 101 0.1 2:21.23 shiro < 1313337868 240540 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :At least it doesn't have a memory leak < 1313337879 964721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So it'll just be me and CCBI once I fix this fungespace? :-P < 1313337891 382835 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Deewiant, as far as I remember cfunge manages quite a good turn of speed? < 1313337891 716081 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And cfunge and possibly stinkhorn < 1313337907 146435 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Deewiant, even beating your code at some cases iirc < 1313337914 307033 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: cfunge is "fast" for fungicide? < 1313337916 9912 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :(diagonal growing wasn't it?) < 1313337935 667969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :247.7 vs 3628.5 (worst CCBI vs best cfunge) < 1313337945 875593 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That's total time dude < 1313337950 734199 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So :P < 1313337954 765565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: pyfunge is faster than stinkhorn, it looks like < 1313337955 635505 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And that's based on an old cfunge < 1313337956 248610 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Which is hilarious < 1313337963 328124 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No it's not < 1313337968 818561 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :10281.2 < 1313337969 249537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :12888.2 < 1313337970 850082 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That table is sorted correctly you know < 1313337976 750150 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Ran to finish: 74 / 42 < 1313337981 541864 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313337983 453285 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313337984 523666 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :So 32 timeouts :-P < 1313337989 492091 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or crashes, I forget < 1313337994 924425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What's the difference < 1313338027 97844 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And yes, both cfunge and RC/Funge-98 beat CCBI on the diagonal growing < 1313338041 292625 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, I like how right after I eliminate a ton of typeclass overhead I'm looking at adding it back in again < 1313338045 970195 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But I won't, it doubled my Mycology time < 1313338059 182972 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I know, I'll do something reasonable < 1313338067 473283 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Fix my non-fingerprint Mycology BADs < 1313338068 615685 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Funny how RC/Funge-98's weird-ass Funge-Space works for it there < 1313338071 574906 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And then fix all the GHC warnings I can < 1313338087 492325 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :(It's something like one linked list of cells for each row) < 1313338091 495338 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Wrote to mycotmp0.tmp with o in linear text mode. < 1313338091 782243 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :GOOD: o removed space prior to newline < 1313338091 854537 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :UNDEF: o removes spaces prior to newline-valued cells < 1313338091 854699 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :BAD: i misread or o miswrote < 1313338092 647238 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ugh >_> < 1313338111 380664 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : 247.7 vs 3628.5 (worst CCBI vs best cfunge) < 1313338119 482108 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :that is because Deewiant never updated it < 1313338121 710750 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: BTW, if you ever remember/loggrep the structure I mentioned I was considering using for fungespace to you, that'd be great :P < 1313338125 515805 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :after I fixed that major bug in forking < 1313338136 979076 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yes, that's what I said < 1313338140 172290 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I think it was in /msg, FWIW < 1313338168 709533 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I wonder if a quadtree/octree/... might work out for me < 1313338171 701117 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can non-/msg-paste relevant things if you like < 1313338193 199944 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I was hardly revealing trade secrets < 1313338200 424899 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :2011-03-25 06:37:41(elliott) Food for thought: Might a bounding volume hierarchy be a smart choice for fungespace? < 1313338204 715657 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ah yes < 1313338204 964706 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :2011-03-25 07:10:11(elliott) (Thought triggered by random comment on interwebs saying that they're usually more appropriate than k-d trees due to the latter having a higher overhead.) < 1313338216 826806 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://en.wikipedia.org/wiki/File:Example_of_bounding_volume_hierarchy.JPG < 1313338219 671602 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Still the best image < 1313338231 739926 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, that actually seems to show a situation inapplicable to fungespace < 1313338235 315025 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because the "shapes" never overlap < 1313338250 671779 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"One of the most commonly used bounding volumes is an axis-aligned minimum bounding box." < 1313338252 681387 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dammit Deewiant :-) < 1313338259 757446 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric ::-P < 1313338262 297288 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I MUST DO SOMETHING COMPLETELY DIFFERENT < 1313338317 547357 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gah, my fingerprint code is really, really unsatisfactory < 1313338324 256897 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I have a typeclass that is always used existentially < 1313338327 135968 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So it's basically just an ADT < 1313338334 49094 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And it's so ugly and geh < 1313338427 444606 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Just blame Vorpal for adding that static allocated area in the first place or we'd be living happily in hash table land < 1313338447 722231 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::D < 1313338456 488824 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Hashtable Land is the greatest land in the world. < 1313338469 683597 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, rename my maybeShiro < 1313338506 409294 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybeShiro :: Shiro () -> Shiro () < 1313338506 575283 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybeShiro m = m `catchShiro` handler < 1313338506 647563 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : where handler :: IOException -> Shiro () < 1313338506 647630 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : handler e < 1313338506 647677 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | isUserError e = reflect < 1313338507 371475 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : | otherwise = io $ throwIO e < 1313338516 824224 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :shiroOrReflect < 1313338517 564959 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It used to be MaybeT Shiro () -> Shiro (), but then I optomized :P < 1313338530 211491 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: catchReflect, then < 1313338551 91355 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That works < 1313338552 465838 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftMaybe :: Maybe a -> Shiro a < 1313338552 666426 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :liftMaybe x = do < 1313338552 749037 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Just a <- return x < 1313338552 821711 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : return a < 1313338552 821863 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Here we have a bizarre function that does the right thing only in a catchReflect block :-P < 1313338577 109956 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess maybeReflect is the best name < 1313338578 448996 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And you complain about my code < 1313338580 972156 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And ioReflect for ioMaybe < 1313338589 608595 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, there's literally no other way to avoid huge nested case stacks < 1313338599 804214 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :At least I don't have functions that have a dependency on what's on the call stack! < 1313338603 339008 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And pattern matches "fail"ing in do context is well-defined behaviour < 1313338607 305730 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Uhh, neither do mine? < 1313338625 711218 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :If the pattern match fails, it's Report-defined to "fail", which my handler catches, and reflects < 1313338628 970285 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That's basically what requiring that being in catchReflect is :-P < 1313338646 792166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Weeeeeeeeeeeeeeeeeeeeell < 1313338651 848181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :There's basically one thing I could do < 1313338656 52990 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Add a phantom parameter to Shiro < 1313338657 225172 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :as I sit here waiting for apt-get to finish. The follow comic comes to mind: http://xkcd.com/303/ < 1313338662 226460 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*following < 1313338665 765479 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I can't just stack transformers on top, because it puts me in lift hell < 1313338667 380467 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So I need MonadShiro < 1313338671 135496 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So everything gets a MonadShiro context < 1313338677 146928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So I have a billion SPECIALISE pragmas or it's fucking slo < 1313338677 231419 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :w < 1313338681 315796 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :s/can't/don't want to/ < 1313338687 719635 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, see above < 1313338692 318783 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It makes my code twice as slow < 1313338695 945626 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's a "can't" < 1313338705 537185 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That's the price of writing in high-level languages < 1313338715 123936 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Like C or greater < 1313338718 932818 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::-D < 1313338722 626220 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I should just do this in asm < 1313338727 519881 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, no, Checkout < 1313338731 234334 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Parallel fungespace processing < 1313338753 478928 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Although I guess if I write enough inline assembly it'll work out < 1313338761 662938 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm... I could have (Shiro a) be (ShiroE () a) < 1313338764 499540 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Then catchReflect would be < 1313338779 283976 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :catchReflect :: ShiroE CatchReflect a -> ShiroE e a < 1313338783 501900 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, wait < 1313338788 525078 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(Shiro a) would be (forall e. ShiroE e a) < 1313338794 635491 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Right < 1313338805 768464 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I spent about 1.5 hours yesterday optimizing "return INT_MAX - a < b ? INT_MAX : a + b" < 1313338810 851469 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And then in a fingerprint I could have ShiroE (FingerprintE fptype) for the staet... < 1313338812 52099 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But oh wait < 1313338815 72898 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :How would that stack with CatchReflect < 1313338819 818405 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I NEED TYPECLASSES TO CONTROL THE NESTING < 1313338824 947622 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :LOLOLOLOLOLOLOLOLOLOLOLOLOLOLOLO < 1313338832 248277 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Call stack dependencies: THe best. < 1313338839 485170 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Anyway it works outside of the call stack, it just doesn't catch the failure. < 1313338845 124428 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Just blame Vorpal for adding that static allocated area in the first place or we'd be living happily in hash table land <-- heh < 1313338995 236373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You'll be happy to hear (maybe) that I only get one BAD outside of fingerprints < 1313339001 861672 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And it's to do with o's text mode and ugh < 1313339050 238169 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :unlines . map (reverse . dropWhile (==' ') . reverse) . lines < 1313339050 868916 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :HTH < 1313339078 885454 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :textify :: ByteString -> ByteString < 1313339079 211458 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :textify = B8.unlines . reverse . takeWhile (/= B.empty) . reverse . map (fst . B.spanEnd (== space)) . B8.lines < 1313339080 710404 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You were saying < 1313339093 780758 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :WFM < 1313339099 807964 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It's probably i that's the problem < 1313339103 858281 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because, well < 1313339110 467964 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Have I mentioned mergeByteString? :P < 1313339178 126691 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I wish the funge instructions had some kind of obvious grouping < 1313339181 120741 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So I could split Interpreter.hs up < 1313339333 319504 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :lol bamfdaemon < 1313339509 666695 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :$ grep -r 'TODO\|FIXME' . | wc -l < 1313339509 917734 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :14 < 1313339511 142427 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That few??? < 1313339517 867790 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No XXX? < 1313339524 254401 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The instruction grouping's in the spec < 1313339537 873189 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That just makes me think of comment pornography, and what does XXX even mean < 1313339541 373451 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :"Cell Crunching - Integers" etc < 1313339560 199915 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :TODO basically means "Hey do this cleanup/optimisation/etc. sometime", FIXME is "This is really terrible/has an obvious bug/just looks wrong, fix it" < 1313339594 42601 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :FIXME is for plain old bohr bugs/missing features, XXX is for stuff like "this works but I don't know why", heisenbugs, and the like < 1313339595 198099 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hmm, you're right re: grouping < 1313339601 33431 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's rather coarse, but maybe good enough < 1313339613 2848 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :When I use XXX I tend to use "TODO FIXME XXX" though < 1313339618 730733 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I use TODO for features, basically if there's a TODO, I _could_ ignore it, it'll just make my life worse < 1313339629 106852 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :FIXME basically means that there's something that has to get addressed, I'm just too lazy right now < 1313339632 758565 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And/or don't know how < 1313339644 636141 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :"TODO FIXME XXX" is good though < 1313339657 890859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Maybe I should use "WTF:". < 1313339659 507600 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I only use TODO regardless of purpose or severity and it works fine for me < 1313339688 655164 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :// XXX: I have no idea why /2 makes this work < 1313339691 615346 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That's a good example < 1313339699 998811 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313339710 540801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OK, I should really add proper command-line handling to shiro < 1313339715 975317 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :main = do < 1313339716 59786 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : args@(filename:_) <- getArgs < 1313339716 195018 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : program <- B.readFile filename < 1313339716 267202 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : let st = (fungeStateFromByteString program) { cmdArgs = args } < 1313339716 425386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : case fungeSpace st of < 1313339718 339612 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : FungeSpace m (minX,minY) (maxX,maxY) m2 m3 -> < 1313339718 460383 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :// XXX: this looks like a hack < 1313339720 300460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Map.size m `seq` Map.size m2 `seq` Map.size m3 `seq` minX `seq` minY `seq` maxX `seq` maxY `seq` return () < 1313339723 283863 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's currently very pro < 1313339724 479305 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :assert (false); // XXX for debugging only < 1313339725 160901 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :By pro I mean terrible < 1313339743 548804 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Dude, rnf < 1313339747 792267 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dependencies < 1313339748 672768 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Instead of Map.size < 1313339759 969377 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You know you're going to want threads at some point right < 1313339764 832682 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :base, containers, bytestring, process, random, filepath, time, directory, unix (will be fixed), mtl, hashtables < 1313339767 86304 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Those are all my dependencies < 1313339772 322133 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :hashtables is overkill < 1313339775 194662 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Threads howso < 1313339782 424217 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Every program needs threads < 1313339789 921570 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Parallel Funge-Space garbage collectors, etc < 1313339803 965620 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, if I write that debugger/developer... < 1313339815 56571 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :(Something I've actually thought about doing but most likely never will) < 1313339827 767343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, I could use cmdargs if I used the pure API < 1313339833 544077 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm a sensitive person < 1313339839 817686 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Can't even use a top-level unsafePerformIO newIORef < 1313339857 568905 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But you can depend on the call stack < 1313339858 517754 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Nice < 1313339864 117652 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :If I made the compiler I would make assert(false) compile into an error message (or break into debugger) if debug mode, and into the "unreachable" LLVM command when not debug; this would mix up such things like that... but, then, you could use conditional compilation to make it only for debug, or whatever. < 1313339869 547428 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It is not a dependency, I renamed them so that their behaviour is perfectly reasonable < 1313339880 381457 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :catchReflect :: Shiro () -> Shiro () < 1313339880 611100 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :maybeFail :: Maybe a -> Shiro a < 1313339882 327635 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ioFail :: IO a -> Shiro a < 1313339886 540669 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You can use the latter two outside of the first if you wish < 1313339894 102610 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :They will do as their name suggests < 1313339901 224004 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(maybeFail is an unintentionally hilarious name) < 1313339903 3536 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Maybe they'll fail, maybe they won't < 1313339919 521127 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :As unintentional as "pun not intended" < 1313339927 963394 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :What does "Shiro" mean here? < 1313339939 139873 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :zzo38: Funge Haskell magic < 1313339946 305732 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: No, it was unintentional < 1313339947 945541 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I only just realised :D < 1313340004 373373 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :How does Funge Haskell magic work? < 1313340014 377157 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :By interpreting Funge programs in Haskell < 1313340043 821681 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :in C++, doing a c-style cast from float to int would just leave the significand right? < 1313340102 242710 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Have you used any of the option parsing libraries, I suddenly realise I've never written a command-line Haskell program with a non-trivial interface < 1313340122 279420 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hmm, I wonder < 1313340134 887150 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't think I have but I'm not sure < 1313340149 578482 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also if you have < 1313340159 689039 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :struct foo { int x; ...} < 1313340159 886289 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I've used System.Console.GetOpt I think < 1313340162 822293 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ugh, OK, the one that comes with like, the base libraries, is terrible, [Flag] is not a sane result structure < 1313340165 518536 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, that one < 1313340167 116951 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yeah, I've used that < 1313340170 546743 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess I'll just use cmdargs < 1313340179 656467 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :then (int) someStructFoo would be equivalent to someStructFoo.x right? or is there padding and stuff? < 1313340186 292556 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What's wrong with [Flag] < 1313340188 604057 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :record Options{} [a := def += help "hey hey hey", ...] += summary "blah" < 1313340195 315264 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Because it should be an options record instead? < 1313340198 106214 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's just semantically bunk :P < 1313340204 707802 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Remember that Flag is a type you specify < 1313340207 541881 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's not just like returning (string,arg) < 1313340209 995117 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Just fold over it < 1313340214 899661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It lets you pass a constructor function and everything < 1313340231 149776 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Or just use cmdargs which handles it for me :P < 1313340242 718025 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Fiiine < 1313340261 757859 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :I would like if LLVM had a union type, it might allow some optimizations that are not done otherwise, even though you can still make up your own unions in LLVM anyways < 1313340266 520483 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: More importantly, I need recursive argument parsing < 1313340281 657966 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :--fprint-turt="--format=svg" < 1313340308 741447 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And you can do that with GetOpt :-P < 1313340336 297009 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What's so good about GetOpt :P < 1313340342 495148 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Nothing in particular < 1313340345 712036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm wait < 1313340346 826009 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Wait < 1313340347 471747 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ONE < 1313340347 796347 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :LESS < 1313340348 669273 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The fact that it's in base < 1313340348 927713 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :DEPENDENCY < 1313340350 189920 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yep < 1313340355 35235 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :YEEEEEEEEEEEEeeeeeeeeeeeessssSSSs < 1313340462 284734 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: One problem: I have no options right now :D < 1313340482 117276 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Shiro/Types.hs:8:8: < 1313340482 366566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Ambiguous module name `Control.Monad.State.Strict': < 1313340482 449280 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : it was found in multiple packages: mtl-2.0.1.0 monads-tf-0.1.0.0 < 1313340483 503791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :SFOJISDFNJSDIOFJISNDJLFOJDNGNJG DON GODNF G < 1313340486 259434 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I AM GOING TO RIP YOUR SOUL < 1313340487 570407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :BETWEEN THE BINDS < 1313340488 360482 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :OF EARTH < 1313340489 228313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :AND HELL < 1313340500 387545 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION UNINSTALLS MONADS-TF < 1313340518 905373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION INSTALLS CAB SO HE CAN DO THAT < 1313340524 956793 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Gotta love type families eh < 1313340547 829787 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :monads-tf may be great, but only one fucking package uses it < 1313340551 473791 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh my god cab has revdeps < 1313340554 278589 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :TIHS CHANGE S EVERYTHIN < 1313340554 945029 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :G < 1313340611 487222 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Dammit, the default mconcat on functions isn't composition < 1313340666 537009 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :data FlipList a b = a :* FlipList b a | Empty < 1313340668 771957 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :look what I did. < 1313340741 149700 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :use the Endo monoid? < 1313340771 841697 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :data TripList a b c = a :* FlipList b c a | Empty < 1313340781 683383 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*TripList < 1313340799 433076 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :er? maybe? I don't know what that is. < 1313340812 716423 :tswett!~Warrigal@thay.Stanford.EDU QUIT :Changing host < 1313340812 826499 :tswett!~Warrigal@unaffiliated/ihope JOIN :#esoteric < 1313340817 651756 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is the single field of a newtype constructor allowed to have the same name as other fields of newtype constructors that the other fields have the same type? < 1313340819 151718 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :oh, that was for elliott's comment about mconcat < 1313340889 283713 :Nisstyre!~nisstyre@infocalypse-net.info QUIT :Ping timeout: 250 seconds < 1313340906 974432 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :you could also have the "totally safe" function FlipList a b -> [(a,b)] < 1313340923 61949 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Guess what GetOpt can't handle nicely, that's right, things like --help and --version < 1313340924 802039 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :with the exception that it's not actually safe because it only works with even-lengths fliplists < 1313340931 603860 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :HMmmmmmmmmmmmmmm < 1313340933 164372 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :UNLESS < 1313340938 457899 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I made them all of type < 1313340942 763148 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :StateT Options IO () < 1313341182 691106 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I wish GHC wouldn't complain when I did < 1313341184 624147 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :import Data.ByteString (ByteString) < 1313341184 709888 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :import qualified Data.ByteString as B < 1313341188 772386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :without explicitly mentioning ByteString anywhere < 1313341193 720512 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's an idiom, GHC < 1313341625 52792 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Is there some pragma to not complain in these cases? < 1313341706 504260 :Nisstyre!~nisstyre@infocalypse-net.info JOIN :#esoteric < 1313341761 167566 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, turn off the warning :P < 1313342184 704352 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Is TrieMap ultra-strict by any chance >_> < 1313342202 343447 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think I have a single bit of laziness in this entire program :P < 1313342204 289764 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's strict in the key, of course :-P < 1313342208 531113 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Real laziness, that is < 1313342215 734639 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Rather than unnecessary laziness < 1313342224 706392 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And it has ' versions for everything when you want to be strict in the value < 1313342266 504891 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It... might even be faster than Map for (Int32,Int32), mightn't it < 1313342283 638647 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It'll basically just turn into a nested IntMap, won't it >_> < 1313342295 633021 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :What, with [Int32] as the key? Yes :-P < 1313342303 686656 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: With (Int32,Int32) as the key < 1313342319 172787 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :TrieMap is a trie, it needs a list < 1313342356 131131 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh right :P < 1313342471 10077 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Would me creating a funge-specifications repository make Mycology appear on GitHub faster :- < 1313342472 44479 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::-P < 1313342495 808752 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No :-P < 1313342503 647580 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Are you suuuuuuuuure < 1313342508 45176 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What if it was incredibly meticulously organised < 1313342514 474076 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hey, I made the repo already, there's just no content there < 1313342518 167560 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :s/funge-specifications/funge-archive/ I guess < 1313342530 558969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Since I don't see why it shouldn't have fungicide too < 1313342537 920784 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: "Created about an hour ago" Pro :P < 1313342553 981329 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I find your initial capitals disturbing < 1313342572 365527 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I thought you might < 1313343040 487450 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmph, I should really figure out a way to stack transformers without hell < 1313343057 796332 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fpRun :: FPIns -> StateT (globalstate,ipstate) Shiro () is pretty much the exact type I want < 1313343230 911903 :Taneb!~Taneb@host-78-146-170-91.as13285.net QUIT :Ping timeout: 260 seconds < 1313343377 368492 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So how does Shiro handle per-fingerprint sta-- OH YEAH YOU USE AN IMPERATIVE LANGUAGE LIKE TERRIBLE PEOPLE. < 1313343419 626752 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :s/Shiro/CCBI/ < 1313343422 870351 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oops < 1313343444 82656 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Meanwhile I'm really annoyed that Fungi exists, even though I'm pretty sure it's way slower than Shiro < 1313343450 2553 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It has a debugger of some kind and everything < 1313343465 627407 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(It's N-dimensional and just uses (Map [i])) < 1313343491 704387 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Although it does have < 1313343491 788413 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , conservativeMinMaxCoords :: !(Conservative (Vector i, Vector i)) < 1313343498 243556 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :where conservative is some weird < 1313343498 577886 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data Conservative a = Precise !a | Imprecise !a < 1313343499 927345 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :that's a Functor < 1313343550 644804 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, it's just so that it can only calculate precise bounds when necessary < 1313343552 42928 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ha, ha, so slow < 1313343578 760255 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That doesn't necessarily mean "so slow" :-P < 1313343608 661763 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Yes, but when it does, it uses Map.foldWithKey < 1313343615 904298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ha, ha, so slow < 1313343666 264940 :Gregor!Gregor@codu.org TOPIC #esoteric :Functor? I hardly knew 'er! | iridium is too mainstream | http://codu.org/logs/_esoteric/ < 1313343853 111903 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :brb < 1313344369 219304 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Wiki's got some new users that need a banhammer. < 1313345092 571176 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :Does the IO type in Haskell have any constructors? < 1313345324 706068 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :zzo38: Well, *technically* it absolutely must have a constructor. *However*, it is in no way exported. < 1313345336 184637 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :(well. Actually, GHC probably offers a way to get at it.) < 1313346894 72368 :Taneb!~Taneb@host-78-146-170-91.as13285.net JOIN :#esoteric < 1313349400 201332 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: https://github.com/ehird/funge-archive < 1313349403 117105 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :IT BEGINS < 1313349432 595303 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'M WATCHING YOU < 1313349451 237003 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :People Watching ehird/funge-archive < 1313349451 403039 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :mcmap < 1313349451 902103 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oops < 1313349457 996635 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :mcmap created repository funge-archive about a minute ago < 1313349460 28350 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also oops < 1313349463 996687 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :How about I try this one again < 1313349491 180385 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: https://github.com/ehird/funge-archive < 1313349493 768078 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Try again :P < 1313349499 656446 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'M WATCHING YOU < 1313349646 720747 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :^quote < 1313349647 546738 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Phantom_Hoover: You have 6 new messages. '/msg lambdabot @messages' to read them. < 1313349675 807781 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Does anyone know how to make wget or curl set the last modified date < 1313349748 779305 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :-S < 1313349764 832733 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Ugh, doesn't send < 1313350187 216592 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Which standard first had fingerprints? < 1313350212 945078 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I don't think there ever were full -96 or -97 standards < 1313350226 713334 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But -96 had fingerprints? < 1313350232 844203 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can't remember < 1313350235 701226 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Bleh :-P < 1313350254 274003 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Befunge-96 and -ninetyseven, right, not Funge? < 1313350325 846717 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or, hmm < 1313350328 583015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Was it Funge-97 < 1313350341 734304 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :is there a language that uses ~= for neq? < 1313350354 595230 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Bah, stupid cat's eye with its robots.txt < 1313350366 810538 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No Wayback Machine for the Befunge-96 draft :-P < 1313350371 31580 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It has no robots.txt < 1313350377 996376 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: But was it Funge-9seven or Befunge :P < 1313350380 148245 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :http://liveweb.archive.org/http://www.cats-eye.com/cet/soft/lang/befunge/96.html < 1313350385 33094 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Page cannot be crawled or displayed due to robots.txt. < 1313350390 425811 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, OK, that's a squatter dude :P < 1313350398 267633 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Whatevs :-P < 1313350406 739036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah Funge-97 < 1313350441 367373 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Mostly Befunge-97 < 1313350445 442509 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313350465 253991 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I'm reading the mailing list archives < 1313350474 767285 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Look what has actual content: https://github.com/ehird/funge-archive < 1313350481 648423 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And commit messages meeting your stringent standards :-) < 1313350520 914684 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Fingerprints came in -98 methinks < 1313350527 868211 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Okay. < 1313350549 363903 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :At least this archive doesn't mention them at all :-P < 1313350552 76629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, separate tests/ directory or just put Mycology in the root and the rcfunge ones with their fingerprints < 1313350560 171305 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm not going to bundle the old, shitty test suites < 1313350564 718389 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Maybe in a bad/ directory < 1313350626 674130 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Meh, just put everything in there somewhere and call it old/ instead of bad/ < 1313350637 441853 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah, OK :-P < 1313350643 278916 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I think I'll bundle fingerprint tests with their spec < 1313350648 181069 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So mycology can be in a nice, easily-accessible location < 1313350818 751539 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oops, I think I did a bad < 1313350825 341343 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Sorry, I non-permalinked your page < 1313350826 112036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Will fix < 1313350910 121145 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: "A *true* Nefunge should be able to handle 2.5D code :-)" < 1313350915 347129 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Waiting on Shiro to handle that < 1313350916 143015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: X-D < 1313350942 282948 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey, gimme a oneline summary of slowdown that isn't "slows things down" < 1313350953 113869 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And that also isn't "a very slow Befunge interpreter" < 1313350962 226500 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Why not "slows things down" < 1313350968 89015 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Because I want to be useful :P < 1313350968 444645 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Well, brainfuck is turing complete with a maximum loop depth of seven < 1313350980 334864 :oerjan!oerjan@tyrell.nvg.ntnu.no JOIN :#esoteric < 1313350987 723191 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It's fair to put slowdown in a bench/ directory, right? < 1313350989 56020 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It loads Befunge-98 code into a random location in Funge-Space and executes it there after wiping itself out < 1313350996 316669 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I wouldn't, that wasn't the intention < 1313351004 41705 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :anyone familiar with webkit? < 1313351009 931522 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, I mean, it's designed to show how inefficient certain models are vs. others < 1313351016 898454 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :To reify the intentions behind it in a classier way < 1313351023 547237 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's closer to a benchmark than anything else < 1313351025 864439 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's speed-related < 1313351027 645197 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It was meant to slow down wraparound < 1313351035 82898 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Right < 1313351040 937164 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But you didn't just write it because you were tapping random keys :P < 1313351045 684621 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or did you < 1313351061 569399 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Not to execute a million cycles + push a million cells on stack before even executing the given program, though that ended up happening < 1313351075 270209 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313351079 380007 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1313351080 514340 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Which is the main "slowdown" noticeable when using it on most programs :-P < 1313351097 82502 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, where should I put it so that people can find it in a relevant-ish place < 1313351108 172278 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I have it in the useful directory called "programs" < 1313351114 507357 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm focusing on implementers, so bench/ means "look in here to find shit to help you make things go faster by showing you how much you suck < 1313351115 279830 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :" < 1313351123 320159 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :ais523, I think there's been some spam < 1313351132 281785 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: BTW, I'm flattered by how you consider me a wiki admin < 1313351137 789500 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You can put a README or whatnot in bench/ :-P < 1313351147 137353 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And say "also look at foodir/slowdown.b98" < 1313351191 103626 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Either I haven't been paying attention or elliott just misread Taneb as Gregor and ais523 as elliott < 1313351191 569841 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: I have no idea who is :P < 1313351196 22423 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Probably the former < 1313351204 316624 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Also, not literally a million, I take it < 1313351216 672518 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I honestly can't remember < 1313351220 52454 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think it was over 100k at least < 1313351229 834159 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Gregor: the only wiki admin who comes here is ais523 < 1313351246 73299 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh wait < 1313351266 688595 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :cpressey, if you interpret both terms widely :P < 1313351298 690612 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, it's the privacy-aware dating spambots < 1313351340 564400 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :because you _so_ trust people who spam with privacy < 1313351385 663825 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: https://github.com/ehird/funge-archive Behold :-P < 1313351404 512496 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :TODO: bench/README.md; bench/fungicide < 1313351410 117039 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also tons of other things but that's the short-term < 1313351497 447287 :variable!~thing@unaffiliated/variable QUIT :Ping timeout: 250 seconds < 1313351583 206967 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :15:53 < CakeProphet> anyone familiar with webkit#? < 1313351583 279485 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :15:53 < NiFkE> crayon cake wtf < 1313351590 946774 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I guess I shouldn't expect much from ##csharp < 1313351608 327698 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What :P < 1313351632 824228 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :he whois'd me immediately < 1313351639 41408 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and just commented on my vhost. < 1313351658 10432 :Gregor!Gregor@codu.org PRIVMSG #esoteric :CakeProphet: crayon cake wtf < 1313351681 752219 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: are YOU familiar with webkit#? < 1313351688 551563 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :crayon cake wtf < 1313351694 48636 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: you realise that many clients show hostname on join < 1313351695 680167 :Gregor!Gregor@codu.org PRIVMSG #esoteric :CakeProphet: Good lawd no < 1313351695 859921 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no whois required < 1313351709 495903 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I AM TRYING TO FIND ELEMENTS BY ID IN A WEBPAGE USING THE WEBVIEW CLASS BUT IT DOESN'T HAVE ANY METHODS THAT SUGGEST THAT IT IS CAPABLE OF DOING THAT AAAAH. < 1313351737 812576 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no DOM-like thing. < 1313351781 32576 :Sgeo_!~Sgeo@ool-ad034d00.dyn.optonline.net NICK :Sgeo < 1313351813 475532 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :google images suggests that a crayon cake is simply a cake shaped like a box of crayons < 1313351852 506319 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :why does C# hate me. < 1313351882 923499 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :oerjan: There are surprisingly many crayon cake images, too. I wouldn't have thought it was a "thing". < 1313351902 61953 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: It's not worth archiving fungicide rankings, I take it < 1313351909 964681 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i was expecting it to be a term for some specific type of cake... < 1313351926 599978 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :CakeProphet: it hates everyone < 1313351930 180546 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Also neither my tar nor my bash-completion for unxz know .txz which is incredibly irritating < 1313351930 914642 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Archive the interpreters instead and you can recreate them ;-) < 1313351953 473122 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So when you download Shiro, you also get Shiro, which includes Shiro, ... < 1313351977 137558 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: This is intended to be something everyone will ship with their interpreter because, hey, test suites 'n specs 'n shit :P < 1313351981 670413 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :apparently no one is familiar with webkit on Freenode. < 1313351982 493884 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :but given that CakeProphet is the second non-image hit on google for the quoted term... < 1313351982 748240 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no one. < 1313352005 926217 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: You can maybe get the DOMDocument via the WebFrame in the WebView. < 1313352016 555984 :sllide!~jari@ip565eb113.direct-adsl.nl QUIT :Ping timeout: 252 seconds < 1313352022 71338 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :WebFrame looked even less promising than WebView but I'll check again. < 1313352037 659587 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Well, I doubt everyone wants to ship some old benchmark results :-P < 1313352043 402381 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yeah there's currently no such thing as the DOMDocument class. < 1313352048 610800 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code/funge-archive/bench/fungicide$ git commit -a < 1313352048 718771 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :[master 1ca994c] Add Fungicide < 1313352048 860252 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : 1 files changed, 4 insertions(+), 0 deletions(-) < 1313352048 932716 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : create mode 100644 README.md < 1313352048 932892 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :elliott@katia:~/Code/funge-archive/bench/fungicide$ git push < 1313352049 219441 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fatal: '/home/deewiant/programming/projects/fungicide' does not appear to be a git repository < 1313352051 710946 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What < 1313352054 929292 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so I guess this is just a shitty binding? < 1313352060 449171 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :drwxr-xr-x 8 elliott elliott 4096 2011-08-14 21:01 .git < 1313352063 320317 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Your .txz contains .git < 1313352072 187842 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :That can happen < 1313352074 734132 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: WebFrame at least has a DOMDocument method in the objc WebKit API. Don't know about the .NET binding. Maybe it uses some .NET-level DOM thing, I think it might have one. < 1313352125 602161 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Thankfully it's all text, so the whole repository probably won't be more than half a meg uncompressed < 1313352130 745629 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Probably like three bytes compressed :P < 1313352137 404646 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Apparently it's 148KB now < 1313352143 593720 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: I think this webkit runs over gtk# < 1313352155 410008 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'll check again as soon as MonoDevelop stops being frozen... < 1313352179 994476 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :There is at least some sort of Gtk# WebKit thing, yes. < 1313352202 691233 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes, the one I'm using. < 1313352312 830755 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :there is a hashtable on WebFrame called "data" < 1313352315 201128 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Mono's WinDorms implementation has Gecko and WebKit-based thingies, but I suppose those might well be something equally crappy, and I don't suppose you want to use Mono's WinForms mess for the rest of your thing. < 1313352320 612423 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but I enumerated over the keys and it's apparently empty. < 1313352339 884057 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :must be some kind of general metadata thing. < 1313352367 772313 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: BTW, I take it that Fungicide is public domain or whatever < 1313352376 199056 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Since it has no license notice and I don't like the idea of not being allowed to distribute it :-) < 1313352382 786310 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :This is how copyright law works < 1313352406 817516 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Actually not < 1313352416 973599 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Are you going to sue me :- ( < 1313352434 666494 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(I didn't notice there was no license until after) < 1313352435 871673 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Expect a call from my lawyer < 1313352442 213741 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm shaking in my boots :( < 1313352455 898285 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION tries to work out how the hell your insane fingerprint system works. < 1313352460 189217 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm shaking on the floor, with my boots... < 1313352464 710519 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :on < 1313352500 837359 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yeah there's nothing Dom-like on WebFrame... but there's a findFrame method but I doubt it's what I'm looking for. < 1313352543 513686 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if only there were people on IRC that like... knew stuff about these bindings. < 1313352556 529670 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I went to #webkit but they were are like "ARRRRGH DEV CHANNEL" < 1313352594 608140 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :dev channels are serious business. < 1313352601 155332 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :so < 1313352603 290285 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :go to the < 1313352603 873459 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :non < 1313352604 207286 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dev < 1313352605 630224 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :chanenl??? < 1313352622 324867 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: What insane fingerprint system < 1313352635 504453 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: The one that uses D's insane metaprogramming < 1313352661 217994 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Unhygienic macros whee < 1313352671 529241 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: does such a thing exist? < 1313352672 781781 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Never mind unhygienic; not even AST-based < 1313352678 433751 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: Presumabmlkajbly < 1313352697 358691 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not on freenode. < 1313352707 720856 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey remember when CCBI two was like ten times slower than the original and blocked on a compiler bug and Vorpal was all HA HA VAPOURWARE < 1313352708 386841 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Me too < 1313352708 636985 :sllide!~jari@ip565eb113.direct-adsl.nl JOIN :#esoteric < 1313352770 385063 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: That bug still isn't fixed (at least officially; I haven't tested) < 1313352836 75252 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Your stack is still strictly push/pop right? :-P < 1313352842 374560 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I remember Vorpal going on about his EFFICIENT STRING PUSHING < 1313352858 877252 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Err, somewhat < 1313352882 241969 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant....... < 1313352883 35285 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I think there might be some "gimme the top N cells" thing which just happens to be a single memcpy < 1313352884 913394 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :What have you done.............. < 1313352890 886722 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: SOME OF US use linked list stacks < 1313352898 928095 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And you suffer for it < 1313352938 149117 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Not nearly as much as I suffer for my fungespace < 1313352939 97246 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Probably < 1313352943 93903 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, maybe I should optimise the stack first < 1313352946 455114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's the lowest-hanging fruit ever < 1313352949 256805 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Actually that's not true, coordinates are < 1313352951 790730 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm using tuples < 1313352954 558279 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Boxing + laziness < 1313352965 299309 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :At the same time (x,y) is a nice syntax....... < 1313353027 812782 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :(# x,y #) < 1313353038 305025 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Now I can't use it as a function argument; sweet < 1313353051 326167 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Your functions have the wrong kind < 1313353058 14997 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Clearly < 1313353058 165406 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1313353076 239575 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Whenever you turn TRDS on in CCBI or, well, anything, it immediately starts leaking tons of memory forever, right? < 1313353080 806702 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Or at least I don't see how it would avoid doing so < 1313353108 844410 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :"Starts leaking" sounds a bit bad :-P < 1313353114 867096 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It takes a snapshot of the current state, yes :-P < 1313353121 665987 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, it's memory, and it can never be reclaimed, and 90 percent of it is garbage < 1313353130 323113 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That's the definition of a leak < 1313353130 656590 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But it's a one-time hit < 1313353137 920149 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh < 1313353145 87410 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :So if you travel back in time it just goes to the start and simulates until then? < 1313353147 527596 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :"Starts leaking" sounds like it loses memory every tick or something < 1313353148 177957 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Yep < 1313353151 313477 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I thought it saved every state and just rewound to that < 1313353158 73816 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: That's lame for things involving IO, it's not a real TARDIS :P < 1313353169 976350 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It's the only reasonable way of doing it :-P < 1313353175 138519 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :...and am I right in thinking that taking a snapshot of the state as of when TRDS was loaded, as opposed to at the beginning of the program, is stretching the spec? < 1313353177 252577 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Unless you have a fancy Funge-Space with a lot of sharing < 1313353186 835019 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :In which case you might be able to do it even for many ticks < 1313353197 367375 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :No, you're not < 1313353210 777414 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :TRDS explicitly has a "earliest tick I can go to" command < 1313353214 233031 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :And it can be anything < 1313353232 199146 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :You could implement it as only ever allowing going to the future if you want to be a jerk about it :-P < 1313353262 957873 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net JOIN :#esoteric < 1313353287 181763 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or maybe it requires it to be in the past, but I doubt Mike would've been that precise about it < 1313353299 766340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1313353315 962561 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Well < 1313353316 547855 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Deewiant: Not nearly as much as I suffer for my fungespace <-- what is your fungespace? < 1313353319 421511 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The state at the start is easy < 1313353324 425661 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :You just need to store the contents of the file < 1313353332 52444 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : I think there might be some "gimme the top N cells" thing which just happens to be a single memcpy <-- used for stack-stack no doubt? < 1313353334 251298 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: Yours, plus constant-time wrapping < 1313353356 722303 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :data FungeSpace = FungeSpace { spaceMap :: Map Vector Value < 1313353356 888886 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , minCoords :: Vector < 1313353356 971307 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , maxCoords :: Vector < 1313353357 43308 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , rowPopulation :: Map Value Value < 1313353357 43502 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , colPopulation :: Map Value Value } < 1313353357 221289 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : deriving (Show) < 1313353379 683984 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Modulo the fact that Map is a (non-balancing?) binary tree and not a hash table < 1313353415 506642 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :It's also not micro-optimised bullshit, but it's the same structure theoretically, which is what matter < 1313353415 754731 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :s < 1313353437 52734 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well, a tree's a different data structure from a hash table :-P < 1313353448 198429 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But yes it's an "associative array" < 1313353454 593123 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Or whatever you want to call it < 1313353461 249105 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Key-value store < 1313353496 418075 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i'm pretty sure Map is balanced. < 1313353524 582288 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :a red-black tree iirc < 1313353549 615350 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The implementation of Map is based on size balanced binary trees (or trees of bounded balance) as described by: Stephen Adams, "Efficient sets: a balancing act", Journal of Functional Programming 3(4):553-562, October 1993, http://www.swiss.ai.mit.edu/~adams/BB/. J. Nievergelt and E.M. Reingold, "Binary search trees of bounded balance", SIAM journal of computing 2(1), March 1973. < 1313353644 251114 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Your fingerprint mechanism essentially reduces to a big ol' list of fingerprint objects, right? < 1313353647 614028 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Once all the metaprogramming crap is done < 1313353658 729737 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm trying to take inspiration from systems solving totally different problems to mine ;D < 1313353705 468264 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :fingerprinting should be done with finger trees, obviously < 1313353726 423941 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: dont make me get that picture out again < 1313353741 858294 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net QUIT :Ping timeout: 260 seconds < 1313353751 189151 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Is there such thing as a cellular automaton where the cells are in a tree? < 1313353755 334622 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :no need, my brain looked it up < 1313353795 133327 :Nisstyre!~nisstyre@infocalypse-net.info QUIT :Ping timeout: 250 seconds < 1313353817 326138 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Taneb: hm well if you use a free noncommutative group as your space structure, you can get something like that < 1313353880 911355 :NihilistDandy!~ND@c-75-69-129-101.hsd1.nh.comcast.net JOIN :#esoteric < 1313353957 960057 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :like, up and down are still inverse, as are left and right, but going around in circles _without_ retracing your path does not end up at the same point < 1313353981 705587 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Something like that yeah < 1313353995 863454 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Right < 1313353996 907077 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :it's still a group, so still uniform < 1313353999 471471 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Taneb: I think it would essentially be a tree-rewriting language with a fixed set of rewrite rules;. < 1313354018 93131 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I could have a pretty near-perfect system if I could just get this stupid typeclass shit working < 1313354029 185425 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: well one where you can only change the tree _labels_, not the structure < 1313354046 887185 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah yeah < 1313354060 172887 :PatashuWarg!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1313354134 815156 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : oerjan: dont make me get that picture out again < 1313354138 497242 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :What picture? < 1313354141 263309 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: NO < 1313354145 764579 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm i suppose an infinite binary tree is more like the free group on three generators. oh hm the thing that makes that not quite a group is that to reverse going up, you must sometimes go down left and sometimes down right < 1313354149 775909 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott, WHAT PICTURE < 1313354158 511656 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: NOOOOOOoooooooOOOooooooooOOOOOOOOOOOOOOOOOOOoOOOOOoooooOOOOoooOOOooooooooooo < 1313354158 584724 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, why 3? < 1313354182 74842 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :elliott: what picture? < 1313354182 769143 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: 3 edges from each node, up, down left and down right? < 1313354187 623173 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :or wait hm < 1313354192 585612 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Only for a binary tree < 1313354196 108260 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :olsner: NOoooooOOOOOOOOOOOOOOOOooooooOOOOOOOOOOOOOOOooooOOOOOOOOOOOOOooooOOOOOOOOOOOoooooooooooooOOOOOOOOOOOOOOOOOOOOOooooooooooooOOOOOOOOOOOOOOOOOOOOOooooooooooooOOOOOOOOOOOOOOOOOOOOoooooooooooOOOOOOOOOOOOOOOOOOOOOOooooooooooooooooooooooooooooo < 1313354218 832162 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: well it doesn't fit properly because "up" doesn't have a unique inverse < 1313354242 338812 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Ew, ugly, each fingerprints' IP-specific state is going to be stored with its global state, not with the IP object. :/ < 1313354248 781036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :As in, a separate (Map IP IPState) in the fingerprint state. < 1313354249 979817 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :essentially you have two kinds of nodes, left and right ones < 1313354250 759772 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :This makes me sad. < 1313354271 988747 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, *ternary* trees, now... < 1313354338 636579 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: even worse, now the inverse of "up" has _three_ options... < 1313354357 454037 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, sure, but at least the isomorphism is more obvious. < 1313354360 424800 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Unary trees: isomorphic to linked lists? < 1313354361 569011 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm unless maybe you lay it out differently < 1313354372 559875 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Taneb: pretty much? < 1313354375 373036 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :sheesh not even oerjan cut in to tell me I'm a bad person < 1313354441 212244 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: oh right ternary trees work. in fact that's probably precisely what F_2 gives you (free group on two generators) < 1313354460 370939 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Well, it's ruined a bit by the fact that the root node has 4 leaves. < 1313354492 341839 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: um no root, _everything_ has four edges. to make this work you have to not really think of parents < 1313354515 743980 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Which ignores the original proposal completely < 1313354518 887331 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, yes, but n-ary trees generally have a root node, no? < 1313354526 78161 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :A cellular automaton on a tree < 1313354526 805197 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :not formally. < 1313354555 463625 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> I think? < 1313354573 890670 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :the root is just arbitrarily chosen. < 1313354581 366330 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Phantom_Hoover: i'm just pointing out that the free group on two generators has the structure of a ternary tree, although the directions are not intuitively matched in the same way < 1313354612 921416 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :trees don't need to have roots, a rootless tree is just a connected acyclic graph < 1313354619 508228 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :though I guess to be n-ary you actually do need a root... < 1313354635 281154 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, hence 'n-ary'. < 1313354641 76138 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :So, a cellular automaton on a tree is possible < 1313354648 157843 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because the root has n edges but every other node n+1 edges. < 1313354651 411374 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :And isn't called anything else as far as we are aware? < 1313354656 66426 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :although the "n-ary" term is intuively based on a rooted tree, since non-leaves have n+1 < 1313354688 314680 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Unrooted_binary_tree but that's just a rather arbitrary term. < 1313354696 525211 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :can't see the forest through all of the trees. < 1313354700 152267 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oh wait, yes you can. < 1313354741 519486 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :forest is such a stupid way to say acyclic graph... < 1313354769 804762 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well, non-connected as well. I guess it's shorter to say < 1313354843 413858 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :But do note that to a mathematician, a single tree is already a forest. < 1313354868 36050 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :fizzie, how so? < 1313354876 814537 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oh yes the special case of 1 < 1313354890 56683 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I guess it's not a "proper forest", though. < 1313354896 335446 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Compare subset/proper subset. < 1313354906 268071 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :So maybe it's intuitive enough. < 1313354923 841071 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?pl \x -> (f x, x) < 1313354924 308941 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :(,) =<< f < 1313354935 746748 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :first f . join (,) < 1313354950 801613 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :best forest: {} < 1313354978 587077 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :best forest: your mom < 1313354999 962373 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Is it possible to define a tree as a recursive tuple? < 1313355005 595963 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :I have to say that wine is getting bloody amazing. I'm using a shader-heavy DirectX 9c program and there are absolutely no issues in it < 1313355038 94891 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Like t is a tuple (bit,bit|t,bit|t) < 1313355063 17266 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Is that even a tuple? < 1313355165 994234 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :apart from syntax, it's pretty much a haskell algebraic datatype < 1313355194 744516 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :$ cabal < 1313355194 817163 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :The program 'cabal' is currently not installed. To run 'cabal' please ask your administrator to install the package 'cabal-install' < 1313355194 817367 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :^ sadness < 1313355223 139390 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :data T = T Bit (Either Bit T) (Either Bit T) < 1313355231 894120 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :fizzie: That's not a hard problem to solve < 1313355256 789245 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :fizzie, are you your administrator or are you actually (gasp) using a multi-user system? < 1313355268 822371 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Phantom_Hoover: I am not an administrator there, no. < 1313355284 930740 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Though generally "please install X for me" tickets have been solved in a day or so. < 1313355285 346590 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric ::O < 1313355307 458017 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :fizzie, how are you not administrator on everything ever you are so trustworthy. < 1313355309 167977 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I wonder what would happen if I installed every package in all of my repos < 1313355326 219538 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :more likely to be written something like data T = Leaf Bit | T1 Bit T | T2 Bit T T < 1313355327 852598 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Phantom_Hoover: It's at work, there's a Policy(tm). < 1313355337 439876 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :er wait < 1313355338 837333 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :fizzie, SO TRUSTWORTHY < 1313355343 542124 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :not the same < 1313355346 324764 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : $ cabal < 1313355346 407983 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : The program 'cabal' is currently not installed. To run 'cabal' please ask your administrator to install the package 'cabal-install' < 1313355346 574617 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : ^ sadness < 1313355354 885262 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: You want to run your own GHC really < 1313355358 708836 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :The distro packages are Really Bad. < 1313355369 277006 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Howso < 1313355372 766178 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Binary GHC package + source Haskell Platform is usually pretty painless < 1313355380 858397 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If you just use distro packages, everything is fine < 1313355388 523608 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: If you mix and match with native cabal, version conflicts ahoy < 1313355392 997749 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And if you ever get a package from both, god help you < 1313355397 749166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And you will because cabal is terrible < 1313355400 461773 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I haven't run into problems thus far < 1313355415 324615 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :But I haven't been using Haskell heavily lately so maybe I've been lucky < 1313355424 281300 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :http://www.vex.net/~trebla/haskell/sicp.xhtml has a bunch of boring information on it < 1313355439 35932 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Admittedly Arch is likely to have less problems than Debian in this area < 1313355448 528271 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But distros lag behind for GHC anyway < 1313355469 791435 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: of course cabal is terrible, it's written by Haskell-using eggheads. bahahahahaha! < 1313355472 726720 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>_> < 1313355521 7783 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :they probably love Woodrow Wilson. < 1313355576 744696 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :The system in question is Ubuntu 10.10, and it has ghc6 and a random sampling of libghc6-foo-dev packages (hunit, mtl, network, parsec2, quickcheck2, regex-base, uulib, x11, x11-xft, xmonad-contrib, xmonad, zlib) installed from the reposies. < 1313355605 287676 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :only US president that had a Ph.D < 1313355620 842337 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :In what? < 1313355649 710596 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ais523: them spammers are being persistent today < 1313355661 141638 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :history and political science < 1313355669 811404 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Not bad < 1313355676 922064 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wow, indeed < 1313355690 165687 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I'm just an admin, and they registered accounts, so I can't give them more than a 24-hour block even if I thought it would help < 1313355720 715747 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :eek < 1313355823 641401 :elliott!~elliott@unaffiliated/elliott QUIT :Ping timeout: 252 seconds < 1313355827 541061 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you need checkuser privileges (if the extension is installed), or db access privileges (if it isn't), to do a longer block than that < 1313355835 64036 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I can block the accounts themselves, but that's pointless < 1313355838 232157 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as they just make the one post < 1313355858 279264 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay so... anyone know anything about webkit# or gtk# < 1313355917 636041 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :"Wilsonianism calls for the United States to enter the world arena to fight for democracy, and has been a contentious position in American foreign policy." < 1313355921 989384 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :you don't say. < 1313355924 583269 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: I know that from a brief look the webkit-sharp binding looks really bare. < 1313355941 728111 :elliott!~elliott@unaffiliated/elliott JOIN :#esoteric < 1313355949 121211 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :f &&& id < 1313355953 389376 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: awesome. < 1313355959 772073 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :mabybe I should find another set of tools. < 1313355971 47834 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :21:01:30: and I'm just an admin, and they registered accounts, so I can't give them more than a 24-hour block even if I thought it would help < 1313355974 726541 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :huh what < 1313355975 428832 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric ::t (&&&) < 1313355976 756103 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (a :: * -> * -> *) b c c'. (Arrow a) => a b c -> a b c' -> a b (c, c') < 1313355978 847849 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oh < 1313355982 63098 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :you mean block their ip < 1313355983 667072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1313356027 129832 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so then what's something I can use in mono that a) renders webpages b) has a DOM interface < 1313356033 83305 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :maybe there's Gecko bindings. < 1313356038 546874 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Oh god < 1313356038 964170 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: is it good to base my encapsulation mechanism on module scope or is it better to have something ever so slightly uglier that is type safefwfe.......... < 1313356043 164495 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :I know these spambots < 1313356050 425943 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :The mezzawiki was haunted by them < 1313356053 468458 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: There seems to be one "good" (for some values of good) .NET binding of WebKit, and that's Awesomium, which is some sort of proprietary-commercial thing that has free-as-in-beer licenses, and the Mono support seems rather... like an afterthought, if even that. < 1313356059 962377 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Type safety is good < 1313356065 418057 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :The owner eventually blocked new user account regisration < 1313356067 416295 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: thisis true < 1313356069 332544 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :The owner being DMM < 1313356079 779127 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: so what you're telling me is < 1313356084 574859 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I should find Gecko bindings. < 1313356088 495647 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fpREFC :: Fingerprint < 1313356088 588341 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fpREFC = < 1313356088 660814 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : Fingerprint < 1313356088 661009 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : { fpName = packName "REFC" < 1313356088 661119 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , fpInitialGlobalState = newRefStore < 1313356089 357247 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , fpInitialIPState = return () < 1313356091 269059 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , fpHandles = [D,R] < 1313356093 338727 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : , fpRun = run } < 1313356095 448115 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :much nicer than a class instance < 1313356099 509821 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or use something like jssh to drive Firefox 3.6 with Javascript. < 1313356103 53072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :also probably much less stupid oevrhead < 1313356105 393242 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :plus < 1313356107 253085 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :about ten fewer language extensions < 1313356156 925973 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: Well, I don't know what you want. But I think there is a Gecko binding for the embed-gecko-in-gtk scenario. I don't know how well that one does the "expose DOM to .NET" thing. < 1313356178 58924 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: the person who hired me is working on a browser automation scripting engine thing. < 1313356185 35360 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and wants a linux port... using basically anything. < 1313356211 19733 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I can use any kind of backend to display and control a rendered web page. < 1313356218 141357 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: techiecniecialy it is typjepesafe... it would just mean that fingerprints could (theoretically) access the data of other fingerprints, if the module exports did not prevent that < 1313356224 64601 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but it has to work with Mono/C# < 1313356242 551437 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I guess it would be frontend actually. a rendering engine is a frontend. :P < 1313356247 143000 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: Some fingerprints need to interact anyway < 1313356260 40843 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hmm, like what < 1313356263 717974 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :That would poke a major hole in my model ;-) < 1313356264 974494 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :SOCK/SCKE :-P < 1313356282 846347 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Bleh < 1313356287 4979 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Blame fizzie for that one < 1313356296 555746 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : The mezzawiki was haunted by them <-- btw last i checked i couldn't find any link to the mezzawiki on any of the iwc, d&d or mezzacotta frontpages < 1313356299 738262 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: shakes fist < 1313356310 611527 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :oerjan: It was very secretive < 1313356322 257438 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'll probably do that one by adding the shared socket state to FungeState directly < 1313356328 375986 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :oerjan: http://mezzacotta.net/wiki/Main_Page < 1313356343 10019 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: How's ATHR < 1313356352 174770 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Yeah, SCKE was not really a good idea. But perhaps you can opt to just support the (nonexistant) NSCK. < 1313356366 67416 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: Well, gecko-sharp is at least part of mono, based on the fact that the download links point to ftp.novell.com/pub/mono/sources/. It might not do the DOM any better though. < 1313356408 844431 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: Has anyone who isn't you ever used SCKE? < 1313356422 479218 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :elliott: Not to my knowledge, no. < 1313356453 876344 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Actually I'm not really sure "used" is a right word for my case either. < 1313356455 318460 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: I'll implement it anyway out of general masochism but we could just bribe you to stop using it. < 1313356461 31743 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The same goes for SOCK :-P < 1313356472 7327 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Because fungot doesn't use it either, I never got that HTTP client part done. < 1313356472 79760 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :fizzie: you have a great appreciation for the fine arts. you use the hammer and nails. they will come a day < 1313356497 590710 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: well seeing as webkit# seemingly has no DOM at all, anything would instantly be "better" < 1313356504 827166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: There are more Funge implementors in the world than programmers, which wouldn't be surprising (see brainfuck) if not for the fact that it's so damn hard to implement and quite easy to code in < 1313356537 521284 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : Vorpal: How's ATHR <-- feeling well < 1313356538 225929 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I shouldn't've made Mycology, it made it too easy to implement < 1313356547 855917 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :just asked it < 1313356552 556827 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: Is it implementable < 1313356555 989393 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Speak for yourself < 1313356558 445869 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, forgot XD < 1313356583 927545 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Also try to avoid generalising based on Vorpal's ability to copy CCBI code ;-) < 1313356590 951978 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :See with you, I just coerced the code out in English form slowly. < 1313356614 495388 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : oerjan: It was very secretive <-- oh so it's not _intended_ to be findable by ordinary visitors? < 1313356640 433519 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: Well, I grepped the Gecko.WebControl APIdoc .xml file (I can't figure out how to actually show that with monodoc without installing it somewhere, and it's not easily findable in the web) and the only thing matching "dom" (case-insensitively) is some event-handlers. < 1313356691 56095 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :fizzie: It might be like .getDocument < 1313356754 19458 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Deewiant: I'd say it really hasn't made it too easy to implement. < 1313356770 567752 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Says someone who's never done it < 1313356787 181306 :pikhq!~pikhq@71-219-246-66.clsp.qwest.net PRIVMSG #esoteric :Deewiant: Just harder to unintentionally fuck it up. < 1313356794 139801 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Really at this point it's a vehicle for me to show how awesome Haskell is ;-) < 1313356826 642373 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And also to convince fizzie that he should run fungot on it, once I can prove it runs faster than cfunge. < 1313356826 891237 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :elliott: just be patient, the answer, the fact remained except the pony a begrudging pat, as gently in the horn fell off. dammit. < 1313356874 792529 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, as far as I remember most of ATHR is implementable but not really the inter-thread communication stuff < 1313356885 996042 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :that needs reworking < 1313356907 536601 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: Please let me know when it exists, it'll be fun figuring out interactions between it and TRDS < 1313356925 605155 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, well I will leave that part completely up to you < 1313356942 825232 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: What part < 1313356945 746939 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, I would assume TRDS happens inside each ATHR thread, but bugger all of you go back past a ATHR fork < 1313356963 256943 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, the part of figuring out interactions < 1313356964 850597 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: muuuuuuuuuuuuuuuuuudem < 1313357041 90074 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Can't you fix the three lines that need changing yourself :P < 1313357106 975824 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Are there only three lines that need changing? < 1313357146 248519 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Last I recall, it's still in non-buffering land. < 1313357157 267765 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: well uh... apparently C# bindings suck. < 1313357161 765664 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and I just need to use jssh. < 1313357162 626025 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Uhh, both ends use select < 1313357165 628414 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And buffer < 1313357172 934650 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't know WHICH three lines need changing < 1313357176 805369 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But it should, conceptually, work < 1313357201 962738 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Ahhhhhhhhhhhhhhhhhhhhhhhh < 1313357215 905284 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Just see my latest sprunge links :P < 1313357219 432250 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Whenever those were < 1313357261 91785 :Gregor!Gregor@codu.org PRIVMSG #esoteric :http://sprunge.us/CUiE is the latest I have < 1313357264 123960 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: The browser backends supported by monodoc are Gecko, GtkHtml, WebKit and MonoWebBrowser; you'd probably have to pick one of those to actually render a page. All of them seem quite hacky. (And GtkHtml will not support much of anything.) < 1313357325 843710 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Looks right to me < 1313357331 959072 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: It selects on both ends, it has buffers < 1313357340 505756 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Just Doesn't Work(tm) < 1313357361 618724 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I'm too tired to debug it today, I'll have a look tomorrow if you don't miraculously twiddle it into workingness :P < 1313357371 145181 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Pff < 1313357389 158115 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :software problems | Functor? I hardly knew 'er! | http://codu.org/logs/_esoteric/ < 1313357393 463885 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake TOPIC #esoteric :software problems | Functor? I hardly knew 'er! | http://codu.org/logs/_esoteric/ < 1313357396 532351 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::3 < 1313357410 394288 :sllide!~jari@ip565eb113.direct-adsl.nl PRIVMSG #esoteric :funky < 1313357446 913732 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: At least Mono.WebBrowser's IWebBrowser interface has a Document property that gives you an IDocument, which is from a Mono.WebBrowser.DOM namespace, which seems to have interfaces corresponding to a DOM tree. < 1313357465 707241 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :(The underlying machinery there is Gecko via gluezilla.) < 1313357471 262276 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: this is good... < 1313357531 297690 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :lol gecko < 1313357539 237156 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :(I have no idea why none of this shows up in the online monodoc thing; I had to fetch the mono-2.10.2.tar.bz2 source-ball and peek at the .cs files in mcs/class/Mono.WebBrowser/.) < 1313357573 526613 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: what does WebBrowser render on top of? < 1313357576 425512 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :gtk#? < 1313357619 797067 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :CakeProphet: That's a good question; it's official use case is to be the browser control in the Mono WinForms implementation. < 1313357635 829711 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Oh. < 1313357650 841481 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :"Mono.WebBrowser is also a class library, but a private one (i.e., it's in the gac but can't be "discovered" by pkg-config tools since it doesn't ship a .pc file. It can obviously be linked to directly). Winforms depends on it directly, and it exposes interfaces that hide browser engine implementation details. The interfaces are more in line with the DOM spec, but are not as complete, mainly because the .NET Winforms WebBrowser control is not feature-complete i < 1313357650 913426 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :n itself." < 1313357662 628680 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :Heh, it doesn't sound terribly usable as a standalone component. < 1313357719 742867 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :uuuugh < 1313357732 877693 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that entire paragraph < 1313357740 58560 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :is pretty much nonsense to me. < 1313357796 663344 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :As far as I can tell it translates mostly down to "it's not really meant to be used directly, just by the WinForms browser control". < 1313357838 819334 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I don't know how "serious" that is and whether some stuff does in fact use it directly. < 1313357855 224943 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :At least there is an interface there. (It abstracts over Gecko and WebKit backends, turns out.) < 1313357864 870520 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: I think I know the problem. If you have no data to send, you should not have it in the write set for select(). IIRC, it will only signal that the write buffer is ready once; you must write() at least once for it to signal again. < 1313357878 995851 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Ah. < 1313357890 808622 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Easy enough to fix, just filter for non-empty write_buffer < 1313357904 647340 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, except that conns don't know their conn_id < 1313357916 530707 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :But whatever you can just get it from handle_for_id and then add the stdio thing < 1313357916 602783 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Nope, I'm a terrible liar. < 1313357921 196541 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :derp < 1313357970 81480 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Although I /do/ think it will be a busy loop that way, that doesn't seem to be the bug. < 1313357970 373353 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Go on < 1313357979 167888 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yay :P < 1313358000 910377 :Gregor!Gregor@codu.org PRIVMSG #esoteric :(Still verifying) < 1313358039 688393 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :select is level-triggered, isn't it not? It'll keep telling you "yes you can write" as long as you actually can write. < 1313358056 816211 :Gregor!Gregor@codu.org PRIVMSG #esoteric :fizzie: Yup. < 1313358067 237061 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Which makes this a busy loop, which is less than ideal, but not the bug :P < 1313358084 822187 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Have I mentioned how easy this would be in @ :-P < 1313358088 954535 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Seriously Unix IO is so terrible AUGH < 1313358152 896158 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: What the bloody huh? host.py is in a loop of thinking it can read from stdin, then reading nothing ... < 1313358227 434388 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: can't seem to find Mono.Mozilla or Mono.Webkit < 1313358276 805712 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Hmm < 1313358279 196357 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: That means stdin is EOF < 1313358287 959142 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :I just assumed EOF would never happen :D < 1313358329 767407 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Oh, lul, didn't notice socket.error: [Errno 98] Address already in use < 1313358344 705619 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1313358586 249028 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, EOF on stdin can happen easily. < 1313358699 141032 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :No shit < 1313358803 17609 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fizzie: so yeah there's an IWebBrowser interface but there doesn't seem to be an actual base class. < 1313358814 810425 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :now to construct < 1313358836 963484 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :forall cat a r. (Category cat, forall b. Applicative (cat b)) => a -> cat (cat (a, cat a a) r) r < 1313358841 857634 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CAN IT EVEN BE DONE < 1313358866 857162 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :?djinn forall cat a r. (Category cat, forall b. Applicative (cat b)) => a -> cat (cat (a, cat a a) r) r < 1313358867 672076 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Cannot parse command < 1313358871 287425 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Signs point to "no" < 1313358874 157858 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: That's not even a valid Haskell signature < 1313358875 573859 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :With any extensions < 1313358884 524386 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Can't forall in a context like that < 1313358891 423730 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And djinn doesn't even begin to handle half of any of that anyway :P < 1313358947 290570 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, what is djinn? < 1313358954 5780 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :A thing < 1313358962 307378 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?djinn (a -> b -> c) -> (b -> a -> c) < 1313358962 681455 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a b c = a c b < 1313358972 110721 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?djinn a -> (b -> a) -> Maybe b -> a < 1313358972 442855 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a b c = < 1313358972 608556 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : case c of < 1313358972 820330 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Nothing -> a < 1313358972 891669 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Just d -> b d < 1313358976 473635 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :10:10:02 data Conservative a = Precise !a | Imprecise !a < 1313358976 545060 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :10:10:03 that's a Functor < 1313358978 328554 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :?djinn (a -> a) -> a < 1313358978 581716 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1313358995 671753 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :err, can't it? < 1313359005 630285 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :no it's not it breaks on fmap (const True) . fmap (const undefined) >:) < 1313359027 67833 :variable!~thing@unaffiliated/variable JOIN :#esoteric < 1313359034 872678 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: not in a logically sound manner < 1313359035 752181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wat < 1313359039 55922 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :heh < 1313359041 289717 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, okay that is true < 1313359052 434947 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :?djinn a -> a < 1313359052 683766 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f a = a < 1313359061 28030 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :?djinn a -> b < 1313359061 387193 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1313359063 911507 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm right < 1313359072 926103 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :?djinn a -> b -> b < 1313359073 89402 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f _ a = a < 1313359079 181613 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :?djinn a -> a -> a < 1313359079 592618 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :f _ a = a < 1313359083 782829 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: I think somebody's disagreeing on the protocol somewhere ... < 1313359089 187612 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :well there are a lot of interpretations for that < 1313359093 559627 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Gregor, btw what are you doing? < 1313359105 102156 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: After getting the initial connection command, the host is receiving a command of length 1, unprintable character. < 1313359108 332259 :Gregor!Gregor@codu.org PRIVMSG #esoteric :Vorpal: MAGIC < 1313359129 86817 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Gregor, the gathering? < 1313359129 576673 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Specifically, 0 ... < 1313359143 856573 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Nice :P < 1313359151 251433 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: It might be a write string call or whatever < 1313359154 730936 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Guest might not be sending "c" < 1313359158 579497 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :Gregor, I bet zzo38 will be interested in it if it is that < 1313359164 461680 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : well there are a lot of interpretations for that < 1313359169 852980 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Vorpal: All proofs are indistinguishable < 1313359178 903440 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: What the heww? Why was handle_connection sending the error code back? < 1313359186 517866 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Oh < 1313359188 18593 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :elliott, err. Hm < 1313359191 307501 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: err = read_short() \n write_short(err) # whuuuu? < 1313359192 204192 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Probably it meant to send to the "TCP client" < 1313359194 547569 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Who does not exist any more < 1313359199 363354 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :And I forgot that you have to specify destinations < 1313359201 262329 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah < 1313359216 533695 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: You'se gots lots o' protocol problems here, bub < 1313359246 244355 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Just remove the write_short(err) :P < 1313359262 771369 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : elliott, err. Hm < 1313359262 942742 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric : elliott: err = read_short() \n write_short(err) # whuuuu? < 1313359277 396528 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :hm... seems I'm clairvoyant < 1313359298 24408 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :(I even got the column of the text right) < 1313359316 500323 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :Vorpal: i think ?djinn works in a terminating language only superficially similar to haskell < 1313359322 125702 :Vorpal!~AnMaster@unaffiliated/anmaster PRIVMSG #esoteric :oerjan, ah < 1313359338 349018 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :so as to be logically sound in the curry-howard sense < 1313359339 959241 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :argh how does this work < 1313359384 617814 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :also it doesn't really support recursion, even terminating < 1313359387 984438 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :aha < 1313359413 903530 :Gregor!Gregor@codu.org PRIVMSG #esoteric :elliott: Still no go < 1313359467 949295 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?djinn ((b -> a) -> a) -> a < 1313359468 298702 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1313359526 355556 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :hm that's not right is it < 1313359537 493842 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :for pierce's law < 1313359553 62181 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Huh < 1313359570 788924 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?check \a b -> ((b <= a) <= a) <= (a :: Bool) < 1313359571 455841 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "Falsifiable, after 1 tests:\nFalse\nTrue\n" < 1313359599 698472 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?check \a b -> ((b <= a) <= a) <= (b :: Bool) < 1313359600 423571 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "Falsifiable, after 1 tests:\nTrue\nFalse\n" < 1313359667 204939 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :18:07 < MulleDK19> I love crashes that corrupt my source files < 1313359668 253732 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :18:07 < MulleDK19> maybe I should start using source code control < 1313359670 186151 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :...what? < 1313359686 845545 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : Does the IO type in Haskell have any constructors? < 1313359689 696316 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?src IO < 1313359689 873007 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Just what do you think you're doing Dave? < 1313359694 366257 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I wonder if he's implementing some kind of metaprogramming tool < 1313359694 780701 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric ::t (<*>) < 1313359695 665396 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall (f :: * -> *) a b. (Applicative f) => f (a -> b) -> f a -> f b < 1313359696 991093 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that used to be in lambdabot < 1313359699 505281 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that directly alters source files. < 1313359706 696799 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: or maybe < 1313359707 845619 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :his computer < 1313359708 344150 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :crashed < 1313359723 133071 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :(c -> m (a -> b)) -> (c -> m a) -> (c -> m b) < 1313359724 210614 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :anyway the soundness of haskell depends on not being able to use it freely < 1313359769 86157 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ACTION looks up peirce's law < 1313359790 646470 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?check \a b -> ((a <= b) <= a) <= (a :: Bool) < 1313359791 313150 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : "OK, passed 500 tests." < 1313359799 746207 :Taneb!~Taneb@host-78-146-170-91.as13285.net PRIVMSG #esoteric :Goodnight < 1313359801 663866 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :?djinn ((a -> b) -> a) -> a < 1313359802 25727 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :-- f cannot be realized. < 1313359816 684293 :Taneb!~Taneb@host-78-146-170-91.as13285.net QUIT :Read error: Connection reset by peer < 1313359864 165538 :Gregor!Gregor@codu.org PRIVMSG #esoteric :lambdabot: Sounds like a personal problem. < 1313359869 205830 :Gregor!Gregor@codu.org PRIVMSG #esoteric :*ohhhhhhh* < 1313359886 687134 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric ::t callCC < 1313359887 552742 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a (m :: * -> *) b. (MonadCont m) => ((a -> m b) -> m a) -> m a < 1313359993 523975 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hlep < 1313360132 656580 :FireFly!~firefly@unaffiliated/firefly QUIT :Quit: Hi, I'm a quit message virus. Please replace your old line with this line and help me take over the world of IRC. < 1313360184 845785 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: hatw < 1313360296 810326 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric : Well, brainfuck is turing complete with a maximum loop depth of seven < 1313360300 733648 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :that sounds high... < 1313360312 505909 :MDude!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net JOIN :#esoteric < 1313360324 197432 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: dbfi < 1313360333 449274 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :elliott: trsføoubsgfgd < 1313360356 518320 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :no < 1313360357 292808 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: dbfi < 1313360357 982307 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :loop < 1313360358 961569 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :limit < 1313360362 768140 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :based on < 1313360388 152513 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :use the farce, elliott < 1313360452 113242 :sllide!~jari@ip565eb113.direct-adsl.nl QUIT :Ping timeout: 240 seconds < 1313360456 144277 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh right < 1313360475 126333 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i thought you were still babbling about your hlep alot < 1313360660 648483 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :reducing that a lot should be just a matter of branching with adjacent loops rather than nested ones < 1313360859 9444 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :marvellous, IE steals focus after loading the webpage i wanted _and_ interprets my backspaces as a command to leave the page again < 1313360869 261845 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dont use ie < 1313360931 369904 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :are you saying no other browsers steal focus < 1313360969 878449 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :other browsers interpret backspace as a command to leave the page, at least < 1313360971 126506 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I hate it < 1313360979 13392 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh wait no < 1313360986 153135 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it's just dumb pages that do that?? < 1313360990 833907 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why do they do that < 1313360994 633461 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it is the worst idea < 1313361010 788281 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in general, Windows interprets backspace as back < 1313361014 119701 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh < 1313361019 164774 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. in directory listings < 1313361032 73809 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :on Linux, the most common binding seems to be alt-left < 1313361039 325050 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric : are you saying no other browsers steal focus < 1313361052 786201 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :chrome has never stolen my focus < 1313361062 352995 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: and chrome remembers form details on returning to a page through history < 1313361064 759166 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :as does firefox < 1313361068 820416 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :making it much less annoying < 1313361069 942281 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :ais523: alt-left also works, it's what i use when i do it deliberately < 1313361074 451274 :elliott!~elliott@unaffiliated/elliott PRIVMSG #esoteric :dunno if ie does that nowadays < 1313361084 318440 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :ACTION starts reading why's poignant guide to ruby < 1313361092 748315 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :chromme appears not to do backspacery when there isn't javascript that makes the backspacery happen < 1313361099 499609 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :why anyone would make that javascript is beyond me < 1313361112 678933 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Backspace = back is pain < 1313361140 439638 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i can do a lot of grumbling about how programs should not interpret text entry keys as commands but it all stumbles into the fact i use vim :P < 1313361211 514855 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :well at least vim has different modes for that stuff and is generally predictable about it??? < 1313361225 926426 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :i've several times been annoyed when i accidentally typed an n or a q into simon tatham's puzzle windows < 1313361595 230422 :elliott!~elliott@unaffiliated/elliott QUIT :Ping timeout: 246 seconds < 1313361861 137131 :Nisstyre!~nisstyre@infocalypse-net.info JOIN :#esoteric < 1313362060 380439 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, vim???? DIE < 1313362083 636693 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :* Sgeo starts reading why's poignant guide to ruby < 1313362093 896915 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I thought you'd already loved and lost Ruby. < 1313362110 919086 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :Did I ever say I loved it? I don't remember < 1313362122 17876 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :I'm pretty sure that I would have lost it to Smalltalk < 1313362148 270335 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :But I want a refresher, I guess < 1313362205 85420 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I remember disliking ruby < 1313362224 225031 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I hate everything. < 1313362241 25960 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I'm going to smoke hookah and contemplate a solution to all of this. < 1313362317 916955 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I actually like Ruby though I know very little practical knowledge of it < 1313362329 983350 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :just the syntax/some-semantics < 1313362489 9856 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :such a rube < 1313362670 693434 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au JOIN :#esoteric < 1313362795 828199 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :itidus20! < 1313362829 918372 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :Ph:! < 1313362832 134798 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :hmm < 1313362836 486177 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :Phantom_Hoover: ! < 1313362871 918925 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :itidus2432902008176640000 < 1313362950 533149 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Sgeobot, check for updates. < 1313363032 499235 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :oh no, you've summoned itidus20's evil clone! < 1313363055 962460 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :oerjan, quick, get your evil twin to fight him! < 1313363305 62588 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :this is hopeless. < 1313363377 323092 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :There is always hope. < 1313363430 815199 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Except for the release of the HURD. < 1313363503 514485 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no, there's no hope < 1313363507 838948 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :this approach isn't going to work. < 1313363529 560553 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :all bindings for web browser rendering engines in Mono C# are stupid. < 1313363651 377689 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Mono.WebBrowser has all of these DOM interfaces... but, uh, no actual code. < 1313363697 984328 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :http://hyotynen.kapsi.fi/trekfailure/ < 1313363713 114070 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :This... this is completely identical to authentic Treknobabble. < 1313363727 733401 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :They should sell it. < 1313364563 287992 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :procedural generation is popular in part because it reduces the necessary labor and is more productive. on the downside, the lack of direct human control over each generated thing imbibes a lack of meaning in the created content < 1313364605 182723 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :having said this the failure generator is pretty awesome < 1313364708 468940 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :fungot: Did you notice he called you meaningless? < 1313364708 579157 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :fizzie: and just what your porkhollow's fat ass needs. when the full chain was nearly closed that you would have a mayoral business which you take very seriously and you will defend this package with your life. < 1313364810 648628 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :fizzie: i just want to ramble on about it like captain picard.. except not into a lonely document.. but into a channel < 1313364894 615781 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :I like discovering tradeoffs. Because explanations based on tradeoffs lend themselves to objectivity. < 1313364927 553099 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :So the tradeoff is the productivity of procedural generation versus the intimacy and warmth of manual creation < 1313364951 95019 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :solution: slave labour < 1313365023 236015 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :The way I see it, humans reject _some_ procedural things because they sense that they are being cheated. < 1313365067 969219 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :maybe you do < 1313365076 330125 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I personally like procedural things < 1313365098 511089 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :For instance, most people would rather not read a procedurally generated textual novel. < 1313365110 275228 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I'd love it < 1313365114 206422 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :itidus20, that's because the procedures aren't good enough yet < 1313365115 92402 :Sgeo!~Sgeo@ool-ad034d00.dyn.optonline.net PRIVMSG #esoteric :>.> < 1313365122 393715 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :bad procedures are cute < 1313365134 31840 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :theres a difference between sampling a procedure and reading a whole slab of it < 1313365152 350487 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the difference is slabs are bigger < 1313365152 729810 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :now.. uhh.. having said this.. < 1313365166 729650 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :no no wait umm < 1313365169 768757 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :hm < 1313365181 90513 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :well people read novels because there is value in them < 1313365227 97616 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :but a novel full of procedurally generated content is likely to leave a person feeling cheated < 1313365240 425148 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: write a novel < 1313365240 929331 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :CakeProphet: this is a really hot look for a stronger! but you were asleep. how exciting! a realm that is a ring < 1313365281 468541 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: write a novel < 1313365281 885048 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :CakeProphet: what a surprise, you are dragging your schizophrenic hopping < 1313365296 333893 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: write a novel < 1313365296 913775 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :CakeProphet: of what?! no man, cage is sweet. so sweet. so sweet. so sweet. you feel pangs of jealousy, though in a way that it shakes is the same as the word " crazy" < 1313365307 200818 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :hehe < 1313365320 501432 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :ok that was pretty cool < 1313365347 876681 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :uuuugh < 1313365356 631009 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i actually like that one :-s < 1313365358 129036 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I am going to fucking bash my head into a sturdy solid object. < 1313365369 201102 :CakeProphet!~adam@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :or, just use jssh to do this crap. < 1313365444 601884 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i dont hate procedural stuff. i am sure there are solutions where hybrid uses of procedural generation and manual generation can be greater than the sum of the parts < 1313365600 661314 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i think that if you procedurally generate something.. and then.. proceed to shape it with only manual stuff, you can win out.. that would be what minecraft did < 1313365664 634172 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Wha? < 1313365667 115274 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :if the demarcation between when the procedural generation begins and ends is clear that would help a lot < 1313365684 674009 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Procedural generation... doesn't make sense without manual stuff. < 1313365698 119129 :zzo38!~zzo38@h24-207-49-17.dlt.dccnet.com PRIVMSG #esoteric :itidus20: Yes I think it can be possible to make things in that way; possibly music can be done, or other things. Possibly it can experiment using random output of FurryScript to do stuff such as D&D game and then modify stuff. The included scripts are too simple for that but you can improve it to do that < 1313365718 544043 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You need, at some point, to define a function from noise to interactale stuff. < 1313365724 324793 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :*interactable < 1313365750 993534 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :ok a much nicer way to say it is < 1313365782 651124 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :you could use procedural generation to establish the initial state... but then get humans to carry it forward from there < 1313365829 935761 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Procedural generation is a matter of mapping a very very large set of meaningless values to something that can be perceived as having a certain structure. < 1313365843 477864 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :in mezzacotta.. humans vote on which days are good < 1313365847 324571 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric ::D < 1313365853 667630 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :so that adds value < 1313365854 903397 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :And that's... different. < 1313365876 397781 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :it has an initial state and each day won't change < 1313365908 771668 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :like.. 2000bc is set in stone < 1313365929 698698 :monqy!~chap@pool-71-102-215-70.snloca.dsl-w.verizon.net PRIVMSG #esoteric :once again itidus20 philisophises without knowing what he's talking about < 1313366190 744545 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :true < 1313366236 387385 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :i am confusing general procedural generation with random number generation < 1313366299 804717 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Quit: Leaving < 1313366346 622785 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :if a game had hardcoded random number seeds then that would add an interesting twist that you could learn how it unfolds < 1313366348 541150 :oerjan!oerjan@tyrell.nvg.ntnu.no PRIVMSG #esoteric :mezzacotta's algorithm is actually deterministic, iirc. that way they can clear away the cache of rarely visited days. < 1313366372 194556 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :well yeah. < 1313366378 818243 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :itidus20: at least one final fantasy game (FF1?) is like that < 1313366392 396446 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :oh i didn't know that < 1313366397 168796 :itidus20!~itidus20@c210-49-78-148.dandn3.vic.optusnet.com.au PRIVMSG #esoteric :@ ais