2016-05-06 30 views
0

Es scheint ratsam, zuerst this issue und dann this aptly-named edit zu erwähnen, die verwandt scheint und hh_server verweigerte, auf NFS-Dateisystemen zu laufen. Ich bin mit Dateisystemen nicht sehr vertraut und habe OCaml noch nie zuvor berührt, also habe ich versucht, den Fragetitel zu bearbeiten, was ich weiß: /etc/hh.conf und /etc/hhvm/{php, server}.ini, indem ich hhvm.[server.]enable_on_nfs = true durch reines Raten hinzufüge. Kein Würfel.Typchecking Hack-Code auf VirtualBox über NFS freigegebenen Ordner

Wie ich aus dem Problem verstehe, stammt die Änderung aus dem hh_server Daemon nicht in der Lage, Änderungen an den Dateien über Inotify auf NFS-Laufwerke zu registrieren, was völlig verständlich ist. Allerdings ist meine VirtualBox ein reiner Testserver, um mich mit Hack vertraut zu machen (d. H. Nur den Typchecker auszuführen), und ich habe hh_client bereits erfolgreich auf sshfs-mounted (osxfuse) Laufwerken ausgeführt. Gibt es ein anderes Problem, das mir nicht bewusst ist, dass dies eine schlechte Idee ist? Wenn nicht, wie kann ich hh_server --check aktivieren, um auf meinem freigegebenen VBox NFS-Ordner zu laufen?

Antwort

1

Das Hauptproblem ist das Fehlen von inotify Unterstützung für NFS, so kann hh_server mit veralteten Daten antworten.

Wenn Sie das Risiko akzeptieren, können Sie enable_on_nfs = true zu /etc/hh.conf hinzufügen, die hh_server ermöglicht, Ordner auf NFS zu überprüfen.

+0

Oh, HHVM Caches die Typchecker-Fehler auch? Ich dachte immer, es würde das gesamte Projekt überprüfen, nicht nur die Dateien, die sich geändert hatten. Auch 'enable_on_nfs = true' ist die einzige Einstellung in meinem Projektstamm und scheint ignoriert zu werden. – concat

+0

HHVM ruft seine statischen Staticchecker-Fehler vor der Laufzeit ab, indem er 'hh_server' fragt. Wenn' hh_server' also veraltet ist, werden seine Fehler ebenfalls veraltet sein. Ich würde ernsthaft empfehlen, dies von NFS zu entfernen - der Fehler ist da aus einem Grund! –

+0

@JoshWatzman Welcher Teil von 'hh_server' wird veraltet? Wenn ich richtig verstehe, ohne 'inotify'-Unterstützung, wird' hh_server' nicht informiert, welche Dateien sich geändert haben, aber wie kann/wird es die Fehler in jeder Datei zurückgeben, indem nur die Dateien überprüft werden, die sich sowieso geändert haben 'inotify' Updates werden für verwendet)? Diese Logik war der Grund, warum mein erster Eindruck war, dass 'hh_server' jede Datei für jeden Aufruf des Typcheckers überprüft. – concat