log☇︎
257800+ entries in 0.167s
asciilifeform: http://www.osdever.net/documents/WritingDriversForTheDP8390.pdf?the_id=56 << back in the day, they even had asm snippets in the ds.
asciilifeform: nah that's many. the one kid is that one who eats bugs without dare.
phf: sort of like there was always that one kid who'd eat bugs on a dare
phf: all that analogy did for me is that every time i think asciilifeform, i remember the fucking spittoon
phf: well, main question is what you going to plug isa into :p
asciilifeform: to the point that i have nfi even if the linked driver runs at all.
asciilifeform: but they involved iron that is no longer obtainable in any qty.
asciilifeform: it isn't impossible, there were various experiments, e.g., https://github.com/dym/movitz/blob/master/losp/x86-pc/dp8390.lisp
phf: in terms of what movitz offers of course (without bringing in pre-compiled C blobs)
phf: you're saying it's straight up impossible (or approaching that) to get, say, movitz doing networking on real hardware hardware, and i'm calling shenanigans
asciilifeform: how would you deal with the nic
asciilifeform: well let's work the example phf
phf: why would i even entertain that thought, it should be quiet clear at this point that i've at no point suggested or plan to use C in a lisp os
asciilifeform: for one thing, you're then stuck with linux's pci and interrupt stack.
asciilifeform: no thx.
asciilifeform: how? by masamuneing the thing into a c turd ?
phf: ok, but nobody here thinks that, the whole point i'm trying to make is that there are ways to overcome the ennui to do what needs to be done
asciilifeform: and this is absolutely sop.
asciilifeform: consider how the thing expects real-time (1000s/sec) interrupt handling, but ALSO has 1,001 places where you must busy-wait for some register bit to flip
asciilifeform: working with the 8168 woke me up to the fact that i was wrong when naively thought that hardware were still made by sane folk
asciilifeform: it is possible to make a very useful box where ONLY cpu/ram and nic work.
phf: ok, you've convinced me that all is hopeless and there's no point in trying
asciilifeform: where you don't need the 30k lines.
asciilifeform: the thing doesn't fallback to some 'pretent it is 1995' mode
asciilifeform: again, this isn't a case of 'it'll be a 10baseT until i get around to X', it's a case of 'init or go cry'
phf: if your nic can't accomodate for those things, then your computer can't do those things, but it might not be a problem for the first year
asciilifeform: at any rate, i would have implemented a 10baseT nic driver, IF ANYONE COULD SOURCE THE FUCKING CHIP
asciilifeform: nope. describing the various uses of a comp
phf: you're just shifting targets here
asciilifeform: phf: if you'd like to try to, e.g., bitcoin, on a 10M nic, be my guest.
phf: i'm not convinced that this is not the case of "mp's t40 is too old and slow"
asciilifeform: this is the kind of thing that drives folks to the bottle, to the nuthouse.
asciilifeform: ^ does not successfully run any example of the actual chip i was able to get my hands on.
asciilifeform: oh did i mention that i surveyed other folks' attempts, e.g., https://github.com/ReturnInfinity/BareMetal-OS/blob/master/os/drivers/net/rtl8169.asm
phf: i've had on linux nic drivers before and in 2005 or so not all of them were 20k+ lines that's for sure
asciilifeform: i had ~all the extant ones brought in (this was a commercial project) and obtained data sheets, etc.
asciilifeform: it is a mythical thing, that does not exist on the market.
phf: until i can get ~that~ to work rather. then i wouldn't be as pressed to get r8168 working or bust
asciilifeform: phf: what target ?
asciilifeform: any and all of these are opportunities for deadlocking.
phf: why would i think that? i'd probably go to a lesser N/s target until i can get it to work
asciilifeform: oh and witness the sheer number of busy-waits, e.g., https://github.com/mtorromeo/r8168/blob/master/src/r8168_n.c#L4885
asciilifeform: and if you think the bios does this for you, you're probably posting from 1995.
asciilifeform: oh did i mention that the pci bus has to be correctly set up also ?
phf: can you attempt a warm up multiple times without power cycling?
asciilifeform: everybody simply took vendor's magic routines.
asciilifeform: i suspect that NO ONE has ever drivered this thing from scratch. not the winblows folks, either.
asciilifeform: if the thing dun go, there is physically no way to determine why it dun go.
asciilifeform: none of the warmup process is in any sense debuggable, either
asciilifeform: phf: the thing needs real-time interrupt handling just to init.
asciilifeform: and ended up with a thing that, per the data sheet, ought to work, but never did.
asciilifeform: i actually sat for 6 months or so and reimplemented this thing in asm
asciilifeform: i hunted for years and found what imho is the simplest GB/s-capable nic, the rt8168. here is the linux driver, https://github.com/mtorromeo/r8168/tree/master/src ☟︎
phf: fwiw save-lisp of nic state and disk controller state is always a question of degree. either will have to be re-initialized in general, same way as it's careless and possibly meaningless to "save state of running lathe with a component"
phf: slightly less liquid shit though :p
asciilifeform: and massive layer of gas mask (with many holes) between them.
asciilifeform: where there's a lisp layer and a liquishit layer.
asciilifeform: welcome to lisp on linux.
asciilifeform: lemme guess, your save-lisp would just ignore the peripherals, which get inited every time.
asciilifeform: (and many of the ones that are, don't read correctly)
asciilifeform: how will you save the nic state registers ?
phf: if i were to bootstrap a lisp os from nothingness, i'd just save-lisp over network (or to a drive, depending on which one i figure out how to do first) every once in a while, and yes it's eww and completely suboptimal, but it'll be enough for me for a "i can do practical shit with this system"
asciilifeform: and with networked 'disk' this is a regular thing.
asciilifeform: and box that has persistent storage drop out from under it, ever, for any reason, is in a sad state.
asciilifeform: the realities, as often is, differ from the idealities.
phf: genera it up all the way
asciilifeform: not if you want to do anything resembling, say, bitcoin node.
asciilifeform: phf: unfortunately is is ~not~ possible to do without, e.g., disk dma.
asciilifeform: phf: it is possible to make a useful machine with 0 video (serves x11 over nic).
asciilifeform: cue mircea_popescu: 'it works great on my t40! 640x480 is enough for anyone'
phf: if bios driven 640x480 is good enough for terry davis, it's good enough for me
asciilifeform: (i.e. sans proprietary turds)
phf: take movitz, take lice https://web.archive.org/web/20080624230234/http://www.emmett.ca/~sabetts/, add tcpip stack to it, add irc. what else one needs for tmsr-ing ☟︎
phf is finally free to go get breakfast
mircea_popescu goes away to punish someone for something.
mircea_popescu: see, but this isn't supposed to be a comparison of fucking emotional states.
asciilifeform: http://support.amd.com/TechDocs/42301_15h_Mod_00h-0Fh_BKDG.pdf << and before anyone asks, it is neither available in any other format, nor accurately convertible -- is sufficient illustration of my point. flip through it and weep.
phf: fwiw i went through the same exercise, and on account of being less of a depressive came out with different attitude
mircea_popescu: just pointing out that without the exact formula described, knowledge's not terribly useful, and deifnitely not well communciable.
asciilifeform: mircea_popescu: a good chunk of what i've done here since showing up is to try and fill in the gaps in the 'pioneer with arrows in his back' part of my www.
mircea_popescu: learn to document in that format because else we're stuck redoing your work while you sadly cry on the side.
phf: because linus wanted to telnet to his university machine, he could do his jerking off on a remote system, while chipping away at his surrounded setup
asciilifeform: phf: linux wasn't trying to multiprocessorate every arithmetic instruction etc.
mircea_popescu: asciilifeform i was looking for something stictly in the following formula : as part of trying to execute subset X of task Y part of recognizable-primitive Z because so-and so, i came to the method k for theoretical reasons t1 throiugh tn ; attempting to implement it i encountered situation Q even through this makes no sense ; trying to adapt it i encountered exception Q.e1 which is contrary to design philosophy, and attempti
phf: in case of linux reasonable baseline was a dialup telnet
asciilifeform: i have the dead trees, they fill most of a shelf.
phf: well, the main question is "what's a reasonable baseline" to keep you inside the os long enough so that you can keep hacking at it
asciilifeform: which is not at all like the naive, reasonable conception pictured here.
mircea_popescu: you documented any of these somewhere, so phf doesn't need to do himself ?
asciilifeform: yes. and it made sense to me in '07. but not in '10 when i understood how the actual extant pc iron works. ☟︎
mircea_popescu: d per se. except in the benefit that its checks will progress this much faster.
mircea_popescu: in lisp as discussed here, and generally, a lot of checks are to be performed. this happens to jive well with a matrix calling system for functions and the muiticore design of cpu. because you as lisp will just a) maintain a matrix of all checks to be perfromed as functions and b) keep them permagoing on all processorss. so this way, the cpu count influences internal parallelism in the os, and thus os speed ; not program spee
asciilifeform: no, it was a ~reasonable~ point, but when you go and try to actually implement it, on actual iron, it drives you to nuttery. because the thing is encrusted with unfathomable layer of undocumented turdolade and 'no this doesn't actually work, because fuckyou'
mircea_popescu: in c, no checks are performed and you're welcome to go fuck yourself. consequently, c exposes internals of cpu to user, so as to better hang himself. as seen eg in case of eulora client usage of one core and a trillion other places.
mircea_popescu: yea, this is a nutty point, so let me write it out in detail.
phf: mircea_popescu: i missed the point
mircea_popescu: phf this is not at all waht i meant.
asciilifeform: let's say the 8 cores operate on same memory location. how do they maintain cache coherence when writing output ?
phf: mircea_popescu: well, from that perspective "no threads!!" is kind of irrelevant, because it's just less things to try and get operational on raw hardware. pretty sure nyef had to pull threads from sbcl when trying to get it running on raw hardware..
mircea_popescu: in short, unwittingly perhaps, the extant x86 architecture ACTUALLY FAVOURS running a lisp machine over running a c machine.