We apologize for the delay in responding. I (daniel) was expecting the 'static aspect' to have
more support (I gotted this suggestion, and thanks to you who suggested it).
With the development release of gnat-12 I'll try to answer all the questions and make all the suggested
changes that make sense.
Really Randy, I'm aware about this.
I´ll try answer in order:
1) var'address as mode in: the address in the import functions and procedures don't are changed. when there are a change, the change is just
in the data that address point to. this is a standard pratice in ada bind world. we dont use 'in out' mode because the address don't are changed.
2) object'address and for object'address use 'var': a) remember by the src code, the true 'lengths' are saved and used without
violate the address space (really this is my responsability as programmmer) b) and
(besides some bug by off-one not yet hunted). c) this is sure enforced. d) I get a instantaneos segfault if this
dont are enforced. e) this 'enforcement' is transparent to user. f) the user dont have access to this 'internals' , It is isolated from his/her.
3) besides an aparent violation, a) this was necessary to get values, in reality a 'view change' to get the real values. compilers obligied me
to do this, afters some months, figthing against some linux patchs (permantent patchs) and segfault in mswindows. Besides the harmless and legitimate use
without 'view change', gcc gnat linux and mswindows dont permited this.
4) import var convention c: a) the mostly vars is embedded from _c vars in adare-net c sources_. the Ada RM made a excption in this case when this is
imported vars.
etc.
From now:
I can transform mostly imported vars in static functions.
Pleeease All, Say us What you want and or What you complains(with filename and line_number) and yours sugestions.
Ah! The Version of Ada is 202x.
Enjoy with us!
Best Whishes, Dani.