mirror of
https://github.com/enso-org/enso.git
synced 2024-11-30 05:35:09 +03:00
941512e0ba
This change adds serialization and deserialization of library bindings. In order to be functional, one needs to first generate IR and serialize bindings using `--compiled <path-to-library>` command. The bindings will be stored under the library with `.bindings` suffix. Bindings are being generated during `buildEngineDistribution` task, thus not requiring any extra steps. When resolving import/exports the compiler will first try to load module's bindings from cache. If successful, it will not schedule its imports/exports for immediate compilation, as we always did, but use the bindings info to infer the dependent modules. The current change does not make any optimizations when it comes to compiling the modules, yet. It only delays the actual compilation/loading IR from cache so that it can be done in bulk. Further optimizations will come from this opportunity such as parallel loading of caches or lazily inferring only the necessary modules. Part of https://github.com/enso-org/enso/issues/5568 work. |
||
---|---|---|
.. | ||
main | ||
test/scala/org/enso/librarymanager |