> 1705451929 535704 PRIVMSG #esolangs :14[[07Backtracking INTERCAL14]]4 M10 02https://esolangs.org/w/index.php?diff=122062&oldid=12110 5* 03PythonshellDebugwindow 5* (+26) 10Wayback > 1705451994 88450 PRIVMSG #esolangs :14[[07Malcolm Ryan14]]4 M10 02https://esolangs.org/w/index.php?diff=122063&oldid=34081 5* 03PythonshellDebugwindow 5* (+26) 10Wayback > 1705452306 909651 PRIVMSG #esolangs :14[[07Threaded INTERCAL14]]4 M10 02https://esolangs.org/w/index.php?diff=122064&oldid=120969 5* 03PythonshellDebugwindow 5* (-13) 10Wayback; implementation appears to be dead < 1705454953 936704 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1705454996 673572 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 268 seconds < 1705455037 176921 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life > 1705456504 231159 PRIVMSG #esolangs :14[[07(?!)14]]4 10 02https://esolangs.org/w/index.php?diff=122065&oldid=122061 5* 03Kaveh Yousefi 5* (+43) 10Supplemented the lapsed output command entry in the Extended Backus-Naur Form (EBNF) formulation. > 1705456898 797469 PRIVMSG #esolangs :14[[07An Esolang That Refuses Files14]]4 N10 02https://esolangs.org/w/index.php?oldid=122066 5* 03None1 5* (+19) 10Redirected page to [[AETRF]] > 1705460927 711376 PRIVMSG #esolangs :14[[07SpinGate14]]4 M10 02https://esolangs.org/w/index.php?diff=122067&oldid=122058 5* 03None1 5* (+19) 10/* Logic Gates */ > 1705470000 183443 PRIVMSG #esolangs :14[[07Weeeeeeeeeeeeeeeeeeeeeeeeeeeeee/99 bottles14]]4 M10 02https://esolangs.org/w/index.php?diff=122068&oldid=122057 5* 03None1 5* (+12) 10 > 1705470232 746156 PRIVMSG #esolangs :14[[07.fuck cat program14]]4 M10 02https://esolangs.org/w/index.php?diff=122069&oldid=113012 5* 03None1 5* (+1) 10 > 1705470332 67890 PRIVMSG #esolangs :14[[07Dotfuck14]]4 M10 02https://esolangs.org/w/index.php?diff=122070&oldid=119100 5* 03None1 5* (+29) 10/* See also */ > 1705470363 861077 PRIVMSG #esolangs :14[[07Dotfuck14]]4 M10 02https://esolangs.org/w/index.php?diff=122071&oldid=122070 5* 03None1 5* (-1) 10/* Why is it brain-exploding */ > 1705470377 764992 PRIVMSG #esolangs :14[[07Dotfuck14]]4 M10 02https://esolangs.org/w/index.php?diff=122072&oldid=122071 5* 03None1 5* (-1) 10/* Why is it brain-exploding */ > 1705470451 381633 PRIVMSG #esolangs :14[[07OCPL14]]4 M10 02https://esolangs.org/w/index.php?diff=122073&oldid=119103 5* 03None1 5* (-2) 10 > 1705470632 880458 PRIVMSG #esolangs :14[[07OCPL14]]4 M10 02https://esolangs.org/w/index.php?diff=122074&oldid=122073 5* 03None1 5* (+29) 10/* Members */ < 1705470892 716747 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1705471555 859943 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1705472860 230856 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1705477360 127614 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz… < 1705478815 389056 :chiselfuse!~chiselfus@user/chiselfuse QUIT :Ping timeout: 240 seconds < 1705478974 568658 :chiselfuse!~chiselfus@user/chiselfuse JOIN #esolangs chiselfuse :chiselfuse < 1705479799 386647 :b_jonas!~x@88.87.242.184 QUIT :Quit: leaving < 1705480251 387762 :chiselfuse!~chiselfus@user/chiselfuse QUIT :Remote host closed the connection < 1705480264 101117 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User < 1705480285 751165 :chiselfuse!~chiselfus@user/chiselfuse JOIN #esolangs chiselfuse :chiselfuse > 1705481811 892615 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 10 02https://esolangs.org/w/index.php?diff=122075&oldid=121967 5* 03None1 5* (+801) 10/* Example Programs */ Added [[99 bottles of beer]] > 1705481849 450458 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 10 02https://esolangs.org/w/index.php?diff=122076&oldid=122075 5* 03None1 5* (+22) 10/* Print */ > 1705481906 830098 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 M10 02https://esolangs.org/w/index.php?diff=122077&oldid=122076 5* 03None1 5* (+100) 10/* 99 bottles of beer */ > 1705481921 195674 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 M10 02https://esolangs.org/w/index.php?diff=122078&oldid=122077 5* 03None1 5* (+1) 10/* 99 bottles of beer */ > 1705481967 253695 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 10 02https://esolangs.org/w/index.php?diff=122079&oldid=117500 5* 03None1 5* (+920) 10/* Win Golf */ > 1705481992 586683 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 M10 02https://esolangs.org/w/index.php?diff=122080&oldid=122078 5* 03None1 5* (-21) 10 > 1705482018 406643 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 10 02https://esolangs.org/w/index.php?diff=122081&oldid=121234 5* 03None1 5* (+60) 10/* External resources */ > 1705482559 104778 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 10 02https://esolangs.org/w/index.php?diff=122082&oldid=122081 5* 03None1 5* (+933) 10/* Example Programs */ > 1705482639 220764 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 10 02https://esolangs.org/w/index.php?diff=122083&oldid=122079 5* 03None1 5* (+1139) 10/* WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic */ > 1705482656 362771 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 10 02https://esolangs.org/w/index.php?diff=122084&oldid=122082 5* 03None1 5* (+186) 10/* 99 bottles of beer */ > 1705482723 631784 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 M10 02https://esolangs.org/w/index.php?diff=122085&oldid=122084 5* 03None1 5* (-4) 10/* 99 bottles of beer */ > 1705482871 492223 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 M10 02https://esolangs.org/w/index.php?diff=122086&oldid=122085 5* 03None1 5* (+0) 10/* 99 bottles of beer */ > 1705482888 334539 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 M10 02https://esolangs.org/w/index.php?diff=122087&oldid=122083 5* 03None1 5* (+0) 10/* WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++ */ > 1705482897 277707 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 M10 02https://esolangs.org/w/index.php?diff=122088&oldid=122087 5* 03None1 5* (+1) 10/* WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic */ > 1705482913 537152 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic14]]4 M10 02https://esolangs.org/w/index.php?diff=122089&oldid=122080 5* 03None1 5* (+0) 10/* 99 bottles of beer */ > 1705483106 97693 PRIVMSG #esolangs :14[[07WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++14]]4 M10 02https://esolangs.org/w/index.php?diff=122090&oldid=122086 5* 03None1 5* (+61) 10/* 99 bottles of beer */ < 1705483124 104112 :Koen_!~Koen@2a01:e34:ec7c:30:e8a5:9e9c:a511:42cf JOIN #esolangs * :Koen > 1705483144 894562 PRIVMSG #esolangs :14[[0799 bottles of beer14]]4 M10 02https://esolangs.org/w/index.php?diff=122091&oldid=122088 5* 03None1 5* (+57) 10/* WeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeBasic++ */ > 1705483529 194342 PRIVMSG #esolangs :14[[07SpinGate14]]4 10 02https://esolangs.org/w/index.php?diff=122092&oldid=122067 5* 03Jacobl 5* (+4) 10 < 1705483606 273567 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer > 1705483955 687951 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=122093&oldid=122015 5* 03Jacobl 5* (+15) 10 > 1705483963 95087 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Descriptions/Operation14]]4 10 02https://esolangs.org/w/index.php?diff=122094&oldid=122045 5* 03Kiken 5* (+2398) 10 > 1705484023 241523 PRIVMSG #esolangs :14[[07SpinGate14]]4 10 02https://esolangs.org/w/index.php?diff=122095&oldid=122092 5* 03Jacobl 5* (+27) 10 > 1705484950 728182 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Implementations/Operation14]]4 N10 02https://esolangs.org/w/index.php?oldid=122096 5* 03Kiken 5* (+318) 10Created page with "
 import os  # takes in a file name as input  def operation(filename):     data = ''     with open(filename) as f:         stat = os.stat(filename)         inode = stat.st_ino         for char in inode:             if int(
> 1705484955 900757 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Descriptions/Operation14]]4 10 02https://esolangs.org/w/index.php?diff=122097&oldid=122094 5* 03Kiken 5* (+706) 10
> 1705485031 955368 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Descriptions/Operation14]]4 M10 02https://esolangs.org/w/index.php?diff=122098&oldid=122097 5* 03Kiken 5* (+14) 10/* Interpretation */ fixing formatting errors
> 1705485095 341904 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Descriptions/Operation14]]4 M10 02https://esolangs.org/w/index.php?diff=122099&oldid=122098 5* 03Kiken 5* (+46) 10/* Controlling */ fixing formatting errors
> 1705485164 302862 PRIVMSG #esolangs :14[[07User:Kiken/Construction Site/Descriptions/Operation14]]4 M10 02https://esolangs.org/w/index.php?diff=122100&oldid=122099 5* 03Kiken 5* (-8) 10/* Controlling */
< 1705485169 615914 :cpressey!~cpressey@host-92-10-145-254.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705486313 83444 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
< 1705486556 274178 :ManDeJan!3da94070ba@user/mandejan JOIN #esolangs ManDeJan :ManDeJan
< 1705486612 114203 :__monty__!~toonn@user/toonn JOIN #esolangs toonn :Unknown
< 1705489069 154268 :cpressey!~cpressey@host-92-10-145-254.as13285.net QUIT :Quit: Client closed
< 1705489159 606448 :cpressey!~cpressey@host-92-10-145-254.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705491700 719877 :dutch!~DutchIngr@user/dutch QUIT :Ping timeout: 268 seconds
< 1705493736 62165 :cpressey!~cpressey@host-92-10-145-254.as13285.net PRIVMSG #esolangs :IRC seems really... dead.
< 1705493826 757918 :cpressey!~cpressey@host-92-10-145-254.as13285.net PRIVMSG #esolangs :Since I only use Libera maybe I should be fair and say "Libera seems really dead", but from what I understand Libera is the most popular IRC server.
< 1705493828 985632 :cpressey!~cpressey@host-92-10-145-254.as13285.net PRIVMSG #esolangs :https://netsplit.de/networks/top10.php?year=2023
< 1705493872 747742 :cpressey!~cpressey@host-92-10-145-254.as13285.net PRIVMSG #esolangs :Wonder what happened in Aug 2023.
< 1705494011 247839 :ais523!~ais523@user/ais523 QUIT :Remote host closed the connection
< 1705494085 952768 :ais523!~ais523@user/ais523 JOIN #esolangs ais523 :(this is obviously not my real name)
< 1705494726 736161 :cpressey!~cpressey@host-92-10-145-254.as13285.net PRIVMSG #esolangs :All this other stuff now.  https://matrix.org/ecosystem/bridges/
< 1705495024 607107 :cpressey!~cpressey@host-92-10-145-254.as13285.net QUIT :Ping timeout: 250 seconds
< 1705496217 461079 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"Wonder what happened in Aug 2023." -- "As of 2023-08-05, the official Libera.Chat bridge operated by Element Matrix Services (EMS) was taken down."
< 1705496344 219717 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :"Anyhow... It seems that the Internet Relay Chat has its best times well behind." As they say on the top-10 page.
< 1705496591 809984 :int-e!~noone@int-e.eu PRIVMSG #esolangs :young people these days ( :-P ) are socialized differently.
< 1705496672 287540 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :They had an "here's how to use IRC" primer in the welcome leaflet for CS students at the university, I wonder what they have now.
< 1705496700 341235 :int-e!~noone@int-e.eu PRIVMSG #esolangs :"You already know Discord, maybe have a look at Matrix too"
< 1705496701 629662 :int-e!~noone@int-e.eu PRIVMSG #esolangs ::-P
< 1705496705 623170 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I think I heard a rumor they even closed down the local NNTP server.
< 1705496893 257995 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Looking at the student association web page, looks like they use Telegram now.
< 1705496901 760974 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Anyway, I think "dead" is an exaggeration but it is definitely winding down, and I think it will continue to do that for 2-3 more decades before it truly dies.
< 1705496967 698192 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Simply because IRC servers are cheap to keep alive, and IRC clients don't take up much screen space so you can leave them running forever.
< 1705499471 717512 :Soni!~quassel@sodapop.autistic.space QUIT :Quit: http://quassel-irc.org - Chat comfortably. Anywhere.
< 1705499498 606474 :cpressey!~cpressey@host-89-240-115-91.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705499503 728672 :SoniEx2!~quassel@sodapop.autistic.space JOIN #esolangs SoniEx2 :Genders: Autgender, 💜🖤💚; Soni L.
< 1705499599 180390 :int-e!~noone@int-e.eu PRIVMSG #esolangs :cpressey: https://logs.esolangs.org/libera-esolangs/2024-01-17.html#lhb
< 1705499722 456858 :SoniEx2!~quassel@sodapop.autistic.space NICK :Soni
< 1705500003 282969 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1705500427 96567 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1705500456 12778 :cpressey!~cpressey@host-89-240-115-91.as13285.net PRIVMSG #esolangs :ACTION clicks "like" on int-e's "status update"
< 1705500700 595377 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm. "I tried IRC but I can't 'like' it."
< 1705500700 993920 :cpressey!~cpressey@host-89-240-115-91.as13285.net QUIT :Quit: Client closed
> 1705500856 442492 PRIVMSG #esolangs :14[[07ThreadFuck14]]4 N10 02https://esolangs.org/w/index.php?oldid=122101 5* 03None1 5* (+3909) 10Created page with "{{lang|a=User:None1|i=[[Bukkake]] and [[Brainfuck]]}} ==Subprograms== ThreadFuck programs consists of lines called '''subprograms'''. If the program is empty, it errors. Otherwise the main thread will execute the first line. When a thread's instruction pointer reaches 
< 1705500890 606258 :cpressey!~cpressey@host-92-21-195-149.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
> 1705500963 878799 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=122102&oldid=122093 5* 03None1 5* (+17) 10/* T */
> 1705501007 114465 PRIVMSG #esolangs :14[[07User:None114]]4 10 02https://esolangs.org/w/index.php?diff=122103&oldid=122055 5* 03None1 5* (+66) 10/* My Esolangs */
< 1705501016 670193 :cpressey!~cpressey@host-92-21-195-149.as13285.net PRIVMSG #esolangs :"As of 2023-08-05, the official Libera.Chat bridge operated by Element Matrix Services (EMS) was taken down." <-- wait, does that mean you can no longer connect to Libera.Chat using Matrix? If so then the esowiki page about this channel might need updating.
< 1705501086 484751 :int-e!~noone@int-e.eu PRIVMSG #esolangs :The seamless bridge (where you become an IRC user) is gone, yes.
< 1705501119 554509 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Oh, I didn't even think of that. Yeah, the instructions are probably now incorrect.
< 1705501246 714907 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Well, it says #esolangs:libera.chat "should" work, arguably that's not totally incorrect. It doesn't, but in a hypothetical perfect world, it probably should.
< 1705501266 188978 :int-e!~noone@int-e.eu PRIVMSG #esolangs ::) (I thought the same thing)
< 1705501292 643813 :int-e!~noone@int-e.eu PRIVMSG #esolangs :just add   around it
< 1705501393 616343 :int-e!~noone@int-e.eu PRIVMSG #esolangs :do I dare to check whether that #esocrypt channel on the network that shall not be named is still around?
< 1705501405 45433 :__monty__!~toonn@user/toonn QUIT :Quit: leaving
< 1705501465 561828 :int-e!~noone@int-e.eu PRIVMSG #esolangs :it's empty.
> 1705501517 810595 PRIVMSG #esolangs :14[[07ThreadFuck14]]4 10 02https://esolangs.org/w/index.php?diff=122104&oldid=122101 5* 03None1 5* (+501) 10/* Examples */
< 1705501525 473226 :int-e_!~noone@213162081090.public.t-mobile.at JOIN #esolangs int-e :Bertram
< 1705501527 944546 :int-e_!~noone@213162081090.public.t-mobile.at NICK :meh
< 1705501569 472462 :meh!~noone@213162081090.public.t-mobile.at QUIT :Client Quit
< 1705501596 803456 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(meh, I didn't think that would pick up all the autojoin channels)
> 1705501609 559172 PRIVMSG #esolangs :14[[07ThreadFuck14]]4 M10 02https://esolangs.org/w/index.php?diff=122105&oldid=122104 5* 03None1 5* (+35) 10/* Example 2 */
> 1705501682 452236 PRIVMSG #esolangs :14[[07ThreadFuck14]]4 M10 02https://esolangs.org/w/index.php?diff=122106&oldid=122105 5* 03None1 5* (+28) 10/* Example 2 */
> 1705501686 540646 PRIVMSG #esolangs :14[[07Esolang:Community portal14]]4 10 02https://esolangs.org/w/index.php?diff=122107&oldid=118890 5* 03Int-e 5* (-374) 10no matrix, no leenode
> 1705501738 853214 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03MaroonCoffee 5*  10New user account
< 1705501914 514632 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Which reminds me, we never actually made https://esolangs.org/wiki/Esolang:IRC_cloaks happen, it just kind of stalled.
> 1705501942 32016 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=122108&oldid=122026 5* 03MaroonCoffee 5* (+193) 10Signed my name on the introduce_yourself page
< 1705502422 75452 :supercode!~supercode@user/supercode JOIN #esolangs supercode :[https://web.libera.chat] supercode
< 1705503327 624172 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1705503891 921831 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`'
< 1705503893 985731 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :197) [on Walter Bright]  I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
< 1705503900 146626 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fizzie: tbh I never cared about those
< 1705504108 205036 :int-e!~noone@int-e.eu PRIVMSG #esolangs :What a timely quote, D just got forked. https://dpldocs.info/this-week-in-arsd/Blog.Posted_2024_01_01.html
< 1705504122 143409 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu JOIN #esolangs b_jonas :[https://web.libera.chat] wib_jonas
< 1705504186 819761 :cpressey!~cpressey@host-92-21-195-149.as13285.net PRIVMSG #esolangs :TIL enough people still care about D to disagree with some other people who also still care about D
< 1705504224 159504 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Oh sure, I only noticed it because there was drama.
< 1705504240 458392 :int-e!~noone@int-e.eu PRIVMSG #esolangs :D felt... unnecessary, I guess, to me.
< 1705504274 869921 :supercode!~supercode@user/supercode PRIVMSG #esolangs :yes, ditto for me. I know the D author is active on  HN and responds to many programming language threads and always shows examples from D about how D does something in programming language threads.
< 1705504274 960544 :int-e!~noone@int-e.eu PRIVMSG #esolangs :If I had named the fork thogh I would've called it D++
< 1705504276 958366 :int-e!~noone@int-e.eu PRIVMSG #esolangs :;-)
< 1705504293 852569 :int-e!~noone@int-e.eu PRIVMSG #esolangs :*though
< 1705504299 445862 :supercode!~supercode@user/supercode PRIVMSG #esolangs :but recently I learnt there is a community and forking about it which means enough people care. didn't know that before.
< 1705504366 524842 :supercode!~supercode@user/supercode PRIVMSG #esolangs :where did that quote come from? source of that quote?
< 1705504480 460136 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Almost all quotes produced by `' (= `quote) are from this channel.
< 1705504572 124096 :supercode!~supercode@user/supercode PRIVMSG #esolangs :'197
< 1705504595 25347 :supercode!~supercode@user/supercode PRIVMSG #esolangs :sorry new here. but how do I get it to print this quote: 197) [on Walter Bright]  I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
< 1705504649 964700 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://logs.esolangs.org/freenode-esoteric/2011-01-22.html#lSA
< 1705504659 298434 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`' 197
< 1705504660 547976 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :197) [on Walter Bright]  I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
< 1705504668 940284 :supercode!~supercode@user/supercode PRIVMSG #esolangs :`' 197
< 1705504670 25030 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :197) [on Walter Bright]  I went to chat with him after his talk at the ELC and he was like "hum, right - humans. How do they work again... oh, hi!"
< 1705504681 444944 :supercode!~supercode@user/supercode PRIVMSG #esolangs :ah! eso-syntax for esolang channel!
< 1705504686 952498 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :`5 q
< 1705504690 313112 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :1/2:599)  Minecraft has made me view all trees as ridiculously slender. \ 695)  bleh, why doesn't tab-complete work in mkdir for the name of the new directory \ 565)  ais523: those suck   hmm, those are all pretty good \ 529)  jesus, yes.. he was human   and that is fantastic   more than beeing able to speak with fish.. like seaman does \ 886)  in Smalltalk, as in Fe
< 1705504693 218688 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :`n
< 1705504694 307926 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :2/2:ather, in order to do I/O, you must first create the universe   ais523, it seems quite capable of I/O... GUI is a form of I/O   Sgeo: yeah exactly   where does the GUI come from?   it's written in Smalltalk, clearly   and how does the GUI do its I/O?   if you think about the issue for too long, you end up inventing Feather
< 1705504715 920448 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`help
< 1705504716 2760 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :Runs arbitrary code in GNU/Linux. Type "`", or "`run " for full shell commands. "`fetch [] " downloads files. Files saved to $HACKENV are persistent, and $HACKENV/bin is in $PATH. $HACKENV is a mercurial repository, "`revert " can be used to revert, https://hack.esolangs.org/repo/ to browse. $PWD ($HACKENV/tmp) is persistent but unversioned, /tmp is ephemeral.
< 1705504737 18255 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`pwd
< 1705504737 908243 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :​/hackenv/tmp
< 1705504738 44642 :supercode!~supercode@user/supercode PRIVMSG #esolangs :`run ls -l
< 1705504739 232095 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :total 396 \ -rwxr-xr-x  1 1000 1000    163 May 27  2021 🌱 \ -rw-r--r--  1 1000 1000      0 Nov  1  2022 3 \ -rw-r--r--  1 1000 1000   1192 Jul 22  2021 a.o \ -rwxr-xr-x  1 1000 1000  16608 Sep 26  2022 a.out \ drwxr-xr-x  7 1000 1000   4096 Dec 31  2019 asmbf-1.2.7 \ -rw-r--r--  1 1000 1000    103 Nov 12  2019 banana.txt \ -rwxr-xr-x  1 1000 1000  32686 May 27  2021 bef2 \ -rwxr-xr-x  1 1000 1000  17296 Nov 18  2019 bfi \ drwxr-xr-x  2 1000 1000   4096 
< 1705504752 640856 :supercode!~supercode@user/supercode PRIVMSG #esolangs :`run who am i
< 1705504753 536286 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :No output.
< 1705504755 671433 :supercode!~supercode@user/supercode PRIVMSG #esolangs :`run who
< 1705504756 624465 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :No output.
< 1705504760 778199 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`` whoami
< 1705504761 868665 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :int-e
< 1705504769 898496 :int-e!~noone@int-e.eu PRIVMSG #esolangs :magic!
< 1705504798 999260 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(not really: https://hack.esolangs.org/repo/file/tip/bin/whoami )
< 1705505012 287176 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: I think most online communities tend to be pretty quiet at this time of year
< 1705505028 785212 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :october/november are often very busy, with december/january much more empty
< 1705505099 417255 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've had even more trouble doing anything at all this month than I have had over most of the past year
< 1705505223 582032 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and it's quite possible I'm not the only person in that situation
< 1705505466 606220 :cpressey79!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705505540 120334 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Well, maybe... but I remember noticing how quiet it seemed when I came back to IRC in autumn of last year.
< 1705505552 508288 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Quiet and different somehow.
< 1705505569 127026 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think a parallel esolangs community has sprung up on Discord, which is a place that I intentionally avoid
< 1705505579 128209 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but I think it may have been becoming more quiet too
< 1705505630 80508 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and codegolf stack exchange's chat also became more quiet over time
< 1705505654 983907 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :int-e: what is the relationship between D and golang? are they trying to fill the same role, kind of like how rust is a more modern language with goals similar to C++, and zig is a more modern language with goals similar to C? or are they for completely different purposes?
< 1705505658 606996 :cpressey!~cpressey@host-92-21-195-149.as13285.net QUIT :Ping timeout: 250 seconds
< 1705505678 377461 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: I don't think Go is trying to fill C's niche
< 1705505713 844205 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(although it was written by some of the same people)
< 1705505720 154879 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: yes, I'm asking about D versus golang, as in is golang trying to be a more modern language used for the same thing as D?
< 1705505728 644350 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh, I see
< 1705505733 169023 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: I said that zig is trying to fill C's niche, and rust C++'s
< 1705505740 847944 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :these are just more than niches though
< 1705505746 166933 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :go has found a niche mostly in writing network services/servers
< 1705505782 140204 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said, I have not had a good experience with it – I haven't tried to write it myself, but regularly use one Go program written by someone else and it is a bit of a mess
< 1705505797 694760 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :"D felt... unnecessary, I guess, to me." => I perceived it as a research language, in the sense that it was made by someone who also made a C compiler and so probably wanted to experiment on how to make a better language. then it got somewhat succesful and popular.
< 1705505834 678772 :int-e!~noone@int-e.eu PRIVMSG #esolangs :wib_jonas: I guess "systems programming language with support for garbage collection" makes it sound like golang. Except that maybe 2002 (rounding december 2001) was too early for people to embrace GC?
< 1705505843 804225 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the thing about making a better C, is that making a better C is easy, but making a better *enough* C is hard
< 1705505868 264830 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :like, C has tons of well-known problems, many of which have well-known and simple solutions
< 1705505892 958602 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :supercode: there is some documentation at https://esolangs.org/wiki/HackEso , though it's really incomplete
< 1705505894 474950 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :int-e: Re cloaks, apparently a widely shared opinion based on nobody asking after them.
< 1705505903 336231 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, the costs of switching language are high enough that something that simply fixes some/many of C's problems isn't better by enough to persuade people to make the switch
< 1705505943 331241 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Rust was the first language that was better by enough to persuade me to stop using C
< 1705505975 505859 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and even then, it has a lot of issues, but they're manageable)
< 1705505982 339049 :int-e!~noone@int-e.eu PRIVMSG #esolangs :D defintely predates the trend of every big company making their own programming language (unless you count Objective C and I guess Cocoa along with it)
< 1705506012 51363 :int-e!~noone@int-e.eu PRIVMSG #esolangs :But I also never took D seriously enough to look at it closely.
< 1705506013 568717 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :does Amazon have its own programming language?
< 1705506022 68273 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: yes, which is why zig is trying to be so fricking easy to mix with C, though this doesn't seem to be the aspect that they advertise the most. in particular, the zig compiler can parse C headers, including with macros, so you need less glue to use libraries with a C API than in eg. rust or haskell or zig. this is a large part of what made
< 1705506022 568697 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :C++ succeed.
< 1705506049 412420 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: I have definitely seen Zig evangelists advertise that their compiler is better at building C than a typical C compiler is
< 1705506050 859134 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: Hmm, I guess not. They also don't have their own OS.
< 1705506067 758737 :int-e!~noone@int-e.eu PRIVMSG #esolangs :That I know of.
< 1705506074 106288 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :they do have the entire mess of AWS support libraries and services, that's kind-of like an OS
< 1705506086 685016 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: also zig manages to ship a working C and C++ compiler and libc for win32, and that's pretty hard these days, so you can use the same compiler toolkit and library to compile mixed C and C++ and zig for win32
< 1705506088 441004 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's definitely a "platform you can write for"
< 1705506137 139106 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :They've also got an Android distribution on those Fire things. And an SDK for third-party apps to do special Amazon-integrated things on them, I think.
< 1705506140 270476 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: also I get the feeling that in the past, it was more common for companies (even small ones) to have their own languages, rather than less
< 1705506142 587281 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: And they have so many abstractions in the form of AWS services that they probably don't need a programming language to lock in people further.
< 1705506155 978246 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ais523: Anyway, yes, Amazon looks like an exception to the rule.
< 1705506159 991605 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :One of Amazon's values is "frugality".  It repurposes desks out of old doors and things like that.
< 1705506179 452891 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Providing their own language doesn't quite match with that value.
< 1705506182 736986 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: it is very likely better than other compilers that you can get for win32. you know how both intel and msvc have difficulty with their own compilers and so are experimenting with using clang as the compiler backend but with their own libraries, right? zig also ships clang, which is the easy part, the hard part is getting the libraries to
< 1705506183 237710 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :work on windows as well.
< 1705506191 818330 :int-e!~noone@int-e.eu PRIVMSG #esolangs :And I should probably not discount Sun's Java which is an older big company programming language... though they made the core fairly open.
< 1705506213 225704 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: when I need to build C programs on Windows I normally use Strawberry Perl, which ships with a working C toolchain
< 1705506230 71664 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: hmm, I haven't tried that, interesting
< 1705506235 27101 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :based on mingw I think
< 1705506264 95937 :int-e!~noone@int-e.eu PRIVMSG #esolangs :funny
< 1705506266 653198 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Does Microsoft's 8-bit BASIC racket (and then later, Visual Basic) count as a "big company programming language"?
< 1705506290 650504 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey79: that's kind-of inverted I think, in that them doing Basic predated them becoming a big company
< 1705506291 409970 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I'd look at C# for that.
< 1705506296 594412 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and in fact they may have become big partly due to it)
< 1705506329 219247 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :Microsoft has been making its own languages for ages, but few of them really caught on for non-Windows platforms
< 1705506350 858194 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :C# is very commonly used on Windows, and TypeScript is somewhat popular on the web (but very recent compared to the other big Microsoft languages)
< 1705506353 834017 :int-e!~noone@int-e.eu PRIVMSG #esolangs :cpressey79: "racket" - wasn't BASIC the original product
< 1705506385 648883 :int-e!~noone@int-e.eu PRIVMSG #esolangs :before Digital Research botched their negotiations with IBM and MS got do make DOS for them?
< 1705506423 166892 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"racket" as in "Hey, you, micro manufacturer, your users are gonna need a way to USE that micro of yours ain't they? Well we got the solution for you!"
< 1705506435 239406 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Ah.
< 1705506501 935103 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :In the phrase "Applesoft BASIC" the word "Applesoft" is a portmanteau of "Apple" and "Microsoft".
< 1705506553 629675 :cpressey79!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :But anyway.  They own GitHub now, so they got their "Developers! Developers! Developers!" wish.
< 1705506571 90706 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the relationship between Apple and Microsoft over the years has been hard to follow
< 1705506629 293972 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :it doesn't seem like supercode has been welcomed yet
< 1705506632 366433 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :`welcome supercode
< 1705506634 659674 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :supercode: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: . (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
< 1705506703 816122 :supercode!~supercode@user/supercode PRIVMSG #esolangs :thanks!
< 1705506886 88580 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :as for languages with inconveniences, do these modern javascript thingies have an array type yet that just throws an error if you try to index it out of bounds, or are they still mostly doing the perl for array types?
< 1705506922 929475 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :because that sounds like you don't need an entirely new language for, just some library addition
< 1705507007 19600 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: there's TypedArray
< 1705507029 69708 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although that only stores integers of a specified bit size
< 1705507039 671445 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :or IEEE floats
< 1705507123 983966 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :modern JavaScript does have a proper map type Map (as opposed to the old-fashioned Object) – fixing that was more urgent than fixing the arrays, I think
> 1705507153 746609 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=122109&oldid=122102 5* 03PythonshellDebugwindow 5* (+0) 10/* T */ Alphabetise
< 1705507229 61740 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :sure, fixing Map was more important
< 1705507237 745516 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and possibly easier too
< 1705507316 291551 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, "arrays that grow when you index past the last element" make a lot of sense for memory-safe langauges
< 1705507404 438711 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1705507430 838923 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :actually I think a lot of the conceptual interest with array types is that they're a sort of general-purpose type that can be used to represent a lot of different sorts of data, and the "optimal" array behaviour is different in each case
< 1705507452 77302 :APic!apic@apic.name PRIVMSG #esolangs :*nod*
< 1705507468 829668 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for example, an array can be used to represent a map from integers to values, or an ordered list, or an unordered list
< 1705507488 346436 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and all three of those data structures are somewhat general in their own right
< 1705507556 504371 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but, the map grows in a different way from the lists, and the lists grow in a different way from each other (in particular, when an array is used to represent an unordered list, it grows only at the end, and can be deleted from efficiently via swapping the element you're deleting to the end)
< 1705507600 477896 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :actually no, the swap-delete isn't efficient because actually finding the element you want to delete is O(n)
< 1705507620 129675 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this is a common fallacy with unordered data structures, e.g. non-intrusive linked lists are slow to delete from for the same reason
< 1705507638 731221 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :sorry for making the mistake (although I am glad I caught myself quickly)
< 1705507700 29784 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I mean it's true in that the actual act of deleting is cheap
< 1705507768 581426 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it is strange that intrusive linked lists aren't more widely supported in high-level languages, given that their performance properties are hard to obtain in other ways
< 1705507786 658450 :int-e!~noone@int-e.eu PRIVMSG #esolangs :So you can have a nice little container whose operations are: insert, pick random element, and delete
< 1705507808 879416 :int-e!~noone@int-e.eu PRIVMSG #esolangs :if you need to track elements as they're swapped it easily becomes expensive
< 1705507826 3731 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that reminded me of an idea I had for playing TCGs
< 1705507855 639787 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :where, instead of your deck being an ordered pile of cards, only the cards that had been placed on the top or bottom of the deck by a card effect were tracked in a pile
< 1705507858 458101 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ah
< 1705507872 325295 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and the other cards were placed in a not-necessarily-random order on a grid with coordinates
< 1705507880 892343 :int-e!~noone@int-e.eu PRIVMSG #esolangs :...saving one indirection shouldn't have a fancy name
< 1705507885 816517 :int-e!~noone@int-e.eu PRIVMSG #esolangs :IMHO
< 1705507898 581870 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :to draw a card, if there were no nonrandom cards on top of the deck, you would roll dice to see which card was on top
< 1705507923 688911 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :int-e: intrusive linked lists isn't just a case of saving an indirection
< 1705507933 894745 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :they let you start with a pointer to an object that's on a list, and discover its place in the list
< 1705507956 387199 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if the list is doubly-linked, which it almost always is for intrusive linked lists, you can then delete it without having to search for it first
< 1705508025 557444 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Sure, I get all that. I have used what is apparently called intrusive linked lists myself.
< 1705508034 238801 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I called them linked lists.
< 1705508035 536451 :int-e!~noone@int-e.eu PRIVMSG #esolangs ::P
< 1705508053 137053 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, the LinkedList type in languages that have one is almost always non-intrusive
< 1705508073 44482 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and you can't write an intrusive linked list in safe Rust because the borrow checker doesn't understand them, so linked lists go almost unused there)
< 1705508125 296600 :int-e!~noone@int-e.eu PRIVMSG #esolangs :that's true regardless of whether they're intrusive or not...
< 1705508144 367235 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :you can write a singly linked non-intrusive list in safe Rust, it's just basically useless
< 1705508206 778835 :int-e!~noone@int-e.eu PRIVMSG #esolangs :ACTION wonders whether Knuth makes this distinction
< 1705508313 307772 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :"a lot of the conceptual interest with array types is that they're a sort of general-purpose type that can be used to represent a lot of different sorts of data" => sure, and it'
< 1705508336 754751 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and there's a sort of evolution towards type safety where something is first implemented on normal arrays, then later moved into a new type
< 1705508508 60818 :cpressey79!~cpressey@host-2-102-84-37.as13285.net NICK :cpressey
< 1705508508 248312 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :that's why we now have binary heap types, sorted array types (flat_map and flat_multimap), vectors with a capacity, typically-small arrays that store a few elements inside them but can allocate into the heap when they outgrow that, string types, matrix types, types for triangular matrix, symmetric matrix, hermitian matrix, as well as just stack and
< 1705508508 748579 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :queue types, and sometimes even multi-threaded queues with an associated condition variable and all that jazz
< 1705508537 169404 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :I first learned about linked lists so long ago that "intrusitivity" was just an assumed property of all linked lists
< 1705508541 571516 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Knuth doesn't dwell on linked lists all that much but his default linked list is intrusive.
< 1705508567 805108 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :If you want to link records together you need to add a link to the record, duh
< 1705508579 350853 :int-e!~noone@int-e.eu PRIVMSG #esolangs :exactly
< 1705508609 707980 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :"Knuth doesn't dwell on linked lists all that much" => what? isn't like half of chapter 2 about linked lists (including doubly-linked and other variants), plus memory allocation schemes that use linked lists to chain free blocks?
< 1705508734 781907 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :"it is strange that intrusive linked lists aren't more widely supported in high-level languages, given that their performance properties are hard to obtain in other ways" => yes, but you rarely need those performance properties. you can do most of what they do with various array types.
< 1705508768 602850 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :also lists are hard to support in a memory-safe language because you need a way to have a smart pointer (iterator) onto a list element
< 1705508784 262671 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :fwiw, I think generally for situations where intrusive linked lists are good, the only alternative with comparable performance properties is a relational database with indexes
< 1705508785 39742 :int-e!~noone@int-e.eu PRIVMSG #esolangs :wib_jonas: oh you're right, that section is longer than the index suggests. probably because I looked for the wrong keyword.
< 1705508797 792464 :int-e!~noone@int-e.eu PRIVMSG #esolangs :anyway, it's still true that his default is "intrusive"
< 1705508799 708092 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :which is O(log n) slower for some important operations and has worse constant factors
< 1705508820 641325 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and if the code does not use pointers into the list elements, then it probably only wants either a dequeue, which you can make from two arrays, or a list that you can sort
< 1705508846 815208 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(these are also situations in which a garbage collector doesn't help at all – if you don't know when the last reference to an object is disappearing anyway, you have a logic bug)
< 1705508861 537572 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :now for low level languages, sure, if you're writing a kernel then use intrusive lists where appropriate, but then it's on you to make sure you don't reference stale pointers
< 1705508883 684845 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :why *should* it be on me? why can't I have a language that can guarantee memory safety and still give me intrusive lists?
< 1705508980 691784 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Short answer: economics
< 1705508988 840536 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Anyway, fine, I'll get over it... eventually.
< 1705508997 875583 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Come to think of it, that's the short answer to everything
< 1705509163 772420 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: I guess you can, you just have to use weak references with backlinks and all that sort of nonsense, but it's not often that that case comes up, because in most of the cases it's easier to use arrays, possibly also with backlinks to references, and in the rest a list isn't powerful enough and you need some kind of tree structure
< 1705509197 615273 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: the weak references are pretty hard to prove to be memory-safe, though (which in this case means "do not unexpectedly null themselves out")
< 1705509245 317666 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oddly, the memory-unsafe languages are much easier to get this right in, because you only have to check the invariants on the references in a few places
< 1705509247 804326 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :basically in each node in the list (or each element of the array) you have to track the references to it, clear the reference if you delete that node (or element in the array), for an array or singly-linked list only update the link when you move the element, and
< 1705509264 410764 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :if you want to make copies of the full list (such as for undo purposes) then it gets much worse
< 1705509283 566394 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :right
< 1705509323 42401 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and this applies regardless whether your reference to the node is a normal or weak reference
< 1705509327 992083 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this reminds me of the "reverse strong reference" concept (a reference from A to B that holds A alive for as long as B is alive – a regular strong reference holds B alive for as long as A is alive)
< 1705509405 631038 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(they have to be combined with objects that have weak references to A in order to make any sense at all, but allow you to do things that you couldn't otherwise automatically do in GCed languages)
< 1705509442 735298 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :I did this in a very small scale when I implemented a structure that whose elements are both a binary heap by weight and in a dictionary by another key. to implement this, the dictionary stores indexes into the heap, and whenever I move items in the binary heap I have to update the indexes in the dictionary.
< 1705509512 894923 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :this seems like the sort of thing that a language really should be able to do automatically (if nothing else, it would be less error-prone than doing it by hand)
< 1705509531 918396 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but it's also the sort of thing that encourages me to use databases, which are normally very good at it
< 1705509540 43955 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :SQL has ON DELETE CASCADE, for example
> 1705509597 279871 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MaroonCoffee 5*  10uploaded "[[02File:Cube.jpg10]]": Traversal of a cube for Cube and Tesseract
< 1705509652 97119 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :oh, I have a question. rust's rc module (and, IIUC, python's weak references) implement a kind of weak reference, where instead of the back references being on an intrusive list, the weak-referencable object just has a counter of the weak references, and when the object would die but has weak references then the allocation (but not the object
< 1705509652 597324 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :contents) is kept alive until the last weak reference disappears. why is this ever better than just putting the weak references on a backlink?
< 1705509685 229311 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :what do you mean by "backlink" here?
< 1705509724 488252 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in Rust's case I strongly suspect it's caused by arbitrary objects being movable via memcpy
< 1705509744 779079 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and you can't move an intrusive list via memcpy because it would break the pointers
< 1705509763 808845 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it may be the most efficient solution that's compatible with the language invariants
> 1705509810 894574 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MaroonCoffee 5*  10uploaded "[[02File:Unfolding tesseract.gif10]]": Gif of a tesseract unfolding into its net. From: https://commons.wikimedia.org/wiki/File:Net_of_tesseract.gif licensed under the Creative Commons Attribution-Share Alike 3.0 Unported license.
< 1705509895 348019 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :I mean, if I have to implement weak references, then in each weak-referencable object I'll have a pointer field that points to the first weak reference to the object, and each weak reference has a pointer field to the next weak reference to the same object, thus forming an intrusive singly-linked list (hopefully short) of the weak references to any
< 1705509895 847121 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :one object. before I destroy a weak reference I traverse the whole list to find that weak reference and delete it from the list. if the referenced object is destroyed then I iterate the list of weak references and mark them as invalid (null them out). (you could even do a doubly-linked list of weak references if you expect there will be many for
< 1705509896 347408 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :the same object.) this is what I mean by a backlink in the case of weak references.
> 1705509905 964683 PRIVMSG #esolangs :14[[07Special:Log/upload14]]4 upload10 02 5* 03MaroonCoffee 5*  10uploaded "[[02File:Tesseract Traversal.jpeg10]]": Traversal of a tesseract for Tesseract
> 1705509925 487613 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete10 02 5* 03Ais523 5*  10deleted "[[02File:Unfolding tesseract.gif10]]": Copyright violation: original image is CC-by-sa-3.0, and thus not public domain
< 1705509949 752575 :int-e!~noone@int-e.eu PRIVMSG #esolangs :wib_jonas: as ais523 said you can't rely on objects in Rust to have a fixed location during their lifetime because of move semantics.
< 1705509960 980584 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :hmm yes, you have a point about rust and how intrusive list wouldn't be movable, yse
< 1705509982 260829 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :that would make the weak references immovable, which makes them very hard to use
> 1705510051 394555 PRIVMSG #esolangs :14[[07User talk:MaroonCoffee14]]4 N10 02https://esolangs.org/w/index.php?oldid=122113 5* 03Ais523 5* (+625) 10I deleted one of your images for copyright reasons
< 1705510098 37916 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523 may be right about how it may be worth in a high-level language to support intrusive structures, because it may help the programmer avoid errors, either memory safety errors, or inconsistency between redundant data
< 1705510119 222829 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and about how relational databases are doing that
< 1705510150 114590 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :but SQL databases also don't easily let you do the things that you can do with a doubly-linked list, like insert or delete elements in the middle or cut and glue lists
< 1705510172 50281 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the other thing that languages like Rust seem to be missing is a concept that I don't have a good name for yet, but it's basically "values that are conceptually part of the object, but instead of being stored in the object, are stored by the users of the object and provided whenever you call a method on it"
< 1705510177 601120 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"High level" goes hand-in-hand with "Don't make me think about memory management"
< 1705510195 655792 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :If you need to think about memory management you pick a lower-level language
< 1705510215 659713 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :e.g. instead of storing the length of an array in the array itself, the users of the array remember how long it is, and tell it each time, and this is enforced in the type system for correctness
< 1705510223 119700 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :This is a slightly expanded version of my earlier short answer, "economics"
< 1705510224 555338 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: I think memory is a bit of a red herring
< 1705510242 246012 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :what's actually important for mutable things is tracking object identity
< 1705510265 773633 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :i.e. if I mutate this object, what references to similar-looking objects also get mutated?
< 1705510268 913049 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Tracking object identity is a form of memory management
< 1705510279 120304 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yes, they're very similar
< 1705510279 275977 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: you mean when this value isn't known at compile-time, right? because rust has got better at the compile-time version where a type is parametrized by compile-time data
< 1705510293 713354 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: yes, for non-compile-time values, Rust can already do it for values known at compile time
< 1705510309 210442 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I want something that works almost exactly like a const generic except that the value is determined at runtime
< 1705510394 932020 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(this may mean that we need types that exist only for a certain scope, and functions that are generic over them, but that's OK – due to Rust tracking lifetimes, it already has plenty of types that work like that, such as &'a)
< 1705510423 508728 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :My answer sort of implies that Rust is a lower-level language though.  I'm sure you can get a certain amount into Rust without having to think about memory management.  But I'm also sure if you get serious enough, you hit a point where you can't avoid it.
< 1705510577 378034 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :And I'm sure this is why I like pure functional languages - I don't even have to think about object identity in them.
< 1705510581 2332 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :my current viewpoint is very much "if you have mutable things, you need to track what you know about their identities to avoid logic bugs, and then working out when to delete them is normally trivial – however, a garbage collector is useful for immutable things, and the language should be able to check your manual deletion logic for memory safety"
< 1705510599 104103 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: the particular case I was thinking about is how to make a text editor that lets you do any of the following and its algorithms are asymptotically efficient in theory (as opposed to efficient in most practical cases): insert or delete text anywhere, delete or copy a block of text; place any number of named bookmarks, and use two or three of
< 1705510599 604163 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :those bookmarks to tell which block to delete or copy, or one bookmark to tell where to insert or delete text; if you copy a block and there was a bookmark inside, let you find where the bookmark goes in the copy and turn that into a new bookmark; have an undo/version history. as far as I can tell this is possible, but gets really ugly. the problem
< 1705510600 136349 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :is that undo interacts in an ugly way with an already complicated structure.
< 1705510602 50698 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :[1, 2, 3] == [1, 2, 3] and I wonder which bot will give me an error for starting a message with [
< 1705510648 564914 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :oh nice, not a single one.  Well then.  Looks like I need to write a bot that responds to [
< 1705510685 13746 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :cpressey: j-bot is down right now, sorry
< 1705510729 329250 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :though it probably wouldn't have responded, the grammar requires a space (or certain punctuation) after the [ shortcut
< 1705510802 774420 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: this is why I was asking about your 2-3 tree library by the way. but as far as I can tell it wouldn't be *enough* for this theoretical editor, it would just help.
< 1705510807 604220 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I think equality operators are awkward because they don't clearly convey intent
< 1705510826 563343 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for immutable objects, the equality you care about is generally "are these two objects interchangeable/indistinguishable"
< 1705510863 367037 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :for mutable objects, it could be either "do these objects currently contain equal values" (a sort of "snapshot equality") or "do these objects have the same identity, i.e. mutating one mutates the other"
< 1705510883 319130 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: ah, I see – yes, I doubt it would be enough
> 1705511002 528203 PRIVMSG #esolangs :14[[07AssemblerFuck14]]4 10 02https://esolangs.org/w/index.php?diff=122114&oldid=121766 5* 03Kaveh Yousefi 5* (+275) 10Added a hyperlink to my implementation of the AssemblerFuck programming language on GitHub and supplemented several category tags.
< 1705511033 476127 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :what I would need is a (tree of trees) inside a tree. tree of trees is easy, it's just a tree with a tree in each leaf. but tree inside a tree means that the inner tree is implemented such that what would normally be pointers are indexes, and the outer tree is keyed by these indexes, so that the outer tree is immutable and you modify it only by
< 1705511033 976228 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :copying a logarithmic number of nodes, and the indexes stay valid in both the old and new version of the outer tree.
< 1705511034 92074 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :The problem where "you say equality but what you really want is equivalence" seems to be quite a deep one actually.  I see mathematicians talking about these sorts of things, at least I imagine that is what the things that they say must mean.
> 1705511128 360696 PRIVMSG #esolangs :14[[07AssemblerFuck14]]4 10 02https://esolangs.org/w/index.php?diff=122115&oldid=122114 5* 03Kaveh Yousefi 5* (+280) 10Added a truth-machine as a further example.
< 1705511136 791443 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"Setoid", that's the word I was looking for
< 1705511139 280772 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :I've co-written some CS papers, precisely defining the notion of "these programs do the same thing" is surprisingly nuanced
< 1705511230 928790 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :and in a (tree of trees) inside a tree, both the trees inside have to use indexes (that are keys of the outer tree) instead of pointers
< 1705511273 87339 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :that said, a (tree of trees) inside a tree is probably not the only data structure that can do what I want, I was thinking about alternatives
< 1705511295 158511 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: so one of these deep equivalence problems I've wondered about is "is a pointer to an immutable thing any different from the thing it points to"
< 1705511311 155401 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :and my conclusion is, that sometimes in practice it is, but it shouldn't be
< 1705511337 571934 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :although it is not necessarily clear what "immutable" means if mutable things also exist the same language
< 1705511347 830045 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"These programs produce the same outputs from the same inputs with the same performance except one of them exhibits some timing characteristics that can be exploited to expose security loopholes."  Oops!
< 1705511406 154470 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :oh right, side-channels too
< 1705511409 762384 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :.oO( nothing is immutable anymore, nobody makes ROM chips, even the CPU has a non-volatile RAM in it so you can upload security fixes)
< 1705511446 616618 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :actually a major part of my research prior to my PhD was in a field which tries to precisely define the notion of "timing is irrelevant"
< 1705511474 812926 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: non-volatile? I thought CPU microcode updates were stored in volatile RAM and uploaded during early boot
< 1705511497 315840 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Everything's mutable if you have a big enough plasma discharge
< 1705511524 975500 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :that said, I think there is NVRAM in the CPU but it's used for something else
< 1705511548 455841 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :possibly the keys for verifying that the bootloader is signed correctly
< 1705511550 160680 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :ais523: uh, possible, I don't know
< 1705511625 369680 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :cpressey: right, melting down the very wires
< 1705511696 760343 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :there are a few people who specialize on destructively examining chips, so yes, even ROM is mutable in that sense
< 1705511817 189827 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :they're allowed to be more destructive than the medical imaging folks who merely paint my organs with chemicals that either show up easily on x-ray/CT or MR or are radiocative and show up on a radiation detector
< 1705511856 92756 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :the medical imaging folks have to ensure that I survive, the chip microscope folks usually don't have to ensure that the chip survives
< 1705512083 715015 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :So, OK: reframe "immutable" as "X is prevented from changing Y by Z".  In practice, X being able to see Y is a prerequisite for X being able to change Y sensibly.  Sometimes, programming language work these things out, according to their own theories, and sometimes they don't.
< 1705512107 862971 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Obvious example, "private" fields in OO languages.
< 1705512324 883436 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :I don't remember all details, but I think rust has some hidden language rules that depend on what things are mutable and immutable.
< 1705512488 365628 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :wib_jonas: the main one is that anything that is mutable via an & pointer has to either be UnsafeCell, or else contain its immutable portion within an UnsafeCell (possibly indirectly)
< 1705512495 855071 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :* contain its mutable portion
< 1705512698 527412 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :right, that's the main thing, but there are more details that I don't remember
< 1705512783 644613 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu PRIVMSG #esolangs :also Rust has done library improvements so there are a lot of new abstractions to express stuff, but by "new" I mean in the last five years
< 1705512850 406208 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :The "memory must be moveable" thing in Rust, I hadn't heard of.  Is that a library level thing or is the language itself imposing that restriction?
< 1705512913 315840 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: it's almost a language level thing
< 1705512925 79381 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in that the language does implicit moves in a lot of cases
< 1705512947 202491 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if you want to use immoveable memory, you can, but you can only access it via pointer types that have been carefully designed to ensure that the thing they point to can't ever move
< 1705513008 636172 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :(and although the compiler can verify that they're being used safely once created, it can't verify that they're being created safely, so you need some amount of unsafe to use them)
< 1705513015 638732 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :I'm always confused about where they want to draw the lines in Rust
< 1705513034 805122 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :(responding to "almost a language level thing")
< 1705513044 512729 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, technically it's an explicit move: function calls and assignments always move
< 1705513081 470321 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :except when they copy, and the move versus copy decision is a documented property of the type that's being moved/copied (and that you can choose for your own data types)
< 1705513090 990470 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :also, the move or copy is always bitwise
< 1705513100 24824 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :it's just that these moves and copies are really pervasive and have very lightweight syntax
< 1705513105 886644 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it feels like they're happening automatically
< 1705513107 758130 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :wait wait what
< 1705513119 608076 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"assignments always move"?
< 1705513134 831176 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :yep, a=b will always move b, unless b is a bitwise-copy type in which case it copies b
< 1705513235 939897 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: here's an example: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=1446dfeee2c6c527ec508397f7cfc599
< 1705513250 520667 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :I think you must mean "move" in some way different from how I was using the word
< 1705513284 917355 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :the Rust definition is "the bits are copied from the memory that stored b into the memory that stores a, and the memory that stored b is now considered uninitialized"
< 1705513306 674897 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so trying to do anything with b after that will give you a use-after-free error
< 1705513340 321266 :supercode!~supercode@user/supercode QUIT :Quit: Client closed
< 1705513359 652996 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :in practice, therefore, you have to use references a lot (so it's the reference that gets moved/copied rather than the thing it references)
< 1705513361 493806 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :OK, I see that as a typing thing.  The ownership moves.
< 1705513385 386474 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :ownership moves, but if you decompile the code, the bits move too (unless the move can be optimised out)
< 1705513407 462095 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if I write a function fn b(x: u8) -> Box { Box::new(x) }
< 1705513409 83960 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :Bits never move
< 1705513427 919651 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :well, the bits are copied and then the original is considered uninitialised
< 1705513434 781015 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :err, u8 is a bad example because it's copied
< 1705513452 652244 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :but the value comes into the function in a register, and then is copied/moved to the heap
< 1705513521 199056 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :I hesitate to ask whether a=3 is considered to have moved 3 and now 3 is considered uninitialized
< 1705513596 583609 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :This is esolang territory.
< 1705513599 89531 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :cpressey: 3 has a copiable type
< 1705513607 862418 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :so it's considered to copy the 3 from the program, but it stays there
< 1705513656 365291 :ais523!~ais523@user/ais523 PRIVMSG #esolangs :if you tried that with an uncopiable type you would get a compile error because the code wouldn't run properly the second time, except that I can't think of any ways to create a literal that isn't Copy
< 1705513891 513919 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
< 1705514720 338351 :sprout!~quassel@2a02-a448-3a80-0-3c40-3825-377c-ece4.fixed6.kpn.net NICK :sproutX
< 1705515401 365496 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1705515675 755738 :wib_jonas!~wib_jonas@business-37-191-60-209.business.broadband.hu QUIT :Quit: Client closed
< 1705515861 682305 :Koen_!~Koen@2a01:e34:ec7c:30:e8a5:9e9c:a511:42cf QUIT :Remote host closed the connection
< 1705515892 963405 :Koen_!~Koen@2a01:e34:ec7c:30:3d32:4b39:188f:d9dd JOIN #esolangs * :Koen
< 1705516084 606180 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
< 1705516145 957155 :Koen_!~Koen@2a01:e34:ec7c:30:3d32:4b39:188f:d9dd QUIT :Ping timeout: 245 seconds
> 1705517430 148019 PRIVMSG #esolangs :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=122116&oldid=122108 5* 03Ais523 5* (-39495) 10delete entries older than 1 December 2023 to prevent this page becoming too large / slow to load / triggering edit filters (older entries are still available in the page history)
> 1705519443 570194 PRIVMSG #esolangs :14[[07Tesseract14]]4 N10 02https://esolangs.org/w/index.php?oldid=122117 5* 03MaroonCoffee 5* (+13384) 10Created initial Tesseract page
< 1705519651 606002 :Guest13!~Guest13@2600:387:15:1637::3 JOIN #esolangs * :[https://web.libera.chat] Guest13
> 1705519764 413260 PRIVMSG #esolangs :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=122118&oldid=122109 5* 03MaroonCoffee 5* (+16) 10Added Tesseract to the language list
< 1705519854 84785 :Guest13!~Guest13@2600:387:15:1637::3 QUIT :Client Quit
< 1705519928 608707 :cpressey!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
> 1705520082 412821 PRIVMSG #esolangs :14[[07Special:Log/newusers14]]4 create10 02 5* 03Shamrocky 5*  10New user account
< 1705520119 686919 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :There is still a small knot in my understanding about why Rust hates intrustive linked lists but I think it is probably minor.
< 1705520143 581973 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :I'm probably never going to write anything in Rust so I'm just happy to forget it.
> 1705520224 281289 PRIVMSG #esolangs :14[[07Tesseract14]]4 M10 02https://esolangs.org/w/index.php?diff=122119&oldid=122117 5* 03MaroonCoffee 5* (+143) 10Added to infobox
< 1705520281 445242 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…
> 1705520429 200788 PRIVMSG #esolangs :14[[07Tesseract14]]4 10 02https://esolangs.org/w/index.php?diff=122120&oldid=122119 5* 03MaroonCoffee 5* (+127) 10
> 1705520589 229991 PRIVMSG #esolangs :14[[07Tesseract14]]4 M10 02https://esolangs.org/w/index.php?diff=122121&oldid=122120 5* 03MaroonCoffee 5* (+4) 10Added applicable categories
> 1705520656 476106 PRIVMSG #esolangs :14[[07Tesseract14]]4 M10 02https://esolangs.org/w/index.php?diff=122122&oldid=122121 5* 03MaroonCoffee 5* (+0) 10Capitalized usage of 2D
< 1705520662 746216 :b_jonas!~x@88.87.242.184 JOIN #esolangs * :b_jonas
< 1705521076 605468 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
> 1705521240 706712 PRIVMSG #esolangs :14[[07Tesseract14]]4 M10 02https://esolangs.org/w/index.php?diff=122123&oldid=122122 5* 03MaroonCoffee 5* (-24) 10Fixed various grammatical errors and capitalization
< 1705521525 605443 :cpressey!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705521623 715848 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl JOIN #esolangs * :Textual User
< 1705521693 489717 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :If adoption of a thing comes down to "social proof" (i.e. everyone else in our network has adopted this so we need to adopt it too in order to stay in the network), then all the other argumentation for or against that thing is just... I could say "useless" but I suspect there is a mot juste here that I can't quite get my butterfly net around.
< 1705521822 38975 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"Sophistry" isn't quite right because it's not necessarily sophistry, but there is also absolutely nothing preventing it from degrading into sophistry.
< 1705521895 139027 :cpressey!~cpressey@host-2-102-84-37.as13285.net PRIVMSG #esolangs :"Vacuous" is pretty close.  It's no longer tethered to anything, so it can go anywhere, anywhere at all.
< 1705522272 607386 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
< 1705523567 606288 :cpressey!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705523884 606584 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
< 1705524411 42139 :vyv!~vyv@bras-vprn-nrbaon0452w-lp130-16-76-68-64-200.dsl.bell.ca JOIN #esolangs vyv :vyv verver
< 1705524962 605876 :cpressey!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
< 1705525522 606511 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
< 1705526174 607164 :cpressey!~cpressey@host-2-102-84-37.as13285.net JOIN #esolangs cpressey :[https://web.libera.chat] cpressey
> 1705526796 715037 PRIVMSG #esolangs :14[[07Cube14]]4 M10 02https://esolangs.org/w/index.php?diff=122124&oldid=103612 5* 03PythonshellDebugwindow 5* (+129) 10Categories
< 1705526900 611733 :cpressey!~cpressey@host-2-102-84-37.as13285.net QUIT :Ping timeout: 250 seconds
< 1705527305 925296 :vyv!~vyv@bras-vprn-nrbaon0452w-lp130-16-76-68-64-200.dsl.bell.ca QUIT :Quit: Konversation terminated!
> 1705528878 957248 PRIVMSG #esolangs :14[[07Befunge14]]4 10 02https://esolangs.org/w/index.php?diff=122125&oldid=121885 5* 03Loganz 5* (+129) 10Add compact DNA program
< 1705529719 479051 :zzo38!~zzo38@host-24-207-52-143.public.eastlink.ca PRIVMSG #esolangs :I still prefer IRC and I think it is better than the other one. I also still use NNTP and I think it is better than the other one, too.
< 1705534869 232655 :tromp!~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl QUIT :Quit: My iMac has gone to sleep. ZZZzzz…