comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: body stub not allowed in inner scope
Date: Fri, 2 Mar 2018 16:13:40 -0600
Date: 2018-03-02T16:13:40-06:00	[thread overview]
Message-ID: <p7cial$9f5$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: p7atjs$1qme$1@gioia.aioe.org

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 2892 bytes --]

"J-P. Rosen" <rosen@adalog.fr> wrote in message 
news:p7atjs$1qme$1@gioia.aioe.org...
> Le 01/03/2018 à 23:38, Randy Brukardt a écrit :
>> Yes, but why put them in a separate file in the first place? The only 
>> reason
>> I know not to do that is that editors (and compilers) used to have size
>> limits. It's usually easier to have one big file because it makes fewer
>> places to look for things. (The subunits in Janus/Ada are annoying 
>> because
>> one opens the body to find something only to find it isn't there and a
>> different file has to be opened. Often, I don't know exactly what I'm
>> looking for and have to bounce back and forth several times.)
>>
> I think your opinion is closely linked to the fact that you don't use
> (AFAIK) modern editors. With GPS or Emacs, you click on an entity and
> "goto declaration" to retrieve it. OTOH, long scrolls are annoying, so
> there is a clear benefit in having your stuff split on several, not too
> big files.

Lots of windows are annoying, too; it is hard to get the right one on top. 
Even if you use a "goto declaration", now you have the wrong window on top 
and getting back is a pain. (My old editor tiles windows and thus avoids 
this problem.)

I'm generally not looking for "a declaration", I'm looking for code that 
implements something, typically written 30 years ago, sometimes by someone 
else, whose name I don't know (perhaps I have an idea, but it's often 
wrong), and I don't know how it works. No editor is going to help 
significantly with that.

I don't use "modern editors" not because I'm some sort of Luddite, but 
rather because I want to "eat my own dog food" and thus not depend on 
something that we don't have for them.

Regardless, the majority of "goto declaration" commands are intensely 
frustating, because they don't handle most of the subtle visibility issues 
of Ada (or they require correct compilable code to do so), they don't have a 
sane way to deal with inheritance and instances (where you need to see both 
the original routine and the actuals/type declaration in order to know 
what's going on), and just don't match what the compiler sees. To do this 
right, you need a special Ada compiler that can deal with partial sources 
and the like - which would cost as much to develop as an actual Ada 
compiler. (Indeed, Ada is spending many man-years on exactly such a 
project.) We couldn't afford it, so that's a feature you most likely will 
never see in a Janus/Ada IDE.

Scrolling is annoying, yes, but that's easy to mitigate by not doing it. :-) 
Search for something (I usually use "procedure") in long files. Once you get 
the to right place, you're going to have to scroll in any case (most of the 
subprograms in Janus/Ada are quite long because of all of the different 
cases that have to be dealt with, >500 lines is not uncommon).

                                  Randy.



  parent reply	other threads:[~2018-03-02 22:13 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-28 13:01 body stub not allowed in inner scope Mehdi Saada
2018-02-28 13:32 ` AdaMagica
2018-02-28 14:30   ` Mehdi Saada
2018-02-28 14:39     ` AdaMagica
2018-02-28 23:23     ` Randy Brukardt
2018-03-01  7:14       ` J-P. Rosen
2018-03-01 22:38         ` Randy Brukardt
2018-03-02  7:14           ` J-P. Rosen
2018-03-02 10:17             ` Dmitry A. Kazakov
2018-03-02 22:10               ` Randy Brukardt
2018-03-03  3:38                 ` Dennis Lee Bieber
2018-03-02 22:13             ` Randy Brukardt [this message]
2018-03-02 19:37           ` G. B.
2018-03-02 19:47             ` Simon Wright
2018-03-03  9:42               ` G.B.
2018-03-01  8:20       ` Dmitry A. Kazakov
2018-03-01  8:24       ` Simon Wright
2018-03-01 20:52         ` Jacob Sparre Andersen
2018-03-01 22:45           ` Randy Brukardt
2018-03-01  8:38       ` Niklas Holsti
2018-03-01  9:11       ` Björn Lundin
2018-03-01 15:19       ` marciant
2018-03-01 17:37       ` Shark8
2018-02-28 15:26 ` Mehdi Saada
2018-02-28 15:28   ` Mehdi Saada
2018-02-28 23:32   ` Randy Brukardt
2018-03-01  0:16     ` Mehdi Saada
2018-02-28 17:24 ` Jeffrey R. Carter
2018-02-28 18:05   ` Simon Wright
2018-02-28 19:04     ` Jeffrey R. Carter
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox