facebook / facebook/hhvm

Different typechecker behavior for symlinks on startup vs incremental mode

Open
#6,551 4 comments 0 reactions 1 assignee Claimed by @int3 View on GitHub
hack
Dominant language
C++
Stars
18.7k
Forks
3.1k
Avg merge
1h 47m
Merged PRs (30d)
2

Description

from @jwatzman on hhvm/user-documentation#69

@int3 it looks like we do not read through symlinks in the initial startup, but we do in an incremental update. You made some changes to how we start up, with `find` and `watchman`, right? Can you test this modification of @fredemmott's example and look into it?

``` sh
$ cd /tmp
$ mkdir foo
$ cd foo
$ touch .hhconfig
$ mkdir a b
$ echo ' a/file.php
$ ln -s ../a/file.php b/symlink.php
$ hh_client
For more detailed logs, try `tail -f $(hh_client --logname)`
Server launched with the following command:
'/data/users/jwatzman/fbsource/fbcode/_build/dbg/hphp/hack/src/hh_server' '-d' '/tmp/foo' '--waiting-client' '7'
Spawned hh_server (child pid=2090684)
Logs will go to /tmp/hh_server/zStmpzSfoo.log
No errors!
$ hh_client stop
Attempting to nicely kill server for /tmp/foo
Successfully killed server for /tmp/foo
$ rm b/symlink.php
$ hh_client
For more detailed logs, try `tail -f $(hh_client --logname)`
Server launched with the following command:
'/data/users/jwatzman/fbsource/fbcode/_build/dbg/hphp/hack/src/hh_server' '-d' '/tmp/foo' '--waiting-client' '7'
Spawned hh_server (child pid=2091276)
Logs will go to /tmp/hh_server/zStmpzSfoo.log
No errors!
$ ln -s ../a/file.php b/symlink.php
$ hh_client
b/symlink.php:1:12,14: Name already bound: Foo (Naming[2012])
a/file.php:1:12,14: Previous definition is here
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.