Як читати звіти про прогрес декомпіляції
Автор: DecompHub · Оновлено · Українська
Відсоток має сенс лише разом із контекстом: що рахують, для якої збірки та коли вимірювали. DecompHub зберігає назву показника, охоплення й посилання на джерело. Якщо надійного вимірювання немає, прогрес лишається невідомим — це не нуль.
Збіг машинного коду й працездатність — різні цілі
Matching-декомпіляція прагне отримати машинний код, ідентичний конкретній оригінальній збірці. Важливі компілятор і параметри збирання. FAQ decomp.me пояснює порівняння окремих функцій у scratch-середовищі; його результат не є відсотком усієї гри.
Сумісна заміна відтворює поведінку. Наприклад, ScummVM замінює виконувані файли ігор, використовуючи їхні дані. Підтримку гри не можна перетворювати на відсоток бінарного збігу. Порти й дослідження обладнання можуть бути корисними без такого звіту.
З’ясуйте знаменник
Функції, байти, файли, символи й ідентифіковані ресурси — різні одиниці. У вигаданому прикладі 900 із 1 000 функцій дають 90% за кількістю. Якщо решта містить половину байтів коду, це не 90% за байтами. Приклад пояснює обчислення, а не показник реального запису.
Перевірте:
- що означає показник: збіг коду, декомпільований код чи ідентифіковані ресурси;
- чи наведено відсоток або кількість, і чи джерело вказує загальну кількість;
- чи охоплено весь виконуваний файл, бібліотеку, платформу, регіон або вибрані файли;
- чи відкривається джерело вимірювання.
objdiff підтримує порівняння об’єктних файлів і звіти. Наявність цього інструмента не визначає параметри конкретного звіту — їх слід читати окремо.
Не змішуйте версії та показники
Завершена регіональна чи налагоджувальна версія не означає завершення всіх випусків. Ocarina of Time описує підтримувані версії та вибір цілі збирання.
Збіг коду й ідентифікація ресурсів також відображають різну роботу. Не усереднюйте їх у загальну «готовність», якщо автор звіту явно не визначив такий показник.
Розрізняйте дати
Дата звіту походить від автора вимірювання. Дата спостереження — коли DecompHub прочитав джерело. Щойно прочитана сторінка може містити давні дані. Оновлення метаданих репозиторію або запису каталогу не робить вимірювання новим.
Документація даних англійською описує ці поля в експорті. Цитуючи результат, зберігайте проєкт, показник, охоплення, URL джерела й відповідну дату.
Невідоме значення може означати відсутній звіт, недоступне джерело, неоднозначне охоплення або ще не виконаний збір. Понад 100%, різні знаменники й суперечливі значки потребують перевірки. Не обмежуйте число мовчки, не підміняйте невідоме нулем чи зірками GitHub.
Перегляньте проєкти з вимірюваннями та відкрийте джерела. Через дію повідомлення про помилку в записі можна вказати конкретне першоджерело для виправлення.