IRC channel logs

2020-10-11.log

back to list of logs

<OriansJ>M3-Meteorite now is correctly finding and applying relocations; (although I am sture it needs more refinement at doing that correctly) all that remains is the writing of the leading header, the segments and the symbol table to disk.
<OriansJ>So nothing hard but boring
<OriansJ>(correction M3-Meteoriod)
<OriansJ> https://github.com/oriansj/M3-Meteoroid
<xentrac>congratulations!
<xentrac>when it lands it'll be m3-meteorite?
<vagrantc>hah
<OriansJ>./bin/M3-Meteoroid-x86 -f tmp/cc_x86.o -P will show preprocessed and ./bin/M3-Meteoroid-x86 -f tmp/cc_x86.o -p will show after relocations being applied
<OriansJ>xentrac: well I needs to be smaller than M3-Comet (which wil be the assembler)
<xentrac>haha
<OriansJ>^I^it^
<xentrac>I really just want an M3-primordial-black-hole
<OriansJ>xentrac: the last one will be M3-Star (with possibly M3-Gas-Giant being the C preprocessor)
<xentrac>heh
<OriansJ>M3-Black-Hole would be me having gone mad and attempted to bootstrap Haskell in M2-Planet
<xentrac>well, the thing about primordial black holes is
<xentrac>they can be very much smaller than regular black holes
<xentrac>smaller than a proton, even
<OriansJ>xentrac: then you can't have it in M3 form; because it would be smaller than hex0
<OriansJ>as all M2-Planet binaries are bigger than hex0 because they include a symbol table and other ELF extras
<xentrac>symbol tables improve quality of life
<OriansJ>The bare minimial M2-Planet program is: void main() {}
<OriansJ>which will reduce down to just a function label and a return; then when you link with the required libc.M1; it'll setup the stack and then call main and on return call exit
<OriansJ>and I am not clever enough to xadd loop my way to getting negative bytes in size
<OriansJ>(for those not familiar with x86 assembly: xadd r0, r1 will add r0 and r1; copy r0 to r1 and then set r0 to the sum) putting a #number in ecx and calling loop will result in a 2 instruction implementation of the fibonacci sequence that is only 5bytes in size (assuming eax and ebx are initialized to 1 prior to the loop)
<OriansJ>correction eax to 1 and ebx to zero
<OriansJ>why Intel burned an opcode on xchg and add; when add ebx, eax is 2 bytes and xchg ebx, eax is 1 byte (Thus no difference in size)
<OriansJ>I don't get; unless fibonacci was too important of a metric to not have a speicalized generally useless instruction but not important enough to just do instruction fusing transparently
<OriansJ>Or maybe I just over think it
<OriansJ> '0fc1d8 e201' vs '01c3 93 e201'
<OriansJ>wow I just realized I failed to hit enter and push the M3-Meteoroid commit to github
<OriansJ>I think I should just call it a night
<OriansJ>morning
<xentrac>hiya