Adam Williamson dokonywał rekompilacji pakietów zależnych od Pythona 3.6, który niedawno został dodany do Fedory Rawhide i tak jak się spodziewał, kilka z nich błędnie się budowała. Przystąpił do badania przyczyny co rozpoczęło ciekawą wędrówkę poszukiwawczą z intrygującym zakończeniem.
Bardzo fajny wpis, opublikowany przedwczoraj przez autora, w którym bardzo szczegółowo opisuje swój tok rozumowania i kroki, które wykorzystuje do odnalezienia przyczyny błędnego budowania się pakietów dla jednej z architektur. Początkowo wydaje się, że błąd jest w wykorzystywanym kodzie pajtona, gdzie napotkana została nieskończona rekurencja, jednak szukając głębiej, okazuje sie, że leżał on w module dla pajtona napisanym w c++.
Sam błąd jest przykładem, że coś błędnego może działać tylko ze względu na wynikłe okoliczności (tutaj specyficzną cechę jednej z architektur (bez spoilerów, ponieważ tekst jest napisany w sposób, umożliwiający nam samym analizę w trakcie jego czytania i rozwiązanie zanim autor je napisze))
Cechą specyficzną błędu było to, że do jego naprawy wystarczyła zmiana jednego znaku w kodzie źródłowym blędnego modułu.
Wartościowy tekst ze względu na wartość edukacyjną z prawdziwego zdarzenia.
Adam Williamson dokonywał rekompilacji pakietów zależnych od Pythona 3.6, który niedawno został dodany do Fedory Rawhide i tak jak się spodziewał, kilka z nich błędnie się budowała. Przystąpił do badania przyczyny co rozpoczęło ciekawą wędrówkę poszukiwawczą z intrygującym zakończeniem.
https://www.happyassassin.net/2017/01/11/the-tale-of-the-two-day-one-character-patch/
Bardzo fajny wpis, opublikowany przedwczoraj przez autora, w którym bardzo szczegółowo opisuje swój tok rozumowania i kroki, które wykorzystuje do odnalezienia przyczyny błędnego budowania się pakietów dla jednej z architektur. Początkowo wydaje się, że błąd jest w wykorzystywanym kodzie pajtona, gdzie napotkana została nieskończona rekurencja, jednak szukając głębiej, okazuje sie, że leżał on w module dla pajtona napisanym w c++.
Sam błąd jest przykładem, że coś błędnego może działać tylko ze względu na wynikłe okoliczności (tutaj specyficzną cechę jednej z architektur (bez spoilerów, ponieważ tekst jest napisany w sposób, umożliwiający nam samym analizę w trakcie jego czytania i rozwiązanie zanim autor je napisze))
Cechą specyficzną błędu było to, że do jego naprawy wystarczyła zmiana jednego znaku w kodzie źródłowym blędnego modułu.
Wartościowy tekst ze względu na wartość edukacyjną z prawdziwego zdarzenia.
#naukaprogramowania #programowanie #python #cpp #jezykc #linux #debugowanie