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
{{ message }}
Repository navigation
Commit 4f5effc
Browse filesBrowse the repository at this point in the historyBrowse files
Let a build system start a request before its dependencies publish
Why:
A dependent only needs a module's .cmi to type check, but a build
system that runs requests in process can only start it after that
module has also produced its lambda, JavaScript, .cmj and .cmt.
A request now takes hooks from the build system. interface_computed
receives the contents of the .cmi an implementation is about to write,
once no warning reported as an error is pending; the contents are
computed once (Cmi_format.cmi_contents) and also written. redirect_cmi
hands Bs_cmi_load the contents of a .cmi that is not published yet,
which it reads instead of the build file store; the store never sees
them. before_effect is called before the
request writes a .cmi, .cmt, .cmti, binary AST or a PPX's input, runs
a command such as a PPX, or takes a command line action that writes a file (-e,
-format); a build system that started the request early waits there,
or raises to abandon it before any effect. Build_file_store.key is
exported so that a build system matches paths as the store does. bsc
attaches no hooks and behaves as before.
Review: Can a redirected interface reach a later request through the
store or the decoded interface cache? Only as the same bytes. The
dependency writes the very string it announced through the store, and
publishing copies it, so a domain's cache may reuse an interface it
decoded from the redirect for the published file. A request that is
abandoned or fails drops its domain's cache.
Signed-off-by: Jono Prest <jjprest@gmail.com>
0 commit comments