verisimilitude: I'd appreciate help with an Ada generics issue I'm having. I get this error, where X is of course a placeholder; the declarations and generic subprogram declarations match appropriately, so I've been unable to discern what's wrong:
verisimilitude: instantiation cannot provide body for "X"
verisimilitude: "X" conflicts with declaration at ...
gregorynyssa: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-25#1017174 << I felt faint after reading that article. had not heard of Fletcherism before..
snsabot: Logged on 2020-07-25 12:05:00 asciilifeform: gregorynyssa: very good point re oopism. and arguably descended, at least in part, from much older american traditions of 'salvation through method'
gregorynyssa: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-25#1017176 << I have boycotted GitHub for years now. not surprising though, if all the problems are still there. I try to stay away from Git as well. using Fossil currently, but may switch to V for normal work.
snsabot: Logged on 2020-07-25 12:07:37 asciilifeform: gregorynyssa: ... or, read just about any ball of py liquishit on shithub. all the thoroughly redundant oop you could ever want, in there .
gregorynyssa: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-25#1017215 << the difficulty of setting up static linking (and cross-compilation) is a deliberate conspiracy by GNU. related to this earlier remark.
snsabot: Logged on 2020-07-25 13:24:10 asciilifeform: atm it's the only published gnat that bakes 100% static bins.
gregorynyssa: what is stopping us from writing our own implementation of Ada, if I might ask?
asciilifeform: !q uptime
snsabot: asciilifeform: time since my last reconnect : 0d 1h 56m
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-26#1017233 << quite impossible to say wtf happened there w/out seeing the proggy (or at least unit)
snsabot: Logged on 2020-07-26 02:02:00 verisimilitude: instantiation cannot provide body for "X"
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-26#1017239 << there's ~6 years of history here ( and that's simply from asciilifeform's pov, other folx struggled longer. ) in '15, found that glibc project has been operated by wreckers, for years. and deliberately sneaks dyn. loads into 'static' builds. after some work, found cure -- to throw glibc the fuck out.
snsabot: Logged on 2020-07-26 04:45:02 gregorynyssa: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-25#1017215 << the difficulty of setting up static linking (and cross-compilation) is a deliberate conspiracy by GNU. related to this earlier remark.
asciilifeform: i.e. to replace it with compact and ~100% compat. libc 'musl'. (1st requires building gcc, bintools, etc. ~under~ musl, because gcc that has been contaminated with glibc can ~only~ build w/ glibc.. )
asciilifeform: i did this for trb in '15 ; ave1 for gnat in '18; and trinque is taking the subj to logical conclusion and baking a usable 100% glibc-free linuxism
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-26#1017241 << gnat aint anyffin like e.g. python, it actually conforms (well, tries, if you use for half decade ~will~ find places where doesn't) to the paper standard. i.e. coupla 100 man-years of work in there.
snsabot: Logged on 2020-07-26 04:55:30 gregorynyssa: what is stopping us from writing our own implementation of Ada, if I might ask?
asciilifeform: that being said, i'd rather like, e.g., a gnat w/ non-gcc back-end (i.e. doesn't have to build with C on system)
asciilifeform: or for that matter, to be able to build gnat w/out already having a built gnat
asciilifeform: i suspect it aint happening in this lifetime tho. much too 'heavy' a language for 'write standard-compliant compiler on napkin at lunch break'
asciilifeform: fwiw asciilifeform played w/ gnat for >year (and incl. disasming the output to see how actually compiles) before recommending it to others. it was hands-down best looking horse in the opensores glue factory (and imho still is.)
asciilifeform: ftr full chronicle (from a fella w/ sadly defunkt www) of the effort.
asciilifeform: ( of why recced, that is )
asciilifeform: !q seen-anywhere Mocky
asciilifeform: verisimilitude: 404
asciilifeform: verisimilitude: i gotta ask, why does this need genericism ?
verisimilitude: Well, it's a learning exercise, and it has some algorithms which work across types, but identically.
verisimilitude: The padding algorithm has minor variations across bits, octets, and words, which a generic can nicely solve.
verisimilitude: This instantiation issue is the final issue before I can check it more, test, and release.
asciilifeform: in ffa i did not, specifically because wanted to be able to test 32b variant on 64b irons etc
asciilifeform: but otherwise it does give you what you want w/out genericism (which is hellishly difficult to get right, because unlike e.g. cpp templates, it in fact forces the compiler to prove that yer generic is correct for ALL possible instantiations)
verisimilitude: I similarly have my own reasons for choosing this. In particular, I want to write an entire generic package, but have settled for just SHA256 for now, similarly to my other SHA work across other languages.
verisimilitude: So the goal is to finish this, and then genericize the entire thing for the final program.
asciilifeform: btw the above is example of a generic package.
asciilifeform: verisimilitude: genericism doesn't work the way you used it, gotta in fact specify the full thing before it can be instantiated.
asciilifeform: easiest way to keep it straight is to make any genericised item a separate package, as in 'cryostat'.
verisimilitude: The subprogram declarations are already made by that time. So I can't use a generic to provide the body of a declaration in this fashion?
asciilifeform: verisimilitude: 'already made' is a quite strict concept in ada planet. req'd reading.
verisimilitude: Read I'll.
asciilifeform: verisimilitude: will add, even if you get it 100% right, makes proggy ~considerably~ harder to read. imho best avoided unless entirely physically impossible to do the job w/out it (as i found to be the case in 'cryostat', there is absolutely no way to do this w/out making the payload a generic type )
asciilifeform at one pt had genericism in ffa, prior to 1st published draft ch's; rewrote to abolish it.
trinque: incidentally, I just tried building ave1's (which really ought to be called GregorR's, as the other guy merely bolted some shit to side, and absconded) and this: http://paste.deedbot.org/?id=UXOI
trinque: I assume this means that the gnat on my host (devuan 'jessie') is too old?
trinque: which is annoying; I selected this vintage de-systemd-ified debian because it had gcc-4.9
asciilifeform: trinque: i've seen this specific eggog when attempting build of adacorpse-style gnat using gnu's
asciilifeform: gnu's is missing a number of pragma knobs, for some unknown reason
trinque: really trying to avoid the stack-chairs-just-so-to-reproduce-results here
trinque: rather than "install this bog-standard linux from yesteryear, and run x"
trinque: there isn't some gnat flag to tell it to ignore unknown pragmas?
asciilifeform: trinque: iirc there was, but doesn't 100% cure, because of above
asciilifeform: (i.e. thinks 'known' but the eval conditions are defective )
asciilifeform wrote off gnu's gnat as unsalvageable
trinque: so what's everyone using as magically selected starter bins for gcc/gnat?
asciilifeform: the sadder part is, there was only ever originally 1 gnat. i.e. the gnu folx in all cases started w/ adacorpse's, then fucked it
asciilifeform: trinque: i used adacorpse's '2016' as the starter yeast.
trinque: this must be what I've been running into this whole time.
asciilifeform: entirely possib
trinque: oddly, devuan-host's gnat builds chroot's gnat just fine (using gnu sources).
trinque: chroot gnat then fails to build itself.
asciilifeform: nao ~that~ is interesting.
trinque: that was the error I pasted the other day
asciilifeform: aha, and i still strongly suspect that the build ends up somehow w/ the gnu includes in it
trinque: yup, I think that's likely too
trinque: alright, I suppose I'll modify the recipe to start with adacore's 2016 bins, but boy is that irritating
asciilifeform irritated by this ever since ave1 published his item and asciilifeform found that it only builds on essentially-identical adacorpse bin gnat (and itself)
trinque: is there some public source for those still, or is it also going to be something someone has in a shoebox?
trinque: asciilifeform: is there a reason the gnu one is unacceptable?
asciilifeform: trinque: cuz it, by all indications, is broken in 9000 places
trinque: asciilifeform: no sigs on any of these
trinque: the idea was that I'd start from old debian ISOs anyone can get
trinque: (devuan is but debian without systemd)
asciilifeform: trinque: the only sigs for adacorpse's are theirs (on their www...) and asciilifeform's , for the source per se and the key deps , but certifies strictly that it was what asciilifeform dug up when went to build it back in the day naturally
trinque: not that I don't believe you, but the intent is to publish a bridge, as I did with cuntoo
asciilifeform: trinque: afaik no one succeeded in building adacorpse's on a commonplace gnu-style gnat, to date
asciilifeform: at least not where i could see it.
asciilifeform: all of my own attempts to do this (my initial ada box used gnu's) failed, w/ eggogs very similar to trinque's
asciilifeform: this kinda thing is why there will be no escape from actually disasming/auditing any safety-critical item actually built w/ gnat (this is the 'secret' of why asciilifeform used maximally strict subset of the lang in ffa -- i.e. prohibited secondary stack, etc. -- to get lean binary)
asciilifeform: and why i got the adaistic standard i/o invocations the hell outta it
asciilifeform: it's designed to run with skeletal rts (incidentally ave1's example aint bad, i used it for mips port )
verisimilitude: I'm still ignorant of how to correct my issue, unfortunately for me.
asciilifeform: verisimilitude: you'll need to actually read the linked docs re how-to-generic
verisimilitude: I did.
trinque: asciilifeform: http://nosuchlabs.com/pub/gnatdeps/ << the two sets of mpfr, mpc, gmp, etc are also banished in my work
asciilifeform: trinque: neat
trinque: going to have to retrace some steps and see if I can start from their compiler.
verisimilitude: Drinking from the well hasn't yet washed away my ignorance.
asciilifeform: verisimilitude: i'd luvv to say immediately exactly where you made mistake, but the item you posted -- where coupla dozen genericisms inside 1 package -- would take week to unravel
asciilifeform: split'em into packages, then will be apparent immediately where mistake when you try and build
verisimilitude: I get the impression renamings may be necessary.
verisimilitude: I appreciate the help in any case, asciilifeform.
asciilifeform: verisimilitude: think of ada generics as similar to cl macros, but with 9000x moar fascism, i.e. it is ~very~ easy to write a visually-correct proggy w/em that nevertheless chokes the compiler (because it doesn't know how to prove that it is guaranteed correct under the given elaboration order)
verisimilitude: Macros are easier to write half-baked for very specific uses, yes.
asciilifeform: i say this because verisimilitude is cl aficionado and knows that to read proggy w/ anyffin more than trivial macros is quite difficult
verisimilitude: By far the worst aspect of other Common Lisp code is FFI garbage, at which point I usually stop reading.
asciilifeform: verisimilitude: the sad part there is that ffiism is part of all but the most trivial cl proggy (either directly or via libraryism) on acct of the fossilized standard and its failure to include almost any i/o apart from console
verisimilitude: I'm making a distinction between using something implementation-specific and the FFI.
asciilifeform: ah. i see the 2 as entirely similar
asciilifeform: (i.e. when you use sb-posix:.... is quite same thing as using whatever lib , simply diff. set of halfwits wrote it)
verisimilitude: It's better to go without, but it's entirely impossible to do even some trivial things without any, so it's necessary.
verisimilitude: A way to avoid this is to segment code. So, network code works on streams, but doesn't actually care where they're connected to.
asciilifeform: streams are only a halfway decent abstraction for tcpism tho
asciilifeform: (vs. e.g. udp)
verisimilitude: For that, just only process discrete messages.
verisimilitude: Common Lisp can be very frustrating with its lacking, which makes it all the worse it's still amongst the better options.
asciilifeform: oblig. example for ada, where asciilifeform wrote from 0 a networkism lib specifically to get streams the hell outta where they don't belong, i.e. in processing packet by packet
verisimilitude: It's truly sickening, how complicated doing such basic things is.
trinque falls inside a bottle
verisimilitude: I've not yet bothered to finish my own UDP abstraction, independent of any system, because I've yet to cut through the CPP jungle and figure out precisely what the Hell several of the structures actually are, but they also vary across operating systems.
asciilifeform: verisimilitude: if yours is to sit on a posixistic os, rather than driving nic iron directly, can use mine as crib sheet -- it includes errything necessary
asciilifeform: there's 0 cpp involved in any of this
verisimilitude: Looking upon most anything in UNIX shows the amateurish design some of my earlier systems went through, but I recognized this and corrected them, whereas UNIX has meat stuck to hooks hanging from the ceiling and ``Oh, ignore the smell.''.
asciilifeform: verisimilitude: indeed it does
verisimilitude: I'm trying to avoid using any actual C, which makes it more difficult, asciilifeform.
verisimilitude: I may need to give in and write C bindings, as with that, though.
asciilifeform: verisimilitude: 0 chance of portability on unixlikes w/out the c bindings, cuz the built-in structs actually vary in size & layout b/w not only irons (endianism etc) but even particular os
trinque: asciilifeform: did anyone back up the adacore-2016 *bins* anywhere?
verisimilitude: I thought I'd use the neat interfacing system of Ada, but even with a ``standard'' type it's needlessly frustrating.
trinque: am I thick, did you already link these?
trinque: their own website does not give an obvious path to anything but 2020
trinque: hay mas futuro
asciilifeform: trinque: they're in the dulap link. (where no sigs). if you specifically want a sig 'this is how it was on asciilifeform's boxen in '17' i can make
asciilifeform: (in re the 2016 bin ball)
verisimilitude: I checked, and there shouldn't be any intra-body elaboration order issues with my generics; I'll bug #ada again.
trinque: asciilifeform: I see gnat-gpl in there, but not adacore. filename?
trinque: http://dulap.xyz/ada/gnat-gpl-2016-x86_64-linux-bin.tar.gz << or is this the correct item?
asciilifeform: that's the gnu one iirc
trinque: yep, thought we needed to start from adacore's
trinque boots a dusty machine to see if it's in there
trinque: looks like I have a 2019, not 2016.
asciilifeform: trinque: for extra confusion, adacorpse's was in fact called 'gnat-gpl' . so iirc this was it.
asciilifeform: ( the 'gnu gnat' is the 1 distributed w/ standard gcc )
asciilifeform had to dig through paper notes to unearth this..
trinque: much appreciated!
trinque goes to try it.
asciilifeform: oughta be aha
asciilifeform: for triple confusion, they ~all~, afaik, print 'copyright fsf ...' when --version .
asciilifeform: ( gnat --version, that is. while e.g. 'gprbuild --version' afaik ~always~ '(c) adacorpse'... )
asciilifeform: ( ftr : 1 easy litmus re which 1 you have, is whether current ffa builds )
asciilifeform: ^ there, the gcc-bundled gnat barfs on some of the restrict pragmas
asciilifeform: http://logs.nosuchlabs.com/log/asciilifeform/2020-07-26#1017370 << before this slips away: this is doable when there is no struct garbage involved in the particular os calls strictly
snsabot: Logged on 2020-07-26 13:36:05 verisimilitude: I thought I'd use the neat interfacing system of Ada, but even with a ``standard'' type it's needlessly frustrating.
asciilifeform: ( whereas if there ~are~, yer stuck w/ sumthing like this , and .c glue is inevitable if you want the thing to be portable across even 2 vers. of linux, much less elsewhere )
asciilifeform: even in the cryostat example, note that i included note ('won't work on mips') because in fact flags aint standard on the unixlikes, believe or not.
snsabot: (trilema) 2018-10-24 asciilifeform: bvt: http://btcbase.org/log/2018-10-23#1865503 << this is very interesting ! i had nfi that open() had been sabotaged on mips-linux ( observe , in your table, errybody has same flags but for mips )
asciilifeform: there's a quite terrifying amount of this nonsense that turns up when you dig, it is like turning over old firewood
asciilifeform: 9000 species of vermin come out
verisimilitude: I'll republish my 2017-06-06 article today or tomorrow, and it's interesting to reflect on the baroque system I created haphazardly. I could see flaws, like wanting it to be impossible to determine the current operating mode, but making note of the side-channels which could be used to determine this, along with other oddities. I did away with this baroque system, but it was a learning experience.
asciilifeform: verisimilitude: imho publishing yer experimental notes is a++ Good Thing. (and nao if you also had comments box on yer www...)
verisimilitude: I look at UNIX systems or the WWW, however, and see this same flavor of nonsense, lack of planning, lack of foresight and proper design, but these systems never did away with it. They kept it, and wrote religious texts praising it, and it's persisted for decades. People can't imagine a room without rotting meat hanging from the ceiling.
asciilifeform: verisimilitude: there was never ~any planning, of whatever kind, in design of unix, it is exact equivalent of the sheet metal towns beggars inhabit in brazil & elsewhere
verisimilitude: Yes, precisely my point. The fork alone is awful.
verisimilitude: I'd a system named ``vapidity'' which collected whatever was sent to a port, and had the HTML form point to that port, since I don't know how to configure my HTTP server; all it collected was spam, however, so I disabled it. If anyone wants to comment, feel free to PM them here and I'll add soon.
asciilifeform: ( interestingly, there is such a town right inside buenos aires, and to this day marked empty on all maps. and i went there and didn't even see it, it is 100% isolated from the 'mainland' except for a coupla 'holes' )
asciilifeform: verisimilitude: if yer concerned w/ spam, the glue trap i use on my www (3rd yr nao) worx a++++
verisimilitude: I must leave for now, but it's always pleasant to chat here. I'll respond to further messages later, so don't hold any because of this.
asciilifeform: aite, laters
asciilifeform will also bbl.
asciilifeform: !w poll
watchglass: Polling 12 nodes...
watchglass: 188.8.131.52:8333 : (172-4.core.ai.net) Alive: (0.082s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 184.108.40.206:8333 : Alive: (0.084s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952 (Operator: asciilifeform)
watchglass: 220.127.116.11:8333 : (172-6.core.ai.net) Alive: (0.061s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 18.104.22.168:8333 : (pool-108-31-170-3.washdc.fios.verizon.net) Alive: (0.098s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952 (Operator: asciilifeform)
watchglass: 22.214.171.124:8333 : Alive: (0.145s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 126.96.36.199:8333 : Alive: (0.247s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 188.8.131.52:8333 : Alive: (0.282s) V=70001 (/therealbitcoin.org:0.7.0.1/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 184.108.40.206:8333 : (static.220.127.116.11.clients.your-server.de) Alive: (0.326s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=235865 (Operator: jurov)
watchglass: 18.104.22.168:8333 : Alive: (0.302s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640951
watchglass: 22.214.171.124:8333 : (rev-188-121-168-69.radiolan.sk) Alive: (0.379s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 126.96.36.199:8333 : (terebe.ns01.net) Alive: (0.630s) V=99999 (/therealbitcoin.org:0.9.99.99/) Jumpers=0x1 (TRB-Compat.) Blocks=640952
watchglass: 188.8.131.52:8333 : Busy? (No answer in 20 sec.)
feedbot: http://mvdstandard.net/2020/07/colorado-former-presidential-candidate-and-minister-of-exterior-relations-announces-retirement-from-politics/ << The Montevideo Standard -- Colorado Former Presidential Candidate And Minister Of Exterior Relations Announces Retirement From Politics