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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Everything You Know Is Wrong Date: Sun, 27 Dec 2015 09:46:31 +0100 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: LcoaosB03JmEKnYLvUFrZQ.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:28887 Date: 2015-12-27T09:46:31+01:00 List-Id: On 2015-12-27 01:37, Jeffrey R. Carter wrote: > Today we learn that memory is much faster than persistent storage. That may soon > be wrong, too. I've been reading about non-volatile memory research, and it > seems that in a few years NV RAM will be available as fast current RAM and as > persistent and durable as current disks. > > This will no doubt revolutionize computer architectures and programming > languages. Instead of computers with distinct memory and storage, there will > probably be computers with lots of NV RAM (1-10 TB?) but no disk. There will be no files and no I/O. The idea of a memory-mapped object-oriented system is nothing new. On the contrary, it is more than 20 years old. BTW, we always will have multiple speed memory. When the memory of each computer will get a unique place in the global address space and thus networking I/O will be eliminated, remote memory mapping will remain much slower than the local one. Similarly, locally shared writable memory will always be slower than the single-ported one and that slower than cache etc. > People will no doubt still want a hierarchical naming system for data stored in > that memory, but presumably S/W will map variables onto these "files". So > instead of the current "open, loop over read/modify/write, close" paradigm, we > might have something like > > type R is record ... > > type L is array (Positive range <>) of R; > > F: mapped L with File_Name => "name"; Static persistent object binding makes no sense, of course. > All_Records : for I in F'range loop -- or "of F" > > where the bounds of F will be determined from "name". A mechanism will be needed > for collections of heterogenous data as well. F would be equivalent to a > Direct_IO file with in-out mode. No, it will be equivalent to a container library. BTW, Direct_IO stems from block-oriented devices, namely disks. Once there will be no I/O there will be no need to slice data into same sized blocks. > I would think that the Ada 2X project should be thinking about these things, and > wonder what others here think about them. Well, long ago I wrote here about requirements the language must have in order to support such persistent memory. The most important one is getting away from the trusted model. E.g. operations of a persistent protected object must go through the supervisor mode in order to keep protected members out of the caller's memory space. And you won't get anywhere without proper interfaces and an elaborated type system. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de