< 1739319097 945990 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1739319897 455702 :fungot!~fungot@2a01:4b00:82bb:1341::a QUIT :Ping timeout: 246 seconds < 1739320587 443729 :Celeo!~Celeo@user/celeo QUIT :Quit: Celeo < 1739321396 232549 :Noisytoot!~noisytoot@user/meow/Noisytoot QUIT :Killed (tantalum.libera.chat (Nickname regained by services)) < 1739321400 324867 :Noisytoot!~noisytoot@user/meow/Noisytoot JOIN #esolangs Noisytoot :Ron < 1739322423 462015 :Lykaina!~lykaina@user/lykaina JOIN #esolangs Lykaina :Lykaina Wolfe < 1739325340 424127 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net QUIT :Quit: so long suckers! i rev up my motorcylce and create a huge cloud of smoke. when the cloud dissipates im lying completely dead on the pavement < 1739325378 463568 :simcop2387!~simcop238@perlbot/patrician/simcop2387 QUIT :Ping timeout: 252 seconds < 1739325391 460398 :simcop2387_!~simcop238@perlbot/patrician/simcop2387 JOIN #esolangs simcop2387 :ZNC - https://znc.in < 1739325479 652433 :simcop2387_!~simcop238@perlbot/patrician/simcop2387 NICK :simcop2387 > 1739326568 959781 PRIVMSG #esolangs :14[[07Interlude14]]4 10 02https://esolangs.org/w/index.php?diff=151785&oldid=81264 5* 03Kaveh Yousefi 5* (+7) 10Rectified the Hello, world! and truth-machine examples, which seemed to impute a stack rather than a queue, supplanted the cat program, which also relied on a last-in first-out (LIFO) data structure, by a perpetual variant, and amended the claim about a stack's involvement > 1739326688 789421 PRIVMSG #esolangs :14[[07Interlude14]]4 10 02https://esolangs.org/w/index.php?diff=151786&oldid=151785 5* 03Kaveh Yousefi 5* (+170) 10Added a hyperlink to my implementation of the Interlude programming language on GitHub. > 1739326743 822463 PRIVMSG #esolangs :14[[07SLet14]]4 10 02https://esolangs.org/w/index.php?diff=151787&oldid=151763 5* 03I am islptng 5* (+180) 10 < 1739327718 65551 :ais523!~ais523@user/ais523 QUIT :Quit: quit < 1739330052 926899 :molson_!~molson@2605-4A80-2101-99D0-3FCF-3803-CE4E-884B-dynamic.midco.net QUIT :Ping timeout: 268 seconds < 1739334143 673229 :Lykaina!~lykaina@user/lykaina QUIT :Quit: Leaving > 1739334206 747826 PRIVMSG #esolangs :14[[07Translated ZhongWen/PSTF Again Chapter VII14]]4 N10 02https://esolangs.org/w/index.php?oldid=151788 5* 03PrySigneToFry 5* (+5255) 10Created page with "[[Translated ZhongWen/Mihai Again8]] is still not enough, so let's make it CRZIER!!!! ah..." < 1739334238 509823 :molson!~molson@2605-4A80-2101-99D0-F41D-C13C-3E44-1CC-dynamic.midco.net JOIN #esolangs molson :realname > 1739334264 272399 PRIVMSG #esolangs :14[[07Translated ZhongWen/Mihai Again814]]4 10 02https://esolangs.org/w/index.php?diff=151789&oldid=141860 5* 03PrySigneToFry 5* (+93) 10 > 1739345881 342469 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 N10 02https://esolangs.org/w/index.php?oldid=151790 5* 03I am islptng 5* (+1521) 10Created page with "1. [[Translated_ZhongWen/PSTF_Again_Chapter_VII|]]
  1696 Tnt  1709    n4mEasy Some   N4M CRF   1696  1 2  1696 Tnt     n4m  crf 1696 Tnt  n4m  DN 1709 crf  1739346213 556650 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 10 02https://esolangs.org/w/index.php?diff=151791&oldid=151790 5* 03I am islptng 5* (+2335) 10
> 1739346357 646176 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 10 02https://esolangs.org/w/index.php?diff=151792&oldid=151791 5* 03I am islptng 5* (+33) 10
> 1739346712 191987 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 10 02https://esolangs.org/w/index.php?diff=151793&oldid=151792 5* 03I am islptng 5* (+407) 10
> 1739346870 614741 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 10 02https://esolangs.org/w/index.php?diff=151794&oldid=151793 5* 03I am islptng 5* (+408) 10
< 1739347130 404911 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname
< 1739347130 478761 :craigo!~craigo@user/craigo QUIT :Client Quit
< 1739347189 486581 :craigo!~craigo@user/craigo JOIN #esolangs craigo :realname
< 1739347749 402103 :molson_!~molson@2605-4A80-2101-99D0-F41D-C13C-3E44-1CC-dynamic.midco.net JOIN #esolangs molson :realname
< 1739347959 364041 :molson!~molson@2605-4A80-2101-99D0-F41D-C13C-3E44-1CC-dynamic.midco.net QUIT :Ping timeout: 260 seconds
> 1739348029 151231 PRIVMSG #esolangs :14[[07User:I am islptng/Sandbox14]]4 10 02https://esolangs.org/w/index.php?diff=151795&oldid=151329 5* 03I am islptng 5* (+1892) 10
< 1739348096 182070 :lisbeths!uid135845@id-135845.lymington.irccloud.com JOIN #esolangs lisbeths :lisbeths
< 1739349768 145738 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer
> 1739350508 347488 PRIVMSG #esolangs :14[[07Translated ZhongWen/PSTF Again Chapter VII14]]4 10 02https://esolangs.org/w/index.php?diff=151796&oldid=151788 5* 03I am islptng 5* (+77) 10
> 1739354688 946876 PRIVMSG #esolangs :14[[07Translated ZhongWen/PSTF Again Chapter VIII14]]4 N10 02https://esolangs.org/w/index.php?oldid=151797 5* 03PrySigneToFry 5* (+6069) 10Created page with "1. [[Translated ZhongWen/islptng|]] 
  16961122 HN2 1696 HN2polya J2C  1709  HN 2CRF ZF 2 FIV ..."
> 1739354723 787816 PRIVMSG #esolangs :14[[07Translated ZhongWen/islptng14]]4 10 02https://esolangs.org/w/index.php?diff=151798&oldid=151794 5* 03PrySigneToFry 5* (+51) 10
> 1739354797 935617 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/StormLang discussion14]]4 10 02https://esolangs.org/w/index.php?diff=151799&oldid=151774 5* 03PrySigneToFry 5* (+18) 10
< 1739356717 563549 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739360303 5126 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739362915 921819 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
< 1739363066 180 :amby!~ambylastn@ward-15-b2-v4wan-167229-cust809.vm18.cable.virginm.net JOIN #esolangs * :realname
> 1739363807 613715 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=151800&oldid=151783 5* 03Allen123456hello 5* (+164) 10/* Introductions */
> 1739364126 858488 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 10 02https://esolangs.org/w/index.php?diff=151801&oldid=150808 5* 03Allen123456hello 5* (+1355) 10/* List of implementations */ add  Language
> 1739364254 544478 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/StormLang discussion14]]4 10 02https://esolangs.org/w/index.php?diff=151802&oldid=151799 5* 03I am islptng 5* (+0) 10MY NAME IS NOT ISLPTNG IT'S islptng PUT MY NAME DOWN ARGHHHHHHHHHHH
> 1739364443 637039 PRIVMSG #esolangs :14[[07User:XKCD Random Number14]]4 10 02https://esolangs.org/w/index.php?diff=151803&oldid=150375 5* 03Allen123456hello 5* (+297) 10/* Implementations */ add  language
> 1739364461 113532 PRIVMSG #esolangs :14[[07SickPig14]]4 10 02https://esolangs.org/w/index.php?diff=151804&oldid=101568 5* 03PrySigneToFry 5* (+193) 10
> 1739364652 203372 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/StormLang discussion14]]4 10 02https://esolangs.org/w/index.php?diff=151805&oldid=151802 5* 03PrySigneToFry 5* (+119) 10I'm sorry to have entered your username incorrectly. However, I always thought that your username was actually an abbreviation, so I used capitalization. If you ignore the case, this username is also correct.
< 1739364815 400164 :APic!apic@apic.name PRIVMSG #esolangs :Hi
> 1739364822 498109 PRIVMSG #esolangs :14[[07User:PrySigneToFry14]]4 10 02https://esolangs.org/w/index.php?diff=151806&oldid=151541 5* 03PrySigneToFry 5* (+209) 10
> 1739364926 173567 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/My words14]]4 10 02https://esolangs.org/w/index.php?diff=151807&oldid=151462 5* 03PrySigneToFry 5* (+1) 10
< 1739365225 42046 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hi
> 1739365425 701560 PRIVMSG #esolangs :14[[07JC-071514]]4 N10 02https://esolangs.org/w/index.php?oldid=151808 5* 03Allen123456hello 5* (+505) 10new esolang
> 1739365445 802361 PRIVMSG #esolangs :14[[07JC-071514]]4 10 02https://esolangs.org/w/index.php?diff=151809&oldid=151808 5* 03Allen123456hello 5* (+12) 10/* Commands */
> 1739365503 731327 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=151810&oldid=151733 5* 03Allen123456hello 5* (+14) 10/* J */
> 1739365562 610431 PRIVMSG #esolangs :14[[07JC-071514]]4 10 02https://esolangs.org/w/index.php?diff=151811&oldid=151809 5* 03Allen123456hello 5* (+9) 10/* JC-0715 */
> 1739365626 474130 PRIVMSG #esolangs :14[[07JC-071514]]4 10 02https://esolangs.org/w/index.php?diff=151812&oldid=151811 5* 03Allen123456hello 5* (-9) 10/* JC-0715 */
> 1739366066 889677 PRIVMSG #esolangs :14[[07User:PrySigneToFry14]]4 10 02https://esolangs.org/w/index.php?diff=151813&oldid=151806 5* 03PrySigneToFry 5* (+168) 10
< 1739367080 758315 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739369353 263171 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739369451 332010 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
> 1739370493 417360 PRIVMSG #esolangs :14[[07OwOlang14]]4 N10 02https://esolangs.org/w/index.php?oldid=151814 5* 03BrainFuckGirl 5* (+3408) 10Created Page for OwOlang
> 1739370543 297845 PRIVMSG #esolangs :14[[07OwOlang14]]4 M10 02https://esolangs.org/w/index.php?diff=151815&oldid=151814 5* 03BrainFuckGirl 5* (-1) 10
> 1739371616 495826 PRIVMSG #esolangs :14[[07User:PrySigneToFry/Sandbox/StormLang discussion14]]4 10 02https://esolangs.org/w/index.php?diff=151816&oldid=151805 5* 03PrySigneToFry 5* (+7) 10
< 1739372744 964694 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname
< 1739372935 923478 :ais523!~ais523@user/ais523 QUIT :Ping timeout: 268 seconds
< 1739375037 166808 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739377033 992317 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
< 1739377316 67011 :FreeFull!~freefull@79.186.205.160.ipv4.supernova.orange.pl JOIN #esolangs FreeFull :FreeFull
> 1739378200 840223 PRIVMSG #esolangs :14[[07Zudjn14]]4 10 02https://esolangs.org/w/index.php?diff=151817&oldid=145864 5* 03DevThatCodes 5* (+2122) 10/* Links */
> 1739378383 654828 PRIVMSG #esolangs :14[[07Zudjn14]]4 10 02https://esolangs.org/w/index.php?diff=151818&oldid=151817 5* 03DevThatCodes 5* (-21) 10
< 1739379210 486136 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739381920 208095 :craigo!~craigo@user/craigo QUIT :Quit: Leaving
< 1739382442 930441 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739382518 99718 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739385650 140178 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 248 seconds
< 1739385656 500935 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord
< 1739385737 951971 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life
< 1739386820 646668 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739389136 398952 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
> 1739391439 884391 PRIVMSG #esolangs :14[[07Diner14]]4 M10 02https://esolangs.org/w/index.php?diff=151819&oldid=151738 5* 03Buckets 5* (+16) 10
> 1739391455 106569 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=151820&oldid=151732 5* 03Buckets 5* (+1) 10
> 1739391797 431854 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=151821&oldid=151810 5* 03Buckets 5* (+18) 10
> 1739391807 11523 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=151822&oldid=151820 5* 03Buckets 5* (+17) 10
> 1739391811 964582 PRIVMSG #esolangs :14[[07,*"':;!?.+14]]4 N10 02https://esolangs.org/w/index.php?oldid=151823 5* 03Buckets 5* (+3285) 10Created page with "{{wrongtitle|title=,*"':;!?.+_}} ,*"':;!?.+_ is an Esoteric programming language created by [[User:Buckets]] in 2024, To be specific It wasn't named But It's just The order of the Commands Shown. {| class="wikitable" |- ! Commands in order !! Instructions, also in or
> 1739391872 120537 PRIVMSG #esolangs :14[[07Sipes14]]4 M10 02https://esolangs.org/w/index.php?diff=151824&oldid=150654 5* 03Buckets 5* (+2) 10
> 1739391919 578429 PRIVMSG #esolangs :14[[07User:Buckets14]]4 M10 02https://esolangs.org/w/index.php?diff=151825&oldid=151822 5* 03Buckets 5* (+1) 10
> 1739392005 582982 PRIVMSG #esolangs :14[[07-114]]4 M10 02https://esolangs.org/w/index.php?diff=151826&oldid=150886 5* 03Buckets 5* (+33) 10
> 1739392034 237316 PRIVMSG #esolangs :14[[07-114]]4 M10 02https://esolangs.org/w/index.php?diff=151827&oldid=151826 5* 03Buckets 5* (+1) 10
< 1739392646 863778 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739393003 469642 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739393171 216719 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I'm trying to think about languages that can be implemented with either of two different type systems, and what advantages and drawbacks this has, and which combinations there are good example for.
< 1739393292 417591 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :So let's say at first approximation that there are three possible type systems. Untyped means that neither the compile time nor the runtime tries to follow what type values have, and so there's no type dispatching, if you want both an integer addition and a floating-point addition function you need to use different names for them. Typical examples are x86 machine code or forth. 
< 1739393354 379964 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Dynamically typed means that the runtime tries to follow what type each value has, and so you may be able to dispatch on the type of input values, or at least check them to catch type errors at runtime. A typical example is Cpython.
< 1739393429 760281 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Statically typed means that you figure out the type of values at compile time, and then you typically don't need to tag them at runtime, you can do dispatching between integer and floating point addition at compile time, and at runtime the code that you compiled to already knows which of these two operations you need.
< 1739393584 886228 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Now if you have an untyped language, then it's usually not hard to make a dynamically typed interpreter for it. The dynamically typed interpreter is less efficient, but more easily able to catch type errors in the code. Sometimes you also want to make the dynamically typed interpreter memory safe too, which is easy in most cases, but can be hard if the program that was originally written for a language 
< 1739393590 949567 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :designed to be untyped does some scary tricks like casting an integer to a pointer.
< 1739393632 22716 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :Something that does not quite match, but is similar, to the first and second, is MESH:Hero and Free Hero Mesh; MESH:Hero uses the first kind, but operations can usually be mapped directly to Free Hero Mesh which uses the second kind. It is like the example you specify, actually.
< 1739393659 152432 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :If you have a dynamically typed language then you often can't make an untyped interpreter for it, because the code will sometimes deliberately want to use the type tagging information as a free distinguished union. 
< 1739393704 809005 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :However, some things will result in "type mismatch" errors that do not do so in MESH:Hero, but this usually indicates a bug. (A case where it doesn't is using the address of objects for random numbers, although this is usually undesirable anyways.)
< 1739393726 303727 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :So to design a language that can be ran either untyped or dynamically typed, you just design it as untyped but forbid most of the cases when the program would use the wrong type -- you can still allow some of them, which the dynamic interpreter may have to support with implicit conversions.
< 1739393734 613637 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :But, you are right, and they are the kind of things I had noticed when designing Free Hero Mesh, actually.
< 1739393746 56921 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :And, it does work much like what you described.
< 1739393908 105059 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Now if you start from a statically typed language, you can usually *compile* it to an untyped language, but you may not be able to *interpret* it with an untyped interpreter, because there can be compile-time type dispatching necessary to distinguish between overloaded functions.
< 1739393995 963712 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :But if you design a new language, you can design it to work as either untyped or statically typed. The program will be more verbose because it can't use compile-time type dispatching, but will still often need some type annotations, such as to give the type of parameters for a function definition.
< 1739394142 610289 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :If you start from a statically typed language, then of course you can compile it to dynamically typed, but you can very often also *interpret* it dynamically typed. You can dispatch on the types of function arguments in a way that gives the same results for the two ways to interpret the language, though you can't dispatch on the return types only, because that's possible only in a statically typed 
< 1739394145 286714 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :OK, I suppose that will work, and may be useful for some kind of uses. (It might be useful for some kinds of intermediate code that is meant to be either interpreted or compiled, and be portable to multiple types of computers, maybe.)
< 1739394148 618071 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :language.
< 1739394160 632298 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :(I mean for one that is designed to be either untyped or statically typed)
< 1739394182 888445 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :But it's possible to design a language to work as either statically typed or dynamically typed, in which case again the program will need type annotations for the statically typed version.
< 1739394193 199936 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :(Olvashato does this by the way.)
< 1739394331 114546 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :It may also be possible to make it so that a compiler supports combining them, e.g. that anything that does not have a type annotation will use a tagged union and run less efficiently when compiled to statically typed code.
< 1739394364 379940 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I was thinking about this mostly because I want to design the esolang whose gimmick is using columns in the source code as variable names, and I want to figure out what type system that language has. I want to support at least two types, as in fixed-size integer and array of those integers, so I need some type system. Once I have two types working it's easy to extend the language with more types later.
< 1739394379 18439 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739394505 818178 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :This isn't the only problem, there are other things that I have to decide about this language.
< 1739394674 994403 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I also want to add the additional gimmick that you can make the source code right-aligned and have programmer-defined tab stops, which makes this esoteric because there is probably no existing editor that supports that in full generality.
< 1739394683 461738 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739394749 894155 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Client Quit
< 1739394883 655647 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
> 1739395044 593715 PRIVMSG #esolangs :14[[07Zudjn14]]4 10 02https://esolangs.org/w/index.php?diff=151828&oldid=151818 5* 03DevThatCodes 5* (-31) 10
> 1739395153 345557 PRIVMSG #esolangs :14[[07Zudjn14]]4 10 02https://esolangs.org/w/index.php?diff=151829&oldid=151828 5* 03DevThatCodes 5* (+4) 10
> 1739395347 123750 PRIVMSG #esolangs :14[[07Zudjn14]]4 10 02https://esolangs.org/w/index.php?diff=151830&oldid=151829 5* 03DevThatCodes 5* (+47) 10
< 1739395974 430634 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739396519 805425 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739397038 54931 :Celeo!~Celeo@user/celeo JOIN #esolangs Celeo :Celeo
< 1739397103 717454 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Static typing has the advantage that it can allow for better optimizations, especially the program wants to be portable and compiled to different platforms, and it allows you to use existing optimizing compiler backends.
< 1739397189 549961 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I could of course have two variants, so if you write your program without type annotations then it only works interpreted, but if you add type annotations (and get your types consistent in first place) then you can also use a hypothetical statically typed compiler.
< 1739398095 61793 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1739398554 138846 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :If I want to allow both untyping and dynamic typing, that actually makes static typing easier to add, because the untyping means functions can't dispatch on types, so I rarely need type annotations. If a value either comes from a return value of an ordinary function or is passed as an argument to an ordinary function then its type is fixed. I only need type annotations when the value is both created and 
< 1739398560 169786 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :consumed only by builtins that can handle generic types.
< 1739398687 586253 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :The reason why I don't want too many type annotations is that I want every function definition to know at compile time how many parameters and return values it has, because I do want to dispatch function calls at compile time on the number of arguments and return values. (Functions are named only, not first-class values.)
< 1739398705 565866 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Ok, that's not a very clear explanation admittedly.
< 1739398710 304053 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :And it might even be wrong.
< 1739398733 542600 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I'll have to think more about this.
< 1739398962 343858 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :I think I have an idea. What I should do is that function arguments and return values should be listed in the same place, at the function head, rather than listing return values at a return statement or the end of the function scope or something like that. The drawback is that it makes the function head and return statements look less like an ordinary call syntactically, but that's fine.
< 1739399049 418448 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :Sorry, I know this monologing is hard to follow.
< 1739399403 508861 :b_jonas!~x@88.87.242.184 PRIVMSG #esolangs :of course some of this works because this is to be a small toy language
< 1739399543 884459 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1739402450 181271 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :b_jonas: re: your typing discussion: I have been seriously considering "a statically typed language that uses monomorphization, but the debug builds compile into a dynamically typed language instead to save compile time"
< 1739402471 924256 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, if you aren't doing a properly optimizing build, you save monomorphization time by just using dynamic typing instead
< 1739402517 3674 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :hmm, does type erasure count as / imply dynamic typing?
< 1739402536 453760 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I guess it has to, a type-erased value needs to carry a vtable around so that you can actually call methods on it
< 1739402584 913055 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, Prolog famoulsy has arguments and return values all mixed together in the function head (and even in the function call)
< 1739402598 273220 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it makes complex expressions a little awkward to write
< 1739402626 812656 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :e.g. length_plus_one(List, LengthPlusOne) :- length(List, Length), LengthPlusOne is Length + 1.
< 1739402660 661559 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :have to have two separate "statements" to do the length measurement and the addition because the function doesn't have a traditional return value to add 1 to
< 1739402783 485945 :korvo!~korvo@2604:a880:4:1d0::4d6:d000 PRIVMSG #esolangs :Also, the multiple distinct type systems don't have to be related to each other. They don't even have to have the same signature for the type-checking function.
< 1739404140 429140 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…