From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,900edaa189af2033 X-Google-Attributes: gid103376,public From: Thomas.Kendelbacher@erno.de (Thomas Kendelbacher) Subject: Re: Ada95 OOP Questions Date: 1996/08/06 Message-ID: <4u7h1r$jrn@mailsrv2.erno.de>#1/1 X-Deja-AN: 172489101 references: organization: Daimler-Benz Aerospace, Space Infrastructure reply-to: Thomas.Kendelbacher@erno.de newsgroups: comp.lang.ada Date: 1996-08-06T00:00:00+00:00 List-Id: In article , dewar@cs.nyu.edu (Robert Dewar) writes: >So grep will not be enough, even if you ban USE. Really you need decent >tools to build Ada programs, and relying on grep for locating defining >occurrences of subprogram references is pretty miserable (note for >example that it fails in any case in the overloaded case). It is hard >for me to believe that there are Ada environments with no better >capabilities than grep for finding things. Sadly, I must say that this seems to be the state-of-the-art in the European space industry. >With GNAT, you have two possibilities. For static analysis, you can use >gnatf, and then if you like, use the emacs interface to get straight from >applied to defining occurrences. (note that soon we will integrate gnatf >with gnat1 making this possibility a bit more convenient). Fine, if GNAT can do all this; unfortunately, we aren't allowed to use GNAT because it's --ahem-- too cheap, you see... :-) The really expensive Ada systems which are being used here are not very helpful, especially w.r.t. interactive development support (there is none.) Of course I could have the Ada system generate a 20-page cross reference listing; is that what you mean? ;-) >It is interesting though to see a very clear statement that the motivation >for banning use clauses is entirely tool driven in this case, or rather >we should say driven by lack of tools. It is interesting to wonder how >the use of USE clauses would be affected by good tools. I'm not advocating a ban on use clauses at all; indeed, I do use use myself quite often, especially for the typical case of certain base packages which are "with"ed everywhere in a certain project (you mentioned examples from GNAT itself.) But generally, I prefer to put use statements not immediately after a "with" before a 1000 lines package body, but into those procedures which do use the imported unit. IMHO, this helps identifying actual dependencies between units. (OK, again you may say that this is not really a point if you have the right tools. I whole-heartedly agree! It's just that I DON'T have them.) >As in all style matters, I don't like absolute rules, --neither do I!-- >and for sure it is >annoying to see programs use units that have been designed for use without >USE and insisting on not using the USE, giving us highly useful names >like Posix.Posix_Error :-) Agreed, but POSIX was obviously NOT designed for use without USE! Otherwise, POSIX.POSIX_ERROR would be POSIX.ERROR, which I would still find more helpful than "use POSIX; [...] POSIX_ERROR [...]". -- Thomas Kendelbacher | email : Thomas.Kendelbacher@erno.de DASA RI / Abt. RIT14 | voice : +49 421 539 5492 (working hours) Postfach 28 61 56 | or : +49 421 57 04 37 (any other time) D-28361 Bremen | fax : +49 421 539 4529 (any time) Germany