log
18 entries in 0.421s
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.