HHVM - Как правильно использовать hh_client

Так что я был взволнован, чтобы перейти к некоторым Hacklang и HHVM, и после того, как мне наконец удалось запустить его на виртуальной машине CentOS 6 (совет: у servergrove.com есть RPM из их репозитория, но для работы ему все еще нужны общие библиотеки MySQL 5.0). - по-прежнему самый близкий к простой установке CentOS 6, который я смог найти...), я подумал, что возьмусь за достаточно небольшой проект PHP в качестве хорошего теста для преобразования в строгий код Hack.

Я хорошо разбираюсь в коде, но не думаю, что полностью понимаю, как должен работать hh_client. Я создал файл .hhconfig в корне моего проекта, а затем запустил hh_client start из каталога, и, похоже, он запускается нормально - после этого я вижу три запущенных процесса hh_server -d /var/www/html/groundwork. Однако каждый раз, когда я хочу ввести проверку своего кода, мне приходится запускать hh_client check, где, поскольку язык, используемый в документах и ​​других источниках, постоянно предполагает, что это должно быть средство проверки в реальном времени, которое автоматически возвращает информацию - я мог бы запустить watch hh_client check Наверное, но, похоже, я что-то упускаю.

Я позаботился о том, чтобы получить копию файлов hhi, как это было предложено Common-php-functions-in-hack">Common-php-functions-in-hack

Кроме того, иногда, когда я запускаю hh_client, он сообщает о вещах, которые проверка сразу после этого не сделает, несмотря на то, что ничего не меняется в коде. Проверка часто меньше в ошибках. Остановка и запуск hh_client снова сообщает больше.

Спасибо.


person ndavison    schedule 09.05.2014    source источник


Ответы (2)


Привязки редактора, вероятно, то, что вы хотите.

person Paul Tarjan    schedule 09.05.2014
comment
Также есть один для emacs: github.com/facebook/hhvm/blob/master/hphp/hack/editor-plugins/. Что касается того, почему некоторые ошибки исчезают после инкрементной проверки, это связано с тем, как работает инкрементальный режим и как мы стараемся не каскадировать ошибки. По сути, одни классы ошибок могут маскировать другие, но то, как именно это происходит, может различаться. Если чекер говорит, что ошибок нет, то ошибок нет; но если есть ошибки, они могут быть не всеми ошибками. - person Josh Watzman; 09.05.2014
comment
Хорошо, спасибо, ребята. Я обычно разрабатываю в Windows удаленно, поэтому плагин vim не будет моим первым выбором, но я все равно проверю его. И Джош, спасибо за постепенное объяснение, по крайней мере теперь это имеет смысл! - person ndavison; 10.05.2014

Если вы используете это на Mac OSX 10.10, вы должны использовать Vagrant. Если вы используете Vagrant и импортируете файлы с локального компьютера в ваш бродячий ящик, hh_client не обнаружит изменения. Чтобы исправить это, вы можете войти в бродячий ящик в другом терминале и запустить следующее.

watch hh_server . --check

По состоянию на несколько недель назад brew не может установить hhvm на ваш Mac. В этом больше не должно быть необходимости.

person eatingthenight    schedule 12.01.2015