10500+ entries in 0.008s

mircea_popescu: var selectedTextBox = (TextBox)sender, if (IsAdmin) { selectedTextBox.Enabled = true; selectedTextBox.Text = superSecretPassword; } else{ selectedTextBox.Clear();}
mircea_popescu: asciilifeform how's it to have timeout if it doesn't know time ?
mircea_popescu: topnode evaluation ~can NEVER~ depend on lowernode value.
mircea_popescu: and so on, this constant up AND DOWN the tree calling paradigm recreates c++, java and usg necessarily.
mircea_popescu: see, cuz things flow a certain way. "we want to include morons, retards and other bureaucrats" --therefore--> "smartphones" and "ntp" and so on.
mircea_popescu: the issue of having every god damn peripheral aware of time is another fucking bojum
mircea_popescu: (yes, the objection stands, "mp, ada machjine long way off because all peripherals are c-machines". sure, they are. we also make items.)
mircea_popescu: asciilifeform but then i gotta what, write my own drivers/kernel mods for every peripheral ?
mircea_popescu: but in any case one can't have an ada machine without working abort (which specifically means, NOT import the c consrtruct, cuz wtf am i gonna do.)
mircea_popescu: ie, two layers are needed to implement the citizen/foreigner distinction.
mircea_popescu: seems to me self-evident that there's need for exactly two layers of exception handler : a) our code fucked up, in which case end it all or else b) some ~item~ such as whatever, a fg fucked up, in which case REPORT THIS TO ME, don't wait for it forever./
mircea_popescu: because in truth, abort is the wrong solution in 999 cases out of 1k
mircea_popescu: it's not clear that the complex exception handling mechanism with propagations and whatnot that eventually yielded the "try/catch" mechanism exposed in fucking code is ~at all useful~.
mircea_popescu: but really, it's just handler unrolling/inlining, depending how you look at it. ie, zcx is a ~concept~, much like "unrolled loops" or w/e.
mircea_popescu: not all archs work well for this, and evidently not all implementations are fucking useful.
mircea_popescu: diana_coman in ~principle~ zero cost exception handling is this thing : ~instead~ of calling code when exceptions arise, you instead unroll all calls in place, where exceptions might arise. this way you don't get a run-time penalty (because you paid for it in code space)
mircea_popescu: the most valuable (from a timing perspective) loops are the innermost ones, because they get jumped in and out of hundreds of tyimes.
mircea_popescu: the design calls for 20 loops each spawned by an if-even test.
mircea_popescu: i wanted something in there of a little heft to make sure we're not being optimized or w/e.
mircea_popescu: well, someone else gets to rage in the logs for a while.
mircea_popescu: yeah but i have nfi what it shits into the obj code, and so on. but not off the table, no.
mircea_popescu: i guess, though i am not sure the correct approach is adding packages.
mircea_popescu: and fixing means ~have it handle all sigs~ wtf bs half-job is this.
mircea_popescu: anyway, it's fucking insulting as all hell, this zcx implementation. i suspect we will have to fix it anyway, because it is not really feasible to NOT have one, on irons that support it.
mircea_popescu: exactly what i had in mind for "hey diana_coman check this" if you returned true.
mircea_popescu: nah, we need to test this properly, with a macroscopically blocking item
mircea_popescu: problem is you can't put a delay 0 ~inside~ the only thing we fear, which is unix peripheral calls.
mircea_popescu: enjoy our zero cost health services from the confort of your own home!
mircea_popescu: ima brb make some zero cost public services. like the zero cost garbage pickup, and the zero cost hospital, and so on.
mircea_popescu: this is what i was coming to : do you have a better approach to evaluating the putative sjlj runtime cost than the above thing diana's implementing nao ?
mircea_popescu: asciilifeform afaik it actually slows down everything, exceptions or not. because jumps are slow.
mircea_popescu: "we manage to provide zero cost exceptions to the user's environment through the simple procedure of just not handling any"
mircea_popescu: fucking lulz of all time. zcx : zero cost exceptions!!! it's like the zero cost restaurant : you don't have to pay anything and htey don't give you any food.
mircea_popescu: a thing you keep re-serpenting. 64 bit string, w/e, starts as null
mircea_popescu: 50 + 50 + 50 by the time you've used 20 letters you got the k.
mircea_popescu: right, something like the above, has buncha branches and iterators, not hard to write, get it to run 1k times or so and lessee.
mircea_popescu: wrap it in a few for and if clauses, something like like for( a = 1; a < 100; a = a + 1 ){ if a is even then for( b = 1; b < 100; b = b + 1 ){ ... collector = serpent(collector) }}}
mircea_popescu: diana_coman do you have a non-trivial (non-huge) ada that you could run once with sjlj and once with zcx in a timing harness so we can get some data ? ideally something that takes 100-1000ms or so.
mircea_popescu: of course, that's when they moved to unicode. but if memory serves, dwarf2 was kinda braindamaged in some corner cases i now don't recall.
mircea_popescu: (i expect it will stop, yes ; but the q is, even slower than good old sjlj perhaps ?)
mircea_popescu: diana_coman what happens if you actually put a pragma Abort_Defer in the loop ?
mircea_popescu: diana_coman possibly because of how they do that binder table bs
mircea_popescu: so basically, gnat runtime needs an hero to implement dwarf-3 for it, ditch this entire "zcx" nonsense nobody heard about (and apparently for good fucking reason, it's made for z80s or something)
mircea_popescu: diana_coman this is so fucking retarded, "our thing does not implement the standard". RATIONALE ?
mircea_popescu: just, i don't think it can be whipped into a workable exception handling mechanism.
mircea_popescu: but yes, it can't hurt anything to run it once see what happens.
mircea_popescu: bvt pretty sure the problem with sjlj is that it significantly slows down all code execution, even on code that raises no exceptions.
mircea_popescu: diana_coman it looks like we'll end up with a patched tmsr-gnat.
mircea_popescu: right. besideswhich we can't go about inserting random numbers in code now.
mircea_popescu: you know, it'd be grand if this were a blog article rather than a pastebin. odds are ima want to reference it later, and as a factual matter i want ot reference "More precisely, one of the issues seems to be that abort seems to be delivered to the child thread after the check for 'thread aborted' has already been done" specifically even now.
mircea_popescu: bvt that's a good point actually, the check comes too late in the current implementation.