Est Roslyn de la croix-plate-forme?

J'ai été à la recherche à Roslyn pour un certain temps maintenant, et je suis curieux et excité à ce sujet. Une chose que j'ai remarqué, c'est qu'ils ont mentionné que le compilateur est re-écrite en code managé. Cela soulève la question de savoir si Roslyn est capable de fonctionner sur non-.NET des machines virtuelles, comme Mono.

Je vraiment amour pour incorporer C# script à l'aide de Roslyn dans mes jeux vidéo, et d'utiliser beaucoup de leurs autres fonctions dans mes applications, mais je me demandais si l'utilisation de Roslyn interrompt la possibilité pour elle de s'exécuter sur Mono.

Quelqu'un a essayé de courir Roslyn sur Mono? Est-il possible? Pourquoi ou pourquoi pas?

De préciser, je suis intéressé par les deux si la gestion de l'assemblée peuvent s'exécuter sur Mono, et si elle peut générer des assemblées que les mono pouvez exécuter.

  • Demandez-vous si Roslyn peut être exécuté sur mono, ou si elle produit un code qui peut être exécuté sur Mono? Les deux sont indépendants. Ma conjecture est que c'est pas pour les deux bien que.
  • J'ai édité la question d'origine, je suis intéressé par les deux. Je devine qu'il y a quelque bizarrerie dans ce qui peut le rendre incompatible en tant que bien, mais si elle est construite à l'aide de code managé, je ne vois pas de raisons principales pourquoi ça ne marcherait pas.
  • Je ne suis pas d'en faire une réponse parce que je n'ai pas de connaissances spécifiques sur ce point, j'ai peut-être tort. Mais étant de la croix-plate-forme n'est certainement pas un objectif déclaré du projet, si elle était de la croix-plate-forme, il doit être "accidentellement" de la sorte. Ma conjecture est qu'il n'est pas, cependant, car il a probablement un certain pinvoke code qui est spécifique de windows.
  • le point de Roslyn est qu'il est entièrement géré. Il invoquant natif .dll serait une surprise pour moi.
  • Roslyn est écrit en C#. C'est juste que la croix-plate-forme de C#. Cependant, il est actuellement livré en tant que VS extension de sorte que les travaux seraient nécessaires pour séparer les deux. Je ne voudrais pas retenir mon souffle pour le type de licence qui l'autorise.
  • NRefactory 5 - github.com/icsharpcode/NRefactory - est de la nouvelle SharpDevelop / MonoDevelop outil d'analyse de code en C#, et devrait satisfaire vos exigences. Il a des objectifs similaires à la Roslyn projet, si ce n'est pas un compilateur complet. En collaboration avec le Mono 'Compilateur-comme-un-Service - Mono.CSharp - vous devriez avoir une alternative viable. Voici un exemple de code est porté à partir de Roslyn à NRefactory récemment: ermau.com/making-instant-csharp-viable-full-projects
  • Étant entièrement gérée n'est PAS "le point" de Roslyn; résoudre les problèmes de ses clients et de produire une forte compilateur moderne de l'architecture sont le point de Roslyn. Être écrit en code managé est un choix de la mise en œuvre entraînée par une approche pragmatique des problèmes tels que le coût et les délais de mise en marché. Les premières versions de Roslyn a fait un usage intensif de non géré les bibliothèques, bien que la plupart de ceux qui ont été remplacés par des appels à une version modifiée de la CCI maintenant. Il peut être non géré les appels à la bibliothèque pour certaines fonctionnalités.
  • Roslyn est peut-être écrit en C#, mais ce n'est pas tout ce qu'il ya à être ou ne pas être multi-plateforme. Cela dépend aussi de l'assemblées et BCL types que l'Roslyn références de projet et fait usage de. Par exemple, System.Reflection.Emit est en fait spécifique .NET; il n'est pas standardisé par l'ECMA-335 CLI standard. Dans ce cas particulier, le Mono se produit à l'appui de cette non-normalisée de la fonctionnalité, de trop (IIRC), mais il ne serait pas strictement à.
  • Je voudrais vraiment, vraiment être surpris si Roslyn produit un code qui ne peut pas s'exécuter sur Mono. Étant donné que le scc produit un code qui s'exécute sur elle..
  • oui, je sais, mes paroles étaient imprécises et mal. J'ai simplement voulu dire que c'était l'un des objectifs de la conception.
  • pas invoquer de dll natives" n'a jamais été un objectif de conception de Roslyn à tout moment.
  • bon à savoir. Par curiosité, est-il vrai (qu'il n'a pas invoquer de dll natives)?
  • Il n'est pas vrai.

InformationsquelleAutor mirhagk | 2013-02-01