< 1563840722 645105 :b_jonas!~x@catv-176-63-24-25.catv.broadband.hu QUIT :Quit: leaving < 1563843002 156567 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1563844621 620638 :adu!~ajr@pool-173-73-86-145.washdc.fios.verizon.net QUIT :Quit: adu < 1563845988 398097 :MDude!~MDude@76.5.108.106 QUIT :Ping timeout: 244 seconds < 1563848034 357073 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563849006 181685 :moony!moony@hellomouse/dev/moony QUIT :Quit: Bye! < 1563849047 202392 :Bowserinator_!Bowserinat@hellomouse/dev/Bowserinator JOIN :#esoteric < 1563849063 239763 :moony!moony@hellomouse/dev/moony JOIN :#esoteric < 1563849166 570599 :Bowserinator!Bowserinat@hellomouse/dev/Bowserinator QUIT :Ping timeout: 272 seconds < 1563849271 583865 :Bowserinator_!Bowserinat@hellomouse/dev/Bowserinator NICK :Bowserinator > 1563849445 316816 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64621&oldid=64620 5* 03A 5* (+272) 10/* Collaboration Request */ < 1563849535 543954 :xkapastel!uid17782@gateway/web/irccloud.com/x-ifxmkoqjbtzbfcqt QUIT :Quit: Connection closed for inactivity < 1563849573 508931 :adu!~ajr@pool-173-73-86-145.washdc.fios.verizon.net JOIN :#esoteric > 1563849719 12058 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64622&oldid=64621 5* 03A 5* (+577) 10/* Collaboration Request */ > 1563849851 742353 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64623&oldid=64622 5* 03A 5* (+53) 10/* Collaboration Request */ > 1563850086 659772 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64624&oldid=64623 5* 03A 5* (+0) 10/* Collaboration Request */ terrible grammar > 1563850524 37515 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64625&oldid=64624 5* 03Areallycoolusername 5* (+292) 10/* Collaboration Request */ > 1563850691 840337 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64626&oldid=64625 5* 03A 5* (+269) 10/* Collaboration Request */ > 1563850838 105073 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64627&oldid=64626 5* 03A 5* (+530) 10/* Collaboration Request */ > 1563851022 670410 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64628&oldid=64627 5* 03A 5* (-16) 10/* Collaboration Request */ > 1563851344 951386 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03Tokitoki 5* 10New user account > 1563854746 948957 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64629&oldid=64628 5* 03Areallycoolusername 5* (+1085) 10/* Collaboration Request */ > 1563854765 528606 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64630&oldid=64629 5* 03Areallycoolusername 5* (+116) 10/* Collaboration Request */ > 1563855305 523654 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64631&oldid=64630 5* 03Areallycoolusername 5* (+48) 10/* Collaboration Request */ < 1563855326 326517 :tromp!~tromp@ip-213-127-56-55.ip.prioritytelecom.net JOIN :#esoteric > 1563855329 748580 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64632&oldid=64631 5* 03Areallycoolusername 5* (-2) 10/* Collaboration Request */ < 1563855483 905341 :tromp_!~tromp@2a02:a210:1585:3200:142d:9304:1a2c:a484 QUIT :Ping timeout: 264 seconds > 1563855605 810870 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64633&oldid=64632 5* 03A 5* (+321) 10 > 1563856705 312113 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64634&oldid=64633 5* 03A 5* (+254) 10/* Collaboration Request */ < 1563856901 172511 :FreeFull!~freefull@defocus/sausage-lover QUIT : > 1563856991 906683 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64635&oldid=64634 5* 03A 5* (+275) 10/* Collaboration Request */ > 1563857436 840221 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64636&oldid=64635 5* 03A 5* (+275) 10/* Collaboration Request */ > 1563857911 55120 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64637&oldid=64636 5* 03A 5* (+222) 10/* Collaboration Request */ < 1563858708 306478 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :https://twitter.com/zeuxcg/status/1153530252942950400 < 1563858711 124721 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: Do you like this? < 1563858729 73371 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :this = \rainbow{C++} < 1563858912 335915 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :meh < 1563858961 485190 :iconmaster!~iconmaste@2604:6000:b184:5c00:6dde:82dc:3979:de07 JOIN :#esoteric < 1563858978 869721 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: i saw a good cat < 1563858983 159613 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :good cats are tg < 1563859000 875721 :quintopia!~quintopia@unaffiliated/quintopia PRIVMSG #esoteric :bad cats are cursed > 1563859208 556173 PRIVMSG #esoteric :14[[07Seabass14]]4 10 02https://esolangs.org/w/index.php?diff=64638&oldid=64610 5* 03JonoCode9374 5* (+29) 10/* Examples */ < 1563859252 281926 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :cool < 1563859265 160507 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I saw a big, fat orange cat in our backyard today < 1563859326 978218 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :lucky < 1563859330 231149 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Ping timeout: 246 seconds < 1563859695 63750 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yes < 1563859697 34898 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I suppose so < 1563860349 319799 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1563860479 74729 :sprocklem!~sprocklem@unaffiliated/sprocklem QUIT :Client Quit < 1563860808 529583 :sprocklem!~sprocklem@unaffiliated/sprocklem JOIN :#esoteric < 1563864018 210162 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net JOIN :#esoteric < 1563864032 37178 :Frater_EST!~adrianbib@wsip-68-15-198-210.ok.ok.cox.net PART :#esoteric > 1563865056 324585 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64639&oldid=64637 5* 03A 5* (+298) 10/* Collaboration Request */ < 1563866588 816233 :zzo38!~zzo38@24-207-15-213.eastlink.ca QUIT :Ping timeout: 245 seconds < 1563866591 870571 :shachaf!~shachaf@unaffiliated/shachaf QUIT :Ping timeout: 245 seconds < 1563866609 632274 :shachaf!~shachaf@unaffiliated/shachaf JOIN :#esoteric < 1563867663 486247 :iconmaster_!~iconmaste@2604:6000:b184:5c00:64ae:c2ba:d6ff:28a9 JOIN :#esoteric < 1563867925 598410 :iconmaster!~iconmaste@2604:6000:b184:5c00:6dde:82dc:3979:de07 QUIT :Ping timeout: 276 seconds < 1563868386 494764 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 248 seconds < 1563868621 167647 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric > 1563871017 417357 PRIVMSG #esoteric :14[[07Seabass14]]4 10 02https://esolangs.org/w/index.php?diff=64640&oldid=64638 5* 03JonoCode9374 5* (+39) 10/* Truth-machine */ > 1563871130 39966 PRIVMSG #esoteric :14[[07Seabass14]]4 M10 02https://esolangs.org/w/index.php?diff=64641&oldid=64640 5* 03JonoCode9374 5* (-25) 10/* Examples */ Formatting < 1563871689 379172 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1563872042 241306 :arseniiv!~arseniiv@136.169.234.37 JOIN :#esoteric < 1563872521 512398 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be JOIN :#esoteric < 1563875005 321171 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Good morning. To answer Taneb's question of yesterday: yes, function types appear to have the same structure as state transitions. < 1563875048 521518 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Inputs to state machines are a little weird: an input is a named, overloaded function. < 1563875099 696582 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And I should stress this is just a structural similarity. There is a huge, uh, semantic gap here. Types are static things, but state machines are quite dynamic. < 1563875271 722392 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Do type systems based on algebraic data types even usually support overloaded functions (e.g. a la Java)? < 1563875301 876711 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm not sure I've ever seen one. < 1563875973 219728 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Does Haskell's typeclass-based polymorphism count? < 1563876287 520500 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1563876354 871640 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: rust technically has overloaded methods of the same name, and it has an algebraic type system, but the type inference is a bit weird and incoherent < 1563876373 899273 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :No sorry, not incoherent, as in, it's not supposed to prove impossible things, < 1563876413 488060 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I mean inconsistent, as in you can't guess what it will be able to infer and what you must explicitly annotate, and this can even change so you have to add new annotations when you add new methods. < 1563876456 792367 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Standard ML also has a few built-in operators that are overloaded, but you can't define new functions of that sort. < 1563877022 793525 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I can well imagine that function overloading does not play nicely with HM-style type inference. < 1563877050 550612 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :(I want to like Rust, but it's really hard.) < 1563877157 749648 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: rust's name resolution rules are, in general, really strange to me < 1563877176 567152 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why do you want to like Rust? Or: Why is it hard? < 1563877244 838989 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it seems like they were originally designed well, but then they wanted to make them a little more capable than they can be with reasonable rules, and because of that they had to add all sorts of magic in it to work at all < 1563877345 431470 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :besides the method lookup, there's parts where if it has to look for a name among multiple modules, it will ignore sorts of names that don't make sense syntactically (not by type, but by sort as in const, static, enum constructor, struct constructor, function etc) < 1563877428 613898 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and there's the ugly part about matching to a name where it can either bind to a new local name or use a constructor with no arguments, and the only thing that stops typoes in constructor names to cause silent errors is that there are warnings if you don't name a constructor in upper case or a local variable in lower case. < 1563877471 244454 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, to be more honest, I *used* to want to like Rust. I have since given up. < 1563877495 74063 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: I still like rust, but still in the future sense that it will "soon" become a good language < 1563877498 202029 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I have a hard time liking a language with no specification that makes we write a file called "Cargo.toml" in order to use it < 1563877534 677489 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: oh, you don't have to use cargo. that part is full of shit, ignore it < 1563877537 953076 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :just call the compiler directly < 1563877554 18481 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and if the javascript people tell you that you have to get packages from nodejs, ignore those too, < 1563877578 810354 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :as well as the C or C++ people who tell you to use their favourite overengineered build system < 1563877613 565802 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the package repository is the sort of stupid dependency hell with low quality packages, you should ignore most of that < 1563877659 229753 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I am also amused by the fact that Haskell apparently has two package systems these days < 1563877673 851739 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and don't use cargo, except perhaps in as much as you need it to build existing good rust projects that use cargo, most importantly the rustc compiler < 1563877693 554920 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: that's normal. it'd be bad if a language or compiler tied you to a package system < 1563877765 274202 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, my point is not really about package systems, it's more about community, I suppose. Although it's also true that I believe you shouldn't judge a language by its community. < 1563877799 361106 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :What languages do I actually *like*, anyway? < 1563877806 147548 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ACTION thinks < 1563877934 531069 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Taneb: sorry, didn't see that. Typeclasses sort of count. But the set of state machines where the transitions only work like that would be - restricted. Not sure what the implications would be. < 1563877966 699828 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: yeah, that would be a good question. if you can tell what languages you like and what you like in them and what you don't like, that might help tell if rust is useful for you < 1563878013 874578 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :C++ has overloaded functions, of course, but no real algebraic type system < 1563878161 768596 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I once tried to read an article about how to implement a linked list in Rust. It made it sound like utter hell. It also started out with a lengthy argument about how linked lists are a "niche data structure" that no one really uses. < 1563878300 263768 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man, are there any good languages? < 1563878315 715892 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: what kind of linked list? the mutable one or the immutable haskell list one? the latter is trivial to implement. for the former, there are a lot of nontrivial decisions you have to make about the interface in any language if you try to make one, but once you decide what interface you really want it to have, it's not hard to implement. < 1563878365 378907 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the problem only comes from conflicting expectations if you believe those rust evangelists who tell you that you have to write a safe (in the rust sense) interface for everything, and at the same time want to have an interface that is impossible to do that way. < 1563878372 100847 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think non-intrusive linked lists should probably be pretty niche in a langauge like Rust. < 1563878382 784235 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh yeah, non-intrusive < 1563878406 151653 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :admittedly intrusive would be _even_ harder to write in rust than in C++, and that you can call a genuine drawback. < 1563878489 444758 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but since you can have algebraic types generically parametrized by types, you can use non-intrusive lists in a reasonable way, generic over their content type < 1563878490 883390 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: I think you might have hit the nail on the head with the conflicting expectations thing. < 1563878553 643128 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I can try to dig up the article if anyone is really interested. < 1563878568 484823 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :as for the community, you're on the internet, you have to prepare yourself to evangelists that seriously try to tell you overstatements, such as that rust can do anything that C can do (rust is pretty close for most practical applications, but it's not entirely true), or that you should always use safe rust because you can do anything in safe rust, < 1563878579 247183 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :But it was almost certainly referring to intrusive linked lists, yeah. < 1563878581 571556 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :etc. < 1563878647 827233 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: I suspect that statement is referring to non-intrusive linked list with a hypothetical interface that is safe but lets you do all unsafe mutating operations safely, like somehow magically figure out that you aren't using a pointer to a freed node. < 1563878671 150168 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it's not possible to have such an interface to arrays either, neither in rust, nor in any language. < 1563878676 555592 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Found it. https://rust-unofficial.github.io/too-many-lists/ < 1563878703 662525 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I think it has changed slightly since I first read it < 1563878724 100283 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"Just so we're totally 100% clear: I hate linked lists. With a passion." < 1563878729 813939 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That hasn't changed < 1563878760 420602 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh, and another lie you shouldn't believe is that you can have any abstraction for zero runtime cost. again there rust gets you closer than many languages, perhaps better in some areas than C++ and worse in others. < 1563878770 767378 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Okay, note to self: stop reading things on the Internet < 1563878777 786474 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :no no < 1563878784 826408 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you should read them, just don't believe them < 1563878791 231751 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Only scans of compsci papers from before 2002 < 1563878803 317563 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why read things that are mostly nonsense and written by nonsense people and will make you sad? < 1563878823 919331 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: to find the few gems that aren't mostly nonsense < 1563878839 283541 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why don't you find those gems, and email them to me. < 1563878845 67585 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Then I won't have to read anything else. < 1563878854 461341 :MDude!~MDude@76.5.108.106 JOIN :#esoteric < 1563878930 739742 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: because you shouldn't believe what I say too about which ones are gems < 1563878969 147856 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Of course. I also don't believe that I should read them. < 1563879006 563455 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I do sometimes link stuff on irc, but most of those are nonsense too < 1563879031 354857 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :One of the Rust things that seems to be an attitude is that the experts will write data structures or whatever, and they'll use "unsafe" and so on, but then regular humans like you and me won't do that. < 1563879052 89431 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I feel like that's not so great in a systems language, where often your thing shouldn't be decomposed into a bunch of prepackaged data structures. < 1563879073 230286 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Instead your whole program is the fancy data structure, and you're the expert. < 1563879085 132857 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe I'm overstating it. < 1563879109 856346 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I feel this would all make more sense if the thing had a specification < 1563879120 494408 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: no no. if you want to have runtime efficiency, you should use unsafe, but learn its rules. if you want to write high-level programs like you write in safe haskell or perl and mostly don't care about efficiency, then don't use unsafe. and you can use unsafe only for the loops that you have to optimize. < 1563879128 502698 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Because without a specification how can I write a proof that it is safe? < 1563879151 49554 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Where do I refer to for the definitions of the things in my proof? < 1563879166 780344 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And if I have no proof, on what basis do I say it's safe? < 1563879176 110959 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: yes, that's a bad part, it's hardly documented, they haven't quite figured out all the unsafe rules yet. mind you, people can't figure out all the rules of memory access in C either, not even for single-threaded. < 1563879210 367586 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :there's some documentation, but it's often unclear, because nobody likes to write documentation, so sometimes you have to ask on irc for people who understand the thing to clarify. < 1563879608 979953 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :To be clear, I do like many of the ideas Rust is based on, and I think it's probably a better choice than C++ for a lot of projects (although that's partly because I detest C++). < 1563879669 96193 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'd prefer a language that's a better choice than C. < 1563879741 792546 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: I haven't read that whole article, but it seems bizarre to me that doubly linked lists would be a problem because they want each node owns the next node or something. < 1563879743 327161 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I often use high-level languages and I rarely need to care about performance. When I do need to care about performance, it is rarely at the level where using unsafe operations would make a difference. < 1563879758 201987 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I imagine that instead you'd have some other thing that owns every node in the list. < 1563879780 271515 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think the style of writing C and C++ where pointers are conflated with ownership isn't that great. < 1563879968 315111 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: I'm not sure how much Rust improves over C++ in that regard. I've had it described to me that Rust works this way because it implements RAII "properly" (implication being that C++ does not). < 1563880017 147717 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I would rather just have a garbage collector and not have to worry about my objects having a deep understanding of how to acquire what they need when they are allocated < 1563880049 374070 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Also this person is saying odd things like "a bunch of pieces of data on the heap (hush, kernel people!)" as if the heap isn't a fake idea. < 1563880086 156988 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean: Linked list nodes can be wherever I want them to, that's the point. < 1563880114 747660 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :cpressey: Oh, well, it sounds like you could use almost any programming language made in the last few decades. Why Rust? < 1563880126 287695 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: rust does improve on the C++ rules in that it allows better low-level runtime optimizations. if you don't want that, then sure, allocate everything separately and garbage-collect or reference count everything. sometimes that is worth, and you can have at least the reference counting reasonably in rust, probably could do a proper gc too th < 1563880126 859587 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ough I'm not sure about that. < 1563880128 361258 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :shachaf: Why indeed? < 1563880176 779686 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :You can do the reference count everything stuff in rust about as well as in modern C++. < 1563880252 688979 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Hmm, my conclusion about this article is that it's not worth reading. < 1563880558 454005 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Alright, alright, so Rust is what it is. What I really find obnoxious is hype and bad evangelism. Whether Rust evangelism is worse than other language evangelism, I can't really say. I like Haskell (mostly) and I've seen some bad Haskell evangelism too. < 1563880590 782341 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Rust evangelism is pretty bad and annoying. < 1563880635 966833 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So is Haskell evangelism. < 1563881712 86396 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I don't dislike Julia. I haven't really seen evangelism for it. Maybe because it has an obvious nemesis (R) towards which such chest-thumping can be directed...? < 1563881776 937506 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I have very little interest in numerical computing, but even outside of that Julia seems just fine as a general-purpose programming language. < 1563882482 864249 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And then I wonder if I should learn LLVM or Liquid Haskell and then I wonder if it's an academic question because I have no time to write anything of interest in them anyway. < 1563882511 499361 :iconmaster_!~iconmaste@2604:6000:b184:5c00:64ae:c2ba:d6ff:28a9 QUIT :Ping timeout: 276 seconds < 1563882754 486185 :iconmaster!~iconmaste@2604:6000:b184:5c00:7449:4d18:1832:3470 JOIN :#esoteric < 1563883134 69778 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: hmm. I barely know anything about Julia. I should look it up a bit if you say it's a fine general-purpose language. I might not like it, but I at least want to be a little familiar about these. < 1563883157 540696 :budonyc!~budonyc@c-24-62-204-147.hsd1.ma.comcast.net QUIT :Ping timeout: 244 seconds < 1563883262 741377 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: It's definitely worth looking at, IMO. Some of the approaches it takes are interesting. < 1563883359 468934 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: as for rust, even though people complain about the community, that it has a community on irc has helped me a lot. I could ask questions and get specific answers, and understand rust better that way. I could mostly ignore the evangelism, since that doesn't come through if I ask specific technical stuff. < 1563883388 47326 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :this isn't exclusive to rust of course, but it helped a lot with rust because of its ... unsatisfying documentation < 1563883438 440549 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or let's say, the documentation is slow, but probably not really that slow if you compare it to languages like C or C++ < 1563884081 973226 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :A lot of the bad evangelism I've seen (for anything) has come by way of social media. I think that's probably a factor. (I'm not on social media anymore) < 1563884103 574905 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :IRC I'm not on regularly, but I seem to come back to visit every 3 to 5 years < 1563884154 346998 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I seem to have rust installed on this laptop, but not configured correctly. I don't remember when/why this happened. < 1563884164 611733 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that is quite likely. I don't use facebook, and rarely use twitter. < 1563884487 167777 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Another thing about Rust that made it hard to like was how much, and how frequently, the language changes. I wrote this 5 years ago, I wonder if it still passes: https://github.com/catseye/Dipple/blob/master/rust/Tests.markdown < 1563884795 698383 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I will need to try to unbreak my rust installation to see < 1563884872 784162 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: yes, it does change a bit. they do care somewhat about compatibility of course. < 1563884938 567666 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: does that do anything fancy that would change? I'd guess it should still pass, though of course the specific error messages would change. < 1563884961 680539 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but I haven't tried to run it < 1563885082 884049 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ah no < 1563885091 849658 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the parts using the tilde box syntax would fail < 1563885104 418876 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that changed, but I think it changed before rust version 1 < 1563885110 657127 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it's not a recent change by any means < 1563885135 482050 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the language hasn't changed that much since version 1 in incompatible ways < 1563885523 415416 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Version 1 was in 2015 I think. I don't know when the tilde box syntax disappeared. < 1563885734 686911 :xkapastel!uid17782@gateway/web/irccloud.com/x-cdyefoiivpibvsuv JOIN :#esoteric < 1563886081 151673 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Good to see that it's slowed down a little in recent years. There are "editions" of the language, now? Okay... < 1563886138 485240 :iconmaster!~iconmaste@2604:6000:b184:5c00:7449:4d18:1832:3470 QUIT :Ping timeout: 276 seconds < 1563886183 123674 :iconmaster_!~iconmaste@2604:6000:b184:5c00:a12a:2d20:a21c:f360 JOIN :#esoteric < 1563886223 417734 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: two editions with some syntax differences, and they're direct call compatible, you can have one compilation unit be in one edition and another one in another, and directly call functions or use types across them, because the type system and runtime is the same, anything you write in one edition still makes sense in the other. < 1563886268 5984 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and since this isn't C vs C++, you don't have to write headers in both syntaxes (unless you have circular dependencies), the compiler can read the interface of a compilation unit from the object file, just like in haskell. < 1563886301 279841 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :they're still working about some problems with macros, since those work at a level very close to the syntax, and it's a bit hard to mix the two syntaxes in the same statement, needs more compiler magic. < 1563886366 139718 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :basically the compiler has to tag identifiers with which edition source they come from, so that it can resolve the name properly according to the rules of either the original edition or the 2018 edition. < 1563886463 848292 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also the differences between the editions is documented. you use the --edition=2018 switch of the compiler to tell that a file is written in the newer edition; sadly there's no declaration you can put right in the source file to do that. < 1563886496 378487 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :if you think of the C and C++ magic compilation flags, this won't sound too bad. < 1563886523 328564 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Almost none of this sounds too bad compared to C++ < 1563886527 308957 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and I only say it's slowed down for _incompatible_ changes < 1563886545 217027 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :they added a lot of (mostly) compatible stuff, as in, new features or new library functions < 1563886576 419921 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but yes, there are incompatible changes, even recently, ones that have nothing to do with editions < 1563886619 150659 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :really the editions change only a very few rules, the ones where it makes sense to do the change the way I told above. the incompatible stuff, that you just have to edit if your code triggers it. obviously they try to do it only when it doesn't impact much real code or is easy to fix. < 1563886664 732553 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and they try to make it so that the compiler error messages and warnings can help you recognize what broke from incompatible changes, or what will break from planned future incompatible changes < 1563887063 444742 :cpressey!~cpressey@5.133.242.4 QUIT :Ping timeout: 244 seconds < 1563887692 648735 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :hm it seems if I will design a sufficiently complex language, I better add a required “version flavor” directive to its grammar so as to warn users if there is e. g. a breaking change in syntax→semantics but the old syntax is still valid < 1563887936 807831 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :when I was in school, I had a wrong impression (I think because of reading MS JScript documentation on my computer; I had only VB6 and that) that the more sources are correct syntactically and have some meaning, the better < 1563887995 133674 :cpressey!~cpressey@5.133.242.36 JOIN :#esoteric < 1563888010 974365 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :now I find that the opposite is true and should be true. The more restrictions language places on user, the better it could version, the better it could report errors, the better a translator can do < 1563888069 493752 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :though maybe there could be drawbacks. I’d like to know if there are famous cases when some language was too rigid < 1563888273 773106 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :also on the same note I think overloading is oversold. A language can have rich function types allowing implicit/optional/keyword/iterable arguments and then there would be less sense to call two functions not mergeable this way by the same name and thinking how to get a reference to one of them without too much syntactic burden (by specifying all argument types?) < 1563888311 20227 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :(this is about true overloading, not generic functions) < 1563891677 191309 :cpressey!~cpressey@5.133.242.36 QUIT :Ping timeout: 245 seconds < 1563892250 351850 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1563892452 901107 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1563892567 368502 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpressey: I've been using Rust for some things, I've been pretty impressed with it so far < 1563892589 863528 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I wrote the The Waterfall Model implementation in it, that's probably the largest released program < 1563892644 224755 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I doubt it's a perfect language for everything, but I'd favour it for new projects over C (whenever in C I try to do something clever with memory allocation that wouldn't be allowed by Rust, it typically turns out to be incorrect) < 1563892674 686105 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :how about compared to C++? < 1563892714 590676 :trn!~trn@prone.ws QUIT :Ping timeout: 272 seconds < 1563892715 72161 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm unwilling to use C++ for almost anything at all, other than when I need to access linker functionality in a portable way < 1563892738 864445 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess writing C++ as though it were C is tolerable, but even then, memory allocation is a pain < 1563892756 462707 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(I do like many C++ features, like string const-correctness, but gcc lets you request that for C too) < 1563892831 846942 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I see < 1563892918 680458 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :modern C++ though has most of the drawbacks of Rust without many of the benefits < 1563892946 806073 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you're using std::move and std::unique_ptr and friends, why not use a language actually designed around those concepts (and which enforces them much more comprehensively with better error reporting)? < 1563892997 493754 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Rust does make you think hard about memory allocation. Which, for some applications, is a very good thing, because you should think hard about memory allocation, so that you get it right. < 1563893039 416163 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :For other applications, it's much more productive to not have to think about memory allocation at all. < 1563893202 202872 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Often I wonder how much friction programmers generate when discussing languages is simply because of insufficient recognition that different programmers program in different application areas. < 1563893213 15898 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :most of my Rust programs just seem to come down to making a few `Vec`s and storing values in those < 1563893238 238396 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yes, some languages are definitely better for certain fields < 1563893291 670544 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :ais523: On a completely different note: are cellular automata Turing-complete or not? Let's settle this < 1563893307 709487 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :s/are/can ... be/ < 1563893344 890798 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpressey: the field of cellular automata in general? there are cellular automata that can simulate the steps of a running Turing machine starting from a playfield with only finitely many non-blank squares < 1563893368 703830 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that seems like something that most people would consider to be Turing-completeness < 1563893390 241363 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I think it hinges on whether you allow your reduction to introduce halting or whether you insist it has to preserve halting. < 1563893408 820310 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :If you allow the reduction to introduce halting, then the set of Turing machines that never halt, is Turing-complete. < 1563893428 342330 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Which sounds weird. < 1563893432 188727 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can introduce a "halt colour" into a cellular automaton if you want to, but nobody ever does < 1563893450 118751 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, then it's arguably a different CA, too. < 1563893452 153578 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also, I personally consider the set of Turing machines that don't halt to be TC, you just need to define a different halt state (e.g. a trivial infinite loop) < 1563893476 218577 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpressey: well, yes, but that different CA is still a CA and is Turing-complete, we're just trying to establish whether at least one CA is Turing-complete < 1563893555 41750 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Ehm, well, I don't outright reject your view; actually I advocate for a more nuanced view of "Turing-complete". < 1563893597 120073 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :for me, the main interesting definitional problems with Turing-completeness (other than the fancy L thing) is a) what sort of initial conditions are allowed, and b) what sort of halt states are allowed < 1563893628 123307 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think either problem has been resolved, either by me or by the mathematical community as a whole < 1563893675 114594 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :https://esolangs.org/wiki/Sequential_tag_system is a good example of the type of problems we see; the simplest known "TC" CAs simulate that (rather than cyclic tag), so the question is whether using a cyclic initial condition is permissible < 1563893692 414559 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, to show something Turing-complete, you need a reduction. Which reductions are allowable and which are not is not universally agreed upon. I think this is not too different from what you are saying. < 1563893806 955425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think it's generally accepted that it's sufficient for the reduction to be computable and always halt < 1563893835 407717 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but a reduction like that can't generate an infinitely long program, which is what cellular automata and Turing machines require < 1563893935 176316 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Do they? ... it's interesting that we seem to see different problems with it. < 1563893994 374263 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually I think all the interesting problems in definition of TCness may be special cases of a larger problem < 1563894043 899099 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :which is "suppose program X generates (possibly infinite) output that is read as input by program Y: what pairs of computational classes (X's computational class, Y's computational class) allow the combined program to be Turing-complete?" < 1563894144 625816 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a long time ago I thought it was obvious that either X or Y had to be TC, but now I'm no longer sure < 1563894163 597027 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK, I've managed to confuse myself again already. < 1563894177 460952 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :You can get pretty far with an "F"SA with infinite states, I imagine < 1563894178 213344 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, there are trivial constructions such as "X produces infinitely many 0s, Y is an LBA", but that seems like cheating in some way < 1563894211 176882 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Taneb: how do you even define that, though? presumably you need some sort of rule for how a state behaves, and then that rule becomes the language < 1563894240 577996 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :ais523: yeah, I think I've not given this enough thought < 1563894284 503688 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :next you'll say that the infinite mathematicians choosing an arbitrary non-principial ultrafilter during their meeting before the game with red and blue hats seems like cheating too < 1563894327 101890 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :OK here is my overall feeling. There is a set of allowable reductions for showing Turing-completeness. Some of these reductions are more complex than others. e.g. some are polytime, some are not. < 1563894393 536040 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You can consider sets of languages that are only polytime-Turing-complete, or are only polytime-each-other-complete (if you follow what I'm handwavingly saying) < 1563894452 841774 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :You can investigate Turing-completeness in a sort of fine-grained way. < 1563894479 620155 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"polytime-Turing-complete" is only meaningful if you restrict the languages you can reduce /from/ < 1563894510 85047 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :otherwise, you can just reduce from an exponentially padded language which requires every character in the program to be repeated 2*n times, where n is the original length of the program < 1563894523 290225 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sure < 1563894531 324738 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Yes, it's intentionally restricted? Maybe I don't follow you < 1563894574 835610 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :even then, if the language has any equivalent of a string constant, the reduction can just bundle an interpreter with a string constant containing the program you're reducing < 1563894599 509901 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so "polytime TCness" pretty much just only determines how data can be stored in a language < 1563894599 675783 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: right, and that's why among practical languages, you have very simple reductions like that < 1563894605 346934 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Yes - that's usually considered unallowable or uninteresting, but you can define it, at least < 1563894607 107896 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although that's interesting in its own right < 1563894633 5644 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpressey: I think disallowing that would be a huge mistake (and, anyway, difficult to define); I'm also not convinced it's always uninteresting < 1563894644 609933 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :To be fair, "how data can be stored in a language" heavily, heavily characterizes a language, does it not? < 1563894650 803391 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right, indeed < 1563894658 327547 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so even polynomial time seems a bit of an overkill most of the time, but we want to allow a bit more than just straighforward encoding string literals for languages like incident or (eodermdrone with an infinite alphabet of letters) < 1563894680 726679 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think almost all languages allow a linear-space-in-program data representation, but some don't and are interesting because of that < 1563894700 534866 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: not really just how the data can be stored at runtime, more like how it can be represented in the source code < 1563894735 996578 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :infinite-alphabet-Eodermdrome probably allows data representation in O(n) characters, thus O(n log n) bytes < 1563894740 242594 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I suspect Incident is also O(n log n) < 1563894787 972904 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :(is Eodermdrome TC with any finite alphabet? If so, what's the smallest alphabet such that Eordermdrome on that alphabet is TC?) < 1563894817 25760 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Taneb: it's fancy-L-complete with a fairly small alphabet; it has finitely many programs for any finite alphabet < 1563894836 304591 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :That makes sense < 1563894848 151330 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: yeah. you could also imagine a more straightforward language where you have to input everything with alphabetic identifiers, each identifier is globally scoped and can appear at most ten times. you can chain identifiers to make them an alias of each other. you'd have to at least gensym to write code. it's not far from what you can imagine i < 1563894848 650320 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :n an esolang. < 1563894895 478191 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :just like with infinite alphabet eodermdrone if you have to encode the letters as longer strings with some delimiters < 1563894919 359371 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :(like, if it allows combining diacritic characters after the letters) < 1563894919 746935 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can also imagine a language for which programs have the same meaning if anagrammed; that would have a limit on storage density in the source code < 1563894959 412543 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think with that storing n bits of string constant requires O(2**n) program characters, in the limit? < 1563894969 974459 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: oh yeah, we talked about that sort of thing, droppable punch card languages < 1563894974 578625 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :because of the IOCCC ting < 1563895048 626782 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :though of course with a fixed length of the punch card there's only a fixed number of programs < 1563895064 973582 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :at most 2**(2**(80*12)) < 1563895108 80743 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can have duplicate punch cards < 1563895122 332110 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in the extreme, you can have a language like Lenguage that doesn't look at the content of the program at all, only its length < 1563895140 351193 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ah yeah the length-only brainfuck variants < 1563895671 37389 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I guess another way to put it is, instead of asking "Is A B-complete?" we can ask "What reductions are required to get from A to B?" And the time complexity, or "introducing halting", or "initial conditions", etc, are all things you can consider. < 1563895713 172734 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: sure, but the answer to that definitely has to depend on what B is, and there's definitely no generic answer. < 1563895733 396099 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :at least for low powered B < 1563895796 517478 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I agree, there is no canonical definition of Turing machines, -- most mathematicians are quite happy to let details slide when it comes to making a point, and this is usually a good thing < 1563895806 443263 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :um no < 1563895814 769541 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that's not what I mean < 1563895819 12508 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Wasn't sure < 1563895831 228026 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I mean for really differently powered classes < 1563895888 749213 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :like we said above, you might define Turing-completeness to allow any polynomial time reduction, to study the power of esolangs with very limited formats of IO and source code < 1563895972 529238 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :defining what you're reducing from is vital for that though < 1563896000 496763 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :otherwise, you reduce from a language that uses infinitely long programs and thus have infinite time to do so, making even cat polytime TC < 1563896001 663803 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The most obvious thing about that seems to be that it disqualifies the languages whose TC proof is a reduction to Tag systems < 1563896017 59382 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sometimes we care about the language being able to read arbitrary input from a class, say byte strings, possibly with arbitrary output and interactive IO < 1563896038 117068 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or that a language can represent any primitive recursive algorithm with arbitrary non-interactive IO or something < 1563896040 506481 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpressey: I don't see why, tag systems use finite programs and finite input < 1563896053 634724 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ais523: right < 1563896058 274124 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :We seem to be talking about vastly different things < 1563896060 463666 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :do you mean sequential tag? < 1563896076 349305 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: I got confused, I don't know what I'm talking about < 1563896082 201626 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but yes, I'm suspecting a disconnect, e.g. the reductions you're suggesting seem to be backwards < 1563896087 435170 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so maybe we're misunderstanding each other < 1563896097 392653 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also I'll afk for a bit < 1563896100 600239 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Remote host closed the connection < 1563896160 63912 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm treating reduction as "I'm writing a function that compiles language A programs into language B programs, if my function is correct andd sufficiently simple this proves that B is A-complete" < 1563896242 593929 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I think it's that by polytime I meant: I'm writing a function that compiles polytime programs in language A into polytime programs in language B < 1563896253 110814 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :*not* I'm writing a polytime function to do this < 1563896259 841091 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, I see, a performance-preserving reduction < 1563896266 997940 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yes, that's an interesting subject too < 1563896279 855129 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although "polytime programs in language A" is often hard to define due to optimising compilers < 1563896291 834619 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Tag systems, from what I understand, are not able to do things in poly time, that TMs can do, in poly time < 1563896312 550455 :Sgeo|web!d802c101@user1.cablevision.com JOIN :#esoteric < 1563896328 241552 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I think they're slower by a factor of the amount of memory in use < 1563896355 362101 :Sgeo|web!d802c101@user1.cablevision.com QUIT :Remote host closed the connection < 1563896360 979869 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not 100% sure that means that polytime → polytime (with a worse exponent) is possible, but it feels like it would be < 1563896365 292046 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :At any rate, I think I've seen an objection to e.g. the Rule 110 TC proofs, on that basis: like, yes, rule 110 is technically TC, but not in a "useful way" < 1563896398 437847 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :ah yes, an O(n**k) time program can use at most O(n**k) memory, so the tag system can simulate it in O(n**2k) time < 1563896404 575620 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :And that seems like, someone being conservative with a fine-grained conception of Turing-completeness. rather than being liberal with it. < 1563896417 780128 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :That's all. < 1563896480 519675 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there are some languages which seem to have an exponential slowdown < 1563896487 482869 :iconmaster__!~iconmaste@2604:6000:b184:5c00:f52e:ad2c:87e:c2f JOIN :#esoteric < 1563896502 502338 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :As for infinite programs, that's a whole nother ball of wax, as they say < 1563896523 152978 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in particular, I suspect https://esolangs.org/wiki/An_Odd_Rewriting_System may be exponentially slower than some Turing machines at performing the same task < 1563896578 221110 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I've just had a dumb esolang idea < 1563896686 448511 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Never mind, it doesn't work < 1563896717 387988 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :(the idea was, you have a list of numbers and execute the program by running the busy beaver corresponding to each number on the tape) < 1563896746 488561 :iconmaster_!~iconmaste@2604:6000:b184:5c00:a12a:2d20:a21c:f360 QUIT :Ping timeout: 276 seconds < 1563897071 139447 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The thing I was thinking of was actually from Scott Aaronson's critical review of A New Kind of Science < 1563897094 500830 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :"However, though Wolframdoes not discuss this explicitly in the book, the known simulations of Turing machines by tag systems require exponential slowdown." < 1563897113 560683 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :https://arxiv.org/abs/quant-ph/0206089 < 1563897156 957142 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Now, whether you consider that a problem or not -- that's sort of up to you, I think. < 1563897315 21160 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't consider that a problem for computational class; however, I also don't agree with the statement < 1563897358 644314 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :i.e. I think tag systems can simulate Turing machines with only polynomial slowdown < 1563897826 258591 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep: you can compile a Turing machine into a cellular automaton with no slowdown (effectively by using a colour for each TM colour, plus a colour for each (TM colour / TM state) pair, the latter are only used where the tape head is) < 1563897906 853276 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and you can compile a cellular automaton into a tag system with quadratic slowdown (via evaluating the entire initialized portion of the tape one character at a time on each step, then adding an extra uninitialized character at each end of the tape so that it doesn't run out) < 1563897978 716711 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Well, this is from 2002; at the time, this might not've been established. < 1563898023 867032 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The existence (or not) of such languages that are (let's say) only-expontentially-Turing-complete, is an interesting subject to me, at any rate. < 1563898034 801412 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if so then 2002 needed better complexity theorists < 1563898045 608496 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :to me, the construction I just listed is the obvious one < 1563898067 723232 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and I can't think of a slower construction except via arbitrarily slowing things down < 1563898070 652576 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I know I've had lots of difficulty coming up with languages that provably require high complexity to interpret < 1563898091 157576 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :(I'm thinking of EXPLOAD) < 1563898114 806438 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that doesn't surprise me; AORS's "TC, but very slowly" came as a big surprise when I discovered it < 1563898335 58981 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :something like https://esolangs.org/wiki/Brainhype works but that's cheating < 1563898402 470563 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The weakness seems to be that it's often possible to find a "sufficiently clever" Hashlife-like optimization (and concomittantly difficult to prove that no such optimization exists!) < 1563898583 494262 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, this conversation gave me an idea for a language but I have no idea if it's even TC < 1563898619 54247 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you start with nondeterministic Fractran, specifically the variant in which all commands that can legally run at any given point all run in parallel in separate threads, the program doesn't halt as long as at least one thread is still running < 1563898631 534584 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but then you add a rule that a program cannot run unless the program unconditionally halts in the absence of that command < 1563898681 556298 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm not convinced that this is computable, and I'm /also/ not convinced that it's usable for programming! quite a wide range there < 1563898851 690977 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1563898877 335236 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563898905 108459 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :This has definitely been an interesting conversation; I don't have any new ideas but I might be able to organise some of my existing ones more coherently < 1563898981 363530 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I might try to understand AORS better; it might be describable in somewhat-more-conventional term-rewriting terms < 1563899208 198454 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's basically a tag system that can't maintain memory beyond a particular point in the queue (that cycles round from start to end) < 1563899226 55692 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the definition on Esolang is an attempt to formalize that, the informal intuition can be helpful too though < 1563900267 797752 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or, hmm, maybe 2C is the language that can't maintain memory but has no other restrictions, and AORS has an additional restriction? < 1563900326 525733 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu JOIN :#esoteric < 1563900408 359749 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1563900491 706500 :trn!jhj@prone.ws JOIN :#esoteric < 1563900510 827252 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :wb_jonas < 1563900827 344327 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1563901036 477275 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: A la prochaine. < 1563901679 919161 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de JOIN :#esoteric < 1563901819 815071 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :reductions the can turn a polynomial runtime program to a polynomial runtime program are important, and I care about them, in fact I care even about more strict time limits, but people shouldn't try to argue that the "Turing-complete" word refers to anything like that, because I think it's established that it doesn't mean that < 1563901896 763954 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :a good example is counter machines with a fixed number of counters: they're Turing-complete, but you blow up your runtime exponentially if you translate programs from more reasonable to them, or double-exponential if there are only two counter registers > 1563901898 358042 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64642&oldid=64639 5* 03Areallycoolusername 5* (+3198) 10 < 1563901961 109920 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :but the whole P class is so robust because we have a lot of natural computation models that are equivalent to each other and blow up by only at most polynomial time > 1563901967 455328 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64643&oldid=64642 5* 03Areallycoolusername 5* (+4) 10 < 1563901987 510883 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :so it doesn't matter which one you use to define which programs run in polynomial time in the size of input < 1563902103 259925 :arseniiv!~arseniiv@136.169.234.37 QUIT :Ping timeout: 245 seconds < 1563902125 247054 :arseniiv!~arseniiv@136.169.234.37 JOIN :#esoteric < 1563902863 600851 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :ais523, cpressey: that statement in Scott's review is indeed written in a confusing way. as far as I can tell, the problem is that the construction to use that simple cellular automaton can't simulate just any tag system (that would be a strange sort of proof), and the simulation they have does have an exponential blowup, just like with counter machines. < 1563902885 613001 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :but yes, that's not what the article says < 1563902899 83554 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de QUIT :Quit: Leaving < 1563902921 180515 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :we're simulating a turing machine with a cellular automaton with a tag machine, not the other way round < 1563902934 635134 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that said, the other direction (simulating a tag machine with a turing machine) is also fairly efficient, IIRC < 1563902954 599221 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :ah no < 1563902968 681484 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :apparently it's the cellular automaton that simulates certain tag systems with an exponential blowup < 1563902976 193587 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :then that statement definitely seems wrong in that draft < 1563903084 279894 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :oh < 1563903091 596572 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :a cellular automaton with a tag machine? ok < 1563903120 958567 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :anyway, the slowdown is in simulating something with that particular cellular automaton < 1563903126 934990 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :hmm wait < 1563903141 277650 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :wait, I'm confused < 1563903215 49340 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :no look, Scott's review clearly seems to say on page 5 to 6 that it's about simulating some kind of tag system with the rule 100 automaton, and simulating a turing machine with the tag system. < 1563903225 520130 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :he claims that it's the latter that's slow, I think that's wrong but I'm not sure < 1563903256 371531 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :it's definitely not talking about simulating a cellular automaton with a tag machine there, because Wolfram isn't either < 1563903264 773350 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :there's an entirely different argument that shows that's wrong: the very first universal turing machine simulated tag machines, that's why they were invented < 1563903273 870002 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and people don't complain about a slowdown there < 1563903293 105216 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :Wolfram was interested on how powerful simple 1-dimensional cellular automatons are < 1563903307 658321 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(the naive method has a quadratic slowdown, maybe there are non-naive methods that are faster) < 1563903310 323581 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :ones with a three cell neighbourhood and two states < 1563903347 342996 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :and I think the cellular automaton construction has been improved later, after that review < 1563903395 652090 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, Cook's construction for rule 110 simulates sequential tag < 1563903420 766560 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and that's also polynomially slower than the Turing machine it's simulating, but only polynomially < 1563903456 712420 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :yes, but isn't Cook's construction using an exponential blowup in the simulation? < 1563903476 585356 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :the original one, which was known at the time of Scott's review < 1563903515 818425 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it can't be, the reason is because he created cyclic tag from sequential tag via giving it a periodic input < 1563903535 32850 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that trick only works if the cellular automaton is linear time with respect to the sequential tag system (otherwise the input wouldn't be periodic) < 1563903560 358533 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :no, not necessarily < 1563903588 778036 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :the periodic pattern in the CA can be much more fine-grained then the tag system symbols < 1563903618 122215 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, in this case (I know the general shape of the rule 110 TCness construction, every symbol in the repetitive part is used) < 1563903623 233755 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, hmm < 1563903627 514385 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :imagine simulating anything in Brainfuck, where you use a periodic pattern to store multiple tapes on one tape < 1563903633 873952 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it could be that the construction moves to the right exponentially fast < 1563903647 844416 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :with the distance the symbols have to move doubling each time round the tape < 1563903675 562361 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so the symbols are sent in linear time but arrive in exponential time because the queue is running away from them < 1563903687 620943 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that would be specific to the rule 110 construction, though, not tag systems in general < 1563903688 272819 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :only Brainfuck is too powerful, it can do the initialization and tape extension all on its own < 1563903710 606923 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :ais523: yes, something like that < 1563905620 2589 :ais523!~ais523@unaffiliated/ais523 QUIT :Quit: quit < 1563905747 849826 :rain2!~My_user_n@unaffiliated/rain1 JOIN :#esoteric < 1563905900 616455 :rain1!~My_user_n@unaffiliated/rain1 QUIT :Ping timeout: 272 seconds < 1563906073 972070 :\oren\!~oren@ec2-35-175-217-128.compute-1.amazonaws.com PRIVMSG #esoteric :ok this is an issue. I can't remember how my vectorization algorithm works < 1563906094 875824 :\oren\!~oren@ec2-35-175-217-128.compute-1.amazonaws.com PRIVMSG #esoteric :and I didn't put any comments explaining it < 1563906371 485734 :iconmaster_!~iconmaste@2604:6000:b184:5c00:35f3:baa9:3d13:33fb JOIN :#esoteric < 1563906652 490795 :iconmaster__!~iconmaste@2604:6000:b184:5c00:f52e:ad2c:87e:c2f QUIT :Ping timeout: 276 seconds < 1563906710 737349 :\oren\!~oren@ec2-35-175-217-128.compute-1.amazonaws.com PRIVMSG #esoteric :Ok I figured out how I did it < 1563907609 265756 :\oren\!~oren@ec2-35-175-217-128.compute-1.amazonaws.com PRIVMSG #esoteric :Basically it involves keeping track of the vertices between pixels instead of the pixels < 1563910917 857645 :xkapastel!uid17782@gateway/web/irccloud.com/x-cdyefoiivpibvsuv QUIT :Quit: Connection closed for inactivity < 1563911471 467851 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1563911648 847990 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 268 seconds < 1563911649 810175 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life > 1563912419 639528 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64644&oldid=64643 5* 03Areallycoolusername 5* (+0) 10/* Collaboration Request */ < 1563912800 966131 :xkapastel!uid17782@gateway/web/irccloud.com/x-ztyznztmmjijsjtt JOIN :#esoteric < 1563913622 569920 :KindOne!uplime@learnprogramming/staff/nchambers NICK :uplime < 1563917377 600694 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be QUIT :Ping timeout: 276 seconds < 1563922991 651270 :tromp_!~tromp@2a02:a210:1585:3200:ecdc:f473:e5b8:eb5d JOIN :#esoteric < 1563923170 399733 :tromp!~tromp@ip-213-127-56-55.ip.prioritytelecom.net QUIT :Ping timeout: 248 seconds < 1563923586 383667 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 248 seconds < 1563924153 284097 :arseniiv!~arseniiv@136.169.234.37 QUIT :Ping timeout: 245 seconds < 1563925577 928320 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Woot, I successfully implemented a scan code translation table in the IBM PC simulator! < 1563925585 761279 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Now when you type stuff, it shows the stuff that you typed, instead of showing weird garbage! < 1563925606 14216 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :The first thing I typed was "spinx of black quartz judge my vow". < 1563925608 167196 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :tswett[m]: nice! does it support the shift and right shift and control keys as modifiers? < 1563925613 704352 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Nope. < 1563925618 606984 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It doesn't support anything besides letters yet. < 1563925628 415798 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :do you plan to support them later though? < 1563925631 230662 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I typo'd the word "sphinx". < 1563925635 958577 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :does it support the space bar? < 1563925636 183655 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Yeah, eventually. < 1563925650 195907 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It kind of supports the space bar, but not on purpose. < 1563925658 895787 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :good < 1563925660 3712 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Anything it doesn't recognize shows up as a black, and it doesn't recognize the space bar... < 1563925663 526454 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :So yes, it supports the space bar. :D < 1563925668 407857 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :*as a blank < 1563925698 583782 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Also, it doesn't yet recognize that key-down and key-up are different kinds of things; it just interprets a key-up as an unknown character. < 1563925854 971729 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Also, programming in machine code is awfully tedious. < 1563925885 56799 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :my favourite example to type is the Weöres Sándor poem "Munka és béke", because it has at least one of most lower case letters, with like five or six missing, and of most of them appear once in the first stanza and once in the second stanza < 1563926010 634052 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :It also has two versions published that differ in a few words, and one of the versions misses one fewer letters < 1563926128 932204 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Hmmmm, nice. < 1563926255 508803 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :In any case, one of the next things I'm gonna want to do is implement some Forth-like stuff. < 1563926263 724867 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :The missing lowercase letters are "ö" plus the rare letters "q x w í ú " < 1563926284 336278 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I want this thing to be able to write its own damn machine code. :D < 1563926310 937365 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :no that's not quite right < 1563926324 733496 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :The missing lowercase letters in one variant are "ö" plus the rare letters "q x w í ú ű" < 1563926363 720964 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :but in the other variant, the first line is "Méh-raj duruzsol fák közt, fű alól,", which adds "ö" and "ű" thus making this quite closer to containing all lower case letters < 1563926399 841577 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :And I prefer to add his name too, so we at least have a "W" there