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=-2.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,a4b4e109e112f4ca,start X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!proxad.net!usenet-fr.net!news.enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Marius Amado Alves Newsgroups: comp.lang.ada Subject: Re: Mneson use experience, limits Date: Mon, 18 Apr 2005 14:28:58 +0100 Organization: Cuivre, Argent, Or Message-ID: References: <007372488ab7b9e95a561ecf4da2cec0@netcabo.pt> <17e595fb5f544d56e24cc526a7522cb7@itmag.ru> <848df2e0afdce93a00bbaba07c7a20c6@netcabo.pt> <615587a1f75c2eaa7bce03822bfbb5e4@itmag.ru> <05d589c15152631778ed212a4cb7e87c@netcabo.pt> <0d720a30e3699305d4695c57014bdd24@itmag.ru> NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 (Apple Message framework v619.2) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1113830973 89562 212.85.156.195 (18 Apr 2005 13:29:33 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Mon, 18 Apr 2005 13:29:33 +0000 (UTC) Cc: comp.lang.ada@ada-france.org To: Xlex (0x835) Return-Path: In-Reply-To: <0d720a30e3699305d4695c57014bdd24@itmag.ru> X-Mailer: Apple Mail (2.619.2) X-OriginalArrivalTime: 18 Apr 2005 13:29:00.0934 (UTC) FILETIME=[94FC7A60:01C5441A] X-Virus-Scanned: by amavisd-new-20030616-p10 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: g2news1.google.com comp.lang.ada:10533 Date: 2005-04-18T14:28:58+01:00 >> a) Berkeley DB is not Ada > > Yes, that's true, but there is some Ada bindings: > http://groups-beta.google.com/group/comp.lang.ada/browse_frm/thread/ > 5de3cdb361233cf6/9119fcb390feca4c#9119fcb390feca4c I saw this little thread on Google. I get comp.lang.ada via the Ada-France email gateway which seems to be having problems lately. So please CC your replies to me. On the subject: It seems there is a binding to GDBM, not to Berkeley DB. Speaking personally, I'd have to consider the cost of writing a binding to Berkeley DB vs. writing a persistent version of Ada.Containers as sketched on my Ada-Europe 2004 paper "A Theory of Persistent Containers and its Application to Ada." Call it SCOPE, for Signatured COntainers with PErsistence. Some preliminary experiments can be found here: http://www.liacc.up.pt/~maa/containers/ The main motivation is the prospect of using SCOPE together with the concurrency and distributed features of Ada to make an elegant and reliable database engine inherently more appropriate for Ada applications than any binding to an external C library. SCOPE design is based on Ada.Containers (Ada 2005) and an additional uni-elementary container abstraction called Cells. Cells are written from scratch. SCOPE multi-elementary containers are a rewrite of Ada.Containers with: - in the body: all allocation, writing and reading primitive operations replaced by cell operations, or by operations of a container based on Cells; - in the spec: formal cell packages added (maybe generic, possible in Ada 2005); one for the main data; if required, another one for auxiliary data; the Element_Type may be dropped, as the main data cell package already defines it. A persistence container is obtained by instantiation with the cell packages of the required persistence levels. Multiple instantiation can be hidden by means of predefined packages (generated automatically). I'd love to see this project realised in great extent by means of automatic rewriting of an Ada.Containers implementation, probably using Adalog's tools Adasubst, AdaControl. An alternate approach is to use storage pools instead of Cells. This requires designing a file-based storage pool. (I think both approaches would make wonderful MSc projects. Unfortunately at my University Ada is not welcome currently. In a year or two when I become a doctor this might change.) A copy of my Ada-Europe 2004 paper can be found here: http://www.softdevelcoop.org/marius/paper26final.ps.zip (267k compressed, 1M uncompressed)