• Re: Explicitly showing the divergence of behavior between HHH(DDD) and

    From Mikko@3:633/10 to olcott on Mon Sep 15 10:56:36 2025
    From: mikko.levanto@iki.fi

    On 2025-09-05 15:29:57 +0000, olcott said:

    HHH and HHH1 have identical source code except
    for their name. The DDD of HHH1(DDD) has identical
    behavior to the directly executed DDD().

    DDD calls HHH(DDD) in recursive emulation. DDD does
    not call HHH1 at all. This is why the behavior
    of DDD.HHH1 is different than the behavior of DDD.HHH

    _DDD()
    [00002183] 55 push ebp
    [00002184] 8bec mov ebp,esp
    [00002186] 6883210000 push 00002183 ; push DDD
    [0000218b] e833f4ffff call 000015c3 ; call HHH
    [00002190] 83c404 add esp,+04
    [00002193] 5d pop ebp
    [00002194] c3 ret
    Size in bytes:(0018) [00002194]

    _main()
    [000021a3] 55 push ebp
    [000021a4] 8bec mov ebp,esp
    [000021a6] 6883210000 push 00002183 ; push DDD
    [000021ab] e843f3ffff call 000014f3 ; call HHH1
    [000021b0] 83c404 add esp,+04
    [000021b3] 33c0 xor eax,eax
    [000021b5] 5d pop ebp
    [000021b6] c3 ret
    Size in bytes:(0020) [000021b6]

    machine stack stack machine assembly
    address address data code language
    ======== ======== ======== ========== ============= [000021a3][0010382d][00000000] 55 push ebp ; main() [000021a4][0010382d][00000000] 8bec mov ebp,esp ; main() [000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD [000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
    New slave_stack at:1038d1

    Begin Local Halt Decider Simulation Execution Trace Stored at:1138d9 [00002183][001138c9][001138cd] 55 push ebp ; DDD of HHH1 [00002184][001138c9][001138cd] 8bec mov ebp,esp ; DDD of HHH1 [00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD [0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:14e2f9

    Begin Local Halt Decider Simulation Execution Trace Stored at:15e301 [00002183][0015e2f1][0015e2f5] 55 push ebp ; DDD of HHH[0] [00002184][0015e2f1][0015e2f5] 8bec mov ebp,esp ; DDD of HHH[0] [00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD [0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:198d21

    *This is the beginning of the divergence of the behavior*
    *of DDD emulated by HHH versus DDD emulated by HHH1*

    [00002183][001a8d19][001a8d1d] 55 push ebp ; DDD of HHH[1] [00002184][001a8d19][001a8d1d] 8bec mov ebp,esp ; DDD of HHH[1] [00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD [0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    [00002190][001138c9][001138cd] 83c404 add esp,+04 ; DDD of HHH1 [00002193][001138cd][000015a8] 5d pop ebp ; DDD of HHH1 [00002194][001138d1][0003a980] c3 ret ; DDD of HHH1 [000021b0][0010382d][00000000] 83c404 add esp,+04 ; main() [000021b3][0010382d][00000000] 33c0 xor eax,eax ; main() [000021b5][00103831][00000018] 5d pop ebp ; main() [000021b6][00103835][00000000] c3 ret ; main()
    Number of Instructions Executed(352831) == 5266 Pages

    That the behaviours diverge means that one of them has a bug.
    If they are, as claimed, identical except for the name, the
    bug is in both of them.

    --
    Mikko

    --- SoupGate-Linux v1.05
    * Origin: Dragon's Lair ---:- FidoNet<>Usenet Gateway -:--- (3:633/10)
  • From Richard Heathfield@3:633/10 to Mikko on Mon Sep 15 10:54:46 2025
    From: rjh@cpax.org.uk

    On 15/09/2025 08:56, Mikko wrote:
    On 2025-09-05 15:29:57 +0000, olcott said:

    HHH and HHH1 have identical source code except
    for their name. The DDD of HHH1(DDD) has identical
    behavior to the directly executed DDD().

    DDD calls HHH(DDD) in recursive emulation. DDD does
    not call HHH1 at all. This is why the behavior
    of DDD.HHH1 is different than the behavior of DDD.HHH

    _DDD()
    [00002183] 55             push ebp
    [00002184] 8bec           mov ebp,esp
    [00002186] 6883210000     push 00002183 ; push DDD
    [0000218b] e833f4ffff     call 000015c3 ; call HHH
    [00002190] 83c404         add esp,+04
    [00002193] 5d             pop ebp
    [00002194] c3             ret
    Size in bytes:(0018) [00002194]

    _main()
    [000021a3] 55             push ebp
    [000021a4] 8bec           mov ebp,esp
    [000021a6] 6883210000     push 00002183 ; push DDD
    [000021ab] e843f3ffff     call 000014f3 ; call HHH1
    [000021b0] 83c404         add esp,+04
    [000021b3] 33c0           xor eax,eax
    [000021b5] 5d             pop ebp
    [000021b6] c3             ret
    Size in bytes:(0020) [000021b6]

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  ========== =============
    [000021a3][0010382d][00000000] 55         push ebp      ; main()
    [000021a4][0010382d][00000000] 8bec       mov ebp,esp   ; main()
    [000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
    [000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call
    HHH1
    New slave_stack at:1038d1

    Begin Local Halt Decider Simulation   Execution Trace Stored
    at:1138d9
    [00002183][001138c9][001138cd] 55         push ebp      ; DDD >> of HHH1
    [00002184][001138c9][001138cd] 8bec       mov ebp,esp   ; DDD
    of HHH1
    [00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:14e2f9

    Begin Local Halt Decider Simulation   Execution Trace Stored
    at:15e301
    [00002183][0015e2f1][0015e2f5] 55         push ebp      ; DDD >> of HHH[0]
    [00002184][0015e2f1][0015e2f5] 8bec       mov ebp,esp   ; DDD
    of HHH[0]
    [00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:198d21

    *This is the beginning of the divergence of the behavior*
    *of DDD emulated by HHH versus DDD emulated by HHH1*

    [00002183][001a8d19][001a8d1d] 55         push ebp      ; DDD >> of HHH[1]
    [00002184][001a8d19][001a8d1d] 8bec       mov ebp,esp   ; DDD
    of HHH[1]
    [00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    [00002190][001138c9][001138cd] 83c404     add esp,+04 ; DDD of
    HHH1
    [00002193][001138cd][000015a8] 5d         pop ebp     ; DDD of >> HHH1
    [00002194][001138d1][0003a980] c3         ret         ; DDD of
    HHH1
    [000021b0][0010382d][00000000] 83c404     add esp,+04 ; main()
    [000021b3][0010382d][00000000] 33c0       xor eax,eax ; main()
    [000021b5][00103831][00000018] 5d         pop ebp     ; main() >> [000021b6][00103835][00000000] c3         ret         ; main()
    Number of Instructions Executed(352831) == 5266 Pages

    That the behaviours diverge means that one of them has a bug.
    If they are, as claimed, identical except for the name, the
    bug is in both of them.

    Just wait.

    "HHH1, HHH2, HHH3, HHH4, HHH5, HHH6, HHH7, HHH8, HHH9, HHH10
    ***all agree*** with me, therefore I must be right."

    --
    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

    --- SoupGate-Linux v1.05
    * Origin: Dragon's Lair ---:- FidoNet<>Usenet Gateway -:--- (3:633/10)
  • From Mikko@3:633/10 to olcott on Thu Sep 18 12:33:57 2025
    From: mikko.levanto@iki.fi

    On 2025-09-17 04:02:15 +0000, olcott said:

    On 9/15/2025 2:56 AM, Mikko wrote:
    On 2025-09-05 15:29:57 +0000, olcott said:

    HHH and HHH1 have identical source code except
    for their name. The DDD of HHH1(DDD) has identical
    behavior to the directly executed DDD().

    DDD calls HHH(DDD) in recursive emulation. DDD does
    not call HHH1 at all. This is why the behavior
    of DDD.HHH1 is different than the behavior of DDD.HHH

    _DDD()
    [00002183] 55             push ebp
    [00002184] 8bec           mov ebp,esp
    [00002186] 6883210000     push 00002183 ; push DDD
    [0000218b] e833f4ffff     call 000015c3 ; call HHH
    [00002190] 83c404         add esp,+04
    [00002193] 5d             pop ebp
    [00002194] c3             ret
    Size in bytes:(0018) [00002194]

    _main()
    [000021a3] 55             push ebp
    [000021a4] 8bec           mov ebp,esp
    [000021a6] 6883210000     push 00002183 ; push DDD
    [000021ab] e843f3ffff     call 000014f3 ; call HHH1
    [000021b0] 83c404         add esp,+04
    [000021b3] 33c0           xor eax,eax
    [000021b5] 5d             pop ebp
    [000021b6] c3             ret
    Size in bytes:(0020) [000021b6]

      machine   stack     stack     machine    assembly
      address   address   data      code       language
      ========  ========  ========  ========== =============
    [000021a3][0010382d][00000000] 55         push ebp      ; main()
    [000021a4][0010382d][00000000] 8bec       mov ebp,esp   ; main()
    [000021a6][00103829][00002183] 6883210000 push 00002183 ; push DDD
    [000021ab][00103825][000021b0] e843f3ffff call 000014f3 ; call HHH1
    New slave_stack at:1038d1

    Begin Local Halt Decider Simulation   Execution Trace Stored at:1138d9
    [00002183][001138c9][001138cd] 55         push ebp      ; DDD of HHH1
    [00002184][001138c9][001138cd] 8bec       mov ebp,esp   ; DDD of HHH1
    [00002186][001138c5][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][001138c1][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:14e2f9

    Begin Local Halt Decider Simulation   Execution Trace Stored at:15e301
    [00002183][0015e2f1][0015e2f5] 55         push ebp      ; DDD of HHH[0]
    [00002184][0015e2f1][0015e2f5] 8bec       mov ebp,esp   ; DDD of HHH[0]
    [00002186][0015e2ed][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][0015e2e9][00002190] e833f4ffff call 000015c3 ; call HHH
    New slave_stack at:198d21

    *This is the beginning of the divergence of the behavior*
    *of DDD emulated by HHH versus DDD emulated by HHH1*

    [00002183][001a8d19][001a8d1d] 55         push ebp      ; DDD of HHH[1]
    [00002184][001a8d19][001a8d1d] 8bec       mov ebp,esp   ; DDD of HHH[1]
    [00002186][001a8d15][00002183] 6883210000 push 00002183 ; push DDD
    [0000218b][001a8d11][00002190] e833f4ffff call 000015c3 ; call HHH
    Local Halt Decider: Infinite Recursion Detected Simulation Stopped

    [00002190][001138c9][001138cd] 83c404     add esp,+04 ; DDD of HHH1
    [00002193][001138cd][000015a8] 5d         pop ebp     ; DDD of HHH1
    [00002194][001138d1][0003a980] c3         ret         ; DDD of HHH1
    [000021b0][0010382d][00000000] 83c404     add esp,+04 ; main()
    [000021b3][0010382d][00000000] 33c0       xor eax,eax ; main()
    [000021b5][00103831][00000018] 5d         pop ebp     ; main()
    [000021b6][00103835][00000000] c3         ret         ; main()
    Number of Instructions Executed(352831) == 5266 Pages

    That the behaviours diverge means that one of them has a bug.
    If they are, as claimed, identical except for the name, the
    bug is in both of them.

    HHH and HHH1 both emulate their input exactly
    according to the semantics of the x86 language.

    Neither of them emulates the input sufficiently to detect either the termination or a tight loop. DD does not offer eany other alternatives
    unless HHH or HHH1 is a non-decider.

    Don't denigrate my work on the basis of your own
    lack of sufficient expertise. *THERE IS NO BUG*

    I have sufficient exprerience as a bug hunter in major industry.

    --
    Mikko

    --- SoupGate-Linux v1.05
    * Origin: Dragon's Lair ---:- FidoNet<>Usenet Gateway -:--- (3:633/10)