Deutsch   English   Français   Italiano  
<v70nq5$61d8$5@dont-email.me>

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

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: olcott <polcott333@gmail.com>
Newsgroups: comp.theory
Subject: Re: What is the correct halt status for HHH(DDD) ?
Date: Sun, 14 Jul 2024 09:36:52 -0500
Organization: A noiseless patient Spider
Lines: 79
Message-ID: <v70nq5$61d8$5@dont-email.me>
References: <ad93b25297ec232cc5605c0979e3b3fe3c9283f2@i2pn2.org>
 <v6ug87$3mpsd$1@dont-email.me> <v700in$29qc$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Jul 2024 16:36:53 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="315e0a3cec91d4c915c12e3bad83b2c9";
	logging-data="198056"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/uJ1i8APjxQkquD8PNZhgU"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:6yb+BAEmcxUhhk8kY6jk7LxFbT8=
In-Reply-To: <v700in$29qc$1@dont-email.me>
Content-Language: en-US
Bytes: 3557

On 7/14/2024 3:00 AM, Mikko wrote:
> On 2024-07-13 18:15:35 +0000, olcott said:
> 
>> On 7/13/2024 12:25 PM, Richard Damon wrote:
>>> On 7/13/24 12:48 PM, olcott wrote:
>>>> What is the correct halt status for an input to
>>>> a simulating termination analyzer that calls its
>>>> own termination analyzer?
>>>>
>>>> typedef void (*ptr)();
>>>> int HHH(ptr P);
>>>>
>>>> void DDD()
>>>> {
>>>>    HHH(DDD);
>>>> }
>>>>
>>>> int main()
>>>> {
>>>>    HHH(DDD);
>>>> }
>>>>
>>>
>>> Halting.
>>>
>>> Since HHH defined to be a termination analyzer, by that definition it 
>>> must return to its caller.
>>>
>>> Since DDD has no inputs, its behavior isn't affected by any inputs, 
>>> and thus DDD will halt for ALL input conditions, so
>>
>> You are stupidly saying that Infinite_Loop() will halt because
>> it has no inputs.
> 
>> void Infinite_Loop()
>> {
>>    HERE: goto HERE;
>> }
> 
> You are stupidly saying that Infinite loop is executed as a part of HHH.
> 

Infinite_Loop() is emulated in its own process context.
HHH calls the x86utm instruction DebugStep() to emulate
one instruction of _Infinite_Loop() at a time.

u32  DebugStep(Registers* master_state,
                Registers* slave_state,
                Decoded_Line_Of_Code* decoded);

_Infinite_Loop()
[00002137] 55         push ebp
[00002138] 8bec       mov ebp,esp
[0000213a] ebfe       jmp 0000213a
[0000213c] 5d         pop ebp
[0000213d] c3         ret
Size in bytes:(0007) [0000213d]

  machine   stack     stack     machine    assembly
  address   address   data      code       language
  ========  ========  ========  =========  =============
[00002197][001037fb][00000000] 55         push ebp
[00002198][001037fb][00000000] 8bec       mov ebp,esp
[0000219a][001037f7][00002137] 6837210000 push 00002137
[0000219f][001037f3][000021a4] e833f4ffff call 000015d7

New slave_stack at:10389f --- new process context
Begin Local Halt Decider Simulation   Execution Trace Stored at:1138a7
[00002137][00113897][0011389b] 55         push ebp
[00002138][00113897][0011389b] 8bec       mov ebp,esp
[0000213a][00113897][0011389b] ebfe       jmp 0000213a
[0000213a][00113897][0011389b] ebfe       jmp 0000213a
Local Halt Decider: Infinite Loop Detected Simulation Stopped


-- 
Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer