Hakana est un Typechecker pour hack, construit par Slack.
Il complète le Hack TypeChecker existant qui est livré avec HHVM en fournissant des informations supplémentaires au-delà de la portée du TypeChecker officiel.
L'objectif principal de Hakana est de déduire des types précis dans la base de code et de le faire rapidement.
Une bonne inférence de type permet à Hakana de faire plusieurs autres choses précieuses:
Ceci n'est pas destiné à remplacer TypeChecker par défaut de Hack, qui prend en charge les fonctionnalités supplémentaires (par exemple, les contextes et les capacités) qui ne sont pas immédiatement pertinents pour taper l'inférence.
Cet outil n'est pas conçu pour être exécuté sur chaque pression de touche, mais il dispose d'un serveur de langue avec prise en charge des vérifications sur les économies.
Clone ce dépôt, installez la rouille et la cargaison si vous ne l'avez pas déjà fait.
Exécutez git submodule init && git submodule update pour vous assurer que HHVM est présent (Hakana emprunte l'analyseur de HHVM).
Ensuite, exécutez cd third-party/hhvm && git apply ../../hhvm-patch.diff && cd ../../ pour appliquer quelques correctifs qui permettent la compilation WasM.
Ensuite, exécutez cargo build --release
Qui créera un binaire sur ./target/release/hakana-default
Vous pouvez exécuter tous les tests avec: cargo run --bin hakana --release test tests
Vous pouvez exécuter un test individuel avec cargo run --bin hakana test <path-to-test-dir>