log☇︎
2600+ entries in 0.018s
mircea_popescu: diana_coman wait wait, so it's in fact a HUGE penalty to use zcx is you have no extra handlers ?
mircea_popescu: diana_coman but they're parametrically related.
mircea_popescu: diana_coman i don't get it, so it crashed with 16mn but worked with 22mn ?
mircea_popescu: diana_coman possibly have to alter the linux config alf was mentioning it, blows out the 2mb stack max default.
asciilifeform: diana_coman: fwiw the noise floor on e.g my test box, is 0.003 (i.e. a proggy with empty main)
mircea_popescu: diana_coman try with 16777216 then.
diana_coman: <diana_coman> oh, no serpent in there ? it'll run VERY fast though i.e. 0.039s sort of thing -> darn, that's 0.0039
mircea_popescu: diana_coman well, that's what the x knob is for.
mircea_popescu: diana_coman take out the Encrypt(KS, Plain, Encr); line, this is just empty procedure calls.
asciilifeform: diana_coman: ideally when you do this, tar up not only the final bin but the contents of obj dir
a111: Logged on 2019-02-14 16:05 asciilifeform: btw , to go with http://trilema.com/2019/so-what-is-the-man-saying , really oughta disasm a zcx variant and longjmp side by side and see what actually changes. ( when diana_coman comes back with working bins, i'ma set this up , for thread-co)
asciilifeform: diana_coman: if you have time, plox post a pair of bins so that i can http://btcbase.org/log/2019-02-14#1896414 tonight ☝︎
asciilifeform: diana_coman: how quickly is 'very' ? ( can haz numeric ? e.g. 'zxc eats 1kb per level of depth, sjlj - 2kb' )
a111: Logged on 2019-02-14 07:55 mircea_popescu: diana_coman : btw, here's my current model for the calling timing harness : write three procedures, A B C. have each of these 1. increment a global counter, X ; 2. check if X is over a max value ; 3. if it is not, have each call either one or the other of the other two randomly ; 4. if X is over max value, have them simply return.
a111: Logged on 2019-02-14 07:40 diana_coman: http://btcbase.org/log/2019-02-14#1896320 -> hm, trinque, do you suspect it's really just down to V version? I can easily re-run the thing with a V pressed to same node as yours to rule that out, if that's the case
asciilifeform: btw , to go with http://trilema.com/2019/so-what-is-the-man-saying , really oughta disasm a zcx variant and longjmp side by side and see what actually changes. ( when diana_coman comes back with working bins, i'ma set this up , for thread-co) ☟︎
a111: Logged on 2019-02-14 07:49 diana_coman: according to docs, the mere presence of a handler of exception slows the whole things down when lj
mircea_popescu: diana_coman : btw, here's my current model for the calling timing harness : write three procedures, A B C. have each of these 1. increment a global counter, X ; 2. check if X is over a max value ; 3. if it is not, have each call either one or the other of the other two randomly ; 4. if X is over max value, have them simply return. ☟︎
mircea_popescu: diana_coman but nobody's ever adding MORE handlers. so if this is so, it still is moot.
mircea_popescu: diana_coman do you mean risen exceptions ?
a111: Logged on 2019-02-14 04:05 trinque: mod6: the curious thing is that you have full paths in just *part* of your genesis.vpatch, in the same exact way diana_coman did
mod6: I'm 98% sure that I got my vdiff out of diana_coman's starter_v.zip, lemme double check.
trinque: mod6: the curious thing is that you have full paths in just *part* of your genesis.vpatch, in the same exact way diana_coman did ☟︎
a111: Logged on 2019-02-13 21:59 diana_coman: at least there are no more surprises of huge differences in timings; but I'd still test also with some exception handling since that's supposed to slow sjlj down
a111: Logged on 2019-02-13 21:40 diana_coman: since it seems it'll take a while until I can add to my data the numbers for sjlj on ave1's gnat as well, here's what I have so far: http://p.bvulpes.com/pastes/1esL2/?raw=true
a111: Logged on 2019-02-13 18:37 diana_coman: with no optimization (or -O0 iirc) it's ~8s; with -O3 it's 1.25s
asciilifeform: diana_coman: sleep, and i expect the output will come out before you wake up. meanwhile i'ma see if i can figure out wtf re the paths.
asciilifeform not picking on diana_coman out of sadism, simply had nfi how to parse that line
a111: Logged on 2019-02-13 18:41 diana_coman: anyways, I'll compile the dataset and publish it in a bit
asciilifeform: diana_coman: on the old gnat -- seems like 0 detectable diff b/w the variants ?!
asciilifeform: diana_coman: this may even be the culprit behind ( still unresolved afaik ) http://btcbase.org/log/2018-06-03#1820460 ☝︎
asciilifeform: diana_coman: this is quite puzzling, esp. since i've built ave1's gnat on 1 box, and since copied to handful of others, on each into an entirely diff dir
a111: Logged on 2019-02-13 14:49 diana_coman: wait, what?
asciilifeform: diana_coman: plox clarify what means 'fully optimized for time' here
mircea_popescu: well now i have to step out ; diana_coman do some more experiments, get some more data, we gotta figure out wtf this is.
asciilifeform: ( why -- cannot say until diana_coman returns with brief description of the irons )
asciilifeform: diana_coman , when come back, plox to briefly describe the box
asciilifeform: diana_coman, mircea_popescu : all of above is still just the baseline (no longjmpism) case ?
a111: Logged on 2019-02-13 14:24 diana_coman: asciilifeform, one! and look here at times: 1 loop -> 0.000168893 s ; 2 loops -> 0.007213758 s ; 3 loops -> 0.351611073 s ; 4 loops -> 17.74 s ; 5 loops-> 879.95 s
mircea_popescu: diana_coman the problem is this : on the basis of this last run, we're estimating serpent to take 0.3 microseconds.
mircea_popescu: diana_coman i think it's plenty long. why not long ?
mircea_popescu: diana_coman how the fuck many loops are there ? 22 ?
mircea_popescu: diana_coman imo perfect. now do lj
mircea_popescu: diana_coman try whole 23 loops, same 1 to 10 mod 4 plox ?
mircea_popescu: diana_coman seems it stabilizes after 3 loops or so, if you look, it's within a few % with .007s and pretty much there at 0.35s
mircea_popescu: diana_coman idea was to go twice per loop, rather than 1nce. 2 will go in too many times still
mircea_popescu: diana_coman a through j ; for 1 to 10 mod 4 plox.
mircea_popescu: diana_coman you'll have to abort it, reduce the loops significantly. sorry bout that.
mircea_popescu: diana_coman darn, i utterly miscalculated it. does
asciilifeform: diana_coman: day+ ?! is this just 1 shot of benchmark, or many ?
a111: Logged on 2019-02-12 23:41 mircea_popescu: i'm still waiting for diana_coman to return.
mircea_popescu: i'm still waiting for diana_coman to return. ☟︎
a111: Logged on 2019-02-12 18:29 diana_coman: for added lulz, gnat on macos has only zcx :|
a111: Logged on 2019-02-12 18:27 diana_coman: hence I wanted to actually add some handlers in there and see but atm it's still working on the full run loops-only so will see after that
asciilifeform: diana_coman: iirc winblows ~also~ only zcx.
asciilifeform: diana_coman: ffacalc fwiw builds an' runs on crapple, but only in 'debug' (misnomer, you can't actually debug..) mode
asciilifeform: diana_coman: gnat on crapple , i am surprised that it worx at all.
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 )
a111: Logged on 2019-02-12 14:53 diana_coman: about 0.45 secs per run reported (without long jump)
a111: Logged on 2019-02-12 08:00 diana_coman: http://btcbase.org/log/2019-02-12#1895120 -> yep, that was precisely my ref when looking at Ada multi-threading and what support it offers; it actually reads a bit better than the barnes' progr in 2012 but it's more focused, obv
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. ☝︎
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: diana_coman http://p.bvulpes.com/pastes/6d1R4/?raw=true << like that.
asciilifeform: diana_coman: it's a riotously inept naming yea
mircea_popescu: diana_coman did you actually only do a b c ?
a111: Logged on 2019-02-12 14:05 diana_coman: mircea_popescu, eucrypt's test on Serpent seem good candidates as one can even adjust how many iterations to do if you want some specific time intervals; current full test of the serpent module (including i/o because of using test vectors in file) is reported by time at ~2.3s without sjlj; this has no tasks/exceptions as such;thing is: time is not extremely precise but I could run I suppose some 1k times and see
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 )
mircea_popescu: exactly what i had in mind for "hey diana_coman check this" if you returned true.
asciilifeform: diana_coman: specifically http://btcbase.org/log/2019-02-12#1895105 ☝︎
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: mircea_popescu: still eating log, not yet seen what diana_coman is baking
a111: Logged on 2019-02-12 13:03 diana_coman: bvt's investigation of my ada-won-t-stop test program: http://p.bvulpes.com/pastes/sRqWV/?raw=true
mircea_popescu: diana_coman does the example not make sense ?
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: 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: diana_coman this is so fucking retarded, "our thing does not implement the standard". RATIONALE ?
mircea_popescu: diana_coman it looks like we'll end up with a patched tmsr-gnat.
bvt: diana_coman: i agree; in the abort signal handler, there is a snippet of code that ignores the signal (given ZXC exception handling model).
mircea_popescu: diana_coman is this abort-handler something you can define from within your proggy ?
a111: Logged on 2019-02-10 16:03 diana_coman: I also tried asynchronous transfer i.e. supposedly "try this and if timeout then do that" but apparently it's in fact still "oh, but ONLY if abortable"
asciilifeform: i'ma document the fuckwaddery ( unless diana_coman beat me to it )
asciilifeform: will see what diana_coman dug out also, whoknows maybe i botched it somehow
asciilifeform: diana_coman et al : meanwhile in useful debugologies : if you use gpr with gnatD flag , you get copies of the expanded sores of yer proggy
asciilifeform: sooo went to experiment, and found that not only does diana_coman's async abort dunwork on ave1gnat , but even ordinary timeout abort behaves peculiarly (per the std) :
asciilifeform: diana_coman, mircea_popescu , et al : results of experiment & gnat src archaeology below :
asciilifeform: diana_coman: i found in my notes from 'programming of hell' a possible pill for the async stop thing, will report once i verify that it actually cures , on the actual gnat
a111: Logged on 2019-02-11 01:33 hanbot: diana_coman fwiw i ran into a few broken internal links on ossasepia today on account of their still pointing to dianacoman.com, see http://ossasepia.com/2018/03/08/eucrypt-compilation-sheet/ fo' instance.
asciilifeform: diana_coman et al : http://p.bvulpes.com/pastes/4SpwP/?raw=true << built, replicated test jig; i'ma lay the thing out on vivisection table properly after sleep ( spent today , among other things, fixing a furnace, bent wrists out , gotta let'em snap back )
a111: Logged on 2018-09-04 14:50 mircea_popescu: alright. so basically, we have a july latest-kernel from alf at http://nosuchlabs.com/pub/conf_current.conf << diana_coman trinque erryone else interested read and see if it works for you / comment ?
asciilifeform: for instance asciilifeform has a known-working config for all dulap-like boxen; presently in use by diana_coman on iirc both diana_coman units; another for rkisms
a111: Logged on 2019-02-10 20:31 diana_coman: asciilifeform, and anyone else interested in testing Ada's failure to abort, minimal test setup: ossasepia.com/available_resources/test_tasks_ada.zip
asciilifeform: http://btcbase.org/log/2019-02-10#1894755 << ty diana_coman , got it, will report when replicated ☝︎
hanbot: diana_coman fwiw i ran into a few broken internal links on ossasepia today on account of their still pointing to dianacoman.com, see http://ossasepia.com/2018/03/08/eucrypt-compilation-sheet/ fo' instance. ☟︎☟︎
a111: Logged on 2019-02-10 16:02 diana_coman: http://btcbase.org/log/2019-02-08#1893804 -> sadly I must say that I failed to find a way to terminate the program if/when one of the tasks is just looping infinitely ; I tried: abort of the looping task -> nothing,because task is "not in an abortable region"; Abort_Task(Current_Task) from the main program -> still stuck because apparently it takes it to mean "will stop AFTER all my dependent tasks stopped too!"; raising an uncaught except
mircea_popescu: diana_coman the one question lingering here is : as ada actually elaborates an init and an exit, as it must, since it does in fact compile, whether there's a way to use these correctly in lieu of "call C-mommy to change diapers".
a111: Logged on 2019-02-08 18:11 diana_coman: http://btcbase.org/log/2019-02-08#1893756 -> this makes in fact a lot of sense esp given asciilifeform's observation that indeed, that's an unrecoverable error state; so this sounds good: if child task doesn't die when aborted then kill self (taking the task with self too ofc); I'll experiment with this but afaik so far it should work
a111: Logged on 2019-02-10 18:44 asciilifeform: diana_coman, mircea_popescu , et al : other observation : based on my reading of https://www.adaic.org/resources/add_content/standards/12rm/html/RM-9-8.html , 'abort' oughta work as a hard kill unless you specifically put a deliberate 'do this before death' in the task. but does gnat actually obey the standard here, i currently do not know