Autor stworzył emulator Game Boya w OCaml, działający w przeglądarce z prędkością 60 FPS na smartfonach.
Architektura emulatora opiera się na modularnym podejściu OCaml z interfejsami Addressable, funktorami, GADT i modułami pierwszej klasy.
Testowanie CPU uproszczono poprzez wstrzykiwanie zależności Bus za pomocą funktorów, a testy integracyjne wykorzystują testowe ROM-y i ppx_expect.
Profilowanie GPU ujawniło wąskie gardła w oam_table, tile_data i tile_map, a kolejne optymalizacje podniosły wydajność z 20 do 60+ FPS.
Wyłączenie inliningu w js_of_ocaml znacząco poprawiło szybkość generowanego JavaScriptu na PC i urządzeniach mobilnych.
Wprowadzono tryb bezgłowy do benchmarków, umożliwiający porównanie różnych backendów OCaml pod kątem wydajności.
Autor docenia statyczne typowanie, warianty, system modułów i ekosystem OCaml, ale wskazuje na trudności w zarządzaniu zależnościami i koszt abstrakcji.
Get notified when new stories are published for "🇵🇱 Hacker News Polski"