< 1564358430 909881 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :ais523: Did you write more about the card game you were designing? < 1564358463 365984 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :no < 1564358486 513983 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm working on so many projects that any specific random old project from a while ago is unlikely to have received updates, even if I've had no reason to abandon it < 1564358488 463708 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :I made other changes as well, such as, I added a solitaire mode, and I removed the fifty-point bonus. < 1564358493 585418 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :ais523: OK < 1564358524 862148 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is making statically linked binaries a hopeless endeavor? < 1564358576 501027 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I don't think most build tools are very good at it nowadays < 1564358598 217953 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the ideal would be some sort of LTO against libc, which would be fun to see < 1564358620 717279 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean in terms of the capabilities of the final binary, not how it's produced. < 1564358687 25427 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :"gcc -static helloworld.c" produced a binary for me that file claims is statically linked < 1564358710 646497 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :however, it appears to have a PLT anyway, which is suspicious < 1564358742 614827 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes. On Linux it's sort of possible. But once you want to do things like OpenGL it's not possible again. < 1564358778 871868 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :…also I'm not sure if I trust my disassembler, it disassembles "66 90" as "xchg %ax, %ax", which is not correct ("xchg %ax, %ax" would clear the upper 32 bits of %rax, it should be disassembled as "nopw" or "word ptr nop") < 1564358923 422117 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo 'int main() { return 0; }' | gcc -x c - -o /tmp/true; readelf -a /tmp/true > tmp/out; objdump -d /tmp/true >> tmp/out; url tmp/out < 1564358926 46950 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :https://hack.esolangs.org/tmp/out < 1564358930 617499 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo 'int main() { return 0; }' | gcc -static -x c - -o /tmp/true; readelf -a /tmp/true > tmp/out; objdump -d /tmp/true >> tmp/out; url tmp/out < 1564358932 822916 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :readelf: Warning: [ 3]: Link field (0) should index a symtab section. \ https://hack.esolangs.org/tmp/out < 1564358965 341594 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's certainly possible to make statically linked binaries that only use the kernel ABI. < 1564359035 108872 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :my statically linked hello world has a relocation section, which is interesting: it hasn't been fully linked < 1564359043 849565 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :maybe that's related to ASLR or something like that < 1564359050 591459 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think glibc is quite hostile to static linking. < 1564359092 629819 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :IIRC there's a separate compile of it which is more static-link-friendly < 1564359101 99214 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There's no reason for ASLR to cause this because all the statically linked jumps are relative. < 1564359172 873972 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apparently not, there are some absolute calls in the compiled hello world executable < 1564359175 948162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :those are what are going via the PLT < 1564359196 482911 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Right, but the PLT is what's making them absolute in the first place. < 1564359233 45671 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I've seen 66 90 diassembled as xchg %ax,%ax before. I wonder why. < 1564359280 845352 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\nxchg %eax,%eax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564359281 646376 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 87 c0 xchg %eax,%eax \ 2: cc int3 < 1564359292 44941 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\nxchg %ax,%ax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564359292 877538 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 66 90 xchg %ax,%ax \ 2: cc int3 < 1564359299 720257 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\nxchg %rax,%rax\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564359300 491493 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 90 nop \ 1: cc int3 < 1564359326 756494 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: because if you treat the instruction encoding orthogonally, 90 actually means xchg %ax, %ax on 8086; with 32-bit processors it was repurposed to mean nop (and xchg %ax, %ax is actually a nop on those) < 1564359353 31207 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes, I know that. < 1564359361 832758 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But you'd expect it to clear the upper 32 bits on amd64, like you said. < 1564359374 873353 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :right, so on amd64, you need to special-case 90 to have no relationship to ax < 1564359391 989580 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and it's probably easy to forget to do that when it doesn't matter on a 32-bit processor < 1564359697 313192 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :"XCHG (E)AX, (E)AX (encoded instruction byte is 90H) is an alias for NOP regardless of data size prefixes, including REX.W." < 1564359746 340061 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So I think the diassembly is correct? Though it would be nicer to call it a 2-byte nop. < 1564359851 695224 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :objdump should have an option to show the instruction in octal. < 1564359855 225135 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :huh, "xchg %ax, %ax" assembles into 66 90 < 1564359859 267921 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(I ran it the other way) < 1564359909 940272 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :interestingly, "xchg %rax, %rax" assembles into just 90 < 1564359917 759565 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess REX.W followed 90 would also be a 2-byte nop. < 1564359924 166462 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I guess that does the same thing :-D < 1564359941 965802 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :REX is a bit of a complex prefix, it /also/ overrides which registers you're using < 1564359954 918906 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so you'd need to pick a version of REX that left the registers the same < 1564359985 786252 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0x48; .byte 0x90\nint3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564359986 575483 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 48 90 rex.W nop \ 2: cc int3 < 1564360001 817188 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's REX.W < 1564360029 140334 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(I was hand-encoding some x86-64 code today so I happened to have it handy.) < 1564360031 830588 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I just used 48 in my own tests < 1564360045 972554 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and yes, it disassembles as REX.W < 1564360110 61006 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, I wonder what the other REXes disassemble as < 1564360113 21411 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I wonder whether I should go the Microsoft route and call that architecture "x64". < 1564360131 765597 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :OK, so the odd-numbered REXes change the second operand to r8 < 1564360175 985781 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. 41 is REX.B < 1564360211 871202 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :only REX.B and REX.WB weren't noted at all by the disassembler, for the others it mentioned the prefix explicitly < 1564360300 61853 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0101; .byte 0220' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564360300 919407 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 41 90 xchg %eax,%r8d < 1564360314 604085 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0111; .byte 0220' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564360315 422623 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 49 90 xchg %rax,%r8 < 1564360331 618996 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm reading the spec now < 1564360334 135717 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0111; .byte 0221' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564360335 435559 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: 49 91 xchg %rax,%r9 < 1564360354 705124 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Does HackEgo have a nicer way to ask these questions than that? < 1564360362 245871 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :LLVM has some tools for it, I think. < 1564360521 105393 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, xchg seems to use a really weird formatting for its arguments < 1564360548 920614 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :How do you mean? < 1564360579 215362 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :normally you'd use rex.r to change the first register to the r9..r15 set, but rex.rw xchg %ax, %r9 isn't interpreted as xchg %r9, %r9 like you'd expect < 1564360612 738019 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm guessing it's because the one-byte encoding of xchg hardcodes the first register rather than using modrm < 1564360620 111087 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :* r8 < 1564360625 409244 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This form of xchg just always uses ax, I think. < 1564360640 785117 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so xchg %r8, %r8 has to be encoded as 4d 87 c0 < 1564360654 968124 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You can use 0x87 to exchange arbitrary registers. < 1564360680 855846 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think that's pretty reasonable? REX only affects registers whose name is explicitly encoded. < 1564360713 700561 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :yep; 87 = xchg (word/dword/qword); c0 = registers only, ax or r8, ax or r8; then the rex prefix disambiguates the registers and operation size < 1564360750 764581 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :By the way this is way better in base 8. < 1564360776 120519 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :meanwhile, 90 has a hardcoded first argument (ax), and non-hardcoded second argument (ax or r8), which seems a little inconsistent < 1564360798 757613 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The mod r/m byte for two-register exchange is encoded as 03xy where x and y are the names of the two registers. < 1564360800 544484 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I'm still trying to wrap my mind around how calls into the OS work on Windows. On Linux and DOS there are certain interrupts. On Windows... you assemble an EXE to say that it links to kernel32.dll, and have the assembly code ... jump into some location that the loader will point to the userland code in kernel32 that will do the jump? < 1564360825 555295 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo__: Yes, the standard ABI is based on dynamic linking. < 1564360858 842371 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's kind of like the VDSO in Linux. < 1564360866 793136 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 248 seconds < 1564360868 45809 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I have no idea what VDSO is < 1564360893 187414 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the vDSO is a library that's provided by the kernel and that ld-linux automatically links against < 1564360894 590852 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's a small ELF file that's loaded into your address space at startup in Linux which you can use to make system calls. < 1564360918 876807 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Some system calls can be implemented without switching to kernel mode so the VDSO implements them directly, or something. < 1564360943 747139 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it contains a general system call instruction (mostly not needed nowadays now that syscall is a CPU instruction), but also implementations of functions like gettimeofday that communicate with the kernel using shared memory rather than system calls < 1564360982 748217 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :cpuid is a good example, the kernel basically just places the number of the CPU the thread is running on into a particular memory location, and the vDSO implementation reads it < 1564361003 648129 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you need the kernel to make this sort of cpuid caching work because it's the kernel that knows when it's moved a thread to a different CPU < 1564361041 528123 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I bought the Windows Internals book, but I think it's a bit too detailed for me. < 1564361050 289338 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :In Windows the only stable ABI is like this. < 1564361102 259518 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :a good way to put it is that on Windows, the only documented kernel ABI is to go via some libraries (lower-level than libc) that are provided with the operating system < 1564361122 497107 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably they make calls into the kernel themselves via some means, but the way they do that, and the interfaces they use, are both intended to be opaque to users < 1564361142 405129 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's also the only stable way. They change the library-kernel ABI all the time. < 1564361180 615155 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, that's the reason you make it opaque, isn't it? < 1564361184 21090 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :What do calls into DLLs look like at the assembly level (assuming the assembler itself doesn't hide details)? < 1564361186 170178 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so that you can change it without things breaking < 1564361236 734241 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo__: Presumably they have references to functions exported by DLLs which are resolved by the dynamic loader. < 1564361240 874194 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :on Windows, IIRC the way it works is that you write a jump instruction aimed at 0, together with a note (elsewhere in the executable) specifying what it's meant to go to < 1564361251 318048 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :and the dynamic linker will update it to the real address < 1564361267 909987 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo__: https://x0r19x91.github.io/2018/tiny-pe < 1564361283 933690 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :shachaf, ais523, thank you < 1564361349 529336 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know how these things work on Windows exactly but I hear it's a bit different from the standard Linux thing. < 1564361370 452149 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'll probably write a program to emit PE binaries at one point. < 1564361408 961920 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, shared library linking is pretty similar between Windows and Linux at the asm level, but it's pretty different at the .o/.c level < 1564361420 170046 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: should i put a fancy 512-byte dos demo in the MZ stub in windows binaries i generate < 1564361430 421632 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Well, even Linux has multiple methods. < 1564361445 607510 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like, the encoding in the executable is pretty similar, but the toolchain to get there is radically different < 1564361485 263472 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the way things work toolchain-wise in Windows is more explicit than on Linux, it's actually a bit easier for tools like aimake to handle because there are clear dependencies between all the steps < 1564361502 382132 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :(whereas on Linux, a .so acts as its own import library, which makes, e.g., circular dependencies between .so files hard to intentionally construct) < 1564361502 666610 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Some Linux libraries use relocation rather than position-independent code (I think this is pretty rare nowadays). < 1564361522 459555 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that only works with 32-bit code IIRC < 1564361522 596165 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think for a long time (maybe still?) Windows DLL addresses were randomized at boot time rather than load time. < 1564361555 828691 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ais523: I don't understand how Windows import libraries work or why you'd want them. < 1564361571 955116 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Can you generate them from DLLs? < 1564361583 339878 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can generate them from more or less anything < 1564361601 51574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :all you need is a list of functions to import, pretty much (maybe also some information about their calling convention, I forget if you need that) < 1564361604 872115 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why would I use them rather than just using DLLs directly? < 1564361605 660426 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I tried ton generate one for a dll, failed because the tool couldn't do it for the ... calling convention in question iirc < 1564361607 424086 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that can either be explicit or extracted from some file < 1564361628 30067 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the import library is what you /link against/ to be able to use the DLL < 1564361640 673070 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it isn't the DLL itself, just the code/data to link to it < 1564361650 913587 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean: If I'm writing a compiler/linker, why shouldn't I do it Linux-style rather than generating import libraries first? < 1564361655 602318 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the interesting part, and where the value comes from, is you can generate the import library even if you don't have a workinh DLL < 1564361657 282521 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :*working < 1564361667 91735 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Does it correspond to the PLT section in an ELF file or something? < 1564361668 888609 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so it makes the dependencies in the build process more fine-grained < 1564361680 811591 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :you can think of an import library as the "source code" for the PLT < 1564361689 27526 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :that compiles to produce it < 1564361702 35600 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :You can use a DLL without an import library if you're willing to do the retrieve function calls at runtime stuff < 1564361718 379642 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I wonder if any languages make that as convenient as using a DLL with an import library < 1564361728 26311 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :perhaps a good way to think about it is that the import library is the header file for a DLL < 1564361736 122915 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Why can't I just use a header file? < 1564361737 642145 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it specifies what functions it has and how to call into them < 1564361747 558182 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: because those only generate declarations, not code < 1564361769 886251 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it'd make a /lot/ of sense to combine implibs and header files, except that C is the wrong language for it < 1564361784 95004 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, if I'm making up a language, why shouldn't I just use something like a header file, is what I meant. > 1564361787 454219 PRIVMSG #esoteric :14[[07User talk:A14]]4 10 02https://esolangs.org/w/index.php?diff=64760&oldid=64711 5* 03Areallycoolusername 5* (+299) 10Ask User: A for ideas < 1564361796 7460 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you were creating a new language you would probably make a (header file + static library) or (header file + import library) combination as its own thing < 1564361812 909861 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas (header file + shared library) doesn't work because you don't want to compile the shared library into your source code < 1564361827 146212 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean, if you're making up a language you should probably get rid of header files entirely for most uses. < 1564361839 742141 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Import libraries are the only place where you'd want things that look like headers. < 1564361844 366295 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :well, you don't want header files that are textually included, like C has < 1564361856 486574 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but you do want some way to specify the API of code you don't have access to because it's in a library < 1564361869 759357 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You also don't want declarations that appear twice. < 1564361888 120210 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So it makes sense for externally linked things. < 1564361915 357790 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Anyway this all makes sense. < 1564361931 766961 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually, one thing that strikes me about languages is that working out the API of a file you're linking against is kind-of a major problem, that different languages solve (or fail to solve) in very different ways < 1564361949 363307 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You also ant to be able to cross-compile things without access to the DLLs or import libraries (I think kernel32.lib normally comes with Visual Studio or something?). < 1564361964 720821 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :e.g. in OCaml, the compiler can extract an interface from a file, and you can then compile against that, but writing the interfaces manually is also common < 1564361994 318708 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :in Java, the compiler wants access to either the source or binary you're linking against, and extracts declarations from that, but this is a pretty painful process and requires doing things like giving files specific names so that the compiler can find them < 1564362023 795537 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: that's a good point, an ideal implib equivalent wouldn't be platform-specific < 1564362056 697904 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :although maybe it at least needs to be specific to things like target word sizes < 1564362117 755001 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I mean, the import library specifies an ABI, so it makes sense for it to specify platform-specific things? < 1564362291 808370 :callforjudgement!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1564362297 523551 :ais523!~ais523@unaffiliated/ais523 QUIT :Disconnected by services < 1564362302 289228 :callforjudgement!~ais523@unaffiliated/ais523 NICK :ais523 < 1564362322 16330 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric : hmm… if you're writing vectorised code by hand, what instruction set should you aim for? < 1564362337 845721 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I was trying to use VPCMOV but it turns out my processor doesn't support it < 1564362338 458706 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The target architecture's? < 1564362348 686181 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I mean, if you want other people to use the program < 1564362356 956162 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :presumably you aim for x86_64 as that's what most people have < 1564362362 278774 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh. < 1564362371 951719 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Depends on how many people you want to use your thing. < 1564362372 72466 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but what vector instructions do most people have on their processors and which ones might be less well supported? < 1564362391 285414 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :the manual I have in which VPCMOV is documented dates from 2005 < 1564362410 817952 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's 2019 now and my processor still doesn't support it, so maybe some instructions are just omitted intentionally on some processors < 1564362426 960983 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's SSE4? < 1564362431 759186 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What's your processor? < 1564362446 844361 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :Intel(R) Core(TM) i3-7100U CPU @ 2.40GHz < 1564362476 181650 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :I'm guessing that AVX2 might be a good cutoff point < 1564362482 201054 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are you sure it's not supported? < 1564362484 6728 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :but I don't know < 1564362493 9535 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Intel says it supports SSE4. < 1564362496 133832 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :shachaf: I compiled a program that used it and got SIGILL when it tried to execute < 1564362501 215834 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's an XOP instruction I think < 1564362527 509712 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I see, I misread. < 1564362545 349075 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, apparently AMD changed their mind about XOP and removed it again < 1564362559 917429 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so I have some documentation of apparently very useful instructions that ended up not being implemented < 1564362656 150195 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Which instructions? < 1564362676 653658 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :At one point I wanted AVX2 and there was no CPU available that had it. < 1564362684 160454 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But that was years ago and it's probably reasonable to target by now. < 1564362698 723286 :xkapastel!uid17782@gateway/web/irccloud.com/x-niyftdharlfgogth QUIT :Quit: Connection closed for inactivity < 1564362781 893433 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :VPCMOV and some of the permutation instructions seem like the most useful XOP instructions < 1564362789 881669 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :horizontal adds could be useful in some algorithms too < 1564362819 263176 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :also the vectorised shifts/rotates are XOP, which surprises me, I thought they'd have been introduced long ago > 1564362941 59373 PRIVMSG #esoteric :14[[07Renumbering14]]4 10 02https://esolangs.org/w/index.php?diff=64761&oldid=64756 5* 03JonoCode9374 5* (+267) 10/* Example programs */ Infinite Counter < 1564362976 290144 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, so apparently Intel and AMD had their own competing ways to write vectorised shifts and rotates? < 1564363126 127239 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :or, no, PSLLW and friends hvae indeed been around for ages, now I'm really confused < 1564363179 907833 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :aha, the relevant case is shifts where different components get shifted different distances, i.e. vectorising << over both args, not just the left arg < 1564363334 698078 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :so that's less useful, then < 1564364250 114538 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :"By using the pointer table, the loader does not need to fixup all of the places in the code that want to use the api call, all it has to do is add the pointer to a single place in a table and its work is done. " < 1564364252 907941 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :http://sandsprite.com/CodeStuff/Understanding_imports.html < 1564364538 973065 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That sounds like the PLT. < 1564364694 955065 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you know why ELF files usually have the program headers at the beginning of the file and the section headers at the end? < 1564364706 886273 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is it an artifact of how they're usually generated, a section at a time? < 1564364849 144513 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sgeo__: Are you writing fancy code to generate PE files too? < 1564364884 474831 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :No. Learning about DOS to write a driver-level emulator for a DOS VR device, and started becoming curious about Windows < 1564365244 60236 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Can you also figure out Mac OS while you're at it? < 1564365261 178965 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think it has a similar story to Windows, except system calls are somewhat more stable. < 1564365380 921867 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I don't know anything about Mac (and I'm pretty sure Mac would have two stories. X and before X). But AmigaOS is fascinating. Multitasking without virtual memory by using relocation. I think Windows at least doesn't bother relocating the .exe being run most of the time, but Amiga has to < 1564365425 981643 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :On Amiga, 0x04 is a special location containing a pointer into an "Exec" library, and offsets of that are used to find Exec functions including ones for using other libraries. < 1564365455 142568 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :Also the entire kernel is run in the user ring < 1564365669 35880 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :Classic Mac OS was kinda funky -- it didn't have multitasking until a decent bit in. < 1564365743 400544 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :That reminds me, is Commodore 64 considered to have multitasking? It's... possible to run two programs at once sort of, but it's hard to be sure they'll both not occupy the same memory < 1564365754 938960 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :I guess more like a TSR than real multitasking < 1564366206 295378 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :pikhq, did Classic Mac OS ever need its memory defragmented? I remember reading about ... something like that, I think in a book about using Macs. < 1564366253 416580 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :These days paging sort of makes that irrelevant, memory locations don't need to be physically next to each other to be virtually next to each other < 1564366270 694704 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :After Mac OS 7, it also had virtual memory and a 32-bit address space. < 1564366282 602196 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :(this is also when it actually shipped with multitasking) < 1564366704 443993 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, it's pretty clear now why it's generated that way. < 1564366937 885108 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :hmm, so apparently Intel and AMD implemented incompatible versions of fused multiply-add, then both changed to support the other's version and dropped their own previous version < 1564366971 805230 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :apart from that, though, they're pretty much compatible up to AVX2 < 1564367025 392952 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :whereas AMD hasn't yet started supporting Intel's new AVX-512 (which is admittedly pretty ridiculous, it contains so many features it needs a 4-byte /prefix/ on every operation in addition to things like the ModRM byte and opcode) > 1564367177 260304 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64762&oldid=64760 5* 03A 5* (+194) 10 < 1564367222 420744 :pikhq!~pikhq@97-118-196-215.hlrn.qwest.net PRIVMSG #esoteric :Isn't AVX-512 the one that's also really hard to use effectively, because just using it forces a downclock for some fraction of a second? > 1564367256 688912 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64763&oldid=64762 5* 03A 5* (-7) 10/* Race conditions */ < 1564367440 757958 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Is there any pokemon battle where each player may have a computer with three pokemons that you can exchange between each battle if you do best of three, like you can with side cards in Magic: the Gathering? > 1564367526 971920 PRIVMSG #esoteric :14[[07Talk:Sidex14]]4 M10 02https://esolangs.org/w/index.php?diff=64764&oldid=64755 5* 03A 5* (+485) 10 > 1564367598 331954 PRIVMSG #esoteric :14[[07Sidex14]]4 M10 02https://esolangs.org/w/index.php?diff=64765&oldid=64752 5* 03A 5* (-73) 10 < 1564368292 77199 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :zzo38: the Battle Factory mode in Pokémon Emerald/Platinum/HeartGold/SoulSilver is sort of like that: you start by being given 6 random Pokémon and pick a team of 3 of them, then play 3v3 against computer opponents, whenever you win you can swap one of your Pokémon with one of theirs, whenever you lose you have to restart from the start < 1564368308 300434 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :it's not quite the same rules as you were describing but it's close < 1564368356 160339 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :oh, Pokémon Black 2/White 2 have Mix Battles at the PWT, which is even closer to what you said: each player brings a team of 3 Pokémon, then chooses one of their opponents Pokémon and battles with the one they chose + the 2 the opponents didn't choose < 1564368379 632184 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :actually I misread < 1564368412 61578 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :if you're talking about a sideboarding equivalent, that's already used in standard tournament rules: each player brings six Pokémon, sees the opponents six, then chooses four to battle with < 1564368426 180430 :ais523!~ais523@unaffiliated/ais523 PRIVMSG #esoteric :like sideboarding in M:tG except you get to do it right from the start of the game < 1564368782 435591 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1564368930 825197 :ais523!~ais523@unaffiliated/ais523 QUIT :Ping timeout: 248 seconds < 1564368941 706680 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :OK < 1564370506 801714 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :are there certain topics that are easier to learn or find information on if you know a language that isn't english? I guess english could be included... I'm not sure how to search for what I'm thinking of on google < 1564370609 98035 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Maybe it even isn't on Google. Or even if it is, may be difficult to find for other reasons, such as how the searching ranking is work, or on the wording they use difference from your wording (they try to make it work anyways, but it doesn't always work so well), etc < 1564370667 412017 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :zzo38: I'm thinkiing of things like Ruby used to be more popular in japan as well as trading candlesticks for various currency markets < 1564370799 408285 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com QUIT :Read error: Connection reset by peer < 1564371105 807364 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com JOIN :#esoteric < 1564371162 882552 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :my hotspot is so bad I can't even do a speed test and my lag on irssi goes from 0 to 200 something and back and forth... its really bad < 1564371186 266579 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :like, I don't know if half of my messages make it into the channel type of bad < 1564371387 675119 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :dont-panic, fiction originally in non-English languages. I like a thing called the Evillious Chronicles, but the novels are in Japanese < 1564371398 813727 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :(The songs are also in Japanese but most of them have good English subtitles) < 1564371469 376979 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :its just unfathomable the amount of infromation in even one language, and then to think we have like 7111 languages, 23 of which are the main ones... what information am I missing out on? < 1564371523 399793 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :luckily the ramayana and vasistha's yoga were translated among other items from sandscrit... but its just kind of mind blowing to think about what you'd be able to figure out if you knew like 7 or 8 languages fluently < 1564371583 465821 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :There is log for this IRC, so you can check if the messages are in the channel. < 1564371601 818663 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :zzo38: do they only log on success? < 1564371664 211402 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :I'm using irssi and for some reason ubuntu keeps thinking I hit page up and page down 10 or so times when I hit it once... its impossible to loook up further than the monitor allows < 1564371856 821514 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :I've been learning russian, but now I think I might switch over to chinese since there's more chinese and english speakers than most of the other languages combined < 1564371939 465068 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :the chinese writing system is so hard though ;_; < 1564372037 202158 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :higan < 1564372103 796938 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :hello < 1564372105 748694 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what's new < 1564372146 13527 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :dont-panic: It logs the message if the logging bot received the message. If it was sent to the channel, then all clients on that channel will receive it. < 1564372269 218415 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :dont-panic: I worked on an OCaml related thing in uni and took advantage of the fact that my project partner knew a little French and could read docs that weren't translated to English < 1564372320 677401 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :(it involved internals of the OCaml VM so not as well documented as the user level stuff) > 1564372695 282485 PRIVMSG #esoteric :14[[07User talk:A14]]4 M10 02https://esolangs.org/w/index.php?diff=64766&oldid=64763 5* 03A 5* (+4) 10/* Race conditions */ < 1564373195 599006 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :kmc: chinese writing may look hard, but if its your first language, you wouldn't know it was... the same as those with chinese as a first language probably squirm at english... our characters and sounds are all weird to them too lol < 1564373220 57995 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :chinese has thousands of symbols you have to learn < 1564373223 909935 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :english has 26, give or take < 1564373233 361583 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :Russian is the same... not entirely true < 1564373250 115105 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :chinese has thousands of combined symbols < 1564373273 782685 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :i.e. hill is like ^ and mountains is 3x ^ spaced weird < 1564373309 5212 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :its the same as prefix's and postfixes or whatever and particles in english or other languages < 1564373363 102763 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :*thousands of symbols made from combining symbols < 1564373391 5206 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :how else would one be able to use a standard keyboard to type mandarin or kanji? < 1564373495 998000 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0xeb; .byte 00' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564373496 770734 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: eb 00 jmp 2 <_start+0x2> < 1564373510 817742 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`` echo $'.globl _start\n_start:\n.byte 0xeb; .byte 00; int3' > /tmp/test.s; as -o /tmp/test.o /tmp/test.s; objdump -d /tmp/test.o < 1564373511 661137 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​ \ /tmp/test.o: file format elf64-x86-64 \ \ \ Disassembly of section .text: \ \ 0000000000000000 <_start>: \ 0: eb 00 jmp 2 <_start+0x2> \ 2: cc int3 < 1564373523 315861 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess eb 00 is also a nop. < 1564373800 522782 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :сказок жен, их уже такой как ты ГОГ LOL ГОГ ROFL < 1564373819 425772 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :^those aren't any easier for me to understand than chinese would be lol < 1564373825 814560 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`unidecode LOL < 1564373826 967412 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :​[U+004C LATIN CAPITAL LETTER L] [U+004F LATIN CAPITAL LETTER O] [U+004C LATIN CAPITAL LETTER L] < 1564373892 918044 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :in russian p's are r's and b's are v's... along with a lot of weird stuff going on. sounding it out becomes a pain when transitioning from english and remembering where keys are on the keyboard gets weird too... < 1564373917 637711 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :http://xahlee.info/kbd/i2/Russian_keyboard_windows_layout_78067.png < 1564373929 189763 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :there's 5 b's on that thing < 1564373979 797239 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :and f's look like they belong in a schematic work book... 'ф' < 1564374087 562004 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :№ <-- that's one of my favorite keys lol < 1564374154 451607 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But is it №1? < 1564374171 466148 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com PRIVMSG #esoteric :№1 in all of russia < 1564377504 164259 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :I think that Aquinas's proof of existence of God is illogical, because the conclusion contradicts the premise. However, the suggestion of infinite regress, that would satisfy the conditions, even though, they say it is impossible. Such infinite regress, the "end" (which still goes on anyways by infinitely) can then be "God". < 1564377918 31589 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Do you think such thing? < 1564378028 300597 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de JOIN :#esoteric < 1564381065 447250 :kolontaev!~kolontaev@galateya.tenet.odessa.ua JOIN :#esoteric < 1564381257 690814 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :I mentioned my idea of cfork() for Plan10 on here before, and then one way to implement fork() by: #define fork() (cfork()?:detach()) < 1564381713 511662 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :What is cfork? What is Plan10? < 1564382047 787675 :kolontaev!~kolontaev@galateya.tenet.odessa.ua QUIT :Quit: leaving < 1564382180 753566 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de PRIVMSG #esoteric :did i hear plan10 < 1564382182 404926 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de PRIVMSG #esoteric :elaborate < 1564382364 691756 :moony24!482a977e@hellomouse/dev/moony JOIN :#esoteric < 1564382372 220833 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :It is just a idea I had, about a alternative of Plan9 and Unix, which is compatible with Unix but also has some differences. (If you do not define plan10main() then the linker can substitute the default implementation, which sets up some compatibility with Unix and then calls main().) < 1564382380 588231 :moony24!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :Hello, world < 1564382394 691706 :moony24!482a977e@hellomouse/dev/moony NICK :moony_ < 1564382485 679457 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :zzo38, what kind of differences? < 1564382490 34611 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :shachaf: The cfork() function will fork, but all memory and registers (including the program counter) are shared until execve(), _exit(), or detach() is called. If successful, cfork() returns 0 (to the child process; it does not return any value to the parent process). In this case, execve() returns zero if successful. < 1564382602 896366 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :zzo38, i don't see what can be done with cfork that can't be done with normal fork < 1564382682 485028 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :if, theoretically, both programs have the exact same state as you described, it'd just have the same behavior as forking at the point the programs diverge < 1564382682 981670 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :It seem a better interface to me, and also seems like it may be able to be more efficient in some cases. < 1564382731 957937 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :The two processes do not have the exact same state; they still have their own process ID, file descriptors, etc (although the file descriptors are initially inherited). < 1564382803 993209 :int-e!~noone@int-e.eu PRIVMSG #esoteric :sounds eerily similar to vfork < 1564382868 724426 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Yes, it is similar, but there are some differences. (For one thing, vfork() is not guaranteed to be different from fork().) < 1564383005 915600 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Also, it is not allowed to return from the function vfork() was called in the child process, and the behaviour may depend on what is stored in registers, and so on; with cfork the registers are shared too (including the program counter). < 1564383249 492709 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :How would that be feasibly implemented on x86_64 without just setting a flag and no-oping < 1564383398 399516 :int-e!~noone@int-e.eu PRIVMSG #esoteric :moony_: yeah I'd also think it sets a flag that modifies the behavior of execve. < 1564383417 791315 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :The kernel would probably copy some stuff, select the new process, and then just continue the same program with the new process ID. < 1564383419 102243 :int-e!~noone@int-e.eu PRIVMSG #esoteric :and reserves a PID? < 1564383482 982482 :int-e!~noone@int-e.eu PRIVMSG #esoteric :moony_: or it could be like vfork except that on child termination or execve, state is copied back to the parent. < 1564383516 221135 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(state being the registers...) < 1564383523 942088 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Once it is detached, then it would create a new saved register set for it, I suppose. < 1564383537 907545 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :int-e: Yes, that could also be a way to implement it, I suppose. < 1564383561 924882 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :Well uh, two processes with the exact same deterministic behavior seems kinda useless in practice < 1564383578 284838 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :and it'd be very easy to break the illusion via, say, RDRAND < 1564383620 824918 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ah quantum < 1564383637 112746 :int-e!~noone@int-e.eu PRIVMSG #esoteric :or something trivial like getpid() ;-) < 1564383662 538270 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :"who am i" "you are a split personality" < 1564383705 422191 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :You can use getpid(); if used before it is detached, it will return the child process ID, but you can store it in a variable, and then after it is detached, the value (which is the child process ID) will still be visible to the parent. < 1564383731 580298 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :could add a brand new error value to handle the CFORK state when calling certain syscalls < 1564383757 294021 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :but... < 1564383761 491549 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :this is two processes < 1564383769 377931 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :technically syscalls should be done twice < 1564383776 88263 :int-e!~noone@int-e.eu PRIVMSG #esoteric :moony_: no, I don't think it's really two processes. < 1564383788 157660 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :(The parent process won't execute until the child is detached, so getpid() will always return the child process ID. Any system calls will be executed in the child process, too.) < 1564383829 602895 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :oh ok < 1564383832 651043 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :i get it now < 1564383837 822850 :int-e!~noone@int-e.eu PRIVMSG #esoteric :moony_: the way zzo38 describes it, only the child runs (like vfork) and the parent is revived upon executing execve() (and sees the return code of that) < 1564383839 466997 :moony_!482a977e@hellomouse/dev/moony PRIVMSG #esoteric :you can ignore me because I am a derp < 1564383842 815458 :doesntthiswork!~doesthisw@98-125-168-130.dyn.centurytel.net QUIT :Ping timeout: 248 seconds < 1564383887 897848 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Or only upon *successfully* executing execve? < 1564383940 441595 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Only if successful, then the parent sees zero as the return value of execve(). If execve() is not successful, it returns -1 to the child, and the parent is not revived. < 1564384069 897981 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Hopefully that explains it? < 1564384144 614915 :int-e!~noone@int-e.eu PRIVMSG #esoteric :zzo38: so what does the child do if it doesn't find any executable to execute? < 1564384195 632723 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I mean, at some point you need to give up, and pass control back to the parent anyway. < 1564384265 930190 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Yes; then you can just call _exit() in the child, which causes the parent to continue; or detach(), which causes both the parent and child to continue. < 1564384302 667235 :int-e!~noone@int-e.eu PRIVMSG #esoteric :okay < 1564384318 23508 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :(Remember that fork() is the same as (cfork()?:detach()).) > 1564384909 284617 PRIVMSG #esoteric :14[[07BlobVM14]]4 N10 02https://esolangs.org/w/index.php?oldid=64767 5* 03Void 5* (+7367) 10Create BlobVM < 1564384947 909975 :xkapastel!uid17782@gateway/web/irccloud.com/x-zgjkrhqndejjzbmq JOIN :#esoteric > 1564384972 364037 PRIVMSG #esoteric :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=64768&oldid=64759 5* 03Void 5* (+13) 10Add BlobVM < 1564384994 821769 :dont-panic!~Andipanic@225.sub-174-224-158.myvzw.com QUIT :Ping timeout: 248 seconds < 1564385059 550873 :moony_!482a977e@hellomouse/dev/moony QUIT :Ping timeout: 260 seconds > 1564385132 969041 PRIVMSG #esoteric :14[[07Special:Log/upload14]]4 upload10 02 5* 03Void 5* 10uploaded "[[02File:Little.png10]]" > 1564385343 265410 PRIVMSG #esoteric :14[[07BlobVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64770&oldid=64767 5* 03Void 5* (-1573) 10Add capability example > 1564385843 428128 PRIVMSG #esoteric :14[[07BlobVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64771&oldid=64770 5* 03Void 5* (+424) 10Add data structure overview > 1564385877 518922 PRIVMSG #esoteric :14[[07BlobVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64772&oldid=64771 5* 03Void 5* (+0) 10Fix list > 1564386021 537250 PRIVMSG #esoteric :14[[07BlobVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64773&oldid=64772 5* 03Void 5* (-346) 10/* Cooperative resource sharing between devices */ < 1564386328 25652 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de PRIVMSG #esoteric :Can I rename an article? < 1564386351 360740 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de PRIVMSG #esoteric :ah, i can move it > 1564386374 712904 PRIVMSG #esoteric :14[[07Special:Log/move14]]4 move10 02 5* 03Void 5* 10moved [[02BlobVM10]] to [[KeyVM]]: Rename VM > 1564386453 105588 PRIVMSG #esoteric :14[[07KeyVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64776&oldid=64774 5* 03Void 5* (-3) 10Rename from blobVM to keyVM > 1564386519 744877 PRIVMSG #esoteric :14[[07Language list14]]4 M10 02https://esolangs.org/w/index.php?diff=64777&oldid=64768 5* 03Void 5* (-1) 10Rename from blobVM to keyVM < 1564386881 421304 :zzo38!~zzo38@24-207-15-213.eastlink.ca PRIVMSG #esoteric :Do you like to play solitaire Scrabble? My highest score so far is 699 < 1564387227 256999 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 245 seconds < 1564387339 188783 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :My highest score so far is 700. < 1564387362 399079 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :(But not in solitaire Scrabble. That's just my score in life.) < 1564387475 668804 :int-e!~noone@int-e.eu PRIVMSG #esoteric :What's the measure? sheets of sheet music? < 1564387516 7807 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1564387571 91823 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Points. < 1564387597 845416 :int-e!~noone@int-e.eu PRIVMSG #esoteric :.......... .......... .......... .......... .. < 1564387616 931699 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Oh maybe it's your Chinese social score. < 1564387699 743591 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> 700*12 < 1564387703 420175 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 8400 < 1564387709 439195 :int-e!~noone@int-e.eu PRIVMSG #esoteric :> 700*20 < 1564387712 296376 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 14000 < 1564387782 9825 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are you objecting to not being swatted for that pun? I'm not oerjan. < 1564387784 519121 :cpressey!~cpressey@5.133.242.4 JOIN :#esoteric < 1564387827 643692 :int-e!~noone@int-e.eu PRIVMSG #esoteric :shachaf: I'm just riding the wave. < 1564387836 197676 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :But I think that multiplier is backwards. < 1564387843 165674 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :700 is 35 score < 1564387863 332316 :int-e!~noone@int-e.eu PRIVMSG #esoteric :I was working with a a 700 score. < 1564387869 907638 :int-e!~noone@int-e.eu PRIVMSG #esoteric :s/a a/a/ < 1564387882 286239 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :If my score = 700, then my = 35 < 1564387916 255966 :int-e!~noone@int-e.eu PRIVMSG #esoteric :You have a point. < 1564387922 504049 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(Does that bring it up to 701?) < 1564388909 372543 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric > 1564389896 907612 PRIVMSG #esoteric :14[[07Talk:An Odd Rewriting System14]]4 10 02https://esolangs.org/w/index.php?diff=64778&oldid=64723 5* 03Chris Pressey 5* (+1944) 10I don't see "predict parity on the left" being a problem. < 1564390932 242259 :ais523!~ais523@unaffiliated/ais523 JOIN :#esoteric < 1564390935 971618 :ais523!~ais523@unaffiliated/ais523 QUIT :Client Quit < 1564391140 648124 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Since we have an esowiki->IRC bridge, I think the obvious next step would be to build an IRC->esowiki bridge < 1564391169 806943 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Hm. I said that in jest, but now I'm not so sure < 1564391269 214286 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Well, it does sound like a terrible idea. < 1564391344 598396 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`grwp sink < 1564391346 338674 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :helsinki:Helsinki is the capital of Finland. Its main suburb is Hexham, Northumberland. < 1564391359 885984 :int-e!~noone@int-e.eu PRIVMSG #esoteric :`" < 1564391360 606379 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :1229) boily: the proc is invoked. before or after the evaluator transfers control to a certain class of anime characters with long hair and loud music \ 847) The winter solstice is in approx. 13 hours from now the mayans warned us Warned you of what? The solstice? yes < 1564392136 819078 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-fvmvwamynnueoztp QUIT :Remote host closed the connection < 1564392140 435644 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-oxmrtvzktptzecev QUIT :Remote host closed the connection < 1564392146 957680 :wmww!wmwwmatrix@gateway/shell/matrix.org/x-pdockqnpojeaongh QUIT :Remote host closed the connection < 1564392163 278865 :xylochoron[m]!xylochoron@gateway/shell/matrix.org/x-izcoopzzcxmovbaf QUIT :Read error: Connection reset by peer < 1564392175 49821 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Do you know how .a files work? < 1564392185 425574 :int-e!~noone@int-e.eu PRIVMSG #esoteric :beyond them being ar archives, a collection of .o files? no < 1564392193 838994 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I thought they'd be very simple but there's no formal specification and I'm confused. < 1564392214 207713 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(in particular I think there's some magic on top for better indexing) < 1564392437 33445 :FireFly!znc@freenode/staff/firefly PRIVMSG #esoteric :Based on a very quick look at creating one with 'ar', it does look fairly simple < 1564392470 565033 :FireFly!znc@freenode/staff/firefly PRIVMSG #esoteric :and perhaps unsurprisingly, not too far from tar < 1564392514 48587 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm looking at /usr/lib/x86_64-linux-gnu/libfreetype.a, hopefully without loss of generality < 1564392567 597192 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, I think I see. < 1564392642 987196 :wmww!wmwwmatrix@gateway/shell/matrix.org/x-vxraelzmjvobknii JOIN :#esoteric < 1564392685 120707 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :OK, it's a symbol lookup table. < 1564392692 753717 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I was looking in the wrong place. < 1564392781 314042 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :so if I untar an .a file will it create a file for each symbol, please say it does > 1564393042 516398 PRIVMSG #esoteric :14[[07KeyVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64779&oldid=64776 5* 03Void 5* (-9) 10/* Distinguishing features */ < 1564393071 942223 :arseniiv!~arseniiv@136.169.234.37 JOIN :#esoteric < 1564393844 236079 :tswett[m]!tswettmatr@gateway/shell/matrix.org/x-jsgngwyifopekixx JOIN :#esoteric < 1564393844 295844 :xylochoron[m]!xylochoron@gateway/shell/matrix.org/x-mvgifkxidxodrkvx JOIN :#esoteric < 1564393853 637864 :ivzem[m]!ivzemmatri@gateway/shell/matrix.org/x-cmxykylbzvixyrym JOIN :#esoteric < 1564394526 912305 :xkapastel!uid17782@gateway/web/irccloud.com/x-zgjkrhqndejjzbmq QUIT :Quit: Connection closed for inactivity < 1564397337 667079 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So apparently sections aren't used for running a program at all? < 1564397346 79785 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Is it only for debugging? < 1564397634 622413 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ACTION wonders where shachaf is going with all this < 1564397710 482391 :int-e!~noone@int-e.eu PRIVMSG #esoteric :But programs have sections too, don't they... executable bits, read-only data bits, zero-initialized read/writable bits... < 1564397740 138396 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :They have segments which specify what's mapped into memory. < 1564397787 359619 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I thought the .bss section and .plt section and .rodata and so on were used for that but apparently not? < 1564397961 692744 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Writing a compiler, maybe. Or just understanding things? < 1564397977 256713 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There are more important problems in the compiler thing than this, of course. < 1564398142 355359 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Sections are used for computing offsets during linking, I think < 1564398164 670018 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Once those offsets have been computed, the running program doesn't need to care what they were < 1564398169 42715 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :So in that sense they're not used < 1564398207 485734 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Actually I think I mean "segment", don't know if that's different from "section" or not < 1564398288 547814 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think you mean section? < 1564398328 965125 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I might mean section < 1564398333 448299 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :It's been a long time < 1564398359 726314 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Sections are required for object files and optional for executable files, and segments are the other way around. < 1564398597 587860 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :Mostly what I remember is that the .bss section is for uninitialized data. The linker needs to decide where in memory it will be, but doesn't need to give it any particular contents. < 1564398626 8516 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Yes. But apparently the ELF loader doesn't care about it at all. < 1564398684 980724 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :The linker might merge it and other sections into a single segment, as long as there's enough space in that segment for all the variables. < 1564398696 589331 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I really have no idea, actually < 1564398713 941983 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I'm just going from fuzzy memories to plausible inferences < 1564398808 907825 :cpressey!~cpressey@5.133.242.4 PRIVMSG #esoteric :I imagine there are probably a dozen people in this channel who know this like the back of their hand...? < 1564399225 721958 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :. o O (what is more complex, ELF or PE?) < 1564399279 645081 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know PE. < 1564399296 623179 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Though I looked at a PE file today, it seems OK. < 1564399330 942880 :int-e!~noone@int-e.eu PRIVMSG #esoteric :ELF does not contain an a.out stub that prints a useless message. :P < 1564399426 566876 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :You can put whatever you want in there. < 1564399429 859410 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :> 0x3c < 1564399433 264544 :lambdabot!~lambdabot@haskell/bot/lambdabot PRIVMSG #esoteric : 60 < 1564399441 568130 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The first 60 bytes are up to you. < 1564399474 104549 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, no, you need the MZ header, of course. < 1564399481 907231 :int-e!~noone@int-e.eu PRIVMSG #esoteric :superficially they look to be of similar complexity. < 1564399527 882547 :int-e!~noone@int-e.eu PRIVMSG #esoteric :(ELF may have more extensions? I don't know.) < 1564399576 82773 :int-e!~noone@int-e.eu PRIVMSG #esoteric :Though the extensions were mostly special sections, which technically do not increase the file format complexity... just the complexity of making sense of the contents. < 1564399589 192219 :int-e!~noone@int-e.eu PRIVMSG #esoteric :.gnu.hash! < 1564399622 303519 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I thought the .gnu.hash section was used for dynamic linking, but apparently the information is in the DYNAMIC segment which is what actually matters. < 1564400423 278013 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Quit: Leaving > 1564402059 264862 PRIVMSG #esoteric :14[[07Tsb14]]4 N10 02https://esolangs.org/w/index.php?oldid=64780 5* 03Sec-iiiso 5* (+5262) 10Created page with "'''Tsb''' is a programming language that compiles to [[Seabass]] and was made to simplify coding in it, while retaining many of Seabass's design choices. ==Basics== ===Genera..." > 1564402105 545228 PRIVMSG #esoteric :14[[07KeyVM14]]4 M10 02https://esolangs.org/w/index.php?diff=64781&oldid=64779 5* 03Void 5* (+59) 10/* See also */ < 1564402334 618833 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de QUIT :Quit: Leaving > 1564402831 197622 PRIVMSG #esoteric :14[[07Tsb14]]4 10 02https://esolangs.org/w/index.php?diff=64782&oldid=64780 5* 03Sec-iiiso 5* (+225) 10/* General */ < 1564403016 612074 :MDude!~MDude@76.5.108.106 QUIT :Ping timeout: 272 seconds < 1564404348 168872 :FreeFull!~freefull@defocus/sausage-lover JOIN :#esoteric > 1564404845 502231 PRIVMSG #esoteric :14[[07Special:Log/newusers14]]4 create10 02 5* 03Hanzlu 5* 10New user account > 1564405094 40298 PRIVMSG #esoteric :14[[07Esolang:Introduce yourself14]]4 10 02https://esolangs.org/w/index.php?diff=64783&oldid=64693 5* 03Hanzlu 5* (+142) 10 < 1564405209 336656 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de JOIN :#esoteric < 1564405225 976284 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de QUIT :Remote host closed the connection < 1564407343 223415 :MDude!~MDude@76.5.108.106 JOIN :#esoteric > 1564407504 618344 PRIVMSG #esoteric :14[[07ACL14]]4 N10 02https://esolangs.org/w/index.php?oldid=64784 5* 03Hanzlu 5* (+2995) 10Created page with "ACL (Advanced Computer Language) is a language created in 2019. Its memory consists of binary cells, with the values 0 or 1. The commands in the language code are Hexadecimal..." > 1564407598 572211 PRIVMSG #esoteric :14[[07Language list14]]4 10 02https://esolangs.org/w/index.php?diff=64785&oldid=64777 5* 03Sec-iiiso 5* (+10) 10/* T */ > 1564407636 352453 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64786&oldid=64784 5* 03Hanzlu 5* (+14) 10 > 1564408000 14772 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64787&oldid=64786 5* 03Hanzlu 5* (+79) 10 > 1564408162 519612 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64788&oldid=64787 5* 03Hanzlu 5* (+41) 10 < 1564408845 375581 :doesntthiswork!~doesthisw@98-125-168-130.dyn.centurytel.net JOIN :#esoteric < 1564409287 655441 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de JOIN :#esoteric < 1564409327 65746 :Melvar!~melvar@ltea-178-014-120-010.pools.arcor-ip.net QUIT :Ping timeout: 245 seconds > 1564409850 601559 PRIVMSG #esoteric :14[[07ACL14]]4 10 02https://esolangs.org/w/index.php?diff=64789&oldid=64788 5* 03Hanzlu 5* (+338) 10 < 1564410167 229274 :Melvar!~melvar@dslb-188-106-184-179.188.106.pools.vodafone-ip.de JOIN :#esoteric < 1564412217 845311 :cpressey!~cpressey@5.133.242.4 QUIT :Quit: WeeChat 1.4 > 1564412542 996883 PRIVMSG #esoteric :14[[07Renumbering14]]4 M10 02https://esolangs.org/w/index.php?diff=64790&oldid=64761 5* 03DoggyDogWhirl 5* (+127) 10Primer < 1564416155 614575 :FreeFull!~freefull@defocus/sausage-lover QUIT : < 1564416181 232623 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564416355 222360 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 246 seconds < 1564417210 635938 :xkapastel!uid17782@gateway/web/irccloud.com/x-wleperkqrffdtmmn JOIN :#esoteric < 1564417800 720012 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564417972 212417 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 246 seconds < 1564420078 500890 :user24!~user24@p4FCA30BF.dip0.t-ipconnect.de QUIT :Quit: Leaving < 1564420174 637204 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564420199 159393 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Im thinking of creating a computer that uses an esolang as its native machine code. < 1564420222 26044 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Ive already figured out what I would need to do this, thanks to quora < 1564420237 290679 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :But I need an esolang to implement < 1564420329 292912 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :If anyone has an esolang thats simple enough to be workable machine code, and elaborate enough to be used to perform useful computations, I'd appreciate it < 1564420366 843268 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1564420580 843456 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric > 1564420710 132906 PRIVMSG #esoteric :14[[07MISC14]]4 10 02https://esolangs.org/w/index.php?diff=64791&oldid=54347 5* 03Areallycoolusername 5* (-9) 10/* Origin of the name */ < 1564420882 540806 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :Reallycooluserna: I have some ideas, but you left immediately after asking your question for some reason. how do you think IRC works, exactly? < 1564421593 834948 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :`quote < 1564421594 584474 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :330) are there boobs you wack and squeeze around to move the mouse? [...] like those little nipples in laptop keyboards, but they'd be full-blown boobies < 1564422146 232899 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564422327 195885 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 245 seconds < 1564425931 549490 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564426050 170741 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :This is what they do all the time. < 1564426060 314931 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I usually leave after asking a question, since I don't wan to wait on the chat until someone answers. I instead go do something else and wait, and then check the logs for some answers. < 1564426072 949982 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It's also what A did all the time, though the claim is that they're a different person. < 1564426094 682056 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :what did A do? < 1564426293 622669 :Reallycooluserna!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net NICK :ARCUN < 1564426609 16743 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ARCUN: one of your previous questions was pretty mysterious :D let me look for it… < 1564426619 112746 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ah, here it was: Can anyone give me tips as to how to make a good C++ Compiler? < 1564426619 909352 :doesntthiswork!~doesthisw@98-125-168-130.dyn.centurytel.net PRIVMSG #esoteric :ARCUN: you have to leave the channel and wait for the answer or it won't work < 1564426676 577609 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ARCUN: did you mean a compiler written in C++ or (what I thought of) a full-blown compiler of C++ itself? < 1564426803 791808 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :the latter should be a massive task, as C++ is a language wih a huge specification, even if one is to take one of its older versions < 1564426807 550440 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Ping timeout: 260 seconds < 1564426870 695278 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :the former can have some specifics regarding C++, but usually writing a compiler (in a normal language) is more or less the same < 1564427248 551329 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564427329 627519 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I meant writing a compiler IN C++. Writing a compiler for C++ would be the end of me. < 1564427408 422089 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Im asking because I need to make a compiler for a minimalistic esolang for a computer that runs that esolamg as its machine code < 1564427415 769256 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1564428625 682911 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :My program is segfaulting in the ELF interpreter, before getting to my entry point. < 1564428635 66021 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I don't know how to tell gdb to break early enough. < 1564429049 549869 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564429096 690942 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: can you explicitly invoke the interpreter as a program? < 1564429274 801958 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :kmc: What are the ideas you said you had regarding the esoteric computer? < 1564429320 847463 :lldd_!~atrapado@unaffiliated/atrapado JOIN :#esoteric < 1564429463 276667 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :well, it would be easy to implement any simple state machine like thing such as Brainfuck < 1564429467 882631 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :in Verilog or VHDL < 1564429473 231941 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :i've done it actually, loooooong time ago < 1564429526 245430 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :Yeah, I was thinking of a language that used 1 byte constructions, to maximize space like brainfuck < 1564429557 627731 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: I could, but that would go through a different code path. < 1564429565 836190 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :but using brainfuck in an eso-computer has already been done more than twice < 1564429671 53414 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: yeah :( < 1564429688 798756 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :shachaf: inject an INT3 instruction at _start? < 1564429699 801380 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oh, that gives me an odd error message. < 1564429702 419568 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :also, there probably is an obscure gdb option to do what you want < 1564429710 383618 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think it explains what's going on so that's something. < 1564429713 61237 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :what the heck did you even do to segfault the ELF interpreter < 1564429715 578 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :kmc: _start where, in ld.so? < 1564429723 922628 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yes < 1564429735 46581 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :may not have a symbol but I mean whatever its entry point is (which readelf will tell you) < 1564429735 452892 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I guess I can make a copy of ld.so for testing. < 1564429748 988941 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :yes < 1564429758 561890 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I'm generating my own ELF files so it figures they're malformed. < 1564429765 321242 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I also made an ELF file that segfaults gdb. < 1564429782 57803 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :fun < 1564429786 237300 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :good old libbfd < 1564429843 779783 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :No, I'm writing them out myself. < 1564429864 72476 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :what is ELF? < 1564429922 102636 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :It looks like ld.so isn't happy that I wasn't mapping the DYNAMIC segment into memory. Which, I mean, fair enough, I guess. < 1564429933 262181 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it is the file format for executables and libraries used on Linux and many other systems < 1564429937 127647 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Or rather I wasn't specifying its address. < 1564429988 777483 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ARCUN: at its core it is a set of records saying "load this chunk of data to this memory address, with this set of permissions (read / write / execute)" < 1564429995 345427 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :ARCUN: In response to the other day, making a dynamically linked PE file seems a lot simpler, probably because it's required. < 1564430013 9089 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ARCUN: but there are many complexities of course < 1564430035 875926 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564430052 994503 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ARCUN: if you have access to a Linux system then you can run "readelf -a /bin/ls | less" to see some of this info < 1564430064 350532 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :linkers are so complicated < 1564430065 870180 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :and also neat < 1564430074 974149 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :https://www.iecc.com/linker/ < 1564430082 100574 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I'm just starting to use UNIX through cygwin, so i'll look into it < 1564430111 455738 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric : I meant writing a compiler IN C++. Writing a compiler for C++ would be the end of me. => okay, thanks < 1564430147 541248 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :though I personally can’t advice about writing on C++, I don’t know it too well < 1564430161 621879 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :s/ARCUN/arseniiv/ < 1564430183 286077 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ARCUN: cygwin uses native Windows binaries, so they will be PE format, not ELF < 1564430208 449028 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :cygwin is, roughly speaking, a set of userspace libraries which implement a POSIX compatible userspace for the Windows operating system < 1564430211 871856 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :arseniiv: Then what languages do you know? I'm certain you know a language that I know also < 1564430221 579409 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :it's not a Linux/UNIX emulator < 1564430236 201183 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 246 seconds < 1564430237 428495 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :shachaf: where? < 1564430239 474590 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :however Windows 10 also has WSL which runs unmodified Linux ELF binaries through a kernel level syscall translation layer < 1564430271 507641 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :kmc: Then i'll try running ubuntu in a VM < 1564430276 100617 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ah I found < 1564430278 582627 :kmc!~beehive@li521-214.members.linode.com PRIVMSG #esoteric :ARCUN: that is a good way to go < 1564430379 340081 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 JOIN :#esoteric < 1564430381 467748 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :shachaf: I wondered about ELF vs PE because I don’t know either (except that MZ-something header thing, but it’s of course doesn’t matter) < 1564430407 67330 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ARCUN: yeah I have an Ubuntu in VirtualBox < 1564430476 723130 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :though I boot it rarely. I definitely need to make myself more familiar with it for the future < 1564430498 943245 :Lord_of_Life!~Lord@unaffiliated/lord-of-life/x-0885362 QUIT :Ping timeout: 248 seconds < 1564430544 839939 :Lord_of_Life_!~Lord@unaffiliated/lord-of-life/x-0885362 NICK :Lord_of_Life < 1564430662 512340 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :I think I'm still confusil about how things are normally mapped into memory. < 1564430671 868756 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric : arseniiv: Then what languages do you know? I'm certain you know a language that I know also => C#, Python, Mathematica are those I written in more or less recently to not forget them too much. Though of course using Mathematica for a VM is a strange thing. OTOH C# and Python allow one to emit their bytecode (and in case of C#, it would then be JIT’ed, which is good, and in case of PyPy Python implementation it should IIRC be so too, but not s < 1564430671 934915 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :o with CPython) < 1564430676 2701 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :There are typically two loaded segments, right? One rw and one rx. < 1564430699 550252 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Ping timeout: 260 seconds < 1564430725 742635 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :These are presumably both randomized independently. < 1564430760 171380 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The PLT and data and so on would be in the rw segment. < 1564430765 814624 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Are those at a fixed offset to each other? < 1564430832 549747 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564430857 231812 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :arseniiv < 1564430883 110401 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :arseniiv: Yeah I know C#, it was my first language < 1564430909 543529 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :but I use C++ a lot more than C#, so i'll have to brush up on it < 1564430984 477509 :xkapastel!uid17782@gateway/web/irccloud.com/x-wleperkqrffdtmmn QUIT :Quit: Connection closed for inactivity < 1564431047 217354 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :The answer is yes. < 1564431057 446596 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :So I guess some fixed offset is randomized and everything is loaded relative to that. < 1564431080 53828 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :And so everything can just do IP-relative addressing to get at data, which is reasonable. < 1564431368 78651 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ARCUN: then if you are not shy of parser combinators, I’d recommend writing parser/lexer for the language chosen in them, it’s good at least as a prototype thing, and some libraries are as good as to allow writing a parser robust enough to show transparent error messages to user or etc.. Also maybe a useful general advice would be to use Expression trees to get compiled methods out of them without having to use Emit class. They both had poor docume < 1564431368 178905 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ntation when I looked it, but the former are clearer semantically, almost a high-level language. If you’ll use C#, that is < 1564431456 566091 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :there should be some parser combinator libraries for C++ too < 1564431505 55944 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :I'll look into that, since I'd like my language to have some extensions < 1564431521 951617 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :maybe a math library for starters < 1564431935 97353 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :The language I had in mind would be called "Xrk", and it would have logic based on Complex numbers. somewhat based on the "NaNs and Flips flops" paper from http://sigbovik.org/2019/proceedings.pdf#page102 < 1564432105 66544 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net PRIVMSG #esoteric :arseniiv: It would be minimalistic with maybe 6 or less instructions, but would still have a lot of potential. i'll do everything possible to make it not look like Brainfuck < 1564432134 530305 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :ARCUN: I hope so < 1564432257 337192 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :have you seen https://esolangs.org/wiki/7 ? < 1564432359 273511 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :one of my favorite esolangs is FALSE, maybe because it looks pretty writeable/readable (so, not so eso?..) < 1564432379 550428 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Ping timeout: 260 seconds < 1564432437 840399 :arseniiv!~arseniiv@136.169.234.37 PRIVMSG #esoteric :I like [...] from it, though I don’t know if it was borrowed from some more mainstream stack language < 1564432941 245206 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net JOIN :#esoteric < 1564433007 346473 :ARCUN!6cf5fc98@108-245-252-152.lightspeed.miamfl.sbcglobal.net QUIT :Remote host closed the connection < 1564433641 929640 :lldd_!~atrapado@unaffiliated/atrapado QUIT :Quit: Leaving < 1564437146 932546 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564437341 834358 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 258 seconds < 1564438772 881486 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`smlist 1172 < 1564438773 616419 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :smlist 1172: shachaf monqy elliott mnoqy Cale < 1564438777 249070 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Oops. < 1564438780 443053 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :That's not the right list. < 1564438782 75584 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :`olist 1172 < 1564438782 789417 :HackEso!~h@techne.zem.fi PRIVMSG #esoteric :olist 1172: shachaf oerjan Sgeo FireFly boily nortti b_jonas < 1564439278 628541 :Phantom__Hoover!~phantomho@unaffiliated/phantom-hoover JOIN :#esoteric < 1564439426 854909 :Phantom_Hoover!~phantomho@unaffiliated/phantom-hoover QUIT :Ping timeout: 248 seconds < 1564439740 216352 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu JOIN :#esoteric < 1564439756 122983 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :zzo38, ais523: in perl, y/x// also works instead of y/x/x/ < 1564440011 352934 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :ais523: re x86_64 nop and xchg instructions, we tried to figure out how those worked at https://esolangs.org/logs/2019-02.html#lwFc < 1564440274 440552 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :ais523: "on Linux, a .so acts as its own import library, which makes, e.g., circular dependencies between .so files hard to intentionally construct" => is that like how if you want to make circular dependencies between modules in haskell or rust, then you need to write "headers" with declarations, which you normally don't have to do because the compiler can tell the declarations from the object file? < 1564440330 307092 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :whereas in C or C++, you always write header files if you have more than one compilation unit, because the compiler can't read the declarations from the object files < 1564440347 781661 :shachaf!~shachaf@unaffiliated/shachaf PRIVMSG #esoteric :Whole program compilation is TG. < 1564441175 662988 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :oh good, there was a new olist while I was gone < 1564441693 188750 :b_jonas!~x@catv-176-63-25-49.catv.broadband.hu PRIVMSG #esoteric :and a book title too, wow < 1564442139 917387 :arseniiv!~arseniiv@136.169.234.37 QUIT :Ping timeout: 264 seconds < 1564442485 173637 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564442677 850038 :Sgeo_!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 258 seconds < 1564442810 978816 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net JOIN :#esoteric < 1564442954 567094 :Sgeo__!~Sgeo@ool-18b98455.dyn.optonline.net QUIT :Ping timeout: 272 seconds < 1564444576 697734 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :Hm. Is Windows's thing of sys calls being undocumented behind a dll a thing that allows WINE to run in userspace? < 1564444592 18287 :Sgeo!~Sgeo@ool-18b98455.dyn.optonline.net PRIVMSG #esoteric :Like, a reverse WINE would need to run as admin and do some tricky stuff, right? < 1564444753 392807 :doesntthiswork!~doesthisw@98-125-168-130.dyn.centurytel.net QUIT :Ping timeout: 244 seconds