Mono è un'implementazione open source del controverso linguaggio di programmazione .NET e del framework software sviluppato da Microsoft per gli sviluppatori che desiderano creare applicazioni per il sistema operativo Microsoft Windows. La principale differenza tra .NET e Mono è che quest'ultimo ti consente di creare applicazioni che girano anche su sistemi GNU / Linux.
Sponsorizzato da Novell
Sponsorizzato da Novell, il progetto Mono consente agli sviluppatori Linux di creare ricche applicazioni che sono multipiattaforma, compatibili con i sistemi operativi GNU / Linux, Microsoft Windows e Mac OS X, con una produttività senza precedenti. Si basa sugli standard ECMA per Common Language Runtime e compilatore C #.
Fornisce l'interoperabilità linguistica
Il software comprende una grande libreria di classi che è popolarmente conosciuta come FCL (Framework Class Library), che fornisce l'interoperabilità linguistica tra i vari linguaggi di programmazione. Fornisce inoltre comunicazioni di rete, sviluppo di applicazioni Web, algoritmi numerici, interfaccia utente, connettività di database, accesso ai dati e crittografia.
Supportato sulle principali piattaforme GNU / Linux
Essendo un linguaggio di programmazione abbastanza popolare, e poiché ci sono diverse importanti applicazioni Linux scritte in Mono, come il lettore musicale e l'organizzatore di Banshee, il progetto è supportato sulle principali piattaforme GNU / Linux, tra cui Arch Linux, Debian, CentOS, Ubuntu, openSUSE e Gentoo.
Framework .NET multipiattaforma e open source
Nonostante sia un'implementazione Linux del linguaggio di programmazione .NET, Mono è multipiattaforma e open source, supportato su sistemi operativi tradizionali come Microsoft Windows e Mac OS X, non solo su GNU / Linux.
Disponibilità, sviluppo e architetture supportate
Su GNU / Linux, il progetto Mono è distribuito come archivio sorgente principale, che richiederà agli utenti di configurare e compilare manualmente il software prima dell'installazione. Fortunatamente, sarai in grado di installare l'ultima versione di Mono dai repository software predefiniti di numerose distribuzioni (elencate sopra). Al momento sono supportate sia le architetture a 64 bit che a 32 bit.
Novità in questa versione:
- Adozione del codice open source di Microsoft
- C # 6.0
- Ottimizzazioni in virgola mobile
- Abbiamo abbandonato il supporto per gli assembly 2.0, 3.5 e 4.0
- Aggiornato IKVM
- Sovraccarico del debugger
- Supporto di base per PowerPC64 LE
Novità della versione nella versione:
- Adozione del codice open source di Microsoft
- C # 6.0
- Ottimizzazioni in virgola mobile
- Abbiamo abbandonato il supporto per gli assembly 2.0, 3.5 e 4.0
- Aggiornato IKVM
- Sovraccarico del debugger
- Supporto di base per PowerPC64 LE
Novità nella versione 4.2.2.30:
- Adozione del codice open source di Microsoft
- C # 6.0
- Ottimizzazioni in virgola mobile
- Abbiamo abbandonato il supporto per gli assembly 2.0, 3.5 e 4.0
- Aggiornato IKVM
- Sovraccarico del debugger
- Supporto di base per PowerPC64 LE
Novità nella versione 4.0.4.1:
- Adozione del codice open source di Microsoft
- C # 6.0
- Ottimizzazioni in virgola mobile
- Abbiamo abbandonato il supporto per gli assembly 2.0, 3.5 e 4.0
- Aggiornato IKVM
- Sovraccarico del debugger
- Supporto di base per PowerPC64 LE
Novità della nuova versione nella versione 4.0.2.5:
- Adozione del codice open source di Microsoft
- C # 6.0
- Ottimizzazioni in virgola mobile
- Abbiamo abbandonato il supporto per gli assembly 2.0, 3.5 e 4.0
- Aggiornato IKVM
- Sovraccarico del debugger
- Supporto di base per PowerPC64 LE
Novità nella versione 3.12.1:
- Patch per risolvere la vulnerabilità di SKIP TLS
- Patch per risolvere la vulnerabilità FREAK
- Rimozione di SSLv2
Novità nella versione 3.12.0:
- In evidenza:
- Prestazioni importanti e miglioramenti del consumo di memoria su SGen.
- Migliora l'euristica del ThreadPool per massimizzare l'efficienza e ridurre al minimo il numero di thread
- Anteprima sperimentale sul nuovo programma di installazione di Windows
- Garbage Collector:
- Riorganizzato come vengono manipolati i principali blocchi heap per una maggiore efficienza della raccolta principale.
- Consumo di memoria ridotto grazie a un migliore dimensionamento dei bucket di allocazione.
- Passa a un'euristica più semplice per il dimensionamento dell'heap più stabile che è più stabile ed evita picchi imprevisti.
- Rimosso il raccoglitore parallelo, si trattava di una funzione sperimentale che non offriva una velocità effettiva. Sarà riportato in futuro con un design funzionante.
- Rimosso la configurazione dell'heap fisso, si trattava di una funzione sperimentale che non offriva un miglioramento delle prestazioni sufficiente. Rimosso per la complessità aggiuntiva.
- I canarini ora sono supportati per l'asilo nido. Canaries è uno strumento di debug leggero per rilevare il danneggiamento della memoria. Abilitalo con il nuovo & quot; vivaio-canarini & quot; opzione nella variabile di ambiente MONO_GC_DEBUG.
- ThreadPool:
- Passaggio all'alpinismo adattativo per dimensionare la piscina. Questo risolve i casi in cui il vecchio algoritmo causava il thrash ruotando troppi thread.
- Il thread del supervisore ora entra nel deep sleep quando non vengono inviati nuovi lavori per un po '. Questo dovrebbe risparmiare energia sui bersagli che corrono con le batterie.
- Durata:
- Implementa i nuovi dispositivi di sospensione su Windows, amd64 e arm. Il nuovo macchinario è noto per essere più affidabile e si traduce in blocchi notevolmente inferiori quando si utilizzano le funzionalità avanzate di threading della piattaforma.
- Il supporto per la versione minima di Windows ora è WinXP SP2, prima era Windows 2000. (Aspetta cosa?)
- Tooling:
- Supporto debugger per Windows a 64 bit.
- Correzioni multiple nel profiler per rendere il campionamento statistico affidabile e funzionale su target unix senza il campionamento assistito dal kernel.
- Performance:
- Il codice X86 ora genera codice pushless. Questo è più veloce con le CPU moderne e produce informazioni di unwind più piccole.
- Rielaborazione del blocco del runtime interno per fare meno lavoro con i blocchi a caldo e eseguire un caricamento dei metadati più ottimistico.
- Librerie di classi:
- OS X ora utilizza un FileSystemWatcher sperimentale basato su kqueue. Funziona e non richiede il polling.
- Packaging:
- Nuovo programma di installazione di Windows sperimentale disponibile. È un'anteprima tecnica quindi qualsiasi commento è benvenuto.
- Problemi noti:
- Il nuovo OS X kqueue FileSystemWatcher consumerà tutti i descrittori di file quando si guardano directory molto grandi.
- I canarini potrebbero non funzionare a 64 bit e produrre falsi rapporti in alcuni casi di angolo di blocco.
- Correzioni di bug:
- Correzioni di bug di runtime:
- Evita gli inviti all'arresto quando l'appdomain scarica i callback sul thread del debugger durante l'arresto. Correzioni # 24342.
- Correggere il calcolo della dimensione dell'epilog per le informazioni EH. Correzioni # 24577.
- Correggere una gara di inizializzazione della classe che si verifica se un inizializzatore di classe inizializza uno slot ottenuto prima che termini l'esecuzione. Correzioni # 23242.
- Correggere OP_LOCALLOC sul braccio in modo da regolare correttamente lo sp con le dimensioni dell'area param anche se la dimensione è grande. Correzioni # 24221.
- Disabilita l'estensione degli argomenti i8 / i16 a i32 su arm64, poiché la convenzione di chiamata ios li passa diversamente da i32. Correzioni # 22800.
- Utilizzare NULLIFY_INS () per annullare le istruzioni e utilizzare MONO_INST_NEW per creare istruzioni del nodo phi per evitare affermazioni nel passaggio spill. Correzioni # 24006.
- Riscrivi il modo in cui le chiamate dirette vengono fatte tra i metodi llvm. In precedenza tutte le chiamate venivano effettuate per le voci plt e i simboli della voce plt venivano coniati per puntare al metodo corrispondente se il metodo era direttamente richiamabile usando la direttiva .set assembler. Questo non sembra funzionare con le versioni LLVM / CLANG più recenti, quindi fallo completamente sul lato LLVM usando Value :: replaceAllUsesWith (). Correzioni # 23976.
- Rendi gli handle di processo non condivisi. Correzioni # 23423.
- Correzione del ritorno di vtypes contenenti un singolo membro fp dai metodi pinvoke su OS X / x86. Correzioni # 23813.
- Risolvi un asserimento SRE. Correzioni # 19039.
- Implementa 5dbf97e66057f8626c53fcea30f1988d6627e5a2 anche per le chiamate effettuate da NEWOBJ. Correzioni # 23557.
- Rendi unica ogni patch CASTCLASS_CACHE generando un identificatore univoco dall'indice del metodo e un contatore per metodo. Correzioni # 23478.
- Non consentire classi generiche con layout esplicito. Correzioni # 23438.
- Aggiungi un'opzione per far invocare il debugger virtuale. Parte della correzione per # 23385.
- Consenti la ridenominazione dei thread del threadpool. Correzioni # 23206.
- Corregge l'annullamento della registrazione del nostro gestore di eccezioni su Windows. Correzioni # 23221.
- Effettua chiamate da gshared a metodi condivisibili gsharedvt indiretti, poiché altrimenti durante il runtime potremmo trovare un'istanza e non possiamo correggere la chiamata, causando problemi di prestazioni. Correzioni # 23021.
- Consenti l'opcode SIZEOF nel codice gsharedvt se non fa riferimento a un tipo gsharedvt. Correzioni # 22711.
- Correggere mono_marshal_free_ccw (). Correzioni # 22414.
- Correzioni di bug per librerie di classi:
- Corregge la proprietà corrente di DbEnumerator per clonare i dati letti. Correzioni # 24452
- Consenti l'invio di dati di testo più lunghi di 4000 caratteri utilizzando un tipo di colonna diverso. Correzioni # 21172.
- Implementa MonoGenericClass: GetCustomAttributes () per i tipi creati. Correzioni # 23769.
- Migliorato BlockingCollection.AddAny. Correzioni # 22775.
- Implementa i KnownTypes per DataContractJsonSerializer. Correzioni # 23058
- HttpQSCollection.ToString ora url codifica valori. Correzioni 22557.
- Chiama SetupRequestAsync solo dopo le modifiche di ContentType. Correzioni 19529.
- Notifica l'attività principale quando l'attività figlio utilizza NotOnFaulted. Correzioni # 23594
- Utilizza le transizioni TZ quando le regole di regolazione vengono ignorate. Correzioni 23170.
- Il tempo trascina la riscrittura di formattazione. Correzioni # 23376
- Deserializzazione Json migliorata di numeri in virgola mobile. Quando DataContractJsonSerializer è stato creato dall'oggetto type, la deserializzazione dei numeri floating.point non è stata possibile. Correzioni 21583.
- Test di deserializzazione di Json di un numero in virgola mobile come oggetto. Copertine 21583.
- Rss20ItemFormatter.ReadFrom ora imposta Id quando guid è PermaLink. Correzioni 23262.
- correggi bug # 23318 - XComment.ToString () accetta & quot; invalid & quot; valori.
- Uri creato dal percorso UNIX e RelativeOrAbsolute è ora relativo. Correzioni 22954.
- UriParseComponents non decodifica più '@' in UserInfo. Correzioni 23246.
- Aggiornamento dei designatori di NZ. Correzioni # 22212
- Aggiorna alla mia ultima correzione per il bug # 22129.
- Copia / configura i parametri sulla chiamata asincrona; bug # 22129.
- Se non specificato, supponiamo che gli elementi dell'array siano annullabili. Correzioni # 19012.
- Aggiunta serializzazione opzionale basata su ShouldSerialize {V}. SerializationCodeGenerator e XmlSerializationWriterInterpreter non serializzeranno più un attributo denominato {V} se il suo oggetto ha un metodo denominato ShouldSerialize {V} () che restituisce false. {V} Specificato ora viene anche verificato come vero prima di serializzare l'attributo, anche se si tratta di una proprietà che non è impostabile. Correzioni # 1852.
- GMT DateTimeOffset ora viene analizzato correttamente. Correzioni # 22851. I formati di data GMT impostano useutc su true, quindi ora useutc viene controllato per avviare DateTimeOffset con un offset zero.
- Metodi di CalendoryCalculations migliorati fixed_from_dmy. Correzioni # 21930. In alcuni casi, fixed_from_dmy viene utilizzato con il parametro del mese superiore al numero di mesi di quell'anno. L'anno è ora incrementato fino a quando il parametro del mese è valido.
- Enumera tutte le sottodirectory incluso il primo. Correzioni # 22857
- Codifica nome ContentDisposition. Correzioni # 18422
- Se necessario, gli oggetti serializzati sono ora convertiti implicitamente. Correzioni # 20403.
- Correzione ClientWebSocket.ReceiveAsync () con buffer piccolo; bug # 22704.
- Tokenize dash solo nei valori dell'intervallo. Correzioni # 22764
- Aggiunto il formato dell'ora con solo l'offset. Correzioni # 22558.
- correggi bug # 6512 (di Mikkel Kruse Johnsen) - non deserializzare i parametri GET.
- Aggiunto supporto per UriComponents.SerializationInfoString. Correzioni # 21571.
- Unifica la gestione di default ctor e zero. Correzioni # 22591
- Rendi lo stato SendAsync libero per gestire le chiamate ricorsive. Correzioni # 22724
- In realtà, correggi # 22179 per consentire richieste simultanee.
- DateTime.Parse ora gestisce un numero illimitato di cifre frazionarie. Questa modifica è stata apportata perché .NET può analizzare il formato ISO8601 con un numero illimitato di cifre frazionarie. Correzioni # 22417.
- Aggiunto test ISO8601FractionalDigits. Copertine # 22417.
- Riflessione del ritardo colpita al punto di esecuzione effettivo. Soluzioni alternative # 22522
- Aggiorna RequestMessage.RequestUri.AbsoluteUri dopo il reindirizzamento. Correzioni # 22383
- Cattura le eccezioni generate da SerialPortStream.Dispose () quando chiamate dal finalizzatore. Correzioni # 15514
- KeyPairPersistence ora tenta di correggere i permessi della cartella. Un'eccezione non viene più generata se è possibile correggere le autorizzazioni della cartella. Corregge l'errore 19274.
- Correzioni di bug del compilatore C #:
- Un tipo di puntatore può essere usato come tipo di un campo volatile. Correzioni # 23770
- Identifica correttamente la sezione degli switch costanti quando la corrispondenza dei valori non è l'inizio della sezione. Correzioni # 23475
- Controlla gli operatori utente vero / falso sul tipo nullable non imballato. Correzioni # 23199
- Altre modifiche al tokenizzatore condizionale. Correzioni # 23319
- Popolare la cache dei membri dei vincoli ereditati dai tipi non solo i tipi di base. Correzioni # 23017
- Risolve la rimozione di tipi generici incompleti dalla cache di eval. Correzioni # 22393
- Analisi di espressioni ternarie la cui condizione allora è una lambda. Correzioni # 22523
- Correzioni di bug di MSBuild:
- Utilizzare ToolPath durante la creazione del percorso di esecuzione di ToolTask. Correzioni # 22981
Novità in nella versione 3.8.0:
- In evidenza:
- Principali miglioramenti delle prestazioni e della scalabilità nell'intero runtime.
- Finito la porta di Windows 64.
- Protocollo del cavo di debug ottimizzato per le connessioni USB.
- Debugger:
- Il protocollo del filo aggiornato gestisce meglio le connessioni a latenza elevata come quelle trovate quando si esegue il debugging USB.
- La libreria client ora memorizza in modo aggressivo le informazioni e le richieste batch. In uno scenario di test, i singoli pacchetti stepping trasmessi sono passati da 2233 a soli 16, con una latenza che va da secondi a 20 millisecondi.
- Performance:
- Il JIT ora gestisce meglio i remainder lunghi con le potenze di due, generando un codice significativamente migliore.
- Viene generato un codice 10x più veloce per i delegati che vengono richiamati una sola volta. Le funzionalità C # come asincrono e LINQ generano molti delegati, quindi questo miglioramento avrà un impatto su tutti.
- L'analisi alias migliorata ora può gestire alias di secondo ordine ed eliminare i controlli nulli.
- Il runtime ora ha un hashtable leggibile contemporaneamente che può rendere i carichi di lavoro pesanti per la riflessione molto più veloci e più scalabili.
- Raccolta dati obsoleti:
- Ottimizzato una delle strutture dati principali del garbage collector; dovrebbe comportare una riduzione del 5-10% dei tempi di raccolta.
- Correzioni di bug:
- Durata:
- Risolve la perdita di porte Mach introdotta da 98bbf8512aec0fa01b4426583280f6d231d22187. Correzioni # 22068
- Correggere Process.PrivateMemorySize64 ecc. su ios. Correzioni # 21882
- Correggi enum- & gt; int getta nel codice gsharedvt. Correzioni # 21893
- Evita di fare normalmente chiamate generiche dai metodi gsharedvt, invece passa attraverso l'infrastruttura rgctx. Correzioni # 21677
- Risolve un altro problema di tipo nativo. Si spera che risolva # 21670 e # 21636
- Usa le informazioni alias per eliminare i controlli nulli espliciti. Correzioni # 21645
- Inizializza i campi in MonoField: GetFieldOffset () se necessario. Correzione della parte di # 21604
- Gestire correttamente il rethrow al di fuori dei blocchi catch. Correzioni # 20412
- Disabilita i test delle unità di runtime su linux, perché non può essere collegato a causa delle dipendenze circolari tra le librerie. Correzioni # 21520
- Durante l'analisi dell'intestazione di un metodo, assicurati di passare qualsiasi contesto generico disponibile. Correzioni # 21388
- Aggiunta la nuova funzione mono_domain_set_config; utilizzato per correggere ConfigurationErrorsException in # 10468
- Applicare l'hack della dimensione dello stack non convenzionale al thread principale. Correzioni # 10096
- Non inserire hardcode nella directory temp in / tmp, usa invece g_get_tmp_dir. Correzioni # 20894
- Dati GC del thread espliciti in giro invece che fare affidamento sull'archiviazione TLS. Correzioni # 20360
- Make WaitForPendingFinalizers () aspetta davvero i finalizzatori aggiunti da un GC precedente. Correzioni # 20503
- Corregge il test marshal7.cs, i long possono essere allineati a 4 byte su linux a 32 bit e il runtime non allinea più le dimensioni della struttura a 8 byte. Correzioni # 20788
- Risolve il popping dei frame LMF durante lo svolgimento. Correzioni # 20616
- Correggere il marshalling dei tipi ByValTStr che hanno una dimensione specificata. Correzioni # 20674
- Correggere la decodifica di MonoJitInfo. Correzioni # 16439
- Permette di creare viste su file magici di dimensioni zero come / dev / zero. Correzioni # 19460
- Wrapper di delegati liberi con vincoli statici di metodi dinamici. Correzioni # 19058
- Non eseguire il doppio calcolo dell'offset per i segmenti di memoria denominati. Correzioni # 20591
- Evita di unirti ai thread allegati. Correzioni # 19343
- Supporto fisso per i marshaller personalizzati definiti in altri assembly. Correzioni # 20020
- Correggere un'asserzione jit su una classe che contiene una struttura vuota come campo statico. Correzioni # 20349
- Patch applicata da Kyle Edwards kyleedwardsny@gmail.com. Fix isinf () controlla con clang. Correzioni # 20244
- Correggi il tipo vincolato di unwrap per i tipi di enumerazione. Correzioni # 18371
- Librerie di classi:
- Gestisce il valore del nome del file indicato. Correzioni # 21960
- Gestisci correttamente le dimensioni parziali dei blocchi. Correzioni # 20583
- Tweak Dictionary capacità iniziale di essere più prudenti. Correzioni # 21375
- Gestire i delegati a zero chiuso creati con IL quando si utilizza InvokeDynamic. Correzioni # 21196
- Correggere una gara in un test di attività. Correzioni # 20921
- Contratti l'array di valori durante la decodifica di un array con un numero negativo e un trailer che diventa zero. Correzioni # 20456
- Risolve il problema con le colonne di espressione e IsNull. Correzioni # 20925
- Array qsort senza allocazione della testa. Correzioni # 20922
- Enum :: TryParse ignora gli spazi bianchi iniziali. Correzioni # 20870
- Correggere lo smaltimento di DelegatingHandler. Correzioni # 20818
- Correggi l'autenticazione del digest (bug # 18799)
- Ricicla solo i ServicePoint dal timer di inattività (corregge # 19823)
- Modificato ConcurrentDictionary.Contains (KeyValuePair) per confrontare anche il valore. Correzioni # 16990
- Aggiungi l'assembly System.ServiceModel.Security. Correzioni # 20108
- Rimossi NET_2_1 blocchi condizionali da FileInfo. Correzioni # 19862
- Compilatore C #:
- Aggiorna codegen per i carichi booleani. Correzioni # 21685
- Una classe base efficace può includere tipi ereditati. Correzioni # 21390
- Gestire la registrazione del punto di ripresa duplicato. Correzioni # 21387
- Gli argomenti possono essere vuoti quando si riportano argomenti params mancanti. Correzioni # 21215
- Analisi del flusso degli argomenti spostati. Correzioni # 20983
- Esegui il nuovo inizializzatore attendi i controlli solo in contesto asincrono. Correzioni # 20614 [system.data] Espressione numerica di espressione utilizzando la cultura invariante. Correzioni # 20582
- L'analisi della raggiungibilità dovrebbe ignorare le dichiarazioni delle variabili locali. Correzioni # 20603
- Verifica le dipendenze mancanti dei tipi di contenitore. Correzioni # 20382
- Risolvi l'espressione dell'evento durante il test dell'espressione del lato sinistro. Correzioni # 20493
- Analisi del flusso di espressioni binarie che non utilizzano operatori logici. Correzioni # 20515
- MSBuild:
- Aggiungi framework 4.5.1. Correzioni # 20827
- Condizioni di analisi con riferimenti di proprietà. Correzioni # 20634
- Implementa le funzioni di proprietà usando la sintassi del costruttore. Correzioni # 12999
- Mono debugger:
- Evita di eliminare le richieste di eventi se fanno riferimento a un assembly che è stato scaricato. Invece, rimuovere il riferimento all'assembly dalla richiesta dell'evento in modo che rimanga attivo. Correzioni # 9924.
Novità nella versione 3.6.0:
- In evidenza:
- I contatori delle prestazioni di runtime sono stati integrati nel profiler consentendo di fornire le informazioni del contatore delle prestazioni agli strumenti di profilazione e in particolare al prossimo profiler di Xamarin.
- Il profiler ora produce i backtrace per la modalità statistica. La modalità di tracciamento del profiler ora funziona su ARM.
- Ora distribuiamo nuget su mac.
- Debugger:
- Il debugger ora supporta intervalli di righe e colonne. pdb2mdb lo supporta. Nota: il resto della nostra toolchain deve ancora essere aggiornato.
- Il debugger ora supporta la modifica della linea corrente nel frame superiore.
- Numerose correzioni di bug e miglioramenti delle prestazioni.
- Il debugger ora supporta la lettura di semplici proprietà senza chiamare il loro getter, questo è fatto avendo un interprete IL leggero per piccoli pezzi di codice. Ciò consente di ispezionare più proprietà mentre il processo è completamente interrotto e senza dover riprendere temporaneamente l'esecuzione della destinazione per eseguire il codice di proprietà.
- Aggiunta modalità di risposta bufferizzata per migliorare l'efficienza della rete su collegamenti ad alta latenza come USB.
- Raccolta dati obsoleti:
- Il bridge GC ha ottenuto un sacco di prestazioni. Ora ci sono due nuove modalità che possono migliorare significativamente alcuni carichi di lavoro.
- Librerie di classi:
- Più miglioramenti dello stack http: sono state risolte alcune perdite nello stack, oltre a risolvere alcuni bug di vecchia data che coinvolgono operazioni asincrone e proxy. Abbiamo introdotto un harness test più completo per garantire che quei bug non tornino in superficie.
- System.IO.Compression è ora implementato
- System.Security.Claims è ora implementato. Si trova nell'assembly di sistema (già esistente nello stack Identity, ma ora tracciamo la nuova home dall'API .NET 4.5).
- Performance:
- Rielaborato per bloccare un blocco attivo nella ricerca del metodo.
- Utilizza un blocco a grana fine invece di un grande blocco attivo.
- Migliore hashing di alcuni elementi interni di runtime per evitare alcuni rallentamenti dell'angolo con generici.
- Profiler:
- Il profiler ora è in grado di produrre backtrace in modalità statistica.
- Aggiunto flushing periodico che dovrebbe aiutare gli utenti interattivi. Ciò significa che la profilatura invierà i dati sulla profilazione anche se l'applicazione non sta attualmente inviando dati (questo è lì per supportare l'imminente nuova interfaccia utente del profiler).
- Ora raccoglie e riporta informazioni sul contatore delle prestazioni. Vedi la pagina man di mprof-report.
- Varie:
- Risolto il problema della gestione del volatile. Prefisso CIL.
- Ora distribuiamo lo strumento ikdasm di IKVM. Questo è un disassemblatore affidabile che non ha la limitazione dei monodis di richiedere un set completo di assiemi compatibili per lo smontaggio. Ciò disassembla anche i file che non hanno le loro dipendenze disponibili.
- EqualityComparer ottimizzato per altri tipi.
- Mono.Unix.Native.Syscall.getxattr () ora può restituire Errno.ENOATTR su OS X.
- La nostra implementazione di msbuild ora può creare Project K e Roslyn
- EqualityComparer ottimizzato per altri tipi.
- Correzioni di bug:
- Compilatore C #:
- [mcs] L'analisi del flusso di espressioni binarie nidificate all'interno di metodi anonimi mancava sul reset sinistro / destro. Correzioni # 18417
- [mcs] Corregge la logica di selettività per i parametri di default vs param. Correzioni # 19754
- [mcs] Analisi del flusso di espressioni binarie che non utilizzano operatori logici. Correzioni # 20086
- [mcs] Emette informazioni sulla versione non gestite da AssemblyFileVersion. Correzioni # 20057
- [mcs] Correggi il tipo di conversione dell'albero dell'espressione per i confronti dell'uguaglianza tra enumerati. Correzioni # 19938
- [mcs] Segnala errore quando viene fornito l'argomento con nome per parametro param ma non vengono forniti tutti i parametri formali. Correzioni # 19878
- [mcs] Unifica la ricerca di etichette raggiungibili. Correzioni # 19887
- [mcs] Non rilasciare la copia dell'indirizzo del campo prima di utilizzarla. Correzioni # 20040
- [mcs] Correggere la propagazione della segnalazione degli errori per le istruzioni del ciclo. Correzioni # 20034
- [mcs] Emette un codice migliore per l'operatore null coalescing con tipo restituito nullable. Correzioni # 19702
- [mcs] Aggiungi conversione di array esplicita che coinvolge parametri di tipo. Correzioni # 18474
- Altre correzioni di bug:
- Aggiungi l'assembly System.ServiceModel.Security. Correzioni # 20108
- [sdb] Evita di cancellare le richieste di eventi se fanno riferimento a un assembly che è stato scaricato. Invece, rimuovere il riferimento all'assembly dalla richiesta dell'evento in modo che rimanga attivo. Correzioni # 19924
- Rinomina configure.in - & gt; configure.ac. Basato su PR # 976
- [Sistema] Correggere l'analisi degli indirizzi IPv6. Correzioni # 18574
- [Http] Operazioni asincrone concatenate. Correzioni # 19161
- [corlib] Aggiungi il formato guida esadecimale che analizza con gli spazi bianchi. Correzioni # 19915
- [System.Net.Http] Analizzare productinfo come intestazioni con la versione mancante. Correzioni # 19881
- [Sistema] Lancia IOE in più casi quando si ha a che fare con un oggetto Processo non valido. Correzioni # 19864
- [bcl] Fix Process.PrivateMemorySize64 su osx, ora restituiamo task_baic_info.resident_size. Correzioni # 19738
- Pulisci l'utilizzo delle strutture FILETIME, evita di accedervi come gint64 poiché ciò porterebbe a problemi di allineamento. Correzioni # 19739
- [sdb] Evita lo straripamento dello stack quando un vtype in scatola fa riferimento in modo ricorsivo a se stesso utilizzando i campi. Correzioni # 18914
- [profiler] Filtra più tipi di eventi in mprof-report in base al tempo. Correzioni # 11904
- [profiler] In mprof-report risolve la gestione del filtro temporale a partire da 0. Correzioni # 11904
- [http] Converti i dati di output della stringa usando l'intestazione BOM quando disponibile. Correzioni # 19667
- [system.net.http] Correggere la codifica di Content-MD5. Basato su patch di nberardi. Correzioni # 19644
- [sdb] Evita di posizionare i punti di sequenza implicita agli offset in cui lo stack IL è vuoto quando si usano punti di sequenza basati su file di simboli. Correzioni # 13640
- [eglib] Rimuove il codice test-glib, non è più necessario mantenere la compatibilità con glib. Correzioni # 19638
- [corlib] Risolvi l'eccezione di inizializzazione utente quando si verifica l'inizializzazione pigra. Correzioni # 19564
- [mcs] Non segnalare errori di implementazione dell'interfaccia per implementazioni opzionali. Correzioni # 18030
- [mcs] Include più categorie unicode nel carattere della parte identificatore di analisi. Correzioni # 18229
- [mcs] Emetti valore costante nullo per i parametri predefiniti di tipi generici per indicare il valore mancante. Correzioni # 19033
- [mcs] Digita la conversione dei parametri che coinvolge i parametri di tipo utilizzando le regole di dipendenza. Correzioni # 18473
- [mcs] Emetti tutti i metodi come membri nello stesso ordine in cui appaiono nel codice sorgente. Correzioni # 19509
- [mcs] Converti le costanti enum sottostanti al loro tipo sottostante. Correzioni # 18866
- [mcs] Non applicare il tipo di riferimento è l'ottimizzazione per le espressioni dinamiche. Correzioni # 19423
- [mcs] Gonfia il metodo anonymymous con argomenti di tipo corretto quando async richiede il sollevamento in genitore. Correzioni # 19176
- [mcs] Risolto utilizzando la verifica della relazione di tipo per i parametri di tipo. Correzioni # 18639
- [mcs] La memorizzazione nella cache dei tipi di argomenti del tipo non dovrebbe avvenire in condizioni di errore. Correzioni # 18282
- [linq] Usa la ricerca con hash anziché la scansione lineare per le chiavi di gruppo. Correzioni # 18673
- [mcs] I membri privati possono ancora avere membri di base quando si trovano in tipi annidati. Correzioni # 19378
- [mcs] Rendi segnalazione di eventi inutilizzati in modo coerente con csc. Correzioni # 19095
- [mcs] Aggiungi riferimento al piano principale solo quando questo non viene acquisito direttamente. Correzioni # 19077
- [mcs] Risolve la risoluzione ricorsiva di crefs. Correzioni # 18511
- [mcs] Aggiunta di test di unità per # 18511
- [mcs] Emette l'inizializzatore del campo con l'albero delle espressioni in tutti i costruttori utente. Correzioni # 18308
- [dlr] Emette il codice corretto per convertire i tipi nullable. Correzioni 19500
- Durata:
- [runtime] Correggere la decodifica di matrici frastagliate in attributi personalizzati. Correzioni # 19825
- [runtime] Evita di chiamare mono_thread_current () in sgen_thread_detach (), dato che può costruire oggetti. Correzioni # 19755
- [runtime] Evita di passare comandi a lldb usando python api, non sembra funzionare bene nei file di script. Correzioni # 19732
- [runtime] Fix Process.TotalProcessorTime diventa negativo. Correzioni # 19739
- [runtime] Pulisci un blocco #ifdef
- [jit] Rende indirette le chiamate generiche dei ctor fatte con i metodi gsharedvt, poiché non possono essere patchate. Correzioni # 18634
- [jit] Correzione del ripensamento delle eccezioni in modalità thumb. Correzioni # 18448
- [jit] Risolve la ricerca della versione AOT di Interlocked.Exchange in modalità full-aot. Correzioni [# 19070] (https://bugzilla.xamarin.com/show_bug.cgi?id=19070)
- [jit] Correggere una parte di codice irraggiungibile in mini_emit_memset (). Correzioni # 19083
- [llvm] Risolve alcuni problemi con long su piattaforme a 32 bit. Correzioni # 18925
- [runtime] Migliora l'hashing di MONO_TYPE_VAR / MONO_TYPE_MVAR. Correzioni # 18880
- [interpreter] Disattiva l'invocazione di una chiamata veloce usando i delegati di methodinfo a causa della limitazione aot. Correzioni # 18688
- [runtime] Migliora l'hashing di MONO_TYPE_VAR / MONO_TYPE_MVAR. Correzioni # 18880
- [sgen] Ripristina i puntatori di pericolo nel gestore del segnale di sospensione. Correzioni # 15695
- Librerie principali:
- [corlib] Correggi l'ulteriore switch di contesto in attesa quando il SynchronizationContext personalizzato non cambia. Correzioni # 17878
- [corlib] Aggiungi SortVersion. Correzioni # 18770
- [corlib] Crea anche il thread NumberFormatter invariante perché ha uno stato statico interno. Correzioni # 18599
- [corlib] Filtra tutti i caratteri dei segni da destra a sinistra. Correzioni # 18522
- [corlib] Risolto bug localizzato di caricamento delle risorse. Correzioni # 14987
- [corlib] Ottimizza EqualityComparer per i tipi di valore comuni. Correzioni # 18400
- [sistema] Non terminare la lettura della risposta sul valore del cookie errato. Correzioni # 18868
- L'indicizzatore di DataRowView non deve essere interrotto & quot; completato & quot; righe aggiunte (qualsiasi riga diversa da quella di NewNew). Correzioni # 18898 (Novell # 595899)
- [corlib] Rinvia la logica di istanza di TypeInfo in DefinedTypes. Correzioni # 19082
- [Mono.Security] Invia tutti i certificati (eccetto la radice) da un messaggio 'Server certificate' di SSL / TLS (7.4.2 in RFC2246). Correzioni # 16974
- [System.Core] Non incrementa automaticamente quando si taglia l'hashset. Correzioni # 18687
- [system.net.http] Chiudere lo slot del punto di servizio sul dispose esplicito. Correzioni # 18848
- [Correggi] System.Runtime.Caching.MemoryCache non onora SlidingExpiration. Correzioni # 18213
- [System.Xml.Linq] Corregge il blocco XNamespace.GetName per non essere razionale. Correzioni # 18564
- [System.Net.Http] Analisi degli intervalli di byte incompleti. Correzioni # 18494
- [System.ServiceModel.Web] Corregge JsonQueryStringConverter.ConvertValueToString per funzionare quando è in esecuzione su qualsiasi cultura. Correzioni # 18437
- System.Runtime.Caching.MemoryCache non ordina correttamente gli articoli in scadenza. Correzioni # 18235
- ConcurrentQueue.TryPeek () non è thread-safe. Correzioni [# 18182] (https://bugzilla.xamarin.com/show_bug.cgi?id=18182)
- Sistema / PCL: implementa HttpWebRequest.SupportsCookieContainer, WebRequest.CreateHttp. Correzioni # 18378
- [interpreter] Implementa un'espressione di citazione semplice. Correzioni # 18248
- mdbrebase: usa File.Move invece di FileInfo.MoveTo. Correzioni # 18361
- Aggiungi test unitario per il bug Novell # 497562
- System.Runtime.MemoryCache.GetValues () lancia LockRecursionException con elementi scaduti - GetValues () chiama MemoryCacheContainer.GetEntry () che ora ha un EnterUpgradeableReadLock necessario per ExpireIfNeeded () - Aggiunto un caso di test. Correzioni # 18245
- [Sys.Data] Correggi il bug Novell # 519648
- [Sys.Data] Aggiungi test unitari per il bug Novell # 519648
- [System.XML] Corregge la gestione dello spazio nel valore XSL degli elementi. Correzioni # 18113
- [System.XML] Corretto il bug del set-nodo XSL. Correzioni # 18114
- [System.XML] Correggere la gestione delle variabili globali negli XSL. Correzioni # 18118
- [System.XML] Non ripristinare lo schema del documento durante la lettura di un elemento. Correzioni # 9541
- Windows.Forms:
- Correggi setter di TableLayoutPanel.LayoutSettings genera un'eccezione indesiderata. Correzioni Novell # 497562
- [MWF] Correggi l'opacità del modulo. Correzioni # 19856
- [MWF] Correggi l'elenco ComboBox per non visualizzare fuori schermo. Correzioni # 15462
- [MWF] Correggi schermo.FromRectangle. Correzioni # 8271
- [MWF] Implementa il supporto multi-display su Linux. Correzioni # 325669
- [MWF] Cancella currentCell prima dello smaltimento. Correzioni # 19567
- [MWF] Test unitario per il bug di DataGridView. Correzioni # 19567
- [MWF] Non provare a rimuovere il controllo non figlio. Correzioni # 19818
- [MWF] Aggiungi test unitario per # 19818
- [MWF] Corregge il comportamento di AutoSize di FlowLayoutPanel. Correzioni # 2912
- [MWF] Correzione del blocco da controllo null in ContainerControl. Correzioni # 10537
- [MWF] Corretto il bug di layout TableLayoutPanel. Correzioni # 8907
- [MWF] Correggere il clipping dell'ultima riga del menu a discesa. Correzioni # 2462
- [MWF] Rilascia l'acquisizione facendo clic su LinkLabel. Correzioni # 2787
- [MWF] Correggi posizione del testo sui pulsanti. Correzioni # 463149
- [MWF] Correzione di arresto anomalo quando si imposta Row.Height. Correzioni # 2394
- [MWF] Test unitario per bug Row.Height / MinimumHeight. Correzioni # 2394
- [MWF] Corregge le dimensioni dell'area di testo sulla finestra di messaggio. Correzioni # 2090
- [MWF] Risolto il problema se l'applicazione di origine degli appunti si chiudeva. Correzioni # 674098
- [Stampa] Migliora le impostazioni della stampante segnalate. Correzioni # 602934
- [Stampa] Aggiungi unit test per il bug Novell # 602934
Novità nella versione 3.2.6:
- Correzioni di bug:
- Aggiungi API System.Runtime.InteropServices.WindowsRuntime e facciate PCL
- Risolve il problema nella gestione di MSBuild di & quot; Resi & quot; in . Ciò riguarda più pacchetti Microsoft.Bcl.Build NuGet
- Implementare il batching delle attività in MSBuild. Correzioni BXC # 16403
- Aggiungi / Librerie a llvm percorso di ricerca su OSX, questo rende --llvm funziona in più casi
Novità nella versione 3.0.1 Beta:
- C # Async compiler
- Compilatore C # unificato per tutti i profili
- 4.5 Profilo API asincrono
- Nuovi stack Microsoft Open Sourced di Microsoft:
- ASP.NET MVC 4
- Pagine Web ASP.NET
- Entity Framework
- Razor
- System.Json (sostituisce il nostro)
- Nuovo Garbage Collector ad alte prestazioni (SGen - con molti miglioramenti in termini di prestazioni e scalabilità)
- Metrica dei miglioramenti di runtime e libreria di classi.
Novità nella versione 2.10.8 / 3.0 Beta:
- Mono ora ha un compilatore C # 5.0 completo con supporto per la programmazione asincrona
- La valutazione ora può compilare i tipi
- API istanza
- Shell interattiva C #
- 4.5 Profilo
- Nuovi stack Microsoft Open Source
- Garbage Collector
- Ottimizzazioni di runtime
- ASP.NET
- CodeContracts
- Mono.Data.Sqlite
- Libreria C5
Novità nella versione 2.10.8:
- Questa versione aggiorna la Libreria parallela attività.
- SQLiteConnection ora può impostare la modalità di threading.
- Esiste un protocollo di debugger migliorato.
- È stato aggiunto il supporto di base per MSBuild 4.0.
- NuGet ora funziona su Mono.
- Phalanger 3.0 ora funziona con Mono.
- Supporto per alcune librerie di Azure.
- Supporto per raggruppare i profiler in un file binario statico.
- Ora il profiler può registrare i suoi dati su qualsiasi descrittore di file.
- SGen ora ha il supporto nativo per i sistemi di oggetti che implementano ToggleRefs.
- Profilo mobile ora contiene System.IO.MemoryMappedFiles.
- PerformanceCounters per le statistiche JIT
- Conteggio CPU Android. HashSet può ora essere serializzato.
I commenti non trovato