From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Alejandro R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Updated PragmAda Reusable Components Date: Wed, 7 Sep 2016 12:45:27 +0200 Organization: A noiseless patient Spider Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 7 Sep 2016 10:45:27 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="bc686c1890d5fda24d69bb608fea27b4"; logging-data="30955"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+f+ulWMb/+m6CX1kSxcGgJ" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 In-Reply-To: X-Mozilla-News-Host: news://news.eternal-september.org Cancel-Lock: sha1:gp9nB52c+6x1stE9ExlwD1jXGzQ= Xref: news.eternal-september.org comp.lang.ada:31721 Date: 2016-09-07T12:45:27+02:00 List-Id: 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. >