< 1563926510 845485 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :The missing letters make it look like it was optimized for those old typewriters that were missing the letters "í ú ű". You don't see documents typed with that sort of typewriter anymore, so if there are accented letters missing, it's not that set, but it used to be more frequent in old documents. < 1563926556 242144 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :http://math.bme.hu/~ambrus/pu/versw has the full poem < 1563926602 351726 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Instead of having to write "29 DB B8 10 01 8E D8 B8 00 B8 8E C0 29 C0 E4 60 D7 B4 07 AB B0 20 E6 20 CF", I want to, at the very least, be able to write "sub bx bx mov ax 0110 mov ds ax mov ax b800 mov es ax sub ax ax in al 60 xlat mov ah 07 stosw mov al 20 out 20 al iret". < 1563926665 490441 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :tswett[m]: that can be hard, because x86 has a rather tricky complex instruction set, and a stupid assembly syntax that doesn't really correspond well to what's encoded < 1563926712 392516 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Yeah, it's weird. < 1563926720 428782 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :so you might want to use a nonstandard assembly syntax to make it a bit easier < 1563926720 788551 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :"Fortunately", I'm only using an 8088 processor. < 1563926730 644014 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :yeah, but even that subset < 1563926814 975814 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :in fact the later additions tend to be somewhat more regular < 1563927050 843909 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I thought about that. < 1563927835 968168 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Man, it'd be awfully nice if the 8088 gave you a separate call stack and data stack. < 1563927845 76233 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Forth pretty much assumes that you've got that. < 1563927975 224424 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :tswett[m]: use the BP register to mark the separate data stack, and access that with the usual instructions and convenient addressing modes, without PUSH or POP, while you use the normal stack marked by SP for the call stack < 1563928009 288921 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :That's one way to do it. < 1563928028 210833 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I was thinking I'd use the data segment for the data stack. < 1563928066 851941 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Then use SI and DI (both at once) to indicate the top of the data stack. < 1563928117 948896 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :if you want a single data segment, then I think it's best to have the forth data stack in it < 1563928146 398286 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :what? why SI _and_ DI (both at once)? < 1563928150 525845 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :that sounds strange < 1563928195 19326 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :I could imagine just using SI or DI, but why both? < 1563928203 929675 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Yeah, come to think of it, there's probably no good reason to do that. < 1563928213 12192 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Let me see, why did I come up with that idea in the first place. < 1563928226 733094 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :using just one of them to indicate the top of the data stack can work < 1563928241 852435 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It's so that you can use either a string read instruction or a string write instruction without having to adjust SI or DI first. < 1563928254 507105 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :But then again, you'll have to adjust either SI or DI *afterwards* instead. < 1563928259 861026 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :also, some forth interpreters store the top word of the stack in a register, not on the actual memory stack, I think that's usually worth < 1563928288 186748 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :So I think I'll just use DI and then copy it into SI if needed. < 1563928299 422645 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :I don't think the string instructions help you much < 1563928317 985611 :xkapastel!uid17782@gateway/web/irccloud.com/x-ztyznztmmjijsjtt QUIT :Quit: Connection closed for inactivity < 1563928332 433924 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Well, I'm using STOSW somewhere. :D < 1563928343 640477 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :And XLAT. So fancy. < 1563928411 44885 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Nyow, this one Forth tutorial-thingamo I'm looking at implements the DUP word like this: < 1563928430 733806 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :mov (%esp), %eax; push %eax; ret < 1563928451 703171 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :eww < 1563928464 390040 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It's pushing, with a "push" instruction, and then immediately returning. So apparently "push" uses one stack and "ret" uses another stack. < 1563928470 698254 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Right? < 1563928472 98441 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Iunno. < 1563928500 521924 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :tswett[m]: are you sure you're disassembling it correctly? is it possible that the push has a segment override? < 1563928513 720640 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :no wait, that's stupid, push can't do that < 1563928533 874901 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :or can it? I don't recall how x86_16 and x86_32 works < 1563928563 772270 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :I think the segment override applies only to the operand of the push < 1563928564 127563 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I'm not disassembling anything; it contains literally that assembly code. < 1563928590 842473 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Yeah, wait, *can* push have a segment override? That wouldn't make sense, you'd need to override the stack pointer register too. < 1563928599 303507 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I don't think you can do that. < 1563928615 726139 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :maybe that's not the part of the code that duplicates the value on the stack? < 1563928623 204955 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :but it does some other bookkeeping? < 1563928824 679370 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It definitely says that this is the implementation of the DUP word. < 1563929038 486836 :iconmaster_!~iconmaste@2604:6000:b184:5c00:35f3:baa9:3d13:33fb QUIT :Ping timeout: 276 seconds < 1563929073 903937 :iconmaster!~iconmaste@2604:6000:b184:5c00:596c:fa8e:eb74:115f JOIN :#esoteric < 1563929115 745068 :doesthiswork!~doesthisw@98.125.174.165 JOIN :#esoteric < 1563929394 667601 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :You know, I like the idea of the implementation of a Forth word being *just* some machine code. < 1563929430 378811 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Like, if there's a Forth word corresponding to the XLAT instruction, then the body of that Forth word is just a single byte: d7 < 1563929494 410335 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu PRIVMSG #esoteric :sure, you can compile forth if you want < 1563929496 53875 :b_jonas!~x@catv-176-63-24-203.catv.broadband.hu QUIT :Quit: leaving < 1563929527 127186 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what does XLAT do again? < 1563929647 458862 :int-e!~noone@int-e.eu PRIVMSG #esoteric :that was a weird one, something like mov al, [bx+al] < 1563929685 326404 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :al = *(16*ds + bx + al) < 1563929693 87685 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :In pseudo-C. :D < 1563929696 878920 :int-e!~noone@int-e.eu PRIVMSG #esoteric :and I forgot whether al is signed or unsigned here. < 1563929706 370269 :int-e!~noone@int-e.eu PRIVMSG #esoteric :in *wrong* pseudo-C if bx+al overflows. < 1563929718 999431 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(al is /probably/ unsigned) < 1563929746 371695 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :"XLAT (translate) replaces a byte in the AL register with a byte from a 256-byte, user-coded translation table. Register BX is assumed to point to the beginning of the table. " < 1563929754 774224 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :So it's unsigned. < 1563929871 587740 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :oh fun < 1563929884 325217 :int-e!~noone@int-e.eu PRIVMSG #esoteric :The one with a signed offset was the bit test with a memory target, bt r/m*, r* < 1563930068 677373 :int-e!~noone@int-e.eu PRIVMSG #esoteric :and apparently bt can still do that when used with a memory operand. this is somewhat crazy. < 1563930173 856731 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Uhm. Or maybe not. Let me check elsewhere... < 1563931017 483052 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Okay, AMD describes this far more clearly than Intel does, and indeed bit offsets outside of the designated memory operand are supported (meaning the address of the memory operand is not the final memory address being accessed.) < 1563931537 462362 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1563932049 141242 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: https://i.imgur.com/1LxEakY.jpg https://i.imgur.com/IpTZR7P.jpg < 1563933497 555051 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :is that your yard cat > 1563933600 387443 PRIVMSG #esoteric :14[[07Sidex14]]4 N10 02https://esolangs.org/w/index.php?oldid=64645 5* 03A 5* (+4550) 10Add Sidex > 1563933631 939017 PRIVMSG #esoteric :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=64646&oldid=64611 5* 03A 5* (+12) 10/* S */ > 1563934236 647520 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 N10 02https://esolangs.org/w/index.php?oldid=64647 5* 03A 5* (+856) 10Stub timeline page > 1563934254 268537 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 M10 02https://esolangs.org/w/index.php?diff=64648&oldid=64647 5* 03A 5* (+0) 10Oops < 1563934376 110788 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: it is a cat that is sometimes seen in our yard > 1563934463 24077 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 M10 02https://esolangs.org/w/index.php?diff=64649&oldid=64648 5* 03A 5* (+397) 10 > 1563934489 182791 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 M10 02https://esolangs.org/w/index.php?diff=64650&oldid=64649 5* 03A 5* (+64) 10/* Since 2015 */ < 1563934497 125874 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :so i suppose yes < 1563934517 802692 :int-e!~noone@int-e.eu PRIVMSG #esoteric :"Everyone who uses a computer frequently has had, from time to time, a mad desire to attack the precocious abacus with an axe." < 1563934777 556944 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :correct > 1563934804 947212 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 10 02https://esolangs.org/w/index.php?diff=64651&oldid=64650 5* 03A 5* (+176) 10/* 2015 */ > 1563934834 791467 PRIVMSG #esoteric :14[[07Timeline of golfing languages14]]4 10 02https://esolangs.org/w/index.php?diff=64652&oldid=64651 5* 03A 5* (+99) 10/* See also */ < 1563934956 869778 :int-e!~noone@int-e.eu PRIVMSG #esoteric :This was written around 1970 by a rocket scientist :) > 1563935068 418040 PRIVMSG #esoteric :14[[07Nop14]]4 10 02https://esolangs.org/w/index.php?diff=64653&oldid=56953 5* 03A 5* (+234) 10 > 1563935070 249922 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64654&oldid=64644 5* 03A 5* (-94) 10 < 1563935070 899955 :int-e!~noone@int-e.eu PRIVMSG #esoteric :http://library.sciencemadness.org/library/books/ignition.pdf page 97 (113 of the pdf) > 1563935178 8449 PRIVMSG #esoteric :14[[07Hey stack!14]]4 N10 02https://esolangs.org/w/index.php?oldid=64655 5* 03A 5* (+2850) 10Created page with "[[Hey stack!]] is a 4th-generation language where you have to declare everything before you use these things. It is a meta-language that can be used to describe anything physi..." > 1563935198 345626 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64656&oldid=64654 5* 03A 5* (-2778) 10/* Hey stack! */ > 1563935327 565578 PRIVMSG #esoteric :14[[07Char14]]4 M10 02https://esolangs.org/w/index.php?diff=64657&oldid=64532 5* 03A 5* (-1176) 10Fix bugs in ARCUN's edits > 1563935362 498326 PRIVMSG #esoteric :14[[07Char14]]4 M10 02https://esolangs.org/w/index.php?diff=64658&oldid=64657 5* 03A 5* (+68) 10and +CAT > 1563935456 134340 PRIVMSG #esoteric :14[[07Esolang talk:Categorization14]]4 M10 02https://esolangs.org/w/index.php?diff=64659&oldid=64589 5* 03A 5* (+236) 10/* Proposed Categories: Arch-based and Bootstrapped */ > 1563935507 53548 PRIVMSG #esoteric :14[[07An arch is simply a curve.14]]4 N10 02https://esolangs.org/w/index.php?oldid=64660 5* 03A 5* (+1577) 10Created page with "'''An arch is simply a curve.''' is a self-modifying [[Arch]]-based language where the program itself is an arch. All commands are synonyms of different definitions of the wor..." > 1563935531 648473 PRIVMSG #esoteric :14[[07Arch14]]4 M10 02https://esolangs.org/w/index.php?diff=64661&oldid=64564 5* 03A 5* (-36) 10/* Languages */ No xlinks anymore > 1563935548 138356 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64662&oldid=64656 5* 03A 5* (-1756) 10/* An arch is simply a curve. */ Tidy up user talk page < 1563935548 689667 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Pondering whether or not I want to do jumps using POP CS... < 1563935576 786047 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It's a great idea as long as all of my subroutines start at the same offset into the code segment. :D > 1563935661 933746 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64663&oldid=64662 5* 03A 5* (+101) 10/* Collaboration Request */ < 1563935700 24868 :int-e!~noone@int-e.eu PRIVMSG #esoteric :what processor are you targeting? < 1563935789 486327 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(for all I know, pop cs only ever worked on 8088 and 8086 processors) < 1563935883 974104 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Yeah, those. < 1563935887 471529 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I think it's an 8088 emulator. < 1563935923 974802 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I wonder if I can use the ES: prefix to make the mod-reg-r/m byte refer to the extra segment instead of the data segment. < 1563935984 861902 :int-e!~noone@int-e.eu PRIVMSG #esoteric :usually < 1563936001 486576 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I mean, that's what the prefix is for. > 1563936108 792776 PRIVMSG #esoteric :14[[07Sidex14]]4 M10 02https://esolangs.org/w/index.php?diff=64664&oldid=64645 5* 03A 5* (-77) 10 < 1563936130 343873 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Should I prefer instruction destination in the first or last position for x86? < 1563936162 537995 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Yes. < 1563936194 980559 :int-e!~noone@int-e.eu PRIVMSG #esoteric :It's much more entertaining if you have an opinion on that. It doesn't matter which. < 1563936246 954864 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I probably want to write an assembler so I should decide on one. < 1563936256 279596 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :The emulator's built-in debugger puts destination first, so that. :D < 1563936256 338532 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :For three-operand instructions it should obviously be in the middle. < 1563936259 68496 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :As does this random web page. http://pastraiser.com/cpu/i8088/i8088_opcodes.html < 1563936266 784882 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Does the 8086 count as x86? < 1563936275 75825 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm used to reading AT&T-style syntax. > 1563936298 940859 PRIVMSG #esoteric :14[[07Sidex14]]4 M10 02https://esolangs.org/w/index.php?diff=64665&oldid=64664 5* 03A 5* (-396) 10No named threads, it is off-topic < 1563936306 178939 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tswett[m]: yes it does < 1563936445 86588 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I'm starting to think that POP CS is actually a great idea. < 1563936473 128204 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Just put POP CS right before the first opcode of every subroutine, in the same place. > 1563936490 438772 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64666&oldid=64663 5* 03A 5* (+41) 10/* Collaboration Request */ < 1563936498 366124 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Whenever you want to goto another subroutine, you push the new CS and then jump to your POP CS. < 1563936563 228389 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Well Intel got away with reappropriating that opcode as a prefix for other instructions... so I guess few people thought that way. < 1563936846 284014 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :* Sudden thought * < 1563936854 2663 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I think x86 is famously hard to virtualize or whatever. < 1563936886 277805 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I sorta want to create an "eso-architecture" with the sole goal of being as good at virtualization as possible. < 1563936918 627014 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I... don't quite know what that would look like. < 1563936928 569375 :int-e!~noone@int-e.eu PRIVMSG #esoteric :no registers :P < 1563936986 750300 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :No memory, no registers, no source code. Execution consists of an infinite loop that does nothing. < 1563936998 28349 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Virtualization is easy because there's only one program. < 1563937001 664003 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I'm afraid that there's a reason why processors get dedicated virtualization support, especially since "virtualization" nowadays usually implies an extra level of memory management, rather than plain emulation. < 1563937029 604696 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Not only is it easy to simulate any program, but every program is an accurate simulation of every other program. < 1563937069 396430 :int-e!~noone@int-e.eu PRIVMSG #esoteric :golden < 1563937085 572978 :int-e!~noone@int-e.eu PRIVMSG #esoteric :And we can implement it readily in a grain of sand. < 1563937095 66410 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :No fabbing needed! < 1563937112 581719 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :I guess that my esoarchitecture would allow you to add layers of "if you would access this memory segment, instead go run this other thing". < 1563937117 476738 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :And, of course, it would not allow you to remove them. < 1563937131 527486 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :But they'd be removed implicitly... or whatever... whenever they're actually invoked. < 1563937169 399841 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Sudden realization that I don't know what a trap is and how it differs from an interrupt. < 1563937192 638095 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :("Well," you say, "they're called 'instants' now, and most traps are instants, but I guess a trap could also be an activated ability.") < 1563937367 872940 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Interrupts are external events; traps are triggered in software. (But obviously this is not 100% consistent... see the 'int' instruction on x86) < 1563937617 154776 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :virtualization shouldn't be anywhere near as difficult as it is on x86 :( < 1563937689 421432 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :> Intel x86 defines two overlapping categories, vectored events (interrupts vs exceptions), and exception classes (faults vs traps vs aborts). < 1563937691 560297 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : :1:45: error: parse error on input ‘,’ < 1563937692 370110 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :lol. < 1563937738 598389 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :> traps increment the instruction pointer, faults do not, and aborts 'explode'. < 1563937741 259016 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : :1:40: error: parse error on input ‘,’ < 1563937774 251023 :int-e!~noone@int-e.eu PRIVMSG #esoteric :O I didn't know that there are two forms of hydrogen (H2 molecules). < 1563937823 678469 :int-e!~noone@int-e.eu PRIVMSG #esoteric :https://en.wikipedia.org/wiki/Spin_isomers_of_hydrogen > 1563938141 883909 PRIVMSG #esoteric :14[[07Talk:Kepler14]]4 M10 02https://esolangs.org/w/index.php?diff=64667&oldid=64590 5* 03A 5* (+49) 10 < 1563938334 569621 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(The amazing thing is that this matters---a lot---when liquefying hydrogen, because the state change from the ortho to the para variant releases more energy that is required for evaporation.) > 1563938566 911621 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64668&oldid=64666 5* 03A 5* (-1) 10/* Resource Starvation */ typo < 1563938777 937023 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I also didn't know that nuclear rocket propulsion is not dead. https://en.wikipedia.org/wiki/TEM_(nuclear_propulsion) and "In 2019, the US Congress passed a bill to add a line item to the budget to direct NASA to expend US$100 million to re-initiate development of a nuclear thermal rocket propulsion system, with an aspirational goal of a test flight no earlier than 2024." (from... < 1563938783 944184 :int-e!~noone@int-e.eu PRIVMSG #esoteric :...https://en.wikipedia.org/wiki/Nuclear_thermal_rocket ) < 1563938973 335594 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :int-e: neat. < 1563938986 251298 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :now cathy's trying to explain to me about electron spin isomers of oxygen < 1563938997 622007 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :(singlet and triplet oxygen) < 1563939021 343382 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i have only the most rudimentary understanding of molecular orbitals so this is proving difficult < 1563939163 818469 :int-e!~noone@int-e.eu PRIVMSG #esoteric :cathy? < 1563939300 932721 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tbh I have not really tried to understand this beyond the picture on the wikipedia page. < 1563939345 14987 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(the thing to understand would be why the spins are restricted to those two configurations) < 1563939375 22267 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :cathy = kmc's wife < 1563939382 134873 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :who studied physical chemistry back in the day < 1563939707 761031 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :It just occurred to me that a potentially convenient way to do a far jump is to just push a code segment and instruction pointer and then do a far return. < 1563939724 578159 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Only problem is that you can't do a call that way. < 1563939744 884993 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :There's no "pop the code segment and instruction pointer, and push the old code segment and instruction pointer" instruction. < 1563939777 110459 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :That would be kind of an interesting instruction, actually. < 1563939801 669618 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :Chemistry is weirc. < 1563939804 454013 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :*weird < 1563939814 471188 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :Also I cannot spell anymore apparently. < 1563940695 15482 :adu!~ajr@pool-173-73-86-145.washdc.fios.verizon.net QUIT :Read error: Connection reset by peer < 1563940754 469431 :adu!~ajr@pool-173-73-86-145.washdc.fios.verizon.net JOIN :#esoteric < 1563941162 744211 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tswett[m]: so push stuff first... which you can, assuming you know where you are (no position-independent code) < 1563941167 658180 :Cale!~cale@2607:fea8:995f:fb71:e04f:4ee9:679b:139c QUIT :Ping timeout: 276 seconds < 1563941173 520651 :int-e!~noone@int-e.eu PRIVMSG #esoteric :"stuff" being the return address. < 1563941298 750755 :int-e!~noone@int-e.eu PRIVMSG #esoteric :tswett[m]: you're on the brink of rediscovering return-oriented programming :) < 1563941409 589165 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Come to think of it, "pop the stack into the instruction pointer and push the old instruction pointer" sounds a lot like a form of call-with-current-continuation. < 1563941462 821180 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Also, it's pretty rude if the top of the stack is your caller. < 1563941474 719863 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Because now your caller will return back to you instead of to its caller. < 1563941574 463591 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw PRIVMSG #esoteric :Come to think of it, maybe *all* subroutine calls are a form of call-with-current-continuation; it's just that the "current continuation" is given in the form of the stack pointer, and the subroutine is expected to return to it. < 1563942297 301143 :Cale!~cale@CPEf48e38ee8583-CM0c473de9d680.cpe.net.cable.rogers.com JOIN :#esoteric < 1563942490 385560 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :fun c++ fact: std::tuple is implemented with recursive inheritance rather than just a thing that contains elements as fields < 1563942514 308506 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :this is apparently because if you inherit from an empty base class, it can be elided, unlike a struct field? > 1563943617 173060 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64669&oldid=64668 5* 03A 5* (+290) 10/* Concurrency problems and solutions */ > 1563943634 542686 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64670&oldid=64669 5* 03A 5* (+26) 10/* Deadlocking */ < 1563944107 197368 :doesthiswork!~doesthisw@98.125.174.165 QUIT :Ping timeout: 246 seconds > 1563944115 762332 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64671&oldid=64670 5* 03A 5* (+422) 10/* Concurrency problems and solutions */ Some solutions > 1563944302 601103 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64672&oldid=64671 5* 03A 5* (+184) 10/* Race conditions */ > 1563944347 154520 PRIVMSG #esoteric :14[[07Sidex14]]4 M10 02https://esolangs.org/w/index.php?diff=64673&oldid=64665 5* 03A 5* (+30) 10 > 1563944412 690350 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64674&oldid=64672 5* 03A 5* (-340) 10/* Sidex solutions (check if this is okay) */ > 1563944611 352763 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64675&oldid=64674 5* 03A 5* (+178) 10/* Deadlocking */ < 1563946491 489412 :iconmaster_!~iconmaste@2604:6000:b184:5c00:1c07:d14f:878:b8d JOIN :#esoteric < 1563946743 905990 :iconmaster!~iconmaste@2604:6000:b184:5c00:596c:fa8e:eb74:115f QUIT :Ping timeout: 264 seconds < 1563946792 488923 :iconmaster__!~iconmaste@2604:6000:b184:5c00:3dbc:a01c:11fe:b38f JOIN :#esoteric < 1563947056 592367 :iconmaster_!~iconmaste@2604:6000:b184:5c00:1c07:d14f:878:b8d QUIT :Ping timeout: 276 seconds < 1563947095 485653 :iconmaster__!~iconmaste@2604:6000:b184:5c00:3dbc:a01c:11fe:b38f QUIT :Ping timeout: 276 seconds < 1563947140 909832 :iconmaster!~iconmaste@2604:6000:b184:5c00:2c00:2a6e:f8cd:221b JOIN :#esoteric < 1563948561 936169 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Read error: Connection reset by peer < 1563948587 420383 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563948781 486067 :iconmaster_!~iconmaste@2604:6000:b184:5c00:b8be:27bd:86d0:e13f JOIN :#esoteric < 1563949047 902345 :iconmaster!~iconmaste@2604:6000:b184:5c00:2c00:2a6e:f8cd:221b QUIT :Ping timeout: 264 seconds < 1563954720 988238 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be JOIN :#esoteric < 1563954753 749444 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 268 seconds < 1563954903 442898 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric > 1563955116 624489 PRIVMSG #esoteric :14[[07Seabass14]]4 10 02https://esolangs.org/w/index.php?diff=64676&oldid=64641 5* 03Sec-iiiso 5* (+1) 10/* Truth-machine */ < 1563955729 525626 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1563956546 395841 :GeekDude!~G33kDude@unaffiliated/g33kdude QUIT :Ping timeout: 248 seconds < 1563957084 829912 :GeekDude!~G33kDude@unaffiliated/g33kdude JOIN :#esoteric < 1563957370 45147 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1563957829 521323 :arseniiv!~arseniiv@136.169.234.37 JOIN :#esoteric < 1563958405 583279 :iconmaster_!~iconmaste@2604:6000:b184:5c00:b8be:27bd:86d0:e13f QUIT :Ping timeout: 276 seconds < 1563958601 491508 :iconmaster!~iconmaste@2604:6000:b184:5c00:c060:c590:6305:e356 JOIN :#esoteric < 1563962345 65269 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 JOIN :#esoteric < 1563962369 743961 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`bobadventureslist http://bobadventures.smackjeeves.com/comics/2829040/20190722/ < 1563962371 45596 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :bobadventureslist http://bobadventures.smackjeeves.com/comics/2829040/20190722/: b_jonas < 1563962887 148027 :xylochoron[m]!xylochoron@gateway/shell/matrix.org/x-lthdiflxpdtjhsbj QUIT :Ping timeout: 252 seconds < 1563962909 980053 :wmww!wmwwmatrix@gateway/shell/matrix.org/x-xujjjhznqyaahuzq QUIT :Ping timeout: 250 seconds < 1563962910 492762 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-vxonmuimljvqcvdw QUIT :Ping timeout: 250 seconds < 1563962917 402456 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-apdjwqhcegrngypr QUIT :Ping timeout: 265 seconds < 1563964869 616446 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I thought of a certain esoteric language idea. You know how in some real programming languages, there are very few reserved tokens, you can shadow any builtin or keyword with a name of your own as long as you don't mind not being able to use that keyword within the scope. The examples I know of are metafont and scheme. < 1563964929 126399 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :This, of course, is not necessarily good design, because it can lead to somewhat inflexible syntax, as well as the language having to accept some mistakes silently. < 1563964972 222231 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :And I was thinking of a modified variant of C that does this mildly so just the alphanumeric words can all be shadowed, while the punctuation can still remain reserved. < 1563965156 80557 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :There's a few syntax changes you need, about restricting the sillier compound typenames like "int short unsigned" to a more canonical set, or replacing them with a single word for each type if you prefer that, plus a rule that you can no longer omit the name of a parameter in the heading a function definition. < 1563965159 142756 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Also excluding most pre-ANSI stuff like the implicit int and the no-prototype function definitions. < 1563965251 902557 :wmww!wmwwmatrix@gateway/shell/matrix.org/x-pdockqnpojeaongh JOIN :#esoteric < 1563965286 388160 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :Of course this is easier when you design your language syntax in first place to allow this, like in scheme or metafont, but that wouldn't make the language esoteric. < 1563965294 485266 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :C's odd syntax makes this interesting. < 1563965709 546734 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I wonder, you might need to use a general parsing algorithm like CYK to parse declarations, if you do that. < 1563965748 374202 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :int long; long int struct; long long int volatile; < 1563965795 235354 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: no, it's worse than that, it gets actually ambiguous. that's why Im' saying that I don't accept such typenames in this variant. < 1563965848 444864 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :right, sorry; I guess I meant, CYK plus some disambiguating rule in case it gets multiple parses. < 1563965934 41216 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I only accept "char", "unsigned char", "signed char", "short int", "unsigned short int", "signed short int", "int", "unsigned int", "signed int", "long int", "unsigned long int", "signed long int", "long long int", "unsigned long long int", "signed long int", "float", "double", "long double" and nothing else; not "long" or "unsigned" etc < 1563966031 561572 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :that way I can tell that "long int f(size_t);" declares a function "f" whose argument is of type "size_t", but "long int (size_t);" declares a variable of type long int whose name is "size_t" etc. < 1563966091 50295 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :There's some ambiguities remaining, but they're benign: as a type name "int (*)(void *const)" is a function type whose argument is either a const pointer or a non-const pointer named "const", but when just naming a type (as opposed to defining a function) that doesn't matter < 1563966134 53214 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :if we allowed "long" as a type name, then "long int (size_t);" could be parsed as declaring a function named "int", ambiguous with declaring a variable named "size_t", which is why I forbid that < 1563966173 242602 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I also have to say that the storage class keywords ("auto", "static", "extern", "inline") have to be written before the type < 1563966309 897518 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :but most people already write the storage class keywords before the type, and most people always name the dummy arguments in a function definition, so the most visible change is the one about "unsigned" and "long", but even there there are styles that give one-word typedefs to each builtin type < 1563966333 374991 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so I think the resulting language wouldn't look too alien to people who know C < 1563966389 272471 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :there might be other ambiguities that I haven't considered, in particular I'll have to look up how and where struct definitions are allowed in C, because C is weird that way < 1563966499 141966 :xylochoron[m]!xylochoron@gateway/shell/matrix.org/x-izcoopzzcxmovbaf JOIN :#esoteric < 1563966499 754774 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-fvmvwamynnueoztp JOIN :#esoteric < 1563966506 589586 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-oxmrtvzktptzecev JOIN :#esoteric < 1563967853 950959 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-oxmrtvzktptzecev QUIT :*.net *.split < 1563968225 318106 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-oxmrtvzktptzecev JOIN :#esoteric < 1563968616 149935 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Wow, apparently in normal C you can say "volatile volatile int n;" -- I just tested this. < 1563968621 205713 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I wonder if it makes it more volatile < 1563969008 837923 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Maybe because of typedefs? < 1563969102 877893 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and yes, I'd have to also add the restriction that you put "complex", "imaginary", "atomic" before the rest of the type name < 1563969355 286833 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I wonder if it's valid to define a new struct type with a redundant c-v specifier like "struct foo { int x; char y[8]; } const;" < 1563970489 453141 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :My struct macro is TG < 1563970498 609367 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :#define Struct(name) typedef struct name name; struct name < 1563970529 805081 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah, "restrict" and "typedef" are storage class keywords too, I didn't list them all < 1563970555 427245 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and there's one or two more < 1563970581 618719 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :"thread_local" < 1563970605 751803 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :oh yeah, "register" < 1563970633 556301 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and "inline" isn't one of them, it's an extra keyword < 1563970996 460795 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :cpressey: You can't "test" whether you can do something in C, you can only test whether you can do it on an implementation. < 1563971101 629519 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :Or I guess maybe you meant something like "it is allowed; and additionally, I tested it on an implementation", which is reasonable. < 1563971119 423700 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :(It *is* allowed: C11 6.7.3p5 "If the same qualifier appears more than once in the same /specifier-qualifier-list/, either directly or via one or more `typedef`s, the behavior is the same as if it appeared only once.") < 1563971183 143369 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :right. for const and volatile it even makes sense < 1563971228 411240 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :some old implementations parse "long long int" as the same as "long int", which results in strange silent failures < 1563971285 323462 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And long long long is famously too long for GCC. < 1563971323 483417 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I tested it by reading the specification. < 1563971355 632173 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :you can also try to test by asking on irc, but that doesn't always work < 1563971400 125205 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :`` gcc -fdiagnostics-color=never -x c <(echo 'long long long i = 0;') < 1563971401 185143 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​/dev/fd/63:1:11: error: ‘long long long’ is too long for GCC < 1563971472 107747 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :why don't you use the <<< thingy? < 1563971487 96213 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :maybe you care about bash 1 compatibility < 1563971519 817140 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I just can't really remember bash, that's all. < 1563971597 910096 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :so you, like, can't remembering what all the expansion syntax like ${foo#bar}, ${foo##bar}, ${foo%bar}, ${foo-bar}, ${foo:-bar}, ${foo:=bar}, ${foo+bar}, ${foo/bar/qux} do? < 1563971606 443272 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :To be honest, usually I do the above sort of thing as [echo or printf] | gcc -x c - which involves remembering even less. < 1563971624 927172 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :and ${foo:2:1} but that doesn't have bar < 1563971663 630302 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :i,i if you're so qualified at writing c, how come it isn't on your cv < 1563971663 862235 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :I think I have finally managed to remember #, ##, %, %% using the mnemonic of # being something that's in front of things. < 1563971691 924731 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I remember that from the mnemonic that # is before $ and % is after $ < 1563971717 837506 :fizzie!fis@unaffiliated/fizzie PRIVMSG #esoteric :And the #/## (resp. %/%%) distinction from ## being longer than #. < 1563971721 230771 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I still don't know vim regex syntaxes < 1563971736 598762 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :vim has an option to use regular regex syntax < 1563971754 145651 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But also it has intersection! Almost makes me want to switch back to vim. < 1563971821 569124 :doesthiswork!~doesthisw@98.125.174.165 JOIN :#esoteric < 1563971855 971310 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :how often do you use intersection when just a lookahead wouldn't work? < 1563971865 72080 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :I don't recall ever having wanted such a regex < 1563971878 274272 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :maybe it's useful if you want to match fibonacci numbers that are also catalan numbers or some such thing < 1563971986 296829 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :no, that won't work, the regex doesn't actually match catalan numbers, it generates catalan numbers through a side channel < 1563972010 290782 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :`perl -le$==0,(1x$_)=~/^(|()1(?1)(?1)\2)$(?{$=++})^/,print$=for 0..13 < 1563972018 420803 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Lookahead is complicated and confusing and intersection+complement usually express the thing I want. < 1563972022 840473 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1 \ 1 \ 2 \ 5 \ 14 \ 42 \ 132 \ 429 \ 1430 \ 4862 \ 16796 \ 58786 \ 208012 \ 742900 < 1563972070 11132 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know what the thing you wrote is, but it doesn't look regular. < 1563972091 712334 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :yeah < 1563972136 708950 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The pattern I want most often is e.g. (P&~Q) < 1563972214 994156 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :shachaf: sure, and most practical cases of that you can write with a negative lookahead too, or in some even simpler way < 1563972236 403573 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :at least that's what I found for the regexes I wrote, but maybe I'm just using the one hammer I got for every problem < 1563972254 32241 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :interestingly TRE doesn't support intersections, I don't know why < 1563972385 487211 :myname!~myname@ks300980.kimsufi.com PRIVMSG #esoteric :that does remind me of the pcre that only matches non-prime unary numbers < 1563972473 987604 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :myname: yes, https://www.perlmonks.com/?node_id=52469 . it's linked from https://www.perlmonks.com/?node_id=796712 which is the side-channel fibonacci thing. < 1563972588 635969 :iconmaster_!~iconmaste@2604:6000:b184:5c00:549c:d3a8:9646:1721 JOIN :#esoteric < 1563972835 590887 :iconmaster!~iconmaste@2604:6000:b184:5c00:c060:c590:6305:e356 QUIT :Ping timeout: 276 seconds < 1563972966 341861 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :fizzie: I apologize for using the word "tested" in such a lax way. < 1563973156 337849 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :What I actually did was, I took the C spec and converted it into a set of assertions in first-order logic < 1563973172 346060 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Then I converted those assertions into an Agda program < 1563973192 660938 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :or whatever it is that Agda calls its source files < 1563973220 362530 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Turns out that all behaviour in C is undefined. < 1563973289 624262 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: did you also find the contradiction in peano arithmetic and thus rule not only the world but all possible worlds? < 1563973469 773141 :Melvar!~melvar@ltea-178-014-120-010.pools.arcor-ip.net QUIT :Quit: WeeChat 2.4 < 1563973491 531448 :Melvar!~melvar@ltea-178-014-120-010.pools.arcor-ip.net JOIN :#esoteric < 1563973523 976650 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :wob_jonas: Yes! That was quite astonishing. < 1563973930 990544 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :In other news, I'm not too sure about Skolem's paradox. I think my way of dealing with it is to ignore all of model theory. < 1563973954 581114 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :As soon as you start using non-standard models, you get too many weird results. I'm just, like, let's not even go there. < 1563974106 672996 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :cpressey: yeah, but thinking of logical compactness or nonstandard models can give a different way to think about proofs, and so sometimes reveals interesting connections, even though it rarely lets you prove anything new that you couldn't without that tool. just like when you're thinking of proofs through category theory. < 1563974207 719611 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :for example, logical compactness lets you see that if there's a ramsey-like property that any infinite structure satisfies, then there's also a bound such that any structure larger than that satisfies it. this doesn't let you prove new ramsey-like theorems, because all the proofs where you prove that an infinite structure doesn't work already natur < 1563974208 216710 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :ally give you upper bounds, but it reveals why the proofs are like that. < 1563974877 550451 :kspalaiologos!b0dd7a47@176.221.122.71 JOIN :#esoteric < 1563974930 449774 :kspalaiologos!b0dd7a47@176.221.122.71 QUIT :Remote host closed the connection < 1563976954 63989 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 PRIVMSG #esoteric :~help < 1563980372 140395 :wob_jonas!25bf3cd1@gateway/web/cgi-irc/kiwiirc.com/ip.37.191.60.209 QUIT :Remote host closed the connection > 1563980698 930577 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64677&oldid=64675 5* 03Areallycoolusername 5* (+283) 10 > 1563980745 598330 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64678&oldid=64677 5* 03Areallycoolusername 5* (+0) 10/* Race conditions */ < 1563981883 198120 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: WeeChat 1.4 > 1563981884 434028 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64679&oldid=64678 5* 03Areallycoolusername 5* (+234) 10/* Sidex solutions (check if this is okay) */ < 1563982387 28132 :atslash!~atslash@static.231.107.9.5.clients.your-server.de QUIT :Quit: Leaving < 1563983138 234323 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563983266 435600 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 248 seconds < 1563984229 758864 :atslash!~atslash@static.231.107.9.5.clients.your-server.de JOIN :#esoteric < 1563984415 669416 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563984578 297779 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1563985490 610047 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563985685 744963 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 268 seconds < 1563986541 490188 :iconmaster__!~iconmaste@2604:6000:b184:5c00:7473:a9b7:b917:3c89 JOIN :#esoteric < 1563986797 488043 :iconmaster_!~iconmaste@2604:6000:b184:5c00:549c:d3a8:9646:1721 QUIT :Ping timeout: 276 seconds < 1563987731 57080 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net JOIN :#esoteric < 1563989929 226176 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1563990146 537437 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 272 seconds < 1563990152 180043 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net QUIT :Ping timeout: 245 seconds < 1563990192 641362 :xkapastel!uid17782@gateway/web/irccloud.com/x-fhvlyayfzegmifzp JOIN :#esoteric < 1563990355 512818 :iconmaster_!~iconmaste@2604:6000:b184:5c00:a04b:763:b8d5:3946 JOIN :#esoteric < 1563990619 487384 :iconmaster__!~iconmaste@2604:6000:b184:5c00:7473:a9b7:b917:3c89 QUIT :Ping timeout: 276 seconds < 1563990669 273721 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu JOIN :#esoteric < 1563990679 517821 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net JOIN :#esoteric < 1563991316 449156 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric < 1563991966 195344 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net QUIT :Ping timeout: 246 seconds < 1563992111 513279 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net JOIN :#esoteric < 1563997732 378770 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :~eval len('the bot with this invocation character doesn't hang in this channle these days, right?') < 1563997941 534358 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1563998105 536408 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 244 seconds < 1563998105 690083 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1563998188 570650 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :it will soon be time for the next OotS strip. please prepare to upload it in a few days. < 1563998438 316528 :rain2!~My_user_n@unaffiliated/rain1 PRIVMSG #esoteric :Oats < 1563998449 447894 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :yes < 1563998603 78173 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :`? oots < 1563998603 733901 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :`? o < 1563998604 192702 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :oots? ¯\(°​_o)/¯ < 1563998604 864291 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. < 1563998630 709425 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :hmm, I think I left a double space in that from when I edited it down < 1563998707 139580 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :``` perl -i -pe 'warn s/ //g, " - $_";' wisdom/o < 1563998709 212014 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1 - o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventuallystumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. < 1563999030 469182 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :argh no < 1563999047 677155 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :``` perl -i -pe 'warn s/llystumble/lly stumble/g, " - $_";' wisdom/o < 1563999049 159193 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1 - o is a popular comedy fantasy webcomic. It's about a group called the Order of the Stick, as they go about their adventures with minimal competence, and eventually stumble into a plan by an undead sorcerer to conquer the world, and they're out to stop him and conquer their personal problems at the same time. Hopefully not in that order. < 1563999055 677490 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu PRIVMSG #esoteric :ok, now that's a better number of spaces < 1564000174 636603 :iconmaster_!~iconmaste@2604:6000:b184:5c00:a04b:763:b8d5:3946 QUIT :Ping timeout: 276 seconds < 1564000210 630921 :iconmaster_!~iconmaste@2604:6000:b184:5c00:6cab:eedb:8e09:2514 JOIN :#esoteric > 1564000403 256594 PRIVMSG #esoteric :14[[07Esolang talk:Categorization14]]4 10 02https://esolangs.org/w/index.php?diff=64680&oldid=64659 5* 03Sideshowbob 5* (+0) 10/* New category? */ < 1564001195 226424 :arseniiv_!~arseniiv@136.169.234.37 JOIN :#esoteric < 1564001231 386627 :arseniiv!~arseniiv@136.169.234.37 QUIT :Read error: Connection reset by peer < 1564001589 791906 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net QUIT :Read error: Connection reset by peer < 1564001604 513178 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net JOIN :#esoteric < 1564002802 626676 :DHeadshot_!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net JOIN :#esoteric < 1564002848 958239 :DHeadshot!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net QUIT :Ping timeout: 258 seconds < 1564003758 229302 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564003936 200369 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 246 seconds < 1564004237 992221 :AnotherTest!~turingcom@ptr-82l26zcdc6imrwoapg3.18120a2.ip6.access.telenet.be QUIT :Ping timeout: 252 seconds < 1564005537 904060 :iconmaster__!~iconmaste@2604:6000:b184:5c00:3923:2894:3302:1b80 JOIN :#esoteric < 1564005781 612061 :iconmaster_!~iconmaste@2604:6000:b184:5c00:6cab:eedb:8e09:2514 QUIT :Ping timeout: 250 seconds < 1564006777 55537 :DHeadshot_!~DHeadshot@cpc88301-woki8-2-0-cust688.6-2.cable.virginm.net PART :#esoteric < 1564008198 970351 :kolontaev!~kolontaev@slow.wreckage.volia.net JOIN :#esoteric < 1564008741 487668 :iconmaster_!~iconmaste@2604:6000:b184:5c00:912f:327f:5c4d:f0ab JOIN :#esoteric < 1564008951 903867 :iconmaster__!~iconmaste@2604:6000:b184:5c00:3923:2894:3302:1b80 QUIT :Ping timeout: 264 seconds < 1564009011 499939 :iconmaster__!~iconmaste@2604:6000:b184:5c00:409f:c171:14b1:214 JOIN :#esoteric < 1564009027 637369 :iconmaster_!~iconmaste@2604:6000:b184:5c00:912f:327f:5c4d:f0ab QUIT :Ping timeout: 276 seconds < 1564009176 284208 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving < 1564009303 213950 :arseniiv_!~arseniiv@136.169.234.37 QUIT :Ping timeout: 245 seconds < 1564011211 599197 :iconmaster__!~iconmaste@2604:6000:b184:5c00:409f:c171:14b1:214 QUIT :Ping timeout: 276 seconds < 1564012492 723449 :b_jonas!~x@catv-176-63-25-85.catv.broadband.hu QUIT :Quit: leaving