Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrated libcache #121

Open
kekyo opened this issue Jun 6, 2022 · 0 comments
Open

Integrated libcache #121

kekyo opened this issue Jun 6, 2022 · 0 comments

Comments

@kekyo
Copy link
Owner

kekyo commented Jun 6, 2022

The new build engine builds the IL2C runtime library on the fly (#79). This is placed in the directory of the runtime library (the directory where IL2C.Runtime is placed in the case of project builds, or in the case of nuget, probably under ~/.nuget/) with the name libcache/.

Initially, libcache was prepared only for placement of the runtime library. However, we found out that we could share the following scenario:

  • Runtime library build result (libil2c.a)
  • Build result of assembly referenced by nuget.
  • Build result of assembly referenced by assembly file.

In the case of assemblies referenced by project reference that are built simultaneously in the same solution, there are directories specific to each project, so it is sufficient to place the build results directly there.

If we decide to place the build result libraries in some way, such as a hash value, in a unique directory (such as $HOME/.il2c/libcache/), we will be able to reference them in another project as well, in the same nuget assemblies and builds of directly referenced assemblies can also be referenced efficiently.

It is not possible now, but once we establish a way to make linking more efficient by referencing lib*.a, we may be able to achieve the fast linking of assembly libraries that we had in mind when we conceived of IL2C in this way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Release 0.5
  
Decided
Development

No branches or pull requests

1 participant