< 1321401613 693057 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you mean, looking at the value at a cursor? < 1321401626 288365 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not bad < 1321401647 161906 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well, finding the neighboring Seq's and stuff < 1321401661 500895 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, OK < 1321401666 653054 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so accessing the value at a cursor is still O(1)? < 1321401669 292871 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321401677 409943 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well yeah that should be possible < 1321401689 130968 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321401718 15177 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION is probably more interested in the mutation performance :P < 1321401820 404537 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well to move a cursor along an edge, you would need to look up the neighboring Seq's and adjust them < 1321401869 577649 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh in addition to neighboring Seq's there may also be neighboring collapsed trees with no other cursors adjacent < 1321401897 945214 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i may not be following as closely as i thought >:) < 1321401904 845353 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so do you have any idea what this would look like for an actual tree structure? < 1321401923 240048 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think this may be a graph minor construction < 1321401951 382610 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :erm < 1321402119 706432 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: so basically each Seq can have up to 2 cursors as parents? < 1321402123 151655 :TeruFSX!~quassel@71-210-150-147.mpls.qwest.net QUIT :Read error: Connection reset by peer < 1321402125 148979 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*-.-.-*-.-. *-* < 1321402125 194340 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : | -> | < 1321402125 194525 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : .-*-.-.-* *-+-* < 1321402129 479168 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: yes < 1321402152 467728 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's pretty :') < 1321402163 776869 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the left part is the original tree with *'s as real cursors, the right is the collapsed tree, + is a virtual cursor < 1321402215 320808 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321402294 175236 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: what would be wrong with a BST of cursors that point to Seq leaves? (I don't think this terminology makes sense when dealing with graphs but whatever) < 1321402299 212166 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :each of the right part - and | would be a Seq of the lines collapsed to it. oh hm i guess that doesn't show how there might be additional trees on those lines that are collapsed < 1321402307 787055 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :what's a BST again < 1321402311 472339 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :binary search tree. < 1321402335 975929 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well that's something like what i'm imagining < 1321402353 354616 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :that is exactly what I'm imagining. :P < 1321402378 336745 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I guess you could use a 2-3 tree or some variation of a BST. < 1321402389 26475 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well it's just a dictionary? < 1321402400 70356 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah, yes. < 1321402482 974886 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if by dictionary you mean a map implemented as a binary search tree. :) < 1321402499 753499 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's afaik what haskell's Data.Map is. < 1321402505 193499 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :yes. < 1321402529 924917 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :wait so what about... Seq Cursors? < 1321402543 556340 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wat < 1321402546 212161 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :no? < 1321402546 944218 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay. < 1321402599 704010 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :as in use a 2-3 finger tree to store a sequence of cursors, which point to two sub Seqs. < 1321402659 730399 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION head no wrap again < 1321402684 865340 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ignore that silly CakeProphet dude and tell me more :D < 1321402785 602872 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (*)(-.-.-)(*-.-.) *-* < 1321402785 648091 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (|) -> | < 1321402785 822690 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (.-*-)(.)(-.-)(*) *-+-* < 1321402798 184064 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :\ o / < 1321402804 75819 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :How does that bot work? < 1321402809 551521 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that shows precisely what part of the original is included in each char < 1321402814 261138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :on the right < 1321402816 1575 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :^celebrate < 1321402816 221148 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric : \o| |o| |o/ \m/ \m/ |o/ \o/ \o| \m/ \m/ \o| |o| |o/ < 1321402816 386121 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :  |   |   |    `\o/´    |   |   |    `\o/´    |   |   | < 1321402816 431480 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :  >\  |\ /<      |     /<  /´\  >\     |      >\ /<  /| < 1321402816 536615 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :             (_|¯`\                   /´\ < 1321402816 581863 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                  |_)               (_| |_) < 1321402820 177898 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :shachaf: like that. < 1321402833 272795 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :shachaf: also that's a human being not a bot. how rude! < 1321402842 839667 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :\o/ < 1321402842 933239 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :  | < 1321402843 53170 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric : /`\ < 1321402846 354455 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh oops < 1321402852 749534 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: sorry, typo there < 1321402872 358082 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (*)(-.-.-)(*-.-.) *-* < 1321402872 558532 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (|) -> | < 1321402872 603868 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (.-*)(-)(.)(-.-)(*) *-+-* < 1321402881 348551 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321402896 434408 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: this is more efficient the closer each cursor is, right? < 1321402910 373084 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :erm how so? < 1321402923 887969 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, hmm, no < 1321402926 67631 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i was misreading it :) < 1321402940 824785 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :HASH TABLE OF CURSORS MUTABILITY YEAAAAH < 1321402943 944972 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the idea of the Seq's and collapsed subtrees is to make the parts between cursors O(1) to move in < 1321402965 684343 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well for a certain value of "1" < 1321402970 65718 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right < 1321403020 804199 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION writes a O(1) hash function that sleeps for 3 years before returning 1. < 1321403053 678419 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :IT'S PRACTICALLY INSTANT. < 1321403094 605627 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :O(noes) < 1321403103 714825 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :...As they say on the Internet. < 1321403124 543243 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I don't think you should ignore constant factors when your constant factor is 5 trillion. < 1321403127 961652 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :silly Big O notation. < 1321403135 772370 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`quote O\(slow\) < 1321403137 599212 :HackEgo!foobar@codu.org PRIVMSG #esoteric :276) [on egojoust] The fact is that EgoBot's % handling is O(slow) and O(big), and mine isn't. < 1321403153 345953 :augur!~augur@216-164-57-20.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com QUIT :Remote host closed the connection < 1321403157 911560 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`quote themselves < 1321403160 142175 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1321403165 842621 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`quote norway < 1321403167 879126 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1321403173 788736 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`quote lunch < 1321403175 826470 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1321403179 174441 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Useless bot. < 1321403186 374559 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :`quote fuck < 1321403188 312204 :HackEgo!foobar@codu.org PRIVMSG #esoteric :225) I love the way zzo38's comment was cut off after the f of brainfuck that's just the most hilarious place to cut it off in a discussion about censorshi \ 275) oerjan: Tell us what (a(b{c}d)*2e)%2 expands to <-- ababcdbcdedbabcdbcdede, i think oerjan: What - the - fuck \ 297) okay see in my head it went, you send from your other number smth like "i'd certainly < 1321403196 281594 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`addquote `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403198 307116 :HackEgo!foobar@codu.org PRIVMSG #esoteric :718) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403203 656395 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`quote themselves < 1321403204 921899 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`quote norway < 1321403205 686564 :HackEgo!foobar@codu.org PRIVMSG #esoteric :718) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403206 67377 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`quote lunch < 1321403207 875959 :HackEgo!foobar@codu.org PRIVMSG #esoteric :718) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403208 551082 :HackEgo!foobar@codu.org PRIVMSG #esoteric :718) `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403218 363221 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :useful bot < 1321403221 859838 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`removequote `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403223 525426 :HackEgo!foobar@codu.org PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: removequote: not found < 1321403230 94490 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`delquote `quote themselves No output. `quote norway No output. `quote lunch No output. Useless bot. < 1321403231 676477 :HackEgo!foobar@codu.org PRIVMSG #esoteric :No output. < 1321403233 130475 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`ls bin < 1321403235 86930 :HackEgo!foobar@codu.org PRIVMSG #esoteric :​? \ @ \ addquote \ allquotes \ calc \ define \ delquote \ etymology \ forget \ fortune \ frink \ google \ json \ k \ karma \ karma+ \ karma- \ learn \ log \ logurl \ macro \ marco \ paste \ pastekarma \ pastelog \ pastelogs \ pastenquotes \ pastequotes \ pastewisdom \ ping \ prefixes \ qc \ quote \ quotes \ roll \ runperl \ toutf8 \ translate \ translatefromto \ translateto \ units \ url \ wl \ word \ wtf < 1321403239 619049 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: please kick elliott for spam < 1321403243 554070 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also shachaf < 1321403248 839665 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Also CakeProphet. < 1321403249 910730 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::< <-- grumpy old man < 1321403250 211309 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :`quote CakeProphet < 1321403252 317181 :HackEgo!foobar@codu.org PRIVMSG #esoteric :141) how does a "DNA computer" work. von neumann machines? CakeProphet, that's boring in the context of DNA. It's just stealing the universe's work and passing it off as our own. \ 142) CakeProphet: reading herbert might be enlightening in one hand he held a long worm can be greased. twice i got it nearly there, and the protector of cattle. mars is < 1321403271 575626 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: the idea is basically to turn a tree with a bunch of cursors into a tree of /just/ the cursors, retaining their sort of "relative positions", right? < 1321403283 598081 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and those cursors contain the bits of the tree they're focusing on, sort of < 1321403311 772296 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1321403321 913122 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (*)(-.-)(*)(-.-.-.) *-* < 1321403322 52980 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (|) -> | < 1321403322 98278 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : (.-*)(-)(.)(-.-)(*) *-+-* < 1321403345 613201 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :let |x| = abs x; o = -5 in |o| < 1321403345 658521 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                             | < 1321403345 703860 :myndzi!myndzi@c-67-168-184-168.hsd1.wa.comcast.net PRIVMSG #esoteric :                            /< < 1321403347 847965 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: this is a Seq zipper, right? < 1321403352 149670 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's what the previous should become if we move the upper right * cursor one step left < 1321403391 100066 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :shachaf: one day Haskell will DWIM. < 1321403392 854609 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :now the middle | Seq line contains -.-.-. < 1321403394 477955 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (i forgot which structure you were zippering :P) < 1321403416 738892 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : | < 1321403422 992066 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :dammit < 1321403438 401501 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :* | < 1321403445 387079 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :CakeProphet: One day it will DWIM; I dearly hope that the day will never come when it DWYM, though. < 1321403452 954782 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :zippered finger trees. < 1321403456 627358 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: kick shachaf for interrupting your diagram < 1321403467 23276 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: Seq /is/ a finger tree < 1321403469 275207 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so there's an actual tree in one of the Seq elements on the way < 1321403474 796687 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: /really/? < 1321403476 459678 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION gasps. < 1321403554 429764 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :therefore, hash tables are arrays. < 1321403583 737527 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Table# < 1321403595 589541 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i'm zippering a plain unrooted tree, essentially < 1321403602 491296 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321403621 553820 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :adding labels and typesafeness left as an exercise for the reader >:P < 1321403631 606898 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: when do you get to defining adts >:) < 1321403651 602627 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :LEFT AS AN EXERCISE FOR THE READER, I SAID < 1321403675 254794 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :'( < 1321403681 169207 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :oerjan: Why aren't you in #haskell these days? < 1321403698 65251 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :dammit, oerjan has roped me into listening to one of his long monologues and getting /nothing/ useful out of it :P < 1321403699 258188 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION checks #haskell. you mean line this....once oi am on unix command line to do this .....ghci -package gtk ? < 1321403702 116857 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Hmm. < 1321403707 791346 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*MWAHAHAHA* < 1321403736 570628 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: im going to cry at you now instead of replying to anything you say. < 1321403737 281500 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: cry < 1321403763 487049 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Sounds to me, oerjan, like elliott mad < 1321403779 585108 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Sounds to me, elliott, like u mad < 1321403786 166189 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well there's a sort of dynamicity at the point of mapping back from the collapsed tree to the original which i'm not quite sure how to handle < 1321403813 885398 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :CakeProphet: ><{{{}::LLKLMH@A;'`hi`1 s < 1321403826 339899 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :like, to get full typesafeness we'd need some kind of parametric Seq < 1321403859 909371 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and with things in a map it might involve actual Dynamic < 1321403894 145741 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :unsafeCoerce < 1321403903 205463 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm do you need an indexed map < 1321403933 30299 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh and it might be necessary to invent id's for the cursors < 1321403934 805440 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i.e. lookup :: k a -> Map k a -> Maybe a < 1321403937 777840 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Did you see ddarius's puzzle about IORef in #haskell recently? < 1321403938 399902 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or similar < 1321403941 203314 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: No. < 1321404001 730169 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :do { r <- newIORef (return ()); writeIORef r (join (putChar '*' >> readIORef r)); join (readIORef r) } < 1321404020 188609 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :The puzzle went "where does the recursion come from?". < 1321404027 196431 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Or something along those lines. < 1321404099 326461 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: I... < 1321404119 865704 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: It comes from executing the result of reading r depending on the value inside r. < 1321404124 713839 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Which it executes. < 1321404128 484079 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :And so on. < 1321404133 718595 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Right, but there's no recursive definition there. < 1321404145 522487 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :And yet it's non-terminating. < 1321404148 399556 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :How does that happen? < 1321404151 555616 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: There sort of is; it's using the IORef as a definition. < 1321404152 150648 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :there's a cyclic structure created by mutation < 1321404160 921119 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Yeah. < 1321404173 486053 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :OK, but why are you allowed to create a cyclic structure? < 1321404189 326811 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :because IO etc < 1321404197 443809 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Well, it works with ST too. < 1321404198 155115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: As opposed to...? < 1321404202 549990 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Can you model this with State, for instance? < 1321404204 175312 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because that's easy with IORef? < 1321404222 870003 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :You can do a mono-typed STRef with State, so yes. < 1321404223 124192 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh < 1321404230 864124 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Since only one relevant reference type is used here. < 1321404240 871282 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :*x = &x //weeeeeeeee < 1321404244 11851 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: OK, can you do it with State, then, without using any recursion? < 1321404293 396300 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: main = runStateT (do { put $ join (liftIO (putChar '*') >> get); join get) (return ()) < 1321404294 380806 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :? < 1321404306 757345 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: main = runStateT (do { put $ join (liftIO (putChar '*') >> get); join get }) (return ()) < 1321404322 849066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Occurs check: cannot construct the infinite type: < 1321404322 894326 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : m1 = StateT (m1 ()) m0 < 1321404322 894474 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::-( < 1321404349 331390 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh. < 1321404353 90061 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: You just need a newtype wrapper. < 1321404361 115435 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :newtype Foo = Foo (StateT Foo IO) < 1321404363 349027 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> runRWS (do put (join (tell "*" >> get)); join get) undefined undefined < 1321404364 963192 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Occurs check: cannot construct the infinite type: < 1321404365 108574 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : m < 1321404365 153911 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : = < 1321404365 154090 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Control.Mona... < 1321404373 50324 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Can you get the IO out of this, please? < 1321404375 442424 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::t runRWS < 1321404376 499792 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall r w s a. RWS r w s a -> r -> s -> (a, s, w) < 1321404379 85289 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION should never have brought up IO. < 1321404387 690233 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: What kind of effect do you want, then? Just plain _|_? < 1321404391 270240 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Sure. < 1321404403 615091 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :_|_ without recursion is accomplishment enough. :-) < 1321404416 30306 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :> undefined < 1321404417 343732 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : *Exception: Prelude.undefined < 1321404422 262615 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION feels accomplished < 1321404426 272585 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@slap CakeProphet < 1321404426 663053 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :ACTION karate-chops CakeProphet into two equally sized halves < 1321404432 866411 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Lesse... < 1321404460 193946 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/sse/ssee/ < 1321404467 440892 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Anyway, yes, that was recursive. :-) < 1321404479 208540 :hagb4rd!~perdito@koln-5d81edb5.pool.mediaWays.net QUIT :Ping timeout: 240 seconds < 1321404482 439941 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachaf: i think the only reason my RWS version doesn't work is that the state is contained in the monad type, unlike for IO, so it needs a newtype wrapper < 1321404510 600677 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :otherwise i think it is in spirit the same as the IO one < 1321404526 4207 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Done. < 1321404532 359127 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ewtype Foo a = Foo { unFoo :: State (Foo ()) a } < 1321404532 404415 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :test = Foo $ do < 1321404532 404566 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : put $ Foo (get >>= unFoo) < 1321404532 404665 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : get >>= unFoo < 1321404535 473852 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :*Main> evalState (unFoo test) undefined < 1321404535 519123 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Loading package transformers-0.2.2.0 ... linking ... done. < 1321404538 480772 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/ewtype/newtype/ < 1321404545 948313 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Well, you're using a recursive newtype. < 1321404561 139388 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: So is IO. < 1321404566 586431 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :IORefs are just magical. < 1321404589 864112 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION isn't sure exactly what you're getting at here. < 1321404622 266884 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :What's recursive about STRef? < 1321404642 433074 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: ST has a store of STRefs which you instantiate polymorphically to make them include an ST. < 1321404658 714754 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :shachaf: the problem is that only IO and ST allows you to make state that doesn't show up in the type of the monad < 1321404658 760075 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :But fine, I'll whip up a version without that. < 1321404681 879806 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that is why they don't need a newtype < 1321404687 481347 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :oerjan: Right. < 1321404697 112202 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Actually I can't, I'd need unsafeCoerce I think. < 1321404704 439793 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Unless, hmm... < 1321404710 445975 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: But yeah, what is the point actually meant to be? < 1321404747 414008 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: maybe Dynamic is sufficient? < 1321404768 850291 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Hmm, right < 1321404771 833642 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION tests < 1321404853 876194 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : No instance for (Typeable1 < 1321404853 921830 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : (StateT Dynamic Data.Functor.Identity.Identity)) < 1321404854 630498 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmph. < 1321404857 344025 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION newtype < 1321404939 117408 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Can't make a derived instance of `Typeable1 (StateT a m)': < 1321404939 201609 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : `StateT' has arguments of kind other than `*' < 1321404939 297792 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the stand-alone deriving instance for `Typeable1 (StateT a m)' < 1321404963 291938 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION makes own monad < 1321405153 379592 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Done. < 1321405199 675992 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: http://hpaste.org/54087 < 1321405304 917398 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: HAPPY NOW? < 1321405327 855817 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: (I note that you can implement Y without explicit value or type recursion using Dynamic too.) < 1321405377 99256 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: SO N-CURSOR ZIPPERS < 1321405450 883599 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: I will substitute for oerjan < 1321405453 543702 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Also, I believe this means you can do recursion with "just" the FFI, and with "just" Chans and forkIO. < 1321405454 346722 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :so basically like < 1321405457 143084 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :n-cursor zippers < 1321405459 201805 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :are like zippers < 1321405462 145662 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :but with n cursors. < 1321405511 465888 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you can even do recursion with "just" recursion. < 1321405526 470506 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :indeed! < 1321405530 739496 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so oerjan, n-cursor zippers < 1321405554 559621 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i sense some recursoring < 1321405623 240507 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :very funny. HELP ME OUT, I AM AT WAR WITH FINNS. < 1321405677 206533 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe we could do a zipper of the collapsed tree to easily move to the cursor we want to concentrate on >:) < 1321405713 558955 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :D < 1321405746 861621 :tiffany!~kawaii@fl-76-3-17-34.dhcp.embarqhsd.net QUIT :Quit: nyu~ < 1321405821 531035 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :then we wouldn't need a dictionary to get back to the original tree. although we still need some map to tell the path to each cursor. ouch. < 1321405877 829894 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and that map would change as cursors move < 1321405919 236355 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :especially since the shape of the collapsed tree also can change < 1321405922 712641 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what, exactly, kind of dictionary do you need? < 1321406057 886202 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm. maybe we could put signposts in the virtual cursor data to tell how to move to another cursor - only the next step, so changes are still local < 1321406077 990347 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a zipper of the zipper starts looking sane... < 1321406106 744435 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :coooool < 1321406191 772950 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: http://dl.dropbox.com/u/16495819/lolncursor.png < 1321406192 622831 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh, this would get O(n) in the number of cursors if they're laid out on a line < 1321406195 656809 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Nobel Prize plz < 1321406206 640739 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: O(n) to do /what/? < 1321406220 507857 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: now tell me how to reposition cursor 3 before cursor 2 < 1321406243 415469 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :do lots of swappy things. < 1321406272 735164 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :CakeProphet: the cursors are not necessarily ordered in that way. < 1321406286 214064 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's the whole point of this collapsed tree thing < 1321406299 869092 :derdon!~derdon@pD9E1C71F.dip.t-dialin.net QUIT :Remote host closed the connection < 1321406303 822695 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :hmmmmmmmm < 1321406306 158153 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :okay < 1321406339 734745 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: to move from one cursor to another if you have to pass all the others, if they're extremes on a line < 1321406356 289658 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :with the zipper of zipper idea < 1321406375 972284 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :how do you intend to access the cursors? < 1321406377 520359 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ah. that's probably not hugely problematic, i think the most number of IPs any funge program has is like 60,000, and that's pathological < 1321406382 356926 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :random access, sequentially, ???? < 1321406387 900982 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :a few hundred at most is all i care to optimise for < 1321406398 165367 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :by an identifier, by an index? < 1321406461 540331 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: round-robin, for my usecase < 1321406466 914324 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ah < 1321406488 190035 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :well you could just decouple the subsequences... < 1321406492 260762 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :basically a Seq of zippers. < 1321406497 44377 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :on the same list. < 1321406511 61561 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i'll let oerjan respond to you >:) < 1321406517 127945 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but anyway, what kind of dictionary /did/ you need? < 1321406557 486822 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: at this point, i think you only need dictionaries or something for the signposts < 1321406571 599142 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I meant to avoid the zipper-zipper inefficiency, but ok < 1321406578 124373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a signpost would tell for each real cursor what direction to go in < 1321406579 599787 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh. < 1321406587 792505 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :psh Seq of zippers is mad efficient. < 1321406692 109325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so, a virtual cursor node would need to contain some data: a list of adjoining trees without cursors in them, a list of adjoining Seq's to other cursors, and some tag to tell which nearest neighbors are in which relation to each other in the original QuadTree. and possibly the signpost map. < 1321406736 252029 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh and the adjoining Seq's would of course "end" in cursor-cursors with the zipper zipper idea < 1321406740 784347 :augur!~augur@216-164-57-20.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1321406751 977702 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321406777 255165 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also a ref to the mutable 2D array that it can use to mutate the fungespace and move IPs in constant time. < 1321406807 370586 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :>:> < 1321406808 915777 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if you don't do the zipper of zipper idea, you need to handle the collapsed tree in some other way, perhaps using some graph library. < 1321406830 208576 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok, stick with zipper of zipper i guess :P < 1321406834 989075 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it sounds easier < 1321406839 107413 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :s/zipper/Seq/ < 1321406852 410646 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION swats CakeProphet -----### < 1321406922 684623 :Gregor!foobar@codu.org PRIVMSG #esoteric :WLIIA REPORT AS OF 1x15: Absolute winner is still Wayne Brady with an incredible 3,003,530.5 points. Absolute average episode winner is also Wayne with 250,294.2 points. Logarithmic winner is Ryan Stiles in a come-from behind victory with 82, barely beating out Colin's 80.6. Logarithmic average episode winner for performers appearing in >1 episode is Wayne with 6 log-points per episode. < 1321406945 774253 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :? < 1321406956 721196 :Gregor!foobar@codu.org PRIVMSG #esoteric :CakeProphet: I'm watching all of Whose Line is it Anyway and tallying the points. < 1321406968 354916 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: clearly Wayne Brady is the best choice for implementation of n-cursor zippers. < 1321406975 449596 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: white people love Wayne Brady. < 1321406989 878180 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION return < 1321407023 350372 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION CakeProphet >>= eat soup < 1321407026 957646 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :erm < 1321407030 561568 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION >>= eat soup < 1321407074 668871 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION shachaf shachaf * < 1321407082 883882 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Gregor: First, why the heck are you doing that? < 1321407106 973514 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Second, :) < 1321407179 93017 :Gregor!foobar@codu.org PRIVMSG #esoteric :pikhq_: As an excuse to watch WLIIA :P < 1321407188 820061 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Good reason. < 1321407257 376580 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: go on : < 1321407257 889590 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::P < 1321407291 544671 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: the handsome black man is the best to watch. < 1321407300 915219 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :also Drew Carrey may have a mancrush on him < 1321407423 809123 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :y :: (Typeable c, Typeable b) => (b -> c) -> c < 1321407427 947790 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: My fixed-point combinator is swell. < 1321407471 354677 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :swellest < 1321407481 628231 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the basic NW, NE, SW, SE, FromNW, FromNE, FromSW, FromSE directions from QuadTrees still apply to all of this, i think. < 1321407492 65371 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :ACTION >>= eat soup >>= feelMMM < 1321407495 850732 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :mmm < 1321407498 562252 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :mmm < 1321407500 626009 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321407565 695096 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a cursor cursor would go in one of those. if one of the four first, it would be sort of like a QuadTree, if one of the four latter, like a Cursor in our previous discussions < 1321407590 168063 :augur!~augur@216-164-57-20.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com QUIT :Remote host closed the connection < 1321407679 332572 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :there would be two types of such, those with a (virtual) cursor at the other end, and those without. the latter would actually _be_ QuadTrees and Cursors of our previous talks. < 1321407686 362539 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :oerjan: I think you guys are overcomplicated this.. < 1321407710 945538 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: present your solution or shut up and stop butting in :P < 1321407715 564027 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the former would contain a Seq, a new direction, and a virtual cursor node. < 1321407736 200616 :Gregor!foobar@codu.org PRIVMSG #esoteric :OMG, owcc is SO FRIGGIN' SLOW < 1321407752 885037 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the terminology of this is definitely going to hell. < 1321407755 37816 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Lest you're not up to date: x86[_64], SPARC, MIPS[el] < 1321407762 546804 :Gregor!foobar@codu.org PRIVMSG #esoteric :Not as big a list as I'd like :( < 1321407775 36389 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I was up to date. Make it work on ARM and PPC. :p < 1321407775 121874 :Gregor!foobar@codu.org PRIVMSG #esoteric :Also, tcc seems to exclusively generate retarded function prologues. < 1321407777 531368 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes, quite < 1321407784 380218 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: maybe some ADT definitions would help >:) < 1321407793 450014 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :also, in principle we would want type parametrized Seq's so we could actually keep things typesafe < 1321407815 416211 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: With -O2: 7b: 81 ec 00 00 00 00 sub $0x0,%esp < 1321407842 549386 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: what I had in my diagram. just do swappy stuff when you need to rearrange cursors. < 1321407851 572977 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: What the fuck is "swappy stuff"? < 1321407873 741203 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if that's too inefficient, just do a Seq/container-of-preference of zippers because. < 1321407881 864302 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :some kind of PSeq f a b which is a chain of f a c1, f c1 c2, ..., f cn b < 1321407895 291761 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Swell as in unsafeCoerce? < 1321407904 151288 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Nah, the next best thing. < 1321407905 402394 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :f would be a gadt, i think < 1321407967 326308 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Dynamic = unsafeCoerce. < 1321407997 127524 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION is worried that part needs ContextKinds < 1321408004 781562 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er < 1321408010 750769 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*ConstraintKinds < 1321408047 151907 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: rearrange the cursors so they're in order, concat and move stuff around. profit. < 1321408088 712526 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :if what's between two cursors isn't relevant, just do the Seq of zippers. that's more efficient. < 1321408156 815689 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :y :: forall a. (Typeable a) => (a -> a) -> a < 1321408156 861061 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :y f = fromDyn' (magic (toDyn magic)) < 1321408156 861224 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : where magic :: Dynamic -> Dynamic < 1321408156 861325 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : magic x = toDyn (f (fromDyn' (dynApp x (toDyn x)))) < 1321408159 293271 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: It doesn't work :-( < 1321408184 145611 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: A Seq of zippers doesn't let you mutate, which is the whole bloody point. < 1321408198 53868 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Why are you using Dyn instead of just recursive types? < 1321408201 782925 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :elliott: but assuming the cursors are IPs then I'm guessing they only move around in increments of 1? < 1321408213 317112 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: To prove you can do fix without type or value-level recursion. < 1321408221 342116 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: I really can't be bothered explaining this to you? < 1321408221 508162 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :By using unsafeCoerce. < 1321408231 334812 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Yes, except it's safeCoerce. < 1321408274 953669 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@let safeCoerce :: a -> a; safeCoerce x = unsafeCoerce x < 1321408276 47555 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : Defined. < 1321408308 505288 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :> safeCoerce 5 < 1321408314 27764 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval: ExitFailure 1 < 1321408314 265986 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : mueval-core: Time limit exceeded < 1321408316 2941 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :lambdabot..... < 1321408335 827868 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :> safeCoerce 5 < 1321408335 999191 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric ::t safeCoerce < 1321408337 92181 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :forall a. a -> a < 1321408337 581221 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 5 < 1321408345 670886 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :@src safeCoerce < 1321408348 793559 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Source not found. Are you on drugs? < 1321408355 405692 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION facepalm < 1321408360 317398 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :cake "whats paying attention" prophet < 1321408384 325973 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :whats paying attention? < 1321408396 985896 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh no...... < 1321408440 180239 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :I often make fools of yourself. < 1321408454 659756 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yes < 1321408488 553473 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :monqy avoids making fools of yourself by only talking when he is not a fool. < 1321408493 344086 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :good strategy. < 1321408557 918591 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy is never fool < 1321408749 20231 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :therefore monqy only talks. < 1321408898 231295 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor "unrelated" Richards < 1321409033 700294 :Gregor!foobar@codu.org PRIVMSG #esoteric :HEYO < 1321409045 372889 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :O YEH < 1321409050 288222 :Gregor!foobar@codu.org PRIVMSG #esoteric :The very first instance of Scenes from a Hat (in spite of it being a staple of the show) is in the 16th episode. < 1321409118 722612 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake NICK :RogerG\unhere < 1321409139 797047 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :bye roger g < 1321409192 96409 :Gregor!foobar@codu.org PRIVMSG #esoteric :Argh, how do I stop making owcc do semi-clever inter-procedural optimization >_> < 1321409254 238718 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :does owcc have -O0 < 1321409264 89336 :RogerG\unhere!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :Gregor: write inefficient code. < 1321409270 959446 :RogerG\unhere!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :and it will negate the effect. < 1321409282 861521 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :don't have procedures < 1321409309 306101 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Have enough procedures that owcc overflows something. < 1321409341 964262 :Slereah_!~butt@ANantes-259-1-176-36.w90-49.abo.wanadoo.fr JOIN :#esoteric < 1321409440 781735 :Slereah!~butt@ANantes-259-1-147-147.w90-49.abo.wanadoo.fr QUIT :Ping timeout: 255 seconds < 1321409451 834410 :Gregor!foobar@codu.org PRIVMSG #esoteric :monqy: Doesn't work with -O0 because it generates subl $0, %esp < 1321409495 616688 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Gregor: ... < 1321409506 283846 :Gregor!foobar@codu.org PRIVMSG #esoteric :pikhq_: Yup. < 1321409524 491246 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :owcc... < 1321409544 241553 :RogerG\unhere!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake QUIT :Ping timeout: 252 seconds < 1321409556 375140 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :bye roger g < 1321409597 275363 :Gregor!foobar@codu.org PRIVMSG #esoteric :monqy: OpenWatcom. < 1321409622 213527 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :Oklahoma Workers' Comensation Court < 1321409644 719315 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :Old Whitgiftians Cricket Club good < 1321409708 27051 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :The code it produces for MS-DOS executes very fast[citation needed]. It was one of the first compilers to support the Intel 80386 "protected mode"[citation needed]. < 1321409711 51037 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :thanks wikipedia < 1321409759 936174 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :It's ye old Watcom compiler, GPL'd. < 1321410097 444292 :Gregor!foobar@codu.org PRIVMSG #esoteric :OK, so far nothing but gcc can make my JIT work X-P < 1321410101 907877 :Gregor!foobar@codu.org PRIVMSG #esoteric :Everything else is SO CLOSE and yet so far. < 1321410107 611618 :Gregor!foobar@codu.org PRIVMSG #esoteric :Compiler suggestions? < 1321410139 498589 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :tcc? < 1321410152 802711 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :If you can compile it with otcc even better. < 1321410169 595961 :Gregor!foobar@codu.org PRIVMSG #esoteric :tcc always generates subl $0, %esp < 1321410177 299318 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :otcc likewise? :( < 1321410183 861153 :Gregor!foobar@codu.org PRIVMSG #esoteric :Haven't tried it. < 1321410192 100152 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :It probably does. < 1321410201 188401 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Seeing as it's what tcc came from. < 1321410222 859935 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net PRIVMSG #esoteric :Still, it'd be pretty spiffy to compile with a previous entry to IOCCC. < 1321410299 612962 :Gregor!foobar@codu.org PRIVMSG #esoteric :True ... < 1321410317 814457 :Gregor!foobar@codu.org PRIVMSG #esoteric :I wonder if with sufficient cleverness I could do epilogue detection only and leave in the prologues and partial epilogues for everything ... < 1321410353 143882 :Gregor!foobar@codu.org PRIVMSG #esoteric :OR I could be REALLY stupid and just assume that your epilogue is either one or four bytes and no other size :P < 1321410500 766818 :Gregor!foobar@codu.org PRIVMSG #esoteric :Nope, wouldn't work on SPARC :P < 1321410572 789957 :Gregor!foobar@codu.org PRIVMSG #esoteric :(Or anything else with delay branches ... ) < 1321410804 495743 :Gregor!foobar@codu.org PRIVMSG #esoteric :BUT, if I assume that on all CISC platforms (all one of them), I may be in luck. < 1321411279 689325 :Gregor!foobar@codu.org PRIVMSG #esoteric :HEYOOOOO < 1321411394 676909 :Gregor!foobar@codu.org PRIVMSG #esoteric :OpenWatcom :) < 1321411409 137348 :Gregor!foobar@codu.org PRIVMSG #esoteric :And probably TCC < 1321411629 655676 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: By doing what < 1321411948 258068 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yup, works on TCC too :) < 1321411953 329702 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Making my heuristics much more stupid. < 1321411960 29254 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1321411970 655639 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: On platforms I determine to be CISC, I blindly assume the epilogue is always one byte and the prologue is zero. < 1321412116 92662 :MDude!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net NICK :MSleep < 1321412227 375329 :calamari!~calamari@ip72-211-147-156.tc.ph.cox.net JOIN :#esoteric < 1321412243 479920 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: How do you determine ciscness? < 1321412254 186971 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Odd-sized functions. < 1321412265 3811 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :That's it? < 1321412266 972472 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yup < 1321412292 247805 :Gregor!foobar@codu.org PRIVMSG #esoteric :I'm not exactly aiming for coding perfection here :P < 1321412293 582268 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :an odd heuristic < 1321412306 856803 :Gregor!foobar@codu.org PRIVMSG #esoteric :oerjan: AND YET: It works :) < 1321412361 91338 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ADTS PLZ < 1321412377 250978 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i knew i'd regret that pun < 1321412570 847503 :Gregor!foobar@codu.org PRIVMSG #esoteric :And now to lament the lack of -mbuild-constants for ARM :( < 1321413273 331536 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :| < 1321413282 928669 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's tricky < 1321413293 487974 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :pah :P < 1321413329 239092 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: btw the space is actually finite < 1321413339 90205 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(Int32,Int32)-indexed < 1321413363 883120 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net JOIN :#esoteric < 1321413369 74719 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ic, well that's just having some top node < 1321413372 456735 :pikhq_!~pikhq@71-219-218-117.clsp.qwest.net QUIT :Ping timeout: 260 seconds < 1321413426 899940 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :yeah < 1321413440 429430 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :not like you can allocate that much anyway < 1321413453 301266 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so might as well just leave it out < 1321413510 869367 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data MetaCursor srcdir = MCPlain (PlainCursor srcdir) | forall dest. MCPath (MetaPath src dest) MetaNode dest < 1321413528 714644 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ooh, that looks cool < 1321413593 732568 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: s/srcdir/src/g right? < 1321413600 420865 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321413611 895221 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or the reversze < 1321413614 554112 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*-z < 1321413629 564989 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :then you vneed to rename dest >:) < 1321413633 430272 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :gah < 1321413634 269924 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :src is nicer anyway < 1321413694 565723 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data FromNW; data FromNE; data FromSW; data FromSE; data NW; data NE; data SW; data SE -- src and dest should be one of these < 1321413728 961775 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321413935 491680 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PlainCursor From{NW,NE,SW,SE} is basically our old Cursor and PlainCursor {NW,NE,SW,SE} is a QuadTree, i think < 1321413957 596749 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :gadts then :P < 1321413960 202475 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1321413976 507452 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i forget our old cursor but i'll look it up when i need it < 1321413992 469150 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*(MetaNode dest) -- forgot parens above < 1321413997 315432 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :Aaah, earl grey. < 1321414076 661299 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: btw just out of curiosity, does it help optimise the metazipper thing if you know i always access cursors in round-robin < 1321414097 558667 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :not round-robin in order of space; in order of creation < 1321414104 618033 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ic < 1321414127 242801 :Gregor!foobar@codu.org PRIVMSG #esoteric :OK, I may have this working on ARM, and only 85% incurably stupid. < 1321414155 731715 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'll shut up :) < 1321414196 687741 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that means you basically wants CakeProphet's Seq of zippers in ther somehow ;P < 1321414205 51356 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*+e < 1321414287 201647 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :might as well just continue as-is :P < 1321414331 130753 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MetaNode dest represents a node containing a virtual cursor, with incoming edge as dest < 1321414340 165262 :Gregor!foobar@codu.org PRIVMSG #esoteric :Damn it, now how did this break on MIPS >_> < 1321414404 170534 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321414458 537286 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321414461 198573 :augur!~augur@216-164-57-20.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1321414511 728317 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MNFromNW :: { neNeighbor :: MetaCursor NE, ... but what should be the _up_ cursor... < 1321414553 824912 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think it needs to be split. ah! < 1321414572 122131 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data From; data To; data NW; ... < 1321414594 895655 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::D < 1321414608 155679 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: From dir < 1321414613 130746 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and To dir < 1321414616 690999 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :no < 1321414620 5777 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :? < 1321414627 100377 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh well maybe < 1321414637 749243 :augur!~augur@216-164-57-20.c3-0.slvr-ubr1.lnh-slvr.md.cable.rcn.com QUIT :Remote host closed the connection < 1321414653 28491 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i was thinking of them as separate arguments, but i guess that works too < 1321414689 216366 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ah < 1321414773 915949 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MNFromNW :: { neNeighbor :: MetaCursor (To NE), swNeighbor :: MetaCursor (To SW), seNeighbor :: MetaCursor (To SE), up :: MetaCursor (From dir), signPost :: SignPost } -> MetaNode (From NW) < 1321414797 545211 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :not sure that's the right syntax < 1321414819 819275 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i think its {a::b} -> {c::d} -> ... < 1321414825 282480 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :but i prefer yours :) < 1321414828 212575 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh < 1321414970 962541 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MNToNW :: { ... like above but with all five neighbors and no up } < 1321414977 941731 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321414982 222586 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :obviously then < 1321415000 984152 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :what is dir in MNFromNW < 1321415001 938197 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MNTo :: { ... } -> MetaNode (To dir) < 1321415008 150370 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ah < 1321415030 539846 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :NW then < 1321415036 220901 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it doesn't need a different constructor for different ones on the To < 1321415043 432204 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*MNTo < 1321415111 910766 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the dir in the up field of MNFromNW is arbitrary, since we don't know which direction this node is from the up node < 1321415122 952308 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you mean all 4 neighbours right? < 1321415125 456376 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and ah < 1321415128 887915 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oops :P < 1321415267 60507 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: So yeah, +ARM anyway :P < 1321415290 605149 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: +ARM-MIPS < 1321415303 385340 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I'm fixin' MIPS :P < 1321415358 537560 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MetaPath src dir is tricky. it should be a chain of, hm, PathNode s d, using some kind of Seq which _ideally_ would be parametrized such that only consecutive PathNodes need to match in types < 1321415443 571070 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :does that really matter for internals? : < 1321415445 487371 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::P < 1321415446 906347 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh and it should probably have a tag so you could consider one as "reversed", for when you "metazip" around it < 1321415464 491193 :augur!~augur@208.58.5.87 JOIN :#esoteric < 1321415502 443918 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :without needed to _actually_ traverse and reverse the pathnodes < 1321415505 700790 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*needing < 1321415510 126001 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321415544 681640 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well if you don't do that then of course the typesafe directions break down inside these paths. < 1321415553 381052 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hm right < 1321415559 288030 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :go ahead, then :P < 1321415575 272890 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(i am simply assuming the existence of such a Seq) < 1321415600 142801 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :which i think i called PSeq above < 1321415666 395429 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data MetaPath src dir = MP (PSeq PathNode src dir) | MPReversed (PSeq PathNode dir seq) < 1321415675 35736 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321415708 968346 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :the reversing thing might be better to put into pseq itself but never mind that for now... < 1321415758 116964 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well i was just assuming a PSeq which did the minimal change to Seq to make it parametric < 1321415775 81134 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321415790 900582 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1321415806 503925 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/seq/src/ :p < 1321415826 640541 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oops < 1321415942 900195 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PN_ToNW_ToNW :: { neNeighbor :: PlainCursor (To NE) } -> { swNeighbor :: ... } -> { seNeighbor :: ... } -> PlainNode (To NW) (To NW) < 1321415984 655312 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :similarly for PN_To**_To** < 1321415995 453446 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok. (i preferred the previous syntax :P) < 1321416031 126690 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PN_To**_From** is illegal < 1321416062 793789 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I officially have no clue why MIPS is broken :P < 1321416099 613248 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PN_FromNW_FromNW :: { neNeighbor :: ..., swNeighbor :: ..., seNeighbor :: ... } -> PlainNode (From NW) (From NW) < 1321416121 405347 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :same arguments, actually, it's conceptually the reversed version of the first one < 1321416150 35295 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and so PN_From**_From** in general < 1321416219 77653 :madbr!boulam@modemcable221.74-200-24.mc.videotron.ca JOIN :#esoteric < 1321416227 818325 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PN_FromNW_ToNE :: { swNeighbor :: PlainCursor (To SW), seNeighbor :: PlainCursor (To SE), up :: PlainCursor (From dir) } -> PlainNode (From NW) (To NE) < 1321416247 958558 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and PN_From**_To** in general, except not with the two directions equal < 1321416262 82076 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think that's all for PlainNode < 1321416390 331290 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :back, sorry < 1321416402 374470 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :SignPost would be a map whose keys are real cursors and whose values are Maybe Direction < 1321416416 860362 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: re: to/from, couldn't you have ... -> PlainNode (tofrom NW) (tofrom NW) >:) < 1321416421 690358 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :just kidding >_> < 1321416438 592655 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAA < 1321416457 770959 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Direction would be a value form of the To dir, From dir things. < 1321416464 92581 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321416485 389079 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (more seriously, it seems to me like a type AllDirectionsBut wrapper dir would cut down on lots of duplication) < 1321416512 325116 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe. note that the PN_From**_To** miss _two_ directions. < 1321416517 945246 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ah < 1321416525 486463 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :what's a real cursor? the previous Cursor? PlainCursor? < 1321416572 486595 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :your ip id, i think < 1321416583 352723 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh, so just an identifier? ok < 1321416601 49155 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and a value of Nothing indicates that it's at _this_ node < 1321416614 196022 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (i am half-considering putting the rest of the IP data into this structure, since it's basically tracking my IPs anyway...) < 1321416616 183127 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :while Just dir indicates where to start going to find it < 1321416651 467775 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah in that case you could use Either IpData Direction for the values, i guess < 1321416657 454106 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321416671 711557 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i am shocked to find myself actually understanding all this. < 1321416681 449476 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yay < 1321416708 224957 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: It's some weird interaction between unconditional jumps and conditional jumps >_O < 1321416797 993785 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i thought i had lost all hope of understanding after last time's 15 constructors :D < 1321416806 113452 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric ::P < 1321416864 627689 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: AHAAAAAAAAAAAAA scratch registers boo. < 1321416875 579797 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oops, s/PlainNode/PathNode/g in some of the above < 1321416886 58186 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh. now it makes even more sense! < 1321416915 643149 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yay < 1321416926 800571 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: er, that's not it, right? < 1321416964 167912 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think PathNode has 44 constructors. < 1321416971 514009 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1321416988 286687 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: s/scratch/argument/ in fact :P < 1321416996 299686 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: heh < 1321417012 138248 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i will probably try and abstract that out so it only needs one constructor per valid to/from pai :P < 1321417012 491162 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :r < 1321417014 860967 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i suppose your AllDirectionsBut is a must < 1321417017 340625 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :but yes, go on < 1321417037 481938 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well, i think that's most of it? < 1321417075 54757 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hm < 1321417094 569056 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Fixt. < 1321417100 635591 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: if I asked you how to implement "go west in currently-focused cursor" would you disown me? < 1321417128 531773 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe if you insisted on all the details < 1321417165 584571 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :heh < 1321417171 742062 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you navigate between cursors /spatially/ in this, right? < 1321417177 79540 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :that seems to make navigating in some other order a pain < 1321417194 515036 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well yeah? < 1321417226 719147 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well like i said, my IPs are used round-robinly :P < 1321417261 935347 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well yeah i didn't do any attempt to optimize that order < 1321417279 898990 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or any order, really < 1321417287 751675 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right < 1321417294 708675 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but i'm not sure how you do it at /all/ < 1321417302 761764 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it seems like you'd have to try every cursor until you found the one you care about < 1321417505 72979 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :data MetaContext = MetaContext { nwNeighbor :: MetaCursor (To NW), ..., up :: MetaCursor dir, signPost :: SignPost } -- it occurs to me that some field name disambiguation will be needed < 1321417520 897869 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :anyway, say that's the current focused context < 1321417546 877532 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :first, look in the signPost to find out where the ip you want to be at is < 1321417577 879612 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if it's here, you're set... < 1321417584 320231 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ah! right < 1321417590 335891 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :OK, that makes sense now < 1321417597 360578 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :how do you go east >:) < 1321417654 903767 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm assuming you're focused at the ip... < 1321417661 118197 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :look at the up < 1321417690 593958 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: btw i am not looking forward to figuring out how to mutate within the 128x128 area :P < 1321417700 142642 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I think I'll have to just check every other IP < 1321417711 231930 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't really want to add caches to a structure this complex < 1321417715 671541 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :erm, as in < 1321417718 620010 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because other IPs could be there too < 1321417730 593713 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :assuming that's actually possible with yours... < 1321417754 460943 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah < 1321417845 204215 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321417872 32850 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i have not properly considered the actual _leaf_ nodes, where the 128x128 data would reside < 1321417894 514516 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well except for the PlainCursor ones, but they don't contain real cursors < 1321417906 946802 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so we have a zipper for trees with no top or bottom? :P < 1321418159 930267 :madbr!boulam@modemcable221.74-200-24.mc.videotron.ca PART :#esoteric < 1321418170 197008 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: ARM goes all the way up to -O3 (with -fno-toplevel-reorder) < 1321418179 990398 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :X-D < 1321418222 910063 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MNLeaf :: { area :: Array "whatever", signPost :: SignPost } -> MetaNode (To dir) < 1321418234 778805 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :may be what is needed < 1321418243 462532 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Array "whatever" < 1321418245 737416 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :good array < 1321418253 326878 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :best array < 1321418266 744439 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok so what if i actually put this into a file and tried to make it all typecheck :P < 1321418294 728373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well as i said i have not kept all field names distinct between data types, so fix that :P < 1321418380 380838 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok [CRACKS KNUCKLES, PUTS BASEBALL CAP ON BACKWARDS, STARTS UP EMACS, CHEWS ON GUM, DISOWNS AUTHORITY + PARENTS] time to ROCK!!!!!! < 1321418383 361545 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i am such a serious person < 1321418394 516562 :variable!root@freebsd/developer/variable PRIVMSG #esoteric :http://thc.org/root/phun/unmaintain.html < 1321418396 757829 :variable!root@freebsd/developer/variable PRIVMSG #esoteric :either that < 1321418402 432110 :variable!root@freebsd/developer/variable PRIVMSG #esoteric :or write all your code in INTERCAL < 1321418447 930514 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so wait, are plain [NW][SE] ever used, or is it always within either From or To now? < 1321418501 474884 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :er < 1321418504 317470 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :[NS][EW] < 1321418508 105566 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I can't get IOCCC 2001 bellard to run :( < 1321418519 792306 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Surprising :P < 1321418531 95378 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i cannot recall < 1321418551 308415 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh you actually got the gadt record syntax almost right < 1321418553 854570 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Foo { ... } :: A < 1321418570 445765 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah < 1321418571 358593 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PlainCursor From{NW,NE,SW,SE} is basically our old Cursor and PlainCursor {NW,NE,SW,SE} is a QuadTree, i think < 1321418582 564138 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: does that still use plain directions or is the QuadTree case in a To? < 1321418591 82788 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :in a To < 1321418620 567318 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok. now to find your old Cursor :P < 1321418620 709573 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so you don't need to list all < 1321418627 447171 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :unless you recall it :P < 1321418675 654993 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well it should be very similar to MetaNode < 1321418690 125723 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MetaNode (From ...) < 1321418690 921220 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Nov 14 03:03:10 data QuadCursor t = FromNorth { southChild :: t, eastChild :: t, westChild :: t, up :: QuadCursor (QuadBranch t) } | FromSouth ... < 1321418698 971040 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: is it just that but with NW/SE etc. instead of North/South? < 1321418727 693168 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that first one was in error, i corrected it to NW/SE later < 1321418756 174209 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well not _exactly_ that, it's all gadts now :P < 1321418827 244327 :calamari!~calamari@ip72-211-147-156.tc.ph.cox.net QUIT :Quit: Leaving < 1321418873 703571 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PCFromNW { neNeighbor :: PlainCursor (To NE), swNeighbor :: ..., seNeighbor :: ..., up :: PlainCursor (From dir) } -> PlainCursor (From NW) < 1321418921 488827 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PCLeaf :: { area :: Array "whatever" } -> PlainCursor (To dir) < 1321418926 382102 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :something like that < 1321418930 327694 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'm on to PathNode, FWIW < 1321418947 759389 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ok < 1321418954 449091 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wait, what happened to the QuadTree case? < 1321418972 686031 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PlainCursor From{NW,NE,SW,SE} is basically our old Cursor and PlainCursor {NW,NE,SW,SE} is a QuadTree, i think < 1321418994 240278 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :PCTo :: { neNeighbor :: ..., ... } -> PlainCursor (To dir) < 1321419005 997423 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :would be that and PCLeaf < 1321419011 605035 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"However, for GADTs there is the following additional constraint: every constructor that has a field f must have the same result type (modulo alpha conversion)" < 1321419016 970336 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :boo, I need different field names for each signpost < 1321419020 598869 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ah, ok < 1321419027 191820 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :darn :( < 1321419060 411805 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that sounds most annoying < 1321419070 985631 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: is PCTo just PlainCursor (To dir) for each dir? < 1321419091 279628 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :also, I need a name for (From dir)/(To dir), like dir is for all the directions. origin? < 1321419091 587734 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :um yes < 1321419116 962069 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: not From? ok < 1321419147 263641 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i gave PCFromNW above, the rest of the Froms should be like that. < 1321419152 372482 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321419205 249616 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh hm. (From foo)/(To foo) are directions < 1321419209 840424 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it's the foos that need a name < 1321419214 707221 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I...think? < 1321419217 539159 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :help : < 1321419218 333903 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::( < 1321419228 761575 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :no, NW/SE/NE/SW are definitely directions, so I do need a name < 1321419251 217669 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh < 1321419313 122384 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: quick, name (From dir)/(To dir) :-( < 1321419378 968370 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Direction would be a value form of the To dir, From dir things. < 1321419387 729207 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :aaaaargh, you've been calling both of them directions all this time < 1321419391 380977 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan you're awful :( but uh thanks < 1321419394 776053 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :pretty much < 1321419429 848285 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: come on come on gimme a name gimme a name :( < 1321419441 669715 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Exit < 1321419450 775709 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321419524 783508 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: woo, just PathNode to go < 1321419570 107805 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm MetaContext is new, right? < 1321419579 702936 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MNLeaf :: { area :: Array "whatever", signPost :: SignPost } -> MetaNode (To dir) < 1321419585 805192 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: er is this required as well as the leaf in PlainCursor? < 1321419681 22589 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PN_ToNW_ToNW :: { neNeighbor :: PlainCursor (To NE) } -> { swNeighbor :: ... } -> { seNeighbor :: ... } -> PlainNode (To NW) (To NW) < 1321419681 226662 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : similarly for PN_To**_To** < 1321419685 430049 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: the **s here have to be equal, right? < 1321419772 964581 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :agh < 1321419774 220567 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PN_FromNW_FromNW :: { neNeighbor :: ..., swNeighbor :: ..., seNeighbor :: ... } -> PlainNode (From NW) (From NW) < 1321419782 545953 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: and are these PlainCursor (To ...)s or PlainCursor (From ...)s? < 1321419784 206066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :the neighbours, that is < 1321419799 347044 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: yes, MNLeaf is for a leaf that is a virtual cursor < 1321419815 643928 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(which means it's a real one, if you don't have extraneous virtual ones) < 1321419819 293031 :SgeoN1!~AndChat@ool-ad034d00.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1321419838 135848 :SgeoN1!~AndChat@ool-ad034d00.dyn.optonline.net JOIN :#esoteric < 1321419851 190938 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :no, the **s don't have to be equal < 1321419888 578625 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :they are PlainCursor (To ...)'s < 1321419891 45610 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data PathNode src dest where < 1321419891 90924 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PNToTo :: PlainCursorTosWithout2 a b -> PathNode (To a) (To b) < 1321419891 136192 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PNFromFrom :: PlainCursorTosWithout2 a b -> PathNode (From a) (From b) < 1321419891 181350 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PNFromTo :: PlainCursorTosWithout2 a b -> PlainCursor (From dir) -> PathNode (From a) (To b) < 1321419892 655296 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :there, I think < 1321419971 942133 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :note that PNFromTo should have a /~ b < 1321420000 280925 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ... you realise expressing that constraint is a pain :P < 1321420009 793199 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :thankfully possible since we only have four directions... < 1321420021 883875 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah, you may consider it optional < 1321420047 378066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm would it be more convenient as a class constraint on the constructor, or as an actual type < 1321420054 229504 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :where the latter is a GADT < 1321420058 156367 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :with the obvious constructors < 1321420072 416998 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(i'm thinking, for the operations on these) < 1321420212 690921 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ooh, convenient, all the "...s without dir" use (To dir) as the type argument >:) < 1321420225 259681 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ...i feel really bad about wanting to exploit this, but it's sort of integral to the nature of a neighbour right?! reassure me < 1321420544 779405 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um ok i need guidance < 1321420552 934639 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it would be really bad to save on constructors by having < 1321420556 176942 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm? < 1321420562 136643 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Foo :: NeighboursWithout2 t a b -> NeighbousrWithout2 t b a < 1321420563 255721 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right? :p < 1321420569 95734 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :usage-wise < 1321420631 617845 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right?? :'( < 1321420641 975869 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i already have < 1321420642 641387 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Neighbours2Same :: Neighbours1 t dir -> Neighbours2 t dir dir < 1321420643 586210 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::p < 1321420684 662073 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think my brain is a bout fried for today < 1321420801 39949 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Good night < 1321420813 124870 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :psht! < 1321420898 577774 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1321421083 796905 :Gregor!foobar@codu.org PRIVMSG #esoteric :$ wc -c jitchards.c < 1321421083 933120 :Gregor!foobar@codu.org PRIVMSG #esoteric :1984 jitchards.c < 1321421118 537783 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Best filesize. < 1321421317 903585 :nys!~nys@blk-215-85-41.eastlink.ca QUIT :Quit: night < 1321421990 580394 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Did you ever answer my question about cookies? < 1321421998 73452 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Which question? < 1321422000 126953 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Oh, that lambdabot one? < 1321422008 340260 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :They're certainly not UK-cookies. < 1321422026 227683 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Do they exist in the UK? < 1321422073 743344 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I've never come across one? I don't know that they don't, though. < 1321422080 402329 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"Fortune cookies, while largely an American item, are occasionally seen in other countries, most often at Chinese restaurants. Fortune cookies have been distributed in Canada, the United Kingdom, Australia, New Zealand, India, Brazil, Mexico, France, The Netherlands and Germany." < 1321422099 980914 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :fortune cookies are weird < 1321422106 300891 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :I don't like them < 1321422127 342657 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: theyre ghosts (boo) < 1321422138 693789 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric ::o < 1321422188 712082 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: BTW, if all goes horribly wrong you might get an actual UMLBox user soon. < 1321422199 703836 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I've suggested it to the tup developer to solve a certain problem and he thinks it looks promising :P < 1321422718 106507 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Hey shachaf! I'm going to make you look in the other direction again. < 1321422719 907105 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :*PSeq> :t pfoldr < 1321422720 106521 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :pfoldr < 1321422720 151813 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : :: (forall a b c. path a b -> result b c -> result a c) < 1321422720 151979 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> (forall a. result a a) < 1321422720 152112 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PSeq path src dest < 1321422720 967557 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> result src dest < 1321422725 680814 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Brought to you by the Power of unsafeCoerce(tm). < 1321422750 704478 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Beeping me in IRC has approximately the opposite effect, as you are well aware. < 1321422766 690546 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION is now blind. < 1321422767 294526 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Yes, but it lets you know so that you can look away more /intentionally/. < 1321422788 601640 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :*PSeq> :t pfoldr (<|) empty < 1321422788 657218 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :pfoldr (<|) empty :: PSeq path src dest -> PSeq path src dest < 1321422788 702462 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Wow, it actually works. < 1321422789 65635 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION doesn't know the context of elliott's type. < 1321422810 671871 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmm, why don't Seqs have pfoldfromtheend? < 1321422815 589068 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Er, without the p. < 1321422825 612477 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: However, using type variable names longer than a single character is very unHaskelly of you. < 1321422875 669722 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Yeah, I got tired of it being unreadable. :-( < 1321422891 385580 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data PViewL path src dest where < 1321422891 653155 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PEmptyL :: PViewL path a a < 1321422891 698419 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : (:<) :: path src mid -> PSeq path mid dest -> PViewL path src dest < 1321422891 698573 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :It's pretty much sacrilege. < 1321422911 470408 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION wonders what elliott is doing but doesn't want to read backlog. < 1321422923 334266 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :haskellworldproblems, eh? < 1321422943 629060 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: (PSeq path src dest) is basically (path src a, path a b, path b c, path c d, path d dest). < 1321422949 417386 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Except an arbitrary number of those, obviously. < 1321422956 83551 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :And it's a Seq, so fast access from the end too. < 1321422982 681287 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: It's used in oerjan's fancy n-cursor quadtree zipper construction. < 1321423631 132556 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: ENJOY: http://hpaste.org/54095 < 1321423641 558279 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"is this correct?" -- yes it is, I'm an idiot. < 1321423888 790377 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :there are two esolangs on the wiki named 'clue' but neither has to do with Clue/Cluedo < 1321423910 703588 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :one should be made, where all legal syntax is of the form 'X, in the Y, with the Z' < 1321423935 985929 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :would it do anything interesting < 1321423965 851848 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oh man what if it was an really verbosse brianfuck derivative < 1321423977 438721 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :equivalent < 1321424003 680683 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :monqy: :-( < 1321424006 518199 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :thing in the thing with the thing -> a brainfuck comand,. depending on what the things are.... < 1321424018 445075 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Look at what DCliche and monqy is doing. < 1321424020 975841 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :s/is/are/ < 1321424028 892795 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: monqy is On Our Side, don't you worry. < 1321424033 909294 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :He is a True Patriot. < 1321424036 483866 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION isn't sure what Our Side is. < 1321424041 775461 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :true patriots side < 1321424047 10737 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION is not a true esolanger. < 1321424050 769977 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, we don't like brainfuck derivatives much, I would suppose. < 1321424057 776860 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :I was imagining one or more of them could be variables < 1321424065 647801 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :The most esoteric language I know is, like, Haskell, man. < 1321424069 65442 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :perhaps being vaguely similar to SPL < 1321424078 161229 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :is haskell esoteric......... < 1321424082 476973 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Fine, C++. < 1321424142 501522 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :monqy: (I didn't say it was, anyway.) < 1321424151 988620 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell Phantom__Hoover Check your lambdabot mail as Phantom_Hoover. < 1321424152 294489 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424155 508187 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell Phantom_Hoover Say the following to lambdabot, please: < 1321424155 841370 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424188 76518 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what does it take to know c++? (I may or may not know c++.) < 1321424190 190517 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell Phantom_Hoover @tell elliott Hey, you should try and coerce the GHC API into doing that hole-checking thing sometime. By sometime, I mean now; past you gets to decide exactly when you do things, those are the rules. < 1321424190 560087 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424202 96124 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Behold my @tell-myself-without-getting-lambdabot-to-bug-me-immediately-after mechanism. < 1321424233 291674 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :phantom_hoover best mechanism < 1321424247 26878 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :phantom "best mechanism" hoover < 1321424259 700403 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Phecanism. < 1321424281 648186 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: I doubt you're going to do it as soon as you get that message. < 1321424286 497759 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :So you might as well not have done it at all. < 1321424302 628342 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: The idea is mostly so that I don't forget about it. < 1321424311 142520 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@tell elliott Hey, you should try and coerce the GHC API into doing that hole-checking thing sometime. By sometime, I mean now; past you gets to decide exactly when you do things, those are the rules. < 1321424311 428171 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424317 973844 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :No. < 1321424318 362258 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott: You have 1 new message. '/msg lambdabot @messages' to read it. < 1321424322 218315 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :See what you did? < 1321424363 507079 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@tell elliott Hey, you should try and coerce the GHC API into doing that hole-checking thing sometime. By sometime, I mean now; past you gets to decide exactly when you do things, those are the rules. < 1321424363 864108 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424370 983275 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION decides to stop. < 1321424372 190086 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424372 606742 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424373 83529 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424373 479821 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424373 525181 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424373 525423 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424373 658034 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424373 909347 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424373 978369 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell shachaf u mad < 1321424374 233128 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424374 283322 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424374 569977 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424378 9287 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ENJOY, FRIEND < 1321424378 279113 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott: You have 1 new message. '/msg lambdabot @messages' to read it. < 1321424382 244119 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :NOOOOOOOOOO < 1321424384 387450 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@messagse < 1321424387 622834 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@messages < 1321424388 678881 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Maybe you meant: messages messages? < 1321424392 619004 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :shachaf said 24s ago: Hey, you should try and coerce the GHC API into doing that hole-checking thing sometime. By sometime, I mean now; past you gets to decide exactly when you do things, those are < 1321424392 777155 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :@messages < 1321424394 620141 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :the rules. < 1321424396 660163 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :You don't have any new messages. < 1321424404 129760 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Fine, fine I get it. < 1321424405 129062 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the rules. < 1321424422 122660 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric : @remember monqy the rules. < 1321424432 694562 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@remember monqy the rules. < 1321424432 994893 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :I will remember. < 1321424443 791379 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@forget monqy the rules. < 1321424444 178246 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424445 234315 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@quote monqy < 1321424445 632872 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Plugin `quote' failed with: getRandItem: empty list < 1321424447 365490 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@quote monqy < 1321424447 772348 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Plugin `quote' failed with: getRandItem: empty list < 1321424451 427718 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@quote ehird < 1321424451 888214 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. < 1321424453 420586 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@remember monqy the rules. < 1321424453 791458 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :It is forever etched in my memory. < 1321424464 963173 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote ehird < 1321424465 363621 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :ehird says: 2009: The Year of the Combinatorial Explosion of Haskell Web Frameworks. Also, the Linux Desktop. < 1321424469 37153 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote elliott < 1321424469 530021 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. < 1321424472 832227 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote elliott < 1321424473 195075 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: i'm here to prove theorems and compile code and I'm all out of code < 1321424475 264882 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote elliott < 1321424475 592818 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: I have weird mental spheres that I divide all my coding into and that determine editor and the like < 1321424481 758878 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :What? < 1321424483 58026 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote elliott < 1321424483 367683 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. < 1321424486 980548 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote elliott < 1321424487 387051 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: Only two things in the universe are certain: Death, and two of the libraries you've decided to use taking different types of ByteString. < 1321424492 511241 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I have a lot of quotes. < 1321424498 993064 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :@quote monqy < 1321424499 550716 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Plugin `quote' failed with: getRandItem: empty list < 1321424507 392553 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote Darth_Cliche < 1321424507 862134 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No quotes match. < 1321424509 548427 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@remember monqy the rules. < 1321424509 986983 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :It is forever etched in my memory. < 1321424513 74507 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf is a bad man. < 1321424515 757650 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote DCliche < 1321424516 88413 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No quotes match. Maybe if you used more than just two fingers... < 1321424529 742498 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :@quote monqy < 1321424530 218139 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Plugin `quote' failed with: getRandItem: empty list < 1321424534 386634 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the rules... < 1321424556 109950 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@remember monqy the rules. < 1321424556 469358 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :I will remember. < 1321424557 331423 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@quote monqy < 1321424557 709548 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :monqy says: the rules. < 1321424568 231861 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :the rules. < 1321424570 282912 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@tell Phantom_Hoover Remind me to "@remember monqy the rules." because shachaf is a bad person. < 1321424570 633930 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424577 187375 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric ::-( < 1321424578 699209 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@remember elliott @remember @remember @remember < 1321424579 115655 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :I will never forget. < 1321424580 71064 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@remember elliott @remember @remember @remember < 1321424580 436626 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :I will remember. < 1321424581 62158 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@remember elliott @remember @remember @remember < 1321424581 398837 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Good to know. < 1321424582 33502 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@remember elliott @remember @remember @remember < 1321424582 405644 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Okay. < 1321424585 595169 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :okay < 1321424585 664932 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote elliott < 1321424585 989063 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :That... < 1321424586 82498 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: @remember @remember @remember < 1321424588 720841 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :No. < 1321424592 568378 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@forget elliott @remember @remember @remember < 1321424592 954437 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424603 538479 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :/nick Phantom_Hoover; /msg lambdabot @messages < 1321424608 450081 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :elliott: Well, you keep spamming @remember < 1321424615 609750 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@forget elliott @remember @remember @remember < 1321424616 100927 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424617 170461 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@forget elliott @remember @remember @remember < 1321424617 552136 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424618 595130 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@forget elliott @remember @remember @remember < 1321424618 707141 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :DCliche: shachaf keeps spamming @forget. In PRIVATE. < 1321424619 187715 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424627 734472 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: That ain't spamming! < 1321424630 213207 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :elliott: Not as annoying as publically ;p < 1321424643 166949 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@forget DCliche < 1321424643 487761 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Incorrect arguments to quote < 1321424647 452596 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@forget DCliche forever < 1321424647 923855 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No match. < 1321424667 488873 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote shachaf < 1321424667 755452 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :shachaf says: We used to have a big collection of them but most of them got wiped in the Great Lambdabot Wipe of Every Few Months. < 1321424673 617192 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote elliott < 1321424674 33781 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: Top universities now employ people to watch infomercials all day to find the latest mysteries. < 1321424731 280196 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :@quote monqy < 1321424731 734181 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Plugin `quote' failed with: getRandItem: empty list < 1321424744 298291 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf you are scum. < 1321424747 498286 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :AND I AM LEAVING. < 1321424751 402875 :elliott!elliott@unaffiliated/elliott QUIT :Quit: Leaving < 1321424761 489279 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Aw, and I was about to start singing. < 1321424774 26164 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :scum songs < 1321424782 638584 :elliott!elliott@unaffiliated/elliott JOIN :#esoteric < 1321424786 265986 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi < 1321424790 522888 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :monqy and the rules. monqy and the rules. It's monqy, it's monqy and the rules rules rules rules... < 1321424800 471760 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :NOTE TO SELF: < 1321424801 48243 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :newtype SupplyT s m a = SupplyT { unSupplyT :: (forall r. (s -> SupplyT s m r) -> SupplyT s m r) -> m a } < 1321424805 731484 :elliott!elliott@unaffiliated/elliott QUIT :Client Quit < 1321424808 717883 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :bye < 1321424821 13777 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@tell elliott newtype SupplyT s m a = SupplyT { unSupplyT :: (forall r. (s -> SupplyT s m r) -> SupplyT s m r) -> m a } < 1321424824 636512 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321424837 485547 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote elliott < 1321424842 597282 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: @remember @remember @remember < 1321424859 686217 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :remember remember remember: never forget < 1321424876 188770 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :@forget elliott @remember @remember @remember < 1321424876 557985 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Done. < 1321424880 258778 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :rip < 1321424884 504281 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :@quote elliott < 1321424884 994730 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott says: I have weird mental spheres that I divide all my coding into and that determine editor and the like < 1321424894 996494 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :how is that a quote... < 1321424913 741870 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote DCliche < 1321424914 29762 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :DCliche says: @remember elliott @remember @remember @remember < 1321424921 315706 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :good quote < 1321424980 719337 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :@quote Patashu < 1321424981 104298 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :No quotes match. This mission is too important for me to allow you to jeopardize it. < 1321424987 521079 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au PRIVMSG #esoteric :rofl < 1321425025 350338 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :DCliche: How many times did you @remember that? < 1321425032 504265 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@remember what < 1321425032 916608 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Incorrect arguments to quote < 1321425049 256388 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :DCliche: elliott @remember @remember @remember < 1321425075 19651 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :I'll be back in half an hour or so, I need to count < 1321425353 482783 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :46 apparently, not as many as I expected < 1321425379 356657 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote lambdabot < 1321425379 733693 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :lambdabot says: Done. < 1321425382 970478 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net PRIVMSG #esoteric :@quote lambdabot < 1321425383 416510 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :lambdabot says: why on the earth whould I slap dons with a wet trout < 1321425742 324851 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net QUIT :Quit: You are now graced with my absence. < 1321426075 525971 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :https://upload.wikimedia.org/wikipedia/commons/2/23/Xiaoerjing-Ekzemplafrazo.svg Anyone care to guess the language? (note: I can just about guarantee you'll get it wrong) < 1321426612 939927 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :pikhq: The filename is a bit of a hint. < 1321426617 839094 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :shachaf: Is it? < 1321426651 859514 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :Well. I suppose it is. < 1321426685 509132 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :I guessed that "Xiaoerjing" was vaguely Chinese-related before looking it up. < 1321426696 141207 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :Still, WTF. < 1321426727 752401 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :? < 1321426751 676792 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net PRIVMSG #esoteric :That's fucking Mandarin, the fuck. < 1321427277 19393 :copumpkin!~pumpkin@unaffiliated/pumpkingod PRIVMSG #esoteric :western china? < 1321428012 872103 :GreaseMonkey!~gm@unaffiliated/greasemonkey QUIT :Quit: The Other Game < 1321429347 718888 :fizzie!fis@iris.zem.fi PRIVMSG #esoteric :I would have guessed that "Xiaoerjing" would be vaguely oerjan-related. < 1321429428 463830 :Zuu!~zuu@unaffiliated/zuu QUIT :Read error: Connection reset by peer < 1321429559 382894 :SgeoN1!~AndChat@ool-ad034d00.dyn.optonline.net QUIT :Ping timeout: 240 seconds < 1321429731 431182 :Zuu!~zuu@unaffiliated/zuu JOIN :#esoteric < 1321431663 659160 :CakeProphet!~eris@h102.38.18.98.dynamic.ip.windstream.net JOIN :#esoteric < 1321431663 760975 :CakeProphet!~eris@h102.38.18.98.dynamic.ip.windstream.net QUIT :Changing host < 1321431663 806334 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake JOIN :#esoteric < 1321432324 948082 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot < 1321432326 352223 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :CakeProphet: madam president, may i offer my congratulations on his excellent report inviting us to reflect a vision of the future constitutional treaty. yet again we are suffering from this. allow me to intervene in this region where there is overcapacity, fishermen who can no longer stand by while saddam hussein keeps playing these games. last month the commission presented its legislative proposals for the 18 council regulat < 1321432417 873822 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :^style < 1321432417 944268 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld europarl* ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa sms speeches ss wp youtube < 1321432435 917910 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :^style speeches < 1321432436 56589 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Selected style: speeches (misc. speeches from Project Gutenberg) < 1321432437 313978 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: hi < 1321432444 253652 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: why do you not love me? :( < 1321432450 899400 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake NICK :ElliotDrone1 < 1321432454 358053 :ElliotDrone1!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: hi < 1321432455 92662 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :ElliotDrone1: mr. chairman and fnord am very glad to be able to violate the ordinary rules of composition as well as society has its pleasures; as from the city. < 1321432458 154709 :ElliotDrone1!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake NICK :CakeProphet < 1321432951 2919 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake PRIVMSG #esoteric :fungot: oh? < 1321432952 29684 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :CakeProphet: if i had written it all out the day before the furnace, so a fancy may be said that a man who had neglected his studies were fnord by the restless bed of fnord and i recollect that the most audacious libels on royal majesty have passed without notice; that the most audacious libels on royal majesty have passed without notice; that the most intense terrors." < 1321435073 874757 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net QUIT :Quit: hello < 1321437840 530912 :hagb4rd!~perdito@koln-5d81ef6d.pool.mediaWays.net JOIN :#esoteric < 1321440150 893795 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 248 seconds < 1321440175 895341 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1321441521 420173 :derdon!~derdon@p5DE8931F.dip.t-dialin.net JOIN :#esoteric < 1321443788 499104 :aloril!~aloril@84.249.126.153 QUIT :Ping timeout: 240 seconds < 1321444591 762299 :aloril!~aloril@dsl-tkubrasgw3-fe7ef900-153.dhcp.inet.fi JOIN :#esoteric < 1321446090 985955 :augur!~augur@208.58.5.87 QUIT :*.net *.split < 1321446091 225481 :twice11!~twice11@lenny32.physik.fu-berlin.de QUIT :*.net *.split < 1321446091 270892 :yorick!~yorick@unaffiliated/yorick QUIT :*.net *.split < 1321446117 537727 :augur!~augur@208.58.5.87 JOIN :#esoteric < 1321446246 955888 :twice11!~twice11@lenny32.physik.fu-berlin.de JOIN :#esoteric < 1321446283 990454 :yorick!~yorick@unaffiliated/yorick JOIN :#esoteric < 1321448152 942363 :boily!~boily@mtl.savoirfairelinux.net JOIN :#esoteric < 1321448645 483137 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net JOIN :#esoteric < 1321448664 431093 :pikhq!~pikhq@71-219-231-79.clsp.qwest.net QUIT :Ping timeout: 258 seconds < 1321449932 551691 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au QUIT :Ping timeout: 240 seconds < 1321450526 63216 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1321450679 66729 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 248 seconds < 1321450703 923395 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1321451062 174037 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net QUIT :*.net *.split < 1321451062 425239 :Zwaarddijk!miekko@infa.abo.fi QUIT :*.net *.split < 1321451310 845112 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net JOIN :#esoteric < 1321451310 890665 :Zwaarddijk!miekko@infa.abo.fi JOIN :#esoteric < 1321452280 14957 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Ping timeout: 252 seconds < 1321452304 606957 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1321453742 283727 :Zwaarddi1k!miekko@infa.abo.fi JOIN :#esoteric < 1321454027 679443 :MSleep!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net QUIT :*.net *.split < 1321454027 917343 :Zwaarddijk!miekko@infa.abo.fi QUIT :*.net *.split < 1321455144 195486 :copumpkin!~pumpkin@unaffiliated/pumpkingod QUIT :Quit: Computer has gone to sleep. < 1321456107 502217 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :fungot: is it okay if I pretend to have a conversation with you? < 1321456109 1000 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :tswett: there is one honest and industrious neighbours rather than among rioters and vagabonds. this matter is as much a theory of government in opposition to their prayer. when the question is not, i am fnord. fnord patron ( rousseau) et fnord fnord quod fnord urbi. < 1321456129 62565 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Uh... < 1321456130 42849 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :^style < 1321456130 744267 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Available: agora alice c64 ct darwin discworld europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack pa sms speeches* ss wp youtube < 1321456136 854193 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Is that so. < 1321456143 878500 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :^style ss < 1321456144 609227 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Selected style: ss (Shakespeare's writings) < 1321456152 658792 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :Mm, no. < 1321456161 399221 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :^style homestuck < 1321456161 981959 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Selected style: homestuck (Homestuck pages 1901-4673) < 1321456169 834798 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :fungot: no spoilers, please. < 1321456170 469537 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :tswett: the only sad part is how easy it's going to be a long day. though it is pretty conceivable that i will remain an impeccable leader for a span. he is the first and they get progressively more difficult to reach a very high rolls he was lucky. my lusus sucks, what a terrible idea. leave me alone. < 1321456181 413987 :derrik!~xix@gprs-inet-65-5.elisa.ee JOIN :#esoteric < 1321456201 67345 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :fungot: oh, come on. You're a terrible leader and you deserve to have such a sucky lusus. < 1321456201 851784 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :tswett: john, try to stop me i dare you. published by major developers, was given a name! you've been eating it all day. and it might help you take a picture of a fella all worked! you love your scribblepad. < 1321456254 940596 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :fungot: I guess I will, then. Even my scribblepad easily matches you... what kind of lame weapon do you have allocated, anyway? < 1321456255 689608 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :tswett: this is it, like an apple or that it is your backup hat. problem solved, you guess. at the last minute she flung through skaian defense. what a royal mess of his lovely new horseleather bib. it just so happens that today, the 13th of april. another day of uneventful but highly satisfying < 1321456261 636169 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :fizzie, how does it feel to be a major developer? < 1321456262 229006 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Phantom_Hoover: You have 4 new messages. '/msg lambdabot @messages' to read them. < 1321456283 84613 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :An apple. Yes, I can surely defeat someone armed with only an apple. < 1321456328 747702 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :What if they're armed with that sword alone? < 1321456549 265161 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :What sword? < 1321456652 933512 :copumpkin!~pumpkin@unaffiliated/pumpkingod JOIN :#esoteric < 1321457607 892687 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :tswett, that sword alone! < 1321457616 452822 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :It can't stop, you know. < 1321457661 163057 :tswett!~Warrigal@unaffiliated/ihope PRIVMSG #esoteric :I'm afraid I'm not familiar with the sword you speak of. < 1321458829 410623 :MDude!~fyrc@or-67-238-31-252.dhcp.embarqhsd.net JOIN :#esoteric < 1321459006 14156 :Gregor!foobar@codu.org PRIVMSG #esoteric :HEY GUYYYYYYS best VAX simulator? < 1321459598 921851 :sebbu2!~sebbu@unaffiliated/sebbu JOIN :#esoteric < 1321459729 316110 :sebbu!~sebbu@unaffiliated/sebbu QUIT :Ping timeout: 276 seconds < 1321460279 225424 :elliott!elliott@unaffiliated/elliott JOIN :#esoteric < 1321460463 682661 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :08:34:10: -!- CakeProphet is now known as ElliotDrone1. < 1321460464 405700 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :elliott: You have 2 new messages. '/msg lambdabot @messages' to read them. < 1321460464 625950 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :CakeProphet: die < 1321460919 275194 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :15:56:46: HEY GUYYYYYYS best VAX simulator? < 1321460921 474948 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Dyson? < 1321460929 779861 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Good ol' Phantom_Hoover here? < 1321460937 595853 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: MORE SERIOUSLY, probably SIMH? < 1321460941 244577 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Top on Google. < 1321460946 780722 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Also it does PDPs. < 1321460975 433235 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :You can tell it's good because it's unpronounceable. < 1321460988 725542 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Wait, my name has an mh in it... < 1321461129 284262 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :(I tried to change my name to Ford_Prefect here, and then to Ix, but they're both in use.) < 1321461434 315875 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :"Note that the K combinator is operationally similar to \x y . x" — Haskell wiki. < 1321461438 188648 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Similar? < 1321461497 249066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: SKI calculus isn't defined in terms of the lambda-calculus. < 1321461513 304736 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Sure, but operationally they're identical. < 1321461549 889273 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, yes. < 1321461560 881882 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: But you have to define a system with both of 'em to say things like that. < 1321461569 745574 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Otherwise it's not clear what "identically" means at all. < 1321461645 491448 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Oh god, I nearly used a hyphen rather than a diaeresis. < 1321461654 587901 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :You almost weren't terrible. < 1321461674 97350 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I WILL TAKE MY DIAERESES TO THE GRAVE < 1321461727 940035 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Diaeresae. < 1321461732 921041 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Sorry, Ï WÏLL TÄKË MŸ DÏÄËRËSËS TÖ THË GRÄVË < 1321461793 30497 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom_Hoover: Ah. < 1321461881 871284 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :s/W/Ẅ/g;s/H/Ḧ/g < 1321461912 77147 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I was going to try them on all the consonants, but I couldn't be bothered. < 1321461996 189336 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Hey WISE GUY, I've got a TEAM OF PHDS working on my N-CURSOR ZIPPER SPARSE DISCERETE INFINITE LAHEY-SPACE INTERFACE < 1321461999 67167 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :SO HA HA HA < 1321462039 951362 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Hope it works out for you < 1321462069 318145 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'VE USED ABOUT SEVEN GADTS AND UNSAFECOERCE, IT FUCKING BETTER < 1321462473 838412 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: YeahOK, SIMH seems like the way. Unfortunately PDP's will never be supported, I need too much memory :P < 1321462479 942378 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1321462494 262972 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: So, three kilobytes? < 1321462546 126549 :Gregor!foobar@codu.org PRIVMSG #esoteric :I haven't measured, actually :P < 1321462550 497943 :Gregor!foobar@codu.org PRIVMSG #esoteric :But probably ~10M < 1321462801 259491 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Anyway, I feel VAX would be a nice topper for my JIT :P < 1321462842 968336 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I can't help but feel you'd do better if your language was less boring :P < 1321462852 691059 :Gregor!foobar@codu.org PRIVMSG #esoteric :That's a point ... < 1321462855 236906 :Gregor!foobar@codu.org PRIVMSG #esoteric :What shall I add? < 1321462877 184400 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I'd think more along the lines of "change" than "add", but that's probably way too much work at this point :P < 1321462890 914076 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :But a lot of the winning IOCCC entries do something fairly impressive even apart from their code. < 1321462895 80141 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :You still deserve to win though :P < 1321462916 413177 :Gregor!foobar@codu.org PRIVMSG #esoteric :I think the "fairly impressive" part is that it JITS EVERYWHERE :P < 1321462933 714382 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Well, yeah, but you can't tell that just from running it, and it's no flight sim :P < 1321462946 713809 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :BTW you should integrate this technology into Fythe! :p < 1321462954 557840 :Gregor!foobar@codu.org PRIVMSG #esoteric :lol < 1321463156 998394 :quintopia!~quintopia@unaffiliated/quintopia QUIT :Ping timeout: 260 seconds < 1321463754 279724 :quintopia!~quintopia@74.117.159.204 JOIN :#esoteric < 1321463754 677457 :quintopia!~quintopia@74.117.159.204 QUIT :Changing host < 1321463754 722504 :quintopia!~quintopia@unaffiliated/quintopia JOIN :#esoteric < 1321463968 322774 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net JOIN :#esoteric < 1321464110 196630 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hi monqy < 1321464251 997583 :Zuu!~zuu@unaffiliated/zuu QUIT :Ping timeout: 244 seconds < 1321464568 178080 :augur!~augur@208.58.5.87 QUIT :Remote host closed the connection < 1321464808 77428 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: BEHOLD YOUR DEFEATER: http://sprunge.us/MfXU < 1321464861 174068 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It has been beheld < 1321464909 321961 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: There is noooo way you properly beheld that in the time it took you, did you even NOTICE the unsafeCoerce? < 1321464912 376594 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :The rank-2 fold?? < 1321464927 950000 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I missed the unsafeCoerces, noticed the fold though < 1321465058 82759 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :hi < 1321465110 724773 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hi monqy you behold too http://sprunge.us/MfXU < 1321465127 295638 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Also this is only a quadtree, it's going to require something even more ridiculously involved for something decent :-/ < 1321465140 142638 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Plus the fact that I don't actually have the algorithms to move the cursors about yet < 1321465141 715889 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :May I recommend a bucket PR-CIF k-d tree < 1321465179 86778 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Maybe < 1321465191 351886 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I'd rather not use something that wants a dynamic array, at least < 1321465205 176564 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Also I'll have to use something slightly different from anything you say to establish my superior thinking < 1321465217 966885 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Actually hmm < 1321465225 320873 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You use a dynamic array just so you can load the whole file into one, don't you < 1321465227 542877 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :That's sneaky < 1321465229 903364 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Sneaky and deceitful < 1321465277 453295 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :I can't do that since the file isn't rectangular < 1321465288 841213 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I don't mean directly < 1321465298 690815 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I just mean, you do it so that you don't have to deal with cross-array boundaries during file loading < 1321465299 332296 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Then yes < 1321465306 683286 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Sneaky, and wrong < 1321465330 30501 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Well, in a sense I have to deal with them, if there're arrays already there < 1321465361 666486 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Well, yes, but it still speeds up your initial load < 1321465384 284667 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I guess I'll have to resolve myself to being slower on Mycology and faster on Fungicide < 1321465388 795772 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/resolve/resign/ < 1321465395 376074 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Compared to something like a hash table, it should, yes < 1321465437 48273 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Compared to the structure you have but with fixed-size arrays :P < 1321465498 528720 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Compared to that too, it should, yes < 1321465512 193834 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :The whole point was to not use fixed-size arrays :-P < 1321465533 495051 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Until it turned out that not having the compiler optimize x*C into a shift-and-add was a bottleneck < 1321465616 266267 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I don't see how dynamic arrays really help much, if you have a fancy k-d tree < 1321465623 417032 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Or other sufficiently smart space :P < 1321465630 498016 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Certainly the indexing is a lot more trivial < 1321465674 559921 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Maybe they don't, it was more of a matter of principle < 1321465688 57577 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1321465723 485802 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Thankfully I think this n-cursor setup doesn't actually really have that much overhead over mutation, so ha < 1321465765 974596 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(It basically cuts off the tree at each point where a cursor is, zips those at the cursor, and then arranges the whole thing into a zipper) < 1321465767 587288 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(Sort of) < 1321465771 940568 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Point being to one-up cfunge's "lol here's a int[1024*256], turns out it's fast to do stuff in that" with "I have no constants in my funge-space implementation and it's faster than yours"; unfortunately that didn't quite work (see x*C optimization) < 1321465791 820383 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1321465814 885512 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: You're still slower on Mycology, right :-) < 1321465817 821945 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :(And there were and still are other, different constants) < 1321465822 262091 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :elliott: AFAIK I'm faster on everything < 1321465843 166932 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :On full Mycology, I might be somewhat slower only due to executing more fingerprint tests < 1321465845 399242 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :How the heck do you beat it on Mycology; just your ridiculous fingerprint and stack microoptimisations? < 1321465854 717859 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :It's not like your fungespace will help any :P < 1321465877 284460 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :My fungespace is effectively the same and other than that, maybe those play a part, dunno :-P < 1321466073 378963 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Actually, I think I'm still slower on fungot's underload interpreter; can't remember for sure < 1321466073 559160 :fungot!~fungot@momus.zem.fi PRIVMSG #esoteric :Deewiant: that is a winner's attitude, and there is no particularly good human translation for this concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear concept. a concept usually denoted by a single, linear c < 1321466108 115668 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric ::D < 1321466197 782959 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: What you need to do is implement UNDL < 1321466207 655460 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :For AUA (Advanced Underload Acceleration(tm)) < 1321466377 972548 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: I... why am I actually considering implementing that < 1321466395 28341 :augur!~augur@129.2.129.32 JOIN :#esoteric < 1321466475 906105 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Couldn't say < 1321467375 348163 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"Here is a PoC for four new buffer overflows in GIMP. Compile it < 1321467375 515783 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :with open-cobol." < 1321467380 35600 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Now that's what I like to hear. < 1321467423 68361 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Hmph, it's not proper COBOL. < 1321467427 244221 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :It's just a glorified cat. < 1321467430 84559 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Without the loop. < 1321468287 275970 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: cat repl.jch hello.jch gorepl.jch | ./jitchards < 1321468291 705399 :Gregor!foobar@codu.org PRIVMSG #esoteric :Hello, world! < 1321468297 25394 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Wow :P < 1321468305 266155 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: It's... not a repl without a prompt, y'know :P < 1321468307 578576 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Also, what's gorepl. < 1321468328 800485 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: 1) It has a prompt, I'm just suppressing it by catting shit in, 2) gorepl says "now run the function you loaded as main" < 1321468341 674481 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Wait, it /detects whether stdin is a tty/? < 1321468347 788406 :Gregor!foobar@codu.org PRIVMSG #esoteric :No < 1321468355 946819 :Gregor!foobar@codu.org PRIVMSG #esoteric :You'd have to cat repl.jch - | ./jitchards normally < 1321468361 499115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :How does it suppress the prompt then :P < 1321468376 697472 :Gregor!foobar@codu.org PRIVMSG #esoteric :Oh, you mean it would show a 'put ur code here lol> ' thing < 1321468381 978428 :Gregor!foobar@codu.org PRIVMSG #esoteric :Well that's boring and stupid. < 1321468389 219580 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Don't call it a REPL then :P < 1321468397 841106 :Gregor!foobar@codu.org PRIVMSG #esoteric :FINE, I'LL ADD A PROMPT < 1321468402 630556 :Gregor!foobar@codu.org PRIVMSG #esoteric :!bf_txtgen > < 1321468407 448059 :EgoBot!foobar@codu.org PRIVMSG #esoteric :​34 ++++++++++[>++++++>+>><<<<-]>++.>. [55] < 1321468410 229370 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: You might also want to add the "read" and "loop" part so you don't have to cat - :-) < 1321468422 788658 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I GUESS you can forego a tape debug output? < 1321468429 241790 :Gregor!foobar@codu.org PRIVMSG #esoteric :The whole system only reads from stdin, and it does loop X_X < 1321468438 324689 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Don't use bf_txtgen for single chars < 1321468449 733294 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :http://esolangs.org/wiki/Brainfuck_constants < 1321468452 709075 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :> ord '>' < 1321468453 899225 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 62 < 1321468454 999615 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: It's two chars < 1321468461 709759 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :++++[>+<++++]>- < 1321468470 58879 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: It's two chars < 1321468472 828894 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :> ord ' ' < 1321468474 60429 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 32 < 1321468480 262310 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :++++[>+<++++]>-.[-]++++[>++++++++<-]>. < 1321468484 389603 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :...OK, I guess bf_txtgen wins this time :P < 1321468486 448473 :Gregor!foobar@codu.org PRIVMSG #esoteric :Congrats, it's longer. < 1321468505 43831 :Gregor!foobar@codu.org PRIVMSG #esoteric :HEYWAIT < 1321468514 586214 :Gregor!foobar@codu.org PRIVMSG #esoteric :REPL = Read Eval Print Loop THERE IS NO "PROMPT" HERE < 1321468535 195371 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :what < 1321468535 528806 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :No, there isn't, but every REPL in the history of ever has had a prompt. < 1321468538 802261 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :yes < 1321468538 971667 :Gregor!foobar@codu.org PRIVMSG #esoteric :My repl is 100% REPL satisfaction except for the P :P < 1321468548 249988 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :REPL should print a prompt < 1321468552 365257 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :its userfriendly < 1321468554 882741 :Gregor!foobar@codu.org PRIVMSG #esoteric :Oy vey < 1321468562 241670 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: R, E, P, L are necessary but not sufficient conditions :P < 1321468839 248445 :Gregor!foobar@codu.org PRIVMSG #esoteric :... lol bf_txtgen ignored my space and put a newline :P < 1321469249 600753 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I bet EgoBot is the one ignoring the space :P < 1321469261 85088 :Gregor!foobar@codu.org PRIVMSG #esoteric :Probably < 1321469994 41884 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :04:25:05: data MetaContext = MetaContext { nwNeighbor :: MetaCursor (To NW), ..., up :: MetaCursor dir, signPost :: SignPost } -- it occurs to me that some field name disambiguation will be needed < 1321470000 666814 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :well this is going to need oerjisambiguation >:( < 1321470033 634178 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: lullll my circularity changes broke SPARC somehow :P < 1321470041 163010 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :lol < 1321470049 708896 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Did you ever get it working on Itanium < 1321470057 605203 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I don't have a working simulator. < 1321470065 908337 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: MMIX? < 1321470077 730199 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Now there's a nice'n 8-D < 1321470094 261204 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Test with jsmmix :P < 1321470094 319367 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Except I have no stdlib, so can't really test >_> < 1321470109 61764 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: More seriously, Alpha? < 1321470132 498368 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: IIRC the only reason I haven't tried Alpha is that I was too lazy to build a cross compiler. < 1321470139 477869 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :X-D < 1321470453 174510 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Argh, I forgot how awful GHC's API is. < 1321470740 319939 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Fixed SPARC. < 1321470746 508419 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Woot < 1321470830 594559 :Gregor!foobar@codu.org PRIVMSG #esoteric :The problem was very stupid, it was variable shadowing :P < 1321470840 236822 :Gregor!foobar@codu.org PRIVMSG #esoteric :I didn't think it was so sensitive to this kind of change X-D < 1321470901 116673 :Gregor!foobar@codu.org PRIVMSG #esoteric : | | Target Architecture (alpha) ---> | | < 1321470905 106379 :Gregor!foobar@codu.org PRIVMSG #esoteric : | | Bitness: (32-bit) ---> | | < 1321470908 792600 :Gregor!foobar@codu.org PRIVMSG #esoteric :Uhhh, crosstool-ng? < 1321470912 794721 :Gregor!foobar@codu.org PRIVMSG #esoteric :alpha ain't gonna be 32-bit < 1321471279 691709 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: So does mushspace do k-d things or is it just capable of doing so without API changes in the future < 1321471293 254769 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :It should be capable < 1321471301 162719 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :mushspace == CCBI < 1321471342 557796 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Deewiant: Right, just checking that it won't speed things up massively in the short term before Shiro takes the lead :P < 1321472171 180311 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1321472208 151472 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hi ais523 < 1321472245 659901 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hi elliott < 1321472334 155265 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :http://sprunge.us/AXOB < 1321472406 469318 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: ^ < 1321472438 47891 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: glanced at file list, eyes hit upon the source directory, tab closed < 1321472444 780848 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :haha < 1321472446 352286 :Gregor!foobar@codu.org PRIVMSG #esoteric :OK, wtf variant of the Alpha do I need to select X_X < 1321472455 656232 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :call of link remains. perhaps this is the end... < 1321472478 533245 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: don't worry, it's sane < 1321472483 710631 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's only very tangentially related to Feather < 1321472489 152396 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the name of the language is Not Even Feather < 1321472493 252167 :CakeProphet!~eris@wikipedia/The-Prophet-Wizard-of-the-Crayon-Cake QUIT :Read error: Operation timed out < 1321472496 958153 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: That's, uh, a very minimal syntax. < 1321472503 401308 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep < 1321472505 601598 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's just sexps < 1321472508 477724 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :those are really easy to parse < 1321472508 640421 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: Actually I think it shares a syntax with Qq. < 1321472518 984071 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/Qq/qq/ < 1321472523 339937 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the parser would be even simpler if I didn't try to do type inference in it < 1321472536 842092 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :`addquote the parser would be even simpler if I didn't try to do type inference in it < 1321472543 793448 :HackEgo!foobar@codu.org PRIVMSG #esoteric :719) the parser would be even simpler if I didn't try to do type inference in it < 1321472577 228378 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, is it sufficiently Not Feather that my apparent inability to find any self-modification is expected? < 1321472600 981922 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1321472605 427721 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it doesn't have self-modification < 1321472632 363269 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: how is it Not Entirely Not Feather, then? < 1321472633 186383 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :NEF's a language designed for use as the backend of Feather interpreters < 1321472636 885070 :Darth_Cliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net JOIN :#esoteric < 1321472641 722442 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ah < 1321472643 387196 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :is it complete? < 1321472646 909383 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's TC < 1321472657 164201 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although a little tricky to avoid writing infinite loops in it < 1321472665 636844 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, is further expansion planned? < 1321472681 828836 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :also, someone should write a safe unsharchiver < 1321472685 675634 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no, unless I find a good way to make evaluation less eager < 1321472690 333490 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :like how JSON was originally parsed with eval() and then people wrote real parsers < 1321472710 677595 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: grrr, sharbomb < 1321472717 100238 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :sorry; aren't they usually? < 1321472720 228239 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe < 1321472732 793814 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway, the main weird feature of the language is "overeager" evaluation < 1321472744 750003 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: is that the same as superstrict? < 1321472748 310502 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. doing reduction inside lambdas < 1321472753 390419 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep < 1321472754 22195 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(which tends to make things like Y diverge) < 1321472772 383738 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, I think reimplementing this would be simpler than installing an OCaml compiler < 1321472776 438398 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION does so < 1321472782 83238 :Gregor!foobar@codu.org PRIVMSG #esoteric :configure: error: The alphaev6 is not supported. < 1321472783 960391 :Gregor!foobar@codu.org PRIVMSG #esoteric :WTF GLIBC < 1321472791 289844 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what, reimpls, or installs OCaml? < 1321472792 152043 :Gregor!foobar@codu.org PRIVMSG #esoteric :It said that for alphaev4, alphaev5 too < 1321472795 671111 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: former < 1321472799 212619 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :heh < 1321472818 45320 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's mostly a proof-of-concept interp < 1321472834 408648 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, what's the difference between Var1 and Var2? < 1321472836 207172 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway, what I really need to show that NEF has fit its concept correctly is to write a self-interp with eigenratio 1 < 1321472853 163266 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: which argument it refers to < 1321472959 219818 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the language has exactly two types: 1, which takes an argument of type 2, and 2, which takes two arguments, of type 2 and 1 respectively < 1321472980 767193 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :functions never return, so it doesn't make sense to say that the return value has a type < 1321473005 631351 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: are you at least reimplementing it in Haskell? < 1321473056 912502 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it should be possible to translate more or less directly, as apart from the I/O right at the start and some debug output, that interpreter is pure < 1321473097 106999 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :back < 1321473104 478283 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yep < 1321473114 272189 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: so is Var1 a variable reference to a variable of type 1? < 1321473124 914471 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep < 1321473138 808106 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: cool, I can represent the types in Haskell then < 1321473163 96035 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, and Call1 calls a 1 with a 2? < 1321473170 48791 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and Call2 calls a 2 with a 2 and a 1? < 1321473193 329030 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Call2 takes three arguments; the first is the variable holding the function to call (of type 1), and the other two are its arguments, of types 2 and 1 respectively < 1321473197 424780 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*(of type 2) < 1321473200 827379 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and Call1 is analogous < 1321473203 73145 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: why can't the function be an expression instead? < 1321473206 553634 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :is that fundamental? < 1321473213 849618 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's the main unusual feature of NEF < 1321473216 904945 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right < 1321473234 834352 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what is the return type of a 1? < 1321473236 265519 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and a 2? < 1321473240 2037 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or can they return either 1s or 2s? < 1321473240 761724 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there isn't one, they never return < 1321473247 622417 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no function ever returns in NEF < 1321473252 250251 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: well, OK, what is the type of 2(2,1)? < 1321473256 130129 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :erm < 1321473257 856296 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there isn't one < 1321473260 571080 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :where i use integers to mean "something of that type" < 1321473268 170770 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: then how do you pass a 2 or a 1? < 1321473275 155090 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :by getting it from a variable? < 1321473279 971289 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :if so, surely it should be Call1 of (int * int) < 1321473281 409994 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :either that, or by giving a template < 1321473284 11386 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and Call2 of (int * int * int) < 1321473290 19698 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: that's not in the program type :) < 1321473299 170631 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :let me try to explain the language, rather than you to reverse-engineer it from the impl < 1321473310 756539 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :probably a good idea < 1321473324 326334 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :basically, if I write (a b c), that can be interpreted as \0.a(b,c) < 1321473335 306643 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, \-1.a(b,c) < 1321473338 436380 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the numbers are relative to parens < 1321473344 218267 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so (0 0) = \x.x < 1321473350 695521 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait < 1321473350 757858 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: is it de bruijn or reverse de bruijn? < 1321473368 74609 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :umm, I forget which way is which < 1321473386 77710 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but (0 0) always means \v c.c(v) < 1321473395 623112 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: in de bruijn, 0 is the innermost var < 1321473399 46666 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :in reverse de bruijn, 0 is the outermost < 1321473403 326453 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(de bruijn is much nicer) < 1321473415 345627 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and likewise, (0 (0 1)) means \x c.c(\y d.d(x)) < 1321473419 253138 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so 0 is innermost < 1321473468 725026 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :forward de bruijn, then < 1321473553 636215 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: but, ehh, is the only reason you have the arguments be programs instead of variable numbers so that you can use Exit and Error there? < 1321473562 155005 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or can you actually nest calls and that's what this template stuff is? < 1321473588 350327 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: it's basically the same as giving a literal lambda as an argument to something < 1321473597 424560 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :i.e. the arguments are either variables or function literals < 1321473607 448386 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and function literals can be very complex < 1321473620 842131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(by "variable" I mean "lambda variable", btw, not the assignable sort) < 1321473622 701197 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: OK, let me get a straight answer: is Call1 (n, Call2 ...) ever valid? < 1321473634 842729 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes < 1321473642 459882 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so is Call1 (n, Call1 …) < 1321473643 915849 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what about Call1 (n, Call1 ...)? < 1321473645 107544 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :OK < 1321473660 76378 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :then indeed, i do not understand the language :) < 1321473676 746595 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I have a few examples < 1321473724 413035 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(0 0) is how you compile i into NEF; (0 (0 1)) acts like k; (0 (0 (2 0 (2 1 (1 0 2))))) acts like s; (0 (1 0) 0) acts like call/cc < 1321473741 353463 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Ohhey, it works on PPC and I never even did any work to make it, err, work there. < 1321473741 463220 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I get I and K but not the others, although S looks familiar < 1321473748 848284 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I think implementing it will probably be the first step in understanding it; it tends to be with languages this simple < 1321473750 574001 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Neat < 1321473768 450343 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: but I believe this means I can't actually do the type trick I was planning :) < 1321473778 136205 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :indeed, I tried to do that trick too < 1321473785 129308 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but it doesn't work < 1321473787 687485 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what type does exit take? 1 or 2? < 1321473799 929944 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :exit's of type 1 < 1321473808 88266 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: no it isn't < 1321473811 184149 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it isn't a program < 1321473812 904973 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so it has no type < 1321473819 104096 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: in (Exit p), what type must p have? < 1321473829 188265 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: it takes one argument of type 2; that's the definition of being type 1 < 1321473840 426009 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it doesn't take an argument at all, because it's not a program! < 1321473843 561447 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it's a function from program to program < 1321473848 331356 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no it isn't < 1321473850 673124 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Call1 (Exit, ...) # not valid < 1321473857 760928 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: it is, I'm looking at your ADT /right now/ < 1321473860 225661 :derrik!~xix@gprs-inet-65-5.elisa.ee QUIT :Quit: /clear < 1321473860 713994 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: Call1 (Call1, ...) # not valid < 1321473868 1832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :yes, which is why Call1 doesn't have a type < 1321473870 1265 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because it's not a program < 1321473887 313932 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yet Call1 (0, Var2 0) is a program < 1321473894 225115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :...yes? < 1321473900 994298 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(Exit p) is a program, obviously < 1321473903 721843 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Exit isn't < 1321473905 357716 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, right < 1321473915 316139 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :therefore Exit doesn't have a type, because a type is something programs have < 1321473923 982326 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in that case, Exit takes a program of type 2 and returns a program of type 1 < 1321473940 52678 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :right; and I assume Error is a program of type 1 or 2, i.e. polymorphic? < 1321473952 260318 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :nah, Error is me getting rid of code duplication < 1321473958 850786 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's of type 1, always < 1321473967 859608 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :OK < 1321473974 922716 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data T1 < 1321473975 55293 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data T2 < 1321473975 105662 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data Exp t where < 1321473975 105788 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Var :: Var t -> Exp t < 1321473975 105934 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Call1 :: Var T1 -> Exp T2 -> Exp ??? < 1321473975 455790 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Call2 :: Var T2 -> Exp T1 -> Exp T2 -> Exp ??? < 1321473977 429106 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Exit :: Exp T2 -> Exp T1 < 1321473977 659134 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because I use the same codepaths for type 1 stuff (that don't have a type 1 arg) and type 2 stuff (which does have a type 1 arg) < 1321473979 432705 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Error :: Exp T1 < 1321473981 435811 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :this is why the trick fails :) < 1321473983 250783 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :you can't fill in ??? < 1321473995 546545 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and just stick in Error as the type 1 arg < 1321474001 670701 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :if I understood the language, I could probably do a better trick to reify the types, but I don't understand it well enough to do that now < 1321474003 93165 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: ewwwww < 1321474007 76855 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I'm not going to have Error < 1321474013 534478 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I know >:) < 1321474017 966894 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I didn't think you would < 1321474032 70829 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: btw, why is it (Exit of program) instead of just Exit, used like Call1 (Exit, p)? < 1321474069 459216 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: the given program is executed to calculate the return value < 1321474080 422389 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: and so it would be with Call1 (Exit, p), no? < 1321474089 222649 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or is this me not understanding the semantics again :) < 1321474100 296277 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :the problem with the understanding-by-implementation approach is that it involves implementation < 1321474109 96288 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's a side-effect of being hypereager < 1321474123 922022 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :suppose Exit ends up being substituted into the first position of a Call < 1321474131 320369 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it can't be there, so needs to be evaluated immediately, but without exiting the program < 1321474146 119637 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the argument to Exit's basically there to defer the evaluation < 1321474189 960683 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :heh < 1321474194 4199 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think the language probably needs a strictifier, incidentally, it'd avoid this sort of problem < 1321474209 175131 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and make writing safe infinite loops rather easier < 1321474213 763300 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: Is Error something inherent to the language or just a way to get nicer reports than non-halting? < 1321474215 967475 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but you wouldn't have to expand the language syntax at all < 1321474233 271125 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: Error isn't inherent to the language, it's simply there because I'm lazy < 1321474237 449324 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :erm < 1321474239 90778 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: Exit, I mean < 1321474240 291229 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can write an impl without it, and probably produce nicer error messages < 1321474240 593399 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :sorry! < 1321474260 699826 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :http://i.imgur.com/1uOhf.png ;; this is the first time I have ever used three windows in Emacs < 1321474290 488687 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, basically, the input is a type 2 program and its type 2 arg; Exit is the type 1 arg it's given when it starts executing < 1321474308 728203 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so it wouldn't be needed if you didn't care about your programs being able to terminate < 1321474322 633846 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you could just use type 1 programs rather than type 2 programs as the initial input < 1321474470 538861 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: OK, new reason for not testing on Alpha: I can't get a bloody cross-compiler at all >_< < 1321474525 33859 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I need a wider screen to do this three-pane coding :( < 1321474541 178371 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I typically split one of the halves horiziontally when doing three-pane < 1321474547 745663 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION just switched to that < 1321474555 830441 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, with a horizontal divider < 1321474624 156882 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: Partial list of words I don't know the meanings of in the slightest: ig, incg, decg, substat < 1321474649 990196 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :btw, it's entirely possible to write a program that doesn't type, such as (0 0 (0 0 0)); atm, I detect type errors at runtime rather than statically < 1321474673 459472 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway, incg and decg are basically used to adjust open terms < 1321474675 614849 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :inside substat < 1321474704 853564 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and substat itself does substitutions in the typical lambda-calculusy way < 1321474727 726699 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: huh? you don't need substitutions with de bruijn < 1321474750 236608 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: how are you going to implement an application of a lambda otherwise? < 1321474772 144938 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: you use a linked list; cons onto it when you do a call, and just index it when a variable is looked up < 1321474780 576235 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :var 0 = car, var 1 = cadr, etc. < 1321474797 416319 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: but what if that variable hasn't been evaluated yet? < 1321474797 600321 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and, ofc, you don't need alpha renaming < 1321474801 34949 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hypereager, remember? < 1321474808 392213 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what about it? < 1321474822 175798 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 JOIN :#esoteric < 1321474831 116566 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric : http://i.imgur.com/1uOhf.png ;; this is the first time I have ever used three windows in Emacs ← You've never used Proof General? < 1321474831 452114 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Phantom__Hoover: You have 1 new message. '/msg lambdabot @messages' to read it. < 1321474843 850404 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Phantom__Hoover: That doesn't couuunt. < 1321474856 592453 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :XD < 1321474863 407784 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: example: I just gave (0 (0 (2 0 (2 1 (1 0 2))))) and (0 0) as input to the interpreter (s and i) < 1321474872 58217 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and here's the debug output: < 1321474875 738813 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(0c (0c (2v 0v (2v 1v (1v 0v 2c))))) [(0c 0v), (exit 0v)] < 1321474877 147856 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(exit 0v) [(0c (1v 0v (1v 0v 1c))), error] < 1321474878 618944 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(0c (1v 0v (1v 0v 1c))) < 1321474899 799090 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 NICK :Phantom___Hoover < 1321474901 644832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :you know that's not going to help me; ais523: if you mean that you have to evaluate expressions before consing them, so what? < 1321474903 467586 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Ping timeout: 248 seconds < 1321474907 483484 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :you can do that easily < 1321474909 734902 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Hmm. < 1321474913 840688 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: no, you have to cons them before knowing what they are < 1321474919 159131 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :elliott, shoddy. < 1321474922 717157 :Phantom___Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 NICK :Phantom_Hoover < 1321474926 99299 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: oh, right; that's easy < 1321474928 184085 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Phantom_Hoover! < 1321474935 132505 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: you just use a linked list of (Maybe Exp) instead < 1321474937 521986 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :shachaf! < 1321474940 275238 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Nothing means you don't know what it is yet < 1321474948 513135 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :Phantom_Hoover: Don't you owe me a message or two? < 1321474950 513456 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: but how can you tell which Nothing is which afterwards? < 1321474963 883558 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: what? < 1321474966 785115 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :@tell shachaf friendship message < 1321474967 250094 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :Consider it noted. < 1321474979 46618 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :here: in the above example, I start with (0 (0 (2 0 (2 1 (1 0 2))))), then substitute in (0 0) and exit < 1321474989 839567 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and get exit (0 (1 0 (1 0 1))) < 1321475025 556585 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :basically, we're substituting for the first 2 in (0 (2 0 (2 1 (1 0 2)))) < 1321475027 288867 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :you're just going to keep quoting programs at me you know I can't yet read, right? anyway, the whole point is, if you get Nothing, abort reduction of that variable < 1321475034 246359 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :but failing that, you can have (Either Int Exp) instead < 1321475040 990739 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :if you want to keep track of them < 1321475044 431156 :tiffany!~kawaii@fl-76-3-17-34.dhcp.embarqhsd.net JOIN :#esoteric < 1321475146 339260 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: OK; so suppose I want to evaluate the following open term: (0 0) applied to 0 and (2 1 (1 0 2)); that's going to give me ((2 1 (1 0 2)) 0), but I don't know what the 2 at the start refers to < 1321475153 703657 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because it refers beyond the start of the expression < 1321475160 757949 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, let me translate into lambda calculus < 1321475228 124816 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1321475250 306858 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait, I'm confused < 1321475253 474713 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hi oerjan < 1321475260 622324 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hello < 1321475283 583796 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm pretty certain your suggestion is incorrect, but need a bunch of calculation to work out why < 1321475307 659251 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: lol < 1321475320 85719 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i implemented your cursor stuff and PSeq, just without any operations :P < 1321475334 906442 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: also, turns out what i thought the gadt record syntax was is deprecated, you were right with Foo :: { ..., ... } -> R < 1321475347 264775 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I think it's because it gets the evaluation order wrong < 1321475371 699265 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: No, it's Foo :: { a :: Int } -> { b :: Char} -> R, isn't it? < 1321475374 513367 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I refuse to believe you have an evaluation scheme which cannot be implemented with an environment and absolutely requires substitution; that's patently ridiculous < 1321475382 62362 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: even if my specific solution doesn't work < 1321475399 880797 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: aha. i noticed wrt PSeq you said something about unsafeCoerce :P < 1321475408 33776 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: there probably is a way to do it with an environment, just not the way you suggested < 1321475408 743832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shachaf: Nope. < 1321475411 991612 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i guess that may be the simplest way to implement it < 1321475423 16414 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yes, I didn't feel like implementing my own finger trees :P < 1321475434 758421 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I fear it'd get exponentially complex to maintain the environment < 1321475451 162232 :Zuu!~zuu@unaffiliated/zuu JOIN :#esoteric < 1321475477 160537 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I doubt it < 1321475498 434751 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :elliott: Ugh. < 1321475503 164650 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: I don't see why Unknown doesn't work; if you get Unknown back, then behave as you would with an unsubstituted variable reference in a substituting implementation < 1321475506 96195 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :You're right. < 1321475517 576985 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: let's see… suppose I have \x.(… some expression containing a call of x …), and apply a value to it < 1321475530 271080 :shachaf!~shachaf@204.109.63.130 PRIVMSG #esoteric :ACTION thinks GADT syntax and regular syntax could be unified into something better pretty easily. < 1321475560 420997 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so, I have one append-only stack (because no returns) that contains the values of open terms in the current expression < 1321475579 374225 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and then, I have to traverse the inside of the brackets to find all uses of x in call position, and evaluate them immediately < 1321475581 787514 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: zipper.hs: http://sprunge.us/BDYL < 1321475585 803102 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: PSeq.hs: http://sprunge.us/IBPQ < 1321475600 304630 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: mmhm < 1321475611 411949 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so what stack do I use to evaluate /those/? < 1321475618 249091 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and what do I put on it? < 1321475665 791636 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: say the environment for ((\x. ... (x e) ...) xv) is [a,b,c]; the environment for evaluating (x e) is [xv,a,b,c] < 1321475697 286538 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :say x = \q.u < 1321475699 756835 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm… that breaks the links between numbers and positions in the list < 1321475711 102697 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :then the environment for evaluating u is [e,a,b,c] < 1321475713 367690 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because scoping < 1321475715 830115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: no it doesn't < 1321475726 935155 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: [xv,a,b,c]!!0 = xv < 1321475729 623728 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :[xv,a,b,c]!!1 = a < 1321475733 458343 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: what if I have ((\x. … ( … (x e )) …) xv) < 1321475736 310549 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :de bruijn is retained < 1321475749 584723 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: calls don't introduce new bindings, so that's irrelevant < 1321475756 142050 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm going to need to use [xv,?,a,b,c] as the list < 1321475769 95105 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :what? < 1321475775 623183 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait, no, [?,xv,a,b,c] < 1321475785 17389 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: think of it in number terms; x won't be 0 inside (x e) < 1321475788 807798 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it'll be some larger number, like 2 < 1321475805 498066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: no it won't, unless by "..." you meant "... that includes a lambda" < 1321475810 956861 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: err, right < 1321475817 854487 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :all open parens imply a lambda in NEF < 1321475824 893929 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so counting parens and counting lambdas comes to the same thing < 1321475838 651930 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: so what you're discovering is, parsing an expression containing variables into de bruijn requires a map from variable name to integer < 1321475847 770016 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and each integer increases for each new lambda < 1321475851 216866 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :shocking < 1321475864 314991 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :however, unrelated to the semantics of a language coded directly in de bruijn < 1321475881 603452 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: we're talking about the implementation < 1321475906 629214 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :yes, and you have successfully confused the issue by using named variables which has somehow turned into a point involving conversion to de bruijn < 1321475916 373311 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :which is irrelevant since named variables feature nowhere except in your attempted explanation afaict < 1321475942 681685 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: I was going on /your/ example < 1321475948 746220 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because you refuse to read examples involving numbers < 1321476025 734933 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: if it were de bruijn lambda calculus i would understand perfectly < 1321476039 321560 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :but I do "refuse" (am unable to) understand examples in a language I'm in the process of trying to understand, yes < 1321476048 161188 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it sort-of is, just with a weird evaluation order < 1321476054 159763 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what syntax do you want for de bruijn lambda calculus? < 1321476108 562463 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :exp := int | '(\' exp ')' | '(' exp exp ')', with omitted parens for repeated left-associative application, and whitespace to separate integers? < 1321476125 393669 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and parens on outermost lambdas omittable, etc. < 1321476275 86477 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, OK < 1321476334 231914 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :NEF's syntax is basically that, except that it uses (…) rather than (\…), and that a lambda can take two arguments instead of one; both of the arguments has the same number, and it works out which is being referred to by the type < 1321476357 695341 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :well, OK; I certainly have a better understanding of the lambda-calculus though < 1321476488 197868 :Gregor!foobar@codu.org PRIVMSG #esoteric :*First time looking at VAX* I like how VAX is clearly the primary influence for x86 :P < 1321476526 890092 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: http://esolangs.org/wiki/User:Ian#DEC_VAX < 1321476538 2593 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: ("Other Neat CPUs" section is great also) < 1321476585 564191 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: CALLG is really cool, hardware varargs :P < 1321476589 220308 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :POLYx is also hilarious < 1321476605 826893 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"CASEx has a format like this: selector.rx, base.rx, limit.rx, displ[0].bw, ..., displ[limit].bw The instruction has "limit+3" operands. Not only can the VAX not tell how long the instruction is until it's completely decoded, it can't even tell how many operands it has! The whole thing can be 4GB long. Technically it can be 8GB long, but the VAX only has 4GB of addressing space." < 1321476618 181742 :Gregor!foobar@codu.org PRIVMSG #esoteric :Incidentally, my JIT currently does not (seem to?) work on VAX, and I think I know why, but not how to fix it ... < 1321476619 788551 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: well, go on < 1321476633 333121 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, I'm in the middle of something else < 1321476639 926445 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I get distracted easily < 1321476641 956637 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :heh < 1321476643 61686 :Gregor!foobar@codu.org PRIVMSG #esoteric :Also, NetBSD VAX = yesssssssssssssss < 1321476645 854617 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Try it on this: http://esolangs.org/wiki/Talk:Timeline_of_esoteric_programming_languages#AS.2F400 < 1321476702 822643 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: did you look :P < 1321476712 548343 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: in your foldr, i think the (forall a. result a a) can simply be result dest dest < 1321476720 625137 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Need compiler and simulator (also, CISC is usually the easiest, I think the issue with VAX is that it has markers at the beginning of functions which are not valid instructions but need to be there (?????)) < 1321476742 457285 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm, so it can. that seems really ugly: why can't it be result src src, too? < 1321476764 667366 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net PRIVMSG #esoteric :Gregor: Not *really*; x86 was more influenced by earlier Intel designs than anything else. That said, CISC had a lot of crazy stuff. < 1321476770 425316 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net PRIVMSG #esoteric :Also, yay 32-bit PDP-11! < 1321476784 320524 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Yup, my generated code totally has halts in it :P < 1321476810 544106 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Gregor: hmm, is VAX the architecture that didn't have a stack, but rather stored return addresses just before the start of a function? < 1321476837 713641 :Gregor!foobar@codu.org PRIVMSG #esoteric :ais523: ... I can't imagine so, that wouldn't work with C very well. Recursion and what have you. < 1321476857 665282 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it didn't, IIRC < 1321476880 80553 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net PRIVMSG #esoteric :I doubt it. < 1321476884 611503 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: result src src would be for foldl, obviously... it's what replaces the right and left end, respectively. < 1321476896 915251 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh, right < 1321476909 815323 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :hmm, but isn't AS/400 or i that thing that has a machine-independent binary format and is currently implemented using POWER7? < 1321476911 653447 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what's weird about seqs is that they have, I think, four folds < 1321476920 124100 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: foldr, foldl, foldrFromRight, foldlFromRight < 1321476932 737736 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh < 1321476933 738115 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net PRIVMSG #esoteric :Seeing as the PDP-11 used a stack, and the VAX started as a 32-bit PDP-11. < 1321476948 574830 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: although, I suspect that foldr == foldlFromRight and foldl == foldrFromRight in results, just not in semantics < 1321476952 339773 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :err < 1321476955 356949 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: as in, evaluation semantics < 1321476975 861080 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: presumably it may matter in thunk buildup < 1321476982 14359 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right, that's what I meant < 1321476996 710353 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: incidentally, i note that one can have a PSeq of PSeqs... < 1321477003 349883 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. (PSeq (PSeq path) src dest) < 1321477008 806163 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: which got me wondering what Mu PSeq is >:) < 1321477025 631224 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: unfortunately I think it's just data Foo = Foo | Bar Foo Foo < 1321477041 950806 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and there's no value with src =/= dest < 1321477096 912891 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: in fact you would probably want foldl to be fromRight by default, since the other options just add thunks needlessly; the ' versions though would go the other way for both foldl and foldr. < 1321477105 79436 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right < 1321477172 925348 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :also, who's this "Ian"? I'd like him to explain why CASEx needs to be completely decoded to know how many operands it has < 1321477190 806415 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: PSeq is sort of a * -> * -> * type transformer < 1321477194 739390 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :olsner: esowiki guy, ping him on his talk page or use the wiki email thing? < 1321477200 546840 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: indeed < 1321477214 805545 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: incidentally, you can't implement Show (PSeq path src dest) because you need (forall a b. Show (path a b)) :-( < 1321477215 962335 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :afaict, limit is the third operand and should say exactly how long the rest of it is < 1321477219 24454 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh and one other thing i thought of, you could make a Category instance for PSeq < 1321477223 394293 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ooh < 1321477224 786480 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :elliott: meh, can't be bothered logging in < 1321477227 434901 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: shiny < 1321477229 726303 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :I probably even have an account < 1321477246 991841 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: it's sort of a free category on the path type < 1321477266 149867 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i wonder if it's an arrow... arr seems tricky, maybe it's an arrow if the path is < 1321477353 574780 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it's a super pretty structure < 1321477429 754283 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: i think your Mu PSeq is more than that; it would allow constructing empty PSeq's at all nesting levels wouldn't it, so it would work similarly to building up set theory from empty lists. oh hm you could never get a PSeq a b for a /~ b, i think, so it may be equivalent to Mu Seq. < 1321477451 105073 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's what i said < 1321477455 673077 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data Foo = EmptyList | Cons Foo Foo < 1321477475 875976 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :[[],[],[]] = Cons EmptyList (Cons EmptyList (Cons EmptyList EmptyList)) < 1321477476 408905 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :etc. < 1321477482 271673 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: well if you consider cons lists equivalent to Seq's... < 1321477487 720561 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :well ok < 1321477495 401494 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :@src foldl' < 1321477496 19635 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :foldl' f a [] = a < 1321477496 193553 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric :foldl' f a (x:xs) = let a' = f a x in a' `seq` foldl' f a' xs < 1321477500 914175 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :darn, they just use an ugly let too < 1321477542 419539 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yikes, I'm not sure foldr' is possible < 1321477548 916027 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: because of the fiddly parametrisation < 1321477564 769419 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: you might implement Show if you made a Show2 class for path < 1321477568 291746 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: indeed < 1321477577 653121 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(***) :: PSeq path a b -> PSeq path b' c' -> PSeq path (b, b') (c, c') < 1321477580 4200 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wow that's pretty < 1321477583 12605 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it's like simulwalking!! < 1321477588 765593 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :...not sure it's possible though < 1321477591 637115 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because what if the lengths differ < 1321477759 982442 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :why would foldr' (and equivalently foldl') not work? < 1321477763 713056 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: because < 1321477767 89087 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Expected type: result a a < 1321477767 222572 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Actual type: result mid dest < 1321477767 267830 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the second argument of `foldr'', namely `z'' < 1321477767 268012 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the second argument of `seq', namely `foldr' f z' ps' < 1321477773 489152 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :where z' = f pn z from the right < 1321477811 542410 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :...oh i see < 1321477818 61967 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you can relax the type < 1321477829 987514 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :how? < 1321477835 210222 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :foldr :: (forall a b c. path a b -> result b c -> result a c) -> (forall a. result a a) -> PSeq path src dest -> result src dest < 1321477843 486022 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(just pasting to get something to edit) < 1321477850 882881 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I already releaxed foldr to result dest dest < 1321477853 635066 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and this doesn't work with that < 1321477856 619020 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or the quantified version < 1321477872 892094 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :foldr :: (forall a b c. path a b -> result b c -> result a c) -> result dest end -> PSeq path src dest -> result src end < 1321477887 153240 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :_that_ might work, and even with foldr' < 1321477929 708578 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :same error: < 1321477931 252903 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Expected type: PSeq path src mid < 1321477931 386733 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Actual type: PSeq path src dest < 1321477931 431958 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the third argument of `foldr'', namely `ps' < 1321477931 432242 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the second argument of `seq', namely `foldr' f z' ps' < 1321477935 307733 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh hm < 1321477942 836557 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not the same error but it's still a mismatch < 1321477943 465742 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :? < 1321477955 763980 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :foldr' < 1321477955 897805 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : :: (forall a b c. path a b -> result b c -> result a c) < 1321477955 943166 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> result dest end < 1321477955 943312 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PSeq path src dest < 1321477955 943412 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> result src end < 1321477956 517774 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :foldr' f z ps = < 1321477958 270609 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : case viewr ps of < 1321477960 273247 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PEmptyR -> z < 1321477961 463228 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321477962 277924 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : ps' :> pn -> < 1321477964 279553 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : let z' = f pn z < 1321477966 282310 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : in z' `seq` foldr' f z' ps < 1321477968 285970 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :/home/elliott/Code/shiro/PSeq.hs:98:31: < 1321477970 288750 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Couldn't match type `dest' with `mid' < 1321477972 292346 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : `dest' is a rigid type variable bound by < 1321477974 295901 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : the type signature for < 1321477976 298660 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : foldr' :: (forall a b c. path a b -> result b c -> result a c) < 1321477978 300383 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> result dest end < 1321477979 569849 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: foldr :: (forall a b c. path a b -> result b -> result a) -> result dest end -> PSeq path src dest -> result src < 1321477980 304062 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PSeq path src dest < 1321477982 307028 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> result src end < 1321477984 309151 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : at /home/elliott/Code/shiro/PSeq.hs:93:1 < 1321477986 314190 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : `mid' is a rigid type variable bound by < 1321477988 316704 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : a pattern with constructor < 1321477990 322225 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : :> :: forall (path :: * -> * -> *) src dest mid. < 1321477992 325570 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PSeq path src mid -> path mid dest -> PViewR path src dest, < 1321477994 327789 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : in a case alternative < 1321477996 330462 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : at /home/elliott/Code/shiro/PSeq.hs:96:5 < 1321477998 332954 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Expected type: PSeq path src mid < 1321478000 334685 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Actual type: PSeq path src dest < 1321478002 337604 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the third argument of `foldr'', namely `ps' < 1321478004 340225 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the second argument of `seq', namely `foldr' f z' ps' < 1321478006 343966 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Failed, modules loaded: none. < 1321478008 345740 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: wat < 1321478010 349314 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: "-> result dest end ->" < 1321478020 180824 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :er oops < 1321478030 914252 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :foldr :: (forall a b c. path a b -> result b -> result a) -> result dest -> PSeq path src dest -> result src < 1321478044 407528 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :foldr', presumably < 1321478057 46747 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it is slightly awkward if you actually _want_ a type with dest in it, i guess... < 1321478059 136357 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Expected type: PSeq path src mid < 1321478059 270849 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Actual type: PSeq path src dest < 1321478059 316125 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the third argument of `foldr'', namely `ps' < 1321478059 316280 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the second argument of `seq', namely `foldr' f z' ps' < 1321478066 700508 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(because of wrong type argument order) < 1321478083 24807 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: otoh it does work as a type for foldr < 1321478083 515308 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :foldl wouldn't have _that_ problem < 1321478087 448628 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :but not for foldr' < 1321478097 921096 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: but then foldr (<|) empty doesn't type < 1321478098 920552 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so lol < 1321478115 309068 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :indeed, wrong type argument order < 1321478127 901591 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the changing argument doesn't get last < 1321478193 907030 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: foldl' doesn't type either < 1321478200 371428 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :also, the arguments always change with (<|) < 1321478202 235772 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :apart from path < 1321478293 722251 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh you have a bug < 1321478305 229803 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok tell me but beforehand < 1321478308 356971 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :look at this < 1321478309 894172 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :foldr (>>>) id < 1321478310 31481 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : :: Category path => PSeq path src dest -> path src dest < 1321478311 311737 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :in z' `seq` foldr' f z' ps should be in z' `seq` foldr' f z' ps' < 1321478312 550113 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :that is beautiful :') < 1321478326 550043 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh < 1321478329 919274 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :will that fix things? :P < 1321478336 135624 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :let's hope :P < 1321478361 670252 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :nope < 1321478370 411297 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :D: < 1321478388 791811 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh wait < 1321478395 15947 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i think what needs changing is the type of f < 1321478397 232385 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: to go /backwards/ < 1321478442 849301 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'm not sure what that looks like, though :P < 1321478531 756158 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: argh, here's another bug for you < 1321478533 323080 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :singleton :: path a a -> PSeq path a a < 1321478539 244079 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: how stupid can I be?? < 1321478661 390855 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: omg omg omg < 1321478666 397909 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: < 1321478667 566964 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Arrow (~>)) => Arrow (PSeq (~>)) where < 1321478667 700502 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : arr = singleton . arr < 1321478667 745945 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : first ps = < 1321478667 746096 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : case viewl ps of < 1321478667 746197 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PEmptyL -> empty < 1321478669 570607 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pn :< ps' -> first pn <| first ps' < 1321478724 458250 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan is not nearly excited enough. < 1321478783 426015 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :maybe not. < 1321478803 276663 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :does that foldr' compile (although with warning) if you remove the empty branch? < 1321478852 755200 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'll try. but dude, PSeq is an arrow transformer!!! < 1321478881 584504 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net JOIN :#esoteric < 1321478884 251447 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: no < 1321478890 659591 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Expected type: PSeq path src dest < 1321478890 793717 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Actual type: PSeq path src mid < 1321478890 839055 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the third argument of `foldr'', namely `ps'' < 1321478890 839237 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : In the expression: foldr' f (f pn z) ps' < 1321478894 284680 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(yeah yeah I know it's not strict yet :P) < 1321478920 189054 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you know, I could just unsafeCoerce this through < 1321478935 349516 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :it's obviously a valid implementation < 1321479001 710907 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :>_> < 1321479071 789165 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you realise viewl/viewr unsafeCoerce already :P < 1321479094 738768 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hm i note that there are two possible Categories for PSeq < 1321479098 386052 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm is it complaining about the foldr' being used with polymorphic recursion, _despite_ having a type signature? < 1321479104 587157 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :instance Category (PSeq path) where id = empty; (.) = flip (><) < 1321479120 539778 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :instance (Category path) => Category (PSeq path) where id = singleton id; (.) = fold blah blah < 1321479129 818837 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: no, it's complaining because _ps' does not match the zero passed_ < 1321479173 770293 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm... < 1321479221 949538 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :app :: (ArrowApply (~>)) => PSeq (~>) (PSeq (~>) b c, b) c < 1321479223 891816 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :THIS WILL BE FUN < 1321479341 863510 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: what is your current code for foldr' ? < 1321479357 848742 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i rewrite it every time you come up with another idea. do you just want a file with foldr' in it? :P < 1321479373 431236 :boily!~boily@mtl.savoirfairelinux.net QUIT :Ping timeout: 252 seconds < 1321479389 284782 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i just want to see if you broke it in some way i haven't seen while fixing my bug reports :P < 1321479390 217226 :copumpkin!~pumpkin@unaffiliated/pumpkingod NICK :luke-sr < 1321479402 615321 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :charming :P < 1321479406 271326 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :one second < 1321479416 732 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm I have to write basically (PSeq (~>) b c, b) ~> c < 1321479437 284144 :luke-sr!~pumpkin@unaffiliated/pumpkingod NICK :copumpkin < 1321479459 466082 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: http://sprunge.us/cjcR < 1321479459 549546 :Patashu!~Patashu@c122-106-155-219.carlnfd1.nsw.optusnet.com.au JOIN :#esoteric < 1321479483 914811 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, I have (b ~> c, b) ~> c < 1321479490 571183 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and I need to turn that into (PSeq (~>) b c, b) ~> c < 1321479520 116055 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so... app . first f < 1321479536 597201 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: you removed the end type again, i believe that's essential < 1321479554 37079 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh, right. < 1321479560 469076 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i told you it doesn't type with that, either, but ok i'll try < 1321479575 470847 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yes, but with that _and_ the ps fixed to ps' ? :P < 1321479595 204727 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you'll never believe it < 1321479600 597199 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :hm? < 1321479607 189973 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it works :P < 1321479611 54360 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION generalises foldr's type to that too < 1321479611 104301 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yay :P < 1321479686 693038 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :for foldl and foldl' you can give result just one type argument, i think, because the fixed src is in the right place to be combined into result < 1321479749 609757 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: huh, so you can. < 1321479755 401097 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that upsets me though :( it's so inconsistent < 1321479772 855470 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net JOIN :#esoteric < 1321479807 153193 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :'( < 1321479817 733856 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it also feels wrong that the more natural fold is the one which needs more gunk < 1321479821 831875 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you can do that with foldr[']? too, but then as you say foldr (>>>) id won't type < 1321479848 524454 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: not foldr (<|) empty either < 1321479889 420391 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :PSeq (~>) (b, d) (c, d) -> PSeq (~>) b c < 1321479890 419855 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :aaaaaaaa < 1321479896 107872 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because the type variable you want to combine is in the last place < 1321479918 933786 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :wat < 1321479925 853775 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh the loop < 1321479926 941345 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: loop :: a (b,d) (c,d) -> a b c < 1321479930 380277 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :instance ArrowLoop (->) where < 1321479930 510595 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : loop f b = let (c,d) = f (b,d) in c < 1321479941 997767 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :god knows how to implement it for paths :P < 1321479948 94032 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i suppose i want to tie each node to itself? < 1321479954 318943 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or do i want to tie each node to the next node, and the last to the first... < 1321479962 45851 :Darth_Cliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net QUIT :Ping timeout: 244 seconds < 1321479978 986447 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you'd want to tie the final node to the first one? < 1321479992 735892 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's what I said < 1321479998 607199 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :either that, or tie each node to itself, which seems useless < 1321480050 872086 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :does arrowloop have any laws < 1321480056 239962 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :monqy: "ow" < 1321480062 313342 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(probably yes but they're in a paper) < 1321480066 75608 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's entirely lawless and evil < 1321480069 872581 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Learnt about Matrices in maths today < 1321480083 33557 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Finally figured out what they're up to < 1321480086 48406 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :exciting?? I dislike matrices. yukce < 1321480099 694434 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :They were kinda dissapointing < 1321480104 274173 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh well, I'll stick to the easy ones (ArrowZero, ArrowChoice) < 1321480106 638860 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what did you expect < 1321480112 880138 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :matrices are cool. just use a more interesting underlying ring :P < 1321480119 654114 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :monqy, I dunno, something interesting < 1321480123 416517 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Works on Alpha with no changes. < 1321480128 837190 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Ngevd, you did graphs before matrices???? < 1321480129 828335 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :oerjan, I don't think I need that at AS level < 1321480129 906129 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm... < 1321480133 327185 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Phantom_Hoover, yup < 1321480136 426544 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I think you might want singleton id == empty < 1321480137 842099 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: for PSeqs < 1321480141 977115 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :oerjan: there is nothing you can do to make matrices cool sory :( < 1321480147 779734 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: when the path is a category < 1321480148 264183 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Have I mentioned that this JIT is magic and amazing :P < 1321480153 2132 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Yes. < 1321480169 380838 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: if you do that, you need to elude _all_ singleton id's < 1321480175 27372 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yeah :P < 1321480176 195001 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :kinda tricky < 1321480184 900123 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok, so this is a decent PSeq < 1321480191 972291 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: now it need to be applied >:) < 1321480198 740346 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: oh yeah, about MetaContext < 1321480209 39788 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :04:25:05: data MetaContext = MetaContext { nwNeighbor :: MetaCursor (To NW), ..., up :: MetaCursor dir, signPost :: SignPost } -- it occurs to me that some field name disambiguation will be needed < 1321480212 876695 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: are all neighbours present here? < 1321480217 900093 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :or is one elided? < 1321480265 329119 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :all, i should think... < 1321480270 243805 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321480281 400515 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :there needs to be a Leaf version of that too < 1321480281 861476 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: well the next question is "wtf is dir" < 1321480311 276266 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: the usual, the direction this node is in relation to its parent < 1321480314 360175 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: hmm, I think you could make a stack-based solution work, but it's dubious that it's better than substitution in this case < 1321480323 47106 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so quantified? < 1321480326 179978 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: oh should probably be From dir < 1321480335 37186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :as far as I can tell, substitution is more space-efficient and equally time-efficient < 1321480346 871219 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what does the leaf version look like? < 1321480350 293062 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Ngevd, wait, have you learnt matrix multiplication? < 1321480356 263795 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: well, OK < 1321480361 33257 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: it has no neigbors, i'd think < 1321480368 431209 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :only the up and the signPost < 1321480370 480392 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so just (MetaCursor dir, SignPost)? < 1321480370 846711 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321480382 457013 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: what's the non-leaf case? aka name the constructor :P < 1321480389 550043 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the problem is that the stack would only ever be pushed, and you'd have to GC the bottom of the stack when it went out of scope, which is nontrivial to determine < 1321480399 912021 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Phantom_Hoover, just today < 1321480416 776506 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Ngevd, matrix multiplication is the worst. < 1321480421 159007 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :it's awful < 1321480425 661871 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :It's messed up < 1321480427 398170 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :InternalContext ? < 1321480432 952730 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :not really messed up < 1321480434 311684 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :just awful < 1321480441 105966 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I need to stare into space for a minute to remember which way round everything is. < 1321480445 147413 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :I keep losing track of it < 1321480445 424026 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :yeah < 1321480459 386869 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um i was hoping for something short to compliment MCLeaf < 1321480471 478389 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :I think I've been taught it three different times by now. < 1321480487 907469 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Sounds like you have a very good maths teacher < 1321480501 341733 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :We've been taught simultaneous equations a few dozen times < 1321480556 668939 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Have you done them with MATRICES? < 1321480581 417002 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Not yet < 1321480592 779235 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :We've been hinted at that we will shortly < 1321480595 341342 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :> let mult m1 m2 = [[sum$zipWith(*)r1 c2 | c2 <- transpose m2]| r1 <- m1] in mult [[1,0],[0,2]] [[1,2,3],[4,5,6]] < 1321480596 346119 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : [[1,2,3],[8,10,12]] < 1321480607 845932 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: MCFrom? MCTo? work with me here :P < 1321480617 325717 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :argh, the MC prefix clashes with MetaCursor < 1321480618 374899 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321480624 436041 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MCInner < 1321480627 640348 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net JOIN :#esoteric < 1321480634 998947 :pikhq_!~pikhq@71-219-198-196.clsp.qwest.net QUIT :Ping timeout: 258 seconds < 1321480653 955610 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Ngevd, and then, through some process that was never adequately explained to me, you use them for cross products. < 1321480657 751937 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data MetaNode exit where < 1321480657 885213 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MNFrom :: Neighbours1 MetaCursor dir < 1321480657 931078 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> MetaCursor (From dir) < 1321480657 931239 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> SignPost < 1321480657 931339 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> MetaNode (From dir) < 1321480658 562905 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MNTo :: Neighbours MetaCursor -> SignPost -> MetaNode (To dir) < 1321480660 256108 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MNLeaf :: LeafData -> SignPost -> MetaNode (To dir) < 1321480662 258518 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data MetaContext where < 1321480664 261524 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MCMInner :: Neighbours MetaCursor < 1321480666 264190 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> MetaCursor (From dir) < 1321480668 268212 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> SignPost < 1321480670 270645 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> MetaContext < 1321480672 274223 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MCLeaf :: MetaCursor (From dir) -> SignPost -> MetaContext < 1321480674 277761 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: somewhat of a resemblance < 1321480676 279873 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :s/MInner/Inner/ < 1321480697 921374 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :And *then* you get to the second-order non-homogeneous differential equations god I hate second-order non-homogeneous differential equations. < 1321480709 916063 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: yes, the difference is MetaNode has a distinguished exit < 1321480717 658617 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: an answer to the question "What exactly the error message is?" seen on a mailing list: "It's about glib lib." < 1321480724 479775 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right < 1321480737 514605 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it feels like i'd have half the types if everything took a list of directions to exclude on the type level :P < 1321480752 951309 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Phantom_Hoover, I'm scared < 1321480753 435365 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :heh < 1321480760 259254 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Ngevd, YOU SHOULD BE < 1321480773 510107 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :> length "irregularwebcomic" < 1321480774 462837 :lambdabot!~lambdabot@li85-105.members.linode.com PRIVMSG #esoteric : 17 < 1321480790 753882 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :That was irrelevant to this conversation < 1321480869 516454 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok, you know what the next question is (or do you??) < 1321480906 262165 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION afraid < 1321480953 870530 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I need a space to play around with :P < 1321480969 537370 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :my leaf data is just String, so "" will work there, my IpId is just Int so that's easy, and my IpData is Double which can just be whatever < 1321480980 439426 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :what type do i want as the top-level "space with n cursors"? < 1321481014 920084 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MetaContext was sort of what i imagine as the "start-from-here" type < 1321481021 903607 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok < 1321481044 632611 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Leaf or Inner? :P < 1321481057 942796 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net PRIVMSG #esoteric :Okay, if I ever say I'm going to install Haiku, can someone tell me I've already got the ISO and the image, and I need an SD card larger than 16MB < 1321481074 567908 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :Leaf probably, since you would start on some actual befunge or what-it's-you're-doing cell spot < 1321481086 504700 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: right < 1321481130 380125 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: the SignPost should just be (Map.singleton 0 (Left pi)), right? if the IP ID is 0 and the data is pi < 1321481138 25802 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: ah, might want a LeafData in the MCLeaf too < 1321481141 698629 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok :P < 1321481160 573059 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah i'd think < 1321481171 619760 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :alright, all I need is a MetaCursor (From dir) now < 1321481189 396609 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :data MetaCursor src where < 1321481189 528714 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MCPlain :: PlainCursor src -> MetaCursor src < 1321481189 574117 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : MCPath :: MetaPath src dest -> MetaNode dest -> MetaCursor src < 1321481197 317791 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: you'll never guess what the next question is < 1321481198 927102 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :and since you're starting with only a cursor there, that MetaCursor should be MCPlain < 1321481242 685699 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, and the type tells me I need PCFrom < 1321481250 31065 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :MCPath only starts being used once you have two real cursors in different spots < 1321481286 696741 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm, I can get to the neighbours afterwards, but what should the PlainCursor of the same type that PCFrom wants be? < 1321481291 926641 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, that's going upwards, right? < 1321481296 391361 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :as in, going "larger" < 1321481307 397463 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1321481319 295258 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so it should be circular? < 1321481322 882247 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so From something < 1321481324 327770 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because i have a completely empty space right now < 1321481329 950703 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. < 1321481331 415605 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc = PCFrom undefined pc < 1321481335 124213 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PCFrom :: Neighbours1 PlainCursor dir < 1321481335 169583 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir) < 1321481335 169783 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir) < 1321481366 996607 :Ngevd!~Taneb@host-84-13-71-37.opaltelecom.net QUIT :Quit: Goodbye < 1321481394 542127 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well not entirely circular, things have types that change between the levels... < 1321481402 433121 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: um that is impossible < 1321481404 754100 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir) < 1321481404 884152 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir) < 1321481406 336956 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :exact same type < 1321481461 452915 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm so it is < 1321481488 831242 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i guess the level types got forgotten in the transition to this. maybe just as well :P < 1321481512 252433 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i'm not sure that would even work :P < 1321481523 92134 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: it could be polymorphically recursive anyway i think < 1321481526 519482 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh there's probably _some_ way < 1321481550 909269 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ok, so now I need a (Neighbours1 PlainCursor dir) < 1321481563 149235 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :let's pick dir ~ NW :P < 1321481573 614141 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :so (Neighbours1 PlainCursor NW) < 1321481576 110770 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : Neighbours1NW :: t (To NE) -> t (To SW) -> t (To SE) -> Neighbours1 t NW < 1321481586 661773 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: time for polymorphic recursion, right? < 1321481592 278005 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(Neighbours1NW pc pc pc) < 1321481601 77328 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh, no! < 1321481603 200108 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :pc is a PCFrom < 1321481604 781823 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I need a To < 1321481613 158784 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PCTo :: Neighbours PlainCursor -> PlainCursor (To dir) < 1321481613 289188 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PCLeaf :: LeafData -> PlainCursor (To dir) < 1321481627 32722 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok, help me out here :P I want an infinite space with "" on all the leaves < 1321481628 941997 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i'm not sure i understand your Neighbors1 stuff < 1321481639 712564 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: Neighbours1 t dir is just t (To dir') for all dir ~/~ dir' < 1321481655 568338 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :to abstract all the "twenty constructors because we have a neighbour for every other direction" crap < 1321481663 79889 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :oh hm < 1321481677 464512 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :elliott: there's an error there i think < 1321481682 254773 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oh no < 1321481715 80769 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :the dir in the second argument to PCFrom is the up dir, so should be unrelated to the others < 1321481716 881944 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: i was curious indeed because it seemed like I either had to make a finite space or have no leaves < 1321481733 802166 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :iiuc < 1321481742 89521 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :one second then < 1321481777 170256 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : PCFrom :: Neighbours1 PlainCursor dir < 1321481777 341392 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir') < 1321481777 386596 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : -> PlainCursor (From dir) < 1321481778 873885 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: yus? < 1321481857 961365 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :yeah < 1321481859 772203 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :test :: MetaContext < 1321481859 946238 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :test = LeafCtx "" mc (SignPost $ Map.singleton 0 (Left pi)) < 1321481859 991832 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : where mc = MCPlain pc < 1321481859 992023 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc = PCFrom (Neighbours1NW pc' pc' pc') pc < 1321481859 992125 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc' :: PlainCursor (To dir) < 1321481860 582173 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc' = PCLeaf "" < 1321481863 484431 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that's an infinite space of ""s, right? < 1321481905 855815 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :that's wrong though, the pc part < 1321481926 709324 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: :( < 1321481940 234697 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you need to include the level as an Int argument or something, so you know how far to go _down_ again before hitting leaves < 1321481972 564558 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :so mc = MCPlain (pc 0) < 1321481998 991934 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: hmm, and what does pc look like then? < 1321482008 645111 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :what program are you discussing, btw? Shiro? < 1321482015 327757 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :pc n = PCFrom (Neighbours1NW (pc' n) (pc' n) (pc' n)) (pc (n+1)) < 1321482031 538 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :pc' 0 = PCLeaf "" < 1321482033 239704 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: yes < 1321482061 848200 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok < 1321482070 753502 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: pc' n? < 1321482081 755658 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :pc' n = PCTo (pc' (n-1)) (pc' (n-1)) (pc' (n-1)) (pc' (n-1)) < 1321482088 6380 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :or something like that < 1321482102 564900 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: (and out of curiosity, what kind of space did I produce with my erroneous version? it certainly /types/ < 1321482149 399299 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :a space where you go up just fine, but where going down from anywhere other than the "trunk" gives you a leaf _immediately_ < 1321482153 23413 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i think. < 1321482163 378130 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :*down to < 1321482173 827013 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ah. < 1321482178 405389 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: that doesn't sound like normal 2d space :-) < 1321482186 955231 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :indeed not :P < 1321482203 676700 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: imagining that is hurting my head :P < 1321482249 685843 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :it's like shrinking every quadtree region other than those containing your starting point into a single leaf < 1321482288 502747 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :test :: MetaContext < 1321482288 676824 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :test = LeafCtx "" mc (SignPost $ Map.singleton 0 (Left pi)) < 1321482288 722840 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : where mc = MCPlain (pc 0) < 1321482288 723004 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc n = PCFrom (Neighbours1NW (pc' n) (pc' n) (pc' n)) (pc (n+1)) < 1321482288 723104 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc' :: Int -> PlainCursor (To dir) < 1321482289 504987 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc' 0 = PCLeaf "" < 1321482291 508722 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : pc' n = PCTo (Neighbours (pc' (n-1)) (pc' (n-1)) (pc' (n-1)) (pc' (n-1))) < 1321482293 511186 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: success < 1321482302 210280 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ah < 1321482322 937008 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: I would use Integer, but... good luck allocating that much < 1321482367 217601 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: ok, so now for the question that will make you _really_ hate me. < 1321482372 59856 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :if you gave To and From type level integer arguments... >:) < 1321482383 289258 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: how do I make the focused cursor go east? :-) < 1321482396 794236 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA < 1321482436 462566 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :well, in this case you'd first go up, then To NE < 1321482542 893955 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: so would it be MetaContext -> MetaContext? < 1321482548 109890 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :i guess < 1321482602 582172 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :oerjan: reassuring :P < 1321482609 426237 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :food -> < 1321482742 318427 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Don't read too much into this question, but which words are absolutely fundamental to Forth? < 1321482770 212444 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Forth as in "like ANS Forth", or "like /Forth/" as in "particularly high in Forthiness"? < 1321482778 851405 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(colorForth is more /Forth/ than ANS Forth, but not very ANS Forth at all) < 1321482787 439174 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Basically Forth flavored. < 1321482788 881299 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :Heh, the sun's core produces about as much heat per cubic metre as a compost heap. < 1321482797 900476 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: But take a look at jonesforth, and previous IOCCC entry -- what was it called -- fifth? < 1321482806 619696 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: http://www.ioccc.org/1992/buzzard.2.design < 1321482808 191396 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: But was it a JIT :P < 1321482818 852510 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: See also other buzzard files in http://www.ioccc.org/1992/ < 1321482823 468212 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: And all Forths are JITs. < 1321482846 620462 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Erm, buzzard.2 that is. < 1321482851 549436 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: They certainly ought to be, but if there's already been a JIT in IOCCC, URGGGGGGH < 1321482867 61033 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :And http://www.ioccc.org/1992/third of course. < 1321482871 389145 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Well, no. < 1321482872 42386 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Gregor: A threaded code JIT is a little bit different from what you're doing, of course. < 1321482877 413446 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: buzzard is just a freaky-deaky little thing. < 1321482890 28191 :Gregor!foobar@codu.org PRIVMSG #esoteric :A threaded-code JIT ain't a JIT, it's a bytecode interpreter. < 1321482896 130591 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :BAH < 1321482904 318250 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Thee and thy making more sense than I < 1321482906 47447 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: A bytecode interpreter that doesn't have an interpreter loop... < 1321482910 775277 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :s/Thee/Thou/ < 1321482915 949516 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: So? < 1321482927 344111 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: An interpreter loop is sort of the defining feature of an interperter. < 1321482937 241215 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: (I mean, it's good fun, but "So?" in the not-competing-with-my-niche sense) < 1321482944 998956 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Well, sure. < 1321482953 512304 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: "Traditionally" JITting Forth is pretty heretical, anyway :P < 1321482968 513032 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :elliott: Oh, it has an interpreter loop. Which has been placed at the end of every primitive. :P < 1321482972 369107 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Pretty sure first (buzzard.2) has an interpreter loop for the threaded code, anyway. < 1321482990 424184 :Gregor!foobar@codu.org PRIVMSG #esoteric :I was just thinking that really there's nothing at this point that's holding me to my particularly-bad language choice. < 1321483026 619414 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I think the judges might be unimpressed with "minimalistic Forth-like with most primitives implemented in itself", since that's exactly what FIRST/THIRD did so spectacularly :P < 1321483031 569951 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :And in under 500 bytes. < 1321483037 98129 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :(With indentation etc.!) < 1321483045 914819 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: So, change your language, but probably not to something Forthy. < 1321483050 295824 :Gregor!foobar@codu.org PRIVMSG #esoteric :Fair 'nuff. < 1321483068 318414 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Go more functional. < 1321483079 611174 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :(note: don't) < 1321483081 626683 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I don't think his JIT would be any good at that :P < 1321483087 145191 :Gregor!foobar@codu.org PRIVMSG #esoteric :Indeed it would not. < 1321483096 951504 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :elliott: He'd also want a GC if he wanted to do it right. :P < 1321483098 394805 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: ...OTOH, a mini-Lispalike might be interesting :P < 1321483104 178964 :Gregor!foobar@codu.org PRIVMSG #esoteric :>_> < 1321483113 876288 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Lisp isn't exactly a functional language anyway. But I realise you have biases :P < 1321483114 578293 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Aaaand, if you pull off a GC in the size restrictions, you are God. < 1321483125 613952 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yeah, the GC is the real thing thar :P < 1321483130 138165 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Ehhhhhh < 1321483135 314254 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Lisp programs don't cons THAT much. < 1321483138 810760 :Gregor!foobar@codu.org PRIVMSG #esoteric :ACTION taps his foot ... < 1321483149 723752 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Especially if you offer mutation of conses. < 1321483149 769174 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yeah, I'm gettin' awfully close to the size restriction as stands. < 1321483153 203643 :Gregor!foobar@codu.org PRIVMSG #esoteric :1888 bytes at last count. < 1321483187 374837 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I still think if you can't impress people with an interesting language, impressing them with an end result is almost as good. < 1321483195 485074 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :i.e. Write a program that does something fancy :P < 1321483269 655428 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Do you manually turn full.c into jitchards.c? < 1321483271 837552 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Harsh. < 1321483333 480760 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Uhhh, thusfar all I've done is selected areas of code in visual mode and G-Q in vim. < 1321483344 944169 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :X-D < 1321483359 363294 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Not true: You use 9<<25 in jitchards.c but W in full.c < 1321483373 921049 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I haven't updated jitchards.c in a while. < 1321483506 517705 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Whoops, accidentally forked jitchards :P < 1321483513 109448 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION deletifies. < 1321483537 295552 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: >_> Does bitbucket let me prevent that I wonder < 1321483545 301264 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: It was privately, since I didn't futz with the boxes. < 1321483551 660462 :Gregor!foobar@codu.org PRIVMSG #esoteric :Ah < 1321483558 806383 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: (It was only slightly "accidental" :P) < 1321483659 224359 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: BTW, I would test with gcc 3 too >_> < 1321483685 138358 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I find it really hard to believe that IOCCC isn't run on some ancient IRIX box :P < 1321483697 985572 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :EVEN IF THEY DO HAVE A TWITTER < 1321483707 943367 :Gregor!foobar@codu.org PRIVMSG #esoteric :X-D < 1321483750 210973 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: "On the Vax main is called with < 1321483750 383256 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :the calls instruction which uses the first word of the subroutine as a < 1321483750 428696 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :mask of registers to be saved. So on the Vax the first word can be anything." < 1321483759 459886 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :-- http://www.ioccc.org/1984/mullender.hint, the famous "main is a string" prorgam, referenced from the FAQ < 1321483762 778969 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: That explains your VAX troubles :) < 1321483782 512419 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I fixed my VAX troubles (now I'm having different VAX troubles) < 1321483790 298208 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :VAX troublen. < 1321483983 728040 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Come on, laugh :'( < 1321484052 154539 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Wow, IOCCC have a standard entry format :P < 1321484056 218587 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :As in, custom file format... < 1321484216 242750 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"mentioning your name or any identifying information in the remark section (or in the C code for that matter) - we like to be unbiased during the judging rounds; we look at the author name only if an entry wins" < 1321484216 901120 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Heh < 1321484243 944053 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Looks like you can't submit a makefile, just makefile lines < 1321484283 653660 :Darth_Cliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net JOIN :#esoteric < 1321484308 809614 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 PRIVMSG #esoteric :ACTION → sleep < 1321484309 862630 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover/x-3377486 QUIT :Quit: Leaving < 1321484318 818323 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Ooh, they tell you to test on a UNIX or POSIX-conforming machine. Gregor: You're going to have to test it on OS X. < 1321484327 239632 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Wait. < 1321484336 840877 :Deewiant!~deewiant@cs27125254.pp.htv.fi PRIVMSG #esoteric :Interix < 1321484337 810890 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :It says conforming, not "said to be conformant by people with money". < 1321484344 544803 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Your chances of fulfilling their guidelines are 0. < 1321484376 805842 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"Your entry must compile with GCC and run under at least one flavor of UNIX (e.g. Linux or Solaris). To improve chances to win, it should work under both BSD and SysV style UNIX (think stty cbreak), and should not depend on endianness." < 1321484382 848956 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Aww, "style". < 1321484386 410464 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I was hoping they tested on real live SysV. < 1321484447 437172 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :what is stty cbreak and why would it be relevant for an ioccc entry? < 1321484479 133212 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :"$BSD = -f '/vmunix'; < 1321484479 301118 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :if ($BSD) { < 1321484479 347762 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : system "stty cbreak /dev/tty 2>&1"; < 1321484479 347975 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :} < 1321484479 348105 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :else { < 1321484479 633517 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : system "stty", '-icanon', < 1321484481 647532 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric : system "stty", 'eol', "\001"; < 1321484483 638271 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :}" < 1321484485 641612 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :-- ancient perl faq < 1321484487 577975 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Presumably you have to do the latter on sysv < 1321484493 698241 :DCliche!~Darth_Cli@c-67-176-12-54.hsd1.co.comcast.net QUIT :Ping timeout: 260 seconds < 1321484503 540630 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :IOCCC entries are allowed to call system() < 1321484516 311049 :olsner!~salparot@c83-252-161-133.bredband.comhem.se PRIVMSG #esoteric :mmkay... the question is, what does it do? :) < 1321484553 686122 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Puts the terminal into rare mode, methinks < 1321484562 247986 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :As in, ^C and the like still send signals, but apart from that it's raw and unbuffered < 1321484579 71078 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :So, useful for console tricks and the like < 1321484625 600749 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :http://www.opensource.apple.com/source/gnuzip/gnuzip-28/gzip/zmore.in oh my god, is this real < 1321484948 373062 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Funny, I call that "less". < 1321484968 402273 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :Yay, LESSOPEN. < 1321485331 944855 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hey oerjan < 1321485335 896209 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :EAST >:) < 1321485446 636791 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: i note that NEF might give you problems whenever you neeed a circular structure < 1321485634 402133 :Gregor!foobar@codu.org PRIVMSG #esoteric : "Your entry must compile with GCC and run under at least one flavor of UNIX (e.g. Linux or Solaris). To improve chances to win, it should work under both BSD and SysV style UNIX (think stty cbreak), and should not depend on endianness." // nothing I do is especially OS-dependent. < 1321485640 919688 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: I see no reason why it wouldn't work on SysV. < 1321485666 329843 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :More like System... SUCKS < 1321485788 860706 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, why does substat take both v and c? < 1321485792 765268 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: or is one of them always Error? < 1321485927 896246 :augur!~augur@129.2.129.32 QUIT :Remote host closed the connection < 1321485932 523469 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it takes both v and c when substituting in a type 2 value; and v and error when substituting in a type 1 value < 1321485941 876580 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to avoid code duplication < 1321486012 433363 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: wait, type 2 values have two values? < 1321486027 522058 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :hmm, substituting "in" < 1321486030 649062 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wait, hmm < 1321486047 164064 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: do the two arguments to a type-2 function have the same number? < 1321486058 247883 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: yes, at definition site < 1321486061 606756 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and which is used depends on context < 1321486082 627794 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :aha, what's happening is that substat is doing two substitutions simultaneously, one on c, one on v < 1321486082 740144 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: context being, the type it's used in? < 1321486087 139132 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep < 1321486090 442443 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :OK < 1321486101 50857 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can always tell what type something is from where it is in the program, and the two args always have different types < 1321486115 891782 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the interp I pasted actually adds a suffix, "c" for type 1 or "v" for type 2 < 1321486124 558913 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(because suffixing numbers with numbers doesn't really work well) < 1321486137 764148 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION thinks you should call the types c and v instead < 1321486152 350279 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: OK, it seems my biggest VAX bug was outright stupidity. < 1321486177 236701 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Using e where I meant x, thereby making the place I'm JITting into point off into the text segment. < 1321486240 928343 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :I mean, c and v are much nicer names than 1 and 2. Probably. < 1321486358 547153 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: Actually I'm just going to call them c in v in my implementation. < 1321486360 178914 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :You can't stop me. < 1321486362 74810 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ACTION rebel < 1321486368 574651 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :fair enough < 1321486382 649821 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :1 and 2, I find more memorable, because 1 args and 2 args < 1321486464 726073 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: (VarC 0) is always illegal in the body of a c-lambda right? < 1321486469 677278 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :because it only has one argument, of type V < 1321486485 191155 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :elliott: if 0 refers to the c-lambda itself, yes < 1321486498 530671 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's obviously legal if there are other lambdas in between, so that 0 has a different referent, and refers to a v-lambda < 1321486509 701788 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :that's not what "refers to" means, your terminology is awful < 1321486543 731112 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :err, refers to the variables of the c-lambda < 1321486546 927667 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(which there is only one of) < 1321486595 27600 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: ... ... actually it doesn't work on OS X :P < 1321486599 624240 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: lol < 1321486656 969176 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :some sort of anti-JIT security feature? < 1321486679 241144 :Gregor!foobar@codu.org PRIVMSG #esoteric :ais523: Nope, just more nonsense. < 1321486703 456421 :Gregor!foobar@codu.org PRIVMSG #esoteric :... < 1321486703 555451 :Gregor!foobar@codu.org PRIVMSG #esoteric :00001f1a leave < 1321486703 632615 :Gregor!foobar@codu.org PRIVMSG #esoteric :00001f1b ret < 1321486703 678104 :Gregor!foobar@codu.org PRIVMSG #esoteric :00001f1c calll 0x00037f14 < 1321486725 341718 :Gregor!foobar@codu.org PRIVMSG #esoteric :"I thought I'd just call this absolute address after returning. Made sense at the time. Good luck finding an epilogue here. < 1321486727 417362 :Gregor!foobar@codu.org PRIVMSG #esoteric :" < 1321486770 560453 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :callllllllll < 1321486787 563193 :Gregor!foobar@codu.org PRIVMSG #esoteric :monqy: Dood, it's gonna call the HELL out of that function. < 1321486807 450811 :monqy!~swell@pool-71-102-226-192.snloca.dsl-w.verizon.net PRIVMSG #esoteric :what IS that function < 1321486864 588812 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably the function that gets called after a return statement returns < 1321486876 86449 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it probably says "error: backwards return" or something like that < 1321486885 222762 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :error: help < 1321486898 887576 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :maybe os x has built-in coroutine support < 1321486904 744124 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :you can "ter" to jump to just after the last ret < 1321486913 897498 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and it restores the registers and shit, by using a spaghetti stack < 1321486927 368055 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and that's calling the "resumed non-coroutine" function < 1321486929 376733 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :makes perfect sense! < 1321487159 215077 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: hmm, I think substat is doing the work of about three functions :P < 1321487171 209893 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep, seems about right < 1321487177 10182 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it was four or five earlier but I realised I didn't need some of htem < 1321487178 519914 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*them < 1321487228 755382 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: Out of curiosity, have you tried to run my JIT? < 1321487230 975420 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: you only ever need one function, actually! < 1321487235 280001 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Hell no; should I? < 1321487238 362515 :Gregor!foobar@codu.org PRIVMSG #esoteric :elliott: 'cuz so far all I really know is that it works on all these systems for me :P < 1321487276 736973 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: I'm on boring x86-64/Linux/gcc 4.6 < 1321487295 362006 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Try it on ZETA C < 1321487303 571131 :Gregor!foobar@codu.org PRIVMSG #esoteric :lol < 1321487307 607943 :Gregor!foobar@codu.org PRIVMSG #esoteric :Yeah, that'll work well. < 1321487316 459398 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Bignum int, pointers are cons pairs... what could go wrong? < 1321487385 983119 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :try it in bcc (a 16-bit C compiler) < 1321487389 327930 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(that, umm, only understands K&R, I think) < 1321487424 677032 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: That's actually a decent idea < 1321487432 621917 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :Gregor: Do that (it has a flag to automatically run unprotoize before compilation) < 1321487461 74681 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :elliott: sizeof(int) must be frightening < 1321487477 498014 :Gregor!foobar@codu.org PRIVMSG #esoteric :ais523: 16-bit won't ever work. < 1321487504 519354 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :TIL that pikhq is frightened of 2 < 1321487514 871927 :pikhq!~pikhq@71-219-217-240.clsp.qwest.net PRIVMSG #esoteric :ais523: Bignum int. < 1321487523 995272 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, I see < 1321487529 159291 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wrong context < 1321487632 185919 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: 2 is pretty terrifying < 1321487671 815803 :Gregor!foobar@codu.org PRIVMSG #esoteric :Incidentally, there are less-shitty i86 compilers out there :P < 1321487691 42467 :Gregor!foobar@codu.org PRIVMSG #esoteric :i.e. owcc (wow, it's amazing to categorize owcc as LESS shitty than anything) < 1321487698 712944 :Gregor!foobar@codu.org PRIVMSG #esoteric :s/i\.e\./e.g./ < 1321487764 558203 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :ais523: so, the Exp inside a CallC -- sorry, the program inside a Call1 -- has a new binding in scope, right? < 1321487782 96104 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :and the programs inside a Call2 each have a new c binding and a new v binding with the same number (the same binding on each arm?) < 1321487789 242500 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep, I think so < 1321487810 229430 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: 2 < 1321487828 229073 :elliott!elliott@unaffiliated/elliott PRIVMSG #esoteric :/quit 2