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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,81bb2ce65a3240c3 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.227.230 with SMTP id sd6mr2112379pbc.8.1335343063922; Wed, 25 Apr 2012 01:37:43 -0700 (PDT) Path: r9ni96213pbh.0!nntp.google.com!news2.google.com!feed-C.news.volia.net!volia.net!news2.volia.net!feed-A.news.volia.net!news.ecp.fr!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: What would you like in Ada202X? Date: Wed, 25 Apr 2012 10:36:41 +0200 Organization: cbb software GmbH Message-ID: References: <3637793.35.1335340026327.JavaMail.geo-discussion-forums@ynfi5> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: FbOMkhMtVLVmu7IwBnt1tw.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2012-04-25T10:36:41+02:00 List-Id: On Wed, 25 Apr 2012 00:47:06 -0700 (PDT), Martin wrote: > Ok, we don't officially have Ada2012 yet but as no new features are going > to be added to it, now seems like a good time to start thinking about the > next revision. > > My starters for 10 are: > > 1) 1st class functions / lambdas Yep, proper procedural types to get rid of nasty access-to-procedure in downward closures. No upward closures however. Some set of operations to compose procedures, though the syntax for that is unclear. I definitely do not want the mess typical for functional languages. > 2) parallel loops / functions I don't think this is important. But I do like to see some low-level primitives to support lock-free concurrency, like atomic increment etc. The compiler would either use the corresponding hardware operations or else generate a protected object if no hardware support is there. > 3) Multiple dispatch Sure, but there is no working model of. The requirement is that dispatch never fails at run-time (statically checked dispatching tables). 4) Full multiple inheritance. 5) Proper constructors and destructors (for all types), enforced, exception-safe with roll-back. 6) Delegation, this is related to the position 1. 7) Classes for all types (including by-value types). Inheritance from all types protected types and tasks included (one exception could be T'Class another, maybe, the procedural types) 8) Interface inheritance from concrete types while dropping the implementation. 9) "." (member), "in" (membership test), "'" (attribute), "(" (aggregate), ":=" made primitive operations. 10) Array index types to be a class. 1st class sets of indices (e.g. ranges) and array subtypes (e.g. slices). 11) Package interfaces, transitive "use." I.e. an ability to make things visible in some package visible in another without repeating all its with and use clauses. And, of course, "use" should imply "with" where applicable. 12) Renaming fixed. Renaming shall create no new objects. Renaming shall respect array bounds. Renaming shall be available for types and subtypes. Renamed entities shall never conflict with what they rename or themselves. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de