- 浏览: 3015951 次
- 性别:
- 来自: 海外
文章分类
- 全部博客 (430)
- Programming Languages (23)
- Compiler (20)
- Virtual Machine (57)
- Garbage Collection (4)
- HotSpot VM (26)
- Mono (2)
- SSCLI Rotor (1)
- Harmony (0)
- DLR (19)
- Ruby (28)
- C# (38)
- F# (3)
- Haskell (0)
- Scheme (1)
- Regular Expression (5)
- Python (4)
- ECMAScript (2)
- JavaScript (18)
- ActionScript (7)
- Squirrel (2)
- C (6)
- C++ (10)
- D (2)
- .NET (13)
- Java (86)
- Scala (1)
- Groovy (3)
- Optimization (6)
- Data Structure and Algorithm (3)
- Books (4)
- WPF (1)
- Game Engines (7)
- 吉里吉里 (12)
- UML (1)
- Reverse Engineering (11)
- NSIS (4)
- Utilities (3)
- Design Patterns (1)
- Visual Studio (9)
- Windows 7 (3)
- x86 Assembler (1)
- Android (2)
- School Assignment / Test (6)
- Anti-virus (1)
- REST (1)
- Profiling (1)
- misc (39)
- NetOA (12)
- rant (6)
- anime (5)
- Links (12)
- CLR (7)
- GC (1)
- OpenJDK (2)
- JVM (4)
- KVM (0)
- Rhino (1)
- LINQ (2)
- JScript (0)
- Nashorn (0)
- Dalvik (1)
- DTrace (0)
- LLVM (0)
- MSIL (0)
最新评论
-
mldxs:
虽然很多还是看不懂,写的很好!
虚拟机随谈(一):解释器,树遍历解释器,基于栈与基于寄存器,大杂烩 -
HanyuKing:
Java的多维数组 -
funnyone:
Java 8的default method与method resolution -
ljs_nogard:
Xamarin workbook - .Net Core 中不 ...
LINQ的恶搞…… -
txm119161336:
allocatestlye1 顺序为 // Fields o ...
最近做的两次Java/JVM分享的概要
下载链接:http://www.codeplex.com/IronPython/Release/ProjectReleases.aspx?ReleaseId=17404
Release Notes: [url]http://www.codeplex.com/IronPython/Wiki/View.aspx?title=v2.0 Release Candidate 1 Release Notes&referringTitle=Home[/url]
这次的RC1最大的一个特征就是在MSI安装包里提供了Ngen安装的程序集的选项。把安装的程序集Ngen过之后,程序启动速度会大幅提升,代价是Ngen出来的二进制文件会占据一定空间。(“一定”还是太保守了。Ngen之后的IronPython+标准库+DLR居然会吃掉40M+的内存。天啊!)
另外,还是为了解决DLR与.NET Framework 3.5的System.Core.dll的冲突,在RC1里新增了一个Microsoft.Scripting.ExtensionAttribute.dll程序集,里面只有一个ExtensionAttribute类;只要不同时引用这个程序集合System.Core.dll,应该就不会发生冲突(因为随着IronPython 2.0 RC1发布的DLR里的System.*命名空间全都改成Microsoft.*了,所以不会冲突)。
对DLR的关注者而言有个好消息,那就是已经几个月没跟随IronPython一起发布的ToyScript在这次的RC1里终于回来了。
进入到RC阶段,IronPython 2.0系列的对外API大致进入了稳定阶段(也就是说Beta5之后就不会有大的API变化,只会有bugfix)。但这不代表其底层所使用的内部API到达了稳定阶段——至少,DLR的API还在不停的调整,至少LINQv2的API还在调整,Old-*系的老类/接口也尚未清理完。可以预见,正式发布的IronPython 2.0中的DLR也不会达到API稳定的阶段。我的猜测是DLR的开发进度(deadline)或许会跟C# 4同步,因为C# 4的动态特性依赖于DLR。
===========================================================================
顺便说说最近DLR里的一些变化。我最高兴的一点是文档明显增加了。
许多优化很明显是为了性能改善而做的努力,其中有两个有趣的地方:尽量使用普通for而减少使用foreach来访问数组和实现了IList<T>接口的容器、尽量减少数据所占的空间。
使用普通的for循环是为了减少创建enumerator(也就是iterator)的个数;实际效果看,enumerator对象个数确实是能减少,能减轻GC的压力,但在GC以外这个做法能有多少改善呢?CLR的优化还真是有待进一步提升。
减少数据占用的空间主要是通过把成员变量提升为静态变量,或者使用更小的类型来装数据(例如把ExpressionType跟NodeFlags放在一个Int32里),或者干脆把作用不大的成员变量去掉。
一个东西开发到一定阶段之后,为了性能考虑,代码果然是不得不变丑啊……||
Action方面,原本叫做Rule<T>的类改名为CallSiteRule<T>了,更显著的变化是它的可见性从public变为了internal,而其中一些成员(_parameters、_returnLabel)变成了静态只读成员(Parameters、ReturnLabel),于是原本每个实例都会带着的一些数据变为由每个泛型类型实例带着。CallSiteBinder<T>.Bind()也不再返回Rule<T>,而是直接返回一个“测试+执行”的Expression。
AST方面,有更多类型从Statement转变为Expression,例如Block->BlockExpression、EmptyStatement->EmptyExpression、LoopStatement->LoopExpression、SwitchStatement->SwitchExpression、ThrowStatement->ThrowExpression、TryStatement->TryExpression。
Variable相关的好几个类型也在不停的调整,例如说把VariableExpression合并到ParameterExpression里去之类。
控制流跳转的节点(break、continue、return、goto)合并为GotoExpression。这点比较诡异,没看出具体的好处是什么。而且ReturnStatement为什么还在呢……
另外,早些时候用于标记代码位置信息的SourceLocation和SourceSpan两个类都从Microsoft.Scripting.dll移回到了Microsoft.Scripting.Core.dll里,位于System.Linq.Expression命名空间里(或者IronPython 2.0里叫Microsoft.Linq.Expression)。但没有任何Expression类对它有直接引用,这是怎么回事?其实同一命名空间里有一个Annotations类,SourceSpan信息可以放在它的实例里被Expression所引用。最近新增了一个SymbolDocumentInfo类也是为了生成调试符号信息而存在的。(其实是从SourceFileInformation改名而来,但不知为何SourceFileInformation没被删掉)。这样,以后使用LINQv2的时候就有希望在调试时得到正确的行号信息了。
Release Notes: [url]http://www.codeplex.com/IronPython/Wiki/View.aspx?title=v2.0 Release Candidate 1 Release Notes&referringTitle=Home[/url]
这次的RC1最大的一个特征就是在MSI安装包里提供了Ngen安装的程序集的选项。把安装的程序集Ngen过之后,程序启动速度会大幅提升,代价是Ngen出来的二进制文件会占据一定空间。(“一定”还是太保守了。Ngen之后的IronPython+标准库+DLR居然会吃掉40M+的内存。天啊!)
另外,还是为了解决DLR与.NET Framework 3.5的System.Core.dll的冲突,在RC1里新增了一个Microsoft.Scripting.ExtensionAttribute.dll程序集,里面只有一个ExtensionAttribute类;只要不同时引用这个程序集合System.Core.dll,应该就不会发生冲突(因为随着IronPython 2.0 RC1发布的DLR里的System.*命名空间全都改成Microsoft.*了,所以不会冲突)。
对DLR的关注者而言有个好消息,那就是已经几个月没跟随IronPython一起发布的ToyScript在这次的RC1里终于回来了。
进入到RC阶段,IronPython 2.0系列的对外API大致进入了稳定阶段(也就是说Beta5之后就不会有大的API变化,只会有bugfix)。但这不代表其底层所使用的内部API到达了稳定阶段——至少,DLR的API还在不停的调整,至少LINQv2的API还在调整,Old-*系的老类/接口也尚未清理完。可以预见,正式发布的IronPython 2.0中的DLR也不会达到API稳定的阶段。我的猜测是DLR的开发进度(deadline)或许会跟C# 4同步,因为C# 4的动态特性依赖于DLR。
===========================================================================
顺便说说最近DLR里的一些变化。我最高兴的一点是文档明显增加了。
许多优化很明显是为了性能改善而做的努力,其中有两个有趣的地方:尽量使用普通for而减少使用foreach来访问数组和实现了IList<T>接口的容器、尽量减少数据所占的空间。
使用普通的for循环是为了减少创建enumerator(也就是iterator)的个数;实际效果看,enumerator对象个数确实是能减少,能减轻GC的压力,但在GC以外这个做法能有多少改善呢?CLR的优化还真是有待进一步提升。
减少数据占用的空间主要是通过把成员变量提升为静态变量,或者使用更小的类型来装数据(例如把ExpressionType跟NodeFlags放在一个Int32里),或者干脆把作用不大的成员变量去掉。
一个东西开发到一定阶段之后,为了性能考虑,代码果然是不得不变丑啊……||
Action方面,原本叫做Rule<T>的类改名为CallSiteRule<T>了,更显著的变化是它的可见性从public变为了internal,而其中一些成员(_parameters、_returnLabel)变成了静态只读成员(Parameters、ReturnLabel),于是原本每个实例都会带着的一些数据变为由每个泛型类型实例带着。CallSiteBinder<T>.Bind()也不再返回Rule<T>,而是直接返回一个“测试+执行”的Expression。
AST方面,有更多类型从Statement转变为Expression,例如Block->BlockExpression、EmptyStatement->EmptyExpression、LoopStatement->LoopExpression、SwitchStatement->SwitchExpression、ThrowStatement->ThrowExpression、TryStatement->TryExpression。
Variable相关的好几个类型也在不停的调整,例如说把VariableExpression合并到ParameterExpression里去之类。
控制流跳转的节点(break、continue、return、goto)合并为GotoExpression。这点比较诡异,没看出具体的好处是什么。而且ReturnStatement为什么还在呢……
另外,早些时候用于标记代码位置信息的SourceLocation和SourceSpan两个类都从Microsoft.Scripting.dll移回到了Microsoft.Scripting.Core.dll里,位于System.Linq.Expression命名空间里(或者IronPython 2.0里叫Microsoft.Linq.Expression)。但没有任何Expression类对它有直接引用,这是怎么回事?其实同一命名空间里有一个Annotations类,SourceSpan信息可以放在它的实例里被Expression所引用。最近新增了一个SymbolDocumentInfo类也是为了生成调试符号信息而存在的。(其实是从SourceFileInformation改名而来,但不知为何SourceFileInformation没被删掉)。这样,以后使用LINQv2的时候就有希望在调试时得到正确的行号信息了。
发表评论
-
对象的重量
2011-08-21 17:15 0http://domino.research.ibm.com/ ... -
IronRuby 1.1系的自适应执行(解释/编译的混合模式)
2010-10-29 14:12 0IronRuby自身的compiler部分基本上还是保持不变的 ... -
Expression Tree中的Constant被编译后放到哪里去了?
2010-02-28 16:21 0Expression.Constant()可以放任意对象进去作 ... -
拿ETv2来生成方法体的两种阳春办法
2009-09-22 06:03 0System.Type System.Reflection.E ... -
C#的语言结构到Expression Tree v2的映射
2009-05-21 03:11 0在.NET Framework 4 Beta 1中,Expre ... -
.NET Framework 4.0 Beta 1里的Expression Tree一例
2009-05-20 10:23 2876既然装上了Visual Studio 20 ... -
用Iron-*语言来探索.NET
2009-05-15 23:21 3345刚才写代码的时候又是在不停查文档,甚是心烦。一怒,拿出Iron ... -
自己关于VM的帖的目录
2009-04-07 14:02 68797JavaEye的blog系统只允许把帖放到单一类别下,而不能用 ... -
MIX09上关于DLR解释器消息的一段听记(3月26更新IronPython 2.6A1消息)
2009-03-23 21:09 1799John Lam在MIX 09上做了一个关于动态语言与Silv ... -
答复: C# 4 DLR & Java 7 Invokedynamic
2009-03-22 17:12 2967原帖地址:C# 4 DLR & Java 7 Invo ... -
通过get或set方法的MethodInfo获得相应的PropertyInfo的方式
2009-02-01 22:41 3501在IronPython 46307的MemberExpress ... -
同一个ParameterExpression被用在不同嵌套层次的lambda里会怎样?
2009-01-16 00:22 2557今天写代码的时候不小心写错了几个地方,把同一个Paramete ... -
CodePlex上放出DLR v0.9 beta
2008-11-27 14:34 1938之前提到过DLR会在CodePlex上拥有自己独立的项目页面, ... -
IronRuby (r170)中respond_to?的实现
2008-11-13 23:29 0IronRuby.Libraries/Builtins/Ker ... -
DLR中的binder的演变
2008-11-11 23:29 0从模糊的“标准消息”转变为明确完整的MetaObject Pr ... -
DLR即将在Codelex开设独立的站点
2008-10-29 23:01 1406DLR官网:Dynamic Language Runtime ... -
新的DLR tree改变了Visitor的设计
2008-10-09 00:35 1582之前的一帖提到过访问DLR tree所使用的visitor的实 ... -
对比DLR
2008-10-08 04:32 0Managed JScript: // // AST: E ... -
目前DLR执行一棵DLR tree的过程(针对10月3日的ChangeSet 41087)
2008-10-07 01:46 1733先在Microsoft.Scripting.Actions.C ... -
LINQ与DLR的Expression tree(4):创建静态类型的LINQ表达式树节点
2008-09-27 00:18 9309(Disclaimer:如果需要转载请先与我联系;文中图片请不 ...
相关推荐
IronPython 是一种在 .NET 及 Mono上的 Python 实现,由微软的 Jim Hugunin 所发起,是一个开源的项目,基于微软的 DLR 引擎;
IronPython.2.7.8,用于visual studio2013关联abaqus。
IronPython开发工具
大名鼎鼎的IronPython,可以让 VS2010轻松调用 Python 脚本,需要 .net framework 4.0
setuptools-py2.7.egg,IronPython安装python第三方库的必须工具
IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。1.0 版于2006年9月5日发布。随后,在 2007 年,开发者决定改写构架,使用动态类型系统以让更多脚本语言能...
微软IronPython源码
python 2.7.9 rc1
[Apress] IronPython 高级程序设计 (英文版) [Apress] Pro IronPython (E-Book) ☆ 出版信息:☆ [作者信息] Alan Harris [出版机构] Apress [出版日期] 2009年06月22日 [图书页数] 312页 [图书语言] 英语 ...
IronPython 是一种在 NET 和 Mono 上实现的 Python 语言,由 Jim Hugunin(同时也是 Jython 创造者)所创造。1.0 版于2006年9月5日发布。
全名:python-3.8.7rc1-amd64.exe python的安装与使用: https://blog.csdn.net/qq_38161040/article/details/87295245
IronPython2.7 , c#调用python用到的开发库, 是一种在 .NET 及 Mono上的 Python 实现,可以提高开发效率.
IronPython 经典书籍
IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action
IronPython 2.6 的源代码,用C#开发的。 是深入研究Python,深入学习C#的很好教材。 里面的设计思路很值得借鉴,强烈推荐
IronPython-2.7.2.1.msi
Professional IronPython.pdf
IronPython 经典书籍, 你值得拥有
IronPython-2.7.7-win.zip IronPython-2.7.7-win.zip IronPython-2.7.7-win.zip