apple / apple/foundationdb

Switch to using mcs (if available) instead of dmcs for mono compilation

Open
#324 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

I am not an expert on this kind of thing, but we are currently using dmcs as our mono compiler on Linux and macOS. With #305, we are using dmcs if it is available and falling back to mcs if one is trying to compile with a newer version that doesn't ship with dmcs. It seems like the right thing to do is the opposite of that--to default to mcs and then fall back to dmcs if it isn't there. On versions that ship with both, those are actually just identical (AFAIK); on versions that ship with just dmcs, then there is no behavior change at all. Furthermore, our mono stuff is all build related--none of it produces something that we expect others to pick up as a library dependency, so there aren't ABI compatibility concerns or anything.

I think this is strictly the right thing to do, but I'm also not super conversant on all of the ins and outs of those things.

Contributor guide

Open the contributing guide

Research direction

Start by reading the build configuration changed in #305 and trace how the Mono compiler is selected on Linux and macOS. Confirm the available mcs and dmcs cases, then verify that the completed change prefers mcs and falls back to dmcs without changing behavior where only dmcs exists.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.