[From nobody Fri Nov 16 20:46:22 2007 Received: from NA-EXMSG-C112.redmond.corp.microsoft.com ([157.54.62.35]) by TK5-EXHUB-C102.redmond.corp.microsoft.com ([157.54.70.72]) with mapi; Mon, 12 Nov 2007 17:03:29 -0800 From: Tomas Matousek <Tomas.Matousek@microsoft.com> To: Rowan Code Reviewers <rowancr@microsoft.com> Date: Mon, 12 Nov 2007 17:03:27 -0800 Subject: Code Review: Ruby Scopes and Member Lookup Thread-Topic: Code Review: Ruby Scopes and Member Lookup Thread-Index: AcglkP/xeyf19kp1RZSzfjZ4ZwjNXQ== Message-ID: <F58FE69873E2D5459B72C347DE158241184CAF1041@NA-EXMSG-C112.redmond.corp.microsoft.com> Accept-Language: en-US Content-Language: en-US X-MS-Exchange-Organization-AuthAs: Internal X-MS-Exchange-Organization-AuthMechanism: 04 X-MS-Exchange-Organization-AuthSource: TK5-EXHUB-C102.redmond.corp.microsoft.com X-MS-Has-Attach: yes X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/related; boundary="_004_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_"; type="multipart/alternative" MIME-Version: 1.0 --_004_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_ Content-Type: multipart/alternative; boundary="_000_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_" --_000_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable tfpt review /shelveset:MemberLookup26;tomat F2F reviewed by Jomes and Dino. 1 ) Introduces RubyScope - a local runtime scope to be created for methods,= class/module declarations and blocks (though this shelveset doesn't create= scope for blocks yet). RubyScope holds on various flags and self object. I= t's lexically chained. Added LocalScope to DLR - it's an empty for now, wil= l implement local scopes in DLR this or next week. LocalScope is available = on CodeContext. There are also few hacks on CodeContext that will be gone a= fter LocalScopes will be finished. 2) Fixes Ruby method definitions, class variable access, constant access an= d method visibility settings - to use lexical lookup via scopes. 3) Refactors class structure and method tables to match Ruby semantics. S(w= ) means singleton/virtual class of w; x and y are instances of C, y has a s= ingleton class defined. Contexts.gif 4) Fixes method lookup: follow one s-arrow and then b-arrows until Object i= s reached. 5) Unifies methods implementing member enumeration. Implements reflection m= ethods on Module (e.g. get_const, set_const, instance_methods, ...). 6) Implements undef and alias keywords (alias doesn't work for globals yet,= just for methods). 7) Adds support for method removal and undef, including CLR methods removal= (though CLR method removal is not implemented completely). Added attribute= (RemoveMethodAttribute) that enables to remove a CLR method declaratively = in an extension class in library. 8) Refactors and fixes CLR method, field and event lookup. 9) Refactors Ruby library attributes: [RubyClass], [RubyModule], [Includes]= . Removed extension attributes as they are not needed any more. Added Copy = flag on IncludesAttribute that will copy members of included module into th= e including class instead of adding the module into the including class's m= ixin list. This enables to transparently hoist RubyArray and RubyHash metho= ds that are implemented on IList and IDictionary interfaces to these interf= aces' extensions. 10) Refactors CLR interface interop. CLR interfaces are treated as empty Ru= by modules. A CLR type that implements an interface includes it in its mixi= n list. They can be opened in Ruby code and methods could be added. Interfa= ces can be opened also from library code, in fact several interfaces (IEnum= erable, IList, Icollection, IDictionary). 11) Refactors ClassInitGenerator, adapts it to the new attributes. Tomas --_000_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr= osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:= //www.w3.org/TR/REC-html40"> <head> <meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"= > <meta name=3D"Generator" content=3D"Microsoft Word 12 (filtered medium)"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--><style> <!-- /* Font Definitions */ @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4;} @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:11.0pt; font-family:"Calibri","sans-serif";} a:link, span.MsoHyperlink {mso-style-priority:99; color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {mso-style-priority:99; color:purple; text-decoration:underline;} p.MsoAcetate, li.MsoAcetate, div.MsoAcetate {mso-style-priority:99; mso-style-link:"Balloon Text Char"; margin:0in; margin-bottom:.0001pt; font-size:8.0pt; font-family:"Tahoma","sans-serif";} span.BalloonTextChar {mso-style-name:"Balloon Text Char"; mso-style-priority:99; mso-style-link:"Balloon Text"; font-family:"Tahoma","sans-serif";} span.EmailStyle19 {mso-style-type:personal-compose; font-family:"Calibri","sans-serif"; color:windowtext;} .MsoChpDefault {mso-style-type:export-only; font-size:10.0pt;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.0in 1.0in 1.0in;} div.Section1 {page:Section1;} --> </style><!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"2050" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body lang=3D"EN-US" link=3D"blue" vlink=3D"purple"> <div class=3D"Section1"> <p class=3D"MsoNormal">tfpt review /shelveset:MemberLookup26;tomat<o:p></o:= p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">F2F reviewed by Jomes and Dino.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">1 ) Introduces RubyScope &#8211; a local runtime sco= pe to be created for methods, class/module declarations and blocks (though = this shelveset doesn&#8217;t create scope for blocks yet). RubyScope holds = on various flags and self object. It&#8216;s lexically chained. Added LocalScope to DLR &#8211; it&#8217;s an empty for now, will= implement local scopes in DLR this or next week. LocalScope is available o= n CodeContext. There are also few hacks on CodeContext that will be gone af= ter LocalScopes will be finished.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">2) Fixes Ruby method definitions, class variable acc= ess, constant access and method visibility settings &#8211; to use lexical = lookup via scopes. <o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">3) Refactors class structure and method tables to ma= tch Ruby semantics. S(w) means singleton/virtual class of w; x and y are in= stances of C, y has a singleton class defined.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal"><img width=3D"582" height=3D"373" id=3D"Picture_x002= 0_0" src=3D"cid:image002.jpg@01C8254D.F1CAD310" alt=3D"Contexts.gif"><o:p><= /o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">4) Fixes method lookup: follow one s-arrow and then = b-arrows until Object is reached.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">5) Unifies methods implementing member enumeration. = Implements reflection methods on Module (e.g. get_const, set_const, instanc= e_methods, &#8230;). <o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">6) Implements undef and alias keywords (alias doesn&= #8217;t work for globals yet, just for methods). <o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">7) Adds support for method removal and undef, includ= ing CLR methods removal (though CLR method removal is not implemented compl= etely). Added attribute (RemoveMethodAttribute) that enables to remove a CL= R method declaratively in an extension class in library.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">8) Refactors and fixes CLR method, field and event l= ookup. <o:p> </o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">9) Refactors Ruby library attributes: [RubyClass], [= RubyModule], [Includes]. Removed extension attributes as they are not neede= d any more. Added Copy flag on IncludesAttribute that will copy members of = included module into the including class instead of adding the module into the including class&#8217;s mixin = list. This enables to transparently hoist RubyArray and RubyHash methods th= at are implemented on IList and IDictionary interfaces to these interfaces&= #8217; extensions.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">10) Refactors CLR interface interop. CLR interfaces = are treated as empty Ruby modules. A CLR type that implements an interface = includes it in its mixin list. They can be opened in Ruby code and methods = could be added. Interfaces can be opened also from library code, in fact several interfaces (IEnumerable, IL= ist, Icollection, IDictionary).<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">11) Refactors ClassInitGenerator, adapts it to the n= ew attributes.<o:p></o:p></p> <p class=3D"MsoNormal"><o:p>&nbsp;</o:p></p> <p class=3D"MsoNormal">Tomas<o:p></o:p></p> </div> </body> </html> --_000_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_-- --_004_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_ Content-Type: image/jpeg; name="image002.jpg" Content-Description: image002.jpg Content-Disposition: inline; filename="image002.jpg"; size=23388; creation-date="Mon, 12 Nov 2007 17:03:28 GMT"; modification-date="Mon, 12 Nov 2007 17:03:28 GMT" Content-ID: <image002.jpg@01C8254D.F1CAD310> Content-Transfer-Encoding: base64 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 njH9a26KKKKKKKKKKKKKK//Z --_004_F58FE69873E2D5459B72C347DE158241184CAF1041NAEXMSGC112re_-- ]