Appendix C: Bibliography

N4JS Project. (2018). N4JS Language Specification. Retrieved from https://www.eclipse.org/n4js/spec/N4JSSpec.html


1. This is not yet implemented as of September 2015; types are still stored in a separate cache, the ASTMetaInfoCache.
2. In the future, the top-down order could become more important if inference of expected types is also integrated into post-processing.
3. The DeferredTypeRef has replaced the old ComputedTypeRef that had been used until Summer 2015; those were resolved lazily when the type was actually needed (triggered on demand). For a discussion of this change see Background and in particular Comparison of inference of type of AST nodes before / after refactoring..
4. First, according to the build order.
5. These are not really input values but rather values changed during the following invocation of the IBuilderState that need to be carried over from one invocation to the next.
6. Once the build phase has ended, this copied and modified Xtext index will replace the actual state of the builder state and will be persisted on graceful application shutdown.
7. This set of URIs will contain the URIs of all resources that are available in the copied Xtext index but not yet directly processed by the builder in the current build phase. These URIs will later be used as candidates for all resources that might be marked as affected ones and queued by the builder for forthcoming build phases.
8. This set eventually represents all changes that were made during the current build phase. Note that allChanges might contain resource description deltas that do not represent an actual change, it is processed by the builder but the underlying information stored in the user data is still unchanged.
9. Note that deltas for to-be-deleted resources were already added to allDeltas upfront in step Process Deleted.
10. This happens through a call to CurrentDescriptions#register(Delta)
11. Unlike in step Enqueue Affected Resources, we now use changedDeltas instead of allDeltas as a basis.
12. Calculates a list of external library projects that have to be build and another list of projects that have to be cleaned.