• Re: ChatGPT explains why by rebuttal of the halting problem proofsis correct

    From Kaz Kylheku@643-408-1753@kylheku.com to comp.lang.c on Sun Oct 13 16:34:31 2024
    From Newsgroup: comp.lang.c

    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb: >>>> On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.
    --
    TXR Programming Language: http://nongnu.org/txr
    Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
    Mastodon: @Kazinator@mstdn.ca
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Sun Oct 13 21:57:30 2024
    From Newsgroup: comp.lang.c

    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb: >>>>> On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect* https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
    HHH(DDD);
    return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above non-terminating behavior of its input.

    *Fully operational code is here* https://github.com/plolcott/x86utm/blob/master/Halt7.c https://github.com/plolcott/x86utm

    *Here is the original (not dumbed down) version*
    from line 1345 of the above source file

    int DD(int (*x)())
    {
    int Halt_Status = H(x, x);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Mon Oct 14 15:17:07 2024
    From Newsgroup: comp.lang.c

    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect* https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
    foobar();
    }

    ?

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From tTh@tth@none.invalid to comp.lang.c on Tue Oct 15 01:14:35 2024
    From Newsgroup: comp.lang.c

    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here* https://github.com/plolcott/x86utm/blob/master/Halt7.c

    This program does not compile, so it cannot be executed.
    Halting problem solved.
    --
    +++
    tTh des Bourtoulots
    +++


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Mon Oct 14 16:33:55 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

      This program does not compile, so it cannot be executed.
      Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all. MSVC,
    GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    239 | PushBack(*execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
    | ^
    main.c:240:36: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    240 | Aborted = Needs_To_Be_Aborted0((Decoded_Line_Of_Code*)*execution_trace,
    Address_of_H, P);
    | ^
    main.c: In function ‘Decide_Halting’:
    main.c:364:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    364 | PushBack(*execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
    | ^
    main.c:365:35: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    365 | Aborted = Needs_To_Be_Aborted((Decoded_Line_Of_Code*)*execution_trace,
    | ^
    main.c: In function ‘Decide_Halting_HH’:
    main.c:495:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    495 | PushBack(**execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
    | ^
    main.c:504:22: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    504 | u32* address = (u32*)**execution_trace;
    | ^
    main.c:513:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    513 |
    Needs_To_Be_Aborted_HH((Decoded_Line_Of_Code*)**execution_trace); // 2024-08-27
    | ^
    main.c: In function ‘Init_Halts_HH’:
    main.c:538:40: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    538 | Output((char*)"New slave_stack at:", (u32)*slave_stack);
    | ^
    main.c:543:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    543 | **execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
    | ^
    main.c: In function ‘HH1’:
    main.c:615:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    615 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
    &decoded, &code_end, (u32)P,
    |
    ^
    main.c:619:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    619 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:619:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    619 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c: In function ‘H’:
    main.c:699:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    699 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
    &decoded, &code_end, (u32)P,
    |
    ^
    main.c:703:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    703 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:703:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    703 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c: In function ‘HHH1’:
    main.c:777:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    777 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
    &decoded, &code_end, (u32)P,
    |
    ^
    main.c:782:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    782 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
    slave_stack); // 2024-06-16
    | ^
    main.c: In function ‘HHH’:
    main.c:857:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    857 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
    &decoded, &code_end, (u32)P,
    |
    ^
    main.c:862:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    862 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
    slave_stack); // 2024-06-16
    | ^
    main.c: In function ‘Address_of_Sipser_H’:
    main.c:942:77: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    942 | u32 Root = Init_Halts_HH(&Aborted, &execution_trace,
    &decoded, &code_end, (u32)P,
    |
    ^
    main.c:947:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    947 | Init_slave_state0((u32)P, End_Of_Code, slave_state,
    slave_stack); // 2024-06-16
    | ^
    main.c: In function ‘H1’:
    main.c:970:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    970 | u32 End_Of_Code = get_code_end((u32)H1);
    | ^
    main.c:971:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    971 | u32 Address_of_H1 = (u32)H1; // 2022-08-15
    | ^
    main.c:972:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    972 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:978:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    978 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
    | ^
    main.c:980:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    980 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:980:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    980 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:984:65: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    984 | &slave_state, &slave_stack, Address_of_H1, (u32)P, (u32)I))
    | ^ main.c:984:73: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    984 | &slave_state, &slave_stack, Address_of_H1, (u32)P, (u32)I))
    |
    ^
    main.c: In function ‘H_prior’:
    main.c:1003:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1003 | u32 End_Of_Code = get_code_end((u32)H_prior);
    | ^
    main.c:1004:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1004 | u32 Address_of_H = (u32)H_prior;
    | ^
    main.c:1005:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1005 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:1011:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1011 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
    | ^
    main.c:1014:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1014 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1014:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1014 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1018:64: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1018 | &slave_state, &slave_stack, Address_of_H, (u32)P, (u32)I))
    | ^ main.c:1018:72: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1018 | &slave_state, &slave_stack, Address_of_H, (u32)P, (u32)I))
    |
    ^
    main.c: In function ‘Sipser_H’:
    main.c:1029:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1029 | u32 End_Of_Code = get_code_end((u32)H_prior);
    | ^
    main.c:1030:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1030 | u32 Address_of_Sipser_H = (u32)Sipser_H;
    | ^
    main.c:1031:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1031 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:1037:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1037 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
    | ^
    main.c:1040:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1040 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1040:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1040 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1044:71: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1044 | &slave_state, &slave_stack,
    Address_of_Sipser_H, (u32)P, (u32)I))
    |
    ^
    main.c:1044:79: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1044 | &slave_state, &slave_stack,
    Address_of_Sipser_H, (u32)P, (u32)I))
    |
    ^
    main.c: In function ‘Kozen_K’:
    main.c:1055:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1055 | u32 End_Of_Code = get_code_end((u32)H_prior);
    | ^
    main.c:1056:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1056 | u32 Address_of_Kozen_K = (u32)Kozen_K;
    | ^
    main.c:1057:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1057 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:1063:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1063 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 10000);
    | ^
    main.c:1066:20: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1066 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1066:28: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1066 | Init_slave_state((u32)P, (u32)I, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1070:70: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1070 | &slave_state, &slave_stack,
    Address_of_Kozen_K, (u32)P, (u32)I))
    |
    ^
    main.c:1070:78: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1070 | &slave_state, &slave_stack,
    Address_of_Kozen_K, (u32)P, (u32)I))
    |
    ^
    main.c: In function ‘H0’:
    main.c:1081:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1081 | u32 End_Of_Code = get_code_end((u32)H0); ;
    | ^
    main.c:1082:36: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1082 | u32 Address_of_H0 = (u32)H0;
    | ^
    main.c:1083:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1083 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:1089:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1089 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 1000);
    | ^
    main.c:1090:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1090 | Init_slave_state0((u32)P, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1094:65: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1094 | &slave_state, &slave_stack, Address_of_H0, (u32)P))
    | ^ main.c: In function ‘T’:
    main.c:1105:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1105 | u32 End_Of_Code = get_code_end((u32)T); ;
    | ^
    main.c:1106:35: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1106 | u32 Address_of_T = (u32)T;
    | ^
    main.c:1107:48: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1107 | u32 code_end = get_code_end((u32)P);
    | ^
    main.c:1113:26: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1113 | u32 execution_trace =
    (u32)Allocate(sizeof(Decoded_Line_Of_Code) * 1000);
    | ^
    main.c:1114:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1114 | Init_slave_state0((u32)P, End_Of_Code, slave_state, slave_stack);
    | ^
    main.c:1118:64: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
    1118 | &slave_state, &slave_stack, Address_of_T, (u32)P))
    | ^ main.c: In function ‘D0’:
    main.c:1228:24: warning: passing argument 1 of ‘H0’ from incompatible pointer type [-Wincompatible-pointer-types]
    1228 | int Halt_Status = H0(D0);
    | ^~
    | |
    | int (*)()
    main.c:1079:12: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
    of type ‘int (*)()’
    1079 | u32 H0(ptr P)
    | ~~~~^
    main.c: In function ‘B’:
    main.c:1249:11: warning: passing argument 1 of ‘H_prior’ from
    incompatible pointer type [-Wincompatible-pointer-types]
    1249 | H_prior(x, x);
    | ^
    | |
    | int (*)()
    main.c:1001:17: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
    of type ‘int (*)()’
    1001 | u32 H_prior(ptr P, void* I) // 2024-09-15 was H
    | ~~~~^
    main.c: In function ‘Infinite_Recursion2’:
    main.c:1260:34: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
    1260 | H_prior(Infinite_Recursion2, (ptr)N);
    | ^
    main.c: In function ‘D1’:
    main.c:1300:29: warning: passing argument 1 of ‘H_prior’ from
    incompatible pointer type [-Wincompatible-pointer-types]
    1300 | int Halt_Status = H_prior(x, x);
    | ^
    | |
    | int (*)()
    main.c:1001:17: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is
    of type ‘int (*)()’
    1001 | u32 H_prior(ptr P, void* I) // 2024-09-15 was H
    | ~~~~^
    main.c: In function ‘PP’:
    main.c:1309:23: warning: passing argument 1 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1309 | int Halt_Status = H(x, x); // 2024-09-15 was HH
    | ^
    | |
    | ptr2
    main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘ptr2’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c:1309:26: warning: passing argument 2 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1309 | int Halt_Status = H(x, x); // 2024-09-15 was HH
    | ^
    | |
    | ptr2
    main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘ptr2’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c: In function ‘DD’:
    main.c:1347:23: warning: passing argument 1 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1347 | int Halt_Status = H(x, x); // 2024-09-15 was HH
    | ^
    | |
    | int (*)()
    main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘int (*)()’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c:1347:26: warning: passing argument 2 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1347 | int Halt_Status = H(x, x); // 2024-09-15 was HH
    | ^
    | |
    | int (*)()
    main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘int (*)()’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c: In function ‘D’:
    main.c:1367:9: warning: passing argument 1 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1367 | if (H(M, M) )
    | ^
    | |
    | int (*)()
    main.c:643:11: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘int (*)()’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c:1367:12: warning: passing argument 2 of ‘H’ from incompatible pointer type [-Wincompatible-pointer-types]
    1367 | if (H(M, M) )
    | ^
    | |
    | int (*)()
    main.c:643:18: note: expected ‘ptr’ {aka ‘void (*)()’} but argument is of type ‘int (*)()’
    643 | u32 H(ptr P, ptr I) // 2024-09-15 was HH
    | ~~~~^
    main.c: Assembler messages:
    main.c:601: Error: too many memory references for `lea'
    main.c:602: Error: too many memory references for `mov'
    main.c:603: Error: too many memory references for `lea'
    main.c:604: Error: too many memory references for `mov'
    main.c:605: Error: too many memory references for `mov'
    main.c:606: Error: too many memory references for `mov'
    main.c:685: Error: too many memory references for `lea'
    main.c:686: Error: too many memory references for `mov'
    main.c:687: Error: too many memory references for `lea'
    main.c:688: Error: too many memory references for `mov'
    main.c:689: Error: too many memory references for `mov'
    main.c:690: Error: too many memory references for `mov'
    main.c:763: Error: too many memory references for `lea'
    main.c:764: Error: too many memory references for `mov'
    main.c:765: Error: too many memory references for `lea'
    main.c:766: Error: too many memory references for `mov'
    main.c:767: Error: too many memory references for `mov'
    main.c:768: Error: too many memory references for `mov'
    main.c:843: Error: too many memory references for `lea'
    main.c:844: Error: too many memory references for `mov'
    main.c:845: Error: too many memory references for `lea'
    main.c:846: Error: too many memory references for `mov'
    main.c:847: Error: too many memory references for `mov'
    main.c:848: Error: too many memory references for `mov'
    main.c:928: Error: too many memory references for `lea'
    main.c:929: Error: too many memory references for `mov'
    main.c:930: Error: too many memory references for `lea'
    main.c:931: Error: too many memory references for `mov'
    main.c:932: Error: too many memory references for `mov'
    main.c:933: Error: too many memory references for `mov'
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Mon Oct 14 17:23:29 2024
    From Newsgroup: comp.lang.c

    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect* https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
      HHH(DDD);
      return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above non-terminating behavior of its input.

    *Fully operational code is here* https://github.com/plolcott/x86utm/blob/master/Halt7.c https://github.com/plolcott/x86utm

    *Here is the original (not dumbed down) version*
    from line 1345 of the above source file

    int DD(int (*x)())
    {
      int Halt_Status = H(x, x);
      if (Halt_Status)
        HERE: goto HERE;
      return Halt_Status;
    }


    Can you put up a full blown MSVC solution that works on GitHub?
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Tue Oct 15 01:36:01 2024
    From Newsgroup: comp.lang.c

    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all. MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      239 |     PushBack(*execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
          |                                ^

    You're trying to compile it as 64 bit code. PO's x86utm.exe expects 32-bit.

    Mike.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Mon Oct 14 20:57:24 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 5:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all.
    MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size
    [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded,
    sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects 32- bit.

    Ahhhh.... Let me try again for x86 in MSVC. Well:


    _______________________
    Severity Code Description Project File Line Suppression State Details
    Error (active) E0140 too many arguments in function call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1177
    Error (active) E0140 too many arguments in function call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1239
    Error (active) E0140 too many arguments in function call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1320
    Error (active) E0167 argument of type "void (*)(u32 N)" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1262
    Error (active) E0167 argument of type "ptr2" (aka "int (*)()") is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1311
    Error (active) E0167 argument of type "ptr2" (aka "int (*)()") is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1311
    Error (active) E0167 argument of type "int (*)(int (*M)())" is
    incompatible with parameter of type "int (*)()" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1376
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1230
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1251
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1302
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1349
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1349
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1369
    Error (active) E0167 argument of type "int (*)()" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1369
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    102
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    106
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    107
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    248
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    250
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    252
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1093
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1094
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1095
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1100
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1117
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1118
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1119
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1124
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1337
    Error (active) E0167 argument of type "const char *" is incompatible
    with parameter of type "char *" ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1376
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [49]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    250
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1100
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1124
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [44]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    248
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [41]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    252
    Error C2664 'void OutputString(char *)': cannot convert argument 1 from 'const char [25]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1337
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [51]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1093
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [50]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1117
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    106
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    107
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [15]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1094
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [14]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1118
    Error C2664 'void Output(char *,u32)': cannot convert argument 1 from 'const char [12]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    102
    Error C2664 'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'void (__cdecl *)(u32)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1262
    Error C2664 'u32 H_prior(ptr,void *)': cannot convert argument 1 from
    'int (__cdecl *)(void)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1251
    Error C2664 'u32 H_prior(ptr,void *)': cannot convert argument 1 from
    'int (__cdecl *)(void)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1302
    Error C2664 'u32 H0(ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1230
    Error C2664 'u32 H(ptr,ptr)': cannot convert argument 1 from 'ptr2' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1311
    Error C2664 'u32 H(ptr,ptr)': cannot convert argument 1 from 'int
    (__cdecl *)(void)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1349
    Error C2664 'u32 H(ptr,ptr)': cannot convert argument 1 from 'int
    (__cdecl *)(void)' to 'ptr' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1369
    Error C2664 'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers **,Registers **,u32 **,u32,u32)': cannot convert
    argument 1 from 'const char [5]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1095
    Error C2664 'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers **,Registers **,u32 **,u32,u32)': cannot convert
    argument 1 from 'const char [4]' to 'char *' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1119
    Error C2197 'ptr': too many arguments for call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1177
    Error C2197 'ptr': too many arguments for call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1239
    Error C2197 'ptr': too many arguments for call ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1320
    Error C2664 'int D(int (__cdecl *)(void))': cannot convert argument 1
    from 'int (__cdecl *)(int (__cdecl *)(void))' to 'int (__cdecl *)(void)' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp
    1376

    _______________________
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Tue Oct 15 17:06:10 2024
    From Newsgroup: comp.lang.c

    On 15/10/2024 04:57, Chris M. Thomasson wrote:
    On 10/14/2024 5:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all. MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects 32- bit.

    Ahhhh.... Let me try again for x86 in MSVC. Well:


    _______________________
    Severity    Code    Description    Project    File    Line    Suppression State    Details
    Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177 Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239 Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320 Error (active)    E0167    argument of type "void (*)(u32 N)" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262 Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is incompatible with parameter
    of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311 Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is incompatible with parameter
    of type "ptr" (aka "void (*)()") ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311 Error (active)    E0167    argument of type "int (*)(int (*M)())" is incompatible with parameter of
    type "int (*)()"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369 Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type "ptr"
    (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [49]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [44]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [41]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [25]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [51]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [50]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [15]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [14]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [12]' to
    'char *'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'void (__cdecl *)(u32)'
    to 'ptr'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl *)(void)'
    to 'ptr'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl *)(void)'
    to 'ptr'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302 Error    C2664    'u32 H0(ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230
    Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'ptr2' to 'ptr'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311
    Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to
    'ptr'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349 Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to
    'ptr'    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369 Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers
    **,Registers **,u32 **,u32,u32)': cannot convert argument 1 from 'const char [5]' to 'char *'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095
    Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers
    **,Registers **,u32 **,u32,u32)': cannot convert argument 1 from 'const char [4]' to 'char *'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119
    Error    C2197    'ptr': too many arguments for call    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177 Error    C2197    'ptr': too many arguments for call    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239 Error    C2197    'ptr': too many arguments for call    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320 Error    C2664    'int D(int (__cdecl *)(void))': cannot convert argument 1 from 'int (__cdecl
    *)(int (__cdecl *)(void))' to 'int (__cdecl *)(void)' ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376

    _______________________

    You seem to be compiling the wrong program. The source code is halt7.c and has nothing to do with
    ct_threads.

    Mike.




    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Tue Oct 15 17:46:42 2024
    From Newsgroup: comp.lang.c

    On 15/10/2024 17:06, Mike Terry wrote:
    On 15/10/2024 04:57, Chris M. Thomasson wrote:
    On 10/14/2024 5:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all. MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded, sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects 32- bit.

    Ahhhh.... Let me try again for x86 in MSVC. Well:


    _______________________
    Severity    Code    Description    Project    File    Line    Suppression State    Details
    Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177
    Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239
    Error (active)    E0140    too many arguments in function call ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320
    Error (active)    E0167    argument of type "void (*)(u32 N)" is incompatible with parameter of
    type "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262
    Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is incompatible with
    parameter of type "ptr" (aka "void (*)()") ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311
    Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is incompatible with
    parameter of type "ptr" (aka "void (*)()") ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311
    Error (active)    E0167    argument of type "int (*)(int (*M)())" is incompatible with parameter
    of type "int (*)()"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369
    Error (active)    E0167    argument of type "int (*)()" is incompatible with parameter of type
    "ptr" (aka "void (*)()")    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 >> Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type
    "char *"    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376
    Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [49]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 >> Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100
    Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [48]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124
    Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [44]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 >> Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [41]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 >> Error    C2664    'void OutputString(char *)': cannot convert argument 1 from 'const char [25]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337
    Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [51]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093
    Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [50]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117
    Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 >> Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 >> Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [15]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094
    Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [14]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118
    Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [12]' to
    'char *'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 >> Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'void (__cdecl
    *)(u32)' to 'ptr'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262
    Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl
    *)(void)' to 'ptr'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251
    Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl
    *)(void)' to 'ptr'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302
    Error    C2664    'u32 H0(ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230
    Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'ptr2' to 'ptr'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311
    Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to
    'ptr'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349
    Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to
    'ptr'    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369
    Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers
    **,Registers **,u32 **,u32,u32)': cannot convert argument 1 from 'const char [5]' to 'char *'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095
    Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code **,u32,Registers
    **,Registers **,u32 **,u32,u32)': cannot convert argument 1 from 'const char [4]' to 'char *'
    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119
    Error    C2197    'ptr': too many arguments for call    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177
    Error    C2197    'ptr': too many arguments for call    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239
    Error    C2197    'ptr': too many arguments for call    ct_thread_playground
    D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320
    Error    C2664    'int D(int (__cdecl *)(void))': cannot convert argument 1 from 'int (__cdecl
    *)(int (__cdecl *)(void))' to 'int (__cdecl *)(void)' ct_thread_playground >> D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376

    _______________________

    You seem to be compiling the wrong program.  The source code is halt7.c and has nothing to do with
    ct_threads.

    ..and note the code being compiled is C code, not C++..


    Mike.




    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Tue Oct 15 12:40:40 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 9:06 AM, Mike Terry wrote:
    [...]
    _______________________

    You seem to be compiling the wrong program.  The source code is halt7.c
    and has nothing to do with ct_threads.

    Shit happens Mike, sorry about that. Anyway, it compiles with C for x86:

    https://i.ibb.co/1bKYQMv/image.png

    but crashes during a run:

    https://i.ibb.co/T0f1Wjg/image.png

    The call stack for the error is:

    ct_thread_playground.exe!Init_Halts_HH(unsigned int * * Aborted,
    unsigned int * * execution_trace, Decoded * * decoded, unsigned int * code_end, unsigned int P, x86_Registers * * master_state, x86_Registers
    * * slave_state, unsigned int * * slave_stack) Line 544 C
    ct_thread_playground.exe!H(void(*)() P, void(*)() I) Line 701 C
    ct_thread_playground.exe!D(int(*)() M) Line 1369 C
    ct_thread_playground.exe!main(...) Line 1376 C
    ct_thread_playground.exe!invoke_main() Line 78 C++
    ct_thread_playground.exe!__scrt_common_main_seh() Line 288 C++
    ct_thread_playground.exe!__scrt_common_main() Line 331 C++
    ct_thread_playground.exe!mainCRTStartup(void * __formal) Line 17 C++
    kernel32.dll!74d17ba9() Unknown
    [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
    ntdll.dll!76fdc0cb() Unknown
    ntdll.dll!76fdc04f() Unknown







    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Tue Oct 15 12:41:53 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 12:40 PM, Chris M. Thomasson wrote:
    On 10/15/2024 9:06 AM, Mike Terry wrote:
    [...]
    _______________________

    You seem to be compiling the wrong program.  The source code is
    halt7.c and has nothing to do with ct_threads.

    Any better Mike? ;^)


    Shit happens Mike, sorry about that. Anyway, it compiles with C for x86:

    https://i.ibb.co/1bKYQMv/image.png

    but crashes during a run:

    https://i.ibb.co/T0f1Wjg/image.png

    The call stack for the error is:

        ct_thread_playground.exe!Init_Halts_HH(unsigned int * * Aborted, unsigned int * * execution_trace, Decoded * * decoded, unsigned int * code_end, unsigned int P, x86_Registers * * master_state, x86_Registers
    * * slave_state, unsigned int * * slave_stack) Line 544    C
         ct_thread_playground.exe!H(void(*)() P, void(*)() I) Line 701    C
         ct_thread_playground.exe!D(int(*)() M) Line 1369    C
         ct_thread_playground.exe!main(...) Line 1376    C
         ct_thread_playground.exe!invoke_main() Line 78    C++
         ct_thread_playground.exe!__scrt_common_main_seh() Line 288    C++
         ct_thread_playground.exe!__scrt_common_main() Line 331    C++
         ct_thread_playground.exe!mainCRTStartup(void * __formal) Line 17    C++
         kernel32.dll!74d17ba9()    Unknown
         [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
         ntdll.dll!76fdc0cb()    Unknown
         ntdll.dll!76fdc04f()    Unknown








    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Tue Oct 15 12:42:42 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 5:23 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above non-terminating behavior of its input.

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c
    https://github.com/plolcott/x86utm

    *Here is the original (not dumbed down) version*
    from line 1345 of the above source file

    int DD(int (*x)())
    {
       int Halt_Status = H(x, x);
       if (Halt_Status)
         HERE: goto HERE;
       return Halt_Status;
    }


    Can you put up a full blown MSVC solution that works on GitHub?

    Nevermind. I got it to compile and run, but it crashes.

    https://i.ibb.co/T0f1Wjg/image.png


    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Tue Oct 15 12:54:18 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 3:17 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
        foobar();
    }

    ?


    Is that all it is? Infinite recursion blowing up the stack...
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Wed Oct 16 02:37:05 2024
    From Newsgroup: comp.lang.c

    On 15/10/2024 20:40, Chris M. Thomasson wrote:
    On 10/15/2024 9:06 AM, Mike Terry wrote:
    [...]
    _______________________

    You seem to be compiling the wrong program.  The source code is halt7.c and has nothing to do with
    ct_threads.

    Shit happens Mike, sorry about that. Anyway, it compiles with C for x86:

    https://i.ibb.co/1bKYQMv/image.png

    but crashes during a run:

    https://i.ibb.co/T0f1Wjg/image.png

    The call stack for the error is:

       ct_thread_playground.exe!Init_Halts_HH(unsigned int * * Aborted, unsigned int * *
    execution_trace, Decoded * * decoded, unsigned int * code_end, unsigned int P, x86_Registers * *
    master_state, x86_Registers * * slave_state, unsigned int * * slave_stack) Line 544    C
         ct_thread_playground.exe!H(void(*)() P, void(*)() I) Line 701    C
         ct_thread_playground.exe!D(int(*)() M) Line 1369    C
         ct_thread_playground.exe!main(...) Line 1376    C
         ct_thread_playground.exe!invoke_main() Line 78    C++
         ct_thread_playground.exe!__scrt_common_main_seh() Line 288    C++
         ct_thread_playground.exe!__scrt_common_main() Line 331    C++
         ct_thread_playground.exe!mainCRTStartup(void * __formal) Line 17    C++
         kernel32.dll!74d17ba9()    Unknown
         [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
         ntdll.dll!76fdc0cb()    Unknown
         ntdll.dll!76fdc04f()    Unknown


    It looks like you've compiled halt7.c and linked it to form an executable, then you're running that
    executable as an OS process? That's not what you need to do.

    halt7.c needs to be compiled to halt7.obj (assuming Windows) which is a COFF file. You've done that
    bit. The halt7.obj file is passed as a parameter to PO's x86utm.exe, whichx reads the COFF file as
    input data, and provides a virtual x86 environment in which to "run" the obj code. I'm actually a
    bit surprised that you were able to link halt7.obj to create an executable!

    So if you want to try out the code in halt7.c, you will need to build x86utm.exe, which provides the
    virtual environment in which it "runs". The source on Github has all the source, including the
    PO-written code and the code coming from libx86emu, which is the x86 emulation software PO uses.
    There is a MSVS project file to do the build, or you could compile/link the files manually if you
    had to. There are 6 C compilation units (from libx86emu) and 1 C++ compilation unit (x86utm.xpp).
    I think the code is written as 32-bit. (Obviously you need the header files also on Github.)

    So the process you will run in your debugger is x86utm.exe. That makes it tricky to "step through"
    halt7.c code, since halt7.c code is just data being manipulated within the x86utm process.

    The reason you can't just link halt7.c to an OS executable and run it is that it is full of calls to
    "primitive" ops like Allocate() and DebugStep() which are intercepted by x86utm.exe and processed
    within x86utm. Like a supervisor call mechanism.


    Mike.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Wed Oct 16 02:43:46 2024
    From Newsgroup: comp.lang.c

    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb: >>>>>>> On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
        foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by step emulation of DDD - it
    stops emulating after a while and returns, so DDD() halts. foobar() will never halt (ignoring
    physical resource constraints like running out of stack). foobar() undergoes infinite recursive
    call. DDD() exhibits /finite/ recursive emulation, then halts.

    Mike.




    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Tue Oct 15 20:57:35 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 6:37 PM, Mike Terry wrote:
    On 15/10/2024 20:40, Chris M. Thomasson wrote:
    On 10/15/2024 9:06 AM, Mike Terry wrote:
    [...]
    _______________________

    You seem to be compiling the wrong program.  The source code is
    halt7.c and has nothing to do with ct_threads.

    Shit happens Mike, sorry about that. Anyway, it compiles with C for x86:

    https://i.ibb.co/1bKYQMv/image.png

    but crashes during a run:

    https://i.ibb.co/T0f1Wjg/image.png

    The call stack for the error is:

    ;    ct_thread_playground.exe!Init_Halts_HH(unsigned int * * Aborted, >> unsigned int * * execution_trace, Decoded * * decoded, unsigned int *
    code_end, unsigned int P, x86_Registers * * master_state,
    x86_Registers * * slave_state, unsigned int * * slave_stack) Line
    544    C
          ct_thread_playground.exe!H(void(*)() P, void(*)() I) Line 701    C
          ct_thread_playground.exe!D(int(*)() M) Line 1369    C
          ct_thread_playground.exe!main(...) Line 1376    C
          ct_thread_playground.exe!invoke_main() Line 78    C++
          ct_thread_playground.exe!__scrt_common_main_seh() Line 288    C++
          ct_thread_playground.exe!__scrt_common_main() Line 331    C++ >>       ct_thread_playground.exe!mainCRTStartup(void * __formal) Line
    17    C++
          kernel32.dll!74d17ba9()    Unknown
          [Frames below may be incorrect and/or missing, no symbols loaded >> for kernel32.dll]
          ntdll.dll!76fdc0cb()    Unknown
          ntdll.dll!76fdc04f()    Unknown


    It looks like you've compiled halt7.c and linked it to form an
    executable, then you're running that executable as an OS process?
    That's not what you need to do.

    halt7.c needs to be compiled to halt7.obj (assuming Windows) which is a
    COFF file.  You've done that bit.  The halt7.obj file is passed as a parameter to PO's x86utm.exe, whichx reads the COFF file as input data,
    and provides a virtual x86 environment in which to "run" the obj code.
    I'm actually a bit surprised that you were able to link halt7.obj to
    create an executable!

    So if you want to try out the code in halt7.c, you will need to build x86utm.exe, which provides the virtual environment in which it "runs".
    The source on Github has all the source, including the PO-written code
    and the code coming from libx86emu, which is the x86 emulation software
    PO uses. There is a MSVS project file to do the build, or you could compile/link the files manually if you had to.  There are 6 C
    compilation units (from libx86emu) and 1 C++ compilation unit
    (x86utm.xpp). I think the code is written as 32-bit.  (Obviously you
    need the header files also on Github.)

    So the process you will run in your debugger is x86utm.exe.  That makes
    it tricky to "step through" halt7.c code, since halt7.c code is just
    data being manipulated within the x86utm process.

    The reason you can't just link halt7.c to an OS executable and run it is that it is full of calls to "primitive" ops like Allocate() and
    DebugStep() which are intercepted by x86utm.exe and processed within x86utm.  Like a supervisor call mechanism.

    ahhh! Thanks you for the heads up Mike! Thanks.
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Wed Oct 16 13:41:19 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns, so DDD() halts.  foobar() will never halt (ignoring physical resource constraints like running out of stack).  foobar() undergoes infinite recursive call.  DDD() exhibits /finite/ recursive emulation, then halts.

    So, any similar to:
    ______________
    void foo(
    unsigned long ri,
    unsigned long rn
    ) {
    if (ri > rn) return;
    foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Bonita Montero@Bonita.Montero@gmail.com to comp.lang.c on Thu Oct 17 19:15:35 2024
    From Newsgroup: comp.lang.c

    Am 15.10.2024 um 01:14 schrieb tTh:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

      This program does not compile, so it cannot be executed.
      Halting problem solved.

    LOL, YMMD !
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:25:41 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 5:17 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
        foobar();
    }

    ?


    Yes thus you can see that the conventional halting
    problem input is also infinitely recursive to every
    emulating termination analyzer.

    DD emulated by HHH never reaches past its first line.

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }

    Fully operational code with embedded x86 emulator. https://github.com/plolcott/x86utm/blob/master/Halt7.c
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:30:12 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 6:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

      This program does not compile, so it cannot be executed.
      Halting problem solved.


    Halt7.c is compiled to an object file and not linked. https://github.com/plolcott/x86utm/blob/master/__Run_7.bat

    the x86utm operating system takes this Halt7.obj file
    as the machine description that it emulates.
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:32:13 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 7:23 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above non-terminating behavior of its input.

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c
    https://github.com/plolcott/x86utm

    *Here is the original (not dumbed down) version*
    from line 1345 of the above source file

    int DD(int (*x)())
    {
       int Halt_Status = H(x, x);
       if (Halt_Status)
         HERE: goto HERE;
       return Halt_Status;
    }


    Can you put up a full blown MSVC solution that works on GitHub?

    It has always been there. https://github.com/plolcott/x86utm/blob/master/x86utm.sln
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:32:47 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 7:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all.
    MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different size
    [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded,
    sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects 32- bit.

    Mike.


    https://github.com/plolcott/x86utm/blob/master/x86utm.sln
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:33:26 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 10:57 PM, Chris M. Thomasson wrote:
    On 10/14/2024 5:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all.
    MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different
    size [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded,
    sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects
    32- bit.

    Ahhhh.... Let me try again for x86 in MSVC. Well:


    _______________________
    Severity    Code    Description    Project    File    Line Suppression State    Details
    Error (active)    E0140    too many arguments in function call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177 Error (active)    E0140    too many arguments in function call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239 Error (active)    E0140    too many arguments in function call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320 Error (active)    E0167    argument of type "void (*)(u32 N)" is incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262 Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is
    incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311 Error (active)    E0167    argument of type "ptr2" (aka "int (*)()") is
    incompatible with parameter of type "ptr" (aka "void (*)()") ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311 Error (active)    E0167    argument of type "int (*)(int (*M)())" is incompatible with parameter of type "int (*)()"    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369
    Error (active)    E0167    argument of type "int (*)()" is incompatible
    with parameter of type "ptr" (aka "void (*)()")    ct_thread_playground D:\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369
    Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337 Error (active)    E0167    argument of type "const char *" is incompatible with parameter of type "char *"    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [49]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [48]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [48]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [44]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [41]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252 Error    C2664    'void OutputString(char *)': cannot convert argument 1
    from 'const char [25]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [51]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [50]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [34]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [15]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [14]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118 Error    C2664    'void Output(char *,u32)': cannot convert argument 1 from 'const char [12]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'void (__cdecl *)(u32)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251 Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302 Error    C2664    'u32 H0(ptr)': cannot convert argument 1 from 'int (__cdecl *)(void)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230 Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'ptr2' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1311 Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int
    (__cdecl *)(void)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1349 Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from 'int
    (__cdecl *)(void)' to 'ptr'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1369 Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code
    **,u32,Registers **,Registers **,u32 **,u32,u32)': cannot convert
    argument 1 from 'const char [5]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095 Error    C2664    'u32 Decide_Halting0(char *,u32 *,Decoded_Line_Of_Code
    **,u32,Registers **,Registers **,u32 **,u32,u32)': cannot convert
    argument 1 from 'const char [4]' to 'char *'    ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119 Error    C2197    'ptr': too many arguments for call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177 Error    C2197    'ptr': too many arguments for call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239 Error    C2197    'ptr': too many arguments for call ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1320 Error    C2664    'int D(int (__cdecl *)(void))': cannot convert argument 1 from 'int (__cdecl *)(int (__cdecl *)(void))' to 'int
    (__cdecl *)(void)' ct_thread_playground D: \ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376

    _______________________

    https://github.com/plolcott/x86utm/blob/master/x86utm.sln https://github.com/plolcott/x86utm/blob/master/__Run_7.bat
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:37:24 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 8:37 PM, Mike Terry wrote:
    On 15/10/2024 20:40, Chris M. Thomasson wrote:
    On 10/15/2024 9:06 AM, Mike Terry wrote:
    [...]
    _______________________

    You seem to be compiling the wrong program.  The source code is
    halt7.c and has nothing to do with ct_threads.

    Shit happens Mike, sorry about that. Anyway, it compiles with C for x86:

    https://i.ibb.co/1bKYQMv/image.png

    but crashes during a run:

    https://i.ibb.co/T0f1Wjg/image.png

    The call stack for the error is:

    ;    ct_thread_playground.exe!Init_Halts_HH(unsigned int * * Aborted, >> unsigned int * * execution_trace, Decoded * * decoded, unsigned int *
    code_end, unsigned int P, x86_Registers * * master_state,
    x86_Registers * * slave_state, unsigned int * * slave_stack) Line
    544    C
          ct_thread_playground.exe!H(void(*)() P, void(*)() I) Line 701    C
          ct_thread_playground.exe!D(int(*)() M) Line 1369    C
          ct_thread_playground.exe!main(...) Line 1376    C
          ct_thread_playground.exe!invoke_main() Line 78    C++
          ct_thread_playground.exe!__scrt_common_main_seh() Line 288    C++
          ct_thread_playground.exe!__scrt_common_main() Line 331    C++ >>       ct_thread_playground.exe!mainCRTStartup(void * __formal) Line
    17    C++
          kernel32.dll!74d17ba9()    Unknown
          [Frames below may be incorrect and/or missing, no symbols loaded >> for kernel32.dll]
          ntdll.dll!76fdc0cb()    Unknown
          ntdll.dll!76fdc04f()    Unknown


    It looks like you've compiled halt7.c and linked it to form an
    executable, then you're running that executable as an OS process?
    That's not what you need to do.

    halt7.c needs to be compiled to halt7.obj (assuming Windows) which is a
    COFF file.  You've done that bit.  The halt7.obj file is passed as a parameter to PO's x86utm.exe, whichx reads the COFF file as input data,
    and provides a virtual x86 environment in which to "run" the obj code.
    I'm actually a bit surprised that you were able to link halt7.obj to
    create an executable!

    So if you want to try out the code in halt7.c, you will need to build x86utm.exe, which provides the virtual environment in which it "runs".
    The source on Github has all the source, including the PO-written code
    and the code coming from libx86emu, which is the x86 emulation software
    PO uses. There is a MSVS project file to do the build, or you could compile/link the files manually if you had to.  There are 6 C
    compilation units (from libx86emu) and 1 C++ compilation unit
    (x86utm.xpp). I think the code is written as 32-bit.  (Obviously you
    need the header files also on Github.)

    So the process you will run in your debugger is x86utm.exe.  That makes
    it tricky to "step through" halt7.c code, since halt7.c code is just
    data being manipulated within the x86utm process.

    The reason you can't just link halt7.c to an OS executable and run it is that it is full of calls to "primitive" ops like Allocate() and
    DebugStep() which are intercepted by x86utm.exe and processed within x86utm.  Like a supervisor call mechanism.


    Mike.


    The one other person in the world that best understands my code.
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:44:07 2024
    From Newsgroup: comp.lang.c

    On 10/15/2024 8:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns, so DDD() halts.

    DDD emulated by HHH according to the semantics of the x86
    language cannot possibly reach its own return instruction
    no matter what HHH does.

    When HHH rejects DDD on this basis it is necessarily correct.

    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
    ChatGPT finally totally explains away all of the quibbling
    about whether HHH is correct to reject DDD as non-halting.

    foobar() will never halt (ignoring physical resource
    constraints like running out of stack).  foobar() undergoes infinite recursive call.  DDD() exhibits /finite/ recursive emulation, then halts.

    Mike.




    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Fri Oct 18 20:47:48 2024
    From Newsgroup: comp.lang.c

    On 10/17/2024 12:15 PM, Bonita Montero wrote:
    Am 15.10.2024 um 01:14 schrieb tTh:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.

    LOL, YMMD !

    Just build is properly. https://github.com/plolcott/x86utm/blob/master/x86utm.sln https://github.com/plolcott/x86utm/blob/master/__Run_7.bat

    Mike explains the details.
    On 10/15/2024 8:37 PM, Mike Terry wrote:
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Fri Oct 18 21:25:02 2024
    From Newsgroup: comp.lang.c

    On 10/18/2024 6:32 PM, olcott wrote:
    On 10/14/2024 7:36 PM, Mike Terry wrote:
    On 15/10/2024 00:33, Chris M. Thomasson wrote:
    On 10/14/2024 4:14 PM, tTh wrote:
    On 10/14/24 04:57, olcott wrote:

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c

       This program does not compile, so it cannot be executed.
       Halting problem solved.


    Shit happens. A lot of things. I cannot get it to compile at all.
    MSVC, GCC, whatever...





    main.c: In function ‘Decide_Halting0’:
    main.c:239:32: warning: cast from pointer to integer of different
    size [-Wpointer-to-int-cast]
       239 |     PushBack(*execution_trace, (u32)*decoded,
    sizeof(Decoded_Line_Of_Code));
           |                                ^

    You're trying to compile it as 64 bit code.  PO's x86utm.exe expects
    32- bit.

    Mike.


    https://github.com/plolcott/x86utm/blob/master/x86utm.sln


    Thanks.
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Fri Oct 18 21:25:45 2024
    From Newsgroup: comp.lang.c

    On 10/18/2024 6:32 PM, olcott wrote:
    On 10/14/2024 7:23 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above non-terminating behavior of its input.

    *Fully operational code is here*
    https://github.com/plolcott/x86utm/blob/master/Halt7.c
    https://github.com/plolcott/x86utm

    *Here is the original (not dumbed down) version*
    from line 1345 of the above source file

    int DD(int (*x)())
    {
       int Halt_Status = H(x, x);
       if (Halt_Status)
         HERE: goto HERE;
       return Halt_Status;
    }


    Can you put up a full blown MSVC solution that works on GitHub?

    It has always been there. https://github.com/plolcott/x86utm/blob/master/x86utm.sln



    thanks for the heads up! :^)
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Fri Oct 18 22:56:50 2024
    From Newsgroup: comp.lang.c

    On 10/18/2024 6:44 PM, olcott wrote:
    On 10/15/2024 8:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns,
    so DDD() halts.

    DDD emulated by HHH according to the semantics of the x86
    language cannot possibly reach its own return instruction
    no matter what HHH does.

    When HHH rejects DDD on this basis it is necessarily correct.

    Is there any difference between 100% correct and necessarily correct?



    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
    ChatGPT finally totally explains away all of the quibbling
    about whether HHH is correct to reject DDD as non-halting.

    foobar() will never halt (ignoring physical resource constraints like
    running out of stack).  foobar() undergoes infinite recursive call.
    DDD() exhibits /finite/ recursive emulation, then halts.

    Mike.







    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Sat Oct 19 05:47:02 2024
    From Newsgroup: comp.lang.c

    On 10/19/2024 12:56 AM, Chris M. Thomasson wrote:
    On 10/18/2024 6:44 PM, olcott wrote:
    On 10/15/2024 8:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke >>>>>> is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns,
    so DDD() halts.

    DDD emulated by HHH according to the semantics of the x86
    language cannot possibly reach its own return instruction
    no matter what HHH does.

    When HHH rejects DDD on this basis it is necessarily correct.

    Is there any difference between 100% correct and necessarily correct?


    From the true premise that DDD emulated by HHH cannot
    possibly reach its own "return" instruction we can correctly
    deduce that HHH is correct to reject DDD as non-terminating.

    This same reasoning equally applies to this more complex
    (conventional halting problem proof) example.

    int DD()
    {
    int Halt_Status = HHH(DD);
    if (Halt_Status)
    HERE: goto HERE;
    return Halt_Status;
    }

    ChatGPT finally understands my work well enough to directly
    refute all rebuttals. https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e


    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
    ChatGPT finally totally explains away all of the quibbling
    about whether HHH is correct to reject DDD as non-halting.

    foobar() will never halt (ignoring physical resource constraints like
    running out of stack).  foobar() undergoes infinite recursive call.
    DDD() exhibits /finite/ recursive emulation, then halts.

    Mike.







    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Mike Terry@news.dead.person.stones@darjeeling.plus.com to comp.lang.c on Sat Oct 19 16:21:06 2024
    From Newsgroup: comp.lang.c

    On 16/10/2024 21:41, Chris M. Thomasson wrote:
    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by step emulation of DDD - it
    stops emulating after a while and returns, so DDD() halts.  foobar() will never halt (ignoring
    physical resource constraints like running out of stack).  foobar() undergoes infinite recursive
    call.  DDD() exhibits /finite/ recursive emulation, then halts.

    So, any similar to:
    ______________
    void foo(
        unsigned long ri,
        unsigned long rn
    ) {
        if (ri > rn) return;
        foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?

    Yes - similar in that both :
    - foo and PO's DDD exhibit a flavour of recursion, and
    - both foo and DDD break the recursion at some point and subsequently halt

    Different in that:
    - foo exhibits "recursive call" while DDD exhibits "recursive simulation".

    When a call is made, the caller cannot receive control until the callee returns. So with call
    recursion, for the pattern to break, the break has to occur at the innermost call - like with your foo.

    When a simulation is made, the simulator is still in control, probably running a loop that simulates
    each individual instruction of the simulated computation. So recursive simulation may break in the
    same way as your foo, namely from the inner simulation then percolating back through the nested
    simulations until the outer simulation exits. Also it can break by one of the simulations simply
    deciding not to continue its simulation any more and quiting its instruction simulation loop.
    That's what PO's DDD does.

    Another example: Suppose GGG is coded to simulate 10000000 instrucions of GGG then exit. That is
    more similar to DDD than your foo, because like DDD it exhibits recursive simulation, and like DDD
    the recursion breaks from the outside. Everybody agrees that GGG terminates - would you be tempted
    to say that it is correct to say GGG never halts because it "exhibits infinitely recursive
    behaviour"? [meaning that the combined GGG emulation trace shows that simulated GGG simulates the
    exact same GGG again]. I doubt that! (The whole idea is beyond stupid, given we agree GGG halts.)


    Mike.

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Sat Oct 19 11:12:17 2024
    From Newsgroup: comp.lang.c

    On 10/19/2024 10:21 AM, Mike Terry wrote:
    On 16/10/2024 21:41, Chris M. Thomasson wrote:
    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke >>>>>> is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns,
    so DDD() halts.  foobar() will never halt (ignoring physical resource
    constraints like running out of stack).  foobar() undergoes infinite
    recursive call.  DDD() exhibits /finite/ recursive emulation, then
    halts.

    So, any similar to:
    ______________
    void foo(
         unsigned long ri,
         unsigned long rn
    ) {
         if (ri > rn) return;
         foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?

    Yes - similar in that both :
    -  foo and PO's DDD exhibit a flavour of recursion, and
    -  both foo and DDD break the recursion at some point and subsequently halt

    Different in that:
    -  foo exhibits "recursive call" while DDD exhibits "recursive simulation".


    Recursive emulation is more precisely correct.
    The control flow in x86 machine code is always
    an exact directed graph with machine addresses
    being the nodes and control flow being the paths.

    When a call is made, the caller cannot receive control until the callee returns.  So with call recursion, for the pattern to break, the break
    has to occur at the innermost call - like with your foo.

    When a simulation is made, the simulator is still in control, probably running a loop that simulates each individual instruction of the
    simulated computation.  So recursive simulation may break in the same
    way as your foo, namely from the inner simulation then percolating back through the nested simulations until the outer simulation exits.  Also

    The executed HHH actually kills the whole process of
    its emulated DDD and its recursive emulations as soon
    as its sees that the DDD emulated by its emulated self
    would call HHH(DDD) one more time.

    It would handle the original foobar() this same way.

    // Sample infinite recursion.
    void Infinite_Recursion()
    {
    Infinite_Recursion();
    OutputString("Can't possibly get here!");
    }

    it can break by one of the simulations simply deciding not to continue
    its simulation any more and quiting its instruction simulation loop.
    That's what PO's DDD does.


    Yes and it does this for the outermost emulated
    machine code of DDD.

    Another example:  Suppose GGG is coded to simulate 10000000 instrucions
    of GGG then exit.  That is more similar to DDD than your foo, because
    like DDD it exhibits recursive simulation, and like DDD the recursion
    breaks from the outside.  Everybody agrees that GGG terminates - would
    you be tempted to say that it is correct to say GGG never halts because
    it "exhibits infinitely recursive behaviour"?  [meaning that the
    combined GGG emulation trace shows that simulated GGG simulates the
    exact same GGG again].  I doubt that!  (The whole idea is beyond stupid, given we agree GGG halts.)


    Mike.


    Here is my new clearest way of saying it.

    void DDD()
    {
    HHH(DDD);
    return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD *correctly_emulated_by* any HHH that it
    calls cannot possibly return no matter what this HHH does.

    Each of the directly executed HHH emulator/analyzers that returns
    0 correctly reports the above *non_terminating _behavior* of its input.

    ChatGPT finally understands my work so well that it can
    and will vigorously defend it. https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    No need to login to ask ChatGPT about this. Just
    click on the link and ask away.
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Sun Oct 20 11:47:50 2024
    From Newsgroup: comp.lang.c

    On 10/19/2024 8:21 AM, Mike Terry wrote:
    On 16/10/2024 21:41, Chris M. Thomasson wrote:
    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke >>>>>> is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns,
    so DDD() halts.  foobar() will never halt (ignoring physical resource
    constraints like running out of stack).  foobar() undergoes infinite
    recursive call.  DDD() exhibits /finite/ recursive emulation, then
    halts.

    So, any similar to:
    ______________
    void foo(
         unsigned long ri,
         unsigned long rn
    ) {
         if (ri > rn) return;
         foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?

    Yes - similar in that both :
    -  foo and PO's DDD exhibit a flavour of recursion, and
    -  both foo and DDD break the recursion at some point and subsequently halt

    Different in that:
    -  foo exhibits "recursive call" while DDD exhibits "recursive simulation".

    When a call is made, the caller cannot receive control until the callee returns.  So with call recursion, for the pattern to break, the break
    has to occur at the innermost call - like with your foo.

    When a simulation is made, the simulator is still in control, probably running a loop that simulates each individual instruction of the
    simulated computation.  So recursive simulation may break in the same
    way as your foo, namely from the inner simulation then percolating back through the nested simulations until the outer simulation exits.  Also
    it can break by one of the simulations simply deciding not to continue
    its simulation any more and quiting its instruction simulation loop.
    That's what PO's DDD does.

    Another example:  Suppose GGG is coded to simulate 10000000 instrucions
    of GGG then exit.  That is more similar to DDD than your foo, because
    like DDD it exhibits recursive simulation, and like DDD the recursion
    breaks from the outside.  Everybody agrees that GGG terminates - would
    you be tempted to say that it is correct to say GGG never halts because
    it "exhibits infinitely recursive behaviour"?  [meaning that the
    combined GGG emulation trace shows that simulated GGG simulates the
    exact same GGG again].  I doubt that!  (The whole idea is beyond stupid, given we agree GGG halts.)

    Thanks for the highly informative information Mike!

    I appreciate it. :^)

    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From Chris M. Thomasson@chris.m.thomasson.1@gmail.com to comp.lang.c on Sun Oct 20 12:31:54 2024
    From Newsgroup: comp.lang.c

    On 10/19/2024 8:21 AM, Mike Terry wrote:
    On 16/10/2024 21:41, Chris M. Thomasson wrote:
    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke >>>>>> is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and returns,
    so DDD() halts.  foobar() will never halt (ignoring physical resource
    constraints like running out of stack).  foobar() undergoes infinite
    recursive call.  DDD() exhibits /finite/ recursive emulation, then
    halts.

    So, any similar to:
    ______________
    void foo(
         unsigned long ri,
         unsigned long rn
    ) {
         if (ri > rn) return;
         foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?

    Yes - similar in that both :
    -  foo and PO's DDD exhibit a flavour of recursion, and
    -  both foo and DDD break the recursion at some point and subsequently halt

    Actually, this reminds me an older (many years) experiment where I would execute:

    foo(0, 0);
    foo(0, 1);
    foo(0, 2);
    foo(0, 3);
    ...

    Until it blew the stack, then I would set a limit to some of the
    iterations right before it. The ones that did not explode the stack...
    Used that as rn in foo. It was just to see if I could get the so-called "maximum" recursions without any problems. Iirc, these were for some
    fractal iterations... :^)



    [...]
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Sun Oct 20 21:46:42 2024
    From Newsgroup: comp.lang.c

    On 10/20/2024 1:47 PM, Chris M. Thomasson wrote:
    On 10/19/2024 8:21 AM, Mike Terry wrote:
    On 16/10/2024 21:41, Chris M. Thomasson wrote:
    On 10/15/2024 6:43 PM, Mike Terry wrote:
    On 14/10/2024 23:17, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>> wrote:
    On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> >>>>>>>>>> schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting. >>>>>>>>>
    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke >>>>>>> is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
         foobar();
    }

    ? >

    Similar, but different because HHH only performs a /partial/ step by
    step emulation of DDD - it stops emulating after a while and
    returns, so DDD() halts.  foobar() will never halt (ignoring
    physical resource constraints like running out of stack).  foobar()
    undergoes infinite recursive call.  DDD() exhibits /finite/
    recursive emulation, then halts.

    So, any similar to:
    ______________
    void foo(
         unsigned long ri,
         unsigned long rn
    ) {
         if (ri > rn) return;
         foo(ri + 1, rn);
    }
    ______________

    foo(0, 5);

    ?

    Yes - similar in that both :
    -  foo and PO's DDD exhibit a flavour of recursion, and
    -  both foo and DDD break the recursion at some point and subsequently
    halt

    Different in that:
    -  foo exhibits "recursive call" while DDD exhibits "recursive
    simulation".

    When a call is made, the caller cannot receive control until the
    callee returns.  So with call recursion, for the pattern to break, the
    break has to occur at the innermost call - like with your foo.

    When a simulation is made, the simulator is still in control, probably
    running a loop that simulates each individual instruction of the
    simulated computation.  So recursive simulation may break in the same
    way as your foo, namely from the inner simulation then percolating
    back through the nested simulations until the outer simulation exits.
    Also it can break by one of the simulations simply deciding not to
    continue its simulation any more and quiting its instruction
    simulation loop. That's what PO's DDD does.

    Another example:  Suppose GGG is coded to simulate 10000000
    instrucions of GGG then exit.  That is more similar to DDD than your
    foo, because like DDD it exhibits recursive simulation, and like DDD
    the recursion breaks from the outside.  Everybody agrees that GGG
    terminates - would you be tempted to say that it is correct to say GGG
    never halts because it "exhibits infinitely recursive behaviour"?
    [meaning that the combined GGG emulation trace shows that simulated
    GGG simulates the exact same GGG again].  I doubt that!  (The whole
    idea is beyond stupid, given we agree GGG halts.)

    Thanks for the highly informative information Mike!

    I appreciate it. :^)


    Mike understands my code far better than anyone besides me.
    Yet he and everyone else disagrees with my work on the basis
    of their answer to this question that I asked ChatGPT 4.0:

    Could it be correct for HHH(DDD) to report on the behavior
    of the directly executed DDD()?

    https://chatgpt.com/share/67158ec6-3398-8011-98d1-41198baa29f2

    The first less than one page of this ChatGPT session is
    the entire basis that ChatGPT 4.0 uses to evaluate my work.
    *This basis is all C and correct software engineering*
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114
  • From olcott@polcott333@gmail.com to comp.lang.c on Sun Oct 20 22:30:02 2024
    From Newsgroup: comp.lang.c

    On 10/14/2024 5:17 PM, Chris M. Thomasson wrote:
    On 10/13/2024 7:57 PM, olcott wrote:
    On 10/13/2024 11:34 AM, Kaz Kylheku wrote:
    On 2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com> wrote: >>>> On 10/12/2024 11:28 AM, Janis Papanagnou wrote:
    On 12.10.2024 11:32, Jan van den Broek wrote:
    2024-10-12, Chris M. Thomasson <chris.m.thomasson.1@gmail.com>
    schrieb:
    On 10/11/2024 7:50 PM, olcott wrote:

    [Schnipp]

    As I see it, the main Halting Problem is Olcott not halting.

    LOL! - A very nice one. Thanks for that. :-)

    I second that. :^)

    You're likely thousand-seconding that. The Olcott not halting joke
    is many years old now, and will likely come up again.



    My cancer has gotten worse.

    *ChatGPT explains why rebuttals of my work are incorrect*
    https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

    I had to dumb this down from the original halting problem
    input so that reviewers can verify that HHH is correct
    without hardly paying any attention at all:

    void DDD()
    {
       HHH(DDD);
       return;
    }

    When HHH is an x86 emulation based termination analyzer
    then each DDD emulated by any HHH that it calls never returns.
    [...]

    Isn't that similar to:

    void foobar()
    {
        foobar();
    }

    ?


    void Infinite_Recursion()
    {
    Infinite_Recursion();
    OutputString("Can't possibly get here!");
    }

    of line 1332 of this file https://github.com/plolcott/x86utm/blob/master/Halt7.c
    is one of the sample inputs that HHH correctly reports.

    https://github.com/plolcott/x86utm https://github.com/plolcott/x86utm/blob/master/x86utm.sln
    --
    Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
    hits a target no one else can see." Arthur Schopenhauer
    --- Synchronet 3.20a-Linux NewsLink 1.114