[jvm] Финальный отчет
me at makkarpov.ru
me at makkarpov.ru
Fri Apr 20 22:11:14 MSK 2018
Задачи, запланированные изначально, удалось реализовать в полном объеме, в частности:
1. Была реализована система на базе Gradle и CMake, которая собирает обе части проекта полностью прозрачно для конечного пользователя и упаковывает их в один JAR-файл, который работает без какой-либо дальнейшей конфигурации.
2. Был реализован класс ObjectController, обрабатывающий указатели из C и преобразующий их в соответствующие Java объекты.
3. Был реализован парсер файла all.h и автоматическое извлечение с его помощью всех констант оттуда в соответствующий Java класс на этапе сборки.
4. Было реализовано два подхода к преобразованию Java-потоков к FILE*: через функцию fopencookie(3) для GNU libc и через pipe(2) и fdopen(3) для остальных систем.
5. Для каждой структуры и каждой функции в QBE были созданы соответствующие Java-аналоги.
6. Реализация была протестирована как на специфичных для её частей тестах (в, частности, частей 4 и 2) и на общих тестах в виде реализации Java-версий алгоритмов из домашнего задания.
Обойтись полностью без патчей QBE все же не удалось, как минимум, при компиляции библиотеки нужно включить `-fPIC`. Если не считать некоторой "минималистичности" QBE (например, использования функции die() при ошибках, которая рушит весь процесс), проект я оцениваю как полностью успешный.
More information about the jvm
mailing list