log☇︎
96000+ entries in 0.029s
asciilifeform: this in fact is a practical definition of 'turd' in our context : item that, massage it as you will, is still fundamentally broken by design.
asciilifeform: because the conceptual foundations are retarded.
asciilifeform: any day of the week, thing can be silently and imperceptibly broken.
asciilifeform: that is the fundamental discovery of 25 years of c idiocy.
asciilifeform: it pointedly does not.
asciilifeform: turds do not workharden.
asciilifeform: masssaging of turd -- produces turd, not ferrocement.
asciilifeform: do what you will to trb, it is still written in idiot language that does not check bounds, on idiot iron that does not check bounds.
asciilifeform: the presumption that i have to prove the negative here, is ludicrous.
asciilifeform: how do i know that it does not also propel the earth along its orbit.
asciilifeform: not a single second of time spent reading or massaging shitoshi's liquishit, contributed anything whatsoever to the c machine problem.
asciilifeform: they are wholly unrelated efforts.
asciilifeform: it was all, to date, 100% life support, strictly to forestall http://btcbase.org/log/2017-03-14#1627008 . ☝︎
asciilifeform: mno, 0 of the work to date did anything whatsoever to 'fix c machine'
asciilifeform: the compiler is now gargantuan. and neither it, nor the binaries disasmed, 'fit in head.'
asciilifeform: the down side is obvious:
asciilifeform: one possible 'fix' is ada-shaped -- compiler makes up for the retardations of c machine, inserts array bounds checks, type checks, etc.
asciilifeform: describe the 'fix'
asciilifeform: i also suspect that any system that can be thompsonized, eventually will be (given as it propagates, the transformation is permanent). but that is separate point.
asciilifeform: really reduces to 'any system that doesn't fit in head is trivially thompsonized.'
asciilifeform: that was the only point of contention, from asciilifeform .
asciilifeform: but oughta see that thompson is an absolute bar to hygienic computing ~with gcc~ or any other similarly complex compiler.
asciilifeform: presently i suspect that mircea_popescu has a correct understanding of thompson.
asciilifeform: and then anything with ~it~.
asciilifeform: such as, by at any point building gcc
asciilifeform: BUT the unfortunate bit is that there are ALSO a variety of ways to end up back ~in~.
asciilifeform: etc
asciilifeform: 'it wouldn't do.' 'only a terrorist would.'
asciilifeform: but mircea_popescu has it, there is a variety of ways to break out of a hypothetically thompsonized universe. but -- for some reason -- ~entirely 'not done'.
asciilifeform: the one where 'i can read an eprom without a comp. and write it without a comp. now where is your thompson bomb.'
asciilifeform: anyone remember it ?
asciilifeform: but yes, you can elementarily 'exit the cave' by using grid paper, head compiler, toggles. in fact this was one of the first ( the first ?) threads with asciilifeform on mircea_popescu's www comment section
asciilifeform: (rather than by, as bellard did, compiling with gcc.)
asciilifeform: tcc not so, but only if you bootstrap it by hand-compiling to grid paper and entering via toggles.
asciilifeform: and the latter is largely unexplored
asciilifeform: mircea_popescu: it is conceivable that no one now living has ever used a 'pre-patch' gcc. that's the idea, that 'gcc' is not in fact defined by its src, but by the aggregate of 'the published src' + 'the extant sets of built gccs'
asciilifeform: say it introduces an off-by-one 0.001% of the time.
asciilifeform: 'perceive a change' how ?
asciilifeform: you may be already using it, was the idea.
asciilifeform: (this is an freshman problem)
asciilifeform: and it'll be a 1 byte difference in 1 place.
asciilifeform: mircea_popescu: i can trivially patch gcc such that anything later built that uses any string ops whatsoever, with external inputs, is exploitable.
asciilifeform: ( idiot x86 cpu, means that ~any nontrivial program is multiMB of asm. and hence why i wrote http://www.loper-os.org/?p=256 . )
asciilifeform: because they add up to multi-MB of asm.
asciilifeform: well, if using ANY 'old world' soft -- gcc, emacs, linux kernel, bsd -- that's a 'won't'.
asciilifeform: systems where 'rocket MUST launch and we WILL read asm' -- keep it in sane bounds of size.
asciilifeform: mircea_popescu: nobody reads multiMB of asm.
asciilifeform: or nudge a stack so it overflows if magic number present.
asciilifeform: say, remove array overflow check.
asciilifeform: the problem with applying this principle to c compiler, is that c offers ~permanent~ fertile ground for booby
asciilifeform: take my old example, 'boobytrap an fpga.' elementarily you WILL need to somehow fit an ai in there, to create any serious problem for UNKNOWN bitstream
asciilifeform: phf: the basic theorem involved in breaking out of a thompsonism is specificity-of-diddling.
asciilifeform: unary?
asciilifeform: (picture if two d00dz were sent into two separate dungeons , and promised impalement if they come out with c compilers that produce binaries for particular test program that differ EVEN IN ONE BIT. quite impossible for them to avoid the stake, because c is ~nonstandardized~, in the sense where the standard does NOT specify all cases)
asciilifeform: imho -- ought to have stated this.
asciilifeform: the standards group stopped short of 'any compiler that shits out a bitstring different from the official one for a particular cpu, is nonconformant', however.
asciilifeform: strictly so that they can be thus compared.
asciilifeform: incidentally the folx who designed ada, read thompson's paper. and immediately acted. which is why in ada you get 'driving stick'-style control over the compiler, the order in which it puts down routines, and data structures during 'elaboration', and can leave bread crumbs for manual binary auditor (yes) to look for when he compares (yes) binaries built on different systems for same rocket. ☟︎
asciilifeform: (even if bootloader -- wasn't)
asciilifeform: but whereever in the loop one begins to use, e.g., gcc -- from that point on, thompsonized.
asciilifeform: aha
asciilifeform: gcc (yes even 4.x) will happily remove certain checks
asciilifeform: (incidentally ~all extant c compilers 'thompsonize' and nobody even seems to notice, because it passes as 'optimize')
asciilifeform: trivially.
asciilifeform: thompson's demo worked for arbitrary N layers.
asciilifeform: anything that eats a maybe-inspected input and produces a never-inspected-but-is-executed output.
asciilifeform: i will add to phf's summary -- if the problem afflicted ~strictly~ compilers, it would be quite easy to solve -- write bootstrap in asm. but there is no rule that it has to affect strictly compiler. could just as easily be - say - the ~loader~.
asciilifeform: trinque: so, while machine requires 'blob' to boot (note though, e.g., pdp8, did not, also had hex keypad) -- it is not necessarily true that said 'blob' is not optically readable by human.
asciilifeform: (can simply be row of lamps, and moving photo paper.)
asciilifeform: and such a gadget is not, save for the eprom, in the usual sense 'electronic'
asciilifeform: it is not difficult to build a gadget that dumps an eprom to paper tape
asciilifeform: and rom burners were often boxes with hex keypads
asciilifeform: they asmed on grid paper
asciilifeform: incidentally, in olden days, most folks used no asmer
asciilifeform: ( consider naggum's description -- 'our field does not actually advance, because we are broken people who do not learn from mistakes' or how was it. )
asciilifeform: dun have to take my word for it, can try it yourself, burn a decade like i did.
asciilifeform: you cannot gabriel_laddel your way around the shitfest that is the iron.
asciilifeform: trinque: the x64 box that 'you can get the docs for' is , as i learned experimentally and very painfully -- a strictly imagined item
asciilifeform: (and afaik every 100M nic currently in production)
asciilifeform: trinque: problem is that every gb nic in existence needs a blob.
asciilifeform: ben_vulpes: if i can't connect comp to $othercomp at bus speed - you lost me.
asciilifeform: enemy pumps in new hardware that 'you MUST support, or otherwise you WILL buy your comps on ebay strictly' faster than you can driver.
asciilifeform: you can view the result of the last set of folx who did it, 'movitz', which boots on 0 modern irons.
asciilifeform: it isn't a 'separate matter', it is a lifetime of liquishit pumping
asciilifeform: trinque: the flaw is that you gotta support a megatonne of liquishit for even nic to work -- dma, page tables, etc
asciilifeform: trinque: i stopped working on subj when i utterly failed, after many months of effort, to get an ab initio GB nic driver to exist
asciilifeform: trinque: i suspect that almost everyone here has one
asciilifeform: an off-by-one in array,e tc
asciilifeform: aha. ideally something very simple, that 'looks like typo'
asciilifeform: ( not to say that this is practical, but it would be ~the~ thompson angle. )
asciilifeform: including author's.
asciilifeform: so nobody's checksum fails, etc.
asciilifeform: let's say that every machine that ever saw a linux kernel tarball, since, say, 2002, patched it.
asciilifeform: nah. try different angle:
asciilifeform: per http://btcbase.org/log/2017-02-24#1617495 discussion. ☝︎
asciilifeform: ( the other is to build system out of movable blocks in such a way that it becomes conceptually impossible to build a proper 'surprise' )
asciilifeform: trinque: recall the 'specificity of diddling' thread; inspection is only one of the two known defenses.
asciilifeform: was just another set of derps.
asciilifeform: crapple was not, in '80s, what it is today.
asciilifeform: mircea_popescu: quite conceivably commodore inc would have won -- and pc would come with schematics and signal chart.