[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