posts - 504, comments - 1656, trackbacks - 139

IL inlining ... un sogno che diventa realtà

L'avevo chiesto durante la alpha di Whidbey e chissà se ci penseranno per Orcas. Nel frattempo qualcuno l'ha fatto!

È possibile mischiare codice C# (o vb.net) con IL. Non è il massimo della comodità ma lo ritengo un buon strumento per giocare con IL.

Print | posted on martedì 29 marzo 2005 14.52 | Filed Under [ .NET [Italiano] ]

Feedback

Gravatar

# re: IL inlining ... un sogno che diventa realtà

IL viene da in-line, no? :-)
29/03/2005 15.12 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Serge Lidin e Jim Hogg sull'IL inlining (http://www.gotdotnet.com/Community/MessageBoard/Thread.aspx?id=76937)

Serge Lidin (27/02/03)
"AFAIK, there are no plans to implement IL Assembler inlining in such languages as C#, VB.NET or MC++. There were talks about it, and even some customers queries, but I haven't heard anything solid. Then again, I might just not know."

Jim Hogg (27/02/03)
"Inline IL in compilers? Highly unlikely! The aim for languages like VB and C# is ease of use and fast development. You might think then that C++ might be a last hope of seeing it? Last time I talked with the C++ team on this topic, the answer was a definite "no". A C++ compiler is already a huge undertaking (fairly complex language to parse; plus templates!). Adding inline IL is adding another parser into an already complex stew was a step too far. Might other languages support this? Again, I've heard of no-one who wants to 'step up to the plate'"
09/04/2005 23.58 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Eh Adrian, capisco le loro perplessità nel voler evitare panico da complessità in dotnet dopo le belle scottature passate.
Il fatto è che un tool di quel genere è veramente didattico e fa capire tante cose... forse però MS non ci tiene ad avere esperti di IL ;-)
14/04/2005 0.10 | Raffaele Rialdi
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Ho trovato per caso questo suggerimento: http://lab.msdn.microsoft.com/ProductFeedback/viewFeedback.aspx?feedbackId=FDBK20847 e mi sono ricordato del tuo post.
La risposta MS, in linea con quello che diceva Jim Hogg (vedi l'altro commento): "We decided not to support this not to make the language more complex".
01/05/2005 11.58 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

sad but true :-S
03/05/2005 17.57 | Raffaele Rialdi
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Ho scoperto adesso che l'enum System.Runtime.CompilerServices.MethodCodeType comprende anche il valore IL cioè, il framework in teoria sarebbe "preparato" per una decorazione di questo tipo:

[MethodImpl(MethodCodeType = MethodCodeType.IL)]
static void DoSomething()
{
// some IL code
}

Chissà se altri compilatori lo usino... La documentazione MSDN per questo valore dell'enum dice: "Specifies that the method implementation is in Microsoft intermediate language (MSIL)". L'ho interpretata io male?
24/05/2005 9.14 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

a partire dalla versione 2.0, la coppia di classi DynamicMethod/ILGenerator potrebbe in qualche modo sostituire l'inlining dell'IL
24/01/2007 14.58 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

un'interessante proposta di Paolo Molaro: http://www.advogato.org/person/lupus/diary/25.html
19/02/2008 7.29 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Massimiliano Mantione mostra come con solo 124 righe di codice si possa estendere il compilatore C# per Mono per avere inline IL: http://primates.ximian.com/~massi/blog/archive/2008/Feb-14.html
19/02/2008 7.46 | Adrian Florea
Gravatar

# re: IL inlining ... un sogno che diventa realtà

Grazie Adrian per i link! Speriamo che anche il gruppo di C#, con la scusa delle modifiche per il DLR, permettano una implementazione simile.
19/02/2008 11.52 | Raffaele Rialdi

Post Comment

Title  
Name  
Email
Url
Comment   
Please add 1 and 6 and type the answer here:

Powered by: