< 1572566424 38884 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : is the concept of pregret related to the concept of type II fun? <-- huh. i feel like i've never learned to do that. < 1572566671 369269 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1572567455 98964 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer < 1572568610 874895 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1572569266 909935 :tromp!~tromp@2a02:a210:1585:3200:e89e:4bea:fa20:ece9 QUIT :Remote host closed the connection < 1572569299 545524 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572569609 544510 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 276 seconds < 1572569648 334482 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572569918 333554 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 245 seconds < 1572570459 60108 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572570732 541016 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1572571370 917621 :zzo38!~zzo38@24-207-15-213.eastlink.ca QUIT :Ping timeout: 240 seconds < 1572572155 543124 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572572456 546528 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 276 seconds < 1572573156 863800 :Soni!~quassel@unaffiliated/soniex2 JOIN :#esoteric < 1572573173 629121 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :1. make esoteric language month 2. publish pure-sed doom port < 1572573199 237740 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I'd do it. < 1572573204 824119 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :(there is pure-sed tetris, after all) < 1572573286 534757 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :what. < 1572573475 863761 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :https://github.com/uuner/sedtris/blob/master/sedtris.sed < 1572576263 855476 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net PRIVMSG #esoteric :Wondering, if it's been generated using pack of scripts of written as is < 1572576642 914743 :ArthurStrong!~ArthurStr@slow.wreckage.volia.net PRIVMSG #esoteric :She's got a career at Google: https://careers.google.com/stories/julia-on-growing-her-career-at-google/ < 1572576748 354997 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :good. < 1572578648 335529 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572578918 335720 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 245 seconds < 1572583347 9362 :quintopia!~quintopia@unaffiliated/quintopia JOIN :#esoteric < 1572585059 565859 :imode!~linear@unaffiliated/imode QUIT :Quit: WeeChat 2.6 < 1572585076 281066 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572585147 543509 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572585198 871644 :imode!~linear@unaffiliated/imode QUIT :Client Quit < 1572585216 269471 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572585314 884767 :imode!~linear@unaffiliated/imode QUIT :Client Quit < 1572585329 521069 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572585443 541810 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 276 seconds < 1572586546 133682 :imode!~linear@unaffiliated/imode QUIT :Quit: WeeChat 2.6 < 1572586564 517987 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572586691 578320 :erdic!~erdic@unaffiliated/motley QUIT :Ping timeout: 276 seconds < 1572586809 844671 :erdic!~erdic@unaffiliated/motley JOIN :#esoteric < 1572588148 652735 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net QUIT :Ping timeout: 268 seconds < 1572590354 350147 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572590618 332899 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 245 seconds < 1572590684 24189 :aji!~alex@unaffiliated/aji PRIVMSG #esoteric :Soni: what are you doing here < 1572591756 595751 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net JOIN :#esoteric < 1572596828 974044 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572597085 986465 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d QUIT :Ping timeout: 252 seconds < 1572597573 965154 :tromp!~tromp@2a02:a210:1585:3200:c04e:4d3c:d1e4:f01d JOIN :#esoteric < 1572600146 534223 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 276 seconds < 1572601576 119015 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1572601854 101032 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru JOIN :#esoteric < 1572602006 756488 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric < 1572602064 986491 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Client Quit < 1572602076 797159 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric < 1572602128 710541 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Client Quit < 1572602142 238940 :kspalaiologos!~kspalaiol@176.221.122.71 JOIN :#esoteric < 1572607745 864736 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :aji: who are you < 1572607772 153369 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :(and, more importantly, why do you care) > 1572608948 377258 PRIVMSG #esoteric :14[[07User:CMinusMinus14]]4 N10 02https://esolangs.org/w/index.php?oldid=66902 5* 03CMinusMinus 5* (+155) 10Created page with "Welcome to my Esolang-page! My name is Jonas, im 16 and from Germany (Yeah I know...). I already made some stuff, I am going to upload it here later... Bye" > 1572608967 659212 PRIVMSG #esoteric :14[[07User:CMinusMinus14]]4 10 02https://esolangs.org/w/index.php?diff=66903&oldid=66902 5* 03CMinusMinus 5* (+24) 10 < 1572612833 187712 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh I get it! they're called a ket-tle because when you start to boil the water, they hiss like a cat < 1572612850 522161 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :should have been spelled cat-tle but that's already used for a different word < 1572613613 424268 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`? kittegory < 1572613614 600461 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :A kittegory is just a small category. < 1572613784 536225 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`mkx bin/just//grwp '\(is\|are\) just' | sed -e 's/:/ ::= /;s/$/\n/' > tmp/just && url tmp/just < 1572613786 231901 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :bin/just < 1572613787 554182 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`just < 1572613788 744617 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :https://hack.esolangs.org/tmp/just < 1572615176 213176 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :`? char < 1572615177 375374 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :Char is a prominent component of charcoal. < 1572615583 295381 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :`? long < 1572615584 565375 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :Long is the Chinese word for dragon. < 1572615610 894995 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :the other type words of C don't seem to have a wisdom: int, short, float, double, bool, _Bool, complex, _Complex, atomic, _Atomic < 1572615626 179468 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :we do have one for pointers though < 1572615631 973239 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh, and < 1572615632 918189 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :`? void < 1572615634 50591 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :Nothing to see here < 1572615822 403396 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :`? void * < 1572615823 419279 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :void *? ¯\(°​_o)/¯ < 1572615839 121818 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :`? punpckhqdq < 1572615840 263255 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :punpckhqdq? ¯\(°​_o)/¯ < 1572616840 365882 :aloril!~aloril@mobile-access-b04846-190.dhcp.inet.fi QUIT :Ping timeout: 265 seconds < 1572620243 591968 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :What language would you guys use to implement something new, that will be supported for the next 50 years? < 1572620251 756541 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :C? < 1572620276 379206 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Basically I want to write a virtual machine for unreal script, and want it to live until at least I'm dead < 1572620320 432756 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Fortran? Cobol? < 1572620333 784429 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :C < 1572620341 603032 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :c'mon, it's never going to die < 1572620363 191729 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :it should, though < 1572620414 979836 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I was not objecting to C, I merely wanted to offer some alternatives. < 1572620465 995330 :aloril!~aloril@mobile-access-2e845f-1.dhcp.inet.fi JOIN :#esoteric < 1572620732 945385 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I don't want to use C because of bad type system, complex ecosystem, etc < 1572620738 632120 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I was thinking lisp would probably be better < 1572620756 19460 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :you might end up like Reddit < 1572620778 284779 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :lol < 1572620794 120799 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I want to use Rust, but Rust heavy as fuck. < 1572620804 839370 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :So I keep coming back, staring at Zig from a distance. < 1572620820 811533 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I've actually used Rust for ~2 years now < 1572620823 271935 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Honestly though... take any established language and chances are good that you can still run it 50 years from now. It may involve two layers of emulation. < 1572620880 715479 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I should find a C with RAII and strong type system < 1572620884 624558 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh, let's add vendor-neutral to the criteria. < 1572620895 63237 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :But in an adhoc fashion < 1572620906 863820 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :So that it can all be removed to compile with C compiler < 1572620918 149515 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :C < 1572620928 357189 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Swift, golang... such things might still disappear very quickly if the corresponding company ever goes under. < 1572620982 459438 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :`? C < 1572620983 511351 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :C is the language of��V�>WIד�.��Segmentation fault < 1572621088 69115 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(I don't really expect either of those two to disappear.) < 1572621120 256638 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :int-e: thoughts on Zig? < 1572621129 781885 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :The developed it in a year basically < 1572621133 222723 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :The guy* < 1572621167 547705 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :int-e: what about JavaScript :^))) < 1572621271 446701 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Lately I've been thinking more and more about interpreted languages < 1572621273 645659 :int-e!~noone@int-e.eu PRIVMSG #esoteric :lf94: I actually thought of that but hoped that nobody else would. < 1572621289 916516 :int-e!~noone@int-e.eu PRIVMSG #esoteric :lf94: Unfortunately I suspect it's here to stay as well. < 1572621304 159283 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Basically an interpreted language trade-offs memory < 1572621309 307665 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I don't know Zig. < 1572621322 829194 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :A compiled language typically needs more memory < 1572621332 210034 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :But you get way more control of the underlying system < 1572621340 681016 :int-e!~noone@int-e.eu PRIVMSG #esoteric :lf94: That's not really true anymore because of JITs. < 1572621353 665745 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :How complex is JIT < 1572621385 34235 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(And Javascript would not be as dominant if people hadn't gone crazy in JIT compilation for JS a decade ago.) < 1572621386 60724 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :A compiled language, in the most basic case, is just turning language feature X into assembly Y < 1572621413 898185 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Now with LLVM, I think there is no reason NOT to make it compiled < 1572621461 744722 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Extrinsically JIT compilers use fairly crazy amounts of memory... they compile several versions of the same code, collect runtime profiling information to identify hot spots, require garbage collection... it adds up. < 1572621467 566946 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :int-e: check out Zig, for me. Your opinion matters a lot. < 1572621479 517815 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I wouldn't trust javascript, because all the people who use javascript make programs that they throw away five or ten years ago, so you can't trust the language and its interpreters to be stable enough < 1572621506 241213 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Hmm, should've used a full stop rather than an ellipsis... those two sentences were not logically connected.) < 1572621514 296554 :int-e!~noone@int-e.eu PRIVMSG #esoteric :lf94: I really don't do requests. < 1572621527 268945 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I guess with emulation, you can emulate compilers < 1572621538 815205 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I recommend https://esolangs.org/wiki/UM-32 since it's based on like a thousand year old cult who made computers out of sand < 1572621559 325223 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It would be cool to have some sort of crazy optimizing lambda calculus compiler < 1572621571 601419 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :int-e: Sorry, I didn't mean to offend < 1572621602 322247 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh I'm not offended. < 1572621719 540937 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :that or MMIX, whose tagline is "a RISC computer for the third millennium", and people will be reading TAOCP fifty years from now so they'll also be interested to emulate MMIX < 1572621742 955078 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I was going to target subleq vm < 1572621747 728973 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :as an alternative < 1572621752 202736 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :but it'd probably be very very slow. < 1572621754 328201 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :but C is pretty much the best option < 1572621784 210381 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I should bundle tiny C compiler source with the project < 1572621789 168609 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :so someone can bootstrap < 1572621944 644075 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :lf94: the hard part is not the compiler or core language, but then environment and system access < 1572621952 480255 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :yeah... < 1572621958 345752 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :and C makes that the easiest < 1572621999 179503 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :C and unix together, yes < 1572622082 649468 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :https://en.wikipedia.org/wiki/History_of_programming_languages < 1572622086 693943 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Man, this is pretty sad < 1572622097 701761 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :After the 70s everyone's been making garbage collected languages < 1572622118 588716 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :(Minus D, Swift and Rust) < 1572622178 936198 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :just look at how we unix people run unix programs on windows. sure, they don't integrate well into the environment, because they can like only access files if all characters in their names are in the locale-dependent default codepage, and you have to patch system() statements to add two double-quotes before the name of the program and one double-quote after the name of the program that you execute, < 1572622222 853745 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :and they can't printf floating-point numbers properly, but the end result is that with all that patching, you can usually run those programs, and windows libc supports them because there's a need for it < 1572622256 987463 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :every future system will support C and unix basics, so you can easily port programs from it, even if the system looks so different that you can't access its native resources to the fullest < 1572622258 365758 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Is it difficult to re-implement C+ < 1572622259 494220 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :? < 1572622271 711399 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :even if it has to run the whole C program in an emulated virtual 32-bit address space etc < 1572622285 447197 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :it might be inefficient, but that doesn't matter when you're running old programs < 1572622313 635351 :kritixilithos!~kritixili@gateway/tor-sasl/kritixilithos JOIN :#esoteric < 1572622518 688842 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Thoughts on Ada? < 1572622614 651011 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :also document the parts of your program that may have to be ported in the future, like Knuth does in TeX/Metafont/SGB. these are the parts that access the system or do IO, the parts that make some assumption that need not be true in all C environments, and the parts that they may want to optimize in a nonportable way < 1572622643 235550 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :that's what makes TeX/Metafont/SGB portable enough: you don't have to touch most of the code to port, just those specific parts < 1572622780 238941 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :b_jonas: interesting < 1572622786 134853 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :TeX is written in what? < 1572622794 788209 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I thought it was Knuth's own lang < 1572622983 459340 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think it's written in WEB, yes. < 1572623143 46304 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :it's written in CWEB < 1572623167 80244 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Is it? I thought it was just WEB, and used Web2C. < 1572623168 69174 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :which lets you combine the core with local "patch files" that replace the system-dependent parts (or any parts you want really) of the C code < 1572623180 201058 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :and then you compile the resulting code with a C compiler < 1572623186 717099 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :fizzie: I dunno < 1572623195 695499 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :fizzie: SGB is written in CWEB then < 1572623200 142318 :int-e!~noone@int-e.eu PRIVMSG #esoteric :WEB is Pascal based. < 1572623208 529969 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I haven't really tried to look at how TeX is implemented < 1572623216 891839 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :int-e: Right, but I think TeX systems use web2c instead. < 1572623225 670703 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :https://ctan.org/pkg/web2c?lang=en < 1572623236 249558 :int-e!~noone@int-e.eu PRIVMSG #esoteric :fizzie: I'm sure it has been ported to CWEB < 1572623264 23817 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Well, the principle is language agnostic, anyway. < 1572623384 963791 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I guess for portability we should count 6502 too. everyone will know how to emulate it with all its undocumented instructions and quirks of the NES and commodore 64 graphics and sound hardware, even 50 years from now. < 1572623421 113719 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :https://www.linusakesson.net/games/stranded64/index.php argues for using the commodore 64 for future portability < 1572623458 936740 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572623639 99038 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :so write the program in the form of an NES cart. just remove its battery if it has battery-backed SRAM, because it's easier to put a new battery in 50 years from now than to clean up the spilled battery acid and repair the PCB < 1572623641 562333 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Hmm, interesting. I was under the misconception that TeX had been ported to CWEB. Apparently not... (or maybe that happened and was abandoned). < 1572623777 640875 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :target the NTSC version though, people might not be able to get a PAL NES so easily anymore that far into the future < 1572623857 476628 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh yeah, writing the program _in_ TeX or Metafont (as opposed to _like_ TeX or Metafont) is an option too < 1572623873 924899 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :people will be able to find interpreters for those 50 years from now too, even if they don't use them for their original purpose anymore < 1572623943 967343 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :the problem is, writing a program in those languages is an exercise in masochism < 1572623967 797918 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :they're not as useful for general-purpose programming as the NES, commodore 64, C and unix, or MMIX < 1572624018 56598 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :lf94: Knuth's own languages are MIX with various extensions, MMIX, PL/MIX, and possibly PL/MMIX. TeX is written in none of those. > 1572624062 536786 PRIVMSG #esoteric :14[[07MIX (Knuth)14]]4 10 02https://esolangs.org/w/index.php?diff=66904&oldid=63414 5* 03B jonas 5* (+4) 10 > 1572624080 711646 PRIVMSG #esoteric :14[[07MMIX14]]4 10 02https://esolangs.org/w/index.php?diff=66905&oldid=52406 5* 03B jonas 5* (+4) 10 > 1572624094 751934 PRIVMSG #esoteric :14[[07Gb gates RISC14]]4 10 02https://esolangs.org/w/index.php?diff=66906&oldid=53641 5* 03B jonas 5* (+4) 10 > 1572624109 352081 PRIVMSG #esoteric :14[[07PL/MIX14]]4 10 02https://esolangs.org/w/index.php?diff=66907&oldid=66502 5* 03B jonas 5* (+4) 10 < 1572624158 247144 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I was almost expecting you were adding "TeX is not written in it." in each of those articles. < 1572624163 973432 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :But maybe that's more of a `wisdom thing to do. > 1572624212 549772 PRIVMSG #esoteric :14[[071.114]]4 10 02https://esolangs.org/w/index.php?diff=66908&oldid=59206 5* 03B jonas 5* (+4) 10 < 1572624269 541381 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :``` cat wisdom/pe*taneb* # like that entry? < 1572624270 359593 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :Taneb is not elliott, a rabbi, Mark Zuckerberg, James Bond, Queen Elizabeth the first, or anyone older than Queen Elizabeth the Second. Pending approval: Shigeru Miyamoto. < 1572624298 307482 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :languages that TeX isn't implemented in? < 1572624343 357892 :int-e!~noone@int-e.eu PRIVMSG #esoteric :lf94: you should get shachaf's opinion on Zig since it doesn't have exceptions < 1572624357 249644 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :shachaf: opinion pls < 1572624365 951278 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :That, and some other entries about inventions. < 1572624372 365566 :int-e!~noone@int-e.eu PRIVMSG #esoteric :but other than that... nothing really exciting to me. and this competition on hello world program size is getting boring < 1572624427 27335 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I've been writing Go lately, and Zig's `errdefer` would've come in handy a couple of times. < 1572624481 201812 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I'm hoping for some serious consolidation in the near future. < 1572624513 510380 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Having dozens of C-like languages that all have their own minor innovation is stupid. < 1572624598 583815 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Maybe LLVM made writing compilers a bit too easy. > 1572624606 283112 PRIVMSG #esoteric :14[[07Gb gates RISC14]]4 10 02https://esolangs.org/w/index.php?diff=66909&oldid=66906 5* 03B jonas 5* (-1) 10 < 1572624634 667065 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I still recommend C++ and rust < 1572624658 469540 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :not for the program that needs to be portable to 50 years from now < 1572624665 827269 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :for more ordinary programs < 1572624668 455588 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :rust has tempted me recently. I resist its temptation. < 1572624718 710952 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :imode: C++ then < 1572624751 559498 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :meh. < 1572624757 608884 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :python, C, and Go for me. < 1572624833 617742 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :imode: python is fine too for many purposes < 1572625664 540792 :kritixilithos!~kritixili@gateway/tor-sasl/kritixilithos QUIT :Ping timeout: 260 seconds < 1572625819 529630 :grumboo!~grumble@freenode/staff/grumble NICK :grumble < 1572627084 718676 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :forget C-likes < 1572627087 200400 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :use sed < 1572627121 812830 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I tried. < 1572627131 284449 :kritixil1thos!~kritixili@gateway/tor-sasl/kritixilithos JOIN :#esoteric < 1572627178 427456 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :I tried rust but gave up on it after a while < 1572627239 36667 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :rust .so's crash on reload < 1572627364 203278 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :it does have good docs tho < 1572628182 816140 :clog!~nef@bespin.org QUIT :Ping timeout: 268 seconds < 1572628978 130127 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :simple yet functional Forth dialect? < 1572628986 53811 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :with emphasis on ease of parsing < 1572629011 367034 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :anything will suffice as long as you can perform basic stuff and it's not so hard to parse/implement < 1572629165 995327 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :kspalaiologos: forth has "dialects" by way of definitions, not inherent language features. I have a forth-like that compiles to C and also has an interpreter. < 1572629182 55277 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :how long is the interpreter? < 1572629206 349518 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :369 lines of python. < 1572629233 54952 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :the compile-to-C stuff is even shorter, summing at around 100 lines. < 1572629241 423371 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :iirc, anyway. < 1572629245 649026 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Soni: how much of a compiler from a C-lke language can you implement in sed? < 1572629251 293716 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that'd be fun < 1572629254 968044 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :compiling C with regexes < 1572629335 319506 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :scratch that, the compile-to-C stuff is 230 lines, with the preprocessor being 88 lines of python. < 1572629361 737101 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I minimized it earlier. < 1572629543 65794 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :kspalaiologos: the underlying language kind of looks and behaves like brainfuck. the interpreter implements 44 instructions, and that includes a semi-janky preprocessor. < 1572629558 675558 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :75% of these instructions aren't really required. < 1572629570 415934 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :the underlying language kind of looks and behaves like brainfuck - I blindly take it < 1572629579 434912 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :open source? < 1572629615 673638 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://repl.it/repls/ImpressiveMagentaDestination < 1572629621 659862 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :here's the interpreter. < 1572629690 851646 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://hatebin.com/manaefqdti here's a prefix expression evaluator. < 1572629707 441310 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :complete with variables. < 1572629725 959599 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :why did you bundle the macro preprocessor in < 1572629734 578580 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :convenience. < 1572629742 359982 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :the language looks way more fun than stinky macros < 1572629776 467892 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :mainly because I didn't want to type ,$1,$?]:$~$[. over and over. < 1572629782 453015 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :for `else`. < 1572629813 224095 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :feel free to remove the macro system. < 1572629820 477462 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :it's just an instruction. < 1572629826 648461 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you don't have to use it. < 1572629983 20558 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :ok guys < 1572629990 740571 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :where the frig do I start with language design < 1572629992 526540 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I'm adding concurrency to the language as well kspalaiologos. < 1572630003 826567 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Should I follow some online course? < 1572630007 650220 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :lf94: think about the thing you want to write. figure out how to write it. < 1572630029 674250 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :lf94, dragon book < 1572630037 942298 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :look at some simple languages like B < 1572630048 861268 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :and try writing a lexer, parser and a -O0 codegen for it < 1572630070 939573 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :you may start out with lex + yacc < 1572630084 334343 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :nothing needs to involve those tools. < 1572630089 306002 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :sure < 1572630093 657972 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I want to learn proper language design < 1572630093 898448 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :but it's a good idea to use them < 1572630098 892585 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Not just off-my-seat stuff < 1572630100 757346 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :^ doesn't matter at all < 1572630100 982713 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :"proper language design". < 1572630106 73718 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :hahaha. < 1572630108 259427 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :when you write parser by hand < 1572630111 361848 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :that's funny. < 1572630113 736880 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :you are going to do it wrong 100% < 1572630122 576434 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :just use the ready tools as you start off < 1572630124 220505 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Why is that kspalaiologos < 1572630128 236871 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :cus you gonna die with painful death soon < 1572630137 339376 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I will use lex + yacc if that's what's typically doen. < 1572630138 306557 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I speak from my experience < 1572630139 386084 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :no, please, write a parser. it's entertaining. < 1572630149 827799 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :^ he probably doesnt know all the theory < 1572630153 520264 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :My goal is simple core + type system. < 1572630157 979744 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :pardon me fuckboy? < 1572630168 177758 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :he has no idea how to describe syntax, what is EBNF, what type of parsers there are < 1572630169 382748 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I < 1572630174 169809 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :'m speaking about lf94, not you < 1572630183 440289 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :lmao I'm just kidding. < 1572630199 591606 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :You describe syntax with EBNF dont you? < 1572630207 844142 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :sure < 1572630209 380008 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you can describe it, yeah. < 1572630215 916778 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :single pass, multi pass, etc parsers < 1572630223 790909 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :there's a pretty wide gradient with how complex language syntax can actually be. < 1572630238 261256 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :some just require bare tokenization, like forths. < 1572630252 19768 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :others are based on involved grammars. < 1572630272 891622 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :all parts of the gradient are valid, it just depends on what you value. < 1572630306 69572 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :starting in language design usually has someone ask "what do you value in a programming language?" < 1572630335 979799 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so, what do you value, lf94. < 1572630371 820470 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I value a language which can map to assembly nicely < 1572630390 795640 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It must have lambdas / anonymous functions < 1572630400 591118 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It must have first class for list operations < 1572630416 160663 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :lisp x lambda calculus? < 1572630421 456917 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :very easy one to lex and parse IMO < 1572630428 660009 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It must not be garbage collected < 1572630436 943629 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :that can be anything from a forth to a C dialect to picolisp. < 1572630454 52893 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It will be more like APL < 1572630461 557038 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :forth-like it is, then. < 1572630463 979662 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :ah yes < 1572630469 558994 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :the C dialect < 1572630480 844550 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I remember myself writing C89 compiler targeting brainfuck lol < 1572630515 224003 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :when designing a language it's important to keep the "semantic gap" in mind. < 1572630533 77994 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :i.e how far away on the abstraction hierarchy are you away from the bottom or the top. < 1572630541 293873 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I optimize for a small gap. < 1572630574 773210 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I want a systems level APL-like language. < 1572630584 53733 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Also: https://meta.stackexchange.com/questions/25840/can-we-stop-recommending-the-dragon-book-please lol < 1572630606 420597 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so when you're talking about anonymous functions, etc. that's a reasonably high level language feature. but you also want it to map to assembly.. < 1572630627 549552 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I mean it all boils down to assembly anyway, no matter the language. < 1572630661 105576 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I have anonymous functions. but because I value a small semantic gap as well as making multiple language features pull double duty, they're implemented as something more general: concurrently executing processes. < 1572630708 267678 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :list comprehensions I think will be a prime piece of my language < 1572630708 335208 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :and because of that small semantic gap, translating that to assembly is pretty trivial, involving minimal boilerplate. < 1572630719 425353 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :why do you value list comprehensions. < 1572630733 29473 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Because they allow you to generate lists in a very precise way. < 1572630741 753639 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :wait until you see dictionary comprehensions. :P < 1572630743 85440 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :And all programming is just manipulating lists on some leel. < 1572630753 493141 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :well there are monad comprehensions too. < 1572630756 896626 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It's all the same shit < 1572630774 501083 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :But imagine...a byte, 0x39, is also just a list. < 1572630787 275507 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :any language can have list comprehensions because list comprehensions aren't that 1. complex or 2. valuable in some scenarios. < 1572630801 693335 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :[x & 0x1; x <- 0x39] < 1572630810 292519 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :AND bitwise op on all bits of 0x39 < 1572630902 719684 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :It should be a language where everything is a list/string/sequence < 1572630905 606677 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :wouldn't... that just be 0x39 & (~0) < 1572630917 140645 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :yes, but in your case, you are specifically working with 8-bit byte < 1572630921 982050 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :now how do you 9 bit? :) < 1572630928 913199 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :it's an upcast. < 1572630932 794694 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you change nothing. < 1572630937 866878 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :[x & 0x1; x <- 0b111011101] < 1572630943 751294 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :~0 = 111111..... < 1572630945 345779 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :I just specify 9 bits < 1572630973 679673 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :next < 1572630978 727716 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :like I said, try it in C with various types. < 1572630986 345854 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :imode: how do you split 101 out the middle? < 1572630990 365519 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you don't have to change anything. so I don't see your point. < 1572630998 311456 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :1101 let's say (more unique) < 1572631000 531174 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :what do you mean "split 101 out the middle". < 1572631007 491611 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :111011101 < 1572631015 220524 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :X1101XXXX < 1572631017 510040 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :that < 1572631024 933801 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :what, you just want that section? < 1572631028 319878 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :yea < 1572631056 692500 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :> upcast < 1572631058 235674 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : error: < 1572631058 307354 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : • Variable not in scope: upcast < 1572631058 391432 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : • Perhaps you meant one of these: < 1572631059 172532 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :> and < 1572631060 740526 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : <[Bool] -> Bool> < 1572631082 833012 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :(0bX1101XXXX >> 4) results in 0bXXXXX1101. < 1572631092 92564 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :But you cannot do that in C < 1572631099 736421 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :uh, yeah. you can. < 1572631103 861450 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :You can specify 9 bits? < 1572631117 625300 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I can't specify 9 bits. but I can use a 16 bit value. < 1572631135 737356 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Maybe that is better... < 1572631138 612432 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :X) < 1572631165 891925 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :like I get it, it'd be interesting if you could work per-bit. but you can easily build this kind of stuff in any given language. < 1572631214 307628 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I can build custom control flow structures for it in mode, for example. < 1572631240 651453 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :$1234 for each-bit to-string display repeat < 1572631282 219459 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :each-bit extracts a bit. to-string converts that bit to a string. display displays the string. < 1572631290 903383 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :the `for` is just aliased to `begin`. < 1572631340 208616 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :How would each-bit work < 1572631353 495444 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :gets an index or somethnig? < 1572631391 694509 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Man maybe I should just start implementing a lisp < 1572631394 379830 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :well, my language is a forth-like, and as such assumes some state that each word (function, if you like) takes as input, changes, and then returns as output. < 1572631417 669092 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Compiled lisp that targets LLVM IR < 1572631447 978918 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Then add ad hoc type system < 1572631448 814520 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so if we expect the source number to be on top of the stack/head of the queue, we can say at every iteration, we duplicate it and bitwise AND it with 1. < 1572631462 275587 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :until the number is zero. < 1572631473 487476 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :to me type system is so important these days, for anything sane < 1572631482 939942 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :How would mode add a type system? < 1572631495 646435 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :how would a forth add a type system? < 1572631511 473805 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :there's a lot of ways you can do it. look at Factor for an example. it's statically typed iirc. < 1572631526 242135 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :whoops, nope. it has strong dynamic typing. < 1572631534 443842 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Factor_(programming_language) < 1572631597 10882 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :ah yes < 1572631607 670601 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :clicking on stackexchange link showed me that my rep bumped by +200 < 1572631643 326846 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :https://codegolf.stackexchange.com/a/191482/61379 < 1572631651 619409 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :a lot of effort and processing power has been put here lol < 1572631763 963827 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :imode: I've looked at Factor too. < 1572631771 333785 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Man plang theory is so fucky. < 1572631792 962503 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :"forth is good" "NO FORTH IS BAD" "forth is bad..." "wait, no, this person is convincing me otherwise again" < 1572631852 413485 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh also, < 1572631881 96924 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :UM-32 and GML have a lot of independent implementations, but don't use that as a heuristic for what's going to be useful 50 years from now, < 1572631898 746149 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :because most of them have already fallen off the web, and even the ones that haven't have probably bitrotten away < 1572631918 136878 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh right, postscript < 1572631920 954336 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :did we mention postscript? < 1572631929 401338 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :that's also a candidate, though not a very good one < 1572631930 89269 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :imode: can forth be compiled < 1572631938 655647 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :lf94: sure. mine is. < 1572631944 852306 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :directly to C. < 1572632142 429903 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :lf94: wanna see the for each-bit thing in action. < 1572632182 95031 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :Not right now :) < 1572632183 815893 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=blob;f=extra/spheres/spheres.factor;hb=HEAD < 1572632195 128030 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :This is like some C mix < 1572632297 638119 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://hatebin.com/agluuirids < 1572632350 389444 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://repl.it/repls/UnfoldedBaggyPiracy here it is, compiled and run. < 1572632382 697802 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :lemon! < 1572632384 609886 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :darn it < 1572632389 737679 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I knew I was forgetting to buy something < 1572632393 153241 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I should have bought lemons < 1572632398 20126 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :for fresh lemon juice on the fish < 1572632558 190851 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :did I just get the joke? < 1572632679 687772 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :for any iteration, the queue looks like . you can do anything with the bit, including accumulate it, but at the next iteration, we expect the source-number to be at the head of the queue. < 1572632696 415906 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :computing the sum of all the bits is pretty easy. < 1572632805 689866 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I've got an algorithmic question < 1572632830 441361 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :i've got given a std::vector of two integers < 1572632842 466716 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :the integers are aranged in pairs < 1572632852 521701 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :std::vector> ? < 1572632856 155250 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yes. < 1572632859 785806 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :neat. < 1572632886 375175 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :now, I have to assign number to these integers, so the ones in pair have unique numbers whether it's possible. < 1572632913 731870 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :what is the most efficient way of calculating how many ways are there to do that? < 1572632915 714208 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :can't seem to parse that, can you rephrase. < 1572632929 615296 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :calculating permutations of pairs? < 1572632938 200211 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :let's do it the other way < 1572632945 161192 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :let's assume the number is a person < 1572632951 785829 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :we have a vector of couples < 1572632972 817845 :FaeFly!znc@freenode/staff/firefly NICK :FireFly < 1572632978 533184 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :now, we have to assign some character trait to each of these < 1572632985 488435 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :so the ones in couples have different character traits < 1572633006 723276 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :let's assume all the people are polygamic so one person can have multiple partners < 1572633024 97769 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :how many ways are there < 1572633046 594393 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :to assign a different character trait for each person, so the people in couples have different character traits, when possible? < 1572633069 432056 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I don't know what "character traits" are but this is a permutation problem. < 1572633099 392826 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :it's just a feature of a person < 1572633145 201043 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you're handed a set of pairs. form a set of people from those set of pairs. then calculate all possible pairings of two people. < 1572633173 189686 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :n choose k. < 1572633188 73900 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://stackoverflow.com/questions/18859430/how-do-i-get-the-total-number-of-unique-pairs-of-a-set-in-the-database < 1572633203 117084 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kspalaiologos: character traits? like that crazy template argument to std::string in the C++ standard library? < 1572633203 785433 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :huh, I don't think this is the case < 1572633213 573715 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :b_jonas, no lamo < 1572633215 259698 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :*lmao < 1572633233 565394 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :no ordering, no repeats means n choose k. < 1572633236 638659 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :let's look at this example < 1572633243 981935 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :assume the following couples < 1572633256 296028 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :A B, B C, A C, C D < 1572633266 797448 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :now, if we had three possible character traits for these < 1572633273 751288 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :there are 12 ways to assign them to these people < 1572633290 557587 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so it's really a triple. < 1572633301 263434 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :we can also have ten character traits < 1572633304 874914 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :or twelve < 1572633311 761800 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :also I should have fried the fish on a higher temperature < 1572633312 823377 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :but it's a triple. where the third element is a list. < 1572633351 617959 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :now I don't really understand < 1572633360 654047 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :n!/k!(n - k)! < 1572633371 796714 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :but segmented. kind of. < 1572633380 182982 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :in which way segmented? < 1572633392 793537 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :can you point me to a formula that can calculate the result of example I've given? < 1572633398 322121 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you want all possible triples of (X, Y, Z). < 1572633400 71556 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I'll figure out reest myself < 1572633410 381045 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :X and Y are a couple, Z is a character trait. < 1572633419 667122 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :each of these has a character trait < 1572633420 540843 :kritixil1thos!~kritixili@gateway/tor-sasl/kritixilithos QUIT :Ping timeout: 260 seconds < 1572633429 45913 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :and if there is a couple, its best when they have different traits < 1572633432 1371 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :you are underspecifying your problem. < 1572633439 438173 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :explain it in clear language. < 1572633440 690371 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I have specified it before < 1572633452 382170 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :alright, again < 1572633463 521426 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I've got a set of pairs < 1572633480 184764 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I have to assign a number to each element of every single pair < 1572633500 605491 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :i have to calculate, how many ways are there, to assign them < 1572633506 373379 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :with a few gotchas < 1572633529 894478 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :do you want duplicates. < 1572633536 583954 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :a) in a pair, it would be the best, if every element has different number < 1572633541 356139 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :b) pairs don't repeat < 1572633571 484730 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :c) there is actually given upper limit for a number to assign < 1572633582 535095 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :(with a set of pairs, obviously) < 1572633595 562672 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :let's review these pairs < 1572633599 825280 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :A and B is the first pair < 1572633604 290547 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :B and C is the second pair < 1572633609 213559 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :A and C is the third pair < 1572633609 592356 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so the possible combinations of n items arranged into k sets is n!/(k! * (n - k)!) < 1572633640 762738 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :10 items arranged into pairs is 10!/(2! * (10 - 2)!) < 1572633643 433098 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :^ are you following the rule that items in a pair should get different numbers assigned? < 1572633652 772007 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :also, you're given the number of pairs < 1572633654 808055 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I'm just presenting n choose k. < 1572633668 301092 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :you just need to calculate how many ways are there to assign number to each element of pair < 1572633693 124231 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :here's a better question: where did this come from. < 1572633703 107263 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :is this some kind of programming challenge. < 1572633719 912831 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :it sounds almost like a math puzzle. < 1572633725 833351 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :not a programming challenge per se, I just need to get better algorithm on my hands < 1572633725 869717 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :for undergrads. < 1572633732 293277 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :because the one I've got isn't quite right < 1572633739 27531 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :and takes way too long to execute < 1572633754 168105 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :well whatever it is it's not so much an algorithm moreso an expression of the variables that make up your problem.. < 1572633792 550601 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so each pair has two people in it, and each person gets assigned a number, but the numbers have to be different. < 1572633804 826040 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :both within the pair and outside the pair. < 1572633827 627341 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so A = 1 and B = 2 holds regardless of who A and B pair up with, right. < 1572633869 471206 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :in which case you still have n-choose-k because A and B can just be labeled with unique numbers. changing the names of the items of each pair doesn't change the problem. < 1572633893 36574 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :so how do I use this in my algorithm, because I'm pretty much lost now < 1572633942 982123 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :four given pairs, AB BC AD CD, and I may assign to every leter a number from 1 to 3 < 1572633951 295422 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :kmc: as long as you limit yourself to ASCII x86 instructions, sure why not < 1572633965 166129 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :how do I calculate how many ways are there to do that, given that people in pairs need to have different numbers < 1572633969 795436 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :count the number of unique people in your vector of pairs (add them to a set and compute the count of elements in the set), then feed that into count!/(2! * (count - 2)!) < 1572633981 683731 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :where ! is factorial. < 1572633981 941908 :Soni!~quassel@unaffiliated/soniex2 PRIVMSG #esoteric :ever heard of a certain "executable paper"? < 1572633988 417811 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :alright > 1572633990 161356 PRIVMSG #esoteric :14[[07THCA14]]4 N10 02https://esolangs.org/w/index.php?oldid=66910 5* 03Moon 5* (+421) 10Begin page. Need to build a few templates < 1572634078 272146 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :it may be different but that's at least a starting point. < 1572634096 854993 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I'll think about it < 1572634112 658552 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :because I'm still unsure as to the results you want. < 1572634119 942252 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1572634187 237380 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :given AB,BC,AD,CD, assign a number to each letter such that, when each letter is substituted for its number, the pair is unique (i.e no pairs like (1, 1)). < 1572634193 107336 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :is this closer to the thing you want. < 1572634200 300800 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yeah < 1572634212 978272 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :and I need to calculate amount of ways a number can be assigned to them < 1572634217 694674 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :alright, then what I gave you doesn't work. < 1572634238 407480 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :and the maximum number to assign is given < 1572634257 884272 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :so you have your set of labels, the set 1 to N, where N is your given. < 1572634263 925117 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :and you have your set of pairs. < 1572634278 892320 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yes < 1572634299 94121 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :can two letters have the same number but be in different pairs. < 1572634341 378223 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :e.g. pairs: AB CD, then yes, A=C=1 B=D=2 is a valid solution < 1572634360 764325 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :that complicates things a bit. > 1572634382 383167 PRIVMSG #esoteric :14[[07Template:TernTrue14]]4 N10 02https://esolangs.org/w/index.php?oldid=66911 5* 03Moon 5* (+162) 10Ternary True > 1572634474 239154 PRIVMSG #esoteric :14[[07Template:TernUnkwn14]]4 N10 02https://esolangs.org/w/index.php?oldid=66912 5* 03Moon 5* (+165) 10Ternary Unknown < 1572634484 504836 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :the stupidest thing that could possibly work is brute force search. < 1572634493 439698 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :have you tried that. < 1572634497 993843 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yes < 1572634504 726087 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :unsatisfying results < 1572634504 875262 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :can I see some code. > 1572634517 191751 PRIVMSG #esoteric :14[[07Template:TernFalse14]]4 N10 02https://esolangs.org/w/index.php?oldid=66913 5* 03Moon 5* (+162) 10Ternary False < 1572634524 120197 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I'll send you over when I get to the PC I've been using < 1572634532 523268 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :sure. < 1572634541 458017 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :lf94: What sort of opinion do you want? < 1572634542 275400 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :this problem has more than likely been solved somewhere before. < 1572634576 71688 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :shachaf: Do you think Zig is a viable long term lang? < 1572634588 485915 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :^ heard about it < 1572634596 79284 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :no. < 1572634599 195135 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yet can't help, I don't know zig < 1572634625 924241 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think Zig is going in a promising direction? I like a lot of the things they're doing. < 1572634630 506844 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :universal long-standing concepts need to be simple enough and popular enough to withstand erosion by time. < 1572634643 536680 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :zig has none of those characteristics. but it is nice. < 1572634678 12991 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know what the question means. Certainly Zig is (rightly) pretty volatile right now. < 1572634794 479554 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :imode, any ideas? < 1572634805 559900 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :if none, I'll just settle on my bruteforce probably < 1572634809 365003 :kritixil1thos!~kritixili@gateway/tor-sasl/kritixilithos JOIN :#esoteric < 1572634832 953247 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :kspalaiologos: let me get back to you on that. < 1572634861 608564 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yeah, sure < 1572634916 541323 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :I'm sure this problem has a name somewhere. < 1572634932 815143 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :wait. < 1572634937 20678 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :isn't it just graph coloring. < 1572634960 59670 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :it could be < 1572634962 467241 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Graph_coloring < 1572634970 451156 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :yeah lol < 1572634972 53722 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :thats it < 1572634974 42240 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :draw out the pairs as a graph, change the numbers to colors. < 1572634987 767415 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :thank god for doodle paper. < 1572635029 414219 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :well there you are. you're looking for the possible colorings of a graph. < 1572635036 29797 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :doodle paper? < 1572635040 755342 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :what's this < 1572635046 765045 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :yeah I have a notepad that I just sketched your problem out on. < 1572635099 760221 :clog!~nef@bespin.org JOIN :#esoteric > 1572635186 957236 PRIVMSG #esoteric :14[[07Template:Tern2InLogicTable14]]4 N10 02https://esolangs.org/w/index.php?oldid=66914 5* 03Moon 5* (+376) 102 Input Logic Table > 1572635419 271657 PRIVMSG #esoteric :14[[07THCA14]]4 10 02https://esolangs.org/w/index.php?diff=66915&oldid=66910 5* 03Moon 5* (+177) 10AND table. < 1572635622 241921 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :so I need to calculate chromatic polynomial. < 1572635631 150255 :kspalaiologos!~kspalaiol@176.221.122.71 PRIVMSG #esoteric :I shouldn't have slept at math lessons > 1572635808 288668 PRIVMSG #esoteric :14[[07THCA14]]4 10 02https://esolangs.org/w/index.php?diff=66916&oldid=66915 5* 03Moon 5* (+9) 10 < 1572635967 966268 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN :#esoteric < 1572636520 883179 :MDude!AdiIRC@c-174-55-101-236.hsd1.pa.comcast.net QUIT :Quit: Going offline, see ya! (www.adiirc.com) > 1572636608 108333 PRIVMSG #esoteric :14[[07THCA14]]4 10 02https://esolangs.org/w/index.php?diff=66917&oldid=66916 5* 03Moon 5* (+21) 10 < 1572636783 936668 :imode!~linear@unaffiliated/imode QUIT :Ping timeout: 264 seconds < 1572638865 703304 :kspalaiologos!~kspalaiol@176.221.122.71 QUIT :Quit: Leaving < 1572639139 371857 :kritixil1thos!~kritixili@gateway/tor-sasl/kritixilithos QUIT :Quit: leaving < 1572639480 764251 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric : It must have lambdas / anonymous functions It must not be garbage collected <-- i have the impression combining those two features is particularly hard < 1572639546 202888 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :because once anonymous functions are first class, deciding life time becomes undecidable without GC < 1572639785 313508 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oerjan: deciding the lifetime is undecidable period. garbage collector is just the generally accepted good approximation that we accept, in taht you have to write your program such that it doesn't take consume much memory if you keep everything that a mark-and-sweep garbage collector couldn't prove unused < 1572639850 571630 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :what strategy C++ uses to work with lambdas’ lifetimes? < 1572639856 682045 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :so now if you write programs in certain ways, you have to explicitly mark some references as weak or as weak-keyed for the gc to be able to free stuff up < 1572639918 556970 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1572640132 640551 :int-e!~noone@int-e.eu PRIVMSG #esoteric :oerjan: GC is totally optional, you can run out of memory instead. < 1572640167 300937 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :or require more help from the program than you need with a GC < 1572640169 915388 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :thanks nitpickers < 1572640190 505856 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :you're not wrong < 1572640275 986552 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :but anyway, i think my point was that without GC it's going to need a far more technical solution to even get close, which lf94 probably doesn't want to implement < 1572640290 895393 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :maybe lambdas are a mistake < 1572640292 645848 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric ::v < 1572640310 384306 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :lambdas are good < 1572640430 772139 :lf94!~lf94@unaffiliated/lf94 PRIVMSG #esoteric :named lambdas are just functions :v < 1572640548 543741 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :sure, scoped function definitions and first-class functions are not much worse < 1572640926 64373 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :(and still need GC) < 1572641044 742648 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :how does C++ treat closures’ lifetime? < 1572641112 519299 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :as it doesn’t have a default GC, does it try something else to leak memory in these cases less? < 1572641126 540129 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why would it leak memory? < 1572641166 243373 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :C++ lambdas are just a function together with an autogenerated struct. < 1572641182 595159 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The struct can either have copies of things you capture or pointers to them. < 1572641298 170452 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :hm maybe I ask not what I mean to ask < 1572641343 797144 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ask not what you mean to ask, but what your ask means < 1572641349 189195 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :let’s say, are lambdas in general different? < 1572641367 885793 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :from the kind one has in C++ < 1572641507 297799 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :s/lambdas/closures < 1572641546 513891 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :hm I should logread that tomorrow < 1572641744 725519 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :13:28 < int-e> oerjan: GC is totally optional, you can run out of memory instead. < 1572641747 729864 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :https://groups.google.com/forum/message/raw?msg=comp.lang.ada/E9bNCvDQ12k/1tezW24ZxdAJ < 1572641797 266750 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :arseniiv: at a broad conceptual level C++ lambdas (and Rust lambdas, which are very similar) are like lambdas in other languages < 1572641802 886381 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :they can be called, they have captures < 1572641820 137846 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :since these are languages with explicit memory management, things can be captured by value or by mutable or immutable reference < 1572641834 567058 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :(by value meaning by move or copy, depending) < 1572641860 449738 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in Rust the lifetime of reference captures is checked by the compiler. so you cannot return a closure which refers to something on the stack of the function which made it < 1572641877 529280 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in C++ of course there is no such checking and that would be undefined behavior (perhaps the compiler can warn in some simple cases, but it's not guaranteed) < 1572641890 647489 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :the unusual thing about lambdas in these languages is that they use static dispatch by default < 1572641905 528503 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :a function that takes a closure will have a generic/templated type < 1572641924 718144 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :template void use_closure(T closure) { ... closure(); ... } < 1572641945 419916 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :when you call use_closure([]() { ... }) < 1572641986 764982 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it makes a struct type for the lambda, containing its captures (nothing in this case), implements operator() for that type, and instantiates the templated use_closure() at that type T < 1572642021 245274 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :that struct type cannot be named, which is why 'auto' is not only a convenience in C++ but is essential < 1572642041 659342 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :there are no function pointers involved in calling a lambda this way, and the lambda body can be inlined into the function it's passed to, and all sorts of optimizations performed < 1572642065 250986 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and that's why you can make a chain of higher order functions like map, filter, etc. and it compiles down to a flat loop (if the compiler is smart enough) < 1572642068 212072 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :very cool < 1572642080 753379 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in Rust you'd do fn use_closure(closure: T) < 1572642093 886164 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :which is basically the same except that Rust has a trait system so you can say that the type T must be a function taking and returning nothing < 1572642099 719866 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :you could also have Fn(int) -> char < 1572642111 967381 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :now there is another tricky thing < 1572642127 174348 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kmc: right. and the drawback is that, unless you write the both standard library and the compiler in tricky ways to optimize this, you'll end up with twenty copies of the red-black-tree rebalancing function compiled into your binary < 1572642135 943564 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :and ten copies of a mergesort < 1572642147 306949 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :when the closure is created, you can move non-copyable types into the closure < 1572642153 3836 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but when it's called, can you move them *out*? < 1572642158 406925 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :this is why Rust has Fn, FnMut, and FnOnce < 1572642168 235507 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :when called they take &self, &mut self, and self, respectively < 1572642182 557591 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :so FnOnce can move out of its captures (and therefore such a closure can only be called once) < 1572642197 546814 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :FnMut can mutate its captures, Fn can only read them < 1572642210 424762 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :C++ has a similar thing but it's too arcane for me to remember < 1572642223 854478 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :now this is all well and good but sometimes you *want* dynamic dispatch < 1572642241 868906 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :fortunately this can be done using each language's respective dynamic dispatch features without anything particularly special to functions < 1572642283 78020 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in C++ every lambda's type is a subclass of std::function so you can upcast &my_unnameable_lambda_type to &std::function and pass that pointer around < 1572642290 828659 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in that case operator() is a virtual call < 1572642303 211645 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric : C++ has a similar thing but it's too arcane for me to remember => yeah I heard something about lambdas which could only read their arguments in C++ < 1572642303 558341 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kmc: no, that's not how std::function works I think < 1572642304 285984 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in Rust you use the "trait object" feature which, again, creates a vtable < 1572642311 299440 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :in C++ < 1572642311 997645 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :b_jonas: isn't it? < 1572642320 127124 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :well, I'm not really sure < 1572642326 423773 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :because I don't use std::function in C++ < 1572642333 327575 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :okay < 1572642337 401688 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :so why did you say that < 1572642349 202341 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Converting to std::function does a heap allocation, right? < 1572642360 937725 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: I think so, yes < 1572642368 470503 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :but you can also use it by reference without that? < 1572642372 237526 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i'm not totally sure < 1572642375 894803 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :I may be wrong with what I said above < 1572642380 188177 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Man, all this C++ nonsense is nonsense. < 1572642391 893780 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in Rust you can make heap-allocated trait objects as well as by-reference ones < 1572642399 794420 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :also what's the benefit of writing map and filter instead of for and if < 1572642404 268957 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :shachaf: no, not necessarily, in modern libstdc++ it has like one or two pointer of space reserved in the std::function itself, and if the function object fits there then it won't allocate < 1572642408 278519 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Box vs &dyn MyTrait < 1572642410 284577 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :like how std::string is implemented these days < 1572642413 555818 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :b_jonas: yeah < 1572642428 722656 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :but without where std::string is now no longer trivially swappable < 1572642437 197435 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Box is like C++'s std::unique_ptr so it has automatic, deterministic deallocation but can't be copies < 1572642449 541817 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :without the drawback where std::string is no longer trivially swappable or trivially move-assignable < 1572642463 839719 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :it has to check if it has to rewrite a pointer that points inside itself < 1572642467 665343 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Rust also has refcounted types, the cool thing there is that there are both thread-local and multithreaded versions, the former is faster, and the compiler will error if you try to share them between threads < 1572642471 626247 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :so that's pretty neat < 1572642485 864985 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :whee < 1572642489 378549 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :infodump < 1572642498 128697 :myndzi!myndzi@tetrisguide.com JOIN :#esoteric < 1572642503 287532 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: if you want a real puzzle try making an exception-safe variants library in C++ without heap allocation < 1572642511 522238 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kmc: and they both work with heap-allocated arrays, with the help of some cleverly hidden magic < 1572642511 925459 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :exceptions are scow < 1572642521 827400 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :dynamic length arrays that is < 1572642526 316542 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :-fno-exceptions < 1572642564 985575 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :oh, I had a weird dream by the way < 1572642608 482431 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What are variants, and what's a variants library? < 1572642620 220707 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :I dreamed that I found a case where using exception throwing and catching is actually useful, not because I have to interface with a preexisting library whose interface involves exceptions, but because that's intrinsically what the control flow was like < 1572642624 935508 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: sum types < 1572642625 388918 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :shachaf: tagged unions < 1572642634 336193 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :yeah, sum types < 1572642639 569009 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why would that need heap allocation? < 1572642655 801683 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's just some data. < 1572642692 628401 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kmc: can you take the C++ standard library route where if an exception is thrown then the variant can end up empty even if an empty branch isn't declared, or do you want a variant that does double-buffering? < 1572642702 998274 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :b_jonas: that's one issue yes < 1572642710 447780 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :kmc: and how exception safe do you want? can move assignment or swapping throw too? < 1572642719 298888 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: for one thing there is trickery when you change the type and the constructor of the new type throws < 1572642722 302700 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i don't know < 1572642730 275411 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :chris was explaining why it's so tricky and he convinced me at the time, but i forgot the details < 1572642733 289978 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :anyway, bbl < 1572642735 775426 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :<3 < 1572642736 590811 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :this is why i use c < 1572642743 907364 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :see you kmc < 1572642775 951178 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :all the c++ trickery is a self-made problem < 1572642783 251883 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :you gotta sfinae the recursive templates < 1572642828 610085 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :shachaf: can you do that in constexpr land yet? < 1572643046 433726 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :shachaf: anyway, C++ used to be hard, but it's almost solved now. we just need these few more language extensions into the standard and then it will be a very easy to program and versatile language where you can just write programs naturally < 1572643068 414876 :olsner!~salparot@c80-217-180-83.bredband.comhem.se PRIVMSG #esoteric ::D < 1572643077 555960 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Whew! < 1572643085 574166 :olsner!~salparot@c80-217-180-83.bredband.comhem.se PRIVMSG #esoteric :the essence of c++ is something like creating worse problems so you can pat yourself on the back for coming up with more complicated solutions < 1572643132 745193 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :olsner: oh, as in "I know, I'll just use C++! Now he has two problems." < 1572643153 576616 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( plus 1 for every language revision ) < 1572644057 233845 :arseniiv!~arseniiv@95.105.3.47.dynamic.ufanet.ru PRIVMSG #esoteric :lol < 1572644575 350410 :imode!~linear@unaffiliated/imode JOIN :#esoteric < 1572644715 900589 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :ACTION spots a myndzi  < 1572644731 725069 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :`? myndzi < 1572644732 917164 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :myndzi used to keep us all on our feet. < 1572644737 270638 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :^celebrate < 1572644737 306882 :fungot!~fungot@unaffiliated/fizzie/bot/fungot PRIVMSG #esoteric :\o| c.c \o/ ಠ_ಠ \m/ \m/ \o_ c.c _o/ \m/ \m/ ಠ_ಠ \o/ c.c |o/ < 1572644747 140571 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :looks a bit defunct, though < 1572645510 394388 :int-e!~noone@int-e.eu PRIVMSG #esoteric :hmm, which bot went with that < 1572645530 112917 :int-e!~noone@int-e.eu PRIVMSG #esoteric :oh < 1572645816 869590 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric : \o/ _o_ < 1572646010 540472 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 276 seconds < 1572646085 532916 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :a thought just occurred to me. < 1572646168 722248 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :to do iteration through something, all you have to do is 1. spawn a process and send your ID to it. 2. send your collection to the process. 3. drop the handle to the process. 4. `receive` in a loop. < 1572646192 268359 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :the generating process can send you data, but you can't send data to it. < 1572646200 671854 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :but you don't need to. < 1572646211 154309 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :interesting. < 1572648470 597712 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`pbflist < 1572648471 345482 :HackEso!~h@unaffiliated/fizzie/bot/hackeso PRIVMSG #esoteric :pbflist: shachaf Sgeo quintopia ion b_jonas Cale kmc < 1572648514 242053 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :lol < 1572649895 8325 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :shachaf: please use an url with pbflist, because afterwards it's hard to tell which strip came out when and so hard to tell whether a strip has been listed yet < 1572649905 827903 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu PRIVMSG #esoteric :right now you probably mean https://pbfcomics.com/comics/the-treat/ < 1572650277 638293 :imode!~linear@unaffiliated/imode PRIVMSG #esoteric :in fact... you could probably define a `bitvector` word that takes a number and, upon request, sends you back the next bit in the number... < 1572650330 101386 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'd rather not, but I can refrain from pbflisting at all < 1572651967 479135 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esoteric :eep, sub-zero forecast < 1572651988 270558 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :@metar KOAK < 1572651988 599440 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :KOAK 012253Z 30008KT 10SM CLR 22/M01 A3010 RMK AO2 SLP194 T02171011 < 1572652345 643610 :int-e!~noone@int-e.eu PRIVMSG #esoteric :. o O ( sub zero is a no-op ) < 1572652484 128347 :b_jonas!~x@catv-176-63-13-230.catv.broadband.hu QUIT :Remote host closed the connection