Not sure whether this is the right forum to post this. Let me know if it is not and please guide me to the correct forum where I could post this message:
I was wondering if Rust compiler could provide options for various profiles i.e. say if some developers from the embedded community wants to evaluate and use Rust for their project, then their first port of call should be the embedded profile of the Rust language; and if they want to then further explore the language then they could look at, enable and use the other features of the language. Similarly for the smart-contracts community there could be a separate profile of the language available(where only specific features of the language could be available to compile a smart contract), same for the HPC community and so on. In addition to the compiler providing a switch to enable profile(s) during compilation, the development and community organisation would also need to be formed based around this idea. Each profile community will decide on the RFCs for their specific profile/domain and in consultation with the core profile team implement the RFCs.
What problem will this solve? Well, this will solve the problem that will arise down the line if not taken careoff now before the language grows with more features. Officially supporting different profiles will help newcomers to the language to not get overwhelmed by the whole language and help them concentrate on the specific profile of their domain. C++ is plagued with this problem. For Rust to avoid being in the same situation it will be helpful if language profiles are officially supported at this early states of language creation. I remember reading long back, may be more than 18 years ago, that there was a proposal sent to the C++ standards committee to officially support embedded profile(EC++). But that proposal was rejected and then compiler writers had to, in a non standard way, support various incompatible compiler switches to unofficially support that profile!