> 1626912828 334765 PRIVMSG #esolangs :14[[07Tsaf14]]4 M10 02https://esolangs.org/w/index.php?diff=86518&oldid=86502 5* 03PythonshellDebugwindow 5* (+49) 10/* external resources */ cats < 1626914003 872270 :^[!~user@user//x-8473491 PRIVMSG #esolangs :zzo38: Could you elaborate on "associated" and "key"? < 1626914037 586446 :^[!~user@user//x-8473491 PRIVMSG #esolangs :Do you mean something along the lines of hard or symbolic links? < 1626914145 122519 :spirgel_!spirgel@gateway/vpn/protonvpn/spirgel QUIT : < 1626914666 25573 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :^[: I mean that if you have a link to two files, that pair of links will be like the name of the temporary file < 1626914789 423535 :^[!~user@user//x-8473491 PRIVMSG #esolangs :But either piece of the pair can't be sufficient on its own to access the contents of the temporary file? < 1626916314 579249 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :Yes, like that < 1626917398 652028 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen < 1626919772 583071 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1626920108 866241 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1626920200 576440 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Ping timeout: 246 seconds < 1626920200 958903 :Lord_of_Life_!~Lord@user/lord-of-life/x-2819915 NICK :Lord_of_Life < 1626929171 526754 :andydude!~arobbins@50.111.25.45 JOIN #esolangs andydude :Andrew Robbins > 1626930647 142851 PRIVMSG #esolangs :14[[07PlusOrMinus14]]4 10 02https://esolangs.org/w/index.php?diff=86519&oldid=79476 5* 03Voltage2007 5* (-287) 10 < 1626931498 923161 :andydude!~arobbins@50.111.25.45 QUIT :Quit: andydude < 1626931544 510611 :oerjan!oerjan@sprocket.nvg.ntnu.no QUIT :Quit: Nite < 1626935357 301433 :arseniiv!~arseniiv@94.41.6.151.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv < 1626937583 955603 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 QUIT :Read error: Connection reset by peer < 1626937610 389817 :Lord_of_Life!~Lord@user/lord-of-life/x-2819915 JOIN #esolangs Lord_of_Life :Lord < 1626937795 424557 :Sgeo!~Sgeo@user/sgeo QUIT :Read error: Connection reset by peer < 1626939259 849921 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 JOIN #esolangs tech_exorcist :he/him < 1626940262 400242 :imode!~imode@user/imode QUIT :Ping timeout: 255 seconds < 1626940780 624955 :riv!~river@tilde.team/user/river QUIT :Quit: Leaving < 1626941195 795611 :hendursa1!~weechat@user/hendursaga JOIN #esolangs hendursaga :weechat < 1626941339 709265 :hendursaga!~weechat@user/hendursaga QUIT :Ping timeout: 244 seconds < 1626944932 656543 :mcfrdy!~mcfrdy@user/mcfrdy JOIN #esolangs mcfrdy :mcfrdy < 1626945432 59885 :pikhq!sid394595@user/pikhq QUIT :Ping timeout: 252 seconds < 1626945441 378874 :pikhq!sid394595@user/pikhq JOIN #esolangs pikhq :Ada Worcester < 1626949276 543111 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 QUIT :Remote host closed the connection < 1626949304 996533 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 JOIN #esolangs tech_exorcist :he/him > 1626951292 659887 PRIVMSG #esolangs :14[[07TextGarbage14]]4 N10 02https://esolangs.org/w/index.php?oldid=86520 5* 03Dominicentek 5* (+2756) 10Created page with "TextGarbage (previously named [[Gibberish]] but that's already taken) is an esoteric programming language created by [[User:Dominicentek]]. It's commands are only 1 character..." > 1626951328 446967 PRIVMSG #esolangs :14[[07User:Dominicentek14]]4 10 02https://esolangs.org/w/index.php?diff=86521&oldid=86246 5* 03Dominicentek 5* (+48) 10 > 1626951442 348052 PRIVMSG #esolangs :14[[07Gibberish (programming language)14]]4 M10 02https://esolangs.org/w/index.php?diff=86522&oldid=49043 5* 03Dominicentek 5* (+35) 10/* See also */ > 1626951502 274823 PRIVMSG #esolangs :14[[07TextGarbage14]]4 M10 02https://esolangs.org/w/index.php?diff=86523&oldid=86520 5* 03Dominicentek 5* (+54) 10 < 1626951554 957867 :PinealGlandOptic!~PinealGla@37.115.210.35 QUIT :Quit: leaving > 1626952784 234967 PRIVMSG #esolangs :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=86524&oldid=86509 5* 03Dominicentek 5* (+18) 10/* T */ < 1626955447 347903 :arseniiv!~arseniiv@94.41.6.151.dynamic.ufanet.ru QUIT :Ping timeout: 265 seconds < 1626958555 328013 :arseniiv!~arseniiv@94.41.6.151.dynamic.ufanet.ru JOIN #esolangs * :the chaotic arseniiv > 1626959718 744739 PRIVMSG #esolangs :14[[07PlusOrMinus14]]4 M10 02https://esolangs.org/w/index.php?diff=86525&oldid=86519 5* 03PythonshellDebugwindow 5* (-4) 10Headers < 1626959771 779884 :slavfox_!~slavfox@ipv4-93-158-232-111.net.internetunion.pl JOIN #esolangs slavfox :slavfox < 1626959924 642931 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net QUIT :Ping timeout: 255 seconds < 1626959924 768496 :slavfox!~slavfox@93.158.232.111 QUIT :Ping timeout: 255 seconds < 1626959926 75173 :jix!~jix@user/jix QUIT :Ping timeout: 255 seconds < 1626959926 160517 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu QUIT :Ping timeout: 255 seconds < 1626959926 245962 :Cale!~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com QUIT :Ping timeout: 255 seconds < 1626959926 575527 :jix!~jix@static.71.5.69.159.clients.your-server.de JOIN #esolangs * :Jannis Harder < 1626959926 663299 :slavfox_!~slavfox@ipv4-93-158-232-111.net.internetunion.pl NICK :slavfox < 1626959938 496468 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu JOIN #esolangs * :b_jonas < 1626959955 222251 :jix!~jix@static.71.5.69.159.clients.your-server.de QUIT :Client Quit < 1626959970 774648 :jix!~jix@user/jix JOIN #esolangs jix :Jannis Harder < 1626959976 405579 :Cale!~cale@cpef48e38ee8583-cm0c473de9d680.cpe.net.cable.rogers.com JOIN #esolangs Cale :realname < 1626960187 488323 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 QUIT :Quit: tech_exorcist < 1626960610 244399 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com JOIN #esolangs * :[https://web.libera.chat] Guest89 < 1626960644 822412 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :new to irc, is this working < 1626960793 81765 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Yes? Maybe. Who knows. < 1626960844 761415 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :is the discord more active than the IRC or? < 1626960997 950902 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esolangs :There's a discord? < 1626961002 605831 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esolangs :This place is pretty active < 1626961048 862170 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :There's at least two discords. < 1626961057 95739 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I think there was some sort of a factional schism between them? < 1626961090 379271 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :(All I know about the topic is what I read between the lines from the community portal page.) < 1626961685 573886 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :hm < 1626961710 53738 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :I'm about to submit a revision but still not sure about whether I should or not < 1626961736 610 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :completely alters the explanation for Deadfish/Constants, page hasn't been touched for 6 years < 1626961773 757319 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com PRIVMSG #esolangs :*4 years < 1626964403 145783 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__ < 1626964772 377366 :Sgeo!~Sgeo@user/sgeo JOIN #esolangs Sgeo :realname < 1626965168 347337 :ecs!ecs@user/ecs JOIN #esolangs ecs :ecs < 1626965307 377142 :Thelie!~Thelie@2a02:8106:215:3300:e7ad:5ab7:4ea0:e177 JOIN #esolangs * :Thelie < 1626965464 876736 :Guest8999!~Guest89@097-094-123-021.res.spectrum.com QUIT :Quit: Client closed > 1626966436 72725 PRIVMSG #esolangs :14[[07TextGarbage14]]4 M10 02https://esolangs.org/w/index.php?diff=86526&oldid=86523 5* 03Dominicentek 5* (+56) 10Added interpreter < 1626966537 467377 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :The words "pretty active" may have been overselling it a little. < 1626966761 978233 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esolangs :It's more active than other IRC channels I'm in! < 1626966770 434857 :Taneb!~Taneb@runciman.hacksoc.org PRIVMSG #esolangs :There's sometimes even multiple conversations a day! < 1626967034 511126 :hendursa1!~weechat@user/hendursaga QUIT :Quit: hendursa1 < 1626967059 777823 :hendursaga!~weechat@user/hendursaga JOIN #esolangs hendursaga :weechat < 1626967738 884327 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :hmmm... I should look up those Discords. I use Discord now, and might as well look what we direct people to from the wiki < 1626968234 987791 :Thelie!~Thelie@2a02:8106:215:3300:e7ad:5ab7:4ea0:e177 QUIT :Remote host closed the connection < 1626968245 924306 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Huhwhat. < 1626968263 864829 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Someone moved Esolang:Community portal to Help:Community portal. < 1626968324 20245 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :For no apparent reason that I can think of. < 1626968505 53538 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :odd. < 1626968551 975315 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :and all the links point to the former < 1626968580 503283 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :I'd say move it back < 1626968601 126425 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :even the sidebar links to the former < 1626968638 898628 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Yeah, it's just going to be a little noisy. But "Help:" isn't a namespace we really use -- there's just two redirects *from* Help: to Esolangs: namespace pages, and two very random pages (Help:Dottyweb and Help:Too vague) in it. https://esolangs.org/wiki/Special:AllPages?from=&to=&namespace=12 < 1626968640 496513 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :and it's a new user, that's their only edit after Introduce yourself < 1626968674 121189 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I think I'll move it back with a description suggesting discussing on the talk page if there's a specific reason why it would be better under Help:. < 1626968677 377635 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :no [[Help: I'm stuck in a wiki factory]] or similar? ok > 1626968817 11420 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move_redir10 02 5* 03Fizzie 5* 10moved [[02Help:Community portal10]] to [[Esolang:Community portal]] over redirect: Revert "Community portal" page back to "Esolangs" namespace - please discuss on talk page if there's a reason why "Help" would be better > 1626968817 73124 PRIVMSG #esolangs :14[[07Special:Log/move14]]4 move_redir10 02 5* 03Fizzie 5* 10moved [[02Help talk:Community portal10]] to [[Esolang talk:Community portal]] over redirect: Revert "Community portal" page back to "Esolangs" namespace - please discuss on talk page if there's a reason why "Help" would be better > 1626968817 81295 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete_redir10 02 5* 03Fizzie 5* 10Fizzie deleted redirect [[02Esolang:Community portal10]] by overwriting: Deleted to make way for move from "[[Help:Community portal]]" > 1626968817 91283 PRIVMSG #esolangs :14[[07Special:Log/delete14]]4 delete_redir10 02 5* 03Fizzie 5* 10Fizzie deleted redirect [[02Esolang talk:Community portal10]] by overwriting: Deleted to make way for move from "[[Help talk:Community portal]]" < 1626968895 524337 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Of course I got the namespace wrong ("Esolangs" vs. "Esolang") in the edit message. :/ < 1626968906 287103 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :that's why I type Project: < 1626968919 643390 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :easy to type and works on basically all mediawikis < 1626968929 184444 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Singular project name + plural domain is a good combination. < 1626968940 801461 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :no need to learn the localized names of the wikis < 1626968954 664085 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :in wikimedia projects those are so random in languages < 1626968962 435087 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :some were even changed after they got created < 1626969102 279070 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :the namespace should have been called Meta: originally, but it's too late for that now < 1626969126 397690 :imode!~imode@user/imode JOIN #esolangs imode :imode < 1626969126 397740 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :In any case, what I was *going* to say before I got distracted by the move was, there was some mild edit-warring on Community portal (around March 2021) regarding what seemed to be like some sort of a disagreement between the two Discord servers. < 1626969262 159689 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :By the way, are those things called "servers" because you actually host them in some way, or is it something you just set up on the singular service provider's infrastructure? < 1626969271 188840 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :the latter < 1626969276 847791 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :"server" is completely inappropriate < 1626969288 774710 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Thanks, I've been wondering. < 1626969298 32788 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :they're just a group of channels with shared moderators/owners < 1626969349 123779 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :or at least shared main owners by default, I think you can set more fine-grained permissions for moderation under them < 1626969889 49118 :riv!~river@tilde.team/user/river JOIN #esolangs river :river < 1626971202 761176 :Corbin!~Corbin@c-73-67-140-116.hsd1.or.comcast.net JOIN #esolangs * :Corbin < 1626971206 93179 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://www.chiark.greenend.org.uk/~sgtatham/puzzles/js/loopy.html#10x10t0dh#316277475083927 has way too many 2-s. < 1626971934 46572 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 JOIN #esolangs tech_exorcist :he/him < 1626972507 887070 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :I think the discord servers are actually called “guilds” in the API. Because it’s supposed to be a thing for gaming groups. > 1626973413 517534 PRIVMSG #esolangs :14[[07TextGarbage14]]4 M10 02https://esolangs.org/w/index.php?diff=86529&oldid=86526 5* 03Dominicentek 5* (+7) 10Fixed example < 1626973803 515666 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I guess "group" was too mundane when they were looking for more mainstream nomenclature. < 1626974489 325850 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Clan, tribe, cult, sect, clique, coterie, ... lots of words they could've used. < 1626974493 68306 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :I think maybe a group refers to “group dm”, i.e. a pseudo-channel located in one’s private messages rather than in a guild. < 1626974588 619474 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :`` wn coterie -over | tail -n1 < 1626974590 62133 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :1. clique, coterie, ingroup, inner circle, pack, camp -- (an exclusive circle of people with a common purpose) < 1626974834 614644 :int-e!~noone@int-e.eu PRIVMSG #esolangs :fizzie: these all seem to have weird connotations < 1626974932 133031 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I think that IRC is much better than Discord with many ways, inclduing that you do not need to use their service and you do not need any Discord software to access IRC, you can use it even without IRC software too (although it works better if you do have, still it is at least doable without). Although some have bridges to connect between IRC and Discord (and possibly other protocols/services too) < 1626975006 249934 :APic!apic@apic.name PRIVMSG #esolangs :*nod* < 1626975007 294698 :APic!apic@apic.name PRIVMSG #esolangs :IRC > * < 1626975024 726388 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :The IRC for ZZT discussions is a bridge with the Discord that I had suggested and someone implemented it, I think there are only two people who mainly use the IRC (I am one of them) < 1626975191 263784 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I saw a program that is bridging many more services/protocols too than just that (although I have not used it) < 1626975332 328430 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :You mention the "Help:" namespace in wiki is not of much use, but a summary of the wiki formatting might be a thing to put there, I suppose < 1626975592 643756 :riv!~river@tilde.team/user/river PRIVMSG #esolangs :IRC doesn't have images or voice calls though < 1626975692 244952 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :I don't have strong opinions on what should live in the "Esolang" (project) namespace vs. "Help" namespace, I just didn't see a particular reason to move Esolang:Community portal, especially since it has a links to the old name. Things that are clearly more help-pagey could be there, I suppose, though it seems we've opted to redirect Help:Contents and Help:Editing to Esolang:Help instead. < 1626978027 745213 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :It seems to be impossible to do separate compilation in safe Rust < 1626978077 761632 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :A rust file cannot declare an external Rust function and call it without a unsafe {} < 1626978181 886168 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :what do you mean by separate compilation? each crate is compiled separately < 1626978216 900843 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if you mean building .o files from two crates completely independent of each other and then linking them together then yes, that has to go through the C ABI < 1626978236 894149 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :yes I mean separate compilation < 1626978268 945478 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the native rust model is that you don't have header files, rather the metadata embedded in an already-compiled crate is what provides the information needed for safe and high-level linking < 1626978352 509661 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :so you have to build a crate before you can build something that depends on it < 1626978365 42825 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and you can't have circular dependencies between crates < 1626978394 200577 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :(but you can have circular deps between the modules / .rs files within a single crate, because those are all combined into one logical AST and compiled at once) < 1626978406 766299 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :(modules are the unit of namespacing and visibility; crates are the unit of compilation and linking) < 1626978456 860366 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Why is the metadata not included inside the .o file < 1626978509 745727 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's included in a .rlib file which is Rust's version of a .o file < 1626978516 540557 :tech_exorcist!txrcst@user/tech-exorcist/x-0447479 QUIT :Quit: tech_exorcist < 1626978525 224438 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you rarely encounter raw .o files in a rust project < 1626978536 511249 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :only if you're making a component that will be linked into a C / C++ / other old school system < 1626978595 294545 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Okay. Can I compile two .rs files into their respective .rlib files and then link them into an executable? < 1626978606 721869 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the point though is that the equivalent to a header file is generated by the compiler, not written by the programmer, and therefore you need to compile a crate before you can compile things that depend on them < 1626978621 181597 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: yes but not independently of each other. you have to compile one before the other can import it < 1626978650 695345 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :because the .rlib contains the information equivalent to what a header file provides in C++ < 1626978654 920801 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :function signatures, types, etc < 1626978707 852020 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's rare to be mucking around at this level < 1626978711 603985 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :almost all rust projects use cargo < 1626978725 562003 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :which handles all this stuff < 1626978751 898488 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you just say what crates you want to use and they are built and made available < 1626978781 567219 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's nice, but it's not the same as C or C++, so if you want to force it to work the way C or C++ works then you'll probably have a bad time < 1626978803 858593 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :But I don't want to download all my dependencies and recompile them every time < 1626978811 924461 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it doesn't recompile them every time < 1626978815 808426 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's cached in the build directory < 1626978824 482948 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and also downloads are cached systemwide i think < 1626978846 219568 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :idk it's been a long time since i worked with this stuff < 1626978849 881691 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :maybe you should ask in a rust help channel < 1626979085 325731 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :cargo can also handle local deps and not only stuff downloaded from crates.io < 1626979106 754342 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you can have a whole tree of crates each containing many modules and build the whole thing with a single cargo invocation < 1626979117 713382 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and it will cache results and only rebuild what it needs to < 1626979161 526698 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :crates are typically pretty big though. an entire library or a substantial chunk of one < 1626979193 346218 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :when C was invented in nineteen dickety twelve computers had tiny amounts of RAM and it made sense to compile practically every function separately and then link them < 1626979219 860721 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :these days whole-program or whole-library compilation is common even in the C/C++ world < 1626979281 834258 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :I did on a rust discord.... apparently noone ever tried to uhhh < 1626979281 834308 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :declare an extern "rust" { fn b(x:i32) -> i32; } and then call it < 1626979281 960607 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :like, the rust compiler doesn't trust itself to generate safe object code < 1626979295 370421 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :since Rust is a newer design it went with a larger default for compilation unit size; all the .rs files within a crate are a single compilation unit and can refer to each other < 1626979338 860930 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :Rust doesn't have a stable ABI; if you built such extern "rust" stuff with two different compiler versions and then linked it, you could get undefined behavior < 1626979360 865893 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :do you have an actual reason to do things this way instead of the way you're supposed to? < 1626979396 754483 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if you pretend that Rust is the same as C with externs and header files and independent compilation then you're gonna have a bad time < 1626979552 389243 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com QUIT :Ping timeout: 252 seconds < 1626979571 332354 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com JOIN #esolangs oren :oren < 1626979573 115799 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :just because it's a systems language, does not mean that they have to do everything the same way C does it based on design constraints that are 60 years out of date < 1626979640 272289 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :separate compilation means that an error in once file doesn't cause every other file to not compile < 1626979679 215620 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :too bad < 1626979691 562695 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you can't compile a crate without first compiling its dependencies < 1626979692 895083 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :deal with it < 1626979713 798111 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i'm hardly a rust stan so if you think this means rust is garbage then feel free < 1626979747 689763 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :keegan: yes, and this model with crates only works if (1) you recompile everything, because the ABI isn't yet stable between versions of rust, and (2) you don't have circular dependencies among crates. Otherwise, you have to use the C model of exporting a stable foreign interface with a stable C ABI, importing those with explicit header files (this can be done in pure rust, no C bridge), then your ABI < 1626979753 693839 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :is stable and you can have circular dependencies and don't have to rebuild everything when you upgrade the compiler. < 1626979767 57780 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :correct < 1626979778 471752 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but you lose the ability to use rust's expressive types in your interface < 1626979796 768297 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you're really not supposed to have circular dependencies between crates < 1626979797 786196 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :The choice of which one you want to do is yours. And I think, "future" C++ is moving towards this model too, with new style C++ modules or whatever they're called, and GHC already used this model with Haskell. < 1626979803 623043 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :yes < 1626979822 943998 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :But like... the only thing preventing me from calling the function is rustc's insistence that doing so is unsafe < 1626979828 767092 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's very similar to GHC except that GHC keeps the .hi files separate from .o files, whereas Rust bakes it into a special metadata section (and calls the result a .rlib) < 1626979830 866882 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :keegan: yes, but I don't particularly mind losing those types, because I'm a C++ programmer and I know how I want to represent my data, especially between compilation units, so I don't feel like that's a drawback. < 1626979844 466347 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :keegan: the drawback is that the import header isn't typechecked to the export header. < 1626979850 117690 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :Is there a way to automate that? < 1626979855 171827 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: it is unsafe, because you could link objects created with different rustc versions that compile the same type in different ways < 1626979882 140132 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :But the object files contain metadata that says what they were generated by < 1626979908 936772 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: but what if the object files don't exist yet? < 1626979915 627013 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :? < 1626979927 651359 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if you already compiled the other crate then you don't need this nonsense < 1626979932 624546 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you can just use it in the normal supported way < 1626979950 785010 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :with 'extern crate' or whatever it is these days < 1626979972 40607 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you objected to the idea that you have to compile a crate before you can compile things that depend on it < 1626980010 41207 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :yes. I'm saying that if it's so scared of linking to object files generated by a different version, then it could raise an error at link time < 1626980010 264025 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :because then it's not "separate compilation" < 1626980057 427731 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :(since, rustc's .o files actually don't work with any linker besides rustc afaict) < 1626980075 938244 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i suppose it could also check at link time that your declared headers match what was in that metadata < 1626980080 8557 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :still, i don't see the point < 1626980088 200705 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i'm not saying it's impossible to implement this feature < 1626980096 837121 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but it doesn't really fit with the rust compilation model < 1626980115 313190 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :The point is to enable a separation of concerns between what happens inside a library and what happens outside < 1626980121 114311 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :that already exists < 1626980125 498650 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :that's just the crate system < 1626980141 10944 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i think you should study how rust works more before you assume they don't have solutions to such basic problems < 1626980177 420451 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :your objection seems to be that I can't compile my project without first compiling its dependencies, and this means I can't find errors in my code if the dependencies don't build < 1626980192 189412 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :however, obviously those errors may depend on what's actually in those dependency crates < 1626980209 795033 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if i used some function or type from a library wrong, then it needs to know what's in that library to know i used it wrong < 1626980224 592578 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :whether by compiling it or just having a header file for it (as in C/C++) < 1626980295 654122 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :fwiw it's common in large projects to put a bunch of types and traits in their own crate that everything else depends on < 1626980306 118749 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and this decreases the potential for circular dependencies between those other crates < 1626980327 116987 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you can use the trait system kind of like header files < 1626980357 260994 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :where one bit of code operates on a generic type bounded by a trait < 1626980366 430629 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and another bit of code (which could be in a separate crate) provides the concrete implementation < 1626980386 580027 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and those two pieces can be compiled independently because they only depend on the core "types" crate < 1626980387 46050 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :You also can't change a library without recompiling all calling code < 1626980407 414332 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :(the actual machine code generation still happens at the end though) < 1626980409 666876 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :seems ripe for a leftpad problem < 1626980413 267928 :Guest89!~Guest89@097-094-123-021.res.spectrum.com JOIN #esolangs * :[https://web.libera.chat] Guest89 < 1626980415 299847 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :that's right < 1626980464 55429 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :seems unrelated to leftpad though < 1626980471 619716 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :that wasn't a compilation issue (javascript isn't even compiled) < 1626980482 756197 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's just that someone pulled a library that a lot of people depended on < 1626980498 911926 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :there are lots of ways to deal with that in rust without needing to change the compilation model < 1626980528 50130 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :one is just to vendor your dependencies < 1626980569 342406 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :also crates.io is designed so that once you "yank" a crate people who were already using that version can still use it < 1626980645 735126 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :there's no supported way to take your code off crates.io permanently < 1626980702 802006 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :of course the site admins could still do it < 1626980712 311729 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if you pushed a crate with nuclear secrets or child porn or something < 1626980802 727082 :hendursaga!~weechat@user/hendursaga QUIT :Ping timeout: 244 seconds < 1626980888 896688 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if your point is just that rust encourages you to have lots of transitive dependencies then i agree < 1626980894 179012 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :that's the tradeoff for making code reuse really easy < 1626980897 127952 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :people start reusing code < 1626980920 717360 :hendursaga!~weechat@user/hendursaga JOIN #esolangs hendursaga :weechat < 1626980944 19279 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i know it makes many people and organizations nervous to pull lots of code from the internet willy nilly and that's valid < 1626980952 436309 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and they can set whatever policy about using external crates they like < 1626980992 219377 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i believe there are even ways to host your own local crates.io-like repository for your organization that contains only your trusted crates < 1626980998 226237 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and use that on your airgapped build machines < 1626981073 486818 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i'd rather at least have the option to reuse code rather than the C world where external libraries are such a pain and cause so much user bitching (ask me how i know) that every project just hand rolls their own broken shitty implementations of basic data structures and algorithms < 1626981079 45047 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1626982892 710690 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :external libraries are very common in C ??* > 1626982915 525873 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86530&oldid=86162 5* 03Dtuser1337 5* (+63) 10 > 1626983092 250110 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86531&oldid=86530 5* 03Dtuser1337 5* (-14) 10/* Function Commands */ < 1626983104 812796 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :They are but they’re a complete pain in the ass to use, so there’s strong incentives to minimize their use. < 1626983113 548003 :Guest89!~Guest89@097-094-123-021.res.spectrum.com QUIT :Quit: Client closed < 1626983161 226131 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :when i was a mosh maintainer we got so much shit over every external dependency < 1626983171 979777 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :from distros with weird packaging requriements and from users who want to build on ancient systems etc > 1626983184 92137 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86532&oldid=86531 5* 03Dtuser1337 5* (+54) 10/* Function Commands */ < 1626983197 931230 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :so yes I did reimplement some of the smaller things just to avoid those headaches < 1626983198 117111 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :(And if you think they aren’t, I suggest you get acquainted with other language environments, at least to know what alternate environments can look like) < 1626983260 518636 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Rust gets around this my just not working on any exotic environments < 1626983270 268009 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :lol < 1626983282 464449 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :touché < 1626983294 500204 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :I'd much rather the C model than the npm model. < 1626983345 861897 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :I want an actually good model. If such a thing can exist. < 1626983365 972905 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :I think it’s a hard problem though. < 1626983369 736160 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :yes < 1626983398 125569 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :there were several scrapped attempts to make a dependencies and build system for Rust before the current Cargo system < 1626983401 330565 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's a hard problem < 1626983427 706063 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :when I was working on servo, Cargo in its current form didn't exist < 1626983437 392184 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :we used complex makefiles and it was a mess > 1626983438 975413 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86533&oldid=86532 5* 03Dtuser1337 5* (+96) 10/* Function Commands */ < 1626983448 288676 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :I mean the rust model could be made to work by uhh... just having the compiler trust external rust code to be valid rust code. I get the ABI issue but just... idk they have to have a stable aBI eventually right? > 1626983464 204425 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86534&oldid=86533 5* 03Dtuser1337 5* (+1) 10/* Function Commands */ < 1626983465 814827 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Now I'm thinking something that's probably slightly moralizing, along the lines of, the experience of doing a thing should be similar to its actual cost. < 1626983481 465368 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it took C++ decades to have a stable ABI on common platforms < 1626983500 23002 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :have you seen what goes into a document like that? < 1626983506 399352 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the Rust language is still evolving pretty quickly < 1626983511 793079 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :they are able to maintain backwards compat at the source level < 1626983517 91785 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but maintaining ABI compat is a whole different issue < 1626983538 500614 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :I think stable ABI is a long-term goal but it's fairly far down the list < 1626983546 136203 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it doesn't solve a pressing problem for most users < 1626983566 57956 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :whereas the things that stable ABI would impede (faster development of new language features) do < 1626983608 432770 :pikhq!sid394595@user/pikhq PRIVMSG #esolangs :Cargo, and failing that, having the external ABI of a library be C-shaped, seem to be good enough for most use cases for now. < 1626983629 359109 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :most people have no problem with the fact that you have to compile a crate's dependencies first > 1626983636 984386 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86535&oldid=86534 5* 03Dtuser1337 5* (+154) 10/* Function Commands */ < 1626983655 790397 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :C interfaces are generally much better than C++ interfaces, between different components of a system. You probably don't need C++ interfaces for anything. < 1626983680 57542 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Components should be coarse-grained with no ABI stability inside a component. < 1626983730 964460 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's true that compile times are a common pain point < 1626983733 816747 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but that's only somewhat related < 1626983741 4564 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :since only the crates that have changed, and crates that depend on them, will be rebuilt < 1626983745 945464 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and in many cases that's unavoidable < 1626983764 175059 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if I change a type in some library crate then I have to recompile everything that uses that library at least as far as checking that it uses the new type correctly < 1626983799 529949 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :certainly you can get nightmare situations in C when you change a header file and don't recompile the corresponding library > 1626983899 464186 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86536&oldid=86535 5* 03Dtuser1337 5* (+302) 10/* Implementation Dependent Commands */ < 1626983951 179870 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :I would rather to not have too many external dependencies, regardless of what programming language it is > 1626983961 538784 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86537&oldid=86536 5* 03Dtuser1337 5* (+1) 10/* Implementation Dependent Commands */ < 1626984036 399745 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: anyway it's not just a matter of trusting that the same ABI was used, you also have to trust that the "header files" or equivalent faithfully represent the code in the library you're linking against < 1626984057 680188 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :right now that is accomplished by making them a side product of the compilation of the library itself < 1626984091 619196 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :this is very convenient, it means all the information used by the compiler as it compiles the library is also available to describe how to link the library < 1626984127 452992 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if you moved to a system of manually written header files, not only would that be more work for the programmer, but the compiler would still need to generate this metadata so that the linker can check the manually written header file against it at link time < 1626984136 374399 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :otherwise you have the possibility of undefined behavior > 1626984181 746588 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86538&oldid=86537 5* 03Dtuser1337 5* (+238) 10/* File I/O Commands */ < 1626984197 76937 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :i don't advocate manually writing header files < 1626984225 354919 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :your 'extern "rust" { ... }' block serves the purpose of a header file < 1626984244 814367 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Yes because that is currently the only way < 1626984262 149543 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :GHC supports manual header files in the form of .hs-boot. but if you screw up and don't faithfully represent the corresponding .hs file then your code can segfault < 1626984265 246048 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it's not safe < 1626984276 489341 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :What I'd like is a system that works like this: < 1626984294 533454 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: look, the type signatures for a library have to come from somewhere. either they are a product of building the library (the current Rust solution) or they are written by the programmer (C solution) < 1626984296 709557 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :rustc --generate-headers a.rs -o a.rsh < 1626984342 351750 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :But see, that is a *separate* step from the step of compiling object code < 1626984359 645796 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and what if there's a syntax error in a.rs < 1626984361 816885 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :then it won't work > 1626984377 602786 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86539&oldid=86538 5* 03Dtuser1337 5* (+4) 10/* File I/O Commands */ < 1626984379 435902 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but your goal for separate compilation was that the deps don't even need to build properly in order to use them < 1626984401 516244 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :what's the point of making this a separate step anyway? < 1626984403 981721 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Correct. if a.rs fails to build, you still have old a.rsh < 1626984422 963933 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and what if you change a.rs and don't rebuild the a.rsh? < 1626984436 559228 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :now it might have inaccurate signatures < 1626984440 819708 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and your code can segfault < 1626984458 14152 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :No < 1626984488 641497 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :anyway if you're talking about manually invoking rustc then you're probably doing something wrong < 1626984503 746401 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :99.9% of rust users use cargo < 1626984511 47616 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :which already has a comprehensive solution for dependencies < 1626984515 58136 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :whether local or downloaded < 1626984541 130107 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :the entire point is that you can make changes in a.rs that *don't* change the signatures of externally visible functions, and in that case, *only* a.rs, and not the files using it, need to be recompiled. < 1626984561 759005 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :None of this would be an issue if the compiler wasn't so slow, right? < 1626984587 896341 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :I think the more rusty way to do this would be to compare the old and new metadata emitted by compiling a.rs < 1626984589 422062 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :Just fix the compiler. < 1626984597 307491 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and if they match then don't recompile things that depend on it < 1626984611 459184 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :then there is no separate .rsh file and no janky manually regenerating it < 1626984633 161534 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but I think you'll find that most of the time changes really do require downstream libs to be rebuilt < 1626984637 92099 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :especially when generics come into play < 1626984645 123143 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :remember Rust monomorphizes generics < 1626984665 755877 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :you know how templated C++ libraries are entirely header files? < 1626984678 386623 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :templates are bad < 1626984721 79354 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :Rust's generics are a bit saner semantically than C++ templates, but the compilation strategy is the same < 1626984728 792665 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :Yes, and that makes Rust bad < 1626984731 703851 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :okay < 1626984736 199788 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :so don't use it < 1626984742 265987 :riv!~river@tilde.team/user/river PRIVMSG #esolangs :rust has macros < 1626984792 433161 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it sounds like you have ample reasons not to use Rust and that separate compilation is not the one thing holding you back < 1626984798 210952 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :so why do you care < 1626984809 491736 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i don't use rust either < 1626984829 346734 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i don't really have a use case for it anymore and i don't like the community and i don't enjoy programming for its own sake > 1626984830 736702 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86540&oldid=86539 5* 03Dtuser1337 5* (+322) 10 < 1626984917 729138 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Other amusement: with GHC IIUC the ABI doesn’t just differ between versions, but is also different if you’re compiling with profiling (because all heap objects have to have extra metadata for that). < 1626984953 4009 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :yep < 1626984953 842226 :shachaf!~shachaf@user/shachaf PRIVMSG #esolangs :GHC also generates different memory layout for types with optimizations on. < 1626984958 589954 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and threaded vs unthreaded runtime < 1626984965 776956 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :doesn't GHC use C as a IL tho < 1626984965 868183 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Yep. < 1626984974 813840 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oren: usually not, these days < 1626985008 685128 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :as of a few years ago they removed the peformance-oriented via-C backend < 1626985019 507160 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :keeping only the "unregisterized" version for support of obscure platforms < 1626985021 630742 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :I think the answer is “sort of”, in that it uses a C-- representation internally at one point, but this is not written out or fed to a separate compiler. < 1626985035 28322 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :Cmm is not really anything like C < 1626985047 827609 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it is an IR similar in purpose to LLVM < 1626985053 725979 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :ACTION shrugs. < 1626985065 166827 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the start of GHC development predates LLVM by a long time so they had to make their own IR < 1626985066 277260 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Okay sorry, don’t really know anything about its structure. < 1626985092 450805 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Yeah, and nowadays there actually *is* an LLVM backend apparently? < 1626985100 386918 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the pipeline these days is like AST -> Core -> STG -> Cmm -> LLVM -> machine code < 1626985107 22600 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :or direct from Cmm to machine code < 1626985126 718141 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the direct-to-asm backend is faster to compile but supports fewer architectures and has fewer optimazitons < 1626985151 609189 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the "registerized" (perf-oriented C) backend was basically there to piggyback on GCC backend optimizations < 1626985159 279893 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :the stuff it generated was not portable C in any sense < 1626985163 633553 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it was grotesquely GCC specific C < 1626985178 424107 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and the assembly output of GCC would be further postprocessed by a 4,000 line Perl script known as the Evil Mangler < 1626985205 12191 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :because some basic things you need in a functional lang backend IR (like computed tail calls) are impossible to represent in portable C < 1626985210 565302 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :anyway that whole nasty mess is gone > 1626985217 425872 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86541&oldid=86540 5* 03Dtuser1337 5* (+417) 10/* loadallfile() */ < 1626985232 299157 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and remains only the relatively saner "unregisterized" C output which does not try to be performant < 1626985236 492022 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :if even that < 1626985243 225269 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :they may have removed that too in the years since i stopped paying attention < 1626985268 816718 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :I’m pretty sure it still exists, but the only reason it does is to allow bootstrapping ghc to a new architecture. > 1626985275 342387 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86542&oldid=86541 5* 03Dtuser1337 5* (+2) 10/* loadallfile() */ < 1626985276 284448 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :yeah < 1626985291 350272 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i had some fun trying to bootstrap GHC onto ARM Android long ago < 1626985297 45492 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :GHC had perl as a dependency? wild > 1626985315 252057 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86543&oldid=86542 5* 03Dtuser1337 5* (+28) 10/* Function Commands */ > 1626985330 426865 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86544&oldid=86543 5* 03Dtuser1337 5* (+0) 10/* Function Commands */ < 1626985336 439051 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :other fun facts about GHC internals: GHCi has its own multiplatform dynamic linker > 1626985338 682023 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86545&oldid=86544 5* 03Dtuser1337 5* (+6) 10/* Function Commands */ < 1626985346 208942 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :this means that despite being an "interpreter" it is the least portable part of GHC < 1626985371 542524 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :getting ghci to work on a new platform is a whole additional can of worms < 1626985397 342096 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :it works this way because they want to call into native code compiled haskell libs from bytecode-interpreted code < 1626985414 807995 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :i'm not sure why they don't use dlopen() or some other standard mechanism for code loading > 1626985421 845912 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86546&oldid=86545 5* 03Dtuser1337 5* (-4) 10/* Stacks */ < 1626985423 666169 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :but there are probably reasons < 1626985440 460848 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :compiled Haskell code looks very different from compiled C code < 1626985452 887926 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :there aren't really any functions in the sense of call/ret pairs < 1626985469 601104 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :as i recall most basic blocks end in a computed jump < 1626985472 362238 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Of course, architecture support is entwined with having a runtime implementation that works on that architecture and the primitives that call into it. > 1626985478 893181 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86547&oldid=86546 5* 03Dtuser1337 5* (+1) 10/* Commands */ < 1626985485 947030 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :this is the nature of the spineless tagless G-machine (which is neither spineless nor tagless, oh well) < 1626985503 518605 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :there isn't a normal call stack either < 1626985517 450624 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :except when you make a FFI call then obviously it has to set up a C like stack > 1626985530 987945 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86548&oldid=86547 5* 03Dtuser1337 5* (-5) 10/* Implementation Dependent Commands */ < 1626985533 385653 :oren!~oren@ec2-34-239-129-109.compute-1.amazonaws.com PRIVMSG #esolangs :well, it makes sense not to use a call stack because it would be huge < 1626985535 158115 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :and this gets into the difference between "safe" and "unsafe" FFI calls < 1626985587 768956 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :debugging ghc produced code in gdb is great fun > 1626985630 695568 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86549&oldid=86548 5* 03Dtuser1337 5* (-19) 10/* Simple Calculator */ > 1626985726 846385 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86550&oldid=86549 5* 03Dtuser1337 5* (+13) 10/* Function Commands */ < 1626985750 636308 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Fun stuff: I was recently wondering if, in a data constructor with multiple unboxed Word8# fields, those fields would be packed efficiently or be put into a word each. I couldn’t find an answer online, but I did find that GHC exposes some heap introspection modules so I could, after some back and forth, create such a value and then get info about the heap object representing it. < 1626985767 348008 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :Just in GHCi. < 1626985797 571631 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :oh yeah that stuff is fun < 1626985799 52777 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :(I found that the Word8#s were in fact packed into one word.) > 1626985862 500310 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86551&oldid=86550 5* 03Dtuser1337 5* (-68) 10/* Simple Turn-based Game */ < 1626985917 700732 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :Whoa. < 1626985929 776161 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :So much discussion here, I'll have to check the scrollback. < 1626985944 126308 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :I was doing esoteric experiments with factorio, and there are more esoteric experiments that I want to try. < 1626986003 895986 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :I was wondering this in the first place because a beginner came around asking if there was any lower-overhead type for 32-byte blobs that they needed to be handling a lot. Even a primitive ByteArray# is boxed and stores its own length and thus has two words of overhead, so even a Short Bytestring that wraps it has four words of overhead, which is as big as the payload on 64-bit. > 1626986112 895416 PRIVMSG #esolangs :14[[07TextGarbage14]]4 10 02https://esolangs.org/w/index.php?diff=86552&oldid=86529 5* 03Dtuser1337 5* (-2) 10/* See also */ < 1626986158 785362 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :So I had the harebrained idea that the lowest-overhead option (two words) would be a data constructor with four Word64# fields, but that means you have to do bitshifting and masking to get at individual bytes. < 1626986175 645873 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :keegan: in rust, can I export and import foreign functions with a C-like API but rust mangling of the names, and does that mangling contain partial type information like in C++ mangling? < 1626986195 185914 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :So I started wondering whether a data constructor with 32 Word8# fields would be efficiently packed. < 1626986219 533355 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :I guess I should ask in ##rust insteead < 1626986244 514113 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :Or test. < 1626986363 142829 :keegan!~beehive@li521-214.members.linode.com PRIVMSG #esolangs :b_jonas: I'm not sure < 1626986369 249135 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :(There was another harebrained solution I thought of, which was to use an LLVM-backend-specific SIMD vector type.) > 1626986393 674760 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86553&oldid=86551 5* 03Dtuser1337 5* (+2) 10/* Function Commands */ < 1626986721 546573 :Melvar!~melvar@dslb-092-074-060-118.092.074.pools.vodafone-ip.de PRIVMSG #esolangs :(Passing around a Word8X32# should have zero overhead, right?) < 1626986873 492287 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :In some C codes I have passing and returning a structure of two 32-bit integers. How efficiently is that implemented on 64-bit x86 Linux? > 1626986986 869043 PRIVMSG #esolangs :14[[07FlinnScrip14]]4 10 02https://esolangs.org/w/index.php?diff=86554&oldid=86553 5* 03Dtuser1337 5* (+27) 10 < 1626987054 788429 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :typedef struct { union { Sint32s; Uint32 u; }; Uint32 t; } Value; Also what will it be on the other computers too? How does it compare to the use of a 64-bit integer type? < 1626987112 904044 :riv!~river@tilde.team/user/river PRIVMSG #esolangs :i think its better to use integers < 1626987122 547504 :riv!~river@tilde.team/user/river PRIVMSG #esolangs :bitshifting < 1626987122 638567 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :At least in terms of the x86-64 sysV ABI, I don't think there's much of a difference between that and a 64-bit integer type. < 1626987137 654550 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :It does get returned in a single 64-bit register. < 1626987414 356535 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :fizzie: I don't think so: in the x86-64 calling convention, plain vector types are returned in a register, if it's just one vector, not a structure with multiple vectors < 1626987445 422094 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :No, it does. < 1626987446 304283 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :I mean it is returned in a vector register, not a general register, which may be better or worse < 1626987448 623708 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :`` echo -e '#include \n typedef struct { union { int32_t s; uint32_t u; }; uint32_t t; } Value; Value foo(void) { return (Value){ .u = 0x01234567, .t = 0x89abcdef }; }' | gcc -x c - -o - -S -O2 | grep -v '\.' | grep -A 2 'foo:' < 1626987450 420707 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :foo: \ movabsq $-8526495043095935641, %rax \ ret < 1626987454 667712 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :See, it gets returned in rax. < 1626987457 811255 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :hmm < 1626987516 393546 :arseniiv!~arseniiv@94.41.6.151.dynamic.ufanet.ru QUIT :Ping timeout: 252 seconds < 1626987555 455831 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :fizzie: that uses integer types, not SIMD vector types < 1626987563 837937 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Yes, but so did the question. < 1626987588 192056 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :"If the class is INTEGER, the next available register of the sequence %rax, %rdx is used." < 1626987652 333150 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :`` echo -e '#include \n typedef struct { uint32_t a, b, c, d; } Value; Value foo(void) { return (Value){ .a = 1, .b = 2, .c = 3, .d = 4 }; }' | gcc -x c - -o - -S -O2 | grep -v '\.' | grep -A 3 'foo:' # returned in those two GPRs < 1626987654 361959 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :foo: \ movabsq $8589934593, %rax \ movabsq $17179869187, %rdx \ ret < 1626987749 488134 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :fizzie: Melvar mentioned "SIMD vector type" and "Word8X32#" < 1626987775 223408 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :Well, I was answering zzo38's question. < 1626987778 468831 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :ah < 1626987794 64365 :int-e!~noone@int-e.eu PRIVMSG #esolangs :hmm, actually, does gcc have an option to produce hex literals in assembly? < 1626987841 316722 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :ah < 1626987858 824055 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :so I was looking at a wrong question < 1626987875 301468 :int-e!~noone@int-e.eu PRIVMSG #esolangs :(probably not, but it would really be helpful sometimes) < 1626987883 295573 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :And I wasn't looking at the backscroll at all, so I didn't even realize there was a question it could be confused with. < 1626987900 884727 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :there was so much backscroll\ < 1626987901 852690 :int-e!~noone@int-e.eu PRIVMSG #esolangs :`` dc <<<16o8589934593p17179869187p < 1626987905 210264 :HackEso!~h@techne.zem.fi PRIVMSG #esolangs :200000001 \ 400000003 < 1626987915 563559 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :and my head is still full with testing esoteric designs in factorio < 1626987925 987467 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :int-e: I don't think it does, but clang puts the hex version in a comment. < 1626987941 173917 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :because there are so many different possibilities to test, and some of them behave in an unpredictable way that takes a long time to converge to some equilibrium < 1626987953 920798 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :(that's of course because I'm testing those tricky cases specifically) < 1626987987 543961 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :It started with asking an innocent question, and the answer turns out to be... maybe, it depends on a lot of factors < 1626988000 22610 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :but I learned a lot < 1626988007 737014 :fizzie!irc@selene.zem.fi PRIVMSG #esolangs :No clang in the HackEso installation. But it produces `movabsq $8589934593, %rax # imm = 0x200000001` + `movabsq $17179869187, %rdx # imm = 0x400000003`. < 1626988888 220574 :int-e!~noone@int-e.eu PRIVMSG #esolangs :Hmm, why does xboard consult a chess program to check the legality of move, and why do said chess programs have trouble with black's moves in b1bkb1b1/1b1b1b1b/b1b1b1b1/1b1b1b1b/b1b1b1b1/1b1b1b1b/b1b1b1b1/1bBbKb2 ... < 1626988977 841843 :int-e!~noone@int-e.eu PRIVMSG #esolangs :err, that's missing the missing the w - - 0 2 part (white to move, etc.) < 1626989571 442079 :mnrmnaugh!~mnrmnaugh@pool-96-252-87-182.bstnma.fios.verizon.net JOIN #esolangs mnrmnaugh :realname < 1626992185 728299 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :int-e: what notation is that? < 1626992212 586856 :int-e!~noone@int-e.eu PRIVMSG #esolangs :FEN < 1626992225 736042 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :is that like a checkered pattern of black bishops? < 1626992234 228691 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :why does it have "1" everywhere instead of a column number? < 1626992234 728733 :int-e!~noone@int-e.eu PRIVMSG #esolangs :With one hole at h1, yes. < 1626992246 808670 :int-e!~noone@int-e.eu PRIVMSG #esolangs :1 is for one empty square < 1626992277 798887 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :oh, so this is like a RLE, not like the other kind of encoding that uses absolute column numbers to fill with empty squares < 1626992306 40326 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :it looks similar to this < 1626992352 482186 :zzo38!~zzo38@host-24-207-14-22.public.eastlink.ca PRIVMSG #esolangs :As far as I know, FEN is a common kind of encoding for chess; I don't know what other kind of encoding you mean < 1626992401 485237 :int-e!~noone@int-e.eu PRIVMSG #esolangs :b_jonas: Yeah. Usually you get bigger numbers than that :) The starting position has /8/8/8/8/ in the middle. Also lower case is black and upper case is white. < 1626992401 971401 :V!~v@anomalous.eu QUIT :Remote host closed the connection < 1626992477 409175 :V!~v@anomalous.eu JOIN #esolangs V :Wie? < 1626992500 370498 :b_jonas!~x@catv-176-63-12-30.catv.broadband.hu PRIVMSG #esolangs :I might just be confused < 1626992885 175552 :int-e!~noone@int-e.eu PRIVMSG #esolangs :https://paste.debian.net/1205297/ < 1626992979 123016 :int-e!~noone@int-e.eu PRIVMSG #esolangs :I actually saw it here: https://www.youtube.com/watch?v=jglvRpbJZzk < 1626994702 669430 :dutch!~DutchIngr@user/dutch QUIT :Quit: WeeChat 3.2 < 1626995026 496669 :dutch!~DutchIngr@user/dutch JOIN #esolangs DutchIngraham :dutch < 1626995495 294471 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__ < 1626995844 391665 :oerjan!oerjan@sprocket.nvg.ntnu.no JOIN #esolangs oerjan :Ørjan Johansen < 1626996214 648374 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs : completely alters the explanation for Deadfish/Constants, page hasn't been touched for 6 years <-- hm didn't i write that < 1626996522 241965 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :seems Mroman wrote the basics and i expanded to >256 < 1626996664 53250 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :looking at it the second sentence of the second paragraph is a bit confusing and technically wrong < 1626996715 842270 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :i think it's mixing backward and forward thinking < 1626996927 25969 :oerjan!oerjan@sprocket.nvg.ntnu.no PRIVMSG #esolangs :i guess i'll wait to see Guest8999's rewrite > 1626997439 905455 PRIVMSG #esolangs :14[[07StairCase14]]4 M10 02https://esolangs.org/w/index.php?diff=86555&oldid=86507 5* 03PythonshellDebugwindow 5* (-242) 10/* To Do */ Remove non-categories < 1626997759 185387 :delta23!~delta23@user/delta23 QUIT :Quit: Leaving < 1626997902 440165 :delta23!~delta23@user/delta23 JOIN #esolangs delta23 :delta23__