comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: body stub not allowed in inner scope
Date: Thu, 1 Mar 2018 09:37:20 -0800 (PST)
Date: 2018-03-01T09:37:20-08:00	[thread overview]
Message-ID: <3361a969-7deb-4a1a-9dd6-c6354f9b5348@googlegroups.com> (raw)
In-Reply-To: <p77dlj$loj$1@franka.jacob-sparre.dk>

On Wednesday, February 28, 2018 at 4:23:32 PM UTC-7, Randy Brukardt wrote:
> "Mehdi Saada" wrote in message 
> news:15c49c4e-726a-4fd7-bf35-c7d27ff9a491...
> > Thanks.
> > But that's ugly... How about fixing this for the next norm ?
> 
> Does anyone other than ACATS tests actually use stubs these days? Why?

I do, sometimes.
Usually to put a particularly knotty or verbose chunk of code. For example, in an interpreter I was writing I put all the operators, which 'explodes' (m*n; m = #types, n = #operators) based on the number of internal types, in their own package and made the body separate.

I've also used it with parsing & stream-I/O functions:
Function Parse( Text : String ) return Program;
Function Parse( Text : String ) return Program is Separate;

Procedure Read(
        Stream : not null access Ada.Streams.Root_Stream_Type'Class;
        Item   : out  T) is Separate;

> (We used to use them extensively, but only because Janus/Ada on 16-bit MS-DOS 
> limited a single unit to 64K of generated code -- and our editors couldn't 
> handle more than 256K of source code at a time. None of that makes sense 
> today.)

This is true; but it does make sense for organizing and isolating portions of the codebase even further w/o having to muck up the library-hierarchy... and might be required at a certain level (eg primitive ops).


  parent reply	other threads:[~2018-03-01 17:37 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
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 [this message]
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