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!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: RFC: Prototype for a user threading library in Ada Date: Fri, 24 Jun 2016 09:34:28 +0200 Organization: Aioe.org NNTP Server Message-ID: References: <58b78af5-28d8-4029-8804-598b2b63013c@googlegroups.com> NNTP-Posting-Host: vFKDMXWEWKqnQQwESBoFfw.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.1.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:30899 Date: 2016-06-24T09:34:28+02:00 List-Id: On 24/06/2016 00:12, Randy Brukardt wrote: > That wasn't my question; I'm wondering the motivation for these features in > terms of parallelization. Because fine-grained (tightly coupled) parallelism is dead on arrival if you use synchronous exchange. You cannot wait for a response without imposing huge accumulating latencies. > In today's world, it's impossible to consider any > feature in a purely sequential manner. The expressiveness gain (if any) is > secondary. And the OP was talking about parallelism, not generators. Of course you can. Nobody is capable to write anything more or less large in a data event-controlled way. All logic of exchanges between parties is always strictly sequential: you compute, publish data, get subscribed data, compute again. > The generator proposal as expressed in AI12-0197-1 is just too expensive to > consider for a purely sequential feature. I don't see much use in the proposal. The key feature must be the points where the "task" yields control, enters non-busy wait for an external event. Ideally it must be shaped as an accept statement or an entry call. > For Janus/Ada on Windows, we'd > either have to throw away 1/3 of the back-end of the compiler (and generally > use slower instructions in some cases, impacting all code), or implement > these *exactly* as we do tasks (with a TCB, context switching, and so on). > [Not to mention the extensive changes needed to the front-end.] For > something to be worth that sort of effort, it has to benefit a large > percentage of programs. This (as a purely sequential feature) doesn't do > that. I don't understand the point. All tasks are sequential. That didn't prevent them being used in parallel computing. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de