comp.lang.ada
 help / color / mirror / Atom feed
* Updated PragmAda Reusable Components
@ 2016-09-05 19:04 PragmAda Software Engineering
  2016-09-06 20:30 ` jrmarino
  2016-09-07 10:45 ` Alejandro R. Mosteo
  0 siblings, 2 replies; 4+ messages in thread
From: PragmAda Software Engineering @ 2016-09-05 19:04 UTC (permalink / raw)


There are some new components in the beta version of the PragmARCs for
ISO/IEC 8652:2007: PragmARC.Concurrent_Pipeline and PragmARC.Holders.


Concurrent_Pipeline was inspired by discussions of the Rx approach to
concurrency, such as RxJava, in which a sequence of operations are
chained together from a source to a sink, the operations being able to
proceed in parallel but only one execution of a given operation at a
time. If one ignores the Rx syntax and concentrates on providing the
functionality in a way that's natural for Ada, it becomes fairly simple:
Concurrent_Pipeline is 45 Ada terminator semicolons.

I haven't looked at the Rx approach in detail, so there may be
differences between it and Concurrent_Pipeline.

It's not clear that Concurrent_Pipeline pipeline is needed; it seems the
same functionality could be achieved with PragmARC.Job_Pools. It may be
a more natural approach for some problems, though.

Holders provides variables for indefinite types; something like it is
needed to allow the operations in a Concurrent_Pipeline to proceed in
parallel. It was also not strictly needed, as the same functionality
could be obtained with an indefinite container that is only used to
store a single value.

The PragmARCs may be obtained from Github

https://github.com/jrcarter/PragmARC

or from the web site.

-- 
Jeffrey R. Carter, President
PragmAda Software Engineering
pragmada.x10hosting.com
pragmada.tk


--- news://freenews.netfront.net/ - complaints: news@netfront.net ---

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

* Re: Updated PragmAda Reusable Components
  2016-09-05 19:04 Updated PragmAda Reusable Components PragmAda Software Engineering
@ 2016-09-06 20:30 ` jrmarino
  2016-09-07 10:45 ` Alejandro R. Mosteo
  1 sibling, 0 replies; 4+ messages in thread
From: jrmarino @ 2016-09-06 20:30 UTC (permalink / raw)


Thanks Jeff.
I updated FreeBSD ports accordingly:
http://www.freshports.org/devel/pragmarcs/

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

* Re: Updated PragmAda Reusable Components
  2016-09-05 19:04 Updated PragmAda Reusable Components PragmAda Software Engineering
  2016-09-06 20:30 ` jrmarino
@ 2016-09-07 10:45 ` Alejandro R. Mosteo
  2016-09-07 17:51   ` Jeffrey R. Carter
  1 sibling, 1 reply; 4+ messages in thread
From: Alejandro R. Mosteo @ 2016-09-07 10:45 UTC (permalink / raw)


On 05/09/16 21:04, PragmAda Software Engineering wrote:
> There are some new components in the beta version of the PragmARCs for
> ISO/IEC 8652:2007: PragmARC.Concurrent_Pipeline and PragmARC.Holders.
>
>
> Concurrent_Pipeline was inspired by discussions of the Rx approach to
> concurrency, such as RxJava, in which a sequence of operations are
> chained together from a source to a sink, the operations being able to
> proceed in parallel but only one execution of a given operation at a
> time. If one ignores the Rx syntax and concentrates on providing the
> functionality in a way that's natural for Ada, it becomes fairly simple:
> Concurrent_Pipeline is 45 Ada terminator semicolons.
>
> I haven't looked at the Rx approach in detail, so there may be
> differences between it and Concurrent_Pipeline.

Very interested, thank you. My own efforts at a more to-the-letter RxAda 
are at

https://bitbucket.org/amosteo/rxada

Still at the early stages but already with some interesting operators to 
play with.

> It's not clear that Concurrent_Pipeline pipeline is needed; it seems the
> same functionality could be achieved with PragmARC.Job_Pools. It may be
> a more natural approach for some problems, though.
>
> Holders provides variables for indefinite types; something like it is
> needed to allow the operations in a Concurrent_Pipeline to proceed in
> parallel. It was also not strictly needed, as the same functionality
> could be obtained with an indefinite container that is only used to
> store a single value.

Ada 2012 has Ada.Containers.Indefinite_Holders for this, I guess you 
already know but need it for the 95 version.

Álex.


> The PragmARCs may be obtained from Github
>
> https://github.com/jrcarter/PragmARC
>
> or from the web site.
>

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

* Re: Updated PragmAda Reusable Components
  2016-09-07 10:45 ` Alejandro R. Mosteo
@ 2016-09-07 17:51   ` Jeffrey R. Carter
  0 siblings, 0 replies; 4+ messages in thread
From: Jeffrey R. Carter @ 2016-09-07 17:51 UTC (permalink / raw)


On 09/07/2016 03:45 AM, Alejandro R. Mosteo wrote:
> On 05/09/16 21:04, PragmAda Software Engineering wrote:
>> There are some new components in the beta version of the PragmARCs for
>> ISO/IEC 8652:2007: PragmARC.Concurrent_Pipeline and PragmARC.Holders.
>>
> Ada 2012 has Ada.Containers.Indefinite_Holders for this, I guess you already
> know but need it for the 95 version.

Right, but as the 1st ¶ of the original post (quoted) shows, the components are
targeted for the previous version of the standard. However, Gnoga compiles (some
of) the components with GNAT with the -gnat2012 switch without any problems.

-- 
Jeff Carter
"I used to manufacture escalator shoes for people
who were nauseous in elevator shoes."
Take the Money and Run
142

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

end of thread, other threads:[~2016-09-07 17:51 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-05 19:04 Updated PragmAda Reusable Components PragmAda Software Engineering
2016-09-06 20:30 ` jrmarino
2016-09-07 10:45 ` Alejandro R. Mosteo
2016-09-07 17:51   ` Jeffrey R. Carter

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