asciilifeform: sorta ugly, and not released, kept 'fleet in being' in case we gotta jump off fleanode ahead of schedule ( there isn't imho esp. much use for it outside of this )
asciilifeform: not adult gossipd, was simply proggy that eats a symmetric key and gives tunnel for, e.g., www, ftp, telnet, etc
asciilifeform: 'g' , the tunnel-tcp-through-ciphered-udp thing
asciilifeform: mircea_popescu: funnily enuff, the proggy for which i originally wrote the thing , was one
asciilifeform: ( can have side-branches, but they'll be short, you'll either grind'em into the main, or not )
asciilifeform: if yer thing is 'young' and in flux, it's likely to be a single-author straight-line tree at any rate
asciilifeform: this is the other thing, 'changes are expensive' promote imho a sane view of software, where you actually try to perma-stabilize yer proggy, rather than to keep up the classic 'open sores' eternal cauldron of bubbling liquishit☟︎☟︎☟︎
asciilifeform: this is the inevitable cost of v, you gotta weigh 'i can fix this typo, but 5 people will need to either regrind or abandon my tree'☟︎
asciilifeform: they will, yes. but i dun expect this one to change much at all.
asciilifeform: was speaking of the gprbuild selector variant.☟︎
asciilifeform: if using the trees separation method, yes
asciilifeform: but would rather avoid an ocean of os-specific items that i'm expected to sign despite never having tested and possibly not even owning the iron with which to test ( again see the #ifdef megathread )
asciilifeform: ave1: i am also not opposed to using gprbuild's selector thing
asciilifeform: for a correctly-written proggy, v-branching is clean, you can make patch that only affects os-specific coad
asciilifeform: afaik none of this requires any additional fancy tooling
asciilifeform: 'this-here is what you press to get dec alpha', 'this-here - mips' , etc
asciilifeform: imho the preferred method of branching is -- vtronic
asciilifeform: ave1: i'd rather not marry python if at all possible to avoid
asciilifeform: the current item offers no way of adjusting packet size at runtime.
asciilifeform: me-instantiable. you may want this for your tester.
asciilifeform: diana_coman: last (for nao) observation -- 1) it is possible to make the thing 'fancier' in 2 ways -- can make Socket a 'controlled type' ( as i did in mmap, see http://btcbase.org/log/2018-09-14#1850368 ) , then it can close itself when going out of scope. i did not do this, as it adds a bit of overhead 2) it is possible to make the lib a 'generic' ( again see horsecocks re how ) , and make udptrons of different packet length runti☝︎
asciilifeform: that rounds out the list of errata currently known, i think
asciilifeform: there's also a missing restrict pragma in the lib, pragma Restrictions(No_Implicit_Conditionals) , took it out during dev (when experimented with to-string sans-callout ) and forgot to reinsert
asciilifeform: ( i think there's also at least 1 typo in the comments )
asciilifeform: diana_coman, mircea_popescu : nobody noticed, but it is troo -- i forgot to close the socket in the demo ( this has 0 effect, os closes ). but in next rev will correct this.
asciilifeform: as for tcp, unixsockets, etc. imho if we ever need these, they oughta live in own separate lib, given as they force somewhat different and gnarlier semantics, they do not belong in 1 gigantic 'kitchen sink' imho☟︎
asciilifeform: diana_coman: somewhere i also have glue for unix signals support, so proggy can do the Right Thing when you ctrl-c, or kill, etc. but this i'll dust off later (or if somebody has a dire need)
asciilifeform: ( gnat's asm support is not particularly different from ye olde gcc's, only syntax slightly variant -- unsurprising, considering that same backend is used )
asciilifeform: diana_coman: there'll be no getting away from inline asm once we start planting things on naked iron.
asciilifeform: ( ada uses 'green' threading, rather than os's, but iirc the os threads are involved ultimately )
asciilifeform: but i haven't tried erry possible os, conceivably it breaks on microshit or somesuch.
asciilifeform: fwiw in my own experiments, it worx as expected.
asciilifeform: ( unix gives this option, but it is of questionable imho use if you have working threading )
asciilifeform: diana_coman, mircea_popescu : i thought about including timeout in 'procedure Receive...' but sat and thought and could not think of why , so omitted.
asciilifeform: the only part that'd change , for this, is what's in unix_udp.c ( 139 ln. )
asciilifeform: diana_coman: i'm not married to the c glue, and it'll eventually go. i am quite fond of my api tho, it completely rids user of having to think in unixisms , imho
asciilifeform: diana_coman: at the very minimum, survival rate, and latency. ( could also try to measure reorderiness, but immediately obvious how )
asciilifeform sings old folksong, where '...and the first, first, constipated man, was cain, he wasn't... abel'
asciilifeform: mebbe i'm thick, but why even bother to read the male tards
asciilifeform: personally i find the plebez with 0 pretense to 'understand' anyffing, slightly less offensively stupid ( rather like dried shit is less offensive than fresh ) but possibly just me.
asciilifeform: cloink, goes the roman mosaic, creak goes the oxcart.
asciilifeform saw any number of 'phun phakts' 'toilet reading' tomes in dusty shops, from the period, literally full of 'today's word, refers to act of fucking railroad carriages, is...'
asciilifeform: mircea_popescu: this flavour of thing is actually a 1980s meme, is what passed for lolcats in those days
asciilifeform: ( evidently not errybody got the 'spartan speaks with his sword' memo )
asciilifeform: mircea_popescu: i also suspect that distinguishable folx , where they exist, are occupied with sumthing other than prattling re how supposedly distinguishable they are..
asciilifeform: i expect it'll look like those nigerian dear|sir|madam|colleague, please consider out snakeoil|cockring|cockcage ...' items mircea_popescu collected
asciilifeform: one day the perl script that generates these, lol, will leak out..
asciilifeform: my orig application called for 'no frag', given as already luby, so why also have ??? in the mix ruining the impedance match
asciilifeform: ( btw the standard reassembly method is quite braindamaged, those folx never apparently heard of e.g. luby )
asciilifeform: but yes i expect will find out, who frags, who not, who mutilates.
asciilifeform: lol except for where it'll go through nyc.nsa..
asciilifeform: ( some routers will frag & reassemble 'obese' packets, others -- drop )
asciilifeform: mircea_popescu: i wrote the item originally for gossipd experimentations. udp gives a max practical packet length ( what it is , remains to be determined ) and if given proggy's protocol needs variably-sized ones, you can pad with rng.☟︎