* 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