log☇︎
24 entries in 0.763s
asciilifeform: and then you might find, as i did, that gnat.sockets mysteriously barfs in certain cases
diana_coman: given this, I seriously wonder if it can be much worse to make it in ada on top of all the gnat-mess including unbounded strings and gnat.sockets and everything else; at least the full gnat so far *is* more transferable
diana_coman: yep; but if you use gnat.sockets you already eat that too anyway; so lots of stink in already.
diana_coman: ultimately sure; currently I don't know; I even sketched quickly an Ada thing - main trouble though is lack of proper db interface (and otherwise relying on GNAT.Sockets and therefore the whole strand of streams etc)
asciilifeform: diana_coman: consider, if i'd done 'api first' for udp, would have ended up with ~same thing as ave1's hairball, i.e. 'just like gnat.sockets but maybe slightly less sad'
asciilifeform: bvt: you'll find that the gnat-specific packages are ~entirely liquishit -- check out what passes for 'gnat.sockets' for instance.
diana_coman: aaand if I get it right, GNAT.CRC32 uses Ada.Streams.Stream_Element and it expects a String as input so overall it really sounds like back to GNAT.Sockets style, ugh
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: 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 ?)
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
diana_coman: version 4. GNAT.Sockets that is built on top of 3. above and mainly serves to force Streams for everything
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: 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
a111: Logged on 2018-09-16 15:41 diana_coman: overall this leaves me with the fact that I'll have to make my own "thin layer" with only what I need, certainly thinner than gnat.sockets + gnat.sockets.thin
diana_coman: overall this leaves me with the fact that I'll have to make my own "thin layer" with only what I need, certainly thinner than gnat.sockets + gnat.sockets.thin ☟︎
diana_coman: moreover, the thin layer is in principle internal to gnat.sockets so it's not even meant to be directly used from outside (compiler will throw a warning though nothing worse than that afaik)
a111: Logged on 2018-09-14 16:48 diana_coman: I certainly have to consider that option too if all that gnat.sockets buys me is some bloat + streams
diana_coman: http://btcbase.org/log/2018-09-14#1850437 -> following on from this, I had a look in more detail at the code for gnat.sockets; my conclusion is that gnat.sockets has as main contribution the streams + forcing the weird dance with types; underlying gnat.sockets is the "thin layer" that essentially wraps the system's C functions for sockets ☝︎
diana_coman: I certainly have to consider that option too if all that gnat.sockets buys me is some bloat + streams ☟︎
diana_coman: hm, so basically there might be something to "only tcp on gnat.sockets" after all since they baked this assumption in the...implementation of gnat.sockets themselves??
diana_coman: not gnat.sockets?
a111: Logged on 2018-09-14 12:31 mircea_popescu: diana_coman entirely possible you're the first one to ever put udp through gnat.sockets.
mircea_popescu: diana_coman entirely possible you're the first one to ever put udp through gnat.sockets. ☟︎
asciilifeform: looks like i'm stuck forking GNAT.Sockets.