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,bf02c238a92156a3 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Windows Ada database support. Date: Thu, 9 Dec 2004 13:59:09 +0100 Message-ID: References: <5e3e03a7.0411240431.7e037a4e@posting.google.com> <1jrbh30djhwuh$.cpwm02mv7d1d.dlg@40tude.net> <18u46qzjs6s8v.19927r9ay0kkh.dlg@40tude.net> <18dr1ffwet9j1.12bqctwpzcem7$.dlg@40tude.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: individual.net yCrIzK2/qtDgPJjbgeytDg/W7ELetK3HM9lxT4Y7yHItTYwyE= User-Agent: 40tude_Dialog/2.0.12.1 Xref: g2news1.google.com comp.lang.ada:6863 Date: 2004-12-09T13:59:09+01:00 List-Id: On Thu, 9 Dec 2004 12:20:38 +0000 (UTC), Georg Bauhaus wrote: > Dmitry A. Kazakov wrote: >: We have tasks and protected objects. Add here marshaling parameters. So you >: will need by-value semantics for types of those. Hence, allow T'Class for >: everything. You will then need interface inheritance from concrete types >: (to have automatic user-defined type conversions between local and remote >: types). That drags MI. Do not forget to make tasks and protected objects >: OO. Something like COM/DCOM will be also very useful... > > And you end up with the problems of value copying (and externally stored > data). First, they are *not* stored. They exist. Second, it is impossible to have referential semantics for everything, just because reference itself has to be by-copy. > Have a lookt at purely functional programs. :-) Time, memory, > updates, and concurrent updates, are not your friend when you prefer > good abstractions :-) I didn't mean that. Yes we have to marshal the parameters. But it by no means imply that we should marshal everything. It is up to the application to decide what should be passed by-copy and what by-reference (handle). It is no different from what happens when you compile a procedure call in Ada. Protected objects are by-reference in Ada. The difference though is that in a distributed application physical location of an object may change. So the run-time should be able to move an object from one place to another, to make a replica of it etc. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de