Hakana เป็นเครื่องพิมพ์ดีดสำหรับแฮ็คที่สร้างโดย Slack
มันเติมเต็ม Hack Typechecker ที่มีอยู่ซึ่งมาพร้อมกับ HHVM โดยให้ข้อมูลเชิงลึกเพิ่มเติมนอกเหนือจากขอบเขตของ Typechecker อย่างเป็นทางการ
เป้าหมายหลักของ Hakana คือการอนุมานประเภทที่ถูกต้องใน codebase และทำอย่างรวดเร็ว
การอนุมานประเภทที่ดีช่วยให้ Hakana ทำสิ่งที่มีค่าอื่น ๆ อีกมากมาย:
สิ่งนี้ไม่ได้มีไว้เพื่อแทนที่ Typechecker เริ่มต้นของ Hack ซึ่งรองรับคุณสมบัติพิเศษ (เช่นบริบทและความสามารถ) ที่ไม่เกี่ยวข้องกับการพิมพ์ทันที
เครื่องมือนี้ไม่ได้ถูกออกแบบมาให้ทำงานบนคีย์นิพจน์ทุกตัว แต่มีเซิร์ฟเวอร์ภาษาที่มีการรองรับการตรวจสอบบนประหยัด
โคลน repo นี้ติดตั้งสนิมและสินค้าถ้าคุณยังไม่ได้
เรียกใช้ git submodule init && git submodule update เพื่อให้แน่ใจว่ามี HHVM อยู่ (Hakana ยืมตัวแยกวิเคราะห์ของ HHVM)
จากนั้นเรียกใช้ cd third-party/hhvm && git apply ../../hhvm-patch.diff && cd ../../ เพื่อใช้แพตช์สองสามตัวที่เปิดใช้งานการรวบรวม WASM
จากนั้นเรียกใช้ cargo build --release
ที่จะสร้างไบนารีที่ ./target/release/hakana-default hakana-default
คุณสามารถเรียกใช้การทดสอบทั้งหมดด้วย: cargo run --bin hakana --release test tests
คุณสามารถทำการทดสอบแต่ละครั้งด้วย cargo run --bin hakana test <path-to-test-dir>