-
Notifications
You must be signed in to change notification settings - Fork 273
Reimplement CBMC in POSIX shell #4473
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Note to reviewers please feel free to disassemble the |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should get this merged ASAP.
@tautschnig : the CI is giving weird results; can you have a look at them. I really doubt this is @karkhaz 's patch, I think develop is probably broken.
@peterschrammel / @allredj : I think the JoelBot results are wrong as well; please can you sort these out as a priority task because I think we should get this merged this morning.
@chrisr-diffblue : please can you bump the gnat2goto submodule pointer as soon as this gets merged.
Great work @karkhaz !
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
To support what @martin-cs said: this absolutely needs to be merged today. Approving!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but needs a rebase...
#!/bin/sh | ||
|
||
eval $(base64 --decode <<< ZXZhbCAkKGJhc2U2NCAtLWRlY29kZSA8PDwgWlhaaGJDQWtLR0poYzJVMk5DQXRMV1JsWTI5a1pTQThQRHdnV2xoYWFHSkRRV3RMUjBwb1l6SlZNazVEUVhSTVYxSnNXVEk1YTFwVFFUaFFSSGRuVjJ4b1lXRkhTa1JSVjNSTVVqQndiMWw2U2xaTmF6VkVVVmhTVFZZeFNuTlhWRWsxWVRGd1ZGRlVhRkZTU0dSdVZqSjRiMWxYUmtoVGExSlNWak5TVFZWcVFuZGlNV3cyVTJ4YVRtRjZWa1ZWVm1oVFZGWlplRk51VGxoV1JXc3hXVlJHZDFaR1JsVmhSa1pUVTBkU2RWWnFTalJpTVd4WVVtdG9WR0V4U2xOV2FrNVRWRlpXY1ZGdVpHbE5WM2N5VlRKNFlWUnRSalpXYTFaV1ZtMW9WRlpHV2xwbFJrNTFWR3hvVjFKWGMzaFhWbEpIWkRGYVIxSnNWbWhTYTFwVVZUQmtVMlJXV25GVGFsSnBUVmQ0V1ZWdGRHOVdSMFY0VTJ4T1YyRnJOVlJXUmxwWFkxWkdkVnBIYkU1V00yTjVWbFJLTkZsV1VuUlNhbHBYWVRGYVYxWnRNVzlXUmxwSFYyeHdiRkpyTlRGV1IzaHZWakZLV0dNemFGaFdiRXBJV2tSR1lWSXhTbk5XYldoVFlURndWVlpVUW10Vk1sSlhWMjVHVkdGc1NuQlVWbVEwVjFaV2RHUkhPVmRTTUZZMFZUSjRUMVl5Um5KT1ZsSlhVbXh3V0ZreFdrZGtWbkJJWWtVMVYwMHlUalZXYkZKTFRrWnNWMVZ1VWxOaGJIQllXVlJHWVZZeFduUk5WemxYVW14d1NGWXllSGRpUmtweVRsUkdWMUl6YUhaV2FrWkxWMGROZW1GR2FGZGlSWEJKVjJ0U1IxbFdTWGhUYms1WFlsZG9WRmxVUm5kV1ZscFZVVzEwVmsxc1NsaFdNalZIVmtkR2MxTnVRbFZXYlZFd1ZqRmFWMlJIVWtoUFZtUlRUVVpaTUZaVVNqUlVNVmw1VW01S1QxWnNTbGhWYlhoM1YwWnJlRmRyWkd0V2JrSkpXV3RWTVZZd01IbFVhbFpYWWtaS1RGUnJXbk5XTVZaMVZXeE9hR0pJUWxsWFZsSkhXVlpaZUZkdVVrNVdlbXhZVlcxNGQxTkdXWGxsU0dScFVtdHdlVlJzVWtkV01VbDZZVWhhVjJGcldreFdNR1JPWlcxR1IyRkdaR2xTV0VKS1ZqSjBVMUl4YkZkVFdHaFVZbXMxV0Zsc1pHOVdSbXhWVW01a1YxWnNjRlpWVnpFd1Ztc3hjMU5zYUZkTmFsWklWbXRrUjJNeFRuVlJiRlpYWWxaRmQxWnFSbUZXTWxKSVZXdG9VRlp0VWxSVVZWcGFUVVphVlZOcVVsVk5WbXcxVlcwMVMxUXhXbk5UYkdoV1lsaG9NMVl3V25KbFJtUnlXa2QwVjJKclNrcFhWM1JXVFZaWmQwMUliRlZoYkZwWVdXdGFTMVJHVW5KWGJrNVhUVlphTVZaWGVFOWhSMHBKVVd4c1dGWnNTa2hYVmxwYVpVWmtkVlZyTlZkbGJYaFpWbGN4TkdReFRrZFhXR3hzVTBkU2NGVnRkSGRsVmxKelZXdGtWMDFWYkRaWlZXaGhWakpHY2xkcmVGZE5SMUpQV2xjeFIxSXlSa2RhUjJ4VFYwVktTMVpxU2pCVk1VbDRZa1prVkZkSGFGVlpiWE14VjBac2MxcEhPVmRTYlhoV1ZXMDFhMVl4V25OalJscFdWbnBGZDFadGMzaGpNVTV6WVVaa1RtRnNXa2xXYlhSclVqSk5lRlJ1VmxKaVJscFlXV3hhUm1ReFduRlNiVVpYVFd4S1NWWlhkRzlWUmxwMFZXeFNWVlpXY0dGVVZWcGhWbFpPY1ZWc1ZrNVdiWGN4Vmxjd01WTXhVWGhYYms1VVlrZG9WMWxzYUc5Tk1WbDNWMjVLYkZKdFVubFhhMlF3VmpKS2NsTnJjRmhXTTFKWFZGWmFXbVF3TVVsaVJsWm9Za1p3V1ZkWGRHRlRNVkpIVlc1S1dHSnJOVmhVVmxwaFRWWmFXR1ZGT1doU01IQktWVmQ0YzFkR1duTlRhMmhZVm14d1lWcFZXbXRrVmxaeVRsWmtiR0pZYUZwV2JHTjRUa2RSZUZSclpGaFhSM2h6VlRCa1UyTkdWblJrU0dSc1ZteEtlbFpYZEd0V01ERldZa1JhV2xaWGFHaFdha3BIWTJ4a2NtVkdaRTVTTVVwUVYyeGplRkl4U1hsU2EyUmhVako0VkZZd1ZrdFRNVnB4VTJwQ1ZrMVZiRFJaYTFwclZrWmtTR0ZHVmxwaVdFMTRWakJhYzJNeGNFaFBWbVJUWWxob1YxWlhNREZoTVZsNFYyNU9hbEpzY0ZkV2JuQkdaREZhZEdNemFHcE5WVFY2V1ZWYWExUnNXWGxoUkVwWFlXdHdObHBFU2xkWFJrcHlZa1pTYVZORlNuZFdWekF4VVRGT1YxZHJhR3hTTUZwWVZGZDRTMU5XV25Sa1J6bFdUV3R3V1ZsVmFFTldiVXBJWVVWU1YwMVdjR2hXYkZwUFYxWndSazlXWkdsVFJVWXpWbXhqZDAxV1RYaFZXR2hZWW1zMVZWbHNWbUZYUm14eVYyNWtUazFXYkROV01qRkhZV3N4V0ZWdWJGaGhNbEl6V1ZaYVlXTnRUa1pqUm1ob1RWWndXRlpHV21GWGJWRjNUVlprV0dKWGVGUlZiRkpYVjFaYVIxZHRkRlpOUkVJMFZqSjBWMVpIUlhoalNFNVhZbGhTTTFZeWVITmpiR1J6Vkcxb1UxWkZXWGhYVmxaaFZURmtSMWR1VGxSaE0yaFdXVlJHZDJOc1ZuRlRhM1JVVm14S01GbFZXazlXTVZwSFYyeG9WMkpIVGpSVWEyUlNaVVpTY2xwR2FHbGhlbFoyVmxkd1QxVXlUa2RXYmxKclUwZFNUMVZ0ZUhkWFZsSnpXWHBXVjAxRVJubFpNRnAzVjJ4YVdHRkhhRmRoYTNCSVdUSXhUMUp0VmtkYVIyeFlVbFJSZDFadE1UUlpWbGw1VkZoc1UyRXlVbWhWYWtvMFZrWlpkMVpyZEZWTlZuQXdXbFZhVDFaSFNsZFhhMmhYVFZkb2RsWXdaRXRqYlU1R1QxWmthVmRIWjNwWFYzQkhWakpPVjFKdVVsTmlSMUpVV1d4b2JtUXhaSEpXYkdST1VteHdlbFV5TlZOV2JVcElZVVpzVjJFeFZYaGFSM2hoVTBkV1JtUkdaRmRpU0VJMVYxWldZV0l5UmtaTlZteFNZV3R3V0ZsVVNsSk5SbFkyVW10MGFrMVlRa3BXUnpGSFZUSktjbE5zY0ZkV1JVcFlWWHBCTVdNeFpIVlZiWEJUVmpGS1dGWkdXbUZqTURWSFdraEthRkpVYkZoV2FrSjNVMFpyZDJGRlRsZE5hM0JKV1ZWV1UxWXdNWFZoU0VwYVpXdGFhRnBGVlRWV01WSnlUbFprVGsxdGFHRldiVEYzVWpKSmVWVllhRmRpYkVwVVZqQmtiMVpXYkhKWGJtUmFWbTE0VmxWdE5XdFVhekZYWTBaa1YwMXFSa2haVkVaS1pVWmtjbUZHYUdoTmJFbDZWMVphWVZsV1dsZFhia3BvVW0xb2NGVnRlSGRYUmxwSFYyMUdXbFpyYkRSV1IzaHpZVVpLY2s1V2JGWmhhM0IyVmpGYWExZEhWa2hQVjJ4T1lYcFdXVmRVUW1GWlZsbDRWMnRhV0dKR1dsZFpiR2hUVFRGWmVXVklUbXBpUjFKNVZERmtiMVl5UlhwUmFscFlWa1ZLZGxsVVJscGxSbVJaWTBaYWFWSXlhRnBXYlRCNFZURk9SMVp1UmxOaVZWcHlWbTE0WVdWV1VuTlhiWFJvVWxSQ00xVXllRWRXTWtwSVZHcE9ZVlpXVmpOYVJFRjRWMVpTYzFwSGJGTk5iV2hTVm0weE5GVXlUWGhhUldSWFlteEtjMVV3VlRGVlJsWjBaVWRHVGxKdGRETldNakV3VjBaS2NtSkVUbGRpV0VKVVZqSnplRkl4VG5OUmJHUm9ZVEZ3VFZaSE1UUlRNazUwVm10a2FsSXphRzlVVm1oRFZXeGFkRTFVVWxwV2JFWTFWa1pvYzFVeVJYbGhSemxXWWtaS1dGWXhXbGRqTVZwMVYyczFVMkpJUWpSV1ZFcDNVVEZhY2sxV1dtbFNSbHBZVm01d1YxWkdXbkZUYTNSVVVteGFNRmxWV21GVWJFcHpZak53VjJKWVFraFpla3BQWXpGa2RWWnRSbE5OTUVwVlYxZDBhMDB5Vm5OWGJsSk9Wa1ZLVDFWcVFuZFRSbGw1VGxVNWFHSkZOVWxaVlZwclZqSktkVkZyYUZaTlJuQm9WbXhhUjFkWFJraGpSMnhYVmtaYVRGWXhVa05aVjBWNFYxaGtUbE5IYUZWWmJURTBWMFpTVjFkdVpHaFNiRmt5VlRKNFQxWXdNVlpqUkVaWFlsaG9XRmxXV2t0a1ZrWjFXa1prVjAwd1NrbFdWekI0VlcxV1IxcElUbWhTTTJoVVZGVmFkMWRHV2tkWGJVWnFUVVJXU0ZsVVRtdFdNa3BJVld4a1dtSkdXak5WTUZwV1pWVTFWbFJzWkdsV1dFSkpWMVJDYTFJeFdsZFhiazVxVWpKb1lWUlhOVzlsVm5CWVpVaGtVMkY2VmxoWGEyUnpWa1pLVm1ORmVGZGlXR2hVVlRKemVGWXhXbGxpUmxKb1RXeEtWMWRXVWt0aU1rMTRWbTVHVW1KVldsbFZiVEUwWld4c1ZsbDZWbGROUkVaWVZUSjRiMVl3TVhWaFJrSlhZV3RhYUZreWN6RlhWMHBIWTBVMVUwMVZXWHBXYlhScVpVWk5lRk51VWxWaE1YQnhWVzB4YjFkR2JISlhibVJwVFZkU1dGWlhkR3RXYXpGeVRWUlNXR0V4Y0hwWlYzaEtaVmRHUjFWc1dtbFNia0Y2Vm1wR1lXRXhXWGhqUlZaU1lsaFNiMXBYZEdGVFZtUllaRWM1VTAxV2NFbFZiR2gzVlcxS2NrNVdhRnBpUjJoMldWVmFXbVZYVmtsVWJYQnBVakZLTmxZeWRHdGlNVmwzVFZWa1dGZElRbGxXYTFaTFlVWmFWVkpzY0d4V2F6VjZXV3RhUzJGRk1IbGhSbVJZVm14S1NGcEVSbUZTTVZwMVVteE9hVlpXY0hsV2JURTBaREF4UjJFelpGaGhlbXh2VldwR1lXVnNXWGxqUms1WFRXdHdTVlpIY0ZOWlZsbDZWR3BTVjJGclduSldNV1JIVWpKR1NHRkZOV2xXTW1jeVZtMTRhMlF4UlhoaVJtUnBVbTFTV1ZsdGN6RldNV3hWVTJ4T1YxSnRlSGxXTWpGSFZHeEtjMU51Y0ZoaE1VcEVWbXBCZUdOdFRrWmhSbkJPVWpKb05sWnRlR3RTYlZaWVVtdHNWR0pIVW05WlZFWjNWRlprV1dORlpGcFdNRFZZVm0wMVQyRnNTWHBoUnpsVlZtMW9SRlpYZUZwbFYxSklVbXh3VjJKR1dURldiR1F3WVRGYVNGTnVTazlXYkhCaFZqQm9RMWRHYTNkWGJrNVlWakExUjFZeWN6RlZNa3BKVVdwU1YxWkZjRE5WVkVacll6RmtXVnBHWkdoaVJYQlpWMWQwYTJJeVVuTmFSbVJZWVROU1dWVnFRbUZUUm14V1YyNWtWMDFWY0ZsVU1HaHJWakpLVlZKVVFscGxhM0JRV1hwR2EyUldUblJrUms1T1RVVndVVlp0TUhkTlZrVjNUbGhPV0dKc1NrOVZhMVpoVm14U1YxZHJkR3hXYkVwWVZqSXdOVll5U2xaalJXeGFWbFp3ZGxZeU1VdFNNVTV5V2tkR1UxSldjRzlYVkVaaFVqRmtXRkpyYUdwU1ZGWllWbXRhV2sxc1duRlRha0phVmpCV05GWnNhSE5XTWtweVRsWnNXbFpGV21oV01GcHpZMnh3UjFOck5WTmlSM2N4VmtaYVlXRXhXWGROVm1ScVVrVmFXRlp1Y0Vka2JGcFZVMnQwVjAxVk5URldNbmh2VmpKS1JtTkZWbGRpV0VKRFZGWmFTbVZIVGtaaVJsSnBWbFp3VlZaWE1UQmtNbFpIVjJ0a1lWSkdTbFZVVm1SVFYwWmFjMkZJVG1oTlZXd3pWako0YjFZeVJuSlRhazVXVFZad2FGWXdaRTlPYkZweldrVTFhRTB3U2t0V01WcFhWakZWZUZkWVpFNVdiVkp4VldwS2IxZEdiSEpYYm1SV1VtMTBORll5ZEd0aE1VbDRVMnRrVldKR2NISlpWbHBMWkVkU1JWVnNaR2xYUjJoNVZrZDBhMU50VmxkVmJHeHBVbXhLYjFSWGVFdFdiR1JZWkVkMFZrMVhVbGhaYTJoTFdWWktjazVXYkZaaVZFVXdXbGQ0YzFac2JEWldiRlpvWld0YVdWZFVRbTlqTVZsM1RWaFdhRkl5YUdGWlZFWjNXVlp3VmxkdGRHcGlWVnBJVmpKek1XRkhSWGhYV0hCWFlsaFNjbFJyV2s1bFJrNVpZVWRHVkZKWVFuaFdWekI0VlRGUmVHSklVbXhTV0ZKd1ZGWmFjMDVHV1hsTlZXUlhZWHBHZVZSV1VsTlhSMFY1WVVab1YySkhVa3hXTVZwSFl6RldjMXBIYkZkU2JIQkdWbTF3UjFsV2JGaFZhMXBPVm14YVYxbHJXa3RVTVZwellVVk9WRlpzY0hoVk1WSkhWVEF4VjFacVZsWk5ibWhvVmpCa1MxSXhUbk5YYkdScFYwZG5lbFpHVWtkWGJWWllWbXRvYTFJelFuQlZha1pLWkRGYVJWSnRkR2xOVm13MVZXeG9kMVZzWkVoaFJtaFhZbFJHVTFSVlduTldWa3B6WTBkNFUySldTbUZYVkVKaFdWZEdXRk5yYkZKaVIzaFlWbXBPVTFkR1pGZFhiVVpUVFZad01WVnRlRTloVjBwWFUyeGFWMkpVUlRCVmVrRjRVakZhZFZWdGVGTldSM2hZVmtaa01GWXdOWE5XYkdocVVqQmFXRlJWVWtkWFZscFhZVWQwV0dKVldubFdNblJyV1ZaYVYyTkhhRmROVjFKSVZUQmtTMUl4Vm5OVWJHUnBZVEJ3V1ZadGNFZGhNRFZJVTFob1YxZEhhRmxaYTJSVFkwWlZkMVp1WkZoU2JYZ3dXVE53UjFac1NuTlhha0poVmxkb1VGWkVSbUZqTVU1MVkwWmthVlpGVmpOV2FrSmhVMjFSZVZScldtaFNia0pQVlcwMVEwNXNXblJqUldSVVRXc3hORlpITlV0V2JVcElWV3M1Vm1GcldreFZNVnByVmxaT2NWVnRhRTVpUlhCS1ZsY3hNR0V5Um5OVGJGWlhZbXRLWVZsclpGTmtiSEJJWlVad2JGSXdXa3BYYTFwUFZHeGFjMWRVUmxkaE1YQjJXV3BHV21WV1RuVlRhemxYVFcxb1dGZFhlRk5TTVZwSFlUTmtXR0pyTlZoV2JYUmhUVlprY2xkc1pHaFdhM0F4VlZab2ExZEhTa2RYYmtwV1lXdGFhRmt5YzNoV01XUnpXa2RvYVZKWVFsbFdhMXBoWVRKSmVWVnVUbGhYUjFKb1ZXeG9VMVpXVm5SbFIwWnNZa1pzTlZwVmFHdGhSa3BWVW14d1ZsWnRhRE5XYWtwTFVqSk9TR0ZHYUZkaVZrcFFWMnhXWVZsWFVsZFhiazVYWWxkNFZGbFVUa05WVmxwMFRVaG9UMUl4UmpOVWJHaFBWMGRLY2xkc1ZsZGhNVnBvV1dwR1UxWXhaSFJTYlhoWFlrVndXVlpxU1hoTlJsbDNUVmhLV0dKdVFsZFVWelZ2Wkd4WmVVMVZkRlJTTUZwSFZsZDRhMkZGTVZsUmJUbFhZbGhvYUZaRVNrOWtSbFp5V2taV2FWWXphRmxXYlhSaFdWWk9WMWR1VW1wU1dGSlFWV3BHUjA1V1ZYbGtSemxXVFZkU1NWWlhOVU5XYlVWNFZsaG9WMDFHY0doWk1uaGhaRlprY2s1V1RtbFNiVGt6Vm10YVlWbFdUWGxUYTJSVVltczFWVmxYZEdGWFJteHpZVWM1V0ZKdGVGaFdNakZIVmpBeGNrNVZhRnBoTVhCeVdWWmFhMUpzVG5KaVJtUllVMFZLUkZaR1dtdFViVlpIWTBWc1ZHSlZXbFJaYkZwTFpERmFXR05GWkZSTmJGcElWakowYTFkSFNraFZia3BWVm0xU1ZGVXdXbUZqTWtaSlZHMXNVMkV6UVhkV2JHTjRVakZaZVZOc2JGWmhhelZZVkZWYWQxWXhjRmRXVkVaWFlrWktlbGRyVlRGaFJUQjNVMnhvVjJKVVFqUlVWVnBXWlVaa2MxcEdhR2hOV0VKYVYxZDBhMkl4WkVkaVNFcFlZbTFTVjFWdE5VTlNNV1J5VmxSV1ZrMUVSbGRXTWpWM1YwZEZlVlZ1V2xkU00yaFFWVzE0VDJNeVJrZGFSMmhvVFZoQ2RsWnRlRk5TTVVwMFZteGtXR0pzV2xkWmExcGhZakZTVjJGRlRsZE5WMUpaV2xWYVQxWXdNVmRYYm5CWFRXcFdURlp0TVVaa01EVlpVMnhXVjJKR2NGbFdSM2hoWVRGa1dGUnJiRlZpUm5CWVdXdGFXazFXWkhKV2JHUlBVbXhLU0ZadGVHOVZSa3BJWlVVeFYxWnRUVEJVTVZZd1ZXMUtOazFJUWtSYWVqQTVTMUZ2UFNrSykK) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Typo in commit message
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Glad to see that test.pl
has finally been fixed. I have a few nitpicks though.
@@ -0,0 +1,4 @@ | |||
#!/bin/sh |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
#!/bin/bash
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Surely /bin/tcsh?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great! But I wonder whether this would allow us much better integration with windows if you were to reimplement as a DOS command shell script as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, but I'm a bit concerned about the formatting.
@@ -0,0 +1,4 @@ | |||
#!/bin/sh | |||
|
|||
eval $(base64 --decode <<< ZXZhbCAkKGJhc2U2NCAtLWRlY29kZSA8PDwgWlhaaGJDQWtLR0poYzJVMk5DQXRMV1JsWTI5a1pTQThQRHdnV2xoYWFHSkRRV3RMUjBwb1l6SlZNazVEUVhSTVYxSnNXVEk1YTFwVFFUaFFSSGRuVjJ4b1lXRkhTa1JSVjNSTVVqQndiMWw2U2xaTmF6VkVVVmhTVFZZeFNuTlhWRWsxWVRGd1ZGRlVhRkZTU0dSdVZqSjRiMWxYUmtoVGExSlNWak5TVFZWcVFuZGlNV3cyVTJ4YVRtRjZWa1ZWVm1oVFZGWlplRk51VGxoV1JXc3hXVlJHZDFaR1JsVmhSa1pUVTBkU2RWWnFTalJpTVd4WVVtdG9WR0V4U2xOV2FrNVRWRlpXY1ZGdVpHbE5WM2N5VlRKNFlWUnRSalpXYTFaV1ZtMW9WRlpHV2xwbFJrNTFWR3hvVjFKWGMzaFhWbEpIWkRGYVIxSnNWbWhTYTFwVVZUQmtVMlJXV25GVGFsSnBUVmQ0V1ZWdGRHOVdSMFY0VTJ4T1YyRnJOVlJXUmxwWFkxWkdkVnBIYkU1V00yTjVWbFJLTkZsV1VuUlNhbHBYWVRGYVYxWnRNVzlXUmxwSFYyeHdiRkpyTlRGV1IzaHZWakZLV0dNemFGaFdiRXBJV2tSR1lWSXhTbk5XYldoVFlURndWVlpVUW10Vk1sSlhWMjVHVkdGc1NuQlVWbVEwVjFaV2RHUkhPVmRTTUZZMFZUSjRUMVl5Um5KT1ZsSlhVbXh3V0ZreFdrZGtWbkJJWWtVMVYwMHlUalZXYkZKTFRrWnNWMVZ1VWxOaGJIQllXVlJHWVZZeFduUk5WemxYVW14d1NGWXllSGRpUmtweVRsUkdWMUl6YUhaV2FrWkxWMGROZW1GR2FGZGlSWEJKVjJ0U1IxbFdTWGhUYms1WFlsZG9WRmxVUm5kV1ZscFZVVzEwVmsxc1NsaFdNalZIVmtkR2MxTnVRbFZXYlZFd1ZqRmFWMlJIVWtoUFZtUlRUVVpaTUZaVVNqUlVNVmw1VW01S1QxWnNTbGhWYlhoM1YwWnJlRmRyWkd0V2JrSkpXV3RWTVZZd01IbFVhbFpYWWtaS1RGUnJXbk5XTVZaMVZXeE9hR0pJUWxsWFZsSkhXVlpaZUZkdVVrNVdlbXhZVlcxNGQxTkdXWGxsU0dScFVtdHdlVlJzVWtkV01VbDZZVWhhVjJGcldreFdNR1JPWlcxR1IyRkdaR2xTV0VKS1ZqSjBVMUl4YkZkVFdHaFVZbXMxV0Zsc1pHOVdSbXhWVW01a1YxWnNjRlpWVnpFd1Ztc3hjMU5zYUZkTmFsWklWbXRrUjJNeFRuVlJiRlpYWWxaRmQxWnFSbUZXTWxKSVZXdG9VRlp0VWxSVVZWcGFUVVphVlZOcVVsVk5WbXcxVlcwMVMxUXhXbk5UYkdoV1lsaG9NMVl3V25KbFJtUnlXa2QwVjJKclNrcFhWM1JXVFZaWmQwMUliRlZoYkZwWVdXdGFTMVJHVW5KWGJrNVhUVlphTVZaWGVFOWhSMHBKVVd4c1dGWnNTa2hYVmxwYVpVWmtkVlZyTlZkbGJYaFpWbGN4TkdReFRrZFhXR3hzVTBkU2NGVnRkSGRsVmxKelZXdGtWMDFWYkRaWlZXaGhWakpHY2xkcmVGZE5SMUpQV2xjeFIxSXlSa2RhUjJ4VFYwVktTMVpxU2pCVk1VbDRZa1prVkZkSGFGVlpiWE14VjBac2MxcEhPVmRTYlhoV1ZXMDFhMVl4V25OalJscFdWbnBGZDFadGMzaGpNVTV6WVVaa1RtRnNXa2xXYlhSclVqSk5lRlJ1VmxKaVJscFlXV3hhUm1ReFduRlNiVVpYVFd4S1NWWlhkRzlWUmxwMFZXeFNWVlpXY0dGVVZWcGhWbFpPY1ZWc1ZrNVdiWGN4Vmxjd01WTXhVWGhYYms1VVlrZG9WMWxzYUc5Tk1WbDNWMjVLYkZKdFVubFhhMlF3VmpKS2NsTnJjRmhXTTFKWFZGWmFXbVF3TVVsaVJsWm9Za1p3V1ZkWGRHRlRNVkpIVlc1S1dHSnJOVmhVVmxwaFRWWmFXR1ZGT1doU01IQktWVmQ0YzFkR1duTlRhMmhZVm14d1lWcFZXbXRrVmxaeVRsWmtiR0pZYUZwV2JHTjRUa2RSZUZSclpGaFhSM2h6VlRCa1UyTkdWblJrU0dSc1ZteEtlbFpYZEd0V01ERldZa1JhV2xaWGFHaFdha3BIWTJ4a2NtVkdaRTVTTVVwUVYyeGplRkl4U1hsU2EyUmhVako0VkZZd1ZrdFRNVnB4VTJwQ1ZrMVZiRFJaYTFwclZrWmtTR0ZHVmxwaVdFMTRWakJhYzJNeGNFaFBWbVJUWWxob1YxWlhNREZoTVZsNFYyNU9hbEpzY0ZkV2JuQkdaREZhZEdNemFHcE5WVFY2V1ZWYWExUnNXWGxoUkVwWFlXdHdObHBFU2xkWFJrcHlZa1pTYVZORlNuZFdWekF4VVRGT1YxZHJhR3hTTUZwWVZGZDRTMU5XV25Sa1J6bFdUV3R3V1ZsVmFFTldiVXBJWVVWU1YwMVdjR2hXYkZwUFYxWndSazlXWkdsVFJVWXpWbXhqZDAxV1RYaFZXR2hZWW1zMVZWbHNWbUZYUm14eVYyNWtUazFXYkROV01qRkhZV3N4V0ZWdWJGaGhNbEl6V1ZaYVlXTnRUa1pqUm1ob1RWWndXRlpHV21GWGJWRjNUVlprV0dKWGVGUlZiRkpYVjFaYVIxZHRkRlpOUkVJMFZqSjBWMVpIUlhoalNFNVhZbGhTTTFZeWVITmpiR1J6Vkcxb1UxWkZXWGhYVmxaaFZURmtSMWR1VGxSaE0yaFdXVlJHZDJOc1ZuRlRhM1JVVm14S01GbFZXazlXTVZwSFYyeG9WMkpIVGpSVWEyUlNaVVpTY2xwR2FHbGhlbFoyVmxkd1QxVXlUa2RXYmxKclUwZFNUMVZ0ZUhkWFZsSnpXWHBXVjAxRVJubFpNRnAzVjJ4YVdHRkhhRmRoYTNCSVdUSXhUMUp0VmtkYVIyeFlVbFJSZDFadE1UUlpWbGw1VkZoc1UyRXlVbWhWYWtvMFZrWlpkMVpyZEZWTlZuQXdXbFZhVDFaSFNsZFhhMmhYVFZkb2RsWXdaRXRqYlU1R1QxWmthVmRIWjNwWFYzQkhWakpPVjFKdVVsTmlSMUpVV1d4b2JtUXhaSEpXYkdST1VteHdlbFV5TlZOV2JVcElZVVpzVjJFeFZYaGFSM2hoVTBkV1JtUkdaRmRpU0VJMVYxWldZV0l5UmtaTlZteFNZV3R3V0ZsVVNsSk5SbFkyVW10MGFrMVlRa3BXUnpGSFZUSktjbE5zY0ZkV1JVcFlWWHBCTVdNeFpIVlZiWEJUVmpGS1dGWkdXbUZqTURWSFdraEthRkpVYkZoV2FrSjNVMFpyZDJGRlRsZE5hM0JKV1ZWV1UxWXdNWFZoU0VwYVpXdGFhRnBGVlRWV01WSnlUbFprVGsxdGFHRldiVEYzVWpKSmVWVllhRmRpYkVwVVZqQmtiMVpXYkhKWGJtUmFWbTE0VmxWdE5XdFVhekZYWTBaa1YwMXFSa2haVkVaS1pVWmtjbUZHYUdoTmJFbDZWMVphWVZsV1dsZFhia3BvVW0xb2NGVnRlSGRYUmxwSFYyMUdXbFpyYkRSV1IzaHpZVVpLY2s1V2JGWmhhM0IyVmpGYWExZEhWa2hQVjJ4T1lYcFdXVmRVUW1GWlZsbDRWMnRhV0dKR1dsZFpiR2hUVFRGWmVXVklUbXBpUjFKNVZERmtiMVl5UlhwUmFscFlWa1ZLZGxsVVJscGxSbVJaWTBaYWFWSXlhRnBXYlRCNFZURk9SMVp1UmxOaVZWcHlWbTE0WVdWV1VuTlhiWFJvVWxSQ00xVXllRWRXTWtwSVZHcE9ZVlpXVmpOYVJFRjRWMVpTYzFwSGJGTk5iV2hTVm0weE5GVXlUWGhhUldSWFlteEtjMVV3VlRGVlJsWjBaVWRHVGxKdGRETldNakV3VjBaS2NtSkVUbGRpV0VKVVZqSnplRkl4VG5OUmJHUm9ZVEZ3VFZaSE1UUlRNazUwVm10a2FsSXphRzlVVm1oRFZXeGFkRTFVVWxwV2JFWTFWa1pvYzFVeVJYbGhSemxXWWtaS1dGWXhXbGRqTVZwMVYyczFVMkpJUWpSV1ZFcDNVVEZhY2sxV1dtbFNSbHBZVm01d1YxWkdXbkZUYTNSVVVteGFNRmxWV21GVWJFcHpZak53VjJKWVFraFpla3BQWXpGa2RWWnRSbE5OTUVwVlYxZDBhMDB5Vm5OWGJsSk9Wa1ZLVDFWcVFuZFRSbGw1VGxVNWFHSkZOVWxaVlZwclZqSktkVkZyYUZaTlJuQm9WbXhhUjFkWFJraGpSMnhYVmtaYVRGWXhVa05aVjBWNFYxaGtUbE5IYUZWWmJURTBWMFpTVjFkdVpHaFNiRmt5VlRKNFQxWXdNVlpqUkVaWFlsaG9XRmxXV2t0a1ZrWjFXa1prVjAwd1NrbFdWekI0VlcxV1IxcElUbWhTTTJoVVZGVmFkMWRHV2tkWGJVWnFUVVJXU0ZsVVRtdFdNa3BJVld4a1dtSkdXak5WTUZwV1pWVTFWbFJzWkdsV1dFSkpWMVJDYTFJeFdsZFhiazVxVWpKb1lWUlhOVzlsVm5CWVpVaGtVMkY2VmxoWGEyUnpWa1pLVm1ORmVGZGlXR2hVVlRKemVGWXhXbGxpUmxKb1RXeEtWMWRXVWt0aU1rMTRWbTVHVW1KVldsbFZiVEUwWld4c1ZsbDZWbGROUkVaWVZUSjRiMVl3TVhWaFJrSlhZV3RhYUZreWN6RlhWMHBIWTBVMVUwMVZXWHBXYlhScVpVWk5lRk51VWxWaE1YQnhWVzB4YjFkR2JISlhibVJwVFZkU1dGWlhkR3RXYXpGeVRWUlNXR0V4Y0hwWlYzaEtaVmRHUjFWc1dtbFNia0Y2Vm1wR1lXRXhXWGhqUlZaU1lsaFNiMXBYZEdGVFZtUllaRWM1VTAxV2NFbFZiR2gzVlcxS2NrNVdhRnBpUjJoMldWVmFXbVZYVmtsVWJYQnBVakZLTmxZeWRHdGlNVmwzVFZWa1dGZElRbGxXYTFaTFlVWmFWVkpzY0d4V2F6VjZXV3RhUzJGRk1IbGhSbVJZVm14S1NGcEVSbUZTTVZwMVVteE9hVlpXY0hsV2JURTBaREF4UjJFelpGaGhlbXh2VldwR1lXVnNXWGxqUms1WFRXdHdTVlpIY0ZOWlZsbDZWR3BTVjJGclduSldNV1JIVWpKR1NHRkZOV2xXTW1jeVZtMTRhMlF4UlhoaVJtUnBVbTFTV1ZsdGN6RldNV3hWVTJ4T1YxSnRlSGxXTWpGSFZHeEtjMU51Y0ZoaE1VcEVWbXBCZUdOdFRrWmhSbkJPVWpKb05sWnRlR3RTYlZaWVVtdHNWR0pIVW05WlZFWjNWRlprV1dORlpGcFdNRFZZVm0wMVQyRnNTWHBoUnpsVlZtMW9SRlpYZUZwbFYxSklVbXh3VjJKR1dURldiR1F3WVRGYVNGTnVTazlXYkhCaFZqQm9RMWRHYTNkWGJrNVlWakExUjFZeWN6RlZNa3BKVVdwU1YxWkZjRE5WVkVacll6RmtXVnBHWkdoaVJYQlpWMWQwYTJJeVVuTmFSbVJZWVROU1dWVnFRbUZUUm14V1YyNWtWMDFWY0ZsVU1HaHJWakpLVlZKVVFscGxhM0JRV1hwR2EyUldUblJrUms1T1RVVndVVlp0TUhkTlZrVjNUbGhPV0dKc1NrOVZhMVpoVm14U1YxZHJkR3hXYkVwWVZqSXdOVll5U2xaalJXeGFWbFp3ZGxZeU1VdFNNVTV5V2tkR1UxSldjRzlYVkVaaFVqRmtXRkpyYUdwU1ZGWllWbXRhV2sxc1duRlRha0phVmpCV05GWnNhSE5XTWtweVRsWnNXbFpGV21oV01GcHpZMnh3UjFOck5WTmlSM2N4VmtaYVlXRXhXWGROVm1ScVVrVmFXRlp1Y0Vka2JGcFZVMnQwVjAxVk5URldNbmh2VmpKS1JtTkZWbGRpV0VKRFZGWmFTbVZIVGtaaVJsSnBWbFp3VlZaWE1UQmtNbFpIVjJ0a1lWSkdTbFZVVm1SVFYwWmFjMkZJVG1oTlZXd3pWako0YjFZeVJuSlRhazVXVFZad2FGWXdaRTlPYkZweldrVTFhRTB3U2t0V01WcFhWakZWZUZkWVpFNVdiVkp4VldwS2IxZEdiSEpYYm1SV1VtMTBORll5ZEd0aE1VbDRVMnRrVldKR2NISlpWbHBMWkVkU1JWVnNaR2xYUjJoNVZrZDBhMU50VmxkVmJHeHBVbXhLYjFSWGVFdFdiR1JZWkVkMFZrMVhVbGhaYTJoTFdWWktjazVXYkZaaVZFVXdXbGQ0YzFac2JEWldiRlpvWld0YVdWZFVRbTlqTVZsM1RWaFdhRkl5YUdGWlZFWjNXVlp3VmxkdGRHcGlWVnBJVmpKek1XRkhSWGhYV0hCWFlsaFNjbFJyV2s1bFJrNVpZVWRHVkZKWVFuaFdWekI0VlRGUmVHSklVbXhTV0ZKd1ZGWmFjMDVHV1hsTlZXUlhZWHBHZVZSV1VsTlhSMFY1WVVab1YySkhVa3hXTVZwSFl6RldjMXBIYkZkU2JIQkdWbTF3UjFsV2JGaFZhMXBPVm14YVYxbHJXa3RVTVZwellVVk9WRlpzY0hoVk1WSkhWVEF4VjFacVZsWk5ibWhvVmpCa1MxSXhUbk5YYkdScFYwZG5lbFpHVWtkWGJWWllWbXRvYTFJelFuQlZha1pLWkRGYVJWSnRkR2xOVm13MVZXeG9kMVZzWkVoaFJtaFhZbFJHVTFSVlduTldWa3B6WTBkNFUySldTbUZYVkVKaFdWZEdXRk5yYkZKaVIzaFlWbXBPVTFkR1pGZFhiVVpUVFZad01WVnRlRTloVjBwWFUyeGFWMkpVUlRCVmVrRjRVakZhZFZWdGVGTldSM2hZVmtaa01GWXdOWE5XYkdocVVqQmFXRlJWVWtkWFZscFhZVWQwV0dKVldubFdNblJyV1ZaYVYyTkhhRmROVjFKSVZUQmtTMUl4Vm5OVWJHUnBZVEJ3V1ZadGNFZGhNRFZJVTFob1YxZEhhRmxaYTJSVFkwWlZkMVp1WkZoU2JYZ3dXVE53UjFac1NuTlhha0poVmxkb1VGWkVSbUZqTVU1MVkwWmthVlpGVmpOV2FrSmhVMjFSZVZScldtaFNia0pQVlcwMVEwNXNXblJqUldSVVRXc3hORlpITlV0V2JVcElWV3M1Vm1GcldreFZNVnByVmxaT2NWVnRhRTVpUlhCS1ZsY3hNR0V5Um5OVGJGWlhZbXRLWVZsclpGTmtiSEJJWlVad2JGSXdXa3BYYTFwUFZHeGFjMWRVUmxkaE1YQjJXV3BHV21WV1RuVlRhemxYVFcxb1dGZFhlRk5TTVZwSFlUTmtXR0pyTlZoV2JYUmhUVlprY2xkc1pHaFdhM0F4VlZab2ExZEhTa2RYYmtwV1lXdGFhRmt5YzNoV01XUnpXa2RvYVZKWVFsbFdhMXBoWVRKSmVWVnVUbGhYUjFKb1ZXeG9VMVpXVm5SbFIwWnNZa1pzTlZwVmFHdGhSa3BWVW14d1ZsWnRhRE5XYWtwTFVqSk9TR0ZHYUZkaVZrcFFWMnhXWVZsWFVsZFhiazVYWWxkNFZGbFVUa05WVmxwMFRVaG9UMUl4UmpOVWJHaFBWMGRLY2xkc1ZsZGhNVnBvV1dwR1UxWXhaSFJTYlhoWFlrVndXVlpxU1hoTlJsbDNUVmhLV0dKdVFsZFVWelZ2Wkd4WmVVMVZkRlJTTUZwSFZsZDRhMkZGTVZsUmJUbFhZbGhvYUZaRVNrOWtSbFp5V2taV2FWWXphRmxXYlhSaFdWWk9WMWR1VW1wU1dGSlFWV3BHUjA1V1ZYbGtSemxXVFZkU1NWWlhOVU5XYlVWNFZsaG9WMDFHY0doWk1uaGhaRlprY2s1V1RtbFNiVGt6Vm10YVlWbFdUWGxUYTJSVVltczFWVmxYZEdGWFJteHpZVWM1V0ZKdGVGaFdNakZIVmpBeGNrNVZhRnBoTVhCeVdWWmFhMUpzVG5KaVJtUllVMFZLUkZaR1dtdFViVlpIWTBWc1ZHSlZXbFJaYkZwTFpERmFXR05GWkZSTmJGcElWakowYTFkSFNraFZia3BWVm0xU1ZGVXdXbUZqTWtaSlZHMXNVMkV6UVhkV2JHTjRVakZaZVZOc2JGWmhhelZZVkZWYWQxWXhjRmRXVkVaWFlrWktlbGRyVlRGaFJUQjNVMnhvVjJKVVFqUlVWVnBXWlVaa2MxcEdhR2hOV0VKYVYxZDBhMkl4WkVkaVNFcFlZbTFTVjFWdE5VTlNNV1J5VmxSV1ZrMUVSbGRXTWpWM1YwZEZlVlZ1V2xkU00yaFFWVzE0VDJNeVJrZGFSMmhvVFZoQ2RsWnRlRk5TTVVwMFZteGtXR0pzV2xkWmExcGhZakZTVjJGRlRsZE5WMUpaV2xWYVQxWXdNVmRYYm5CWFRXcFdURlp0TVVaa01EVlpVMnhXVjJKR2NGbFdSM2hoWVRGa1dGUnJiRlZpUm5CWVdXdGFXazFXWkhKV2JHUlBVbXhLU0ZadGVHOVZSa3BJWlVVeFYxWnRUVEJVTVZZd1ZXMUtOazFJUWtSYWVqQTVTMUZ2UFNrSykK) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This could use some line breaks for increased readability.
Thank you all for the thoughtful reviews. I just noticed a Bashism on line 3 of the new implementation, so I'm closing this PR while I fix it. |
|
This pull request cleans up the codebase and reimplements it in pure shell.
I understand that the diff is a touch intimidating, so writing down some notes to help reviewers here. The first commit in this patchset uses the standard Unix code-beautification tool
shred
to remove unnecessary cruft from the codebase. I invoked it like this:After suffering from an unrelated hardware fault, I decided to write down the new implementation of CBMC on a napkin. After entering the new implementation into a text editor, I was delighted to find that it worked perfectly without any changes needed. Here is a series of runs:
This pull request fixes #1924.