comp.lang.ada
 help / color / mirror / Atom feed
* Booch Components 20020117
@ 2002-01-19  7:11 Simon Wright
  2002-02-06 23:35 ` Matthew Heaney
  0 siblings, 1 reply; 4+ messages in thread
From: Simon Wright @ 2002-01-19  7:11 UTC (permalink / raw)


This release has been uploaded to

  http://www.pushface.org/components/bc/

(still an alias for the old http://www.pogner.demon.co.uk/components/bc/)
and is mirrored at http://www.adapower.net/booch/ .

There was an unannounced release 20011011.

Significant features since 20010819:

  Interface:

    The Containers that don't provide structural sharing (Bags,
    Collections, Dequeues, Maps, Queues, Rings, Sets and Stacks) now
    support Streams ('Input, 'Output).
     Unfortunately, GNAT 3.13p doesn't support this for dynamic or
    unbounded forms (runtime errors), while ObjectAda fails at runtime
    when the Item type is a discriminated record (OK for tagged types,
    though). Walking on broken glass here.

    The way Storage Management is specified has changed significantly:
    you now supply a single generic parameter of type
    System.Storage_Pools.Root_Storage_Pool'Class. This will be painful
    to start with, but should simplify matters in the long run.

    You couldn't override equality for a Map's Key.

  Contributions:

    Pat Rogers has added a storage manager for real-time applications.




^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Booch Components 20020117
  2002-01-19  7:11 Booch Components 20020117 Simon Wright
@ 2002-02-06 23:35 ` Matthew Heaney
  2002-02-07 15:12   ` Stephen Leake
  0 siblings, 1 reply; 4+ messages in thread
From: Matthew Heaney @ 2002-02-06 23:35 UTC (permalink / raw)



"Simon Wright" <simon@pushface.org> wrote in message
news:x7vlmeuddd6.fsf@smaug.pushface.org...
>     The way Storage Management is specified has changed significantly:
>     you now supply a single generic parameter of type
>     System.Storage_Pools.Root_Storage_Pool'Class. This will be painful
>     to start with, but should simplify matters in the long run.

I had trouble doing this:

package Pools is
   type Pool_Type is new Root_Storage_Pool with record ...;
   Pool : Pool_Type;
end;

generic
   Pool : in out Root_Storage_Pool'Class;
package GP is


with Pools;
package P is new GP (Pools.Pool);

The compiler complained that my Pool object wasn't the correct type.  How
are you instantiating your generics which accept a generic formal pool
object?







^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Booch Components 20020117
  2002-02-06 23:35 ` Matthew Heaney
@ 2002-02-07 15:12   ` Stephen Leake
  2002-02-10 12:32     ` Simon Wright
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Leake @ 2002-02-07 15:12 UTC (permalink / raw)


"Matthew Heaney" <mheaney@on2.com> writes:

> "Simon Wright" <simon@pushface.org> wrote in message
> news:x7vlmeuddd6.fsf@smaug.pushface.org...
> >     The way Storage Management is specified has changed significantly:
> >     you now supply a single generic parameter of type
> >     System.Storage_Pools.Root_Storage_Pool'Class. This will be painful
> >     to start with, but should simplify matters in the long run.
> 
> I had trouble doing this:
> 
> package Pools is
>    type Pool_Type is new Root_Storage_Pool with record ...;
>    Pool : Pool_Type;
> end;
> 
> generic
>    Pool : in out Root_Storage_Pool'Class;
> package GP is
> 
> 
> with Pools;
> package P is new GP (Pools.Pool);
> 
> The compiler complained that my Pool object wasn't the correct type.  How
> are you instantiating your generics which accept a generic formal pool
> object?

This got me too. You have to do:

Pool => System.Storage_Pools.Root_Storage_Pool'Class (Pools.Pool)

I thought it was a compiler bug, but both ObjectAda and GNAT agree on
it. I never submitted a report. I didn't chase it down in the LRM,
since it works :).


-- 
-- Stephe



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Booch Components 20020117
  2002-02-07 15:12   ` Stephen Leake
@ 2002-02-10 12:32     ` Simon Wright
  0 siblings, 0 replies; 4+ messages in thread
From: Simon Wright @ 2002-02-10 12:32 UTC (permalink / raw)


Stephen Leake <stephen.a.leake.1@gsfc.nasa.gov> writes:

> "Matthew Heaney" <mheaney@on2.com> writes:
> 
> > "Simon Wright" <simon@pushface.org> wrote in message
> > news:x7vlmeuddd6.fsf@smaug.pushface.org...
> > >     The way Storage Management is specified has changed significantly:
> > >     you now supply a single generic parameter of type
> > >     System.Storage_Pools.Root_Storage_Pool'Class. This will be painful
> > >     to start with, but should simplify matters in the long run.
> > 
> > I had trouble doing this:
> > 
> > package Pools is
> >    type Pool_Type is new Root_Storage_Pool with record ...;
> >    Pool : Pool_Type;
> > end;
> > 
> > generic
> >    Pool : in out Root_Storage_Pool'Class;
> > package GP is
> > 
> > 
> > with Pools;
> > package P is new GP (Pools.Pool);
> > 
> > The compiler complained that my Pool object wasn't the correct type.  How
> > are you instantiating your generics which accept a generic formal pool
> > object?
> 
> This got me too. You have to do:
> 
> Pool => System.Storage_Pools.Root_Storage_Pool'Class (Pools.Pool)
> 
> I thought it was a compiler bug, but both ObjectAda and GNAT agree on
> it. I never submitted a report. I didn't chase it down in the LRM,
> since it works :).

I'm afraid I agree with the smiley :-(

At one point I see i've used

   Pool : BC.Support.Managed_Storage.Pool (10_000);
   Pool_View : System.Storage_Pools.Root_Storage_Pool'Class
     renames System.Storage_Pools.Root_Storage_Pool'Class (Pool);

which is a tad longwinded, I agree.



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2002-02-10 12:32 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-01-19  7:11 Booch Components 20020117 Simon Wright
2002-02-06 23:35 ` Matthew Heaney
2002-02-07 15:12   ` Stephen Leake
2002-02-10 12:32     ` Simon Wright

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