log☇︎
▁▁▁▁▁▁▁⏐︎▁▁▁▁ 7015
deedbot: http://www.loper-os.org/?p=2557 << Loper OS - UDP.
asciilifeform: !Q later tell diana_coman http://www.loper-os.org/?p=2557 .
lobbesbot: asciilifeform: The operation succeeded.
asciilifeform: ^ eventually i'd like to rewrite the human-string routines, and get rid of the unix callout there, but imho errything else prolly oughta stay as is.
asciilifeform: !Q later tell phf plox to snarf vpatch in http://www.loper-os.org/?p=2557 , ty
lobbesbot: asciilifeform: The operation succeeded.
asciilifeform will bbl.
mircea_popescu: http://btcbase.org/log/2018-09-17#1851083 << exactly. ☝︎
a111: Logged on 2018-09-17 20:44 diana_coman: the question+kick&ban sounds good to me - kicking "silent" aka "I'm part of it because I hang about in here doing nothing" is even needed by now, I'd say; I can also see very well its usefulness for other channels; while atm #eulora tolerates the allah-spam, it could certainly do without it especially at less-quiet times
deedbot: http://bimbo.club/?p=15 << Bimbo.Club - TMSR Log Summary - 9/07/2018
diana_coman: thanks asciilifeform! I'll read it and get back to you
lobbesbot: diana_coman: Sent 3 hours and 51 minutes ago: <asciilifeform> http://www.loper-os.org/?p=2557 .
diana_coman: asciilifeform, confirmed working nicely with its own tests + adapted client/server test as used previously
diana_coman: to round this whole thing up: 2 days ago it seemed I had only the gnat.sockets/ thin layer option which wasn't fit for purpose; now I have 2 more options: 1. ave1's ADA implementation of UDP sockets using directly ASM inline 2. asciilifeform's light UDP sockets lib that uses C code for needed UDP sockets calls but provides an Ada wrapper so that any code using the lib can call Ada methods only
diana_coman: for completeness, version 3. GNAT.Sockets.Thin that is an Ada wrapper on C system calls containing however questionable approaches (e.g. returning access to String so effectively a pointer but worse than this: allocating memory on the heap and leaving the de-alloc to the caller...) ☟︎
diana_coman: version 4. GNAT.Sockets that is built on top of 3. above and mainly serves to force Streams for everything
diana_coman: asciilifeform, if I understand your lib correctly, it aims to expose only a strict & minimal set of UDP calls; atm it uses C code for the actual socket part but in principle this layer could be replaced at a later time by some Ada layer while keeping the rest as it is, correct?
diana_coman: as it is, the selected minimal set of ops seems ok, except perhaps the fixed message length - I think it's more of a maximum length needed in practice, at least for current version of S.MG protocol
diana_coman: asciilifeform, any reason why your lib does not support any options at all to be set for the UDP socket?
diana_coman: http://logs.bvulpes.com/trilema?d=2018-9-18#431369 -> refers to http://logs.bvulpes.com/trilema?d=2018-9-16#429804
mimisbrunnr: Logged on 2018-09-18 12:37 diana_coman: to round this whole thing up: 2 days ago it seemed I had only the gnat.sockets/ thin layer option which wasn't fit for purpose; now I have 2 more options: 1. ave1's ADA implementation of UDP sockets using directly ASM inline 2. asciilifeform's light UDP sockets lib that uses C code for needed UDP sockets calls but provides an Ada wrapper so that any code using the lib can call Ada methods
asciilifeform: diana_coman: afaik the only useful option re udp avail on linux is reuseaddr
asciilifeform: and i set it
asciilifeform: diana_coman: observe, my lib is somewhat unorthodox, it tries to abstract entirely over the os socket, nails down a fixed packet length, ipv4 4evah, no 'nonblockisms' - who wants these, can implement via ada task; no dnsism supported at all, etc
diana_coman: yes, I'm not crying over those
asciilifeform: diana_coman: anyffing useful and conspicuously missing ?
diana_coman: I can see your point there; it was literally a question to understand the reasoning behind the choice, nothing more
asciilifeform: aa
asciilifeform: reasoning was twofold, 1) 'want short coad that can be read in half hour'
asciilifeform: 2) 'when i ditch unix, the api should continue to make exactly same amt of sense as before'
diana_coman: as I was saying earlier: atm the fixed packet length might clash a bit with what I need but it's not even fully clear it's not *better* to have a fixed packet length anyway ☟︎
asciilifeform: imho it is
asciilifeform: tho it can be debated exactly which length, as i noted in the proggy
asciilifeform: there's a 'max never-fragged', afaik 508 byte
diana_coman: asciilifeform, myeah, the actual length is likely to be different at the very least, but that's not a big issue
asciilifeform: but there is also a 'min that will be reassembled on most routers', iirc 580
asciilifeform: there is also a max possible, iirc 65520 or near
asciilifeform: can freely experiment, simply turn the knob ( dun forget to turn it on both ends.. ) ☟︎
diana_coman: on a different note: I really had trouble coming up with a *full and reliable* set of errors that the UDP ops in linux might throw up; from linux man pages I gathered the unhelpful "all errors from IP may be returned by recv /send" - and looking at that list, it makes for a waaay bigger set than what I see you considered
asciilifeform: diana_coman: imho variable-length-datagram is for the birds. hence i jettisoned good bit of complexity by omitting it
asciilifeform: diana_coman: i handle all eggogs
asciilifeform: what i do not do, is to ~distinguish~ all of the,
asciilifeform: *them
asciilifeform: observe how the eggogology is organized.
diana_coman: ah, because send/recv will return -1 for error whatever it might be anyway
asciilifeform: correct.
asciilifeform: my approach to eggogology is same as to rest of unix liquishit -- when possible, imprison it, not bring out, so long as proggy behaves reasonably
asciilifeform: user is told e.g. 'bind eggoged', 'send eggoged', rather than linux-specific whys ( and for that matter, on a working box udp never eggogs , i haven't even any notion presently how to make it , aside from bind()ing a nonexistent local ip)
diana_coman: right; in terms of simplicity I can't say atm that I'm able to see anything that can be further cut off from the udp part itself indeed (the string <-> ip part doesn't seem to fit in there necessarily but that's not udp per se anyway)
asciilifeform: diana_coman: imho that functionality belongs in a udp lib ( given as it demands knowledge of how ip is represented ) but prolly oughta be a troo ada thing, not a callout. however implementing it would double the mass of the proggy
asciilifeform: so i left it like-so
asciilifeform: makes for an easy 2box demo, incidentally.
asciilifeform: it also shows how to output strings in a civilized way, for n00bz.
asciilifeform: ( returns fixed-len )
diana_coman: asciilifeform, the udp lib can request it in a certain format; the rest is layered on top, I don't really see why it needs string representation or eating a string; anyways, splitting hairs on this
asciilifeform: diana_coman: i already nailed down a format, observe, ip is stored always as native-endian 32bit.
asciilifeform: so if your own coad is compatible with this form, can safely jettison the string glue
diana_coman: aha
asciilifeform: diana_coman: virtually all nontrivial programs eat or display an ip in txt form somewhere, i've found. incl the demo. hence, included.
diana_coman: re eggogging udp on a machine, perhaps trying to send something above the UDP packet limit I'd say (it's ~64k iirc)
asciilifeform: slightly under 64k. try it.
asciilifeform: ought produce send eggog.
diana_coman: I'd expect that, yes; it was re <asciilifeform> user is told e.g. 'bind eggoged', 'send eggoged', rather than linux-specific whys ( and for that matter, on a working box udp never eggogs , i haven't even any notion presently how to make it , aside from bind()ing a nonexistent local ip)
asciilifeform: aa
asciilifeform: but yes, you wont get anyffing more detailed than in which unixism was the eggog ( strace will give it to you tho ). idea being. udp does not ever eggog during everyday operation on a correctly configged box
asciilifeform: you'd need something like a dead iron nic. ☟︎
asciilifeform: incidentally, my lib can be asmed just as readily as ave1 asmed the classical 'all of tcp stack' glue. ( sadly i dun currently have the free hands to do this )
diana_coman: it's not fully clear to me if it's something needed /desired atm; at any rate, compared to where I was 2 days ago, it's great - all of a sudden it went from "need to do this from scratch, ugh" to "there are 2 republican libs with 2 approaches, which one fits best my needs?" ; I'm rather delighted to be honest ☟︎
diana_coman: anyways, will give this some more thought
asciilifeform: diana_coman: lemme know if you think of further 'why did he do that'-s.
asciilifeform: incidentally i built an' tested with ave1's gnat, a+++ worx.
asciilifeform: still needs a bigendian test tho.
asciilifeform: ( maybe trinque , if he has time )
asciilifeform: ave1: know what would be neat ? ~raw~ packet support. ( recall mircea_popescu's 'i hate udp' thread )
asciilifeform: but this is for the fyootoor, when we start adaizing kernel, perhaps.
diana_coman: asciilifeform, ah, I forgot to mention it explicitly but yes, my tests include ave1's gnat as well as adacore's gnat; this is pretty much for any ada code I test
asciilifeform: mine also.
asciilifeform: ( i still have boxen with the old gnat, except for rk, where only ave1's gnat exists )
mircea_popescu: i wonder where he keeps all this voice.
mircea_popescu: diana_coman: to round this whole thing up: 2 days ago it seemed I had only the gnat.sockets/ thin layer option which wasn't fit for purpose; now I have 2 more options: << it's been an epic few days! (what happened ?)
mircea_popescu: and of course, how could one forget to quote the wisdom of the ages : http://btcbase.org/log/2018-03-23#1789029 ☝︎
a111: Logged on 2018-03-23 04:14 douchebag: Okay, why do you guys liek arguing so much? Is this why you guys don't get anything done?
asciilifeform: mircea_popescu: 'партия сказала -- надо!, комсомол ответил -- есть!'(tm)(r)
diana_coman: I guess what happened is that deedbot gave a lot of voice!!
diana_coman: asciilifeform, ahahaha, fits
mircea_popescu: надо << NADA!!!
asciilifeform: lol
mircea_popescu: http://btcbase.org/log/2018-09-18#1851102 << this is such, SUCH terribly bad practice, srsly now. scope the fucking memory handling, so both ends always happen in the same context. either the caller allocates and then also deallocates, diana_coman style, or else the callee allocates and deallocates. none of this insane scope bridging jesus christ. ☝︎
a111: Logged on 2018-09-18 13:05 diana_coman: for completeness, version 3. GNAT.Sockets.Thin that is an Ada wrapper on C system calls containing however questionable approaches (e.g. returning access to String so effectively a pointer but worse than this: allocating memory on the heap and leaving the de-alloc to the caller...)
mircea_popescu: who even does this. in c of all things, what, is it a death wish that can't be otherwise expressed ?
asciilifeform: mircea_popescu: better still, no allocations, period. ( as in my item )
asciilifeform: 100% stack-powered, fixed space.
mircea_popescu: if at all possibru.
mircea_popescu: come to think of it, if large bulks of memory have to cross call boundries, something ELSE is almost certainly fucking broken
mircea_popescu: and no "my design, in being inexistent, therefore can not be broken" doesn't work for ideal objects. THESE can be both absent and broken, pandora's blessing.
asciilifeform: mircea_popescu: it astonished me how folx were able to so elaborately break such a simple thing.
asciilifeform: ( srsly there is no reason for a udptron to allocate anyffing whatsoever , much less to return pointers )
asciilifeform: btw mircea_popescu , my article is pretty short, should nao be possible to answer the http://btcbase.org/log/2018-09-17#1850792 q mircea_popescu posed. ☝︎
a111: Logged on 2018-09-17 13:44 asciilifeform: i'ma disagree that '~same' , but this will only be possible to explain once mine's posted.
mircea_popescu: it's obviously enough how laughable monstrosities like http://btcbase.org/log/2018-09-02#1846790 were even produced in the first place. "why does this thing leak more kb/s than an old style modem ?" "because we do all the memory handling inside a live octopus" ☝︎
a111: Logged on 2018-09-02 02:04 mircea_popescu: well ? how EXACTLY did the entire "torzilla development community" spring up ? what the fuck is a lindsey kuper ?
mircea_popescu: http://btcbase.org/log/2018-09-18#1851118 << for crypto applications it actually is better. ☝︎
a111: Logged on 2018-09-18 13:17 diana_coman: as I was saying earlier: atm the fixed packet length might clash a bit with what I need but it's not even fully clear it's not *better* to have a fixed packet length anyway
mircea_popescu: moreover, it's not clear to me that varying the packet size AND the packet count rather than just the packet count is a wise move. it's not clear to me what it buys, especially considering there's externalities (udp packets under a certain size travel better than over ; this for technical reasons unrelated to other considerations).
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. ☟︎
mircea_popescu: what it is is certainly <1kb say. wasting the occasional portion of a kb is not so unlike wasting the occasional portion of a 64 bit register to represent a boolean value. ☟︎
asciilifeform: correct
mircea_popescu: people finally wised up to the fact it's insane to bitflip a single variable into the ground "to save space". i suspect ~same realisation i nthe wings re udp
asciilifeform: yer nic already sends ~1kb frames, regardless of what os does
mircea_popescu: right.
mircea_popescu: talk about tower of insanity, btw. THAT.
asciilifeform: it's a pretty tall tower, yes
asciilifeform will bbl, teatime
mircea_popescu: http://btcbase.org/log/2018-09-18#1851125 << incidentally, we very much want to do this. diana_coman mind setting up a large testing harness, send a soup of all packets lengths from 1 to 65536 bytes each hour back and forth for a week or two ? ☝︎☟︎
a111: Logged on 2018-09-18 13:19 asciilifeform: can freely experiment, simply turn the knob ( dun forget to turn it on both ends.. )
mircea_popescu: (by soup i mean, don't send them in order of size, but in some random order each hour)
mircea_popescu: http://btcbase.org/log/2018-09-18#1851153 << not entirely dead, still gotta do the init dance. ☝︎
a111: Logged on 2018-09-18 13:40 asciilifeform: you'd need something like a dead iron nic.
mircea_popescu: http://btcbase.org/log/2018-09-18#1851155 << speaking of which, what's our next step here ? 1. wanna do cpu timing/load comparisons on the two libs ? 2. say that given the nature of the task (many different folk are expected to implement clients on various platforms) thin c is better than straight asm because more widely spoken and also presumably more portable/less friable ? 3. something else ? ☝︎
a111: Logged on 2018-09-18 13:46 diana_coman: it's not fully clear to me if it's something needed /desired atm; at any rate, compared to where I was 2 days ago, it's great - all of a sudden it went from "need to do this from scratch, ugh" to "there are 2 republican libs with 2 approaches, which one fits best my needs?" ; I'm rather delighted to be honest
mircea_popescu: incidentally ave1 what was your process there ? did you compile a higher language original (what, c ?) and then desasm the resulting object code ? followed by a handpass through the result, neating & trimming things out ? or did you start with a blank page and a legal pad ? ☟︎
asciilifeform: mircea_popescu: i suspect that he followed same method as described in his http://ave1.org/2018/gnat-zero-foot-print-take-2-no-c item ( which i suggested a long time ago ), simply take the calls & translate by hand into the linux abi convention
mircea_popescu: possibru
asciilifeform: http://btcbase.org/log/2018-03-29#1791027 << thread. ☝︎
a111: Logged on 2018-03-29 19:01 asciilifeform: ave1: http://p.bvulpes.com/pastes/F0CTl/?raw=true << demo.asm ; http://p.bvulpes.com/pastes/7Q0AV/?raw=true << Makefile
asciilifeform: ( specifically re http://btcbase.org/log/2018-03-29#1791028 ) ☝︎
a111: Logged on 2018-03-29 19:02 asciilifeform: ave1: illustrated is the use of stack frame to get cmdline args; and the use of raw SYSCALL to , e.g., get file size, open it, mmap over it, then dump its contents to stdout, then close, quit
asciilifeform: http://btcbase.org/log/2018-09-18#1851201 << this would be a very interesting experiment. keep in mind that the result is heavily path-dependent tho ☝︎
a111: Logged on 2018-09-18 14:33 mircea_popescu: http://btcbase.org/log/2018-09-18#1851125 << incidentally, we very much want to do this. diana_coman mind setting up a large testing harness, send a soup of all packets lengths from 1 to 65536 bytes each hour back and forth for a week or two ?
asciilifeform: ( some routers will frag & reassemble 'obese' packets, others -- drop )
mircea_popescu: gotta start with a path
mircea_popescu: seems uy to uk as fine as can be had, that's what, 3 intercons.
asciilifeform: lol except for where it'll go through nyc.nsa..
asciilifeform: but yes i expect will find out, who frags, who not, who mutilates.
asciilifeform: ( btw the standard reassembly method is quite braindamaged, those folx never apparently heard of e.g. luby )
asciilifeform: my orig application called for 'no frag', given as already luby, so why also have ??? in the mix ruining the impedance match
mircea_popescu: meanwhile at the lulzfarm, "What do you need to know about me? I'm one hell of a kind. Seriously. You might like me or not, but you'll surely not find anyone as annoying/amazing as me. I consider myself a "mystic scientist" because, what is the supernatural world but unknown knowledge? I'm an engineer, a painter, a thinker, a bookworm, a weirdo, a kinkster, a traveler, a constant horny sensualist." ☟︎
asciilifeform: one day the perl script that generates these, lol, will leak out..
mircea_popescu: 27yo male. that you will not find anymore as X as. because this is now a thing, 20somethings are distinguishable in that absolute sense.
BingoBoingo: Meanwhile in better America the trucks carting around propaganda speakers are increasing their activity
asciilifeform: i expect it'll look like those nigerian dear|sir|madam|colleague, please consider out snakeoil|cockring|cockcage ...' items mircea_popescu collected
mircea_popescu: it's not like, generation is like dropping balls, with there being a coupla boxes at the age of 0, and maybe a dozen boxes by age 6, and at MOST fifty or so boxes by age 25. and so by the law of large fucking numbers, every single fucking 25yo out there is in a class with at best MILLIONS of other, perfectly equal and entirely interchangeable balls.
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..
mircea_popescu: more than half of them are in a box with a cardinal in nine or ten digits!
BingoBoingo: http://btcbase.org/log/2018-09-18#1851224 << So he's saying he can't get his nut off anymore ☝︎
a111: Logged on 2018-09-18 15:31 mircea_popescu: meanwhile at the lulzfarm, "What do you need to know about me? I'm one hell of a kind. Seriously. You might like me or not, but you'll surely not find anyone as annoying/amazing as me. I consider myself a "mystic scientist" because, what is the supernatural world but unknown knowledge? I'm an engineer, a painter, a thinker, a bookworm, a weirdo, a kinkster, a traveler, a constant horny sensualist."
mircea_popescu: BingoBoingo is this some "threaded cock" joke ?
asciilifeform: ( evidently not errybody got the 'spartan speaks with his sword' memo )
mircea_popescu: asciilifeform he's a penis captive in a mouth body!
mircea_popescu: buddy*
asciilifeform: lol!
BingoBoingo: mircea_popescu: Trope of the last decade, the weirdos go deeper and deeper into weirdo porn and dysfunction their sex
BingoBoingo: Nothing stimulates them to completion anymore. Hence the "sensualist" title the perl script offered
mircea_popescu: this is true innit. http://btcbase.org/log/2018-05-25#1818559 sword cuts many many ways, most of which... not so useful. ☝︎
a111: Logged on 2018-05-25 04:38 mircea_popescu: now back to fake homosexuality : human sexuality is a learned behaviour. proper homosexuality is an inability to learn, akin to dyslexia or lefthandedness. fake homosexuality is the exact contrary, a lot of "what if"ism and "provemewrong"ism and so on. a social, rather than biological phenomenon.
mircea_popescu: "Oh! Before you go, there you are: Floccinaucinihilipilification: The act or habit of describing or regarding something as unimportant, of having no value or being worthless. Doms around the world, might wanna include that one in your dirty talk when trying to be a fancy degrader. Didn't want you to leave without learning something new ;) got extra points if you actually read the whole word." << dude's seriously off in his ow
mircea_popescu: n world, where he's like smart and in control and shit. what fucking perl script, one needs wetware for this much self-referential lulz.
asciilifeform: sounds like garden variety redditus
mircea_popescu: nooo ?
asciilifeform: y'know, the kind for whom 'deep b00k' is '9000 phun phakts by time magazine', 'ted talk', etc
mircea_popescu: i have one word for you, alfie
mircea_popescu: and that word is of course "floccinaucinihilipilification".
asciilifeform: lol
BingoBoingo: Sounds like what happens when you pack hot anthrax tight in a hair fillicle
asciilifeform: gotta consult 'mystic scientist' !111
mircea_popescu: sounds like what happens when you teach ustards the letters and no more. sooner or later they'll find an old translation of a greek thesaurus and start mixymatching it up.
asciilifeform: mircea_popescu: this flavour of thing is actually a 1980s meme, is what passed for lolcats in those days
mircea_popescu: this is specifically eton coinage.
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...'
mircea_popescu: i expect he's aware, seeing how notwithstanding he and some chicks (married to other dudes) he lists are in "antactica", the extended network of "play partners" etc eventually points to edinburgh.
mircea_popescu: which may be the only place in the world still possessed of kids who think http://trilema.com/2011/romanul-si-marea/ 'ing footnotes of eton obscura is liek gold.
asciilifeform: cloink, goes the roman mosaic, creak goes the oxcart.
mircea_popescu: sensualism!
mircea_popescu: "as long as the fridge works, why do i need to understand adiabatic cycles! MYSTICAL SCIENTISM CLINTON FOR THE WIN!"
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.
mircea_popescu: i can't quite manage to find 20something dicklets offensive anymore.
asciilifeform: mebbe i'm thick, but why even bother to read the male tards
mircea_popescu: i spenta while trying, but the sad truth about impotence is that sooner or later one has to come to terms with the facts of the matter. i just... can't.
asciilifeform sings old folksong, where '...and the first, first, constipated man, was cain, he wasn't... abel'
mircea_popescu: hahaha
diana_coman: http://logs.bvulpes.com/trilema?d=2018-9-18#431515 -> what data do we want to log from this?
mimisbrunnr: Logged on 2018-09-18 14:08 mircea_popescu: http://btcbase.org/log/2018-09-18#1851125 << incidentally, we very much want to do this. diana_coman mind setting up a large testing harness, send a soup of all packets lengths from 1 to 65536 bytes each hour back and forth for a week or two ?
mircea_popescu: delta time and packet loss, i think.
asciilifeform: diana_coman: at the very minimum, survival rate, and latency. ( could also try to measure reorderiness, but immediately obvious how )
asciilifeform: mircea_popescu has it
mircea_popescu: i do not think we want more moving parts than those two
asciilifeform: *not immediately
mircea_popescu: it'll passively show network congestion too i think, because of the hourlies.
mircea_popescu: which may permit further 2nd pass data processing. but that -- open to reader.
diana_coman: http://logs.bvulpes.com/trilema?d=2018-9-18#431566 -> I'm thinking of 2 there ; asciilifeform's lib also provides I think a good interface - I don't see any reason why one couldn't just change /swap the underlying .c file with ada or asm at a later date without having to change otherwise anything of whatever one builds on top of the lib (i.e. relying on the lib's interface)
mimisbrunnr: Logged on 2018-09-18 14:20 mircea_popescu: http://btcbase.org/log/2018-09-18#1851155 << speaking of which, what's our next step here ? 1. wanna do cpu timing/load comparisons on the two libs ? 2. say that given the nature of the task (many different folk are expected to implement clients on various platforms) thin c is better than straight asm because more widely spoken and also presumably more portable/less friable ? 3. somethi
asciilifeform: troo congestion begins when you start to overload yer local box/lan
asciilifeform: but yes
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
mircea_popescu: diana_coman i can see it.
diana_coman: asciilifeform, precisely my point, right?
asciilifeform: aha
mircea_popescu: ave1 i very much hope you don't think your own work is a waste for this reason. ☟︎
asciilifeform: btw if anybody can think of how to further simplify the api, asciilifeform is all ears
diana_coman: it's certainly NOT a waste!
mircea_popescu: right.
asciilifeform: asciilifeform incidentally much appreciates ave1's work, when i remove the c glue i'ma just about certainly crib from his asm glue
asciilifeform: ( supposing he doesn't get to it 1st )
diana_coman: and I actually think it is a step in the right direction since it gets rid of C
asciilifeform: diana_coman: libc, specifically ( i like musl, but it doesn't belong on the fyootoor all-adatronic box )
asciilifeform: ultimately we'll have asmolade that simply drives the nic directly.
phf: asciilifeform: http://btcbase.org/patches?patchset=udp and http://btcbase.org/patches/udp_genesis
lobbesbot: phf: Sent 12 hours and 56 minutes ago: <asciilifeform> plox to snarf vpatch in http://www.loper-os.org/?p=2557 , ty
asciilifeform: ty phf !
diana_coman: heh, asciilifeform has it: the way I see it, ave1's work will come in very handy at a later date when we can get rid of more of the C mess
mod6: pretty cool
mircea_popescu: yep.
asciilifeform: the only part that'd change , for this, is what's in unix_udp.c ( 139 ln. )
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: ( unix gives this option, but it is of questionable imho use if you have working threading )
mircea_popescu: ada threading still seems as promising as it did weeks ago. few things survive this long lol
asciilifeform: fwiw in my own experiments, it worx as expected.
asciilifeform: but i haven't tried erry possible os, conceivably it breaks on microshit or somesuch.
diana_coman: fwiw, I'm also quite grateful that ave1 published it now - it pointed me to ada inline assembler (I hadn't really looked at it before!) and it gives me some time to hopefully get a bit more used to it *before* I'll need it anyway
mircea_popescu: anyway, i shall bbl!
asciilifeform: ( ada uses 'green' threading, rather than os's, but iirc the os threads are involved ultimately )
asciilifeform: diana_coman: there'll be no getting away from inline asm once we start planting things on naked iron.
diana_coman: asciilifeform, the timeout was the only one I hesitated on too (and the only one I'm using in the original test for that matter) but precisely like you, when I thought of it, I came up with "well, threading should be enough anyway " and uhm, no reason why it's *needed* there
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: 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)
diana_coman: anyways, rounding up, it seems my next step here is to 1. set up the testing harness http://logs.bvulpes.com/trilema?d=2018-9-18#431515 2. put asciilifeform's lib to use in smg.comms ☟︎
mimisbrunnr: Logged on 2018-09-18 14:08 mircea_popescu: http://btcbase.org/log/2018-09-18#1851125 << incidentally, we very much want to do this. diana_coman mind setting up a large testing harness, send a soup of all packets lengths from 1 to 65536 bytes each hour back and forth for a week or two ?
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 ☟︎
diana_coman: quite
deedbot: http://qntra.net/2018/09/israeli-aggression-in-syria-downs-russian-plane-with-15-aboard/ << Qntra - Israeli Aggression In Syria Downs Russian Plane With 15 Aboard ☟︎
asciilifeform: BingoBoingo: s/plan/plane
BingoBoingo: ty fxd
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: ( i think there's also at least 1 typo in the comments )
asciilifeform: http://btcbase.org/patches/udp_genesis#L298 also may produce string with spurious trailing whitespace, prolly oughta fix
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: that rounds out the list of errata currently known, i think
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 ☝︎
a111: Logged on 2018-09-14 13:35 a111: Logged on 2017-06-06 19:40 asciilifeform: mod6, phf , et al : http://nosuchlabs.com/pub/ada/horsecocks.tar.gz << i dun recall posting this before, so here it will live, for nao : unofficial release of mmaptron
asciilifeform: me-instantiable. you may want this for your tester.
asciilifeform: the current item offers no way of adjusting packet size at runtime.
asciilifeform: http://www.loper-os.org/?p=2557 << revised with moar detail for n00bz.
lobbes: TMSR~: Updated auctionbot eta 'steps to fruition' to be a little more reflective of my current state >> http://blog.lobbesblog.com/2018/07/auctionbot-eta-and-status-report/
lobbes: Detailed update on step 3) referenced within: I have finished designing/building out/testing the underlying table and field structure (I ended up migrating the underlying db to postgres in lieu of sqlite, and so far am glad I did). Right now I am in the thick of the re-tooling of my old coad. Still looks to be on-track for Oct 31st delivery, but I will keep folx updated ☟︎
ave1: http://btcbase.org/log/2018-09-18#1851208, asciilifeform was right. I used the list of system calls and read the man pages and some linux kernel code. (I've worked with the whole BSD sockets stuff for way too long but not so much directly with it in the past 10 years or so, and it has grown wraths...). Plus figuring out how to do system calls with more than 3 parameters took some work (was not hard but in relation with inline assembly made it difficult). ☝︎
a111: Logged on 2018-09-18 14:48 mircea_popescu: incidentally ave1 what was your process there ? did you compile a higher language original (what, c ?) and then desasm the resulting object code ? followed by a handpass through the result, neating & trimming things out ? or did you start with a blank page and a legal pad ?
ave1: I was working towards having different modules on top of a common base to support tcp / unix sockets etc. but I think your idea is way better, asciilifeform http://btcbase.org/log/2018-09-18#1851315 ☝︎☟︎
a111: Logged on 2018-09-18 16:06 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
ave1: http://btcbase.org/log/2018-09-18#1851285, no I do not. I was thinking I could add the asm stuff to asciilifeforms UDP code in a vpatch, if this would be at all desirable. ☝︎
a111: Logged on 2018-09-18 15:54 mircea_popescu: ave1 i very much hope you don't think your own work is a waste for this reason.
asciilifeform: ave1: definitely desirable, imho
asciilifeform: and there's a quite convenient place to put.
ave1: Yes, around the point were the outcalls to C are?
asciilifeform: exactly there
ave1: My current method to support different platforms (C, asm X86, asm arm) is to have implementations of the same module in different source directories and then selecting the directory to use in the project file.
asciilifeform: ave1: this is the method i recommend , yes
ave1: AdaCore has python scripts that copy stuff for this.
asciilifeform: ( see the 'ifdefs thread' )
asciilifeform: ave1: i'd rather not marry python if at all possible to avoid
ave1: Yes, I remember
asciilifeform: imho the preferred method of branching is -- vtronic
asciilifeform: 'this-here is what you press to get dec alpha', 'this-here - mips' , etc
ave1: Yes, depending on python is definitely not the way to go
asciilifeform: afaik none of this requires any additional fancy tooling
ave1: I don't know about the different v-trees for this, I'll have to think about it ☟︎
asciilifeform: for a correctly-written proggy, v-branching is clean, you can make patch that only affects os-specific coad
asciilifeform: ave1: i am also not opposed to using gprbuild's selector thing
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 )
ave1: well if the ocean is in a different file it will also no end up in the tree (only in those patches containing the file)
asciilifeform: if using the trees separation method, yes
asciilifeform: was speaking of the gprbuild selector variant. ☟︎
ave1: how would this interact with manifests? it seems to me to need regrinds when the base code has changed
asciilifeform: they will, yes. but i dun expect this one to change much at all.
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: 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: if yer thing is 'young' and in flux, it's likely to be a single-author straight-line tree at any rate
asciilifeform: ( can have side-branches, but they'll be short, you'll either grind'em into the main, or not )
asciilifeform: http://btcbase.org/patches/udp_genesis#L363 << moar errata, thing should eggog if bytes_sent != payloadlen
asciilifeform: i'ma bake another patch later this wk, unless somebody else does first.
mircea_popescu: http://btcbase.org/log/2018-09-18#1851313 << yes. ☝︎
a111: Logged on 2018-09-18 16:06 diana_coman: anyways, rounding up, it seems my next step here is to 1. set up the testing harness http://logs.bvulpes.com/trilema?d=2018-9-18#431515 2. put asciilifeform's lib to use in smg.comms
mimisbrunnr: Logged on 2018-09-18 14:08 mircea_popescu: http://btcbase.org/log/2018-09-18#1851125 << incidentally, we very much want to do this. diana_coman mind setting up a large testing harness, send a soup of all packets lengths from 1 to 65536 bytes each hour back and forth for a week or two ?
mircea_popescu: http://btcbase.org/log/2018-09-18#1851317 << kinda lulzy, jews doing the best they can to alienate absolutely everybody. ☝︎
a111: Logged on 2018-09-18 16:08 deedbot: http://qntra.net/2018/09/israeli-aggression-in-syria-downs-russian-plane-with-15-aboard/ << Qntra - Israeli Aggression In Syria Downs Russian Plane With 15 Aboard
mircea_popescu: when they bake again, it's gonna be "because the world is mean and CERTAINLY not because http://trilema.com/2013/the-dead-jew-and-the-raped-girl/ " again also, no doubt ? ☟︎
mircea_popescu: http://btcbase.org/log/2018-09-18#1851331 << this sounds like it was a most educational adventure. ☝︎
a111: Logged on 2018-09-18 16:52 lobbes: Detailed update on step 3) referenced within: I have finished designing/building out/testing the underlying table and field structure (I ended up migrating the underlying db to postgres in lieu of sqlite, and so far am glad I did). Right now I am in the thick of the re-tooling of my old coad. Still looks to be on-track for Oct 31st delivery, but I will keep folx updated
mircea_popescu: ave1 it's warts you know, not warths nor wraths (though this one's quite funny).
asciilifeform: mircea_popescu: lol, i assumed was typo from 'wraiths'
mircea_popescu: sing ye beedog the anger of ave the viking upon encountering bsd sockets again.
asciilifeform: lollamatic
mircea_popescu: "they are now fulla ARRRRGGGGGHHHH!!!!11"
asciilifeform: btw re http://ossasepia.com/2018/09/14/smgcomms-implementation-chapter-1/comment-page-1/#comment-4212 , observe that my proggy flips nuffin (aside from the ip/port that linux demands in bigend, and even then strictly when on littleendianistic box)
asciilifeform: diana_coman ^
mircea_popescu: http://btcbase.org/log/2018-09-18#1851334 << i also can't think of a thing that would legitimately need/want to use both tcp and udp as a toplevel thing. ☝︎
a111: Logged on 2018-09-18 18:03 ave1: I was working towards having different modules on top of a common base to support tcp / unix sockets etc. but I think your idea is way better, asciilifeform http://btcbase.org/log/2018-09-18#1851315
mircea_popescu: seems rather like a sort of html/irc browserclient.
asciilifeform: mircea_popescu: funnily enuff, the proggy for which i originally wrote the thing , was one
asciilifeform: 'g' , the tunnel-tcp-through-ciphered-udp thing
mircea_popescu: what, gossipd ?
mircea_popescu: imo that's a sort of herodotus bestiary item, web-footed whale.
asciilifeform: not adult gossipd, was simply proggy that eats a symmetric key and gives tunnel for, e.g., www, ftp, telnet, etc
mircea_popescu: myeah.
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: i cut off the tcpism, cleaned up, turned into 'udp' lib
asciilifeform: tcp imho is fundamentally sad, not the least reason for which is that 'anybody' can break yer pipe
asciilifeform: ( by inserting a nAck, or simply timing it out, etc )
asciilifeform: it also leaks sequence and other tidbits 3rdparty has 0biznis knowing
asciilifeform: imho tcp , if preserved anywhere, oughta live as a lowered-into-pederasty item-only-carried-over-better-protocols or strictly-on-lan, like telnet.
asciilifeform: ( e.g. connecting trad irc client to gossiptron )
mircea_popescu: fuck that ; trad irc client will connect in the manner lobbes is building atop trinque 's design. fucking sql queue, what.
asciilifeform: you'd have to doctor it.
mircea_popescu: and we almost like never ever do that.
asciilifeform: ( at which point writing new thing begins to look like a win )
mircea_popescu: people don't want to rewrite "traditional X" because "traditional" is always a way of saying "gui". and nobody ever wants to redo that.
asciilifeform: in asciilifeform's head, frontends are filed as 'luxury' at any rate
mircea_popescu: nobody sane, i mean.
asciilifeform: i.e. 'harem matter'
asciilifeform: who wants fancy frontends, can write own.
mircea_popescu: this being the emacs view on gui.
asciilifeform: right
mircea_popescu: or *ui in general.
asciilifeform: i'm using an ancient gtk1 thing for irc on this box, and loathe to pry open its rusted hood
asciilifeform: but eventually, even this.
mircea_popescu: especially seeing how the hood is merely drawn on, and the actual box is inside one wheel.
asciilifeform: lolyes
asciilifeform: typically i'm reluctant to open the hood on things that aint broken, tho
asciilifeform: and this is one of the few i know of
asciilifeform: ftr i never grasped why irc is a tcp item to begin with. it aint as if the messages outweigh the available bucket.
asciilifeform: ftp, i can see, telnet, but -- why this.
mircea_popescu: originally irc of today was implemented by bbs and the irc was principally a sort of edonkey, basically conversations around warez metadata.
asciilifeform: it's 100% of how asciilifeform used it before encountering mircea_popescu , yes
mircea_popescu: dcc carried more ~meaningful~ discolored bits than anything else, though the later torrents far outweight it
asciilifeform still has fat binder of these very same
mircea_popescu: right, so. in a sense, what passes for irc here is actually an invention of here.
asciilifeform: the protocol itself is a '80s thing tho, and (at least according to folk legend..) at one time was used ~likethis
asciilifeform: the warez dcc was bolt-on
mircea_popescu: yes, there is a brief nail of time where in finland irc was dating rather than bitwashery.
mircea_popescu: but this is the wrong language for that discussion.
asciilifeform: the finns are an interesting hero-to-zero case imho
asciilifeform: recall penet ?
mircea_popescu: diageo took over their alcohol.
asciilifeform: and 'ftpsearch' etc
asciilifeform: torvalds, supposedly, came from that dead culture.
asciilifeform: they cranked out cracks for msdos warez, 'demos', all sorts of goodies
mircea_popescu: yeah, that was the thing "northern democracies" pantsuit meme is trying to take to the hot topic cash register.
asciilifeform: i have nfi how, but it all evaporated. and mircea_popescu's hypothesis as as good as any.