Phantom OS

1. Закончен переезд с мёртвого гугл-кода на ГитХаб. https://github.com/dzavalishin/phantomuserland - теперь проект можно легко форкнуть и поковырять.
Форкать здесь.
2. Активно поработал над Вики - документации стало больше. Перенёс часть документации из вордовских файлов в вики.
Читать тут.
3. Много работы по дефектовке и планированию - всё осознанное перенесено в дефекты или задачи.
Трекер вот.
4. Основной вектор работы сейчас - ява байткод транслятор.
Наконец, он сдвинулся с места, и какие-то примитивные явские методы уже получается транслировать. Главное - начато написание регрессов на Яве. В этом направлении напрашивается явный TDD, то есть сначала пишем код на Яве, который не транслируется или неверно работает, а потом дорабатываем компилятор/байткод.
Естественно, поскольку транслируются классы JVM, можно перегонять код не только на Яве, но и на любом ЯП под JVM. Интересно бы что-то функциональное попробовать. IMMUTABLE признак у объекта уже тоже есть.
5. Подключился к coverity.com, получил первый спискок ошибок от статического анализатора. Половина ошибок - неудовольствие по поводу формата %b printf, но есть и вполне реальные находки, как минимум - спорные, а местами и просто ошибки. Очень ценно, хотя я ждал от него большего количества претензий.
6. Восстанавливаем с Севой CI. Подключен Snap CI, но нужно ещё затащить на него qemu 0.15.1, чтобы гонять тесты снапшота.
Чем можно помочь.
Крупное:
- Ошибка в стеке TCP - не работает accept на входящие соединения, это сильно мешает.
- Компилятор с Явы и/или юнит-тесты.
- Порт на АРМ. Вчерне оно как-то на QEMU Arm запускалось, но драйверов нет, и на реальном железе не пробовали.
- Порт на кортекс м3?
- Драйвера. Сеть, видео, virtio.
- Тест производительности - для анализа доработок VM/компилятора.
- Инфраструктура доставки классов по сети. Даже не прикасались. Тут же - секьюрити, подписи, ключи.
- Большой GC. Хорошо бы написать его портабельно на Яве, чтобы можно было гонять как на образе диска, так и внутри Фантома.
- JIT. :) генерация кода для LLVM (начата совсем вчерне)
- Почитать доки и сформулировать, что непонятно. Чтобы их можно было доработать.
- Написать Oxygen-style комментарии all over the place.
- EFI support? Partitions?
|
</> |