log☇︎
174700+ entries in 0.038s
asciilifeform: you still gotta cache the disk.
asciilifeform: even if you make the networking go over slip (yes, it has uart driver! behold)
asciilifeform: if it were to be sat upon actual iron, it would very quickly come to resemble minix3.
asciilifeform: it is sorta like minix1
asciilifeform: thing is, it only looks sexy because there is nothing sitting on it
asciilifeform: anyway i'll be the last to cry for tcp.
asciilifeform: ('can throw bytes from point a to point b and back and they get there in order')
asciilifeform: let's rephrase, it relies on the pipe abstraction
asciilifeform: bitcoin as presently existing rides on top of tcp.
asciilifeform: hm?
asciilifeform: and it's still a mega-turd
asciilifeform: the smallest known tcp stack is that swedish one
asciilifeform: to build bitcoin ?
asciilifeform: and you get linux.
asciilifeform: http://log.bitcoin-assets.com/?date=05-11-2015#1316953 << add a network stack, nic driver, disk caching (without which no real time bitcoin), then the unspeakable horror of even the smallest known incarnation of libc... ☝︎
asciilifeform: which is what reading, e.g., linux kernel, or gpg, feels like
asciilifeform: reading this thing i - astonishingly - don't feel like i'm chewing on gravel
asciilifeform: interestingly, multiprocessor is supported.
asciilifeform: ditto drivers for any kind of actual iron beyond the interrupt controller and bare bones ata
asciilifeform: adding tcp would prolly double or triple the mass, though.
asciilifeform: which could handily compile itself in a few mSec on boot.
asciilifeform: because then it's a complete and almost usable os.
asciilifeform: i wonder if anybody's ported fabrice bellard's tinycc compiler to this.
asciilifeform: isn't it a marvel, what these looked like before the cancer ?
asciilifeform: 'cat' is 38 lines.
asciilifeform: ^ ~100 lines.
asciilifeform: https://github.com/ahorn/xv6/blob/master/grep.c
asciilifeform: https://github.com/ahorn/xv6/blob/master/kill.c << example of why lions book was a thing
asciilifeform: https://github.com/ahorn/xv6 << for those who must read in www browser..
asciilifeform: if that's living.
asciilifeform: i thought he was dead...
asciilifeform: robert morris of all people.
asciilifeform: ^ the animal in the lions book, rewritten for x86.
asciilifeform: all-process table. Similarly, there’s no malloc() in the kernel, but rather just a page allocator. The pipe implementation copies one byte at a time. Amazingly, even the bootloader is a pleasure to read. Another nice thing about Xv6 is that it comes with a short textbook that explains OS concepts in terms of their implementations in Xv6.'
asciilifeform: 'Xv6 is a rewrite of v6 UNIX in modern C that runs on multicore x86 chips. It compiles in a couple of seconds and is trivial to boot up in QEMU. It took me a while to see the genius of Xv6, which is that it is simpler than I would have thought a working multicore OS with shell and filesystem could be. For example, it lacks wait queues and ready queues — in Xv6, both wakeup and scheduling are accomplished by looping over the
asciilifeform: turned it up ~by accident~ while looking for entirely unrelated thing.
asciilifeform: ;;later tell mircea_popescu finally dug up the sysv6-on-x86 thing. http://blog.regehr.org/archives/1114 ☟︎
asciilifeform: considerably more so than, e.g., knuth's, garbage collector.
asciilifeform: in other 'news', malloc is very very complicated.
asciilifeform: so no, won't bet.
asciilifeform: i don't personally expect to see 2019.
asciilifeform: hey it mostly dropped sport crud
asciilifeform: BingoBoingo: i'm still waiting for the magical 1986 or so of our day, when thinking people stop even recreationally giving a shit about the stuffed shirts
asciilifeform: l0l aha
asciilifeform: the one that killed hp
asciilifeform: wat about the chick
asciilifeform: this happens regularly enough.
asciilifeform: why ever any time else?
asciilifeform: mount at warmup.
asciilifeform: ^ aha.
asciilifeform: (see old threads where we beat this to a liquid pulp)
asciilifeform: of a mechanism which ought to work this way
asciilifeform: mempool is a great example
asciilifeform: everything on your box that can safely behave this way, pretty much already does.
asciilifeform: e.g., your nic's buffers
asciilifeform: mircea_popescu: an allocator that knows that it is acceptable to lose some old bits is called a circular buffer and behaves like a looped tape, yes
asciilifeform brb, food
asciilifeform: mircea_popescu: then you will love the current thread...
asciilifeform: in fact, a battlefield bitcoinatron has no business having a conventional 'userland' at all.
asciilifeform: trinque: neither really belongs there.
asciilifeform: and it won't be a matter of a few changed lines, either.
asciilifeform: ... not that the thing is in any way close to being pogoizable
asciilifeform: but it does NOT make sense for it to evolve in the direction of being 'a good unix util'
asciilifeform: moreover, since unix has no future, but unfortunately we are stuck with a junkyard of rusting x86 and arm boxes, it makes sense for bitcoin to evolve in the direction of being an os
asciilifeform: if that.
asciilifeform: phf: log in the airplane 'black box' sense only.
asciilifeform: to pogo.
asciilifeform: my argument here is not that the behaviour of the classic debug log is a beautiful thing, but that any change to bitcoin that MAKES MANDATORY the presence of so much as an 8kB proggy on the machine, is LETHAL
asciilifeform: if it's 8kb that's too much.
asciilifeform: (why waste the precious ram on that ??)
asciilifeform: prolly not.
asciilifeform: because ANYTHING is too big
asciilifeform: trinque: i don't even know how big it is, but will tell you that it is too big for pogo.
asciilifeform: see, the whole 'unix philosophy' thing would be considerably more interesting if we had a machine where it actually... worked.
asciilifeform: trinque: and when it runs daemonized ?
asciilifeform: i have machines here where the size of the log approaches the size of the blockchain.
asciilifeform: a) a wedged node still pisses into the log b) log contains tx ids, many of which correspond to nothing that ends up in the blocks
asciilifeform: think about it
asciilifeform: no
asciilifeform: and it was not deemed acceptable for the box to ever not be recording.
asciilifeform: because guess what, finite tape fits in box.
asciilifeform: trinque: you do know that aircraft crash boxes traditionally ran the tape in a loop, right ?
asciilifeform: ^^^^^^^^^ guess from where ^^^^^^^^^
asciilifeform: #error "--enable-m-guard does not currently work" ☟︎
asciilifeform: if( a ) {
asciilifeform: #ifdef M_GUARD
asciilifeform: esp for mircea_popescu:
asciilifeform: but this is pure gold,
asciilifeform: unrelatedly,
asciilifeform: how do you propose to do this ?
asciilifeform: yet it still makes sense to have a small 'crash recorder' sort of log, for when it shits itself.
asciilifeform: in orbit
asciilifeform: it is poured into cement.
asciilifeform: there is no human user on, e.g., pogo.
asciilifeform: trinque: you don't ever flush your toilet ?
asciilifeform: we threw it out, because it is really a harmful thing, but later ended up with an impression that it will have to be - in a separate process, yes - put back, if pogo is to be deployed to civilian households
asciilifeform: *concerning
asciilifeform: trinque: this is reminiscent of the thread concerining upnp.
asciilifeform: in any form.
asciilifeform: on a machine like pogo it does not make sense to produce the log at all ☟︎