docs(tvix/eval): add optimisation note on eliminating with thunks

Change-Id: I18d50ac8e157929a027f8bf284e65f1eb8950d5a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6488
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
Vincent Ambo 2022-09-06 23:25:57 +03:00 committed by tazjin
parent 627dfabef1
commit e944c341a7

View file

@ -50,12 +50,6 @@ optimisations, but note the most important ones here.
can directly use the `value::function::Lambda` representation where
possible.
* Tail-call optimisation [hard]
We can statically detect the conditions for tail-call optimisation.
The compiler should do this, and it should then emit a new operation
for doing the tail-calls.
* Optimise inner builtin access [medium]
When accessing identifiers like `builtins.foo`, the compiler should
@ -81,3 +75,12 @@ optimisations, but note the most important ones here.
For details consult the commit with Gerrit change ID
`I96828ab6a628136e0bac1bf03555faa4e6b74ece`, in which the initial
attempt at doing this was reverted.
* Avoid thunks if only identifier closing is required [medium]
Some constructs, like `with`, mostly do not change runtime behaviour
if thunked. However, they are wrapped in thunks to ensure that
deferred identifiers are resolved correctly.
This can be avoided, as we statically analyse the scope and should
be able to tell whether any such logic was required.