Deutsch   English   Français   Italiano  
<vba6qa$3u4jc$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: David Brown <david.brown@hesbynett.no>
Newsgroups: comp.arch
Subject: Re: Computer architects leaving Intel...
Date: Wed, 4 Sep 2024 19:53:13 +0200
Organization: A noiseless patient Spider
Lines: 42
Message-ID: <vba6qa$3u4jc$1@dont-email.me>
References: <2024Aug30.161204@mips.complang.tuwien.ac.at>
 <memo.20240830164247.19028y@jgd.cix.co.uk> <vasruo$id3b$1@dont-email.me>
 <2024Aug30.195831@mips.complang.tuwien.ac.at> <vat5ap$jthk$2@dont-email.me>
 <vaunhb$vckc$1@dont-email.me> <vautmu$vr5r$1@dont-email.me>
 <2024Aug31.170347@mips.complang.tuwien.ac.at> <vavpnh$13tj0$2@dont-email.me>
 <vb2hir$1ju7q$1@dont-email.me> <8lcadjhnlcj5se1hrmo232viiccjk5alu4@4ax.com>
 <vb3k0m$1rth7$1@dont-email.me>
 <17d615c6a9e70e9fabe1721c55cfa176@www.novabbs.org>
 <86v7zep35n.fsf@linuxsc.com> <20240902180903.000035ee@yahoo.com>
 <vb7ank$3d0c5$1@dont-email.me> <20240903190928.00002f92@yahoo.com>
 <vb7idh$3e2af$1@dont-email.me> <86seufo11j.fsf@linuxsc.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 04 Sep 2024 19:53:14 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="007bf4bb57fea4fb73ad9dc6d5dccf66";
	logging-data="4133484"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18WJ1R2j7W9WXM4VIXJiL7+IiBekHb9JwA="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:qKd+23nGCKUI3Bj5kQxex1Ctth8=
In-Reply-To: <86seufo11j.fsf@linuxsc.com>
Content-Language: en-GB
Bytes: 3411

On 04/09/2024 18:07, Tim Rentsch wrote:
> Terje Mathisen <terje.mathisen@tmsw.no> writes:
> 
>> Michael S wrote:
>>
>>> On Tue, 3 Sep 2024 17:41:40 +0200
>>> Terje Mathisen <terje.mathisen@tmsw.no> wrote:
>>>
>>>> Michael S wrote:
>>>>
>>>>> 3 years ago Terje Mathisen wrote that many years ago he read that
>>>>> behaviour of memcpy() with overlappped src/dst was defined.
>>>>> https://groups.google.com/g/comp.arch/c/rSk8c7Urd_Y/m/ZWEG5V1KAQAJ
>>>>> Mitch Alsup answered "That was true in 1983".
>>>>> So, two people of different age living in different parts of the
>>>>> world are telling the same story.  May be, there exist old popular
>>>>> book that said that it was defined?
>>>>>     >>
>>>>
>>>> It probably wasn't written in the official C standard, which I
>>>> couldn't have afforded to buy/read, but in a compiler runtime doc?
>>>>
>>>> Specifying that it would always copy from beginning to end of the
>>>> source buffer, in increasing address order meant that it was
>>>> guaranteed safe when used to compact buffers.
>>>
>>> What is "compact buffers" ?
>>
>> Assume a buffer consisting of records of some type, some of them
>> marked as deleted.  Iterating over them while removing the gaps means
>> that you are always copying to a destination lower in memory, right?
> 
> If all the records are in one large array, there is a simple
> test to see if memcpy() must work or whether some alternative
> should be used instead.

Such tests are usually built into implementations of memmove(), which 
will chose to run forwards or backwards as needed.  So you might as well 
just call memmove() any time you are not sure memcpy() is safe and 
appropriate.