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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,16594902ce57591b X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news3.google.com!news.glorb.com!newsfeed0.kamp.net!newsfeed.kamp.net!newsfeed.freenet.de!bolzen.all.de!newsfeed.ision.net!newsfeed2.easynews.net!ision!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Newsgroups: comp.lang.ada Subject: Re: Multitasking and containers From: Georg Bauhaus In-Reply-To: <8rojzetyj1sh.i4f73l9vdcwc$.dlg@40tude.net> References: <143yx0dos45nx.159wpxvfevtt8.dlg@40tude.net> <1164623427.5986.11.camel@localhost> <1164656708.657952.123430@j72g2000cwa.googlegroups.com> <1164709873.10405.15.camel@localhost> <8rojzetyj1sh.i4f73l9vdcwc$.dlg@40tude.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Organization: # Message-Id: <1164790310.5893.22.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Date: Wed, 29 Nov 2006 09:51:50 +0100 NNTP-Posting-Date: 29 Nov 2006 09:51:41 CET NNTP-Posting-Host: 4298f798.newsspool3.arcor-online.net X-Trace: DXC=3d\a64OS38E0YVY]kmLTlDMcF=Q^Z^V3H4Fo<]lROoRAgUcjd<3m<;B>?md>odjVIBPCY\c7>ejVHZlab[VWC3EJYaFJi2K5RYE X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:7733 Date: 2006-11-29T09:51:41+01:00 List-Id: On Tue, 2006-11-28 at 12:24 +0100, Dmitry A. Kazakov wrote: > On Tue, 28 Nov 2006 11:31:13 +0100, Georg Bauhaus wrote: > > > On Tue, 2006-11-28 at 09:50 +0100, Dmitry A. Kazakov wrote: > >> On Tue, 28 Nov 2006 02:19:55 GMT, Matthew Heaney wrote: > >> It is easy to imagine a > >> situation (massively parallel computing with shared memory) where the loss > >> could be huge. > > > > I have learned that Ada tasking is defined at a relatively > > high level. Suppose you are writing highly specialized low > > level software, such as when taking advantage of a specific > > computer's architecture at the system or hardware level. > > It is easy for me to imagine that you are working way below > > Ada's tasking level. Are you suggesting that this is the > > normal mode of using a high level programming language > > that supports tasking? > > I didn't mean Ada tasking at all [*]. I meant explicitly one concrete > design solution: a container with mutable reads wrapped into a protected > object's procedure. Well, your design solution ("have the user take care of any concurrency issues by providing access to some Environment context" IIUC) seemed to me to refer to a multi-CPU system with shared memory. Then there was massively parallel computing. To me, this sounds like it could be image/video processing, sound production, pattern recognition and the like. Smells like matrices and specially designed algorithms, not like standard containers and Maps of Maps. If your algorithm can guarantee that no read operation tampers with anything in your shared data, fine. If some out of the box algorithms and standard containers are to be used in a less specialized concurrent program, imagining off the street programmers, will you profit from using Ada if programmers will have to trigger semaphores hoisting flags and the like? This is what made me think that your proposal is low level. Incidentally, the design solution blends well with your other design decisions that I can remember. E.g. have the compiler at most help the user to flesh out an Array interface, instead of providing a stinking array construct defined by the language. :-) As Matt has said, "The reason is a conflict between safety and flexibility, a conflict that was resolved in favor of safety." Isn't this true of Ada in general? -- Georg