Sujet : Re: "there will still be a nested simulation tower" Kaz ---
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.theoryDate : 30. Oct 2025, 00:30:02
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20251029161840.401@kylheku.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2025-10-29, olcott <
polcott333@gmail.com> wrote:
On 10/29/2025 2:08 PM, Kaz Kylheku wrote:
On 2025-10-29, olcott <polcott333@gmail.com> wrote:
On 10/29/2025 5:07 AM, Mikko wrote:
Note that the above still keeps the option to deceive with equivocation.
>
>
Not at all, it is stipulated that H does simulate
D according to the semantics of the C language until
H sees that itself is stuck in recursive simulation.
Then H reports 0, whereas if the simulation is continued,
it hals in th esmae way as a D() executed on a regular
simulartor/processor.
>
I don't see how you are getting this.
Which line of code are you struggling with? I'm open to questions.
It seems to me that you are saying that
when you kill a turkey and entirely consume
all of its flesh that some how the turkey
is still running around in your back yard.
Are you simply not able to wrap your imagination around the point that when
your HHH bails out of its loop inside Decide_Halting_HH and returns 0, the
slave_state and slave_stack objects still exist, representing the suspended
simulation of D (DD, DDD< ...) exactly as HHH left it, ready for taking the
next DebugStep call?
>
void Infinite_Loop()
{
HERE: goto HERE;
return;
}
>
We can "prove" that the above code halts
by simply cheating and saying that it means
to go directly to its return statement.
No, we cannot prove that the above halts, because it doesn't
terminate.
You can try it. Clone my repo, build x86utm_exe with the reckoning
module in it.
git clone
https://www.kylheku.com/git/x86utmI Then modify Halt7.c such that HHH(Infinite_Loop) is called in main
and build Halt7.o.
When you run
./x86utm_exe Halt7.obj
you will see that there will be a report that an abandoned simulation
of _Infinite_Loop exists. Then when that is restarted, it will get
stuck.
In the reckoning.cpp file you can go into simulation::do_reckoning
and add a trace like this:
int x = 45; // ADD THIS
while (!done) {
emu->max_instr++;
u32 status = DebugStep(emu, flags, utm, rd,
iter->master_state, iter->slave_state, iter->decoded);
u32 EIP = get32(emu, iter->slave_state, reg(EIP));
if (x > 0) { // ADD THIS if statement
x--;
iter->print("\n");
}
It will print info about the first 45 instructions of the reanimated
simulation. The EIP should confirm that it's gotten into the
infinite loop inside Infinite_Loop.
-- TXR Programming Language: http://nongnu.org/txrCygnal: Cygwin Native Application Library: http://kylheku.com/cygnalMastodon: @Kazinator@mstdn.ca
Haut de la page
Les messages affichés proviennent d'usenet.
NewsPortal