punkman: "joining forces to develop Ferrocene - a safety-qualified Rust toolchain, which is aimed at supporting the needs of various regulated markets, such as automotive, avionics, space, and railway."
punkman: big wtf
dulapbot: Logged on 2022-06-02 19:43:08 asciilifeform: verisimilitude: fwiw asciilifeform tuned outta 'new gnat' when it went gcc5+
phf: re adacore, there was a handful of clear moments when it became obvious that the stack is gnarly. i believe it was the c ffi and the outright broken arm task management, after that use of ada continued, but with a "i guess it's better than c" sentiment.
asciilifeform for one has no intention of ever again publishing ab initio c-isms, other than as glue for ada proggies
phf: i don't remember the details, but c string interop (or generally memory region, and there's 2 or 3 different methods of doing) was broken in various subtle ways. it took me and diana some work to get ada to move bits between in a realiable way, and we've arrived at two different solutions. and i remember looking at hers and reflecting that /i/ had same approach not delivering reliable results
asciilifeform: a, strings
phf: considering that e.g. vtools slings a lot of text bytes between c and ada…
asciilifeform: phf: iirc similar enuff to the problem of commonlisp <-> c stringism
asciilifeform: but with the diff. that no one baked a reusable 'final solution'
phf: commonlisp in this case doesn't suffer from having a standard that mandates 2 or 3 independent solutions
phf: i think that c string interop is an example of "the ada way", which is that you'd have an interface, that is The Proper Way of Doing Things, that never the less does not somehow correspond to reality. so it'll have a parameter flag Enable_Foo_Bar=True Enable_Buz_Qux=True, and such that tries to accomodate the pesky reality. but despite the flags the solution is still not quite right, so a second interface is developed, that is less
phf: ada-ish but more accomodating. both approaches are then standardized, making e.g. independent implementation of ada spec past 83 near impossible.
phf: and ftr your approach to this problem is to go "i'm going to use a very small subset of ada and roll my own libs from first principles", which works decent when you're bit twiddling on dealing with a lot of bedrock problems. something like vtools, which is systems and libs heavy (file access, c interop, slinging text, etc) benefits from a decent library, but also exposes one to the fact that ada library is perhaps not quite "decent" as
phf: one would've hoped
phf: http://logs.nosuchlabs.com/log/asciilifeform/2022-06-03#1104596 << i wouldn't be that dismissive of "c stringism", the subset of problem where you translate a native string to a null terminated foreign string is easily solvable, and both lisp and ada have that covered. the problem in general is "given a heap memory region how to access its contents from native"
dulapbot: Logged on 2022-06-03 11:34:15 asciilifeform: phf: iirc similar enuff to the problem of commonlisp <-> c stringism
asciilifeform: phf: fwiw asciilifeform quite dissatisfied w/ the ada lib, and in particular with string handling ( esp. the aspect where ~any nontrivial string manipulation req's the 2ndary stack to be enabled )
asciilifeform: phf: re heaps, there's an engineering tension there, the ada people (for imho good reason) supported arbitrarily programmable custom allocators w/ multiple heaps; this obv. makes for trickier interop
asciilifeform 'solved' by simply making errything live on stack; then implemented transparent mmapism for what couldn't live on stack; but after this went deeply into salt mines and not baked ~anyffin in long time
asciilifeform: phf: re nulltermed strings -- obv. they are 'found in nature' and currently folx forced to live with'em, but imho they're a braindamaged concept and all 'solutions' for interfacing'em to sane systems inevitably dirty
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2022-06-03#1104600 << there supposedly were independent reimplementations, but given that all were commercial goldentoiletware, asciilifeform cannot comment re: quality
dulapbot: Logged on 2022-06-03 11:37:04 phf: ada-ish but more accomodating. both approaches are then standardized, making e.g. independent implementation of ada spec past 83 near impossible.
asciilifeform: 'large' langs with >1 working implementation are, asciilifeform suspects, a 'lost technology' from the golden age. (and e.g. c/cpp aint one such, given as one cannot actually program in'em as laid out in the standard -- witness the pile of gcc-specific macros in virtually any nontrivial systems proggy)
asciilifeform: sumthing the size of e.g. r4rs scheme -- can have >1 compat. implementation. larger -- questionable imho
asciilifeform: re: marching variably-sized (and of size not known apriori) items into/outta ada proggy, possible relatively cleanly via custom streams, illustrated by asciilifeform e.g. here
asciilifeform: ^ similar to commonlisp approach
asciilifeform: ... interestingly, does not require the heap, as ada permits instantiation on stack of variably-sized arrays, 'discriminated records', etc.
asciilifeform: imho remains the case that 'slinging text' is ~the~ weak point in off-the-shelf ada. ( if only the folx who wrote the standard had thought to make the internal snobol (yes) actually exposed to user... or, hell, embeded a scheme... )
asciilifeform: ... instead, they shat out a pile of questionable hacks which ~all demand the 2ndary stack thing (which bloats runtime and makes auditing of binary rather tricky proposition)
asciilifeform 's 'official position' to this day -- if somehow suddenly appears a replacement for ada which actually meets asciilifeform's reqs -- would use !
asciilifeform: not imho likely, tho. ada is an artifact of a long-gone era .
phf: would like an oberon or (turbo pascal vintage '94) pascal sized take on ada, there's a sane core of typed constrained arrays and such in there, but i suspect that core is barelly larger than oberon. for the sake of the argument will concede maybe common lisp sized take with various core extensions like streams and tasks.
phf: http://logs.nosuchlabs.com/log/asciilifeform/2022-06-03#1104608 << that's really only a small part of problem. you have a region of memory, knowing where it starts and where it ends is only part of problem. you also want to represent it with a native type, make it fit into language's grammar, which is also related to the memory region's contents. if your native string is utf-32, but region is utf-8, you're now forced to do conversion,
dulapbot: Logged on 2022-06-03 12:11:25 asciilifeform: phf: re nulltermed strings -- obv. they are 'found in nature' and currently folx forced to live with'em, but imho they're a braindamaged concept and all 'solutions' for interfacing'em to sane systems inevitably dirty
asciilifeform: phf: asciilifeform suspects that 'size of ada' is on acct of the thing 'trying to be os' -- e.g. the 'tasks' thing. could hypothetically jettison the 'heavy', but then would have to live with ~moar~ rather than less unix glue for nontrivial proggies
asciilifeform: phf: utfism is a plague errywhere, rather than only in ada planet, tho
asciilifeform: re: 'fit external item into native type', the obv. solution -- when the thing actually maps to a possible native type, or can be 'interface'-d, obv. -- is the 1 in 'cryostat'.
asciilifeform: re hypothetical 'lightening' of ada -- nontrivial : e.g. if you want to keep streams, then gotta retain the object system, which afaik is large % of the 'bulk'
asciilifeform: along with 'tasks'
asciilifeform found himself unequal to the job of figuring out what could be meaningfully cut while still able to write a proggy like e.g. nqb in the thing
asciilifeform willing to at least consider the notion that ada 'is the right size', from sufficient real world experience of actual field use. and imho the pheature where one can disable unused components and actually lighten the binary is a++, and imho unique
phf: hard for me to argue "too big" considering that i'm a common lisp programmer :>
asciilifeform ftr also was never able to shake the notion that 'too big'. re cl also
asciilifeform: but when sat down and 'what can cut?' errytime turn up 'nuffin substantial'
asciilifeform: so forced to consider hypothesis that in fact 'is right size'
verisimilitude: I agree. Learning and using Ada isn't noticeably more difficult than with Common Lisp; in both cases, ignoring things is the solution. It's not as if, say, UNWIND-PROTECT stops working in some edge cases, unlike the edge cases of other languages.
verisimilitude: http://logs.nosuchlabs.com/log/asciilifeform/2022-06-03#1104599 I've never had this impression of Ada; it reads more like the UNIX and C language way of doing things.
dulapbot: Logged on 2022-06-03 11:37:04 phf: i think that c string interop is an example of "the ada way", which is that you'd have an interface, that is The Proper Way of Doing Things, that never the less does not somehow correspond to reality. so it'll have a parameter flag Enable_Foo_Bar=True Enable_Buz_Qux=True, and such that tries to accomodate the pesky reality. but despite the flags the solution is still not quite right, so a second interface is developed, that is less
punkman: was reading chat of a random p2p thing, "ah yeah Ditto, they have a billion dollar contract with US mil"
verisimilitude: What are the odds they've read the Pest specification?
asciilifeform: verisimilitude: 0
verisimilitude: Probably, yes.
asciilifeform: it aint as if p2p nets were somehow new
asciilifeform: dafuq was arpa to begin with, lol
verisimilitude: Sure, but most assholes don't know anything nowadays.
asciilifeform: 'And so it’s a Small Business Innovation program that is designed to connect commercial companies like ditto and bring them into the government' << asciilifeform had done time in the 'sbir' racket, and knows the (obv) fact that it has 0 do do w/ anyffin other than political connections
verisimilitude: Why mine salt in private enterprise when mining salt in government and military seems so much more lucrative, asciilifeform?
asciilifeform: was aboutta answer, lol
verisimilitude: Oh, nevermind.
asciilifeform: verisimilitude: 'favoured son' can sell arbitrarily old wine in arbitrarily minimal 'new bottle' for $maxint
asciilifeform: plebe -- can generally 'eat shit & die'
verisimilitude: The word ``nepotism'' is related to the latin word for grandson.
verisimilitude: I don't know, would being officially Ukrainian help?
asciilifeform: 'We have edge software, that would be licensed, but there is also a cloud component for the analysis part as well' << lol, wtf 'cloud' doing in a supposedly p2p proggy??
verisimilitude: Oh, so the military doesn't play that game, then.
asciilifeform: verisimilitude: nah, the only 'ethnic' that actually helps to be is homo harvardicus
asciilifeform: all others 'nigger'
asciilifeform: verisimilitude: their salt mines are nuffin to write home about -- ~same wage as errywhere else ( the yachters keep ~all of the $maxint , like errywhere else ) + megatonne of idjit bureaucratic shit to eat ( e.g. if you get 'crowned' as 'secret', fughet about working remotely or traveling , etc )
thimbronion: tru ^
mats: who needs p2p when you have aws
shinohai: mats: you forgot the (tm) (r) (ethereum)
verisimilitude: It's really disheartening to see stores unable to run without an Internet connection.
verisimilitude: Say, asciilifeform, how is Endianness handled for the Interfaces.Unsigned_N types, such as here?
verisimilitude: Does Unsigned_16'Write write big or little endian?
verisimilitude: I've checked the ARM and found naught so far.
verisimilitude: It's implementation-defined.