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 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!gegeweb.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Making sense of predicates Date: Tue, 22 Oct 2013 18:30:30 +0200 Organization: cbb software GmbH Message-ID: References: <87iowprctp.fsf@adaheads.sparre-andersen.dk> <7d18f68a-f15e-4e81-bbbe-22010c513a84@googlegroups.com> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: GYYt8Fzv3ax+aWVyAAu7jw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:17503 Date: 2013-10-22T18:30:30+02:00 List-Id: On Tue, 22 Oct 2013 07:52:03 -0700 (PDT), Dan'l Miller wrote: > On Tuesday, October 22, 2013 2:57:21 AM UTC-5, Dmitry A. Kazakov wrote: >> On Tue, 22 Oct 2013 09:20:50 +0200, Jacob Sparre Andersen wrote: >> [...snip...] >> By reworking Ada type system, which never will happen. I thought that maybe >> a more subtle way could be to bend some recently added patches in a useful >> way. > > Dmitry, > Please present to comp.lang.ada a minimal* itemized list of > A) the extant portions of the Ada2012 typing-system whose presence > obstructs what you are seeking along with why these presences obstruct > your vision You mean type system things which better be removed from the language? 1. Accessibility checks 2. Anonymous access types 3. Dynamic predicates 4. Limited types "return" 5. Interfaces (superfluous, abstract types, plus MI do the job) > B) the lacks within the Ada2012 typing-system whose absence obstructs what > you are seeking along with why these absences obstruct your vision. 1. Enforced [de/con]structors and for all types, with arguments 2. Class-wide [de/con]structors (a way to dispatch upon construction and finalization) 3. Discriminants of any type for any type 4. Assignment as a proper primitive operation (MD) 5. Attributes as proper primitive operations (e.g. Image) 6. MD (difficult) 7. MI (easy) 8. Delegation (instead of manually written wrappers) 9. Interface inheritance from concrete types (dropping representation) 10. Tagged classes of non-tagged types (classes for all types) 11. Abstract array, record, access types with interfaces and classes of 12. Proper abstract index types with interfaces and classes of 13. Proper range and slice types with interfaces and classes of 14. Tagged task and protected types 15. Proper procedural types (instead of access types in downward closures) 16. In general, return back to named typing (from creeping types inference and structural equivalence) > Rather, please focus on only those few portions that could be applied to > great advantage in Ada without wholesale replacement of Ada's entire > typing-system (or worse, Ada's entire runtime semantic system) with, say, > OCaml's entire typing-system, warts & all. The goal should be a leaner and more powerful type system with the present type system implemented on top of it at the library level, 100% backward compatible. P.S. Putting up such lists is a completely wasted time, as nothing will ever happen, until somebody with the influence of Ichbiah or Taft will nuke the swamp again. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de