log☇︎
18100+ entries in 0.004s
asciilifeform: mircea_popescu: would work
asciilifeform: BingoBoingo: couldja plox add the billing calendar (with the hash-pseudonymised subscriber names from earlier) to the public www ? so folx dun have to ask why they're being billed at time t and for what
asciilifeform: mircea_popescu: believe or not, there are ancient moldy irons without interrupt controllers.
asciilifeform: mircea_popescu: good chance to fill the stack
asciilifeform not tested.
asciilifeform: aa
asciilifeform: recall, zcx dun support async apparently at all, anywhere
asciilifeform: zcx ? or longjmp ?
asciilifeform: i dun see why you'd care, tho, unless game ~client~ also gotta thread.
asciilifeform: diana_coman: iirc winblows ~also~ only zcx.
asciilifeform: not that i aint willing to port to e.g. vax or whatever. for a fee..
asciilifeform: currently i have 0 intention of supporting the thing on sad platforms, folx who insist on crapple or microshit oughta do it with own hands
asciilifeform: dynamically links.
asciilifeform: diana_coman: ffacalc fwiw builds an' runs on crapple, but only in 'debug' (misnomer, you can't actually debug..) mode
asciilifeform: or static linking.
asciilifeform: gdb, for instance, doesn't.
asciilifeform: diana_coman: gnat on crapple , i am surprised that it worx at all.
asciilifeform: will be interesting to see what comes of this. if cost remains small , it hardly makes sense to bother with 'zcx' then
asciilifeform: makes sense.
asciilifeform: hm. would seem that the cost delta is very small, then.
asciilifeform: i.e. only affects cpu cost of exceptions, rather than all jmp.
asciilifeform: diana_coman: i suspect then , that i was right re http://btcbase.org/log/2019-02-12#1895287 ☝︎
asciilifeform: diana_coman: when that thing is done running, plox to tar it up, i'ma replicate on other irons ( if effect is cache-sensitive, may show diff b/w irons )
asciilifeform: http://btcbase.org/log/2019-02-12#1895366 << hm what was the runtime ~with~ longjmp ? (or still going ? ) ☝︎
asciilifeform: ( fwiw i (and other ru warez folk) like ancient at&t 'djvu' format, it is moar or less jpeg with optional ocr searchable track. a 300MB pdf turd becomes a 2-3MB djvu. )
asciilifeform: http://btcbase.org/log/2019-02-12#1895198 << btw diana_coman , if you know of other readables , plox to post (or at least the titles, i can dig up with own hands ) ; i oughta have posted burnes et al earlier, but seems like errybody is allergic to scans , so didn't hurry . and lemme know if you end up wanting others, i have the 'spark' text for instance. ☝︎
asciilifeform: guten tag BingoBoingo
asciilifeform: in e.g. airplane, 'exception' should mean that the entire comp shuts down and transfers control to 1 of the hot spare duplicates. ☟︎
asciilifeform: ( at which point, the job of the proggy is to 1) tell operator ~which~ iron smoked 2) come to full stop, failing 'deadly' or 'safe' depending on design context )
asciilifeform: imho a proggy should not ever produce exceptions during normal operation, unless iron smokes.
asciilifeform: ( and in the FG reader -- again cuz the underlying i/o routines produce'em )
asciilifeform: ( ffacalc ~does~ have a handler, strictly for trapping invalid cmdline args, ln. 75. )
asciilifeform: ( invoking coad ~can~ use handling, if it wants, the lib itself duncare about this )
asciilifeform: the part i dun use is 'handling', they dun get handled, they go to the last-chance trap where proggy stops.
asciilifeform: ( and since nobody asked 'where exactly does ffa use exceptions? i dun see any throws' -- answr is, ~all~ ada coad where bounds checks are enabled, theoretically 'uses' exception, if you break a bounds check what do you suppose happens.)
asciilifeform: btw, if you use exceptions, erry thread needs own last-chance exception eater (they dun cross thread boundaries)
asciilifeform: both
asciilifeform: i usedta have a collection of these, threw out, got trdious
asciilifeform: and so forth
asciilifeform: 'my thesis advisor ate my pet fish'
asciilifeform: 'my thesis advisor heils hitler, wat do'
asciilifeform: mircea_popescu: i associate shitoverflow with articles like 'how do i cast 'fireball' in real life?' ( actual find ) ☟︎☟︎☟︎
asciilifeform: lol!
asciilifeform: ( or didactic? )
asciilifeform: where was this?
asciilifeform: lolwat
asciilifeform: mircea_popescu: you dun make timeouts using magic periphs, but using the os scheduler ( which in turn uses interrupt controller , having oscillator of some form so you can do slices )
asciilifeform: mircea_popescu: this is an ancient evil, was called 'abstraction inversion'
asciilifeform: hrm i can't actually think of a periph that 'wants to know time'
asciilifeform: ^ see also
asciilifeform: !#s dma
asciilifeform: or, even moar egregiously, ~of other periphs~
asciilifeform: on raw irons tho, gotta have a mechanism that actually 'ada', given as that's the only scheduler you have, unless baked new
asciilifeform: i/o arguably is always 'not ada' when on unix box ( see ave1 for detail )
asciilifeform: just need a working timeout in the read call
asciilifeform: nah
asciilifeform: rather than the enclosing thread
asciilifeform: seems to me that the correct layer for timeout is the i/o call
asciilifeform: but also agree with mircea_popescu , you gotta have a way to halt a wedged device i/o at least.
asciilifeform did point out, this, in the 'order son to seppuku' thrd
asciilifeform: i use'em as strictly as equivalent of the red lamp
asciilifeform: imho it aint
asciilifeform: ( in ffa, exceptions are a 'catch fire' condition, and drop into the last-chance handler, but in moar complicated proggy, with, say, devices, you may want to actually handle and keep working )
asciilifeform: this always costs
asciilifeform: mircea_popescu: recall that an exception differs from other control transfers in that it can unwind the call stack
asciilifeform: should've stuck to e.g. 'short jump'/'long jump' mode or similar
asciilifeform: diana_coman: it's a riotously inept naming yea
asciilifeform: imho elaborately propagating ( rather than catching in exactly 1 place ) exceptions is bad idea on any platform
asciilifeform: loox ideal imho
asciilifeform eaten log.
asciilifeform: sounds like Right Thing
asciilifeform: aa yea finally read to that pt
asciilifeform: oughta suffice for test
asciilifeform: serpent will do tho
asciilifeform: two nested loops!111
asciilifeform: i.e. try with simply the wrappings.
asciilifeform: mircea_popescu: in that sense ideal test is empty loop, rather than loop containing an item that is simply heavy but not on acct of jumpism
asciilifeform: so it's a poor test of hypothesis of 'does longjmp runtime nail speed of jumps'
asciilifeform: http://btcbase.org/log/2019-02-12#1895272 << serpent dun have many jumps in it, recall, it's unrolled, even fewer jumps (conditional or otherwise) than ffa ☝︎
asciilifeform: iirc on unix it uses standard posix signals, on raw irons, whichever interrupt system the chip provides
asciilifeform: https://archive.is/HpVWP << likbez re the interrupts mechanism, if we end up wanting to try such thing. ( a bare-iron gnat will ~have~ to use it, for basic machine i/o handling, so asciilifeform is doomed to test it sooner or later , fwiw )
asciilifeform: currently diana_coman is the 'test all gnat knobs' pioneer; asciilifeform's item is deliberately spartan re what is used, as it was designed to run even on e.g. msdos, where there are no threads
asciilifeform: ( just as not yet used task system prior to diana_coman uncrating it )
asciilifeform: had not yet had occasion to put to use.
asciilifeform: looked but not tested.
asciilifeform: it shits a signal handler into the obj. same as you'd have if you were writing daemon in c.
asciilifeform: it's a standard pkg, rather than gnatism (i.e. also worx on raw irons, anyffin with an interrupt controller)
asciilifeform: mircea_popescu: there's also the ada.interrupts package, which actually sets up signal handlers. if all you want is emergency stop of thread, that'll do it
asciilifeform: mircea_popescu: the obvious use case is e.g. dead FG
asciilifeform: i think mircea_popescu is suggesting to try with ~input~ block
asciilifeform: diana_coman: specifically http://btcbase.org/log/2019-02-12#1895105 ☝︎
asciilifeform: (i.e. delay-abort test worx from it)
asciilifeform: err, an async-select control transfer point
asciilifeform: but that actually makes an abort point
asciilifeform: it blocks (for short time)
asciilifeform: diana_coman: correct, if you throw e.g. a put_line in there, the async select worx (from which you can then abort)
asciilifeform: ( the idea is, i suspect, that if you have one of ~these~, you fucked yer own proggy at time of writing )
asciilifeform: the 1 thing that you can't async-stop in the zxc model, looks like, is a straight loop with no i/o
asciilifeform: gnat seems to add a stop point when you invoke those
asciilifeform: interestingly