Skip to content

Conversation

@Alizter
Copy link
Collaborator

@Alizter Alizter commented Jan 8, 2026

The reloctable compiler, like the other OCaml compilers, has symlinks in it's installation layout. These need to be resolved before we declare them inside the directory target or else the reloctable compiler cannot be cached. This work is tracked in #13229.

In the second commit we introduce a general mechanism to comb through the targets of the install layout for a package and resolve these symlinks by replacing them with a hardlink, falling back to a copy if that is not possible.

We add quite a few tests to exercise the numerous edge cases that come up.

  • TODO describe tests a bit more

@Alizter Alizter marked this pull request as draft January 8, 2026 16:06
@Alizter Alizter mentioned this pull request Jan 8, 2026
6 tasks
> (version 0.0.1)
> (build
> (progn
> (run mkdir -p %{lib}/%{pkg-self:name})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's a suggestion to improve the readability:

Instead of adding a run for every single command, why not a single bash action with a multi line string? They were made for exactly this purpose.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't support (bash) in lock files.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay. Use sh

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you want them in a single sh -c or line by line?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If it was line by line, I think it would defeat the purpose of the change. Since you're already using the shell, use it all the way and invoke it only once do all the work.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly, in the actions where you don't use the shell (I think there's a couple?) you can leave things as is and use the dune language for actions.

@Alizter Alizter force-pushed the push-stqwvouvzytt branch from cc94c92 to c2de6fc Compare January 8, 2026 22:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants