< 1531785630 234692 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :which might be a plot reason for them _not_ to do it - it would keep them seemingly infallible < 1531785773 740557 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :They only used their shortest one so far, right? < 1531785867 820363 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :...i thought it was the longest? time to check. < 1531785971 437052 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, you're right. < 1531786091 998207 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :http://www.giantitp.com/comics/oots0667.html and http://www.giantitp.com/comics/oots0897.html < 1531786096 565560 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So there's one short and one long one left. < 1531787232 687844 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :thanks, i didn't find the first one < 1531787266 971769 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :and naturally got drawn into archive binging... < 1531787447 782313 :S_Gautam!uid286066@gateway/web/irccloud.com/x-fussqpbtpoadolby JOIN :#esoteric < 1531788082 395405 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :that globe in the last girl genius appears to have atlantis < 1531788119 474336 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :oerjan was drawin into archive binging so much that he's reading the wrong comic < 1531788141 579303 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :and a strange red broken line < 1531788157 727720 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :well, i got better and went back to my usual webcrawl < 1531788163 246415 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :which is a bit delayed < 1531788206 581844 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :so apparently gil never saw the one in mechanicsburg, i guess tarvek wasn't close enough < 1531788316 20769 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :next up, dmm's site < 1531788320 33246 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :or possibly eating < 1531789895 592208 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :eating won this one < 1531791889 285496 :deltab_!~deltab@ds6266.dedicated.turbodns.co.uk NICK :deltab < 1531792684 467514 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 260 seconds > 1531797436 666457 PRIVMSG #esoteric :14[[07This=That14]]4 10 02https://esolangs.org/w/index.php?diff=56739&oldid=31337 5* 03A 5* (+251) 10 > 1531797582 713096 PRIVMSG #esoteric :14[[07This=That14]]4 10 02https://esolangs.org/w/index.php?diff=56740&oldid=56739 5* 03A 5* (+12) 10Oops! I did this wrong. > 1531797689 968287 PRIVMSG #esoteric :14[[07Talk:This=That14]]4 10 02https://esolangs.org/w/index.php?diff=56741&oldid=23195 5* 03A 5* (+117) 10 < 1531798105 60819 :oerjan!oerjan@hagbart.nvg.ntnu.no QUIT :Quit: Nite > 1531798185 582759 PRIVMSG #esoteric :14[[07Multi-machine14]]4 N10 02https://esolangs.org/w/index.php?oldid=56742 5* 03A 5* (+437) 10Created page with "A Multi-machine is an extremely simple program type invented bt [[User:A]] to check decision, looping, addition, subtraction, termination, input, and output in a simpler way c..." > 1531798539 624383 PRIVMSG #esoteric :14[[07Multi-machine14]]4 10 02https://esolangs.org/w/index.php?diff=56743&oldid=56742 5* 03A 5* (-9) 10 > 1531798660 733647 PRIVMSG #esoteric :14[[07Multi-machine14]]4 10 02https://esolangs.org/w/index.php?diff=56744&oldid=56743 5* 03A 5* (+224) 10 > 1531799683 820409 PRIVMSG #esoteric :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=56745&oldid=56697 5* 03A 5* (+92) 10/* Definer */ > 1531799926 659661 PRIVMSG #esoteric :14[[07Truth-machine14]]4 10 02https://esolangs.org/w/index.php?diff=56746&oldid=56745 5* 03A 5* (-3) 10/* Definer */ < 1531800289 536603 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I think I understand the importance of the Stg and Cmm internal languages now < 1531800419 512370 :XorSwap!~XorSwap@wnpgmb016qw-ppp-103-253.dynamic.bellmts.net QUIT :Ping timeout: 260 seconds > 1531800435 505109 PRIVMSG #esoteric :14[[07Definer14]]4 10 02https://esolangs.org/w/index.php?diff=56747&oldid=22105 5* 03A 5* (+175) 10/* Examples */ > 1531800622 905002 PRIVMSG #esoteric :14[[07Definer14]]4 10 02https://esolangs.org/w/index.php?diff=56748&oldid=56747 5* 03A 5* (-12) 10/* Examples */ > 1531801087 795623 PRIVMSG #esoteric :14[[07Definer14]]4 10 02https://esolangs.org/w/index.php?diff=56749&oldid=56748 5* 03A 5* (+18) 10/* Examples */ < 1531801159 975709 :erkin!~erkin@unaffiliated/erkin QUIT :Quit: Ouch! Got SIGIRL, dying... < 1531802754 38505 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1531812068 405938 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1531812335 386654 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Ping timeout: 240 seconds < 1531812462 755139 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1531812620 522820 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :!! < 1531812625 458366 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I just compiled my first thing < 1531812679 420233 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :provided, it was very simple: main = main < 1531813401 435664 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1531813685 592970 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: NICE! < 1531813694 528815 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :can you also compile a hello world? < 1531813699 234284 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :no < 1531813705 942368 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :or do you have no IO in this thing? < 1531813712 457628 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I'm currently inspecting the assembly for 'id' and (.) to see if it's correct < 1531813749 966285 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :then I'll implement compilation of constructors and pattern matches < 1531813756 287630 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :then probably let-bindings < 1531813776 431571 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :and I need to figure out what to do with non-trivial pattern bindings in lets or global scope < 1531813795 324317 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: so you'll have algebraic types? < 1531813822 6890 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531813824 576929 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :arbitrary algebraic types that you can define in simply typed, or just a few built-in ones? < 1531813829 738007 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I guess it doesn't matter much < 1531813835 702426 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :there isn't a typechecker yet btw < 1531813843 498200 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :How much can I cheat < 1531813845 468660 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that just makes the typechecker harder, not the code generation < 1531813846 480002 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :arbitrary < 1531813850 618254 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :there's a "data" declaration < 1531813857 623838 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :By compiling a Haskell-like language to Rust. :D < 1531813870 798353 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :Lymia, not by much < 1531813899 394751 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :It avoids all the low level nightmares like low level representation of ADTs. < 1531813903 218900 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :At least < 1531813909 891939 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :not really no < 1531813936 489000 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :Not really? < 1531814045 29239 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :wob_jonas, oh and there's no GC yet lol < 1531814067 941429 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :I suppose what I mean is < 1531814083 929021 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: sure, you can add the GC later < 1531814091 945260 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :I get to avoid all the less fun low level stuff, and just focus on the interesting stuff like the type inference. < 1531814116 375785 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :Lymia, then write a lambda calculus interpreter in haskell < 1531814133 178330 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :I guess :P < 1531814143 202114 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: do you optimize function calls with multiple arguments so you don't create a temporary bound function when the compiler sees the first argument and then call into that when it sees the second argument? < 1531814155 967031 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :no < 1531814167 695472 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it's a chain of closures with increasingly more upvalues < 1531814197 30018 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :their entry code is very short though < 1531814213 105119 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :wait, is this because you're doing a lazy interpreter? < 1531814241 748321 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also, wow, this was fast < 1531814318 571269 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :of course, call by name like I said < 1531814357 77378 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :why? do you just want a mini-haskell interpreter? < 1531814361 291605 :AnotherTest!~turingcom@natx-145.kulnet.kuleuven.be JOIN :#esoteric < 1531814421 631138 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531814436 480254 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ouch. but if that's what you want, sure, go on < 1531814605 922695 :Lymia!lymia@magical.girl.lyrical.lymia.moe PRIVMSG #esoteric :How hard are thunks to implement anyway? < 1531814676 455402 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I imagine they're something that are easy to implement in a way that's subtly wrong < 1531814726 537470 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: yes, the fiends did make such a comment too, not only xykon: see http://www.giantitp.com/comics/oots0668.html and http://www.giantitp.com/comics/oots0633.html < 1531814745 510973 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :especially the first one. in the second one they just misdirect Vaarsuvius < 1531814858 901538 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :fun < 1531814865 175586 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :gdb will rewrite f__g into f.g < 1531814990 664536 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it also cannot infer arguments correctly for some reason? < 1531815122 216490 :Phantom_Hoover!~phantomho@2a02:c7d:485a:3300:fb8b:fb15:c1d3:a33a JOIN :#esoteric < 1531815122 426824 :Phantom_Hoover!~phantomho@2a02:c7d:485a:3300:fb8b:fb15:c1d3:a33a QUIT :Changing host < 1531815122 426878 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1531815142 25092 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 264 seconds < 1531815144 947607 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: that latter is probably because you didn't use the right calling conventino < 1531815178 192117 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I did < 1531815181 770631 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :the code works fine < 1531815204 83366 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it's just that gdb keeps telling things are different from what they are < 1531815251 51621 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :do you write any debug info? maybe gdb doesn't know how many and what type of arguments your functions have. < 1531815395 926462 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I run 'as' with -g and the rts C code is compiled with -g < 1531815451 390687 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: um, but as won't know how many arguments your assembly function has. it will just know to write debug info to identify all symbols, such as all functions where they know the name because the as code has it. < 1531815482 995501 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :wob_jonas, no like when I invoke a C function < 1531815493 652846 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I put stuff into %rdi, %rsi, %rdx, %rcx, ... < 1531815513 377797 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and is that C function compiled with debugging info too? < 1531815516 474780 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :and the compiled C code looks for arguments in exactly those registers < 1531815529 481377 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :but for some reason gdb looks elsewhere < 1531815530 211864 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531815544 760626 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :also, you've made sure that you don't run a too old gdb or a too old gcc, right? ancient gdb has mysterious bugs. < 1531815555 683990 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :anything from the last few years should be fine < 1531815571 739877 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :unless it's Apple's releases of course < 1531815594 13207 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :strange < 1531815713 481789 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and you do the linking with ld in gnu binutils or gold from gcc, so the debug info should get correctly propagated, right? < 1531815867 816276 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I wonder if there's a way to directly ask gdb what he thinks the prototype of that function is, even if it's not called < 1531815893 283079 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I guess you could try to ls that function, which should at least make sure that some debug info got through. < 1531815911 85355 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What comment? < 1531815971 591709 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: the comment about what evil people want and that they're not one happy family < 1531815992 704128 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :re " My faulty memory told me that it was the fiends who made the comment about the sides." < 1531816004 324662 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, but I remembered the specific phrasing. < 1531816011 86892 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"they don't know about some of those yet" < 1531816016 644988 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So it was definitely faulty memory. < 1531816016 697479 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :the fiends say they don't want either side among Redcloak's Team Evil and the OOTS to win < 1531816023 100711 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Right. < 1531816189 186103 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :seems to work! < 1531816209 136578 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :what seems to work? < 1531816219 817645 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :ah er I just fixed a bug < 1531816220 465550 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric ::w < 1531816321 829810 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :so. constructors and pattern matching < 1531816351 851036 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :can you compile function calls and lambdas with upvalues (closures) yet? < 1531816356 415542 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531816358 734319 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :nice < 1531816365 506024 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :(.) is one such < 1531816408 782466 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I mean it wouldn't be much of a challenge if I didn't implvement upvalue handling duh < 1531817262 374606 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: sure, but you could implement handling algebraic types and pattern matching into local variables before you implement function calls < 1531817282 241507 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :"local variables" < 1531817311 384091 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yes, local to the function you have, which is built out of constructors and general pattern matching including let < 1531817469 686018 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but I guess if you want this to be a mini-haskell, then it makes sense to start with closures on the heap, since they're already TC < 1531818147 947837 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :mniip: you're making me want to try writing a compiler < 1531818694 159827 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: anyway, that was quick. you only started writing this yesterday. I'll be interested to see what you get when it's ready. < 1531819197 117908 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :okay so pattern matching is where local variables come in < 1531819328 939928 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: yes. pattern matching binds values into local variables. < 1531819348 127821 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :are you implementing general pattern matching, or just matching on a single level of constructor? < 1531819356 556514 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :general, shouldn't be an issue < 1531819358 699362 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I mean, general patterns which can be nested or even just a variable < 1531819370 558679 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :data Pat = VarPat IdName | JoinPat Pat Pat | HolePat | DataPat IdName [Pat] deriving Show < 1531819404 630089 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and do you detect when the match patterns are exclusive so there's no need for an else clause? or will you only do that after a typechecker? < 1531819427 910842 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :no why < 1531819434 909375 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it's not like I'm writing an optimizing or fast compiler < 1531819438 903500 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sure < 1531819462 4636 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :not planning to compete with GHC, rather wanted something with similar runtime asymptotics < 1531819604 955504 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :what I mean, "length" should be linear time no matter the constant < 1531819624 460124 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :don't care if it does allocation on every iteration < 1531819824 831579 :S_Gautam!uid286066@gateway/web/irccloud.com/x-fussqpbtpoadolby QUIT :Quit: Connection closed for inactivity < 1531819878 899582 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Hi, I just discovered thet it is "World Emoji Day" today, so I will be aiming to make a version 1.0.0 of my functional emoji language and release it (it already works atm). Currently the language supports function definition, string and number literals, input for strings and input and output for either literal. Oh, and it is completely restricted to emoji (input, output and source code). I am planning to add some arithmatic operations and perhaps num < 1531819879 472272 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :input. Is there something important I am missing for a 1.0.0 version, do you think? < 1531819979 265741 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Zero-width joiners? Skin tone modifiers? < 1531820011 82946 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :In my Olvasható translator, I require all matches to be exhaustive, but the translator itself doesn't check that, it's the SML interpreter that does < 1531820388 187 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :shachaf: I use the complete list of emoji, so all seqences of code points that are supposed to be displayed as one emoji (and classified as an emoji) are accepted, nothing else. < 1531820506 12168 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :There are some key emoji that are used for language syntax, all other emoji may be used as function names. < 1531820748 408439 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Fogity: is there some way in which this will be better than the approximately five already existing emoji languages? < 1531820802 545621 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :1) it is functional, the others I have seen have been stack based or object oriented < 1531820846 859186 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :2) it is completely restricted to emoji, a pure emoji language per se < 1531820868 373882 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531820929 680873 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No whitespace? < 1531820947 579174 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :no < 1531820956 179117 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1531820956 992441 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Fogity: you're right, none of the others seem to be functional. most of them are stack-based. < 1531821399 609774 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Hmm, what do you think is a good license for a project like this? > 1531821400 197938 PRIVMSG #esoteric :14[[07Tom Murphy VII14]]4 N10 02https://esolangs.org/w/index.php?oldid=56750 5* 03B jonas 5* (+380) 10Created page with "'''Tom Murphy VII''' PhD, also known as Tom7, is a creator of esoteric languages and other esoteric projects, mostly but not exclusively computer-related. Languages and other..." > 1531821422 83029 PRIVMSG #esoteric :14[[07Tom714]]4 N10 02https://esolangs.org/w/index.php?oldid=56751 5* 03B jonas 5* (+28) 10Redirected page to [[Tom Murphy VII]] > 1531821439 948333 PRIVMSG #esoteric :14[[07Wikiplia14]]4 10 02https://esolangs.org/w/index.php?diff=56752&oldid=43289 5* 03B jonas 5* (+44) 10identify creator > 1531821488 213101 PRIVMSG #esoteric :14[[07ABC (compiler)14]]4 10 02https://esolangs.org/w/index.php?diff=56753&oldid=53729 5* 03B jonas 5* (+19) 10link creator > 1531821520 679674 PRIVMSG #esoteric :14[[07Wikiplia14]]4 10 02https://esolangs.org/w/index.php?diff=56754&oldid=56752 5* 03B jonas 5* (-5) 10reclassify as a non-joke language > 1531821553 920746 PRIVMSG #esoteric :14[[07Tom Murphy VII14]]4 10 02https://esolangs.org/w/index.php?diff=56755&oldid=56750 5* 03B jonas 5* (+21) 10 < 1531821882 296655 :AnotherTest!~turingcom@natx-145.kulnet.kuleuven.be QUIT :Ping timeout: 265 seconds < 1531822466 215650 :aloril_!~aloril@80.246.146.6 JOIN :#esoteric > 1531822530 588025 PRIVMSG #esoteric :14[[07WysiScript14]]4 10 02https://esolangs.org/w/index.php?diff=56756&oldid=51635 5* 03B jonas 5* (-40) 10the homepage claims it's implemented. I didn't test. < 1531822568 711095 :aloril__!~aloril@80.246.146.6 QUIT :Ping timeout: 268 seconds < 1531822669 525791 :Melvar!~melvar@dslb-146-060-044-180.146.060.pools.vodafone-ip.de JOIN :#esoteric > 1531822720 434830 PRIVMSG #esoteric :14[[07Y8614]]4 10 02https://esolangs.org/w/index.php?diff=56757&oldid=50888 5* 03B jonas 5* (-49) 10/* Addressing modes */ dt already bolds its text, so no need to bold it again, and double bolding showed up strange in a browser < 1531823283 496736 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :hmm < 1531823290 890120 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :hmm > 1531823297 231961 PRIVMSG #esoteric :14[[07Incident14]]4 10 02https://esolangs.org/w/index.php?diff=56758&oldid=54404 5* 03B jonas 5* (+24) 10/* See also */ < 1531823299 287136 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I did it wrong apparently < 1531823326 868869 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :evaluating 'g (f x)' would evaluate f < 1531823333 501954 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :which is not supposed to happen < 1531823349 999424 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I see < 1531823357 922173 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :thankfully there's an easy fix < 1531823361 112735 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it's supposed to evaluate g < 1531823374 246788 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it's supposed to create an 'f x' closure and feed that to g < 1531823378 934933 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but only up to its top-level constructor < 1531823385 903417 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :right < 1531823393 970854 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :considering g is a function it's not going to have a constructor < 1531823427 75630 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :mniip: that still matters < 1531823439 682174 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it doesn't evaluate the upvalues or bound arguments of g < 1531823442 940465 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :sure < 1531823450 531475 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :only evaluates which lambda in the source code it points to < 1531823480 221461 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah, that, everything is evaluated only up to its top level constructor when it's evaluated < 1531823532 474325 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :now I'm met with another problem < 1531823552 737525 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :it I have a JoinPat (VarPat "a") (DataPat "False" []) < 1531823561 697578 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :and I allocate a local variable for the 'a' < 1531823566 968511 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :and then the False match fails < 1531823573 408443 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I have to deallocate the 'a' < 1531823601 117361 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :what? you're already adding characters too? do you add numbers too? < 1531823642 834870 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :what? < 1531823649 6975 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :wob_jonas: variable name < 1531823650 73690 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :'a' is an identifier < 1531823660 910474 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :the JoinPat (VarPat "a") (DataPat "False" []) stands for something like < 1531823664 945443 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :case _ of a@False -> _ < 1531823704 619799 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ah, so it's a parse tree? < 1531823711 509990 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531823722 196225 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I was wondering on that, but JoinPat didn't make sense < 1531823735 295828 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ah, it represents an at-pattern < 1531823774 305114 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :those are called join patterns? I didn't know < 1531823800 295852 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :*Main> parse "foo = case _ of (a@False) -> _" < 1531823800 774953 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :Just [IdBndr (VarPat "foo") (Case (Id "_") [CaseBranch (JoinPat (VarPat "a") (DataPat "False" [])) (Id "_")])] < 1531823896 5439 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so that parses the contents of a module? < 1531823900 38458 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yes < 1531823938 429382 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :do you eventually want to make this be able to compile itself? < 1531823945 149450 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I've had that idea < 1531823955 593198 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cool < 1531823960 6136 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :but that might be complicated given the syntax of haskell < 1531823985 970161 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :sure < 1531823999 359928 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you'll have to restrict the compiler source code itself to a subset < 1531824022 852898 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :yeah but the 10 imports I have at the top < 1531824048 401535 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :what I'd really like is compiler that can bootstrap itself in possibly multiple steps from an interpreter that is very simple < 1531824096 454325 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :it bothers me a lot that Rust only has one implementation, and it can only be compiled by itself or a slightly earlier version of itself, so you need like fifty steps to bootstrap it if you don't yet have a rust compiler < 1531824128 546405 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so I hope someone will eventually make a gcc frontend that can compile rust < 1531824154 689138 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :wob_jonas: GHC has a similar problem, I believe < 1531824162 589051 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Even though there are other Haskell implementations < 1531824226 167062 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :because gcc can be bootstrapped much easier, in like six steps from any very old C compiler: first you compile an old version of gcc back when it was written in portable C and could be bootstrapped in two or three steps from any old C compiler but could already compile C++, then you bootstrap a modern gcc from that old gcc (you need this extra leve < 1531824226 272017 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :l because gcc is written in C++ now) < 1531824247 66591 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Taneb: I see < 1531824396 691220 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531824646 983561 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :Taneb, yeah definitely < 1531824659 32327 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :I don't think you can even bootstrap GHC HEAD on debian now < 1531825605 139496 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :But to be fair, rustc is at least developped to easily do cross-compilation, so if someone adds a new target to it, they can bootstrap to that target from rustc running on existing well-supported targets. < 1531825628 577740 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :mniip: what's stopping that? < 1531825645 868036 :mniip!mniip@freenode/staff/mniip PRIVMSG #esoteric :iirc GHC HEAD wants something newer than 8.0 < 1531825660 764801 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Although I suspect that you still need some of a libc ported to the target for it. < 1531825691 439309 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :Oh, I misunderstood what you meant, mniip < 1531825700 467646 :SopaXT!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531825708 98295 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :I was thinking bootstrapping in many steps from C < 1531825711 521616 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Also, the rustc devs themselves distribute working easy to install precompiled binaries of rustc. < 1531825753 239382 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :So if you don't care about bootstrapping, you can just download the latest of those, and get a working compiler, or compile trunk with it. < 1531825768 697430 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Ping timeout: 256 seconds < 1531825776 430422 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esoteric :And you were thinking bootstrapping in one step from system packages < 1531825961 251138 :AnotherTest!~turingcom@natx-145.kulnet.kuleuven.be JOIN :#esoteric > 1531826043 709416 PRIVMSG #esoteric :14[[07Frums14]]4 N10 02https://esolangs.org/w/index.php?oldid=56759 5* 03A 5* (+1009) 10Created page with "Frums is a slightly modified version of [[Smurf]]. ==Syntax== " pushes the string, surrounded by " s and may contain newlines, " and \ escaped by \, onto the stack. "ok""\"..." > 1531826094 361175 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56760&oldid=56759 5* 03A 5* (+54) 10 > 1531826101 922023 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56761&oldid=56760 5* 03A 5* (-1) 10 > 1531826188 51574 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56762&oldid=56761 5* 03A 5* (-102) 10/* Syntax */ < 1531826253 621973 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Remote host closed the connection > 1531826317 435312 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56763&oldid=56762 5* 03A 5* (+25) 10 > 1531826331 216658 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56764&oldid=56763 5* 03A 5* (+0) 10 > 1531826615 408077 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56765&oldid=56764 5* 03A 5* (-20) 10 > 1531826996 861275 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56766&oldid=56765 5* 03A 5* (-155) 10 > 1531827246 136238 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56767&oldid=56766 5* 03A 5* (-51) 10 > 1531827255 626683 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56768&oldid=56767 5* 03A 5* (-11) 10 < 1531827316 904553 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net QUIT :Remote host closed the connection > 1531827717 331540 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56769&oldid=56768 5* 03A 5* (-107) 10 < 1531828626 732296 :S_Gautam!uid286066@gateway/web/irccloud.com/x-rulnkpbsttnbgqqu JOIN :#esoteric < 1531828673 35892 :SopaXT!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Quit: Leaving < 1531828695 646787 :tromp!~tromp@ip-217-103-3-94.ip.prioritytelecom.net JOIN :#esoteric < 1531828805 445479 :sebbu2!~sebbu@unaffiliated/sebbu QUIT :Read error: Connection reset by peer < 1531829746 235384 :sebbu!~sebbu@unaffiliated/sebbu JOIN :#esoteric > 1531830235 60851 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56770&oldid=56769 5* 03A 5* (-127) 10 > 1531830551 75736 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56771&oldid=56770 5* 03A 5* (-45) 10 > 1531830950 740753 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56772&oldid=56771 5* 03A 5* (-45) 10 > 1531831153 859669 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56773&oldid=56772 5* 03A 5* (-15) 10 > 1531831259 736215 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56774&oldid=56773 5* 03A 5* (+13) 10 > 1531831796 322042 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56775&oldid=56774 5* 03A 5* (-42) 10 > 1531832700 962929 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56776&oldid=56775 5* 03A 5* (-19) 10 < 1531832704 426568 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531836838 820418 :MDude!~MDude@pa-67-234-83-197.dhcp.embarqhsd.net QUIT :Remote host closed the connection < 1531837187 932410 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1531837217 886092 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric > 1531838770 563966 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56777&oldid=56776 5* 03A 5* (-33) 10 > 1531838914 458923 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56778&oldid=56777 5* 03A 5* (+31) 10 > 1531839414 862265 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56779&oldid=56778 5* 03A 5* (+22) 10 > 1531839436 290781 PRIVMSG #esoteric :14[[07Frums14]]4 10 02https://esolangs.org/w/index.php?diff=56780&oldid=56779 5* 03A 5* (-22) 10 < 1531840043 252690 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Read error: Connection reset by peer < 1531840133 301801 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531841631 254601 :AnotherTest!~turingcom@natx-145.kulnet.kuleuven.be QUIT :Ping timeout: 240 seconds < 1531842439 459032 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1531845752 261545 :MDude!~MDude@pa-67-234-83-197.dhcp.embarqhsd.net JOIN :#esoteric < 1531846333 434871 :mahdianderson11!~zahra@5.78.80.79 JOIN :#esoteric < 1531846497 778309 :mahdianderson11!~zahra@5.78.80.79 PART :#esoteric < 1531846916 673518 :xa0!~zeta@unaffiliated/uoy QUIT :Ping timeout: 256 seconds < 1531847272 528583 :xa0!~zeta@unaffiliated/uoy JOIN :#esoteric < 1531847951 493680 :xa0!~zeta@unaffiliated/uoy QUIT :Ping timeout: 244 seconds < 1531848291 990072 :MDude!~MDude@pa-67-234-83-197.dhcp.embarqhsd.net PART #esoteric :"Closing Window" < 1531848402 23930 :xa0!~zeta@unaffiliated/uoy JOIN :#esoteric < 1531848530 411224 :MDude!~MDude@pa-67-234-83-197.dhcp.embarqhsd.net JOIN :#esoteric < 1531849207 177398 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1531850176 460376 :S_Gautam!uid286066@gateway/web/irccloud.com/x-rulnkpbsttnbgqqu QUIT :Quit: Connection closed for inactivity < 1531850496 537862 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 JOIN :#esoteric < 1531850506 381863 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :Does anybody have some knowledge about how db storage engines work? < 1531850517 304596 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :Let's say I have a db with rows of fixed size and I wanna update a row < 1531850525 139832 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :I seek to the row's position, write the data, call fsync. < 1531850542 705522 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :BUT: The server crashes in the middle of the OS trying to write the data to disk < 1531850554 285525 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :so half of the row has been overwritten, the other half wasn't. < 1531850560 693210 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :which means I have now a corrupt row. < 1531850567 287943 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :so obviously that's not how it can work < 1531850633 908386 :Hooloovo0!Hooloovoo@hooloovoo.blue PRIVMSG #esoteric :one way of solving that (at least how some filesystems do it) is to have a journal < 1531850656 909395 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :I actually don't overwrite the row but append a new row, then somehow mark the existing row as deprecated and the new row as visible < 1531850694 280335 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :appending the new row fsync is fairly trivial < 1531850697 63344 :Hooloovo0!Hooloovoo@hooloovoo.blue PRIVMSG #esoteric :right < 1531850717 375941 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :but how do you mark the other row as deprecated and the other row as visible? < 1531850718 863744 :Hooloovo0!Hooloovoo@hooloovoo.blue PRIVMSG #esoteric :how do you mark them? < 1531850723 621641 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :exactly < 1531850726 362925 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :no idea < 1531850737 95318 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :if I mark the existing one as deprecated and then the server crashes < 1531850740 51657 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :then the row is gone < 1531850746 186931 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :so I have a corruption again < 1531850751 637812 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 JOIN :#esoteric < 1531850758 263621 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: I can tell you how the atomic update is implemented < 1531850787 156299 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :there are at least two ways to do it, neither always better than the other < 1531850821 545029 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 JOIN :#esoteric < 1531850825 386373 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :lost connection :( < 1531850826 973579 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :but yes < 1531850830 773540 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :I NEED TO KNOW HOW THIS WORKS < 1531850831 199338 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: I can tell you how the atomic update is implemented < 1531850835 177445 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :there are at least two ways to do it, neither always better than the other > 1531850839 731338 PRIVMSG #esoteric :14[[07This=That14]]4 10 02https://esolangs.org/w/index.php?diff=56781&oldid=56740 5* 03Ais523 5* (+723) 10/* Computational Class */ reformat < 1531850884 295881 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :the simpler method is this: have a separate "transaction finished" bit and a "transaction file". the transaction finished bit is normally zero. when you want to do a write, which could update multiple rows in multiple tables in most DB engines, > 1531850912 160929 PRIVMSG #esoteric :14[[07Talk:This=That14]]4 10 02https://esolangs.org/w/index.php?diff=56782&oldid=56741 5* 03Ais523 5* (+485) 10/* This is Turing-complete? */ yes, it is < 1531850953 913618 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :first record all the changes you will need to make to the main DB file, with addresses for where to make the changes, in the transaction file. then do a blocking fdatasync on the transaction file. (you'd technically only need a write barrier rather than an fdatasync, but there's no write barrier operation on disks because it wouldn't be possible to < 1531850953 995121 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric : implement them more efficiently than an fdatasync). > 1531850988 866566 PRIVMSG #esoteric :14[[07Talk:Multi-machine14]]4 N10 02https://esolangs.org/w/index.php?oldid=56783 5* 03Ais523 5* (+224) 10an idea for making this more objective < 1531851009 837449 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :then change the transaction bit to one, then do an fdatasync on the transaction bit. the trick here is that since you're updating just one bit, even if the hard disk crashes while syncing that bit, you'll be able to read it back as either a one or a zero, and either one is correct. < 1531851013 309059 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :(but fdatasync doesn't sync file size afaik so if you _append_ to a file you'd need fsync?) < 1531851024 576813 :mroman!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 QUIT :Ping timeout: 252 seconds < 1531851055 4691 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman_: maybe, I don't know. < 1531851064 856379 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :then write the changes to the main database file, fdatasync that, then write zero to the transaction bit, and fdatasync that. < 1531851084 616493 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :I think you can actually do this with just two fdatasyncs somehow instead of four, but I don't recall how. < 1531851128 614496 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :and then the trick is, when you open the database, you check the transaction bit. normally it's zero. if it's nonzero, then you know that the program or the computer crashed during the operation of writing the changes back to the normal database file, < 1531851173 846044 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :so you read the changes from the transaction file and write them back to the main database file (some of them might already been written, but that's not a problem), then fdatasync the main database file, then set the transaction finished bit to zero, then fdatasync that. < 1531851210 279290 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :The second method goes the opposite way: instead of writing the changes to the transaction file, you write the old contents of the parts of the database file you change to the transaction file. < 1531851254 145371 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :hm. clever. < 1531851256 153538 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :In that case, if you find that the transaction bit was one when you open the database, then you assume writing back the transaction was in progress, and you roll back that transaction to its previous clean state by copying the previous state from the transaction file. < 1531851275 512818 :fractal!~fractal@unaffiliated/scounder QUIT :Ping timeout: 256 seconds < 1531851333 324863 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :There are also some optimizations you can do, such as adding pointers and writing the new row in a different place so that the actual transaction only consists of a change of a pointer in the file, but these usually aren't used by databases, they're used by filesystems instead. < 1531851358 687986 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Since some modern filesystems offer you to guarantee consistency if the computer crashes. < 1531851373 60832 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Old filesystems like FAT didn't use to bother with that, in those cases if the computer crashes, the filesystem can be in an inconsistent state. < 1531851408 204785 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Remote host closed the connection < 1531851420 877446 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :You can repair them to a consistent state with a scan, but that may involve data loss. < 1531851421 454729 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :I wonder if it's even really possible to implement FAT in such a way you get consistency in the case of a crash. < 1531851434 457926 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531851473 449929 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :I'm going to guess the answer is "not unless the underlying storage has some suitable atomic primitive, which by the way it probably doesn't" < 1531851522 191892 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1531851622 848049 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Read error: Connection reset by peer < 1531851708 342354 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker JOIN :#esoteric < 1531851979 300315 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 JOIN :#esoteric < 1531851981 809793 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :pikhq: I recommend reading https://sqlite.org/atomiccommit.html and https://sqlite.org/wal.html for how sqlite3 implements atomicity, it's more detailed and more correct than what I told you. < 1531852019 771042 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :pikhq: it is possible, but only if you make sure you only use that implementation when you next open the file system. the transaction system is general enough that it can work on any file system, which is how ext2 was backwards-compatibly extended to ext3. < 1531852078 315228 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :You could have a similar extension for FAT, but nobody cares enough about FAT to do it. FAT has bigger problems than this. < 1531852113 425015 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Note that despite its name, ext4 isn't backwards compatible with ext2 or ext3, it's a more modern and better file system, which can do more stuff because it breaks backwards compatibility completely. < 1531852204 577868 :\oren\!~oren@ec2-52-2-213-98.compute-1.amazonaws.com PRIVMSG #esoteric :Google chrome keeps crashing when I try to join a meeting on google meet < 1531852286 833963 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :and I guess you do roughly the same things if fsync returns an error? < 1531852350 451103 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: if fsync returns an error or if you run out of disk space, during the first part of this you can just rollback the transaction, during the second part of this you're screwed and you have to retry opening the database. < 1531852394 92159 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :but if it's just running out of disk space, then the database can guarantee that that can never happen in the second phase. a disk hardware IO error (filing fsync) or running out of memory is always possible, but you just leave the state alone in those cases and hope for the best. < 1531852437 29077 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :in general, if fsync gives you an error and this isn't a network file system, then you should be worried that your disk or motherboard has a hardware problem (or your OS has a bug), in which case your data might already be corrupt before you get the error < 1531852536 957858 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :basically, you handle those errors just like you'd handle a crash of the computer. < 1531852683 463687 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: I recommend reading https://sqlite.org/atomiccommit.html and https://sqlite.org/wal.html for how sqlite3 implements atomicity, it's more detailed and more correct than what I told you. < 1531852689 892262 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :(was addressing the wrong person) < 1531853041 554425 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :wob_jonas: Ah, right, of *course* you could just add journaling or similar to FAT. < 1531853069 565864 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :And yes, I'm aware FAT has other problems. < 1531853083 810618 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :It's a filesystem which is only interesting because it's so ubiquitously supported, after all. < 1531853116 972820 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Right, many digital cameras will only write photos on FAT, and similarly some mobile phones that take pictures. < 1531853137 669452 :LKoen!~LKoen@vbo91-6-78-245-243-132.fbx.proxad.net JOIN :#esoteric < 1531853152 173635 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :And it's the only filesystem UEFI guarantees will be supported. < 1531853260 373681 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :The problem with FAT that annoys me the most is that it's really hard to figure out a compatible extension to support mtimes past its unepoch in year 2107, because the windows extensions have consumed all bytes in the directory entry structure. < 1531853276 484297 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :pikhq: ah right, I didn't even think of that < 1531853301 334151 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mind you, I use FAT as a boot partition for grub-legacy, but only for historical reasons, I could use ext2 the same way < 1531853402 298638 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :It's a damned shame MS insists on patent fees for exFAT. < 1531853416 505105 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :But nooo, gotta make it hard to kill off FAT forever. < 1531853472 119545 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :also, grub-legacy is unmaintained, so I'll have to change away from it to a newer bootloader (such as grub2 or syslinux) the latest when I want it to read from a hard disk that's bigger than 3 terabytes < 1531853472 300887 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :um < 1531853472 346043 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :bigger than 2 terabytes < 1531853534 359805 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mind you, that's because the new partition table design is stupid, and doesn't support using it together with the legacy partition table, so on a hard disk larger than 2 terabytes, you can't have a legacy partition table at all, not even one that only identifies the partitions before the 2GB barrier < 1531853542 662743 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :what's with these numbers in loader(8) and vgex(4) and all that < 1531853544 964141 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :but there's not much I can do about that unless I want to write my own bootloader < 1531853562 179991 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :syslog(3) syslogd(8) < 1531853619 380486 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :and I think I have a choice between at least three bootloaders to switch to, so it won't be too bad < 1531853641 133068 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1531853642 543778 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :I also have to wonder if it's even possible to implement exFAT without using the patents. < 1531853664 970107 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :I mean, it's not easy to even tell, since the filesystem isn't officially documented anywhere. < 1531853679 469276 :AnotherTest!~turingcom@d51A46C74.access.telenet.be JOIN :#esoteric < 1531853734 569909 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :If it is possible, I expect it'd be a massive project to find out. < 1531853740 835952 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :(and MS would probably sue anyways) < 1531853756 380591 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 JOIN :#esoteric < 1531853758 178969 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: the numbers are manpage categories. you can use the command man 2 write to display the write(2) manpage, and its *roff source is stored in a directory called write2. the parenthesis syntax is shown only in the formatted manpages. < 1531853783 64001 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: the numeric categories have a conventional meaning, which is sometimes explained in the intro($number) manpage: < 1531853828 861848 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :namely 1 is command-line programs, 2 is system calls, 3 is library functions (libc and other libraries), 8 is command-line programs that normally only a system administrators run, < 1531853836 984916 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :I write software everyday and I have no clue about whether I'm violating a patent or not. < 1531853845 869031 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :https://www.kernel.org/doc/man-pages/ gives the short version after each number < 1531853851 173747 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :I don't know how anybody knows. < 1531853862 345647 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :granted, not sure if there are even software patents in the EU < 1531853871 461187 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :but I have no idea how devs in the US do this. < 1531853887 594170 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :the categorization is really old, from ancient unix, it's still used basically because there are command-line programs with the same name as system calls or library functions < 1531853896 83977 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :probably you just write and hope you don't get sued or at least if you get sued it doesn't cost you your personal finances < 1531853922 242936 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman: man man also explains this < 1531853947 283383 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :there's also a few other nonstandard categories, including (3p) and (n) < 1531853959 724214 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :(3p) is for perl modules IIRC < 1531854041 806470 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :mroman_: Usually, you just either straight-up ignore it, or you just avoid patents that you know sue-happy companies will try to enforce. < 1531854098 219878 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :yeah but how do you know patents even exist < 1531854099 380309 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :like < 1531854110 297879 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 PRIVMSG #esoteric :you'd have to know each and every patent < 1531854178 365807 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :I think you just hope that whatever book or article you read about whatever thing the patent covers mentions that there's a patent, or you notice because there are alternatives who specifically say they're created to avoid a patent. < 1531854301 807194 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :In particular, the GIF format was patented but that patent expired, and before it expired there used to be a lot of webpages explaining why you shouldn't use GIF, then there's some other old compression format that was patented but I don't recall the details, and the MP3 sound format and some video formats are still patented. < 1531854301 868348 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :So some MP3 encoders usually explain this in their documentation. < 1531854309 546170 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Honestly? It's kinda a minefield. < 1531854315 487060 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :MP3, BTW, is no longer patented. < 1531854319 161697 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :(expired) < 1531854362 83058 :SopaXorzTaker!~SopaXorzT@unaffiliated/sopaxorztaker QUIT :Quit: Leaving < 1531854376 267629 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Looks like MPEG-2 *just* expired? < 1531854379 604165 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :But some patents are deliberately kept half-secret (as in, it's technically public but there are so many patents you won't find it unless you pay a patent lawyer), whose owner is waiting until he can sue some large fish. IIRC those were called submarine patent. < 1531854418 384149 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :And of course ther are a lot of patents that should be invalid because there's prior art, but their owner hopes that people will pay up instead of paying for a lawyer to prove that the patent is invalid. < 1531854435 536634 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :The two strategies can be combined. < 1531854468 266856 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :pikhq: it is? doesn't matter much anymore, I think, because I recently bricked my old mobile phone which would only play MP3 and WAV. < 1531854584 132911 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Yeah, MP3 patents have finally expired. < 1531854591 191749 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :good < 1531854593 304452 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Just in time to be kinda irrelevant! < 1531854601 296531 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :yeah < 1531854624 308542 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :but I think some video formats are still patented and used, although they also have free alternatives < 1531854637 472515 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Oh, absolutely. < 1531854646 142548 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :H.264 is patented, H.265 is patented... < 1531854666 672681 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :AV-1 is patented, just with royalty-free licensing... < 1531854685 211776 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :what? isn't h264 a patent-free one? < 1531854697 47269 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Nope! < 1531854708 175322 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Oh, very very much no. < 1531854754 744110 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :who owns the patent? Intel? < 1531854763 849914 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :It's a fucking massive patent pool. < 1531854781 590170 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :wait, I should be able to just look thisd up < 1531854789 103404 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Because it was designed in a process which encouraged like 50 different companies to submit everything they had a patent on to the design. < 1531854826 480223 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :http://www.mpegla.com/main/programs/AVC/Documents/avc-att1.pdf This 115 page document is the list of patents MPEG-LA can license that they believe are applicable to H.264. < 1531854919 338374 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :multiple owners sharing it < 1531854919 438883 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :ok < 1531855016 438037 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :It was intentionally designed to have as many patents as possible. < 1531855095 215679 :alercah!~alercah@unaffiliated/alercah PRIVMSG #esoteric :mroman_: you can search patents < 1531855103 522259 :alercah!~alercah@unaffiliated/alercah PRIVMSG #esoteric :mroman_: but the wisdom is that it's better *not* to < 1531855137 29685 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :what else is still patented that I should know about? are some of the algorithms for solving the Rubik's cube patented? < 1531855139 586439 :alercah!~alercah@unaffiliated/alercah PRIVMSG #esoteric :because in the USA, knowingly infringing carries much stiffer penalties < 1531855148 630619 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Yep! < 1531855159 2729 :alercah!~alercah@unaffiliated/alercah PRIVMSG #esoteric :so it's better to just not look, and hope, than to look, think you're good, and lose the suit < 1531855189 861094 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Software patents are basically a tax on operation, collected by a bunch of rent-seeking bastards. < 1531855402 906214 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :For the purpose of D&D 3.5 alignment, does it count as an Evil act to patent a file format or other protocol and then spread a lot of devices or software that use it? < 1531855446 807392 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Would a Paladin fall and lose their powers if they even knowingly worked for a company that does that? < 1531855454 785643 :pikhq!~pikhq@c-73-181-126-9.hsd1.co.comcast.net PRIVMSG #esoteric :Lawful Evil in particular, IMO. < 1531855528 993777 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Also, now I'm scared. Are there trained spies who watch me on the tram or metro and look at what method I use for the rubik's cube, ready to call the police if I use a patented method? < 1531855589 909828 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Or look at youtube videos of solving the rubik's cube, especially in high-ranked speedcubing competitions? < 1531855589 966545 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Was there yet a scandal when someone would win a speedcubing competition after buying a patent license? < 1531855674 351424 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Can I even do (M U' M2 U' M2 U' M U2 M2 U) to permute four last layer edges without infringing on a patent? That movement sequence seems short enough that anyone with a computer can discover it easily, so it probably can't be patented. But a whole method, some of those are creative enough that they could be patented. < 1531855704 654511 :zseri!~zseri@i5E86CF12.versanet.de JOIN :#esoteric < 1531855776 663606 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1531856430 671383 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :mroman_: those were good questions, do you have any more before I go to bed? < 1531856469 952384 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :I mean, I can logread tomorrow, but still < 1531856515 941939 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :So, I am finally pretty much set to make a 1.0.0 relese of my emoji language. But I am still a bit undecided on license. < 1531856555 10615 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Is there any reason not to use MIT? < 1531856570 73906 :zseri!~zseri@i5E86CF12.versanet.de PRIVMSG #esoteric :no < 1531856583 806694 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Fogity: if you're asking about a copyright license of the interpreter, I don't know a perfect one, but as far as I can tell, the boost license would be the most sympathetic one except for one thing: < 1531856688 715123 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :the license doesn't explicitly say that the copyright license rights it grants are worldwide and lasts forever (or as long as the copyright protection lasts), and the copyright law of Hungary says that those should be explicit or else they're interpreted narrowly. < 1531856728 286363 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :So if you distribute something under the boost license, then IANAL but you could sue me if I distribute it for too many decades or distribute it outside of Hungary. < 1531856773 460749 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :This sort of made sense back when copyright was used for books and television series and films, but not much for software. < 1531856798 782818 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :It's not very likely that such an exploit would work though, so I still recommend the boost license for software. < 1531856817 421811 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :It looks a lot like the MIT license to me, what is the difference? < 1531856890 667703 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Fogity: the difference is that it allows you to distribute compiled binaries without the license, but doesn't allow that for source code or other form. < 1531856917 504634 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Ah, I see. < 1531856946 411259 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Read the last three lines of the middle paragraph < 1531857031 579181 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1531857110 469606 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 JOIN :#esoteric < 1531857224 498168 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :This exception was added because there are tons of free software licences similar to the MIT, all alike, so some bigger software packages have to include a long file that lists multiple such license, each applying to some code they used, and reproducing that in a final binary or installer would be inconvenient, < 1531857255 695384 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :so with the boost license, you can at least omit that one from the binary (eg. the installer "I accept the license" dialog box) and reproduce it only in the source code. < 1531857299 445927 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :And binaries often contain more licenses than source code packages because you distribute multiple libraries together in binary, but often distribute them in separate packages for source code < 1531857333 963708 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Now of course, for a toy esolang, it's likely that none of this matters and nobody will care about your license, but you asked about it. < 1531857369 247764 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Fogity: You could also ask ais523, he knows a bit more details about software licenses than me, but that might cause you to miss the deadline because he's rarely on irc. < 1531857486 77493 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Yeah, I appreciate the info. But as you say, it doesn't matter that much so I'll just add MIT as that is just some button clicks on gitlab. :P < 1531857509 913731 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :ok < 1531857581 191247 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :But I will consider it for any more useful project. And I can just change it later anyway, for this. < 1531857641 414933 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 PRIVMSG #esoteric :Right, but if you change the license, please keep the original license too as an alternative. < 1531857703 410424 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Well, there is always the git history < 1531858012 810659 :zseri!~zseri@i5E86CF12.versanet.de QUIT :Quit: Leaving > 1531858632 160035 PRIVMSG #esoteric :14[[07User:DMC14]]4 M10 02https://esolangs.org/w/index.php?diff=56784&oldid=56663 5* 03DMC 5* (+78) 10 < 1531858857 671345 :imode!~imode@unaffiliated/imode QUIT :Ping timeout: 240 seconds < 1531858885 572621 :XorSwap!~XorSwap@wnpgmb016qw-ppp-103-253.dynamic.bellmts.net JOIN :#esoteric < 1531859404 312189 :mroman_!b2c03cf4@gateway/web/freenode/ip.178.192.60.244 QUIT :Quit: Page closed < 1531859778 301674 :imode!~imode@unaffiliated/imode JOIN :#esoteric < 1531860247 672881 :wob_jonas!b03f18e9@gateway/web/cgi-irc/kiwiirc.com/ip.176.63.24.233 QUIT :Quit: http://www.kiwiirc.com/ - A hand crafted IRC client < 1531860926 593099 :erkin!~erkin@unaffiliated/erkin JOIN :#esoteric < 1531861585 283830 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Yay, I got the language out in time. Now I should probably make a wiki-page for it. < 1531861616 423723 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Anyway, here is the repo if anyone is curious: https://gitlab.com/fogity/squared-cool > 1531861960 957903 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03Fogity 5* 10New user account > 1531862417 475032 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=56785&oldid=56704 5* 03Fogity 5* (+197) 10/* Introductions */ < 1531862600 798555 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Should I use the proper name of the language (🆒) for the page title or should it be ascii characters? < 1531862877 501719 :Fogity!~Fogity@hr-sgs.kvi.sgsnet.se PRIVMSG #esoteric :Seems like non-ascii characters are fine. < 1531865528 479437 :AnotherTest!~turingcom@d51A46C74.access.telenet.be QUIT :Ping timeout: 244 seconds > 1531865822 979025 PRIVMSG #esoteric :14[[07Borsch14]]4 M10 02https://esolangs.org/w/index.php?diff=56786&oldid=54703 5* 03Fogity 5* (+0) 10Fixed erroneous category name. < 1531866818 517765 :oerjan!oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1531867720 791871 :oerjan!oerjan@hagbart.nvg.ntnu.no PRIVMSG #esoteric :@metar ENVA < 1531867721 511306 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric :ENVA 172220Z VRB02KT CAVOK 19/16 Q1015 RMK WIND 670FT 18006KT < 1531868197 178251 :puckipedia!~puck@puckipedia.com NICK :puck > 1531869268 569086 PRIVMSG #esoteric :14[[0714]]4 N10 02https://esolangs.org/w/index.php?oldid=56787 5* 03Fogity 5* (+3257) 10Created page with " is an [[esoteric programming language]] currently developed by [[User:Fogity]]. It is a fairly straight forward functional language with the caveat that the source code,..." < 1531869522 356406 :XorSwap!~XorSwap@wnpgmb016qw-ppp-103-253.dynamic.bellmts.net PRIVMSG #esoteric :here's the seed of an idea for you all: how could a language be designed so that it forces the programmer to use concurrency? < 1531869564 611175 :XorSwap!~XorSwap@wnpgmb016qw-ppp-103-253.dynamic.bellmts.net PRIVMSG #esoteric :obviously you could do that by just saying that every line runs at once or something, but could you do it in a way that the interpreter itself doesn't enforce? < 1531869899 751625 :LKoen!~LKoen@vbo91-6-78-245-243-132.fbx.proxad.net QUIT :Quit: “It’s only logical. First you learn to talk, then you learn to think. Too bad it’s not the other way round.” < 1531870265 390213 :impomatic!~digital_w@host86-137-197-211.range86-137.btcentralplus.com QUIT :Ping timeout: 240 seconds > 1531870296 760265 PRIVMSG #esoteric :14[[07Squared cool14]]4 N10 02https://esolangs.org/w/index.php?oldid=56788 5* 03Fogity 5* (+18) 10This is the unicode name for the emoji and an alternate name for the language . > 1531870622 575959 PRIVMSG #esoteric :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=56789&oldid=56650 5* 03Fogity 5* (+11) 10Added . < 1531871973 339229 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Read error: Connection reset by peer