Deutsch English Français Italiano |
<v5f54f$1lp16$3@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Fred. Zwarts" <F.Zwarts@HetNet.nl> Newsgroups: comp.theory,sci.logic Subject: Re: 195 page execution trace of DDD correctly simulated by HH0 Date: Tue, 25 Jun 2024 21:17:34 +0200 Organization: A noiseless patient Spider Lines: 206 Message-ID: <v5f54f$1lp16$3@dont-email.me> References: <v4vrfg$2793f$1@dont-email.me> <v58m12$8mmo$1@dont-email.me> <v59797$brmn$1@dont-email.me> <v5b7nv$qvrb$1@dont-email.me> <v5btf3$v0vb$4@dont-email.me> <v5chru$10816$1@i2pn2.org> <v5cn01$149dc$1@dont-email.me> <v5ebvr$1hs89$1@dont-email.me> <v5efod$1ikpr$1@dont-email.me> <v5ejau$1iq57$1@dont-email.me> <v5eup8$1lar1$2@dont-email.me> <v5f1nm$1lp16$1@dont-email.me> <v5f246$1m2fl$1@dont-email.me> <v5f3fg$1lp16$2@dont-email.me> <v5f3j8$1m2fl$2@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Tue, 25 Jun 2024 21:17:35 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c4ff8408f3b943eae31dc22ab1458b62"; logging-data="1762342"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19zH3RxYd/yJ/MMLKBpNFU6" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:kRPRysEGjYylpWugS8KYUqrQNn0= In-Reply-To: <v5f3j8$1m2fl$2@dont-email.me> Content-Language: en-GB Bytes: 9900 Op 25.jun.2024 om 20:51 schreef olcott: > On 6/25/2024 1:49 PM, Fred. Zwarts wrote: >> Op 25.jun.2024 om 20:26 schreef olcott: >>> On 6/25/2024 1:19 PM, Fred. Zwarts wrote: >>>> Op 25.jun.2024 om 19:29 schreef olcott: >>>>> On 6/25/2024 9:13 AM, Fred. Zwarts wrote: >>>>>> Op 25.jun.2024 om 15:12 schreef olcott: >>>>>>> On 6/25/2024 7:08 AM, Fred. Zwarts wrote: >>>>>>>> Op 24.jun.2024 om 23:04 schreef olcott: >>>>>>>>> On 6/24/2024 2:36 PM, joes wrote: >>>>>>>>>> Am Mon, 24 Jun 2024 08:48:19 -0500 schrieb olcott: >>>>>>>>>>> On 6/24/2024 2:37 AM, Mikko wrote: >>>>>>>>>>>> On 2024-06-23 13:17:27 +0000, olcott said: >>>>>>>>>>>>> On 6/23/2024 3:22 AM, Mikko wrote: >>>>>>>>>>>>>> That code is not from the mentined trace file. In that >>>>>>>>>>>>>> file _DDD() >>>>>>>>>>>>>> is at the addresses 2093..20a4. According to the trace no >>>>>>>>>>>>>> instruction >>>>>>>>>>>>>> at the address is executed (because that address points to >>>>>>>>>>>>>> the last >>>>>>>>>>>>>> byte of a three byte instruction. >>>>>>>>>>>>> >>>>>>>>>>>>> In order to make my examples I must edit the code and this >>>>>>>>>>>>> changes the >>>>>>>>>>>>> addresses of some functions. >>>>>>>>>>>> >>>>>>>>>>>> Why do you need to make an example when you already have one >>>>>>>>>>>> in the >>>>>>>>>>>> file mentioned in the subject line? >>>>>>>>>>>> >>>>>>>>>>> I had to make a few more examples such as HH1(DD,DD) >>>>>>>>>> AFACT HH1 is the same as HH0, right? What happens when HH1 >>>>>>>>>> tries to >>>>>>>>>> simulate a function DD1 that only calls HH1? >>>>>>>>>> >>>>>>>>> >>>>>>>>> typedef uint32_t u32; >>>>>>>>> u32 H(u32 P, u32 I); >>>>>>>>> >>>>>>>>> int P(u32 x) >>>>>>>>> { >>>>>>>>> int Halt_Status = H(x, x); >>>>>>>>> if (Halt_Status) >>>>>>>>> HERE: goto HERE; >>>>>>>>> return Halt_Status; >>>>>>>>> } >>>>>>>>> >>>>>>>>> int main() >>>>>>>>> { >>>>>>>>> H(P,P); >>>>>>>>> } >>>>>>>>> >>>>>>>>> I am going to have to go through my code and standardize my names. >>>>>>>>> H(P,P) was the original name. Then I had to make a one parameter >>>>>>>>> version, a version that is identical to H, except P does not call >>>>>>>>> it and then versions using different algorithms. People have never >>>>>>>>> been able to understand the different algorithm. >>>>>>>>> >>>>>>>>> typedef void (*ptr)(); >>>>>>>>> typedef int (*ptr2)(); >>>>>>>>> int HH(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls HH >>>>>>>>> int HH1(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls HH >>>>>>>>> int HHH(ptr P); // used with void DDD() that calls HHH >>>>>>>>> int HHH1(ptr P); // used with void DDD() that calls HHH >>>>>>>>> >>>>>>>>> *The different algorithm version has been deprecated* >>>>>>>>> int H(ptr2 , ptr2 I); // used with int D(ptr2 P) that calls H >>>>>>>>> int H1(ptr2 P, ptr2 I); // used with int D(ptr2 P) that calls H >>>>>>>>> >>>>>>>>> *It is much easier for people to see the infinite recursion* >>>>>>>>> *behavior pattern when they see it actually cycle through the* >>>>>>>>> *same instructions twice* >>>>>>>> >>>>>>>> Twice is not equal to infinitely. When will you see that? >>>>>>>> It is strange that you call that an infinite recursion, when H >>>>>>>> aborts after two cycles and the simulated H cannot reach its own >>>>>>>> abort operation, because it is aborted when it had only one more >>>>>>>> cycle to go. >>>>>>>> None of the aborted simulations would cycle more than twice, so >>>>>>>> infinite recursion is not seen for an H that aborts the >>>>>>>> simulation of itself. >>>>>>> >>>>>>> typedef void (*ptr)(); >>>>>>> int H0(ptr P); >>>>>>> >>>>>>> void DDD() >>>>>>> { >>>>>>> H0(DDD); >>>>>>> } >>>>>>> >>>>>>> int main() >>>>>>> { >>>>>>> H0(DDD); >>>>>>> } >>>>>>> >>>>>>> _DDD() >>>>>>> [00002172] 55 push ebp ; housekeeping >>>>>>> [00002173] 8bec mov ebp,esp ; housekeeping >>>>>>> [00002175] 6872210000 push 00002172 ; push DDD >>>>>>> [0000217a] e853f4ffff call 000015d2 ; call H0(DDD) >>>>>>> [0000217f] 83c404 add esp,+04 >>>>>>> [00002182] 5d pop ebp >>>>>>> [00002183] c3 ret >>>>>>> Size in bytes:(0018) [00002183] >>>>>>> >>>>>>> The call from DDD to H0(DDD) when DDD is correctly emulated >>>>>>> by H0 cannot possibly return. >>>>>> >>>>>> Contradictio in terminis. The fact that the simulated H0 does not >>>>>> return shows that the simulation is incorrect. >>>>> >>>>> void Infinite_Recursion() >>>>> { >>>>> Infinite_Recursion(); >>>>> } >>>>> >>>>> Ah so you simply *DON'T BELIEVE IN* infinite recursion where a >>>>> correct simulating termination analyzer would be required to >>>>> abort its simulation to correctly report non-terminating behavior. >>>>> That seems quite dumb of you. >>>> >>>> Change of subject ignored. >>>> >>>>> >>>>>> The simulated H0 does not return, because it is aborted one cycle >>>>>> too soon. One cycle later it would return. >>>>> >>>>> Complete lack of sufficient software engineering skill. >>>> >>>> Maybe you should study some software engineering to get over it. >>>> >>>>> Unless the outermost directly executed H0 aborts its >>>>> simulation after a fixed number of recursive invocations >>>>> NONE OF THEM DO. >>>> >>>> Change of subject. We are talking about an H0 that aborts, so >>>> dreaming of one that does not abort is irrelevant. >>> >>> No one here can possibly handle more than one single point >>> at a time without leaping to the conclusion that I must >>> be incorrect. Because of this I will not tolerate moving >>> beyond one single point at a time. >> >> You are the one that started to talk about a second point (an H0 that >> does not abort), when we were talking about an H0 that aborts. >> So, I agree, let us forget about that second point (an H0 that does >> not abort). From now on we only talk about an H0 that aborts after two >> cycles. So, no infinite recursion, two cycles at most. >> >>> >>>> H0 aborts after two cycles. Then it aborts the simulated H0 which at >>>> that moment has run only one cycle. One cycle later the simulated H0 >>>> would also return, if not aborted. >>>> >>>>> >>>>> This did baffle me for three days 3.5 years ago until >>>>> I took the time to THINK IT ALL THE WAY THROUGH. >>>> >>>> Apparently, your thinking went completely wrong. >>>> >>> >>> No the actual truth is that you are one of my least competent >>> reviewers. >>> >> >> Bad excuse for not showing any error in my reasoning. > > I did and it was over your head. No, you didn't. > Unless the outer directly executed H aborts NONE-OF-THEM DO. ========== REMAINDER OF ARTICLE TRUNCATED ==========