LanguageProvider跑哪里去了?

当然,我现在知道答案了。只是这资料太难找了吧,逼人加入DLR或者IronPython/IronRuby的邮件列表么。不,或许装上 Team Explorer 2008更现实些。

事情是这样的:在比较老版本的DLR里有一组hosting API,其中有一个相当重要的类,Microsoft.Scripting.Hosting.LanguageProvider。这个类在稍微早一些时候的DLR例子里很常见,但在新的DLR里根本没这个类。于是它跑哪里去了呢,替代者是谁?

找了半天终于在MSDN某blog上看到了相关消息:
荒井省三のBlog:簡単な言語の作り方2
引用
  • LanguageProviderが廃止され、LanguageContextに統一された。
  • 上記に伴って独自のScriptEngineではなく、Microsoft.Scripting.Hosting.ScriptEngineを使用するようになった。

重点就是LanguageProvider被统一到LanguageContext里了,而语言对ScriptEngine的实现可以继承自DLR的ScriptEngine。
很好。但是这种资料也太难找了(又抱怨了一次 = =)。在IronPython的邮件列表里搜LanguageProvider只能搜到很老的一些例子,却搜不到关于它被整合到LanguageContext的消息。
有好些零星的这些变更信息我都是在不同的地方看到的,例如说DLR里Ast.CodeBlock改名为LambdaExpression是在 Martin Maly的blog上读到的,而DLR的核心部分从Microsoft.Scripting.dll迁移到Microsoft.Scripting.Core.dll是在IronRuby的SVN repository log上读到的…… John Lam的blog本来也是个重要的信息来源,但要用代理才上得了所以不经常上

果然是如同Charles Nutter所说,IronRuby(以及DLR)虽然使用了MS-PL,在开源上进了一大步,但是还是不够透明,文档什么的都不放给外部,让别人很难跟踪发展的进度。不过也只能忍了,谁叫我非要用DLR的 = =

P.S. 啊啊啊,被日期“骗”了。在CodePlex上,IronPython的source code一栏里,Beta 2的Change Set号码(33171)明明比32648大,但是Beta 2那栏写着的更新日期是 May 3而32648是April 3,我眼花了一整个星期把May看成 Mar以为Beta 2比32648老 T T
想找块豆腐去撞一下了 = =

你可能感兴趣的:(SVN,Blog,Microsoft)