È in corso, con attenzione a non interrompere Scal una semantica tra JVM e .NET.
Ho fatto questa domanda nel 2011 sulla mailinglist Scala-strumenti e la risposta è data da Miguel Garcia in cui si delinea il quadro generale:
(1) Cosa l'anteprima di Scala.Net attualmente lo fa. Come hai notato, la fase di cancellazione viene eseguita anche come parte della pipeline. Questa è una "funzionalità" della versione di anteprima, una "funzione" che doveva essere inclusa perché il supporto per CLR Generics non era ancora presente (ulteriori informazioni su questo di seguito). C'è comunque un grande vantaggio nell'esecuzione della cancellazione stile JVM in Scala.Net: tutti i programmi Scala là fuori che si basano su la libreria Scala può già essere compilata su .Net, invece di aspettare per CLR Generics essere pronti. I programmi che si basano su Java JDK possono anche essere compilati, in base al supporto IKVM delle API JDK nella domanda [1].
(2) Supporto per CLR Generics in Scala.Net. La principale motivazione al supporto di sta ottenendo l'interoperabilità con gli assembly esistenti. In ottenendo tale interoperabilità, si presterà attenzione a non staccare dalla semantica di Scala. In altre parole, qualsiasi programma Scala valido sta eseguendo e produce gli stessi risultati su JVM e .NET. Il che ci porta ai lavori in corso [2]. Il prototipo iniziale gestisce solo il sottoinsieme C# di Scala. Quindi ora mi sto rivolgendo al resto. È più lavoro di inizialmente previsto, ma è importante coprire l'intera lingua.
Alcuni commenti in più relativi all'interoperabilità con assembly .NET, in in particolare problemi nativi. Sì, i gruppi CLR possono esprimere utilizzando "nativo int" (diverse dimensioni su diverse CPU), P/Invoke di funzioni C esportate da un dll e così via. Scala.Net non mira a fare questo inganno a basso livello. L'interoperabilità di assemblaggio di interesse è al livello di "Common Language Specification", ovvero ciò che uno normalmente ottiene da qualsiasi compilatore C#, VB.NET, ecc. ("Normalmente" ossia a meno che non si utilizzino attributi "[DllImport]" e relativi C++ - ismi).
Citando le specifiche CLI:
--- iniziare citazione --- specifica del linguaggio comune (CLS) - La CLS è un accordo tra i progettisti di linguaggi e framework (cioè, libreria di classi) designer . Specifica un sottoinsieme del CTS (Common Type System) e un insieme di convenzioni di utilizzo. Le lingue offrono ai propri utenti la massima capacità di accedere ai framework implementando almeno quelle parti del CTS che sono parte del CLS. Allo stesso modo, i framework saranno più ampiamente utilizzati se gli aspetti esportati pubblicamente (ad es. Classi, interfacce, metodi, e campi) verranno utilizzati solo i tipi che fanno parte del CLS e che aderiscono a le convenzioni CLS. --- Termina citazione ---
M. Garcia ha una relativa [articolo] (http://lampwww.epfl.ch/~ magarcia/ScalaNET/diapositive/TourCLRGenerics.pdf) e [aggiornamento stato] (http://lampwww.epfl.ch/~magarcia/ScalaNET/slides/2011-09-06-GenericsGettingCloser.pdf). Ma questi riguardano i dettagli di implementazione; è difficile ottenere il quadro generale. –