< 1458604884 657233 :Lilly_Goodman!~canaima@201-238-8-125.dyn.movilnet.com.ve PRIVMSG #esoteric :Hello, how are you? < 1458605058 839802 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :must... resist... tempation... to ban... canaima@*.* < 1458605110 943982 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@messages- < 1458605111 74403 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :boily said 1h 28m 58s ago: with raw onions, on some tunnbröd, and an ounce of aquavit. < 1458605138 418993 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@tell boily tunnbröd is swedish not danish hth < 1458605138 587295 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458605200 174812 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@tell boily you might substitute fladbrød instead hth < 1458605200 305112 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458605651 798446 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@tell b_jonas oerjan: yes, that's what mad said too. <-- some context would have been nice. thanks for the reminder about DST though, i keep being confused about which month it is since it got moved to october in the autumn. < 1458605651 967623 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458605652 347630 :lleu!~gnomebad@unaffiliated/lleu QUIT :Quit: That's what she said < 1458605675 415946 :lleu!~gnomebad@unaffiliated/lleu JOIN :#esoteric < 1458605732 661459 :Lilly_Goodman!~canaima@201-238-8-125.dyn.movilnet.com.ve QUIT :Ping timeout: 260 seconds < 1458605953 422260 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :izabera: actually solving the cube? Don't be ridiculous. < 1458605963 470256 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : is walric even a word it is now welcome to English that's not how it works yes it is <-- english seems to have a weird relationship with the idea of a word being "real". < 1458606012 232154 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :so i thought izabera was right here, but might not have been if it were another language. < 1458606024 301580 :jaboja64!~jaboja@ehh117.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 276 seconds < 1458606034 268241 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :A word is real if people outside a particular community regularly use it with its supposed meaning. < 1458606037 915132 :\oren\!~oren@TOROON0949W-LP130-01-1242511664.dsl.bell.ca PRIVMSG #esoteric :i'm baaaaack < 1458606051 953593 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Examples of real words are "irregardless" and "pseudopseudohypoparathyroidism". < 1458606072 966336 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Examples of non-real words are "ghoti" and "pneumonoultramicroscopicsilicovolcanoconiosis". < 1458606087 362767 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :tswett: are you sure that the "outside a particular community" test works for no. 2 there < 1458606138 957694 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`? irregardless < 1458606140 363775 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah. < 1458606145 916914 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :irregardless? ¯\(°​_o)/¯ < 1458606162 59762 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :"The medical community" isn't really a community. It's not a community if there's some property that allegedly automatically makes you part of it. < 1458606173 943775 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Or something like that. < 1458606212 721140 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :All right. For some reason, I really dislike the sequence that I currently have for solving this situation: https://www.speedsolving.com/wiki/index.php/Special:MediawikiAlgDB?mode=view&view=default&puzzle=2&group=CLL&cid=40 < 1458606256 802532 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(2x2. First layer is solved, second layer is oriented correctly, but two adjacent pieces are exchanged.) < 1458606284 700878 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :This one looks pretty interesting: L R U2 R' U' R U2 L' U R' < 1458606348 899 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :This one too: R U2 R' U' R U2 L' U R' U' L < 1458606360 23707 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`le/rn ghoti/"Ghoti" is a very fishy spelling. < 1458606365 602748 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Learned «ghoti» < 1458606381 957371 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The hell just happened? My 2x2 was solved a little while ago, and I did nothing to it whatsoever and now it's scrambled. < 1458606396 769226 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It's been here at my side the whole time. Nobody else has come and scrambled it. < 1458606407 589108 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There are no other nearby objects which could have somehow contacted and scrambled the cube. < 1458606439 176812 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The only explanation is that it spontaneously self-scrambled without making any sound or appearing to move noticeably. < 1458606454 576152 :Vorpal!~Vorpal@unaffiliated/vorpal QUIT :Ping timeout: 260 seconds < 1458606456 638956 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(Or I scrambled it so absent-mindedly that I was left with no memories of doing so.) < 1458606471 641744 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :have you slept in the meantime? < 1458606487 222393 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`? tswett < 1458606488 548571 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :tswett is livin' it up with the penguins. He's a title under the cruxite in the lathe. < 1458606524 564531 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I've been sitting here for at least the last ten minutes. < 1458606538 421940 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The spontaneous self-scrambling (SSS) event happened within those ten minutes. < 1458606542 699413 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :aha < 1458606597 512388 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :does this happen to other things than cubes? < 1458606612 561517 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Not that I've noticed in the past. < 1458606643 508615 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :maybe you just switched to another universe where you didn't solve it. < 1458606656 61936 :jaboja64!~jaboja@ehh117.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1458606657 429355 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Hello < 1458606661 822919 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`quote berenst < 1458606664 396387 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :No output. < 1458606700 160861 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`wisdom berenst < 1458606701 366740 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​/cat: : No such file or directory < 1458606733 389070 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Have I informed you that I'm writing a compiler or two? < 1458606739 347848 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The L R U2 sequence needs U' appended to it, I think. < 1458606747 213042 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: nope. < 1458606754 948533 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I'm writing a compiler. < 1458606757 737210 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Or two. < 1458606764 691462 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Ah, neat. < 1458606767 35185 :Vorpal!~Vorpal@unaffiliated/vorpal JOIN :#esoteric < 1458606791 903980 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :`` grep -r berenst wisdom < 1458606803 712478 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :No output. < 1458606832 966332 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Okay, I like the second sequence there better. Again: R U2 R' U' R U2 L' U R' U' L < 1458606844 129308 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I'm trying to figure out how to compile a temporal logic programming language < 1458606854 959535 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There's at least one way of writing that decently concisely... < 1458606867 936788 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :R U'^(U2 R') R'^(L' U) < 1458606937 183040 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458607035 998277 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Is this Banach-Tarski? < 1458607052 190844 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hello < 1458607072 584781 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: I'm solving the 2x2x2 Rubik's cube. < 1458607076 197423 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: Dios mío. ¿Tiene algún interés en la programación esotérica? < 1458607101 444934 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which has only a teeny tiny bit to do with the Banach-Tarski theorem. < 1458607105 52395 :\oren\!~oren@TOROON0949W-LP130-01-1242511664.dsl.bell.ca PRIVMSG #esoteric :you should report this glitch to reddit < 1458607109 766568 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: como que cosas?? < 1458607145 484629 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: Traductor Google no va a traducir esa correctamente. < 1458607158 919963 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: pienso que significa "like what??" < 1458607189 968747 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Ah < 1458607192 188365 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :tswett: maybe your scrambled cube was due to a use of banach-tarski, look for the other cube. < 1458607195 134530 :J_Arcane_!~chatzilla@37-219-223-106.nat.bb.dnainternet.fi JOIN :#esoteric < 1458607231 769148 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: que haces? < 1458607248 480442 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458607248 764231 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :De alguna manera alienado todos (o al menos yo) la primera vez que vino aquí, y no parece tener ningún interés en el tema del canal, así que por qué estás aquí? < 1458607250 22090 :J_Arcane!~chatzilla@37-219-240-184.nat.bb.dnainternet.fi QUIT :Ping timeout: 244 seconds < 1458607253 700145 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :El bienvenido obligatorio... < 1458607258 329451 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :`bienvenido Lilly_Goodman < 1458607261 216699 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :Lilly_Goodman: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.) < 1458607264 624349 :J_Arcane_!~chatzilla@37-219-223-106.nat.bb.dnainternet.fi NICK :J_Arcane < 1458607283 782525 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :HackEgo: lo se y gracias < 1458607309 604863 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: HackEgo es un bot < 1458607324 709940 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: I can't quite figure out what the first half of that is supposed to be. "In some way everyone alienated (or at least me) the first time I came here"? < 1458607372 918256 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: "You managed to alienate everybody...", IIRC < 1458607412 281899 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458607412 560078 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Estoy tratando de averiguar por qué sigues viniendo aquí. Usted no parece que se preocupan por el propósito del canal, pero que siguen regresando. < 1458607414 735560 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :In fact nosotros sí discutimos la programación esotérica de vez en cuando. < 1458607420 765483 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: disculpa < 1458607464 837432 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :oerjan: I don't think my cube has infinitely many pieces. < 1458607485 789671 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: Somos un canal de programación frikis surrealistas. Parece que han mostrado ningún conocimiento o interés en la programación. ¿Qué estás buscando en este canal? < 1458607517 532269 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :s/han/no ha/ < 1458607607 819576 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Also s/o/ni/ < 1458607617 43052 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Google Translate < 1458607618 708953 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Spanish with its funky... use of lots of negatives everywhere. < 1458607641 110661 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :In Spanish, you don't say "you have shown no interest in this or that"; you say "you haven't shown no interest in this nor that". < 1458607667 662790 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric : hppavilion[1]: como puedo instalar juegos a la canaima? < 1458607695 117998 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458607695 248469 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Eh? < 1458607706 614431 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lilly_Goodman: tal vez quieres hablar en #canaima. < 1458607722 120945 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Nosotros no conocemos nada de la Canaima. < 1458607739 145181 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458607739 416708 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Por favor. Encontrar un canal que se adapte a sus intereses y pasar el rato allí. Esto claramente no es el lugar para usted. < 1458607758 187562 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I think she got kicked out of #canaima < 1458607842 11298 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :tswett: no < 1458607852 628436 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: no sea asi < 1458607905 876270 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :¿Como que? Estoy tratando de decir que este no es el canal que parece estar buscando, y que debería encontrar algo mejor se adapte a sus intereses. Esto no es ese lugar. < 1458607932 735725 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: *shrug* It's not necessary for us to try to convince them to do anything. < 1458607942 88673 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Fair enough < 1458607970 528443 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Should we, the people of #esoteric, try to make an actual, useful programming language? < 1458608023 707636 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric : hppavilion[1]: pero no sabe como descargar aplicaciones a la computadora canaima? < 1458608031 115211 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'm already doing that; by all means you can help! < 1458608055 687182 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lilly_Goodman: ¿lo has preguntado en #canaima? < 1458608090 86221 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :NOSOTROS NO HACEMOS CANAIMA. YO AN NO S LO QUE ES. TRATE DE HABLAR CON PERSONAS EN UN CANAL ALREDEDOR DEL CANAIMA, EN VEZ DE AQU. < 1458608101 762049 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Oooh, what's the compiler implemented in? < 1458608105 321533 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Or is it interpreted? < 1458608116 110435 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :C#. I guess I'd call it interpreted. < 1458608121 278122 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It's a query language, not really a programming language. < 1458608121 470381 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric ::-/ < 1458608138 440580 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :(Sorry for ~yelling, but Lilly_Goodman does not seem to be getting the message) < 1458608152 971981 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: OK, but does it have programming features? < 1458608153 102423 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lilly_Goodman: lo siento de que no te podemos ayudar. < 1458608159 833535 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :tswett: no < 1458608175 409464 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: Si. < 1458608177 190195 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: not really. It has, like... addition. < 1458608182 255763 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And if/then stuff. < 1458608188 150947 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: What kind of query language is it? < 1458608191 676136 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It might be Turing-complete somehow. < 1458608192 137320 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Like a SQL? < 1458608196 228609 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: :'( < 1458608197 438626 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah, definitely like SQL. < 1458608200 603551 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608203 592990 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: What's the model? < 1458608218 118994 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Uhh, I guess kind of a cross between relational and object-oriented. < 1458608224 292829 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Interesting... < 1458608230 610205 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It's supposed to be useful as a language for querying existing SQL databases. < 1458608238 527751 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oooh < 1458608247 374004 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Can you give me some example code? < 1458608251 947437 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: yeah. < 1458608256 176204 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric ::'( < 1458608289 668142 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458608289 968181 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Nosotros no podemos ayudar. Por favor, encontrar a alguien que pueda hacerlo. Usted no va a encontrar en este link. < 1458608293 584629 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Uhh, lemme see. There's no spec at the moment. < 1458608297 833920 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608303 868839 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :But yeah, example code. < 1458608307 19841 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: A spec would be a good step :P < 1458608314 507808 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I should make, like, a list of features, and number them. < 1458608320 356156 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :First, feature number A. < 1458608321 918953 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Good ida < 1458608324 589773 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :*idea < 1458608324 720147 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(They're numbered with letters.) < 1458608335 799836 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: What happens when you have a letter overflow? < 1458608339 324532 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :What's feature Z++? < 1458608351 110415 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'll start using doubled letters and whatnot. < 1458608357 129787 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :After Z comes AA, then AB, ... < 1458608359 707266 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: So it's base 26? < 1458608364 857426 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Something like that. < 1458608367 754890 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608370 209934 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: que preguntas puedo hacer en este anal?? < 1458608373 642305 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Feature #8 < 1458608377 445581 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: que preguntas puedo hacer en este canal?? < 1458608378 294622 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :s/8/A/ < 1458608392 833273 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lilly_Goodman: ¿conoces la programación? < 1458608407 299506 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: remember also that it's perfectly fine to just totally ignore a question. < 1458608422 618652 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So, there are at least two sorts of types in this language: scalar types and non-scalar types. < 1458608429 145288 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Lilly_Goodman: < 1458608429 416218 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Nada, en realidad. Somos más de un canal de chat-sobre-el-cosas que un canal de pedir-us-preguntas. < 1458608429 594973 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Scalar types are things that can fit into a table cell. < 1458608443 43342 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608463 516239 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Some examples: unit, integer, double, string. < 1458608474 448521 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Unit? Like the unit type? < 1458608478 329138 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yep. < 1458608488 138170 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Non-scalar types are anything else. < 1458608492 441470 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And boy, they're a doozy. < 1458608496 500380 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'm not going to explain them at all. < 1458608499 474992 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Can a cell have type Bot (empty type)? xD < 1458608505 304550 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Maybe! < 1458608511 763905 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: You don't understand them yourself, do you? < 1458608516 226451 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Nope. < 1458608522 116442 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Makes sense < 1458608526 264134 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So, the first revision of the language is going to be read-only. < 1458608537 21813 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK... < 1458608539 741767 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Like, there's not going to be any way to change the data in a database. < 1458608545 361573 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And later it will be able to modify? < 1458608547 28055 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And I've managed to say a lot without really communicating anything. < 1458608547 931641 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah. < 1458608550 104487 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So, on to the chase. < 1458608555 52797 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Suppose you've got a table called "cats". < 1458608560 233962 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You can get all of the data out of it using this query: < 1458608561 109694 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :cats < 1458608562 105805 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Yay. < 1458608572 57823 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It's pretty simple. < 1458608580 900102 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Does it support digraphs for DSes? < 1458608584 142352 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Yeah, makes sense < 1458608588 570111 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Just a variable < 1458608590 270496 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :For whatses? < 1458608601 420425 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :hppavilion[1]: no entendi bien a que te refieres con que es un chat-sobre-el-cosas que un canal de pedir-us-preguntas??? < 1458608610 112575 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Data Structures. Non-scalars. < 1458608625 281627 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Google did a rather hilarious job with "pedir-us-preguntas" and whatnot. < 1458608638 771013 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lilly_Goodman: "pedir-us-preguntas" = "pedirnos preguntas" < 1458608650 634040 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :va a comer < 1458608655 397249 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :ACTION va a comer < 1458608673 297599 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 246 seconds < 1458608687 539286 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Note that "struct" types are probably going to be scalar. < 1458608694 225047 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Ah, OK < 1458608702 778325 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And I'm not sure what you mean by digraphs. < 1458608702 908688 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: And they'll get stuck in a massive data type? < 1458608711 248971 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Directed (labeled) graphs < 1458608718 100003 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Ah. < 1458608730 499437 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Pretty common terminology < 1458608730 850153 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah, tables can reference each other and whatnot. < 1458608733 972356 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608743 991950 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I thought you meant "sequences of two symbols", the other meaning of "digraph". < 1458608753 345678 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Ah, right < 1458608759 439036 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If there's a table called "cats", then there's a type called Reference or something, which refers to rows in that table. < 1458608770 314411 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608774 662313 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I follow, I think < 1458608780 409674 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Anyway... < 1458608835 328137 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There are struct types. Let's say that there's a struct called, I dunno, CatInfo, with two fields: name, which is a string, and friendliness, which is an integer. < 1458608843 859322 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458608854 38685 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Cat friendliness is measured as a fuzzy, but OK < 1458608892 352509 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There's a certain extremely important operator, which is: < 1458608893 79041 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :. < 1458608897 987604 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The projection operator. < 1458608910 744723 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Suppose "ci" is a particular CatInfo value. Then you can do this: < 1458608911 819940 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :ci.name < 1458608915 387177 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That'll give you the cat's name. < 1458608925 690038 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, the way this works is a little complicated. < 1458608946 903386 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :In most programming languages, the thing on the left is an expression, and the thing on the right is an identifier, naming one of the fields of the thing on the left. < 1458608982 434548 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :In this language (it's called Quendle, by the way), the thing on the right is also an expression, and it's evaluated in the "projective context" of the thing on the left. < 1458608994 128193 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, projective contexts (or just contexts) are something I haven't totally worked out yet. < 1458609016 549975 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Buuut... < 1458609035 68169 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You can evaluate something in the projective context of a struct type. < 1458609043 302341 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh, right! Quendle! < 1458609064 467893 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If you evaluate a field of that struct in that context, you end up with... the value of that field. < 1458609071 747577 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That's a pretty good model, I think < 1458609088 180780 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Can you make custom contexts? < 1458609111 88784 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: And can the expression be something other than an identifier? I would doubt it, but it might be possible < 1458609128 724543 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And if a struct st has attributes a and b (both ints), will st.(a+b) return their sum? < 1458609133 857239 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1458609197 377894 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :As for making custom contexts: kinda... there are features producing various kinds of contexts. < 1458609207 157497 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'll explain a little further a little later. < 1458609214 518660 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Does Quendle support Prologian knowledge bases? Perhaps there are operators to treat a table as a knowledge base in some subset format? < 1458609214 725745 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :As for st.(a+b): yes, absolutely. < 1458609226 737452 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Because PROLOGian knowledge bases are cooooool < 1458609233 333213 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Excellent. Gold star. < 1458609238 637530 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :heh, I don't know Spanish but that was hilarious < 1458609243 86183 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :kinda < 1458609261 995730 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1458609267 331861 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :his523 < 1458609267 987098 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There are no logic programming features. < 1458609270 710787 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458609288 535446 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Can you define functions of any sort? < 1458609292 497327 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Nyow. < 1458609297 474157 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah... eventually. < 1458609298 885317 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Nyow. < 1458609305 823962 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :If so, I might just have to make a logic programming library ;) < 1458609308 828407 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Tables have row set types. < 1458609316 316499 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK? < 1458609320 177795 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Row set types? < 1458609330 49286 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Set as in set theory or set as in set in stone? < 1458609331 568139 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The "cats" table will probably have a type like "set of CatInfo rows". < 1458609336 349773 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Ah < 1458609338 117634 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I get it < 1458609348 909414 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :You mentioned that, References < 1458609394 580751 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And the nice thing about row set types is that the projection operator passes through them, so to speak. < 1458609405 15356 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which is to say, you can do this: < 1458609406 948830 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :cats.name < 1458609412 881238 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I have to go eat dinner in a bit < 1458609416 545801 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: But go on < 1458609419 364924 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And that will give you all of the cat-names. < 1458609426 582553 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Ooooh < 1458609430 286041 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That's beautiful < 1458609443 976014 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I always like sets that can be operated on < 1458609450 785953 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, there's another really important operator: "where". < 1458609460 19483 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You can do this: < 1458609464 505623 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :cats where friendliness >= 6 < 1458609465 295459 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :{1, 2, 3}+{4, 5, 6} = {5, 6, 7, 8, 9} < 1458609467 197540 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458609482 498653 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which... is... kind of self-explanatory, but kind of not. < 1458609485 65051 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Is this language intended to be ultra-readable? < 1458609493 318228 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Or is it a Perl < 1458609502 874844 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I wouldn't say that. It's designed to be usable, like... a lot of languages are. < 1458609505 799947 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458609527 722584 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :where could equal .. if that isn't already used. .. looks nice for where (reminds me of "such that") < 1458609545 939776 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I should go now, but I'll be back in a bit < 1458609549 133854 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That expression there essentially looks at every cat c, and evaluates the expression "c.(friendliness >= 6)". < 1458609555 71524 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :All right. I'll continue monologuing. < 1458609567 575583 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I would prefer if you just waited until I was back :P < 1458609600 18062 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric : tswett: como puedo descargar programas a una computadora? < 1458609666 762460 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :For those rows where it's true, you get that row as part of the result set. Where it's false, the rows are eliminated. < 1458609749 91706 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, you can also take the cartesian product of two row sets. < 1458609760 25440 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If you want to get the set of all pairs of cats, you can do something like this: < 1458609761 385102 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :cats * cats < 1458609817 753479 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Next, suppose "cats" has a "name" column, and "humans" also has a "name" column. For whatever reason, you want to get the set of all pairs of cat and human such that the cat and the human have the same name. < 1458609829 757648 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :This won't work, for obvious reasons: < 1458609834 216730 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :cats * humans where name = name < 1458609836 510891 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which name is which? < 1458609924 590281 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So what can you do instead? < 1458609926 121974 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Answer: < 1458609932 901430 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :c: cats * h: humans where c.name = h.name < 1458609978 13494 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 244 seconds < 1458610051 110786 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, the exact mechanism behind this, I'm not totally sure of. < 1458610060 633570 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Let me offer a quick proposal. < 1458610080 657313 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :"Proposal" is kind of a funny word for it, since I'm the one who makes the decision. < 1458610085 664560 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(I am the decider!) < 1458610135 251656 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(c: cats * h: humans) has a type like "set of rows: (struct with field "c" of type (CatInfo), field "h" of type (HumanInfo))" < 1458610173 221144 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So on the right, you simply compose fields appropriately. < 1458610235 307540 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, I think there's a problem with this. < 1458610239 398640 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Let me try to remember what the problem is. < 1458610367 313192 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'm not totally sure that there is a problem, so at the moment, I'm going to assume that there is no problem. < 1458610447 152807 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And, uh... sheesh... I think that's the bulk of the language, right there. < 1458610459 866768 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Maybe I should say the core of the language. < 1458610547 756693 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458610700 374994 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Do you have a "toplevel scope" operator? < 1458610779 858607 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The top-level scope is always accessible. < 1458610786 29726 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: How? < 1458610792 502146 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Scope as in projective scope < 1458610797 801222 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Assuming I know what you mean. < 1458610812 929487 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Like, you can't explicitly ask for the global projective context. < 1458610819 899703 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Say you have an integer "i", a struct "st", and st has attributes num and i < 1458610829 731577 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Right, right. < 1458610831 620977 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Consider st.(num+i) < 1458610833 436610 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That raises a question. < 1458610859 795164 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Is st.(num+i) the sum of all st.num and all st.i, or the sum of all st.num and i? < 1458610895 357962 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I would say you need a global projective context nullary operator, unless you already have this figured out < 1458610918 219012 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Note, by the way, that if you do something like cats.(name + name), if you have cats named "Dorothy" and "Ann", you'll get the results "DorothyDorothy" and "AnnAnn", but not "AnnDorothy" or "DorothyAnn". < 1458610922 585291 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If you wanted those, you'd have to do... < 1458610937 711714 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(c1: cats * c2: cats).(c1.name + c2.name) < 1458610942 14004 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I figured that < 1458610966 773743 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So, right. How am I going to get around this issue... < 1458610971 497841 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Wait, tuples have a projective context? < 1458610995 132864 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yup. You wouldn't be able to do "where" on them if they didn't have a projective context. < 1458611000 299283 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Ah < 1458611002 144598 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458611007 620910 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :How does it work, precisely? < 1458611016 402777 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That previous line of code in particular < 1458611036 688191 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So, the first half of it, "c1: cats * c2: cats" has a type something like this: < 1458611041 325896 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :ACTION les dice a todos en este momento que Cristo te ama mas de lo que te puedes imaginar :-) < 1458611071 389999 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :"ad-hoc struct with fields c1 of type CatInfo and c2 of type CatInfo" < 1458611084 1203 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And that generates a projective context. < 1458611087 246524 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Aaaaaaah < 1458611097 987540 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :So that's an ad-hoc struct, more so than a tuple < 1458611106 780299 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And the two most notable things in this context are c1, of type CatInfo, and c2, also of type CatInfo. < 1458611116 540213 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I understood that < 1458611132 918010 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: So what's the problem that's giving you trouble? < 1458611151 247942 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You mean besides the st.(num+i) thing you brought up? < 1458611166 122901 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Whichever it was you were talking about < 1458611185 983073 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Though how you plan to overcome st.(num+i) would also be of interest < 1458611188 480459 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'm not totally sure if that problem really existed. < 1458611195 185280 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Ah < 1458611195 905563 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Though this problem is one of those win-win problems... < 1458611200 488586 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Either I'll run into it or I won't. < 1458611221 501380 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If I run into it, perfect—I can figure out how to fix it. If I don't run into it, perfect—the problem doesn't exist. < 1458611231 76615 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: You have product types (*), but do you have sum types? < 1458611260 701891 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :PetRows = CatRows + DogRows < 1458611264 439965 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Those will be added. < 1458611267 182626 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458611278 801638 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :But I want to work out the core language here before adding anything onto it. < 1458611282 654420 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Any other features of interest? And is this on GitHub? < 1458611295 909266 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It'll be on Bitbucket. < 1458611335 271116 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Other features of interest... oh yeah, there's one cool thing I want to do. < 1458611354 536258 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Suppose you've got a database where every table has this one column, say "Region". < 1458611397 280043 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You can get to a "slice database"—one where the Region columns are no longer visible, and all inter-table references automatically stay within the one Region. < 1458611410 922736 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :If you ask something like "how many rows are in this table", you'll get one answer for each Region. < 1458611424 971503 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Sort of like the database has been sliced into a bunch of little databases, one for each Region. < 1458611432 217721 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And all with identical schemas. < 1458611467 337687 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa PRIVMSG #esoteric :ACTION les dice a todos en este momento que Cristo te ama mas de lo que te puedes imaginar :-) < 1458611593 16669 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK, give me a minute to reread that a few times xD < 1458611674 34960 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Interesting < 1458611690 253884 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Uhhhhh I feel like there's something I'm missing right this moment. < 1458611693 215343 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :ACTION shrug. < 1458611713 199245 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Check your 2x2x2. Maybe it's in its shift state < 1458611717 675453 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That's probably what you're missing. < 1458611724 265185 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The half of it which I can see appears solved. < 1458611741 237912 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I flipped it around to look at the other half. Once again, the half of it which I can see appears solved. < 1458611763 139361 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458611778 848176 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :But I cannot look at the whole thing at once. < 1458611786 412563 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Nyow. About that global thing. < 1458611803 249890 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You know, you might be totally right. < 1458611807 699367 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :The tragedy of limipresence < 1458611833 755540 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :*Mind blow* < 1458611834 104392 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Maybe there does need to be a thing called "global" you can use to explicitly request the global scope. < 1458611843 212065 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Yep. < 1458611843 342581 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :What's limipresence? < 1458611858 961271 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Finite presence; if you are not omnipresent, you are limipresent < 1458611868 845739 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Ah. < 1458611931 566017 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: You could also have a "one level up" operator that isn't global, but it's the scope containing the current scope < 1458611947 331809 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That one I don't like. < 1458611958 934001 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net JOIN :#esoteric < 1458611960 470816 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I don't really either, but I like sharing ideas xP < 1458611988 871549 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So lemme see. Have we totally figured out the core language here? < 1458611994 436364 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric ::|B <-- beard < 1458612005 522354 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: How do you order a selection? < 1458612013 987994 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :By using features I haven't come up with yet. < 1458612020 57179 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458612023 368865 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: How about < 1458612028 873860 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Whoops < 1458612031 397790 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Let's try to think of some really complicated queries or something. < 1458612052 212205 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Select the last item in the table that has some property < 1458612077 20207 :bender|!benderpc@2404:e800:e61a:41d:147e:4d06:aa00:1dc9 JOIN :#esoteric < 1458612078 567372 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Also something I haven't come up with yet. So far, all row sets are orderless. < 1458612090 181093 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh < 1458612093 192036 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That's not very relational < 1458612098 175753 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net QUIT :Client Quit < 1458612103 101996 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That's exactly relational. < 1458612117 86208 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Though I think if you give every table a row# item, you can accomplish that < 1458612132 349456 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Perhaps you should also have a unary . operator, that produces an expression that can be applied to extract a value? < 1458612142 464069 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :What do you mean by that? < 1458612145 30556 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :.(x+y) can be applied to anything with attributes x and y < 1458612151 373999 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And will return their sum < 1458612152 929939 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :... < 1458612156 685232 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :No, terrible idea < 1458612161 322887 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Well, maybe < 1458612161 857230 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :That's just (x+y). < 1458612173 811827 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Like... < 1458612186 557038 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: But for what sc- OH! can you have unevaluatable expression you can later evaluate? < 1458612201 784129 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Like (x+y) where x and y are undefined? < 1458612209 235600 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You know how if you have a cat Furissa of friendliness 8, and you evaluate furissa.(name + to_string(friendliness)), you get "Furissa8"? < 1458612217 390054 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You can do something like this: < 1458612225 269887 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 276 seconds < 1458612226 977566 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458612249 826611 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :"Let the name_with_friendliness of a CatInfo be name + to_string(friendliness)." < 1458612260 699745 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Then you can do furissa.name_with_friendliness. < 1458612263 235310 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458612271 778866 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :That looks good < 1458612274 709856 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Or: cats where length(name_with_friendliness) <= 7 < 1458612313 93922 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :By the way, this lets you do some awful stuff that I hope nobody will ever do. < 1458612315 211147 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :(ci: CatInfo).name_with_friendliness = ci.name + to_string(ci.friendliness) < 1458612320 766910 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And it's a futile hope, because someone will definitely do this. < 1458612325 156774 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Such as? < 1458612352 387177 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :You could say something like: "Let the one_more of an integer x be x + 1." < 1458612357 632551 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh, I assume = has its own contextiness < 1458612366 401998 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And then you could do something like this: (3).(one_more + one_more) < 1458612368 722838 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And you'll get 8. < 1458612369 335133 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Where the lhs of = returns a reference instead of a value < 1458612376 17765 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Max SendQ exceeded < 1458612385 252734 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Eeew... < 1458612388 260011 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Well, I'm using = for equality comparison, not assignment. < 1458612389 680673 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I need to go shower < 1458612389 935189 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I know, right? < 1458612395 654514 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: OK then, := < 1458612403 994204 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There we go. < 1458612413 299277 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458612434 598081 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :So am I correct to guess that :='s lhs is evaluated to produce a reference? < 1458612437 217383 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'm not sure what the syntax would be, but it might be more like this: < 1458612445 368274 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And that the scope created is used on the rhs? < 1458612453 530628 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(CatInfo).name_with_friendliness := name + to_string(friendliness) < 1458612460 776708 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Well... the short answer is no. < 1458612472 555353 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The LHS is just an identifier, or a type with an identifier after it like that. < 1458612481 457580 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: OK :/ < 1458612482 785741 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It's not really an expression you can evaluate. < 1458612491 365591 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :But I do hope to do something kind of along those lines later. < 1458612491 495853 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: I guess that's for the best < 1458612506 992501 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Because x+1 := 3 is a pain to evaluate (it would, in theory, set x to 2) < 1458612513 103 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :(but that's hard) < 1458612513 556557 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Right. < 1458612523 987729 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Not to mention that that's sometimes uncomputable. < 1458612528 919665 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Of course < 1458612539 398991 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And uncomputability is itself uncomputable oftentimes < 1458612540 871473 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And so on < 1458612541 431230 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :But: make it so that if a query returns some rows that come from a table, you can, like, set the output of the query. < 1458612544 829885 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Something like... < 1458612567 442217 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Listening. < 1458612589 348673 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :update (cats where name = "Furissa").name := "Furrison" < 1458612609 813001 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh god. < 1458612622 932619 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458612630 756406 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It'll undoubtedly be kind of weird. < 1458612633 857653 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Does that modify the result of a query for cats where name = "Furissa"? < 1458612642 465058 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Thankfully, no. < 1458612642 699064 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Without changing Furissa to Furrison? < 1458612645 906447 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh, good < 1458612657 38538 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Oh, good || Oh, god. < 1458612685 208068 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Essentially, it performs the query 'cats where name = "Furissa"' to come up with a list of rows of the table "cats". < 1458612696 104243 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :OK < 1458612703 567609 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Then it applies the "name" projection to that to come up with a list of table cells containing strings. < 1458612705 822246 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And then it sets it to Furisson < 1458612714 653142 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And one of the things you can do with a table cell containing a string is to change what that string is. < 1458612731 542329 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So really, "cats" has a type like... < 1458612744 30185 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :UpdatableInsertableDeletableRowset < 1458612769 213968 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Then you do "where name = "Furissa"" on it, getting an... < 1458612775 482961 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :UpdatableDeletableRowset < 1458612784 537211 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Then you do ".name" on that, giving you an... < 1458612790 556525 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :UpdatableDeletableRowset < 1458613009 20302 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Now, you know how I mentioned I want this to be usable as a front-end to a SQL database? < 1458613073 944616 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I guess that might actually initially be the *only* way to do it. < 1458613088 429027 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lemme think what that might look like. < 1458613159 667334 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : You know how if you have a cat Furissa [...] <-- then you shouldn't be trusted around cats hth < 1458613327 124854 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Table CallTicket := SqlTable(cts_call_ticket) { integer IdNumber := "ticket_id" primarykey; string Description := "ticket_desc" } < 1458613329 840396 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :oerjan: tht < 1458613342 129619 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And then... < 1458613432 744023 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Table TicketEvent := SqlTable(cts_ticket_event) { reference Ticket := "ticket_id"; string Description := "event_desc"; datetime Datetime := "event_datetime" } < 1458613452 626938 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :And then you can do stuff like... < 1458613476 114305 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :(TicketEvent where Ticket.Description = "Oh no! Everything's on fire!").Datetime < 1458613490 753390 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which would be a SQL query something like... < 1458613538 997758 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :SELECT event.event_datetime FROM cts_call_ticket ticket, cts_ticket_event event WHERE ticket.ticket_id = event.ticket_id AND ticket.ticket_desc = 'Oh no! Everything''s on fire!' < 1458613546 552893 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Ping timeout: 252 seconds < 1458613916 269815 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458614607 714408 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Oh, here's a possibly-core language feature you might want to look into < 1458614612 55295 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :UNION and INTERSECTION < 1458614662 532011 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :&& and || if you please < 1458614668 260673 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Max SendQ exceeded < 1458614734 599628 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458614843 649430 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :tswett: Event-driven database... < 1458616273 621438 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :shachaf: Is there such thing as a Zeration Type? < 1458616300 633465 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know. < 1458616340 839021 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :that would be x -> Void, wouldn't it? so negation. < 1458616348 358370 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :shachaf: Weren't you the one who knew about A^B earlier? < 1458616363 734836 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :oerjan: But if A -> B is A^B < 1458616364 13056 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know what zeration is. < 1458616366 326120 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :or just Void for zero itself. < 1458616380 943574 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :shachaf: Successor, basically, but with two arguments. The basic hyperoperation < 1458616390 80816 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :And Void = 0, IIRC < 1458616393 603181 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i assumed it's the operation of turning something into zero. < 1458616410 916603 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :...ic < 1458616424 128213 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :`? ic < 1458616433 288474 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :ic what you did there. < 1458616442 377371 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :oerjan: What's ic? < 1458616450 894043 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@google "look for a ...ic transporter" < 1458616451 377909 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :http://nethack.wikia.com/wiki/Wizard_quest < 1458616451 508317 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Title: Wizard quest - Wikihack - Wikia < 1458616615 975443 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hppavilion[1]: it sounds like it would need to be a function that ignores one of its arguments < 1458616636 137719 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :a -> b -> Maybe b < 1458616668 404906 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@djinn a -> b -> Maybe b < 1458616668 535408 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :f _ a = Just a < 1458616695 276336 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :lambdabot: maybe a bit confusing variable choice there < 1458616731 653224 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Just a bit < 1458616736 754425 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :oerjan: Yes, it is < 1458616752 623532 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :or wait... < 1458616763 530506 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan: did you find your swatter yet twh < 1458616763 754279 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i think i'm mixing levels up there < 1458616782 607354 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :shachaf: my swatter was never missing < 1458616795 531422 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i guess that wasn't really swatworthy < 1458616796 174922 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :it was my saucepan that had been absconded < 1458616800 723008 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oh, right < 1458616840 623776 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ACTION hits shachaf with a damp straw ---- < 1458616850 974043 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :do you ever cook with the saucepan < 1458616853 158227 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :===\~~/ < 1458616862 587974 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :no. < 1458616882 559376 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :hppavilion[1],shachaf : `exp t' is the type of bags of inhabitants of `t', at least for finite `t' < 1458616886 592730 :\oren\!~oren@TOROON0949W-LP130-01-1242511664.dsl.bell.ca PRIVMSG #esoteric :yay bacon! < 1458616892 99087 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :===\ꙮꙮ/ < 1458616897 975049 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :ski: Oh, you're here too < 1458616898 784093 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ski: Are you sure? < 1458616917 156047 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ski: That would be (-> Nat) < 1458616935 481258 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I just realized that kleene algebra and type theory work well together < 1458616950 677336 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, I remember thinking about this and coming to some conclusion but it was years ago. < 1458616954 264824 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :+ in kleene algebra = + in type theory, * in kleene algebra is like * in type theory < 1458616991 56013 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :shachaf : at least judging from the expansion `exp t = sum_{i : |N} t^i / i!' < 1458616995 361551 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hppavilion[1]: on second thought, i don't think zeration and successor can be distinguished at this level < 1458617045 39086 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :oerjan: Successor takes 1 arg, zeration 2 < 1458617060 353811 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :So I think we can define kleene exponentiation < 1458617072 69731 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Also, S() is ? < 1458617088 529597 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :The successor of a string is that string OR the null string < 1458617102 157954 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: shachaf: _finite_ bags < 1458617126 717192 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :so (-> Nat) is excluded if it's infinite... < 1458617147 698032 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :oerjan : "at least for finite `t'" -- but, yes, also finite multiplicity, so you're correct < 1458617167 964064 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :I think kleene ^ may correspond to y/// < 1458617180 537683 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Somehow < 1458617202 830003 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :hppavilion[1]: no, i mean, this arithmetic <-> type correspondence doesn't have a notion of unused arguments, since you don't have functions, but expressions on the left side < 1458617210 913228 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :oerjan: Ah < 1458617224 790041 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :Right, right, I get it < 1458617445 86594 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: wait, does this mean Nat is e? >:) < 1458617539 958186 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: oh. i think i see what's going wrong. the x^n/n! <-> n-bag of x correspondence breaks down because of tuples with repeated elements. < 1458617544 950664 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Ping timeout: 244 seconds < 1458617574 423932 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, repeated elements, that's it. < 1458617588 626625 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I remembered there was an issue like that, but I thought it was about unordered tuple. < 1458617591 631731 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :tuples < 1458617636 965787 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :oerjan : breaks down how ? < 1458617639 273939 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :shachaf: well sure, bags are unordered tuples < 1458617732 875973 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If x is Bool, then there are three 2-bags of x. < 1458617764 668635 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :but 4 2-tuples < 1458617778 593252 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :and 3 /= 4 / 2! < 1458617854 920447 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 244 seconds < 1458617882 286391 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :looked at differently: x^n/n! is rarely an integer. < 1458617893 823982 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458618145 427551 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :ACTION doesn't see a problem < 1458618239 324898 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: X^n represents n-tuples of X. to divide by n!, there have to n! tuples that identify because they're the same bag. but that only happens for tuples that have all elements distinct and are permutations of each other. < 1458618245 382142 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :*have to be < 1458618245 569587 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :`t^i / i!' isn't to be viewed as a type divided by another type. but rather a type "divided" by a quotient (/factor) type of that type < 1458618247 591921 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: t^i: not found < 1458618276 223784 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: yes, but not all equivalence classes have size i! < 1458618292 496773 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :is that a problem ? < 1458618299 96569 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i should say so. < 1458618303 930377 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :why ? < 1458618321 824972 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458618330 822536 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :...oh well... < 1458618356 604128 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ski: Why do you think it's not a problem? < 1458618364 792901 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :if you don't have that (t^i / i!) < 1458618371 108098 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :argh stupid return < 1458618398 672177 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :if you don't have that (t^i / i!) * i! == t^i then it's not a very good correspondence with arithmetic. < 1458618408 190538 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :shachaf : only because i can't see it < 1458618469 323752 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :oerjan : if you accept my ".. isn't .. rather ..", then that `*' isn't an ordinary cartesian product of two sets < 1458618514 296993 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :so while we want (finite) sets/types to correspond with naturals here, i don't see why we should expect factor/quotient dittos to also correspond with naturals < 1458618533 99987 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :(perhaps there's still a problem. but i don't see it atm) < 1458618556 269088 :lambdabot!~lambdabot@haskell/bot/lambdabot QUIT :Remote host closed the connection < 1458618568 191913 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ski: * is already well-established as cartesian product. < 1458618587 843646 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :yes, for normal uses of it < 1458618592 250838 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :like + is disjoint/tagged union < 1458618636 713402 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :i'm saying any extension to the correspondence which doesn't fit in with those isn't particularly interesting. < 1458618676 892166 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :however, viewing `t^i / i!' as being about quotients, it's not clear (to me) that it ought to satisfy a relation like `(t^i / i!) * i! = t^i', relating it to a more restricted cartesian product < 1458618713 603904 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :FINE < 1458618720 393212 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :(because, a quotient thing corresponding to cartesian product requires each equivalence class to have the same size. but that's exactly what's not the case here with our `t^i / i!') < 1458618762 932301 :lambdabot!~lambdabot@haskell/bot/lambdabot JOIN :#esoteric < 1458618764 368820 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :let me rephrase that: _i_ don't find such an extension interesting unless it has some other property to make up for it. < 1458618778 123586 :ski!~ski@remote11.chalmers.se PRIVMSG #esoteric :ok < 1458618872 749395 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :this seems like a p. awkward way to write in point-free style: http://metatree.xyz/treeprover/ < 1458619189 20320 :tromp!~tromp@ool-18be0bd8.dyn.optonline.net JOIN :#esoteric < 1458619245 277929 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458619385 87169 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 248 seconds < 1458619423 190318 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458619518 256033 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 276 seconds < 1458619792 215523 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 268 seconds < 1458619964 792688 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa JOIN :#esoteric < 1458620387 770677 :Lilly_Goodman!~canaima@188.1.229.198.in-addr.arpa QUIT :Ping timeout: 248 seconds < 1458620662 321893 :treaki__!~treaki@p54BF2B86.dip0.t-ipconnect.de JOIN :#esoteric < 1458620704 199377 :MoALTz!~no@78-11-183-124.static.ip.netia.com.pl QUIT :Ping timeout: 244 seconds < 1458620844 686370 :treaki_!~treaki@p54BF2C63.dip0.t-ipconnect.de QUIT :Ping timeout: 276 seconds < 1458623619 689682 :MoALTz!~no@78-11-183-124.static.ip.netia.com.pl JOIN :#esoteric < 1458624555 991093 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net QUIT :Ping timeout: 264 seconds < 1458625762 403073 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Quit: Bye < 1458626223 798477 :jaboja64!~jaboja@ehh117.neoplus.adsl.tpnet.pl QUIT :Remote host closed the connection < 1458627302 544420 :me2!~me@38.70.70.115.static.exetel.com.au JOIN :#esoteric < 1458628852 937883 :Sgeo__!~Sgeo@ool-18e43ef5.dyn.optonline.net JOIN :#esoteric < 1458629355 983231 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :principle/principal are the worst homophones < 1458629384 161381 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :they're just common enough that people use them regularly, but uncommon and long enough that they don't know the difference < 1458629387 680989 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :this annoys me < 1458629391 269089 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :it's the principal of the thing, really < 1458631785 117910 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :coppro: surely the principle issue is understanding what's meant < 1458632700 296249 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458633373 289673 :ais523!~ais523@unaffiliated/ais523 QUIT : < 1458633480 432899 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :there must be room for a unified spelling here... principale? < 1458634243 369325 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :ACTION wanted to make a "beyond the pale" pun but instead learned what "the pale" actually meant < 1458634668 999176 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1458635910 297594 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 246 seconds < 1458635971 480164 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458636782 682703 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :. o O ( the mopale ) < 1458637534 431725 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 260 seconds < 1458637910 303066 :bender|!benderpc@2404:e800:e61a:41d:147e:4d06:aa00:1dc9 QUIT :Quit: [restarting] < 1458638308 27144 :bender|!benderpc@2404:e800:e61a:41d:147e:4d06:aa00:1dc9 JOIN :#esoteric < 1458638726 90488 :oerjan!~oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite < 1458638932 133967 :J_Arcane!~chatzilla@37-219-223-106.nat.bb.dnainternet.fi QUIT :Ping timeout: 244 seconds < 1458639335 561938 :me2!~me@38.70.70.115.static.exetel.com.au QUIT :Read error: Connection reset by peer < 1458639396 17381 :me2!~me@38.70.70.115.static.exetel.com.au JOIN :#esoteric < 1458641266 794867 :impomatic_!~digital_w@145.2.112.87.dyn.plus.net QUIT :Quit: http://corewar.co.uk < 1458641413 780834 :AnotherTest!~turingcom@94-224-66-163.access.telenet.be JOIN :#esoteric < 1458641757 726177 :lleu!~gnomebad@unaffiliated/lleu QUIT :Quit: That's what she said < 1458641775 722641 :lleu!~gnomebad@unaffiliated/lleu JOIN :#esoteric < 1458641846 692915 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1458643618 894463 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :huh, I just realised that there's an easy way to construct hash collisions: SHA-256(512×(2²⁵⁶+(2²⁵⁶)!) zeroes) = SHA-256(512×2²⁵⁶ zeroes) < 1458643627 764761 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :let me know if there's anything wrong with my reasoning < 1458643640 474386 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :of course, 2²⁵⁶ factorial is way too large for the collision to be useful at all < 1458643647 795472 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and we don't know what the actual hash value is < 1458643652 985515 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I don't see any reason why this method wouldn't work < 1458644077 743241 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ais523: the input of SHA-256 is limited to 2^512-1 bits due to the preprocessing step. < 1458644087 900729 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :> append length of message (without the '1' bit or padding), in bits, as 64-bit big-endian integer < 1458644089 672191 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : :1:15: parse error on input ‘of’ < 1458644096 283590 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :oh, < 1458644179 86162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm < 1458644190 547179 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess you just append a zero? assuming two's complement < 1458644299 703768 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ais523: I meant that there is no standard way to handle more than 2^512-1 bits of input with SHA-256 < 1458644316 313377 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :so well, SHA-256(512*2^256 zeroes) is not well defined < 1458644320 653866 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you mean 2⁶⁴ < 1458644325 796205 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but hmm, right < 1458644326 902164 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ah < 1458644327 529726 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :yeah < 1458644338 832636 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps it's intentional to stop this sort of attack < 1458644460 608431 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ais523: probably more about preventing an extension attack? < 1458644486 520876 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :this reminds me of an extension attack < 1458644606 302442 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I think it works for SHA-3, though (although the description on Wikipedia is unclear) < 1458644622 202408 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :bomb in bruxelles < 1458644646 12036 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :two bombs < 1458644653 969548 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :one in the airport and one in the subway < 1458644931 392681 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :what. now? < 1458644935 409999 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@massages-loud < 1458644935 540522 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :oerjan said 11h 3m 17s ago: tunnbröd is swedish not danish hth < 1458644935 540622 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :oerjan said 11h 2m 15s ago: you might substitute fladbrød instead hth < 1458644996 616341 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :oh fuck. < 1458645017 573277 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ais523: probably the role of hashing function has been reduced since the introduction of MD5/SHA-1/2. < 1458645043 661836 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well they're used for all sorts of things, requiring different levels of security < 1458645061 159300 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :yeah, but now we distinguish MACs from hash functions < 1458645064 818945 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's even an argument for using cryptohashes for hash tables < 1458645068 521693 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :(correctly) < 1458645075 262304 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :lifthrasiir: I was actually always wondering what the distinction was < 1458645145 619064 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :https://www.reddit.com/live/wmk50bsm9vt3 < 1458645222 204733 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :ais523: IIUC hash functions ensure the data integrity (that is, it is not tampered since the beginning of transfer) but not the authenticity (that is, it came from who we can or learned to trust before) < 1458645246 903634 :lifthrasiir!~lifthrasi@115.68.131.49 PRIVMSG #esoteric :MAC has an additional parameter for keys for that reason < 1458646251 669926 :boily!~alexandre@96.127.201.149 QUIT :Quit: POOL CHICKEN < 1458648356 687827 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :@tell hppavilion[1] The core language pretty much only has two features: products and "where". Everything else is going to be an extension. < 1458648356 855652 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458649219 809291 :AnotherTest!~turingcom@94-224-66-163.access.telenet.be QUIT :Ping timeout: 248 seconds < 1458649808 156652 :lleu!~gnomebad@unaffiliated/lleu QUIT :Quit: That's what she said < 1458650658 323938 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :argh! this stupid build system < 1458650666 757089 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :@messages < 1458650941 755082 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ACTION screams < 1458651163 570049 :ais523!~ais523@unaffiliated/ais523 QUIT : < 1458651178 249941 :vanila!~vanila@unaffiliated/vanila JOIN :#esoteric < 1458651182 864128 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :hello < 1458651210 955984 :Sgeo__!~Sgeo@ool-18e43ef5.dyn.optonline.net QUIT :Ping timeout: 244 seconds < 1458651318 364472 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :@tell < 1458651318 494876 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Who should I tell? < 1458651324 428914 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :@tell zzo38 i cant load your gopher :( < 1458651324 595175 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458652229 703767 :lynn!~lynn@unaffiliated/lynn JOIN :#esoteric < 1458654001 422832 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :idea: using the git commit hash as the version < 1458654004 58985 :lleu!~gnomebad@cpc15-croy20-2-0-cust489.croy.cable.virginm.net JOIN :#esoteric < 1458654004 189315 :lleu!~gnomebad@cpc15-croy20-2-0-cust489.croy.cable.virginm.net QUIT :Changing host < 1458654004 189382 :lleu!~gnomebad@unaffiliated/lleu JOIN :#esoteric < 1458654012 397271 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :izabera, bad idea not sortable < 1458654034 280618 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :good point < 1458654035 581085 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1458654040 875825 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :well < 1458654045 287030 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :it is sortable < 1458654052 182358 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :just not the obvious way < 1458654067 502977 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :true :P < 1458654574 296499 :AnotherTest!~turingcom@94-224-66-163.access.telenet.be JOIN :#esoteric < 1458654888 968904 :lambda-11235!~lambda-11@47.208.113.50 JOIN :#esoteric < 1458655307 299735 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :vanila: use the http access instead, at http://zzo38computer.org/textfile/miscellaneous/ < 1458655317 634520 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :unless you can't use http either that is < 1458655397 286354 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :but i want gopher < 1458655506 254471 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :what's the error if you try to access the gopher? < 1458655838 262329 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net JOIN :#esoteric < 1458656748 656641 :jaboja!~jaboja@ehh117.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1458658213 985966 :XorSwap!~XorSwap@wnpgmb016qw-ds01-214-177.dynamic.mtsallstream.net QUIT :Quit: Leaving < 1458658948 898034 :lambda-11235!~lambda-11@47.208.113.50 QUIT :Quit: Bye < 1458659018 300807 :p34k!~p34k@nat-wh-wz4-12.rz.uni-karlsruhe.de JOIN :#esoteric < 1458659641 311646 :jaboja!~jaboja@ehh117.neoplus.adsl.tpnet.pl QUIT :Remote host closed the connection < 1458661564 934952 :earendel!~earendel@unaffiliated/earendel QUIT :Ping timeout: 244 seconds < 1458661598 375769 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :According to http://magic.wizards.com/en/articles/archive/card-preview/basic-lands-shadows-over-innistrad-2016-03-21 , Shadows over Innistrad will have three arts for each basic land. Isn't it supposed to have four arts each, since it's a large set? < 1458662363 285026 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :hmm, the third island seems too colorful < 1458662528 457749 :bender|!benderpc@2404:e800:e61a:41d:147e:4d06:aa00:1dc9 QUIT :Quit: Leaving < 1458663469 817570 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :there's been some colorful islands already. < 1458665217 376971 :me2!~me@38.70.70.115.static.exetel.com.au QUIT :Read error: Connection reset by peer < 1458665428 987257 :me2!~me@38.70.70.115.static.exetel.com.au JOIN :#esoteric < 1458667036 962403 :lambda-11235!~lambda-11@24.156.46.20 JOIN :#esoteric < 1458668026 33445 :mihow!~mihow@50-206-98-70-static.hfc.comcastbusiness.net JOIN :#esoteric < 1458669327 976775 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458670180 270150 :jaboja!~jaboja@ejy175.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1458670309 998990 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net JOIN :#esoteric < 1458670801 467167 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :You know what'd be awesome? < 1458670816 649762 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :A hybrid between a proof assistant and a practical programming language < 1458670826 903834 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net PRIVMSG #esoteric :@messages-louder < 1458670827 34307 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :tswett said 6h 14m 30s ago: The core language pretty much only has two features: products and "where". Everything else is going to be an extension. < 1458671013 963743 :lambda-11235!~lambda-11@24.156.46.20 QUIT :Ping timeout: 240 seconds < 1458671305 934085 :lambda-11235!~lambda-11@24-156-46-20.erkacmtk02.com.dyn.suddenlink.net JOIN :#esoteric < 1458671427 971410 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 264 seconds < 1458671583 644702 :lambda-11235!~lambda-11@24-156-46-20.erkacmtk02.com.dyn.suddenlink.net QUIT :Ping timeout: 276 seconds < 1458672022 513135 :jaboja!~jaboja@ejy175.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 252 seconds < 1458672616 1586 :hppavilion[1]!~DevourerO@93-231-58-66.gci.net QUIT :Ping timeout: 264 seconds < 1458672924 10967 :earendel!~earendel@unaffiliated/earendel JOIN :#esoteric < 1458673010 537198 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org JOIN :#esoteric < 1458673100 83278 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07LABEL14]]4 N10 02https://esolangs.org/w/index.php?oldid=46631 5* 03FricativeMelon 5* (+2751) 10Created page with "'''LABEL''' is a programming language based on goto-like jumps and loops and whose memory consists entirely of how many jumps have been made. == Syntax == {| class="wikitabl..." < 1458673165 409420 :nycs!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1458673297 295055 :I!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1458673320 904835 :I!~nycs@gw.hq.meetup.com NICK :Guest11109 < 1458674047 692097 :Guest11109!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1458674086 886211 :nycs!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1458674425 297416 :jaboja!~jaboja@ejy175.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1458674810 456049 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458675089 422222 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 260 seconds < 1458675442 270899 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07Talk:Seed14]]4 N10 02https://esolangs.org/w/index.php?oldid=46632 5* 03Dittoslash 5* (+123) 10Created page with "possible seed that produces seed? ~~~~" < 1458675843 673504 :lambda-11235!~lambda-11@24-156-46-20.erkacmtk02.com.dyn.suddenlink.net JOIN :#esoteric < 1458675909 953572 :J_Arcane!~chatzilla@37-219-205-80.nat.bb.dnainternet.fi JOIN :#esoteric < 1458676201 944161 :Lilly_Goodman!~canaima@186-26-181-142.dyn.movilnet.com.ve JOIN :#esoteric < 1458676392 805046 :int-e!~noone@static.88-198-179-137.clients.your-server.de NICK :int-e_ < 1458676398 356787 :int-e_!~noone@static.88-198-179-137.clients.your-server.de NICK :int-e < 1458676596 772267 :lleu!~gnomebad@unaffiliated/lleu QUIT :Read error: Connection reset by peer < 1458676700 235742 :aloril_!~aloril@dsl-tkubrasgw1-54fa3f-129.dhcp.inet.fi QUIT :Ping timeout: 260 seconds < 1458676734 845153 :tswett!~tswett@192.241.237.138 QUIT :Ping timeout: 260 seconds < 1458676734 975564 :cnr!~connor@unaffiliated/conehead QUIT :Ping timeout: 260 seconds < 1458676800 394146 :Warrigal!~tswett@192.241.237.138 JOIN :#esoteric < 1458677022 53714 :cnr!~connor@2a01:4f8:201:7482::2 JOIN :#esoteric < 1458677024 462524 :cnr!~connor@2a01:4f8:201:7482::2 QUIT :Changing host < 1458677024 592877 :cnr!~connor@unaffiliated/conehead JOIN :#esoteric < 1458677132 208491 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458677140 877592 :lambda-11235!~lambda-11@24-156-46-20.erkacmtk02.com.dyn.suddenlink.net QUIT :Quit: Bye < 1458677522 326665 :aloril_!~aloril@dsl-tkubrasgw1-54fa3f-129.dhcp.inet.fi JOIN :#esoteric < 1458677669 212223 :Taneb!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b NICK :nvd < 1458678886 360473 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org QUIT :Ping timeout: 252 seconds < 1458679667 656272 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1458679806 200682 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 268 seconds < 1458679839 798187 :Lilly_Goodman!~canaima@186-26-181-142.dyn.movilnet.com.ve QUIT :Read error: Connection reset by peer < 1458679877 967620 :Lilly_Goodman!~canaima@181.34.123.2 JOIN :#esoteric < 1458680093 836451 :Lilly_Goodman!~canaima@181.34.123.2 PRIVMSG #esoteric :hola < 1458680114 638531 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :are you from venezuela < 1458680290 804330 :nvd!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :Phantom_Hoover, you can't just ask someone if they're from Venezuala < 1458680305 984258 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :but we get so many people from venezuela! < 1458680323 681108 :nvd!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :We also get a lot of people from Finland < 1458680342 142908 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :[wiki] 14[[07LABEL14]]4 10 02https://esolangs.org/w/index.php?diff=46633&oldid=46631 5* 03FricativeMelon 5* (+213) 10 < 1458680359 158811 :nvd!~Taneb@2001:41c8:51:10d:feff:ff:fe00:316b PRIVMSG #esoteric :We've in the past had a statistically improbably number of people from a small town in south west Northumberland! < 1458680408 862444 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover PRIVMSG #esoteric :why did we never make a `hexcome < 1458680505 661116 :nycs!~nycs@gw.hq.meetup.com QUIT :Quit: This computer has gone to sleep < 1458680529 644708 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org JOIN :#esoteric < 1458680598 159304 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :just do it < 1458680709 296047 :nooga!~nooga@public-gprs385291.centertel.pl JOIN :#esoteric < 1458681084 848742 :nooga!~nooga@public-gprs385291.centertel.pl QUIT :Read error: Connection reset by peer < 1458681277 774136 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458681439 15553 :I!~nycs@gw.hq.meetup.com JOIN :#esoteric < 1458681459 37597 :I!~nycs@gw.hq.meetup.com NICK :Guest25470 < 1458682705 123522 :p34k!~p34k@nat-wh-wz4-12.rz.uni-karlsruhe.de QUIT : < 1458682951 190407 :Guest25470!~nycs@gw.hq.meetup.com QUIT :Ping timeout: 268 seconds < 1458683108 713063 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :@ask tswett Wait, aren't functions going to be in the core of Quendle? They should be. < 1458683108 882084 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :Consider it noted. < 1458683579 278285 :Warrigal!~tswett@192.241.237.138 PRIVMSG #esoteric :User-definable functions... yeah, those will probably be in the core. < 1458683582 885163 :Warrigal!~tswett@192.241.237.138 NICK :tswett < 1458683592 516886 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I wonder if I have any new messages. < 1458683616 766727 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Probably not. After all, lambdabot would have told me, out loud, in the channel, if that were the case. < 1458683621 304488 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Oh, Warrigal, right < 1458683642 330943 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: What about the "is item of" operator? < 1458683669 752951 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :(traditional: ∈) < 1458683682 957560 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :I'm writing a mockup DiGraph library for Quendle based on my limited knowledge < 1458683692 286987 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :@slep tswett < 1458683692 417367 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :I'd rather not; tswett looks rather dangerous. < 1458683693 561097 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :e and ∈ look very similar in Neoletters < 1458683704 451933 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :pity :P < 1458683724 134253 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yeah, that'll be one of the operators. < 1458683727 858478 :int-e!~noone@static.88-198-179-137.clients.your-server.de PRIVMSG #esoteric :ACTION sidles home < 1458683748 453342 :p34k!~p34k@nat-wh-wz4-12.rz.uni-karlsruhe.de JOIN :#esoteric < 1458683864 887851 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: I'm trying to define subset of in my mockup, but I'm assuming Quendle is fully declarative. Does it have Haskell-style list building? < 1458683883 560172 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :So far there are no lists, only sets. < 1458683896 268472 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Or, for this, Set Building < 1458683924 51828 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :The features I've already described are kind of like Haskell-style set building. < 1458683928 618799 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :{f(x) : x ∈ s, ...} < 1458683932 560920 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Oh, right < 1458683952 334450 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: I presume Quendle has unicode support as an alternate to ASCII? < 1458683968 926162 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :So I can, if I please, literally use ∈ in my code? < 1458683971 996915 :Lilly_Goodman!~canaima@181.34.123.2 QUIT :Quit: (saliendo) < 1458683978 208765 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Quendle doesn't even support ASCII as such. < 1458683987 838848 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There's no way to say "I don't want the rest of Unicode". < 1458683991 314894 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: What does it support? EBDIC? < 1458683994 197195 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :Oh < 1458683995 473395 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :OK < 1458683998 582824 :Lilly_Goodman!~canaima@181.34.123.2 JOIN :#esoteric < 1458684020 730002 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Do you mean you can't exclude data to unicode strings, or that untypable characters are required to use the language? < 1458684042 53880 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Something like the former. < 1458684067 115099 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Given sets a, b, would a ∈ b return one of {True}, {False}, or {False, True} based on whether all items of a are in b? < 1458684080 287972 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :Basically, does ∈ work over sets? < 1458684092 240832 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I'll probably make that invalid for the time being. < 1458684106 430774 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: OK < 1458684116 926564 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: What do I do to test for subsetship? < 1458684122 361743 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I accidentally got my 2x2 in a certain interesting configuration. I went to this solver site to see if there was a particularly interesting algorithm to produce this configuration. < 1458684125 916328 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :Given a, b < 1458684144 733409 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I guess there's going to be an operator called "subset" or something. < 1458684161 856817 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: With alternative ⊂, I hope? < 1458684173 265054 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Turns out that yes, there's definitely a particularly interesting algorithm for this configuration. Namely: U F2 U2 R2 U < 1458684183 373382 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :hppavilion[1]: yup, I suppose that would also work. < 1458684204 470309 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: See, if the element-of operator works over sets (as mentioned above), you can do (non-strict) subset with !(False ∈ (a ∈ b)) < 1458684235 20975 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Yup. < 1458684259 722442 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which is why there's a subset operator—otherwise you'd have to do something like that. :) < 1458684271 579000 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Ah < 1458684285 117819 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :tswett: Is there a reduce operator? < 1458684287 606547 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :Oh, have to go < 1458684293 308433 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org PRIVMSG #esoteric :Be back on in a bit when I'm out of this room < 1458684305 824093 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Reduce, what would that be? < 1458684333 757743 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There are gonna have to be "all" and "any" operators that work on sets of booleans. < 1458684383 66412 :AnotherTest!~turingcom@94-224-66-163.access.telenet.be QUIT :Quit: ZNC - http://znc.in < 1458684432 107282 :izabera!~izabera@unaffiliated/izabera PRIVMSG #esoteric :!bf ,[>>+>>,]<<[[<<]>>[-[<]>>[.<<->]>+>>]<<]!foo1234bar < 1458684432 468873 :EgoBot!dlopen@libdl.so PRIVMSG #esoteric :No output. < 1458684438 148869 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Turns out the sequence I just gave is self-inverse. Let me investigate why that is. The sequence can also be written as (F2 U2 R2 U2)^U. < 1458684459 774189 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :F2 U2 R2 U2 is also self-inverse. < 1458684565 623321 :hppavilion[1]!~DevourerO@74-114-87-71.dynamic.asdk12.org QUIT :Ping timeout: 244 seconds < 1458684928 485701 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Let's see. Double that, you get F2 U2 R2 U2 F2 U2 R2 U2, which is, of course, R2^(F2 U2) R2^(U2). < 1458684967 282024 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Hm. < 1458685206 9419 :boily!~alexandre@96.127.201.149 JOIN :#esoteric < 1458685608 946305 :Sgeo__!~Sgeo@ool-18e43ef5.dyn.optonline.net JOIN :#esoteric < 1458685662 872885 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :`wisdom < 1458685693 250364 :HackEgo!~HackEgo@162.248.166.242 PRIVMSG #esoteric :ii/Ii is a municipality in Finland, no matter what you do. Except for speaking Swedish. < 1458685917 683680 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :nvd: whoa whoa whoa, who's that in -lens? < 1458686161 642063 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :hellochaf. you would've liked yesterday's Douteux. special pooches. < 1458686175 138389 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :pooches everywhere. pooches everytime. always pooches. < 1458686535 24605 :lynn_!~lynn@unaffiliated/lynn JOIN :#esoteric < 1458686676 971456 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I guess another way of saying that is: the involutions F2 and R2^U2 commute. < 1458686757 667189 :lynn!~lynn@unaffiliated/lynn QUIT :Ping timeout: 260 seconds < 1458686780 293867 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Which is not surprising: the effect of R2^U2 on the F layer is to swap two of its pieces. < 1458686838 130246 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net JOIN :#esoteric < 1458686914 652308 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :tswett: Back < 1458686918 24042 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Lemme look at algorithms for the opposite corner swap now. < 1458687133 702510 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Okay, this one looks pretty interesting: R U' R' U' F2 U' R U R' U F2 < 1458687218 275165 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It can also be written as: (U' F2 U')^(U'^R) U F2 < 1458687282 896371 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Swaps UBL and UFR. Never moves DBL. < 1458687475 859691 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Oh, but there's also another way of writing it. < 1458687558 722959 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :U'^R U' U^(F2 U' R) < 1458687622 240662 :APic!apic@apic.name PRIVMSG #esoteric :;) < 1458687732 886778 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :is there a bash program to print the nth command line argument out? < 1458687748 754224 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :like pi 3 a b c d would print c < 1458687773 782154 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Couldn't be hard to write a shell script to do that. < 1458687792 547988 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :thats not what im asking < 1458687830 966277 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :What do you mean by "a bash program"? You mean a program that you can run from bash? < 1458687845 777559 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :pikhq: pi 3 a b c would print b, would it not? < 1458687852 968263 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Whooops, vanila < 1458687858 154683 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Don't know how I messed that up < 1458687900 543870 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :I dont mind < 1458687925 403887 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :vanila: I know < 1458687936 579329 :Lilly_Goodman!~canaima@181.34.123.2 QUIT :Read error: Connection reset by peer < 1458687940 596243 :mad!boulam@69-165-212-148.cable.teksavvy.com JOIN :#esoteric < 1458687940 726439 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :vanila: But my point stands; pi 3 a b c should print b, not c < 1458687965 669306 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :madios would be a good portutation for mad < 1458687966 46942 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :ok < 1458687987 926037 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve JOIN :#esoteric < 1458688019 411077 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Did it. hppavilion[1]'s version. < 1458688027 230783 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :#!/bin/bash < 1458688027 361283 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :eval 'echo "${'"$1"'}"' < 1458688028 370545 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1458688032 878858 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :ACTION does a happy dance < 1458688039 699893 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :tswett: I thougt it'd be something like that, with $$ < 1458688054 819823 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I thought it'd involve $@ or whatever. < 1458688061 12086 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :tswett: WROOOOOOOONG < 1458688064 114041 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :Apparently < 1458688069 808602 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I looked at this: http://stackoverflow.com/questions/1497811/how-to-get-the-nth-positional-argument-in-bash < 1458688076 727513 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I decided I liked the "eval" solution the best. < 1458688104 503204 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah, bash < 1458688114 271351 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I thought it was Perl but $$ and $@ are unrelated in Perl < 1458688116 296074 :jaboja!~jaboja@ejy175.neoplus.adsl.tpnet.pl QUIT :Ping timeout: 246 seconds < 1458688140 835974 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :http://www.agner.org/optimize/instructionset.pdf "Proposal for an open standard instruction set" What do you guys think of this? < 1458688141 803766 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :other than that they're both punctuation variables < 1458688198 303205 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :eval is dangerous < 1458688211 31718 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :its a nice hack but not safe < 1458688212 487465 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: /me looks < 1458688250 142696 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's still assuming that processors work much like today's processors :-( < 1458688273 613612 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't like that assumption; I think we'd have moved on to different processor architectures long ago if not for backwards compatibility < 1458688355 152433 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :what do you think processors would look like if they weren't stuck with backwards compatibility? < 1458688357 518261 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :What's wrong with x86 and ARM? < 1458688383 574402 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :x86's worst sin IMHO is byte-sized instruction size granularity < 1458688400 564928 :jaboja!~jaboja@ejy175.neoplus.adsl.tpnet.pl JOIN :#esoteric < 1458688404 160944 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :with very complex determination of instruction length due to prefixes etc < 1458688453 584101 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: I think they'd allow for more dynamic parallelism and aliasing behaviour < 1458688483 775851 :nooga!~nooga@91.235.25.1 QUIT :Ping timeout: 248 seconds < 1458688486 180608 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Proposal: all instructions are encoded as UTF-8. < 1458688488 613580 :nooga_!~nooga@public-gprs385134.centertel.pl JOIN :#esoteric < 1458688548 278488 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that only goes up to 31 (32?) bits even if generalized, though < 1458688550 537054 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : that means that they wouldn't have strictly ordered memory loads/stores? < 1458688552 818369 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and dos so quite inefficiently < 1458688567 499427 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: most processors don't even now, x86 is weird in that regard < 1458688573 363085 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :well < 1458688583 948071 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :I mean strictly ordered from the view of a single thread < 1458688621 513515 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :Ie irl it's out-of-order but from the view of the instruction sequence, loads/stores happen in-order < 1458688679 103163 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, I think threads need to be /really/ cheap < 1458688699 128597 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so that if you write "a = 1; b = 2" you can run those in separate threads to gain a little performance < 1458688705 50519 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :assuming a and b don't alias < 1458688719 119622 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :hmm, that's interesting < 1458688726 219649 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :how would you do it? < 1458688803 218899 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :completely change how OS's schedule threads? (considering that right now, schedulers are basically hostile to short lived threads) < 1458688813 927202 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve QUIT :Ping timeout: 244 seconds < 1458688819 87755 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not sure yet < 1458688828 144428 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you'd need some lightweight method of specifying fork/join directly in the asm < 1458688834 664739 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there are a few possibilities < 1458688858 552972 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I believe the processor would schedule threads in hardware on a small scale, and ask the OS for help only when there were too many to fit on the processor < 1458688879 841526 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :swapping in and out entire processes if possible, and groups of threads if the processes didn't fit < 1458688889 673497 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I was thinking about threads while I was doing that OS in Rust. < 1458688906 808173 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : hmmm < 1458688926 922999 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve JOIN :#esoteric < 1458688980 462011 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I had a thread-switching method (which I never tested) that was pretty simple. < 1458688987 402866 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : maybe you could have inactive cores be placed in a pool that can be instantly allocated by the currently running "most important process" (presumably, the process 'on front' in a windows-style scheduler that priorizes GUI programs) < 1458689007 553817 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Push all registers. Change the stack pointer to something else. Pop all registers. < 1458689016 703499 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :and if it has available cores in that pool, the "asm fork/join" is fast < 1458689040 25066 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: well, the cpu already *sort of* does that, as long as you're content with the threads using the same register set, it runs the threads in parallel only if there's no unpredicted branch or other difficult instruction in them, and on x86 the memory access instructions between those threads aren't reordered. < 1458689042 206432 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Here's a thought. Make it so you can pretty much have an unlimited number of threads going at once. < 1458689064 736186 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: yes, x86 internal design is moving in the direction of trying to convert code into that form automatically via static analysis < 1458689078 742052 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is one of the reasons that x86es are so hellishly complicated < 1458689114 225638 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : that being said, if programs are going to expose parallelism through threading, there are already good designs oriented around that (current generation of SPARCs heavily bank on this) < 1458689119 972897 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1458689131 552545 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :There's a thread queue. The processor repeatedly grabs the first 16 of those threads, executes a bit, and puts them all back on the queue. < 1458689156 569646 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :tswett: probably it should grab the first 16 runnable threads < 1458689158 187801 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: I imagine a cpu could have "hint" style thread fork and join instructions, which try to run a jump in a separate lightweight thread if it can, otherwise just run them one after the other. sort of like how the x86 transactional instructions are "hint" style: there's an easy mapping to trivial instructions the cpu can always fall back to in difficult cases. < 1458689161 78521 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :using some sort of method to determine runnability < 1458689171 878307 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: as in, these instructions would be jumps, not nops. < 1458689208 998578 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :I think it's weird how CPUs go to a humongous amount of effort to execute each instruction. < 1458689239 404268 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :although they'd have to be very careful about what happens to the registers < 1458689260 518400 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :like, if you know your typical workload is going to have >10 threads, you can basically give up the current generation of CPUs, go towards something simple like an early ARM (in-order 1 or 2 instructions per cycle), add hyperthreading and lots of cores < 1458689293 387033 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :It seems like it would be better to move the complexity from the CPU into the compiler. < 1458689295 237599 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :and then your main design problem becomes cache line coherency between 10's of cores < 1458689330 647729 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: "x86 internal design is moving in the direction of trying to convert code into that form automatically via static analysis" -- it's not really static analysis, it happens mostly dynamically a few instructions ahead I think. also, it's not only x86 that's doing that, but some other modern cpus like arm < 1458689351 531624 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Like, maybe you could make it so that each CPU has its own instruction set, and there's just a small common core supported by the entire family. < 1458689402 580286 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :"It seems like it would be better to move the complexity from the CPU into the compiler." => that was the idea of ia64. it failed because business only wants a cpu that can run the software they write NOW faster, rather than a cpu that will run the software you develop 8 years in the future faster. < 1458689420 799143 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :tswett : main problems with that is that it's hard for a compiler to guess which memory loads will land in L1 cache and which ones are going to land in L2 cache < 1458689421 512565 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: this is why aliasing needs to be efficient too < 1458689429 101021 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: we've discussed this before in #esoteric < 1458689433 847397 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(that's why x86 and arm are so bundled with historical compatibility.) < 1458689440 456428 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :other theories as to why it failed include "the concept was a good idea, but the actual implementation was insane" < 1458689451 277968 :APic!apic@apic.name PRIVMSG #esoteric :ACTION thought Itanium was the Approach with static Analysis. < 1458689459 488892 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and "it was released before someone had produced a good compiler for it" < 1458689465 139407 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: I don't know, luckily I don't know much about ia64. it might have failed for other reasons too. < 1458689466 473352 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :I don't think itanium failed because lack of x86 compatibility < 1458689479 512485 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently, many compiler vendors put out a "minimum that works" compiler rather than one that did the analysis properly < 1458689495 765452 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that was excessively cautious to the point of absurdity < 1458689496 89740 :tswett!~tswett@192.241.237.138 PRIVMSG #esoteric :Then each CPU also has some machine-readable description of its instruction set (good luck with that) which compilers can use to produce something actually, like, fast and good. < 1458689522 530411 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :what really killed itanium is that they could never get it to really be faster than x86 < 1458689535 99063 :APic!apic@apic.name PRIVMSG #esoteric :Yah. < 1458689549 671733 :lambda-11235!~lambda-11@47-208-113-50.erkacmtk03.res.dyn.suddenlink.net JOIN :#esoteric < 1458689559 315018 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :except maybe for floating point but itanium was mainly used in servers so good floating point perf was useless in that setting < 1458689584 547634 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :floating point on servers isn't unheard of, but they tend to be pretty specialized servers < 1458689590 651814 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :often computation-as-a-service < 1458689606 807161 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: did ia64 have a cpu software architecture (that is, instruction set) that made sense now but would not have made sense 6 years later, like the delay slots in MIPS? < 1458689608 362934 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if you're going to run code that's not numerically heavy, then there are really only 2 designs < 1458689619 915237 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve QUIT :Ping timeout: 244 seconds < 1458689624 392110 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: I don't think it made sense even at the time < 1458689627 701252 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :hehe < 1458689628 591000 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ok < 1458689632 165635 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so many weird edges < 1458689642 472787 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :(1) the load is threadable: SPARC (as many simple cores as possible on a chip) < 1458689643 773768 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :ais523: Why not have a programming language with one instruction: Upload the following string to a server via HTTP and execute it in some minimal language < 1458689656 820005 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :1-instruction RISC TC < 1458689673 115854 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :(No one bring up RSSB or SUBLEQ, as those aren't RISCs) < 1458689679 378595 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric :SUBLEQ < 1458689686 525986 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :vanila: I hate you. < 1458689689 929774 :vanila!~vanila@unaffiliated/vanila PRIVMSG #esoteric ::-) < 1458689693 520696 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hppavilion[1]: Last ReSort? < 1458689713 909276 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :(2) the load is not threadable: humongously complex out-of-order cpu in the style of the Haswell and all PentiumPro descendents. This is what intel is good at, and what x86 is less disadvantaged at (basically, intel wins). < 1458689736 300587 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :so that language is basically another language < 1458689737 788028 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :great < 1458689738 742165 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :one instruction that takes no arguments, unknown TCness < 1458689741 453651 :myname!~myname@84.200.43.57 PRIVMSG #esoteric :also, see IRP < 1458689744 220141 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :I want to make a language that looks like an ASM, but has subtle high-level mathematical features < 1458689751 534828 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :For example, you can mutate the IS < 1458689781 465650 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :Itanium failed because it can't delay part of the instruction stream if one load falls into L2 instead of L1 < 1458689791 291334 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: well the situation nowadays is that most loads /are/ threadable but people don't thread them because it wouldn't gain on x86 < 1458689814 71256 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for example, in general, there's no reason why a compiler can't optimize all functions in parallel, but I'm not aware of any compiler that does < 1458689820 814029 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if they are threadable, they WOULD gain on x86 no? < 1458689828 889752 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :not by enough for people to care < 1458689857 762825 :coppro!raedford@taurine.csclub.uwaterloo.ca PRIVMSG #esoteric :mad: when you say "delay part of the instruction stream" you mean to skip ahead to executing non-dependent instructions? < 1458689867 829328 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :I think there are plenty of reasons why a compuiler can't optimize all functions in parallel < 1458689870 267459 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(fwiw, Last ReSort's instruction is "p = (*p)++") < 1458689876 884037 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :coppro : basically yes < 1458689892 167807 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :coppro: there are various ways to view the same thing, that's one way to explain it < 1458689908 578894 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :incidentally, this is also an operation that GPUs are good at < 1458689908 962200 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve JOIN :#esoteric < 1458689921 893996 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in GPU programming, reading/writing main memory is something you do explicitly, normally in a multithreaded way < 1458689928 825262 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the threads get suspended while they're waiting for the value to turn up < 1458689929 403295 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :in a PentiumPro-descended cpu, each cycle it finds the earliest instructions in the instruction stream that are "ready to execute" < 1458689945 286150 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(main GPU memory, that is; the alternative is block memory, which is basically your cache) < 1458689954 82246 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(except it's managed explicitly) < 1458689962 80486 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if you have one load that unexpectedly falls in L2 or RAM or has a TLB miss then it keeps doing pretty much everything that doesn't depend on that load < 1458689962 544158 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: that's the good situation. the bad situation is when people care too much about threading, and prematurely implement all their small functions to use threads, when they will actually want to run so many of the whole high level processes at the same time anyway that just the non-idle high level processes alone are enough for as much threading as the hardware can do, and the low-level threading just makes everything slower. < 1458689980 461088 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :\ when they will actually want to run so many of the whole high level processes at the same time anyway that just the non-idle high level processes alone are enough for as much threading as the hardware can do, and the low-level threading just makes everything slower. < 1458690000 492141 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: well the extreme case is that you use reconfigurable hardware, and quickly throw up a hardware implementation of your low-level code that has all the forks as literal forking wires < 1458690008 93046 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(this is basically what my day job is about) < 1458690032 177757 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: as in an FPGA array? < 1458690035 691717 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :considering that chips have more and more dark silicon, a scenario similar to this will probably play out < 1458690036 980230 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: right < 1458690039 685284 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I see < 1458690047 138400 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: that's definitely not what _my_ dayjob is about < 1458690059 886843 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: "dark silicon" = components that aren't being used for anything at that moment? < 1458690062 385587 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I may use ordinary threading for my dayjob, when it's necessary, but no FPGA stuff < 1458690065 347471 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ARMs already have cheap in-order cores and expensive out-of-order cores on the same chip < 1458690068 153979 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :@metar FPGA < 1458690068 655378 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :No result. < 1458690075 642854 :boily!~alexandre@96.127.201.149 PRIVMSG #esoteric :meh. would've been nice. < 1458690079 758159 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : sections of the chip that are literally powered down < 1458690101 628526 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : because the chip can only output so much heat so it dynamically selects which parts to power down < 1458690124 31073 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that's one way to deal with heat dissipation issues, I guess < 1458690173 307264 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: a specific case I met is ffmpeg automatically choosing to encode a video using about as many parallel threads as the machine has hardware threads, which was like 24 on a server, and I was running about 16 video encoders in parallel, < 1458690187 390901 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :you could have a cpu with one complex out-of-order core, and tons of simple in-order cores < 1458690198 536333 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if your load is threaded it uses the in-order cores < 1458690203 247926 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :so not only did the threading now speed up the encoding, it also ran out of memory because using multiple threads in the encoder requires more memory. < 1458690203 790337 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :mad: that's basically whta a CPU+GPU combination is < 1458690219 145299 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :b_jonas: why not just run them in series? < 1458690232 716150 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : well, gpu is a different thing < 1458690245 491134 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :This was a silent bug on the workstation I tested, because that computer had only like 4 cpus, so it was unexpected on the server. < 1458690258 169638 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: the incoming data was generated in parallel < 1458690259 91634 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :gpu is used for very different things than sparc-style "tons of in-order cores" < 1458690263 268142 :nooga_!~nooga@public-gprs385134.centertel.pl QUIT :Read error: Connection reset by peer < 1458690285 796569 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :anyway, I think FPGA implementations of C-like software typically have less heat output per transistor than CPU implementations < 1458690288 859952 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :Once I realized what was wrong, it's easy to solve: there's an option to explicitly tell the number of threads to use. < 1458690298 723520 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :because which parts of the chip are in use depend on the instruction pointer < 1458690303 299164 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :GPUs work because they run very numerical code that does tons of floating point multiplications < 1458690329 561012 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :ais523: sure, but such implementations are more difficult to create < 1458690330 332310 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :and also GPUs work because the memory writing patterns are known beforehand < 1458690348 334501 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve QUIT :Excess Flood < 1458690378 362311 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :ais523 : oh? I've never seen stuff like that actually < 1458690384 164527 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve JOIN :#esoteric < 1458690393 268997 :oerjan!~oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric : \ when they will [...] <-- none of that actually got cut off in the first place hth < 1458690451 573921 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :oerjan: I can't count bytes together with irc headers in my head then < 1458690452 898932 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve QUIT :Excess Flood < 1458690473 957137 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :I just guesstimate it < 1458690486 457139 :Lilly_Goodman!~canaima@181-18-69-117.dyn.movilnet.com.ve JOIN :#esoteric < 1458690590 988339 :nooga!~nooga@91.235.25.1 JOIN :#esoteric < 1458690685 311894 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :I think that if you designed a cpu for running standard single-threaded C++ code, it would probably be very similar to a MIPS even now < 1458690710 421297 :digitalcold!~redacted@192.73.232.206 QUIT :Quit: Reconnecting < 1458690717 265553 :digitalcold!~redacted@192.73.232.206 JOIN :#esoteric < 1458690774 981315 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mad: that was backwards. cpus were like MIPS when C was born, and C was designed to be easy to compile so originally C contained only such operations as builtins that the cpu can do easily. < 1458690809 155279 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :possibly with some concessions to either CISC (ie something like an AMD Athlon but without the x86 encoding insanity), or some concessions to VLIW, or concessions to both (ARM is basically a mix of all 3 philosophies) < 1458690866 764556 :p34k!~p34k@nat-wh-wz4-12.rz.uni-karlsruhe.de QUIT : < 1458690868 37088 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :(That's before C gained support to copy struct values.) < 1458690914 823201 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :b_jonas : cpus were more like x86 when C was born no? < 1458690923 914348 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :rather than mips < 1458690943 391716 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mad: same thing at that level. consider the 8086, not the modern x86. < 1458691014 257717 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :dunno, I think the 8086 has lots of weird stuff that doesn't translate well to C < 1458691019 660452 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :like segment registers < 1458691042 928754 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :multiple aliases of the same register with different sizes (AL, AH, AX, later EAX) < 1458691051 10050 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :weird instructions like XLAT < 1458691061 354953 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :string manipulation instructions < 1458691154 939938 :hppavilion[1]!~DevourerO@58-0-174-206.gci.net PRIVMSG #esoteric :https://www.youtube.com/watch?v=pxh-Hjj8T9o < 1458691159 914815 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if you look at other architectures of the time, they're even less C-like < 1458691166 844947 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :like the 6502 or the z80 < 1458691179 614100 :mad!boulam@69-165-212-148.cable.teksavvy.com PRIVMSG #esoteric :if C was made for those, it would have a zero page < 1458691184 86520 :b_jonas!~x@russell2.math.bme.hu PRIVMSG #esoteric :mad: but those cpus aren't what C was ran on