1366 issues

lifc 2009-07-31
betty_betty2008 写道

要能自己打Patch修补就好了。

试过自己拿源码改,但Walter的dmd语法分析都是自己用C++自己堆砌的(怎么不用D呢),不了解整体结构往往动一处又引发其他问题。而且一人之力维护一个源码分支谈何容易,看W.B.目前的处境就知道了。那种明知不可为而为之、虽千万人吾往矣的勇气恐怕也只有Walter这样的大师才具备。
betty_betty2008 2009-07-31
lifc 写道
betty_betty2008 写道

要能自己打Patch修补就好了。

试过自己拿源码改,但Walter的dmd语法分析都是自己用C++自己堆砌的(怎么不用D呢),不了解整体结构往往动一处又引发其他问题。而且一人之力维护一个源码分支谈何容易,看W.B.目前的处境就知道了。那种明知不可为而为之、虽千万人吾往矣的勇气恐怕也只有Walter这样的大师才具备。


俺现在越来越想学C了,是不是有病,呵。。。
night_stalker 2009-07-31
betty_betty2008 写道
俺现在越来越想学C了,是不是有病,呵。。。


我觉得 动态语言 + C 已经无敌了 ……

http://www.straw-dogs.co.uk/07/30/pythons-beards-and-rubys-cool-guys/
hqs7636 2009-07-31
这么大的问题,ng上怎么还这么多的人跟着起哄呢,奇怪。。。
oldrev 2009-08-01
http://shootout.alioth.debian.org/

Mono 在时间效率上已经和 GCC 处于同一数量级了,只是内存消耗要大的多。
oldrev 2009-08-01
lifc 写道
tomqyp 写道

D1下我有点经验希望对你的项目有所帮助,尽量多用继承少用模板,如果可以的话接口也少用,虽然这样程序性能可能有点影响,不过开发过程中编译器的问题会少很多。

另外有时间的话可不可以把你们遇到的问题和解决办法分享一下。

感觉D里面稍微高级或特殊的功能编译器问题就比较多,比如模板、struct、delegate、asm、scope、auto、is,经常是写一些错误语法编译器就垮了,遇到这种情况就懒得去汇报,反正改正之后就通过了。
dmd自身的代码生成效率实在不敢恭维,相比gdc或ldc差得太远。不过只要能稳定性能考虑暂时排在第二位了。


我也写过点 D1 程序,编译器还没有您说的那么不堪,至少我很少遇到过编译器崩溃的问题。
lifc 2009-08-01
oldrev 写道

我也写过点 D1 程序,编译器还没有您说的那么不堪,至少我很少遇到过编译器崩溃
的问题。

现在周围同事都是刚接触D,有时写出的代码不规范,还真让编译器出了不少异常。周末在家只记得我报过的,有兴趣可以帮忙测一下是否可重现。

DMD 2.031崩溃:
struct Foo {
}

void foo (Foo b, void delegate ()) {
}

void main () {
        foo(Foo(1), (){});
}


DMD 1.046/2.031崩溃
void main () {
	void delegate () func = { asm{ nop; } };
}

lifc 2009-08-01
oldrev 写道
http://shootout.alioth.debian.org/
Mono 在时间效率上已经和 GCC 处于同一数量级了,只是内存消耗要大的多。

我们之前是在arm、mips和powerpc的嵌入式设备上跑mono程序,感觉它现在的内存消耗水平已经基本可以接受了。
通常只要优化一下vm去掉没用的功能和类库,程序里用一些对象池减少运行时动态分配(特别是box/unbox)就可以了。程序长期运行内存占用和c++代码相比大概多了20%~40%(10MB以内),但和c++程序相比内存管理相关的bug明显减少了。
oldrev 2009-08-02
lifc 写道
oldrev 写道

我也写过点 D1 程序,编译器还没有您说的那么不堪,至少我很少遇到过编译器崩溃
的问题。

现在周围同事都是刚接触D,有时写出的代码不规范,还真让编译器出了不少异常。周末在家只记得我报过的,有兴趣可以帮忙测一下是否可重现。

DMD 2.031崩溃:
struct Foo {
}

void foo (Foo b, void delegate ()) {
}

void main () {
        foo(Foo(1), (){});
}


DMD 1.046/2.031崩溃
void main () {
	void delegate () func = { asm{ nop; } };
}



从没用到过 inline asm  
oldrev 2009-08-02
不过编译器崩溃真是很掉价的事情,以前就见过一次 VC6 崩溃,吐出个 Internal Error xxxx.c 什么的,才发现 VC6 的编译器是用 C 写的。
Global site tag (gtag.js) - Google Analytics