Skip to content

Latest commit

 

History

History
57 lines (41 loc) · 3.32 KB

HACKING.md

File metadata and controls

57 lines (41 loc) · 3.32 KB

Перелік можливих завдань для виконання

ВИКОНАНО 01 Зробити по прикладу PRП (Department of Mathematical and Computing Science, Tokyo Institute of Technology) свій форк MinCaml — два бінарника vm (віртуальну машину і компілятор) і joe (компілятор і бінарні бекенди Intel та ARM). Зменшити кількість опцій, зробити дефаулти і дослідіти ack.ml на граничні можливі обчислювальні координати m та n.

ВИКОНАНО 02 Перекласти A Crash Course for the MinCaml Compiler. Переклад з англійської версії автора, яка отримана перекладом з японської.

ВИКОНАНО 03 Імпорт бекенда для ARM64 (thata/min-caml-aarch64). В цьому бекенді інструкція проміжного асемблера Set називається Load Immediate (Li). Також ARM бекенд не містить операцій множення і ділення (замінені на виклики функцій runtime).

ВИКОНАНО 04 Імпорт бекендів для x64 x86 та BAC (prg.is.titech.ac.jp). x64 бекенд не завершений, BAC бекенд не достатньо перевірений. x86 бекенд не перевірений.

ВІДКРИТА 05 Бекенд для RISC-V.

ВІДКРИТА 06 Не працює байт-код програми метациркулярного інтерпретатора після вводу першого числа — розміру байтів в стрічці байт-коду. Дослідити і усунути проблему.

ВИКОНАНО 07 Порт на OCaml 5.0. Проблема була у префіксах імен функцій для лінкера в runtime файлах.

ВІДКРИТА 08 Бекенд для Motorola 68000.

ВІДКРИТА 09 Бекенд для MIPS.

ВІДКРИТА 10 Бекенд для PowerPC або POWER.

ВІДКРИТА 11 Бекенд для SPARC (відновити працездатність оригінального першого бекенда Ейдзіру Суміі).

ВІДКРИТА 12 Бекенд для SH4.

ВІДКРИТА 13 Бекенд для PDP-11.

ВИКОНАНО 14 Після генерації асемблера в компіляторі joe Зробити виклик gcc через exec прямо в main модулі. Звернути увагу, що для різних бекендів можуть бути різні gcc компілятори і параметри, а для vm бекенда це взагалі непотрібно.

ВІДКРИТА 15 Потрібно зменшити футпрінт бінарника joe з 35 кб до 8-12 кб хоча б (двох-трьох сторінок). Системне програмування.