HHVM setzt künftig auf einen Rust-Parser

Im neuesten Release der virtuellen Maschine ist ein Rust-Parser gelandet, der schon bald den bisherigen in OCaml geschriebenen ersetzen wird.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen
HHVM setzt künftig auf einen Rust-Parser
Lesezeit: 2 Min.
Von
  • Alexander Neumann

Das Team hinter der HipHop Virtual Machine (HHVM) hat Version 4.20.0 der quelloffenen virtuellen Maschine veröffentlicht. Große Teile des Codes werden derzeit von OCaml nach der Programmiersprache Rust umgeschrieben. Das sollte jedoch bislang keine Änderungen für Benutzer zur Folge haben. Mit HHVM 4.20 wurde ein neuer Parser in Rust hinzugefügt, der sich in der hhvm.ini-Datei mit hack.lang.hack_compiler_use_rust_parser=1 hinzufügen lässt. Ab HHVM 4.22 soll dann nur noch der Rust-Parser verfügbar sein.

Mit dem neuen Befehl hh_client - rewrite-return-type <filename> kann man sich bei der Migration vom partiellen in den strengen Modus helfen lassen. Er fügt <<__Soft>>-Typannotationen hinzu, die auf abgeleiteten Rückgabetypen basieren. Ungültige Methodenaufrufe auf reifizierten generischen Typen werfen nun eine BadMethodCallException, statt einen Fehler zu verursachen. Die neue Funktion fb_intercept2() wurde als Ersatz für fb_intercept() hinzugefügt. Hinzugekommen ist außerdem die Funktion fun_get_function().

Mit HHVM 4.20.0 wird Version 4.14 der virtuellen Maschine nicht mehr unterstützt, die Folgerelease 4.15 bis 4.19 aber genauso wie die LTS-Versionen 3.30 und 4.8. Das mittlerweile nachgerückte 4.20.1 behebt ein Build-Problem im Zusammenhang mit dem neuen Rust-Parser auf macOS. Alle Linux-Builds für Version 4.20.1 sind wohl identisch mit 4.20.0.

Weitere Details und ein Ausblick auf geplante Änderungen entnimmt man dem HHVM-Blog. Der Sourcecode ist auf GitHub zu finden. (ane)