As usual, it can be downloaded from http://www.adalog.fr/adacontrol2.htm
I've just read the page. It seems it does flow analysies, so it's a
big work : how many peoples was evolved in the project ? And beceause
I'm an enquiring mind : the page talk about sponsoring which helped
this project. How did it worked ?
Gonna try it later (just downloaded)
Have a nice day
> I've just read the page. It seems it does flow analysies, so it's a
> big work : how many peoples was evolved in the project ?
There are some rules that require flow analysis (not many). Since it is
an ASIS application, ASIS does the hard work; you just have to follow
calls. We were initially two on the project; only one (me) currently.
> And beceause
> I'm an enquiring mind : the page talk about sponsoring which helped
> this project. How did it worked ?
The initial version was sponsored by Eurocontrol; other clients
sponsored the development of rules as needed. See paragraph 1.2
(History) in the user's guide.
You can also read my paper at Ada-Europe 2005 "On the benefits for
industrials of sponsoring free software development", Ada User Journal
Volume 26, n� 4, december 2005. You can download it from
If I open the help menu, and choose say “ Help -> AdaControl -> Help
on rule -> Allocators ”, I got an error from GPS, which complains that
“ Could not display help file C:\Dev\GNAT\share\doc\gps\html
I've that the mentioned path is valid. If I simply do “ Help ->
AdaControl -> User guide ”, no error occurs. It seems this deals with
the local part of the URL (the part which is introduced with “#”). I
suppose the cause is GPS, not AdaControl.
When I try to run AdaControl from GPS, doing “ AdaControl -> Control
Root project (interactive) ”, then type “ search
abnormal_function_return; ” in the input field, I got a message in the
message pan, ending with “ AttributeError: 'NoneType' object has no
attribute 'raise_window' ” (I do not give the full error message, to
Later, I've understood the latter error only occurs when there is no
location pan opened (the integration script may not detect it).
If I open a file location pan, then retry with a “ search characters
(trailing_space); ” after I've put some traling spaces in the file (on
purpose), then nothing displays in the pan and no result seems to be
I do not know if weither or not I'm lacking understanding.
Any way, this AdaControl is the kind of things I was looking for. I
may a day try to add a rule to check that all constant declared of a
given type are all assigned different values (useful with some design
Please, tell me if I was errorneously using AdaControl with GPS, or if
you need more details to figure out.
Read you soon
why not use ordinary enumeration types, maybe indirectly, for that purpose?
Beceause an enumeration cannot be extended after it is declared
I know there was a proposal for Ada 2005, to allow enumerated type to
be extendable, but this was rejected
Sometime enumerations are just itended to defines a set of identifier,
which are to be interpreted by some applications. There is then no
need for any ordering relation (this aspect of enumeration is not
meaningful, thus not required) and these identifiers are better
defined in the child packages which indeed require these identifiers
to be inroducted. When it is, it is cleaner to not overload one
package specification with what is to belong to child packages with
apply or extend the root package. This make the specification clearer
to understand and makes relation between package and segmentation of
the domain, clearer as well.
But my notice about it was just a personal side note
> When I try to run AdaControl from GPS, doing ï¿½ AdaControl -> Control
> Root project (interactive) ï¿½, then type ï¿½ search
> abnormal_function_return; ï¿½ in the input field, I got a message in the
> message pan, ending with ï¿½ AttributeError: 'NoneType' object has no
> attribute 'raise_window' ï¿½ (I do not give the full error message, to
> be concise).
> Later, I've understood the latter error only occurs when there is no
> location pan opened (the integration script may not detect it).
True, I didn't find a clean way to force the creation of the location
panel. OTOH, you run normally AdaControl after compiling your code, so
most people don't see that bug, because the location panel is created by
> Any way, this AdaControl is the kind of things I was looking for. I
> may a day try to add a rule to check that all constant declared of a
> given type are all assigned different values (useful with some design
By all means, please do! And don't be disturbed by people telling you
this rule is a bad idea. There are plenty of rules in AdaControl that I
don't agree with, but the goal of a tool is to provide a variety of
checks that might be useful in some cases, not to sort out the Good from
(If you need help about what good rules are, please consider Adalog's
consultancy services ;-) )