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!feeder.eternal-september.org!goblin3!goblin.stu.neva.ru!news.netfront.net!not-for-mail From: PragmAda Software Engineering Newsgroups: comp.lang.ada Subject: Updated PragmAda Reusable Components Date: Mon, 5 Sep 2016 12:04:30 -0700 Organization: Netfront http://www.netfront.net/ Message-ID: NNTP-Posting-Host: 198.45.244.176 Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Trace: adenine.netfront.net 1473102274 13387 198.45.244.176 (5 Sep 2016 19:04:34 GMT) X-Complaints-To: news@netfront.net NNTP-Posting-Date: Mon, 5 Sep 2016 19:04:34 +0000 (UTC) X-Mozilla-News-Host: news://netnews.mchsi.com:119 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0 Xref: news.eternal-september.org comp.lang.ada:31707 Date: 2016-09-05T12:04:30-07:00 List-Id: 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 ---