Discussion:
ChatGPT explains why by rebuttal of the halting problem proofs is correct
(too old to reply)
olcott
2024-10-12 02:50:44 UTC
Permalink
https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e

This link is live for the world. You can click on it
and try to convince ChatGPT that HHH is wrong to reject
DDD because the executed DDD does halt.

It will explain your mistake in clear simple language.

*The paper that this refers to*
Simulating Termination Analyzer H is Not Fooled by Pathological Input D
https://www.researchgate.net/publication/369971402_Simulating_Termination_Analyzer_H_is_Not_Fooled_by_Pathological_Input_D
--
Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer
Chris M. Thomasson
2024-10-12 03:53:03 UTC
Permalink
Post by olcott
https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
This link is live for the world. You can click on it
and try to convince ChatGPT that HHH is wrong to reject
DDD because the executed DDD does halt.
It will explain your mistake in clear simple language.
*The paper that this refers to*
Simulating Termination Analyzer H is Not Fooled by Pathological Input D
https://www.researchgate.net/
publication/369971402_Simulating_Termination_Analyzer_H_is_Not_Fooled_by_Pathological_Input_D
Yawn.
Jan van den Broek
2024-10-12 09:32:42 UTC
Permalink
[Schnipp]

As I see it, the main Halting Problem is Olcott not halting.
--
Jan van den Broek
***@dds.nl 0xAFDAD00D
http://huizen.dds.nl/~balglaas/
Janis Papanagnou
2024-10-12 18:28:15 UTC
Permalink
Post by Jan van den Broek
[Schnipp]
As I see it, the main Halting Problem is Olcott not halting.
LOL! - A very nice one. Thanks for that. :-)

Janis
Chris M. Thomasson
2024-10-12 19:30:05 UTC
Permalink
Post by Janis Papanagnou
Post by Jan van den Broek
[Schnipp]
As I see it, the main Halting Problem is Olcott not halting.
LOL! - A very nice one. Thanks for that. :-)
I second that. :^)
Kaz Kylheku
2024-10-13 16:34:31 UTC
Permalink
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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: @***@mstdn.ca
olcott
2024-10-14 02:57:30 UTC
Permalink
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
Chris M. Thomasson
2024-10-14 22:17:07 UTC
Permalink
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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();
}

?
Chris M. Thomasson
2024-10-15 19:54:18 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
void foobar()
{
    foobar();
}
?
Is that all it is? Infinite recursion blowing up the stack...
Mike Terry
2024-10-16 01:43:46 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
Chris M. Thomasson
2024-10-16 20:41:19 UTC
Permalink
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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);

?
Mike Terry
2024-10-19 15:21:06 UTC
Permalink
Post by Chris M. Thomasson
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
______________
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.
olcott
2024-10-19 16:12:17 UTC
Permalink
Post by Chris M. Thomasson
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
______________
void foo(
     unsigned long ri,
     unsigned long rn
) {
     if (ri > rn) return;
     foo(ri + 1, rn);
}
______________
foo(0, 5);
?
-  foo and PO's DDD exhibit a flavour of recursion, and
-  both foo and DDD break the recursion at some point and subsequently halt
-  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
Chris M. Thomasson
2024-10-20 18:47:50 UTC
Permalink
Post by Chris M. Thomasson
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
______________
void foo(
     unsigned long ri,
     unsigned long rn
) {
     if (ri > rn) return;
     foo(ri + 1, rn);
}
______________
foo(0, 5);
?
-  foo and PO's DDD exhibit a flavour of recursion, and
-  both foo and DDD break the recursion at some point and subsequently halt
-  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. :^)
olcott
2024-10-21 02:46:42 UTC
Permalink
Post by Chris M. Thomasson
Post by Chris M. Thomasson
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
______________
void foo(
     unsigned long ri,
     unsigned long rn
) {
     if (ri > rn) return;
     foo(ri + 1, rn);
}
______________
foo(0, 5);
?
-  foo and PO's DDD exhibit a flavour of recursion, and
-  both foo and DDD break the recursion at some point and subsequently halt
-  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
Chris M. Thomasson
2024-10-20 19:31:54 UTC
Permalink
Post by Chris M. Thomasson
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
______________
void foo(
     unsigned long ri,
     unsigned long rn
) {
     if (ri > rn) return;
     foo(ri + 1, rn);
}
______________
foo(0, 5);
?
-  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... :^)



[...]
olcott
2024-10-19 01:44:07 UTC
Permalink
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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.
Post by Mike Terry
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
Chris M. Thomasson
2024-10-19 05:56:50 UTC
Permalink
Post by olcott
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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?
Post by olcott
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.
Post by Mike Terry
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.
olcott
2024-10-19 10:47:02 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Mike Terry
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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
Post by Chris M. Thomasson
Post by olcott
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.
Post by Mike Terry
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
olcott
2024-10-19 01:25:41 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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
olcott
2024-10-21 03:30:02 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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.
[...]
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
tTh
2024-10-14 23:14:35 UTC
Permalink
Post by olcott
*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
+++
Chris M. Thomasson
2024-10-14 23:33:55 UTC
Permalink
Post by olcott
*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'
Mike Terry
2024-10-15 00:36:01 UTC
Permalink
Post by olcott
*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: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.
Chris M. Thomasson
2024-10-15 03:57:24 UTC
Permalink
Post by olcott
*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: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

_______________________
Mike Terry
2024-10-15 16:06:10 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
*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: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.
_______________________
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.
Mike Terry
2024-10-15 16:46:42 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
*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: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.
_______________________
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.
Chris M. Thomasson
2024-10-15 19:40:40 UTC
Permalink
On 10/15/2024 9:06 AM, Mike Terry wrote:
[...]
Post by Chris M. Thomasson
_______________________
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:

Loading Image...

but crashes during a run:

Loading Image...
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
Chris M. Thomasson
2024-10-15 19:41:53 UTC
Permalink
Post by Chris M. Thomasson
[...]
Post by Chris M. Thomasson
_______________________
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? ;^)
Post by Chris M. Thomasson
https://i.ibb.co/1bKYQMv/image.png
https://i.ibb.co/T0f1Wjg/image.png
    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
Mike Terry
2024-10-16 01:37:05 UTC
Permalink
Post by Chris M. Thomasson
[...]
Post by Chris M. Thomasson
_______________________
You seem to be compiling the wrong program.  The source code is halt7.c and has nothing to do with
ct_threads.
https://i.ibb.co/1bKYQMv/image.png
https://i.ibb.co/T0f1Wjg/image.png
    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.
Chris M. Thomasson
2024-10-16 03:57:35 UTC
Permalink
Post by Mike Terry
Post by Chris M. Thomasson
[...]
Post by Chris M. Thomasson
_______________________
You seem to be compiling the wrong program.  The source code is
halt7.c and has nothing to do with ct_threads.
https://i.ibb.co/1bKYQMv/image.png
https://i.ibb.co/T0f1Wjg/image.png
 >    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.
olcott
2024-10-19 01:37:24 UTC
Permalink
Post by Mike Terry
Post by Chris M. Thomasson
[...]
Post by Chris M. Thomasson
_______________________
You seem to be compiling the wrong program.  The source code is
halt7.c and has nothing to do with ct_threads.
https://i.ibb.co/1bKYQMv/image.png
https://i.ibb.co/T0f1Wjg/image.png
 >    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
olcott
2024-10-19 01:33:26 UTC
Permalink
Post by Chris M. Thomasson
Post by Chris M. Thomasson
Post by olcott
*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: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.
_______________________
Severity    Code    Description    Project    File    Line
Suppression State    Details
Error (active)    E0140    too many arguments in function call
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177
Error (active)    E0140    too many arguments in function call
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239
Error (active)    E0140    too many arguments in function call
\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_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_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_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
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1095
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337
Error (active)    E0167    argument of type "const char *" is
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1376
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 250
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1100
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1124
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 248
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 252
Error    C2664    'void OutputString(char *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1337
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1093
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1117
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 106
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 107
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1094
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1118
Error    C2664    'void Output(char *,u32)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 102
Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1262
Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1251
Error    C2664    'u32 H_prior(ptr,void *)': cannot convert argument 1
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1302
Error    C2664    'u32 H0(ptr)': cannot convert argument 1 from 'int
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1230
Error    C2664    'u32 H(ptr,ptr)': cannot convert argument 1 from
\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
\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
\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
\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
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1119
Error    C2197    'ptr': too many arguments for call
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1177
Error    C2197    'ptr': too many arguments for call
\ct_dev\projects\ct_thread_playground\ct_thread_playground\ct_main.cpp 1239
Error    C2197    'ptr': too many arguments for call
\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
\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
olcott
2024-10-19 01:32:47 UTC
Permalink
Post by olcott
*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: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
Chris M. Thomasson
2024-10-19 04:25:02 UTC
Permalink
Post by olcott
Post by Chris M. Thomasson
Post by olcott
*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: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.
Bonita Montero
2024-10-17 17:15:35 UTC
Permalink
Post by olcott
*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 !
olcott
2024-10-19 01:47:48 UTC
Permalink
Post by Bonita Montero
Post by olcott
*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
olcott
2024-10-19 01:30:12 UTC
Permalink
Post by olcott
*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
Chris M. Thomasson
2024-10-15 00:23:29 UTC
Permalink
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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?
Chris M. Thomasson
2024-10-15 19:42:42 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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
olcott
2024-10-19 01:32:13 UTC
Permalink
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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
Chris M. Thomasson
2024-10-19 04:25:45 UTC
Permalink
Post by olcott
Post by Chris M. Thomasson
Post by olcott
Post by Kaz Kylheku
Post by Chris M. Thomasson
Post by Janis Papanagnou
Post by Jan van den Broek
[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
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! :^)
Chris M. Thomasson
2024-10-12 05:47:03 UTC
Permalink
Post by olcott
https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
This link is live for the world. You can click on it
and try to convince ChatGPT that HHH is wrong to reject
DDD because the executed DDD does halt.
It will explain your mistake in clear simple language.
*The paper that this refers to*
Simulating Termination Analyzer H is Not Fooled by Pathological Input D
https://www.researchgate.net/
publication/369971402_Simulating_Termination_Analyzer_H_is_Not_Fooled_by_Pathological_Input_D
You need an angle:

(Send Me an Angel - Scorpions lyrics)


olcott
2024-10-13 01:03:01 UTC
Permalink
Post by olcott
https://chatgpt.com/share/6709e046-4794-8011-98b7-27066fb49f3e
This link is live for the world. You can click on it
and try to convince ChatGPT that HHH is wrong to reject
DDD because the executed DDD does halt.
It will explain your mistake in clear simple language.
*The paper that this refers to*
Simulating Termination Analyzer H is Not Fooled by Pathological Input D
https://www.researchgate.net/
publication/369971402_Simulating_Termination_Analyzer_H_is_Not_Fooled_by_Pathological_Input_D
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
--
Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer
tTh
2024-10-13 04:59:46 UTC
Permalink
Post by olcott
Fully operational code is here.
https://github.com/plolcott/x86utm/blob/master/Halt7.c
***@redlady:~/Desktop$ gcc -Wall Halt7.c
Halt7.c: In function ‘Decide_Halting0’:
Halt7.c:239:32: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
PushBack(*execution_trace, (u32)*decoded,
sizeof(Decoded_Line_Of_Code));
^
[...]
Halt7.c:847: Error: too many memory references for `mov'
Halt7.c:848: Error: too many memory references for `mov'
Halt7.c:928: Error: too many memory references for `lea'
Halt7.c:929: Error: too many memory references for `mov'
Halt7.c:930: Error: too many memory references for `lea'
Halt7.c:931: Error: too many memory references for `mov'
Halt7.c:932: Error: too many memory references for `mov'
Halt7.c:933: Error: too many memory references for `mov'
***@redlady:~/Desktop$

OK boomer.
--
+++
tTh des Bourtoulots
+++
olcott
2024-10-13 11:37:16 UTC
Permalink
Post by tTh
Post by olcott
Fully operational code is here.
https://github.com/plolcott/x86utm/blob/master/Halt7.c
Halt7.c:239:32: warning: cast from pointer to integer of different size
[-Wpointer-to-int-cast]
     PushBack(*execution_trace, (u32)*decoded,
sizeof(Decoded_Line_Of_Code));
                                ^
              [...]
Halt7.c:847: Error: too many memory references for `mov'
Halt7.c:848: Error: too many memory references for `mov'
Halt7.c:928: Error: too many memory references for `lea'
Halt7.c:929: Error: too many memory references for `mov'
Halt7.c:930: Error: too many memory references for `lea'
Halt7.c:931: Error: too many memory references for `mov'
Halt7.c:932: Error: too many memory references for `mov'
Halt7.c:933: Error: too many memory references for `mov'
              OK boomer.
Compiles with Microsoft Visual Studio Community Edition 2017

This file has all the details
https://github.com/plolcott/x86utm/blob/master/__Run_7.bat

Halt7.c is compiled and not linked with this line
cl /GS- /FA /FaHalt7.asm /c /arch:IA32 Halt7.c

The x86utm operating system is compiled and linked with this line
cl.exe /EHsc x86utm.cpp api.c decode.c mem.c ops.c ops2.c prim_ops.c

x86utm emulates the object code of Halt7.obj with this line:
x86utm Halt7.obj > Halt7out.txt
--
Copyright 2024 Olcott "Talent hits a target no one else can hit; Genius
hits a target no one else can see." Arthur Schopenhauer
Chris M. Thomasson
2024-10-14 23:57:47 UTC
Permalink
On 10/13/2024 4:37 AM, olcott wrote:
[...]
Post by olcott
Compiles with Microsoft Visual Studio Community Edition 2017
This file has all the details
https://github.com/plolcott/x86utm/blob/master/__Run_7.bat
Oh my.
Post by olcott
Halt7.c is compiled and not linked with this line
cl  /GS- /FA /FaHalt7.asm  /c /arch:IA32 Halt7.c
The x86utm operating system is compiled and linked with this line
cl.exe /EHsc x86utm.cpp api.c decode.c mem.c ops.c ops2.c prim_ops.c
x86utm Halt7.obj > Halt7out.txt
Loading...