log☇︎
10500+ entries in 0.008s
mircea_popescu: http://btcbase.org/log/2019-02-12#1895478 << iirc that's how zcx even became a thiong on gcc. ☝︎
mircea_popescu: not THAT many
mircea_popescu: http://btcbase.org/log/2019-02-12#1895474 << i suppose the next test is a multicall, keep calling two procedures from each other and returning randomly. ☝︎
mircea_popescu: BingoBoingo for which month is this ?!
mircea_popescu: tedious or tardious ?
mircea_popescu: this is just an epic case of http://btcbase.org/log/2015-06-22#1172831 ☝︎
mircea_popescu: asciilifeform https://stackoverflow.com/questions/1916260/more-fluent-c-sharp-net << item
mircea_popescu: rather, epic. c#ism
mircea_popescu: asciilifeform thinkaboutit! if isadmin!
mircea_popescu: asciilifeform so then you do it from ada.
mircea_popescu: var selectedTextBox = (TextBox)sender, if (IsAdmin) { selectedTextBox.Enabled = true; selectedTextBox.Text = superSecretPassword; } else{ selectedTextBox.Clear();}
mircea_popescu: yes.
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: the only way to have sane republic is precisely the http://trilema.com/2015/causes-and-purposes/ which specifically here means, NO CALLS BACK UP THE TREE. ☟︎
mircea_popescu: and so on, this constant up AND DOWN the tree calling paradigm recreates c++, java and usg necessarily.
mircea_popescu: "peripheral should know of time" --> ntp.
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: what if i dun wanna.
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: pretty much
mircea_popescu: which is either ada or isn't.
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: nevertheless, baby bathwater over here.
mircea_popescu: because in truth, abort is the wrong solution in 999 cases out of 1k
mircea_popescu: much like there's a very sensible design reason to not even expose abort in ada code : do NOT encourage morons who http://btcbase.org/log/2016-01-21#1379603 ☝︎
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: right, it's a misnomer, i'm not arguing that part.
mircea_popescu: yes.
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: diana_coman http://p.bvulpes.com/pastes/6d1R4/?raw=true << like that.
mircea_popescu: diana_coman did you actually only do a b c ?
mircea_popescu: precisely!
mircea_popescu: the design calls for 20 loops each spawned by an if-even test.
mircea_popescu: there were 20 in the design.
mircea_popescu: not like it makes a diff.
mircea_popescu: i wanted something in there of a little heft to make sure we're not being optimized or w/e.
mircea_popescu: which is why it got wrapped.
mircea_popescu: well, someone else gets to rage in the logs for a while.
mircea_popescu: aite.
mircea_popescu: did you ever use / look at this thing in any depth ?
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: if it does i am sold.
mircea_popescu: asciilifeform here's a thought : fuck a peripheral so as per http://btcbase.org/log/2019-02-10#1894696 it zombies all it touches ; THEN have an ada prog touch it ; and THEN see if abort aborts. ☝︎
mircea_popescu: nah, we need to test this properly, with a macroscopically blocking item
mircea_popescu: you know ?
mircea_popescu: hm
mircea_popescu: problem is you can't put a delay 0 ~inside~ the only thing we fear, which is unix peripheral calls.
mircea_popescu: also dun work.
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: kk.
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: have it print time begin and end, and there we go.
mircea_popescu: a thing you keep re-serpenting. 64 bit string, w/e, starts as null
mircea_popescu: diana_coman does the example not make sense ?
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: ffa eminently bad for this, cuz of all the ct stuff.
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: phesf
mircea_popescu adds http://dwarfstd.org/doc/dwarf.v2.mm http://dwarfstd.org/doc/index.v2.mm to teh log.
mircea_popescu: motherfucker.
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: http://dwarfstd.org/Dwarf3Std.php << for thread completness
mircea_popescu: i thought it adds an abort polling point.
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: wasn't the long jump thing slower ~generally~ ? ☟︎
mircea_popescu: i thought it actually did dwarf
mircea_popescu: and if we're forking, we'll prolly also rename it. pending results of http://btcbase.org/log/2019-02-12#1895163 ☝︎
mircea_popescu: diana_coman it looks like we'll end up with a patched tmsr-gnat.
mircea_popescu: kk
mircea_popescu: right. besideswhich we can't go about inserting random numbers in code now.
mircea_popescu: yes.
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.
mircea_popescu: kk.
mircea_popescu: bvt did you manage to lose your key or something ?