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

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

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Richard Heathfield <rjh@cpax.org.uk>
Newsgroups: comp.theory
Subject: Re: Formal systems that cannot possibly be incomplete except for
 unknowns and unknowable
Date: Thu, 8 May 2025 06:33:33 +0100
Organization: Fix this later
Lines: 99
Message-ID: <vvhfnd$1hvei$3@dont-email.me>
References: <vv97ft$3fg66$1@dont-email.me>
 <b47c9e70d415c1e5e469aaab846f0bd05e4bcc51@i2pn2.org>
 <vvall0$o6v5$1@dont-email.me> <vvc33h$25atc$1@dont-email.me>
 <vvcgja$1voc$1@news.muc.de> <vvd6pf$34l9k$1@dont-email.me>
 <vvdads$13pc$1@news.muc.de> <vvdcld$3arjo$1@dont-email.me>
 <vvg6r9$15e69$1@dont-email.me> <vvg7uu$158tp$4@dont-email.me>
 <vvg8tk$15e69$4@dont-email.me> <vvgai8$158tp$6@dont-email.me>
 <vvgcme$15e69$9@dont-email.me> <vvgjdo$18i6e$2@dont-email.me>
 <vvgkao$18q46$1@dont-email.me> <vvgkd7$15i5e$23@dont-email.me>
 <vvgkum$18q46$3@dont-email.me> <vvgleo$15i5e$24@dont-email.me>
 <vvgov4$1a47o$2@dont-email.me> <vvgp8b$15i5e$25@dont-email.me>
 <vvgpk6$1a47o$4@dont-email.me> <vvgpo7$15i5e$26@dont-email.me>
 <vvgq6o$1acph$1@dont-email.me> <vvgqgl$15i5e$27@dont-email.me>
 <vvgr22$1ag3a$2@dont-email.me> <vvgt36$1auqp$2@dont-email.me>
 <vvgtbe$1b0li$1@dont-email.me> <vvguot$1auqp$3@dont-email.me>
 <vvh0t2$1b939$1@dont-email.me> <vvhap5$1hp80$1@dont-email.me>
 <vvhf20$1ihs9$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 08 May 2025 07:33:33 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="fc99c878bc8892c2ff7fc287d1c7246a";
	logging-data="1637842"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+a5f8YrM5QOCWKSDoztl6rOEYNSsa/Xlyj+cnIHqTdiw=="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:9bG7ODIYEsAIBgB8C4oW5sJ+xoA=
In-Reply-To: <vvhf20$1ihs9$1@dont-email.me>
Content-Language: en-GB
Bytes: 5212

On 08/05/2025 06:22, olcott wrote:
> On 5/7/2025 11:09 PM, Richard Heathfield wrote:
>> On 08/05/2025 02:20, olcott wrote:
>>
>> <snip>
>>
>>> Does there exist an HHH such that DDD emulated by
>>> HHH according to the rules of the C programming language
>>
>> Let's take a look.
>>
>> The file is 1373 lines long, but don't worry, because I plan to 
>> stop at HHH's first departure from the rules of the C 
>> programming language (or at least the first departure I spot).
>>
>> Turn in your songbook if you will to:
>>
>> void CopyMachineCode(u8* source, u8** destination)
>> {
>>    u32 size;
>>    for (size = 0; source[size] != 0xcc; size++)
>>      ;
>>    *destination = (u8*) Allocate(size);
>>    for (u32 N = 0; N < size; N++)
>>    {
>>      Output("source[N]: ", source[N]);
>>      *destination[N] = source[N];
>>    }
>>    ((u32*)*destination)[-1] = size;
>>    Output("CopyMachineCode destination[-1]: ", 
>> ((u32*)*destination)[-1]);
>>    Output("CopyMachineCode destination[-2]: ", 
>> ((u32*)*destination)[-2]);
>> };
>>
> 
> deprecated.

It's not just deprecated. It's hopelessly broken.

Everybody makes mistakes, and one slip would be all very well, 
but you make essentially the same mistake --- writing to memory 
that your program doesn't own --- no fewer than four times in a 
single function.

>> I'll ignore the syntax error (a null statement at file scope is 
>> a rookie error).
>>
>> Instead, let's jump straight to this line:
>>
>>    *destination = (u8*) Allocate(size);
>>
>> On line 79 of my copy of the code, we find:
>>
>> u32* Allocate(u32 size) { return 0; }
>>
>> In C, 0 is a null pointer constant, so Allocate returns a null 
>> pointer constant... which is fine as long as you don't try to 
>> deref it. So now *destination is NULL.
>>
>> We go on:
>>
>>    for (u32 N = 0; N < size; N++)
>>    {
>>      Output("source[N]: ", source[N]);
>>      *destination[N] = source[N];
>>    }
>>
>> *destination[N] is our first big problem (we're ignoring syntax 
>> errors, remember). destination is a null pointer, so 
>> destination[N] derefs a null pointer.
>>
>> That's a fail. 0/10, D-, go away and write it again. And you 
>> /dare/ to impugn other people's C knowledge! Crack a book, for 
>> pity's sake.
>>
> 
> If you can't even understand what is essentially
> an infinite recursive relationship between two functions
> except that one function can terminate the other then
> you don't have a clue about the essence of my system.

If you can't even understand why it's a stupendously bad idea to 
dereference a null pointer, you have no business trying to teach 
anyone anything about C.

Your code is the work of a programmer so hideously incompetent 
that 'programmer' is scarcely a fair word to use.

When you publish code like that, to even *think* about 
denigrating other people's C knowledge is the height of arrogant 
hypocrisy.

-- 
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within