锁定老帖子 主题:D 1.0发布了!
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2007-01-05
引用 What's New for D 1.00
Jan 2, 2007 New/Changed Features -v flag now outputs imports added std.c.linux.pthread Bugs Fixed Fixed Bugzilla 552: Internal error: ..\ztc\cg87.c 1327 on in-function modulo of imaginary number Fixed Bugzilla 553: Assertion failure: '0' on line 609 in file 'constfold.c' on modulo of complex number Fixed Bugzilla 694: Doc mistake: a == null is not a.opCmp(null) Fixed Bugzilla 699: long variadic arguments and the "-profile" flag Fixed Bugzilla 702: inline assembler: "SMSW r32" fails to compile Fixed Bugzilla 703: SuperExp::scanForNestedRef Assertion Fixed Bugzilla 728: incorrect initialisation of member arrays if an explicit struct initializer is used Fixed Bugzilla 731: Positive and negative NaN in template arguments causes link conflict Fixed Bugzilla 734: Multidimensional arrays use incorrect initializer Fixed Bugzilla 745: recursive typeof in function declaration crashes cc1d Fixed Bugzilla 748: internal error with mixed static / dynamic array Fixed Bugzilla 749: Internal error: toir.c 170 with lazy bool and delegate with default argument Fixed Bugzilla 750: Recursive typeof in function declaration crashes DMD Fixed Bugzilla 751: Compiler segfault on template expansion Fixed Bugzilla 752: Assertion failure: 'e->type->ty != Ttuple' on line 4518 in file 'mtype.c' Fixed Bugzilla 753: Minor Misspelling in Class Spec Page Fixed Bugzilla 754: hex strings crash DMD when reporting syntax errors Fixed Bugzilla 757: Some debug code was not removed from statement.c Fixed Bugzilla 760: std.c.stdlib does not include system(3) Fixed Bugzilla 763: Segfault compiling template code on Linux Fixed Bugzilla 764: (typeof(o)).classinfo causes parser error Fixed Bugzilla 765: ArrayBoundsError when assigning slice of pointer Fixed Bugzilla 766: dmd.exe crash Fixed Bugzilla 770: enums and typecasts Fixed Bugzilla 771: template func returns delegate w. param list from tuple and type, odd compiler error Fixed Bugzilla 772: Bogus error using relation operator as static if expression within template Fixed Bugzilla 773: Redundant "Error: " in std.conv.ConvError Fixed Bugzilla 775: array literals can't be used as template arguments Fixed Bugzilla 777: -inline: assert() with a non-constant message causes code to not compile Fixed Bugzilla 778: -inline: Assertion failure: '!v->csym' on line 450 in file 'glue.c' Fixed Bugzilla 779: init.c:103: virtual Expression* VoidInitializer::toExpression(): Assertion `0' failed. GDC也更新到了1.0. 引用 http://sourceforge.net/project/showfiles.php?group_id=154306
* Updated to DMD 1.00 * Fixed Bugzilla 695, 696, 737, 738, 739, 742, 743, 745 * Implemented GCC extended assembler * Implemented basic support for GCC attributes See the included GDC.html and the GCC manual for information about the GCC extensions. 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2007-01-05
CSDN上也开始宣传D语言,不过D语言方面的文章还是挺少的。
|
|
返回顶楼 | |
发表时间:2007-01-05
大家在用D语言写啥?被JAVA的IDE宠惯了。拿VS.NET写代码都不爽了。不知道写D语言会是啥感受。
|
|
返回顶楼 | |
发表时间:2007-01-05
实际上还没大规模应用,还没有成熟的GUI框架,其它库也还参差不齐,前段时间用D写了个给ruby用的文字渲染扩展,结果没办法编译出64位版本,又用C++重写了。
一旦习惯了D语言,再用C++也是痛苦的,估计用惯了java再用C++也是相同感受。最明显的差别,D和java中可以返回一个new出来的byte[],在c++中你要么返回一个vector<byte>,要么就给方法加上一个指针和长度表示的缓冲区参数吧。new一个返回也是可以的,不过几乎所有人都会反对。。 |
|
返回顶楼 | |
发表时间:2007-01-05
qiezi 写道 实际上还没大规模应用,还没有成熟的GUI框架,其它库也还参差不齐,前段时间用D写了个给ruby用的文字渲染扩展,结果没办法编译出64位版本,又用C++重写了。
一旦习惯了D语言,再用C++也是痛苦的,估计用惯了java再用C++也是相同感受。最明显的差别,D和java中可以返回一个new出来的byte[],在c++中你要么返回一个vector<byte>,要么就给方法加上一个指针和长度表示的缓冲区参数吧。new一个返回也是可以的,不过几乎所有人都会反对。。 自己包个简单的类好了,或者不在意性能的家伙也可以直接返回 vector<byte>,反正要比 java/C# 慢还是比较困难的。 |
|
返回顶楼 | |
发表时间:2007-01-05
赞一个:
引用 自己包个简单的类好了
我感觉也是.等待D越来越好吧.(实际上可以称做DMD0.179),GDC的作者David认为GDC现在可以称为0.5,等实现了64位代码和交叉编译在称作1.0. 我用C写了几个数据库访问的库,然后统一接口让D调用.速度就是快.Java,C#没有办法比.GUI慢慢摸索吧. |
|
返回顶楼 | |
发表时间:2007-01-05
Elminster 写道 qiezi 写道 实际上还没大规模应用,还没有成熟的GUI框架,其它库也还参差不齐,前段时间用D写了个给ruby用的文字渲染扩展,结果没办法编译出64位版本,又用C++重写了。
一旦习惯了D语言,再用C++也是痛苦的,估计用惯了java再用C++也是相同感受。最明显的差别,D和java中可以返回一个new出来的byte[],在c++中你要么返回一个vector<byte>,要么就给方法加上一个指针和长度表示的缓冲区参数吧。new一个返回也是可以的,不过几乎所有人都会反对。。 自己包个简单的类好了,或者不在意性能的家伙也可以直接返回 vector<byte>,反正要比 java/C# 慢还是比较困难的。 事实很容易证明这不是个“简单的类”,要么是引用计数,要么是复制,C++做很多事都不是简单的,特别是涉及到内存管理。另外一点就是,很多地方你都要自己去写这些“简单的类”,即便就是做些“简单的事”而已。其中一个做这种简单的事的类叫作auto_ptr,不过似乎不能用于管理数组,所以可能还是要用auto_ptr<vector<byte> >。 这还不够痛苦?一个简单的return都这么麻烦? |
|
返回顶楼 | |
发表时间:2007-01-05
办法很多吧,
auto_ptr<简单的类> 也可以啊. 要不让调用方自己删除. 不用太强迫嘛. 我不太喜欢D, 模型跨度太大, 什么都来一些. 功能堆砌的感觉 |
|
返回顶楼 | |
发表时间:2007-01-05
前阵子做了个简单的Fibnacci函数效率测试,分别用ruby, python, c, d, java, ocaml(cookoo提供)测试,计算fib(40),在同一台机器上,c最快1.2秒,DMD 3.4秒,gdc 1.2秒,java 1.7秒,ocaml 2.6秒,python 28秒,ruby 72秒。
java并没有比C慢太多。 怎么都发到论坛上了呢。。 |
|
返回顶楼 | |
发表时间:2007-01-05
引用 我用C写了几个数据库访问的库,然后统一接口让D调用.速度就是快.Java,C#没有办法比.
有对比测试么?能否给个结果看看?我正在评估这方面的咚咚。 |
|
返回顶楼 | |