You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _blogposts/2020-09-25-release-8-3-2.mdx
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,7 +41,7 @@ Note such vertical integration not only brings better performance, smaller sizes
41
41
## Build system enhancements for editor diagnostics
42
42
43
43
When people are coding in their favorite editors, they expect to see syntax and type errors in real-time.
44
-
There are multiple ways to achieve this. The most and reliable way is to always invoke the build system whenever the user saves a file. Due to not having an in-memory cache, our build system is very reliable. However we didn't yet optimize the build system for live feedback in editors.
44
+
There are multiple ways to achieve this. The most reliable way is to always invoke the build system whenever the user saves a file. Due to not having an in-memory cache, our build system is very reliable. However we didn't yet optimize the build system for live feedback in editors.
45
45
what syntax errors, type checking errors do they have when editing? There are multiple ways to achieve this, the most easy
46
46
and reliable way is to always invoke the build system whenever the user saves the files, since it's the same build system
47
47
without any in-memory cache, the reliability is very high, however, there's several challenges to use the build system output as editor diagnostics.
@@ -58,7 +58,7 @@ For a typical file based build system, if the file A is compiled successfully wi
58
58
This is problematic if we use the build system output for editor diagnostics. Since the second build will not capture those warnings, we
59
59
could use some caching mechanism to cache previous build output. But… stateful systems are not reliable and come with a whole range of different problems.
60
60
61
-
To solve such challenging problem, we did some innovations to co-ordinate the compiler and build system. When the file A is compiled with warnings,
61
+
To solve such a challenging problem, we did some innovations to co-ordinate the compiler and build system. When the file A is compiled with warnings,
62
62
the compiler will produce some marks to the build system, the build system will keep building but such marks are encoded in the build rules
63
63
so that the second build will do the rebuild.
64
64
@@ -75,7 +75,7 @@ To get the build output, instead of communicating through IPC, we adopted a simp
75
75
This makes the editor integration build-system agnostic, it does not need talk to the build system directly.
76
76
77
77
It also makes our build tool work with other watchers including Facebook's [watchman](https://facebook.github.io/watchman/).
78
-
Watchman is a more scalable watcher tool for specific platform and less memory hungry, however, we still need a watchman-client to get the output of triggered job.
78
+
Watchman is a more scalable watcher tool for some specific platforms and less memory hungry, however, we still need a watchman-client to get the output of triggered job.
79
79
We write the output to `.compiler.log` per each build, allowing clients to read compiler diagnostics when they want.
80
80
81
81
## A better algorithm for removing stale outputs
@@ -100,7 +100,7 @@ In general, strategy two is more reliable and efficient.
100
100
- When we change the in-source build to out-source build, it will still do the pruning properly
101
101
102
102
However, strategy one is easier for tooling like `genType`. Not every tool has knowledge of the build system.
103
-
we employ a combination of the two strategies.
103
+
104
104
105
105
Sometimes a combination of both strategies is needed.
106
106
- When removing .cm* files, we use the first strategy.
0 commit comments