Saturday, October 24, 2020

Digest for comp.lang.c++@googlegroups.com - 25 updates in 3 topics

"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 08:29AM -0400

I've written a simulation for my Solar System Assembly Line theory in
Open GL. You can download the EXEs here. And please report any errors
in getting it to run.
 
32-bit:
http://www.3alive.org/ssal/earth_solar_system_open_gl__32_bit.zip
64-bit:
http://www.3alive.org/ssal/earth_solar_system_open_gl__64_bit.zip
 
You might need to install the Microsoft Visual C Runtime distribution
files if your machine doesn't already have them installed:
 
Microsoft DLLs (x86: vc_redist.x86.exe, x64: vc_redist.x64.exe):

https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads
 
 
And you can also view the latest simulation videos here if you don't
want to download and run the EXE:
 
Orthographic: https://www.youtube.com/watch?v=deQAjOvcmwI
Perspective: https://www.youtube.com/watch?v=Ahoi9OVFoos
 
-----
On our local gaming laptop test machine, the 32-bit and 64-bit versions
offer vastly different performance and frame rates:
 
32-bit: 45 seconds per cycle*
64-bit: 29 seconds per cycle*
 
* A cycle is the time it takes for the simulation to see
the full 7,000 year cycle + PE transfer + reduction (as
the PE enters PE-3 Saturn).
 
The 64-bit version is 16 seconds faster per frame, or about 33%.
 
The EXE versions published above are compiled in Visual Studio 2019 and
are written in mostly C with a few C++ extensions and relaxations used
(for function overloading, relaxed syntax constraints, tighter type
checking, anonymous unions, and line comments).
 
The simulation relies heavily on 64-bit floating point math. Even
though the 32-bit version is compiled to use SSE2 / vectors where
possible, I was still quite surprised at the benefits of seen in the
64-bit code.
 
I am developing this product on an older desktop machine using Visual
Studio 2008. Its Open GL 3D graphics card is by far the greatest
constraint as I only get about 3 fps without anti-aliasing on either
32-bit or 64-bit compile. But on our production machine where we
generate the videos, it's a huge difference in performance. We've been
running the VS 2008 32-bit and 64-bit versions and they offer similar
performance to the VS 2019 versions.
 
I was wondering if anyone else has seen such a huge difference in any
apps comparing 32-bit to 64-bit compiles? Up until now, I have never
seen more than a 5% or maybe 10% variation on rare occasion, but most of
my C/C++ apps until now have been business apps using databases,
networking, and basic business logic.
 
I have done some gaming development, but never with a high-end graphics
card, so I've never seen the performance constraints revealed to such a
degree. My son and I both had our jaws drop when we ran the 64-bit
version and visibly saw the speedup. Quite a thing.
 
--
Rick C. Hodgin
Bart <bc@freeuk.com>: Oct 24 03:54PM +0100

On 24/10/2020 13:29, Rick C. Hodgin wrote:
> http://www.3alive.org/ssal/earth_solar_system_open_gl__32_bit.zip
>     64-bit:
> http://www.3alive.org/ssal/earth_solar_system_open_gl__64_bit.zip
 
I tried the 64-bit version. It started, and I got a picture that looked
like the first frame of your video, but it didn't do anything.
 
After a few seconds it disappeared. If I tried to start it again, it
said Access Denied (and there were no orphaned processes that I could
see still running. But I was able to delete the binary. When I
reinstalled it, it did the same thing. This is on Windows 7.
 
> card, so I've never seen the performance constraints revealed to such a
> degree.  My son and I both had our jaws drop when we ran the 64-bit
> version and visibly saw the speedup.  Quite a thing.
 
When I want from 16 bits to true 32 bits (not just 32-bit ops in 16-bit
mode), my main application was 50% faster.
 
I no longer any means of producing both 32 and 64-bit binaries with the
same compiler, so can't compare any more.
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 24 03:57PM +0100

On 24/10/2020 13:29, Rick C. Hodgin wrote:
 
> I am developing this product on an older desktop machine using Visual Studio 2008.  Its Open GL 3D graphics card is by far the greatest constraint as I only get about 3 fps without anti-aliasing on either 32-bit or 64-bit compile.  But on our production machine where we generate the videos, it's a huge difference in performance.  We've been running the VS 2008 32-bit and 64-bit versions and they offer similar performance to the VS 2019 versions.
 
> I was wondering if anyone else has seen such a huge difference in any apps comparing 32-bit to 64-bit compiles?  Up until now, I have never seen more than a 5% or maybe 10% variation on rare occasion, but most of my C/C++ apps until now have been business apps using databases, networking, and basic business logic.
 
> I have done some gaming development, but never with a high-end graphics card, so I've never seen the performance constraints revealed to such a degree.  My son and I both had our jaws drop when we ran the 64-bit version and visibly saw the speedup.  Quite a thing.
 
Dis-liked and commented.
 
/Flibble
 
--
¬
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 24 04:05PM +0100

On 24/10/2020 13:29, Rick C. Hodgin wrote:
 
> I am developing this product on an older desktop machine using Visual Studio 2008.  Its Open GL 3D graphics card is by far the greatest constraint as I only get about 3 fps without anti-aliasing on either 32-bit or 64-bit compile.  But on our production machine where we generate the videos, it's a huge difference in performance.  We've been running the VS 2008 32-bit and 64-bit versions and they offer similar performance to the VS 2019 versions.
 
> I was wondering if anyone else has seen such a huge difference in any apps comparing 32-bit to 64-bit compiles?  Up until now, I have never seen more than a 5% or maybe 10% variation on rare occasion, but most of my C/C++ apps until now have been business apps using databases, networking, and basic business logic.
 
> I have done some gaming development, but never with a high-end graphics card, so I've never seen the performance constraints revealed to such a degree.  My son and I both had our jaws drop when we ran the 64-bit version and visibly saw the speedup.  Quite a thing.
 
Couldn't run it locally as my anti-virus doesn't like it, or your god, mate.
 
Filename: earth_solar_system_opengl.exe
Threat name: WS.Reputation.1Full Path: C:\Users\leigh\Downloads\earth_solar_system_open_gl__64_bit\earth_solar_system_opengl.exe
 
____________________________
 
____________________________
 
 
On computers as of
24/10/2020 at 16:01:05
 
Last Used
24/10/2020 at 16:03:06
 
Startup Item
No
 
Launched
No
 
Threat type: Insight Network Threat. There are many indications that this file is untrustworthy and therefore not safe
 
 
____________________________
 
 
earth_solar_system_opengl.exe Threat name: WS.Reputation.1
Locate
 
 
Very Few Users
Fewer than 5 users in the Norton Community have used this file.
 
Very New
This file was released less than 1 week  ago.
 
Medium
This file risk is medium.
 
 
____________________________
 
 
http://www.3alive.org/ssal/earth_solar_system_open_gl__64_bit.zip
Downloaded File from 3alive.org
Source: External Media
 
earth_solar_system_opengl.exe
 
____________________________
 
File Actions
 
File: C:\Users\leigh\Downloads\earth_solar_system_open_gl__64_bit\ earth_solar_system_opengl.exe Removed
____________________________
 
 
File Thumbprint - SHA:
9bc820ca5349f68bad2e7f0490a2d5d5076d78028d80813eb7629d2b004f8a87
File Thumbprint - MD5:
004d14ac233ed9985eab297d417c6bb0
 
/Flibble
 
--
¬
Bonita Montero <Bonita.Montero@gmail.com>: Oct 24 05:42PM +0200

https://www.virustotal.com/gui/file/9bc820ca5349f68bad2e7f0490a2d5d5076d78028d80813eb7629d2b004f8a87/detection
Juha Nieminen <nospam@thanks.invalid>: Oct 24 03:48PM

> I've written a simulation for my Solar System Assembly Line theory in
> Open GL.
 
Amazing how much work you put into absolute insanity.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 11:56AM -0400

On 10/24/20 10:54 AM, Bart wrote:
>> http://www.3alive.org/ssal/earth_solar_system_open_gl__64_bit.zip
 
> I tried the 64-bit version. It started, and I got a picture that looked
> like the first frame of your video, but it didn't do anything.
 
It has controls. Spacebar pauses, -+ to make it wider/narrower, */ make
it taller/shorter, 1,2,3 for perspective, ortho, and motion.
 
It sounds like anti-virus killed it.
 
 
--
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 12:04PM -0400

On 10/24/20 11:48 AM, Juha Nieminen wrote:
>> I've written a simulation for my Solar System Assembly Line theory in
>> Open GL.
 
> Amazing how much work you put into absolute insanity.
 
I'm prepared to accept it's not a valid theory, but not based on opinion
or beliefs. I'm looking for hard scientific data which disproves it, or
overt Biblical passages / doctrine which categorically refutes it.
 
I've studied this theory for 10 years now, and I am not aware of any. I
am asking for other people to help me break the theory and disprove it.
I would like to be free from it, as it's a burden that follows me around
in my life.
 
--
Rick C. Hodgin
Richard Harnden <richard.nospam@gmail.com>: Oct 24 05:23PM +0100

On 24/10/2020 17:04, Rick C. Hodgin wrote:
 
> I'm prepared to accept it's not a valid theory, but not based on opinion
> or beliefs.  I'm looking for hard scientific data which disproves it, or
> overt Biblical passages / doctrine which categorically refutes it.
 
Occam's razor?
 
> am asking for other people to help me break the theory and disprove it.
> I would like to be free from it, as it's a burden that follows me around
> in my life.
 
You have wasted ten years, then, sorry.
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 12:25PM -0400

On 10/24/20 10:54 AM, Bart wrote:
> said Access Denied (and there were no orphaned processes that I could
> see still running. But I was able to delete the binary. When I
> reinstalled it, it did the same thing. This is on Windows 7.
 
I don't think you use Visual Studio, but I'll post the source code so
people can compile it for themselves. I develop it in VS2008 in a
specific folder, and have some paths hard-coded for that development.
It's part of my LibSF software project, so it goes here:
 
\libsf\source\earth_solar_system\c++\earth_solar_system_opengl\
 
And it copies its output to:
 
\libsf\source\earth_solar_system\c++\test_opengl\
\libsf\source\earth_solar_system\c++\test_opengl\x64\
 
And in those two folders I have the DLLs it needs for 32-bit and 64-bit
access. Those are the folders I ZIP'd up today after building with VS2019.
 
I'll put it on a GitHub page so people can download it and test it. I
don't have GitHub presently, so I'll have to get it all setup. I'll
also remove the hard dependencies and make them relative so it can be
immediately loaded, compiled, and ran.
 
To my knowledge, there's nothing malicious in anything I've published.
If there is something, it might be from the DLLs I use as those were
taken from the web several years ago (Free GLUT). I haven't had any
issues with them and my own AV does not flag them (in Windows 7 or
Windows 10). My son's computer initially flagged them when running an
app this 3D engine I've created is based on. It was a test of a Mario
World like side-scroller. He added an exception for that executable,
and hasn't had any issues since. He gets an update on the Earth Solar
System Open GL exe on an almost daily basis, and his AV has not
complained since.
 
If you're daring, add an exception. If not, wait for the source code
and compile it in Visual Studio 2008 or later from the solution, or
probably almost any version of Visual Studio 2003 or later otherwise.
 
--
Rick C. Hodgin
Lew Pitcher <lew.pitcher@digitalfreehold.ca>: Oct 24 04:29PM

On Sat, 24 Oct 2020 17:23:40 +0100, Richard Harnden wrote:
 
>> disproves it, or overt Biblical passages / doctrine which categorically
>> refutes it.
 
> Occam's razor?
 
Russell's teapot: the philosophic burden of proof lies upon a person
making unfalsifiable claims.
 
[snip]
 
 
 
 
--
Lew Pitcher
"In Skills, We Trust"
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 12:43PM -0400

On 10/24/20 12:29 PM, Lew Pitcher wrote:
> Russell's teapot: the philosophic burden of proof lies upon a person
> making unfalsifiable claims.
 
I have laid everything before people, and am finalizing a book that will
be published for free which holds the entire concept in a 300 page package.
 
Are you able to prove something true? Newton's theories of motion are
correct, but they are incomplete. It took Einstein coming along to
extend Newton to different velocities and gravitational environments.
 
This theory I have takes what we have been given and puts it together
into a package which aligns Biblical teaching with real-world
observation through our probes and landings and gazing through
telescopes. It answers questions which cannot be answered today. It
puts philosophical meaning behind our existence. It does a lot to
address the needs of science and religion.
 
But how do you prove it's true? I'm only looking for something in
science or in the Bible which will disprove it. That should be doable
if it's wrong.
 
--
Rick C. Hodgin
Mr Flibble <flibbleREMOVETHISBIT@i42.co.uk>: Oct 24 05:45PM +0100

On 24/10/2020 17:25, Rick C. Hodgin wrote:
> To my knowledge, there's nothing malicious in anything I've published. If there is something, it might be from the DLLs I use as those were taken from the web several years ago (Free GLUT).  I haven't had any issues with them and my own AV does not flag them (in Windows 7 or Windows 10).  My son's computer initially flagged them when running an app this 3D engine I've created is based on.  It was a test of a Mario World like side-scroller.  He added an exception for that executable, and hasn't had any issues since.  He gets an update on the Earth Solar System Open GL exe on an almost daily basis, and his AV has not complained since.
 
> If you're daring, add an exception.  If not, wait for the source code and compile it in Visual Studio 2008 or later from the solution, or probably almost any version of Visual Studio 2003 or later otherwise.
 
If I ever add an exception to my AV so I can run any of your fucktarded software, mate, then someone needs to shoot me as I have obviously completely lost it.
 
/Flibble
 
--
¬
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 12:47PM -0400

On 10/24/20 12:45 PM, Mr Flibble wrote:
> If I ever add an exception to my AV so I can run any of your ..
> software, mate, then someone needs to shoot me as I have obviously
> completely lost it.
 
I would expect no less from you, Leigh. You do not seek the truth. I
do not expect you to be a part of this project, but only to sit on the
outside screaming at the top of your lungs against it, posting negative
comments, spewing hate, fomenting discord ... all the things one
compromised by sin in this world would do.
 
It won't get you anywhere, and it will cost you everything in the end.
 
Good luck.
 
--
Rick C. Hodgin
"Rick C. Hodgin" <rick.c.hodgin@gmail.com>: Oct 24 12:48PM -0400

On 10/24/20 12:25 PM, Rick C. Hodgin wrote:
> don't have GitHub presently, so I'll have to get it all setup.  I'll
> also remove the hard dependencies and make them relative so it can be
> immediately loaded, compiled, and ran.
 
This will be the GitHub page:
 
https://github.com/RickCHodgin/Earth_Solar_System_OpenGL
 
I haven't pushed the source code yet. But, it will be up there sometime
soon (Lord willing, James 4:15). :-)
 
--
Rick C. Hodgin
"André G. Isaak" <agisaak@gm.invalid>: Oct 24 08:04AM -0600

On 2020-10-24 00:03, olcott wrote:
 
> it is aborted and it halts we have the wrong answer.
 
> It must mean: Aborted_Because_Non_Halting_Behavior_Detected.
> This is the exact same cases, except now we have the right answer.
 
I'm starting to think your confusion about Linz proof is even deeper
than I'd originally thought.
 
From the above you seem to think that there is a contradiction if you
claim a program doesn't halt when it has to be aborted inside
DebugTrace() because aborting it causes it to halt. That isn't a
contradiction, because presumably if you ran the program on its own it
would not halt. And that's the only behaviour that H is concerned with.
 
And if you are under the impression that *that* is the contradiction
inherent in the Linz Proof, then you have completely misunderstood the
proof (not that there was any doubt of that).
 
The question which H is designed to answer is 'does the input TM halt'?
 
It isn't asking about what happens when run inside your DebugTrace()
routine. It's asking about what happens when the machine is run on its own.
 
There's nothing in the definition of H which requires H to run the input
program at all. Merely to determine if it would halt, which is one
reason, among many, why you need to stop talking about UTMs. A UTM is a
TM which executes another arbitrary TM. Neither H nor Ĥ do that. They
answer a *question* regarding another TM.
 
André
 
--
To email remove 'invalid' & replace 'gm' with well known Google mail
service.
olcott <NoOne@NoWhere.com>: Oct 24 10:36AM -0500

On 10/24/2020 9:38 AM, Mike Terry wrote:
 
> Maybe, and that would be the right thing to do if your solution is
> wrong.  In any case, if you can't refute the Linz proof without changing
> the meaning of "Halt Decider", then your solution is wrong.
 
I am refuting that the Linz proof proves that the halting problem is
undecidable by finding another way to define the halt decider that
cannot be contradicted.
 
> and there is no contradiction anymore, so I've refuted the Linz proof.
> [The Linz proof said there could be no such H, but I've delivered one,
> and I can supply the traces to prove it!]  Right?
 
A halt decider is a program that always halts and cannot be shown to
ever get the wrong halting answer.
 
> conditions for a Halt Decider specified in Linz [with the exception that
> it only has to correctly decide one input program, viz H^, in order to
> refute Linz].
 
As long as it cannot be shown to ever get the wrong answer when it
divides its input into halting and not halting and the halt decider
itself always halts then all of the other details are moot.
 
If it calls its halting decision:
"three blind mice see how they run" and this means
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == false
 
If it calls its not halting decision:
"Baa, baa, black sheep, Have you any wool?" and this means
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
 
Then it is still a halt decider that has refuted the proof that he
halting problem is undecidable.
 
If it is forced to report HALTS or DOES_NOT_HALT then in those cases
where it must abort the execution trace of its input it is forced to get
the wrong answer.
 
It could report would_not_otherwise_halt_unless_aborted (the actual
situation) that does not fit into either a HALTS or DOES_NOT_HALT category.
 
> If it doesn't, you are not talking about the Linz proof, so no way can
> you be refuting it.  This is much more basic than any of the other stuff
> you talk about in your refutation.
 
I am refuting the conclusion of the Linz proof that the halting problem
is undecidable.
 
> code, but you still need to get *the right answer for H*.  H must
> somehow translate the Was_Its_Execution_Aborted() return code into its
> HALT/NOT_HALT decision.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
means that the input has infinite execution.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == false
means that the input DOES NOT HAVE infinite execution.
 
> OK I've said that before, so I won't be looping and saying it in any
> further posts.
 
I have answered it before and you either did not get to that post yet or
you ignored my answer. The most common form a dialogue with me in these
forums is to ignore what I say and dogmatically assert that I must be
incorrect.
 
>> decidable we must ask a question that cannot be thwarted.
 
> You can ask such a question internally, but H has to answer the Linz
> question.
 
The only reason that the Linz proof succeeds it that it is based on a
definition of a halt decider that can be made subject to pathologcal
self-reference.
 
None of the conventional self-referential halting problem proof
counter-examples actually show that the halting problem has no solution
they merely found one way NOT to solve the halting problem.
 
It is like Edison trying to invent the light bulb. He tries to make a
light build out of a brick. It does not work, so Edison concludes that
light bulbs are impossible.
 
 
> turns it into its HALT/NOT_HALT decision, we /can/ contradict that. (And
> no, you're not allowed to change the definition of what H decides -
> that's specified in Linz proof.)
 
So yes as all the proofs show there is at least one way that you can
define a halt decider that can be fooled.
 
> old questions are equivalent in computing terms, and it doesn't matter
> whether you say "I emulated input and terminated it because I correctly
> decided it would never halt" or "input never halts [if run natively]".
 
In this case running it natively includes that it is aborted because
H_Hat() still invokes
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I);
 
>> This function cannot be contradicted.
 
> But H has to translate the rc from Was_Its_Execution_Aborted() into a
> HALT/NOT_HALT decision.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I);
 
Can be interpreted as exactly what it means by a human yet does not
precisely fit into either category of HALTS / DOES_NOT_HALT.
 
> "literal naming" convention, perhaps its preferable to call
> DeciderLogic() "WouldItHaltIfCalledNatively()", because that is the
> actual question H has to answer according to Linz spec.
 
That is an incorrect way of saying it because H_Hat() natively invokes:
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I);
 
> Was_Its_Execution_Aborted() and then somehow turns the answer to that
> question into its own answer [which it can't do correctly, as the
> standard Linz proof shows].
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I);
does refute the conclusion of all of the conventional self referential
halting problem proofs.
 
> must answer the Linz question, because it is the Linz proof that you are
> claiming to refute.  [Basic and obvious fact.]
 
> Mike.
 
bool Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
cannot be precisely placed into either category of HALTS / DOES_NOT_HALT
Yet does divide all of its inputs into halting and looping.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 24 10:41AM -0500

On 10/24/2020 4:37 AM, Malcolm McLean wrote:
> anyway, ignoring this little difficulty. H(H_Hat,H_Hat) reports "this program
> terminated abormally". H_Hat(H_Hat) terminates abormally.
 
> So everything is consistent.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
means that the input has infinite execution.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == false
means that the input DOES NOT HAVE infinite execution.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
Does not precisely fit into either category of HALTS / DOES_NOT_HALT,
yet always indicates that the input program would never halt unless it
was aborted.
 
 
 
 
--
Copyright 2020 Pete Olcott
Mike Terry <news.dead.person.stones@darjeeling.plus.com>: Oct 24 04:58PM +0100

On 24/10/2020 05:02, olcott wrote:
>> Was_Its_Execution_Aborted emulates H_Hat(H_Hat)
>> Was_Its_Execution_Aborted decides the emulation is looping!!!
 
> Infinitely recursive.
 
What do you mean by that? Are you agreeing or disagreeing with the
line? How should the line be corrected?
 
Does Was_Its_Execution_Aborted() decide the emulated H_Hat(H_Hat) is
exhibiting infinite recursion)? That is a form of "not halting", so we
could make the line 100% correct by rewording it
 
I think maybe you just mean that Was_Its_Execution_Aborted() identifies
the onset of infinited recursion in the program its emulating, and so
decides it is going to abort the emulation - so your remark is just a
comment. Or at least we can get rid of this comment if I change my
wording to
 
Was_Its_Execution_Aborted decides the emulated program ..
.. will never terminate if not aborted
 
I.e. the problem(?) is just my use of the word "loop" rather than the
more general "never terminate".
 
>> H_Hat does the opposite of HALT/NOT_HALT
 
> No this step is incorrect as you can see by the following code.
> In this case ABORTED = true causing the outermost H_Hat() to halt.
 
Ok, this is all down to me copy-and-pasting from my earlier post which
included my DeciderLogic() intermediate routine. I tried to remove
references to that after the copying, but the HALT/NOT_HALT is a carry
over. (DeciderLogic() translated ABORTED into the HALT/NOT_HALT
decision that H makes.)
 
So this is easily corrected - we just have to know how ABORTED is to be
translated into H's HALT/NOT_HALT decision. (I.e. whether H sets EAX to
0 or 1 when ABORTED is true...)
 
> }
> HALT
> }
 
Given this implementation it's clear Was_Its_Execution_Aborted()
returning ABORTED results in H_Hat halting. Which is what you said, so
good.
 
So we can correct my trace by amending my line from
>> H_Hat does the opposite of HALT/NOT_HALT
to
>> H_Hat halts
 
 
> It seems really really weird that H_Hat() decides that its input of
> H_Hat() will not halt and then it goes ahead and halts itself.
 
Not really, H_Hat is not a decider. It is only you who sees weirdness,
because you /tried/ to design H/H^ to work in a particular way, and in
the end they do not. :)
 
> information than the inner halt decider (more traced steps) so we are
> not getting two different results from the same function for the same
> input. The inputs are different.
 
I am only interested (for this machine trace) in whether H_Hat(H_Hat)
halts or does not halt for the specific case of your final code delivery
(which you've yet to make). You can give your own explanations for
/why/ your code does what it does, but I don't need to understand that.
(Also, the trace is only for the outer level process, and you are trying
to explain something about the inner levels, which is OK but not
relevant to this level of trace.)
 
 
> it is best that it terminates its input as soon as it definitely decides
> that its input must be terminated. This keeps things simple.
 
>> So... which of these lines are correct/incorrect?
 
Thanks for responding above.
 
So... Based on your comments, here is a corrected version of my H_Hat
machine trace!:
 
H_Hat starts (main() calls H_Hat(H_Hat))
H_Hat calls Was_Its_Execution_Aborted(H_Hat,H_Hat)
Was_Its_Execution_Aborted emulates H_Hat(H_Hat)
Was_Its_Execution_Aborted decides the emulated program ..
.. will never terminate if not aborted
Was_Its_Execution_Aborted stops emulating and returns ABORTED
H_Hat halts
 
Great!
 
 
>> ..from Was_Its_Execution_Aborted()
 
>> While we're at it you might as well say which of these lines are
>> correct/incorrect too. :)
 
And also, based on your comments, here is a corrected version of my H
machine trace!:
 
H starts (main() calls H(H_Hat,H_Hat))
H calls Was_Its_Execution_Aborted(H_Hat,H_Hat)
Was_Its_Execution_Aborted emulates H_Hat(H_Hat)
Was_Its_Execution_Aborted decides the emulated program ..
.. will never terminate if not aborted
Was_Its_Execution_Aborted stops emulating and returns ABORTED
H halts, with EAX=0 [= NOT_HALT decision]
 
Great!
 
Except that now the H_Hat and H machine traces are in conflict for the
expected reason.
 
You may explain /why/ your code has behaved like this by talking about
outer levels of code having more information than inner levels, and why
you believe there is nothing contradictory about this, but in the end
that simply doesn't matter. The fact is that FOR YOUR FINAL DELIVERY OF
H, H_Hat, it is the case that:
 
1) H_Hat run with input (H_Hat) halts
2) H run with input (H_Hat, H_Hat) transitions to the NOT_HALT state.
 
This is exactly what Linz says. Your refutation has failed.
 
Mike.
olcott <NoOne@NoWhere.com>: Oct 24 11:04AM -0500

On 10/24/2020 9:00 AM, Richard Damon wrote:
>> this time it does it in a way that it cannot be fooled.
 
> Does it? Does Was_Input_Aborted ALWAYS return the correct answer. Will
> it say 'Aborted' only if the program being analyzed WILL loop infinitely?
 
The redefined halt decider eliminates the undecidability of the halting
problem. It cannot be shown that the redefined halt decider ever
necessarily gets the wrong answer.
 
> program likely runs forever, but maybe it stops?
 
> If the latter, then you are basically admitting that your answer isn't
> always correct.
 
It cannot be shown that the answer is ever necessarily incorrect.
The redefined halt decider eliminates the undecidability of the halting
problem.
 
> In particular, it seems that you are accepting that H(H_Hat, H_Hat) will
> say that the machine H_Hat(H_Hat) needed to be aborted, even though when
> you actually run H_Hat(H_Hat) it properly halts in finite time.
 
This is the tricky part. Now that I have a full x86utm operating system
to back me up I can make claims that can be empirically proved.
I will use Mike Terry's new name because it is more clear:
 
The outermost x86utm process that invokes this function
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
 
has a longer execution trace than its inner invocation in the H_Hat()
process. This means that the outer invocation has more data than the
inner invocation.
 
Because it has more data the rule that the same function with the same
data must produce the same result is not violated when the outer x86utm
process: Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I)
decides to abort the whole H_Hat() process tree.
 
It doesn't matter if H() or H_Hat() invokes
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) in the
x86utm process because they are both invoking the same function with the
same data thus decuding the same result:
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) == true.
 
It turns out that all of the conventional self-referential halting
problem proof counter-examples specify infinite recursion that never
reaches the undecidable states. Because of this none of them would ever
halt unless their execution is aborted.
 
If we simply wait and see what H_Hat() does and do not decide to abort
it, then H_Hat()'s infinite recursion causes it to have infinite execution.
 
> So yes, your 'Halting Decider' can be built as long as it is allowed to
> be WRONG some of the time.
 
This redefined halt decider cannot be shown to ever necessarily decide
incorrectly.
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 24 11:14AM -0500

On 10/24/2020 8:50 AM, Richard Damon wrote:
> correctly its halting state.
 
> To find fault in that machine, you just need to somehow provide a
> machine that can give the answer for that particular construction.
 
Yes that is correct. The other aspect of this issue is that the halt
decider must be redefined so that it is not subject to pathological
self-reference:
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
means that the input has infinite execution.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == false
means that the input DOES NOT HAVE infinite execution.
 
> of H_Hat outside of that machine are fully defined. The candidate
> machine H is not allowed to loop forever, as then it doesn't met the
> requirements of a decider.
 
All of the conventional halting problem proof counter-examples merely
found one way to define a halt decider that does not work.
 
The above redefined halt decider cannot be shown to ever get the wrong
asswer.
 
> all input to refute Linz, but you do need to come up (somehow) with one
> that correctly works for his H_Hat(H_Hat) that is allowed to use your
> definition of H.
 
I have done the most difficult part of this task. I created the x86utm
operating system.
 
Once you understand:
 
(1) The effect of the redefinition of a halt decider eliminates the
undecidability of the halting problem.
 
(2) The fact that every conventional self-referential halting problem
proof counter-example is infinitely recursive and never reaches the
undecidable states.
 
Then correctly deciding _H_Hat() is only a matter of detecting its
infinite recursion and reporting:
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
 
 
--
Copyright 2020 Pete Olcott
olcott <NoOne@NoWhere.com>: Oct 24 11:25AM -0500

On 10/24/2020 9:04 AM, André G. Isaak wrote:
> DebugTrace() because aborting it causes it to halt. That isn't a
> contradiction, because presumably if you ran the program on its own it
> would not halt. And that's the only behaviour that H is concerned with.
 
H_Hat(H_Hat) calls
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) which aborts
the inner H_Hat() and returns true to the outer H_Hat() which then
terminates normally.
 
> inherent in the Linz Proof, then you have completely misunderstood the
> proof (not that there was any doubt of that).
 
> The question which H is designed to answer is 'does the input TM halt'?
 
Yes and this question can be phrased such that it is subject to
pathological self-reference and it can be phrased such that is is not
subject to patholegical self-reference.
 
> It isn't asking about what happens when run inside your DebugTrace()
> routine. It's asking about what happens when the machine is run on its own.
 
Previously when I talking about inner H_Hat() and outer _H_Hat() people
flatly denied that there could be any such thing. Now I have a complete
x86utm operating system to empirically prove my point.
 
People were saying the every instance of a halt decider having the same
input must always return that same result without realizing that the
outer instance of a halt decider has a longer execution trace than the
inner instance of this halt decider sop the input is not the same.
 
> TM which executes another arbitrary TM. Neither H nor Ĥ do that. They
> answer a *question* regarding another TM.
 
> André
 
The simplest and most direct way to define any halt decider is to simply
execute its program under test (PUT) one (step / state transition) at a
time and examine its actual behavior.
 
--
Copyright 2020 Pete Olcott
Mike Terry <news.dead.person.stones@darjeeling.plus.com>: Oct 24 05:37PM +0100

On 24/10/2020 16:36, olcott wrote:
 
> I am refuting that the Linz proof proves that the halting problem is
> undecidable by finding another way to define the halt decider that
> cannot be contradicted.
 
The Linz halt decider corresponds to the correct (HP) definition of a
halt decider. If you change this definition you are not discussing HP.
 
>> I've delivered one, and I can supply the traces to prove it!] Right?
 
> A halt decider is a program that always halts and cannot be shown to
> ever get the wrong halting answer.
 
A halt decider is what the HP says a halt decider is. There is nothing
in that definition about "cannot be shown to...". You've made that up.
 
 
> As long as it cannot be shown to ever get the wrong answer when it
> divides its input into halting and not halting and the halt decider
> itself always halts then all of the other details are moot.
 
The point of the Linz proof is that it /does/ show that any halt decider
will always give a wrong answer for at least one input (the (H^,H^)
input).
 
If you aim to refute this, then for you must show that your H, H^ have
the correct relationship and yet the Linz conclusion is incorrect for
your H,H^. (So far you've demonstrated that it IS correct as shown in
the two stack traces for their execution.)
 
 
> Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
 
> Then it is still a halt decider that has refuted the proof that he
> halting problem is undecidable.
 
Nonsense.
 
 
> If it is forced to report HALTS or DOES_NOT_HALT then in those cases
> where it must abort the execution trace of its input it is forced to get
> the wrong answer.
 
Exactly, so it is not in fact a halt decider after all.
 
 
> It could report would_not_otherwise_halt_unless_aborted (the actual
> situation) that does not fit into either a HALTS or DOES_NOT_HALT category.
 
No, a halt decider by definition reports HALT/NOT_HALT. You can
obviously change the labels to whatever you like, but the /meaning/
behind the labels cannot be changed:
 
- HALT decision indicates the TM identified by the tape input
when run with the data identifed by the tape input halts
 
- NOT_HALT decision indicates the TM identified by the tape input
when run with the data identifed by the tape input does not halt
 
ok, now our dialog has just come to repeating the same stuff, so I'm
stopping.
 
Mike.
olcott <NoOne@NoWhere.com>: Oct 24 11:40AM -0500

On 10/24/2020 7:07 AM, Ben Bacarisse wrote:
>> H(H_Hat, H_Hat) and H_Hat(H_Hat) because its input is identical.
 
> And hence, as I (and others) showed you, H(H_Hat, H_Hat) gives the wrong
> result.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == true
means that the input has infinite execution.
 
Aborted_Because_Non_Halting_Behavior_Detected(u32 P, u32 I) == false
means that the input DOES NOT HAVE infinite execution.
 
This redefined notion of a halt decider cannot be shown to ever get the
wrong answer.
 
> gets its return value (or what you call it) does not stop H(H_Hat,
> H_Hat) being wrong, but a people seem to have got sucked into your
> vortex!
 
When executed from the outermost execution context of x86utm
H(H_Hat, H_Hat) and H_Hat(H_Hat) both call
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat)
and each one receives a return value of true.
 
Also in each case the inner invocation of
Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) that was
executed in the process context of the inner H_Hat() is aborted when the
whole process tree of the inner H_Hat() is aborted. This prevents the
inner Aborted_Because_Non_Halting_Behavior_Detected(H_Hat, H_Hat) from
ever returning a value to the inner H_Hat().
 
> Notice that you are wrong in several equally problematic ways. You have
> redefines the notion of a halt decider so as to give yourself permission
> to get some cares wrong (that was the 2004 tactic), but you also haven't
 
If you foolishly ignore what I say and merely dogmatically state that I
am incorrect this is no rebuttal what-so-ever.
 
Merely dogmatically stating that I am incorrect without actually
pointing out any error only becomes dishonest when you claim to have
pointed out an error and indeed did not point out any error.
 
It is not dishonest if you point something out that you wrongly believe
is an error and indeed is not actually an error. In this case it is
merely an honest mistake.
 
 
--
Copyright 2020 Pete Olcott
Frederick Gotham <cauldwell.thomas@gmail.com>: Oct 24 06:19AM -0700

This is a follow-up to "Making a Fat Binary for Linux and Mac" which I
multi-posted two days ago to three newsgroups:
 
comp.lang.c, comp.lang.c++, comp.unix.programmer
 
I got the most responses on 'comp.lang.c', which you can see here:
 
https://groups.google.com/forum/#!topic/comp.lang.c/Qev_btMilNI
 
I have now made a fat binary that contains 5 executable programs:
 
* Linux arm32
* Linux arm64
* Linux x86_32
* Linux x86_64
* MS-Windows x86_32
 
For the Microsoft Windows executable file, I went with a 32-Bit
executable because it will run on both 32-Bit and 64-Bit versions of
MS-Windows.
 
So here's how my 'combined Linux and MS-Windows' script looks now. Note
that each line begins with four spaces. This script will run as an 'sh' shell script on Linux, and will run as a batch file on MS-Windows.
 
[BEGIN SCRIPT]
:; if [ -z 0 ]; then #
@echo off
goto :MICROSOFT
fi

# Linux shell script starts here

# x86 32-Bit = i386, i686
# x86 64-bit = x86_64
# arm 32-Bit = arm
# arm 64-Bit = aarch64 aarch64_be armv8b armv8l

arch=`uname -m`

case ${arch} in
i386|i686)
skip=000000018788
count=000000005464
;;
x86_64)
skip=000000024252
count=000000010216
;;
arm|armv7l)
skip=000000034468
count=000000005528
;;
aarch64|aarch64_be|armv8b|armv8l)
skip=000000039996
count=000000010080
;;
*)
exit 1
;;
esac

tmpfile=$(mktemp /tmp/fatbinary_${arch}.XXXXXXXXXX)
dd if="$0" of=${tmpfile} bs=1 skip=${skip} count=${count} > /dev/null 2>&1
chmod +x ${tmpfile}
${tmpfile} "$@"
retval=$?
rm -rf "$tmpfile"
exit ${retval}

# Microsoft batch file starts here
:MICROSOFT
REM The next 6 lines are just for making a temporary file
:loop
set /a y$$=%random%+100000
set y$$=temp%y$$:~1,2%.%y$$:~-3%
if exist "%temp%\%y$$%.exe" goto loop
set "y$$=%temp%\%y$$%"
set "tempfile=%y$$%.exe"
findstr /v /c:" " "%~f0" > %tempfile%
%tempfile% %*
set "finalerrorcode=%ERRORLEVEL%"
del /f /q %tempfile%
exit /b %finalerrorcode%
[END SCRIPT]
 
The Linux part of the above script has "\n" line endings, whereas the
Microsoft part of the above script has "\r\n" line endings. See the
first link at the end of this post to get the original file.
 
As for the program for which I chose to make a fat binary, I went with a
sha256 digest calculator, using code by Alain Mosnier from repository:
https://github.com/amosnier/sha-2
 
I have turned Mosnier's code into a single-source-file C program that
calculates the sha256 digest of its first command line argument. For the
C code, see the second link at the end of this post.
 
I compiled this C program 5 times and got the 5 following binaries:
 
-rwxr-xr-x 1 root root 17422 Oct 24 11:10 prog_mswin_x86_32.exe
-rwxr-xr-x 1 root root 5464 Oct 24 13:50 prog_x86_32
-rwxr-xr-x 1 root root 10216 Oct 24 13:50 prog_x86_64
-rwxr-xr-x 1 root root 5528 Oct 24 13:50 prog_arm32
-rwxr-xr-x 1 root root 10080 Oct 24 13:50 prog_arm64
 
(See download links 3-7 at the end of this post)

I concatenated my script with these 5 binaries as follows:
 
cat script.txt prog_mswin_x86_32.exe prog_x86_32 prog_x86_64 prog_arm32 prog_arm64 > fatsha256.bat
 
The result is my fat binary with size 50 kilobytes:
 
-rwxr-xr-x 1 root root 50076 Oct 24 13:51 fatsha256.bat
(See download link 8 at the end of this post)

This file can be executed at the command line on both Linux and MS-Windows:
 
fatsha256.bat "This is my message"

And it prints the digest:
 
3311b7c0bd91b6c73a38212de8ade31c51910f17480ad212ed2b9798a35b7747

I have verified it works on:
* Linux arm32
* Linux arm64
* Linux x86_64
* MS-Windows x86_32
 
It should also work on Linux x86 32-Bit, let me know if someone tries
it.
 
Links:
 
1: http://virjacode.com/experimental2/script.txt
2: http://virjacode.com/experimental2/sha256.c
3: http://virjacode.com/experimental2/prog_arm32
4: http://virjacode.com/experimental2/prog_arm64
5: http://virjacode.com/experimental2/prog_x86_32
6: http://virjacode.com/experimental2/prog_x86_64
7: http://virjacode.com/experimental2/prog_mswin_x86_32.exe
8: http://virjacode.com/experimental2/fatsha256.bat
You received this digest because you're subscribed to updates for this group. You can change your settings on the group membership page.
To unsubscribe from this group and stop receiving emails from it send an email to comp.lang.c+++unsubscribe@googlegroups.com.

No comments: