论坛首页 编程语言技术论坛

D 1.0发布了!

浏览 44036 次
锁定老帖子 主题:D 1.0发布了!
该帖已经被评为精华帖
作者 正文
   发表时间:2007-01-05  
C
期待已久的D1.0终于发布了! 感谢Walter给我们提供了这么好的工具!

引用
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.
   发表时间:2007-01-05  
CSDN上也开始宣传D语言,不过D语言方面的文章还是挺少的。
0 请登录后投票
   发表时间:2007-01-05  
大家在用D语言写啥?被JAVA的IDE宠惯了。拿VS.NET写代码都不爽了。不知道写D语言会是啥感受。
0 请登录后投票
   发表时间:2007-01-05  
实际上还没大规模应用,还没有成熟的GUI框架,其它库也还参差不齐,前段时间用D写了个给ruby用的文字渲染扩展,结果没办法编译出64位版本,又用C++重写了。

一旦习惯了D语言,再用C++也是痛苦的,估计用惯了java再用C++也是相同感受。最明显的差别,D和java中可以返回一个new出来的byte[],在c++中你要么返回一个vector<byte>,要么就给方法加上一个指针和长度表示的缓冲区参数吧。new一个返回也是可以的,不过几乎所有人都会反对。。
0 请登录后投票
   发表时间: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# 慢还是比较困难的。
0 请登录后投票
   发表时间:2007-01-05  
赞一个:
引用
自己包个简单的类好了


我感觉也是.等待D越来越好吧.(实际上可以称做DMD0.179),GDC的作者David认为GDC现在可以称为0.5,等实现了64位代码和交叉编译在称作1.0.
我用C写了几个数据库访问的库,然后统一接口让D调用.速度就是快.Java,C#没有办法比.GUI慢慢摸索吧.
0 请登录后投票
   发表时间: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都这么麻烦?
0 请登录后投票
   发表时间:2007-01-05  
办法很多吧,

auto_ptr<简单的类> 也可以啊.
要不让调用方自己删除.
不用太强迫嘛.


我不太喜欢D, 模型跨度太大, 什么都来一些.
功能堆砌的感觉

0 请登录后投票
   发表时间: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慢太多。

怎么都发到论坛上了呢。。
0 请登录后投票
   发表时间:2007-01-05  
引用
我用C写了几个数据库访问的库,然后统一接口让D调用.速度就是快.Java,C#没有办法比.

有对比测试么?能否给个结果看看?我正在评估这方面的咚咚。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics