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

    From olcott@[email protected] to comp.theory,comp.lang.c++,comp.lang.c,comp.ai.philosophy on Fri Sep 5 10:29:57 2025
    From Newsgroup: comp.lang.c

    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
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@[email protected] to comp.lang.c on Mon Sep 15 10:56:36 2025
    From Newsgroup: comp.lang.c

    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

    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Richard Heathfield@[email protected] to comp.lang.c on Mon Sep 15 10:54:46 2025
    From Newsgroup: comp.lang.c

    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
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From olcott@[email protected] to comp.lang.c on Tue Sep 16 23:02:15 2025
    From Newsgroup: comp.lang.c

    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.

    If this is too difficult for you that is OK this
    is a C group. On the other hand comp.lang.asm.x86
    has been dead for a while.

    Don't denigrate my work on the basis of your own
    lack of sufficient expertise. *THERE IS NO BUG*
    --
    Copyright 2025 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.21a-Linux NewsLink 1.2
  • From Mikko@[email protected] to comp.lang.c on Thu Sep 18 12:33:57 2025
    From Newsgroup: comp.lang.c

    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

    --- Synchronet 3.21a-Linux NewsLink 1.2