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

msvc version release #775

Closed
anemele opened this issue Dec 21, 2023 · 4 comments
Closed

msvc version release #775

anemele opened this issue Dec 21, 2023 · 4 comments

Comments

@anemele
Copy link

anemele commented Dec 21, 2023

Hi.

I wonder why there is not a MSVC version release on GitHub?
Some other repos like BurntSushi/ripgrep
, sharkdp/fd
have both MSVC version and GNU version release.

@davidanthoff
Copy link
Collaborator

I want the portable version of Juliaup (which is the only version that is available attached to GitHub Releases) to be as self-contained as possible. If we were to compile it as MSVC then users would have to install the VC runtime before they can use that version.

The version that you get when you install from the Windows Store uses the VS runtime because we can automatically install the runtime as a dependency via the store.

Is there a scenario where having a MSVC build would be useful?

@anemele
Copy link
Author

anemele commented Dec 22, 2023

In my case, the MS store is not always accessible or stable.

Why I prefer MSVC build:

  1. MSVC is the default toolchain of Rust on Windows
  2. MSVC build has smaller binary size
  3. As mentioned in #issuecomment-1188055601, self update not works on x86_64-pc-windows-gnu . ( I didn't follow up this issue, but it does not work on x86_64-pc-windows-msvc either. )

As for the VC runtime, see BurntSushi/ripgrep#1613

@davidanthoff
Copy link
Collaborator

MSVC is the default toolchain of Rust on Windows

That wouldn't make any difference to end-users, right? The builds that we attach to the GitHub releases are the official portable version of Juliaup meant for end-users, I don't see what difference it would make whether this is using a Rust default toolchain or not.

MSVC build has smaller binary size

True, but also not really a big issue, I think? All the files we are talking about are pretty small, right?

As mentioned in #333 (comment), self update not works on x86_64-pc-windows-gnu . ( I didn't follow up this issue, but it does not work on x86_64-pc-windows-msvc either. )

That is entirely unrelated to the msvc-gnu toolchain question.

As for the VC runtime, see BurntSushi/ripgrep#1613

If I recall this all correctly, then right now we are dynamically linking against MSVCRT.DLL when we use the GNU toolchain. That file always ships with Windows (see here for the backstory). The link there instead statically links a more modern VC runtime. The question then really becomes whether the generated files will be much larger in size? My best guess is they would, as we would now include parts of the runtime in our own binary. But I'm not sure.

I think overall I just don't see the benefit of changing things here :) Everything works the way it is, the experience is good for end-users etc. You can of course always compile your own version that links against the VC runtime.

@davidanthoff
Copy link
Collaborator

Alright, I'm closing this for now, happy to reconsider if someone convinces me that there is a real benefit :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants