编程语言 D 2.068.1 发布

jopen 9年前

D语言(Dlang)是由Digital Mars公司开发的编程语言,起因是为了改进C++。它与C二进制兼容(不完全),可编译为本地码,有GC也可手动管理内存,语法上借鉴多种语言,模板则 在C++的基础上做了相当大的扩充。D 语言既有 C 语言的强大威力,又有 Python 和 Ruby 的开发效率。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息的系统级编程语言。

D语言是一种通用的系统和应用编程语言。它是比 C++ 更高级的语言,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于学习,为编程者提供了很多便利,并且适用各种野心勃勃的编译器优化技术。

D 不是脚本语言,也不是一种解释型语言。它不需要虚拟机、宗教、或者高于一切的哲学。它是给实际的编程者使用的实际的语言,它帮助编程者快速、可靠的完成易于维护、易于理解的代码。

D 是数十年来实现多种语言编译器的经验的积累,是用那些语言构造大型工程的尝试的积累。D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它。

编程语言 D 2.068.1 发布,此版本添加了 configure coverage, profile 和 profile=gc reports 功能函数

其他 bug 修复和改进:

DMD Compiler regressions

  1. Bugzilla 14431: [REG 2.067.0] huge slowdown of compilation speed

  2. Bugzilla 14621: [REG2.066] ICE: Assertion failure: 'global.gaggedErrors || global.errors' on line 752 in file 'statement.c'

  3. Bugzilla 14781: [REG2.067] impure delegate to pure function context should be able to modify context

  4. Bugzilla 14901: [reg 2.067/2.068] template static shared this() run multiple times with separate compilation

  5. Bugzilla 14911: Compiler found indexing in code "new MyStruct[2].ptr"

  6. Bugzilla 14923: [REG2.067] ICE: Assertion failed: (tret->ty != Tvoid), function semantic3, file func.c, line 1736.

  7. Bugzilla 14926: Programs compiled using dmd 2.068 are generating dummy profilegc.log files

  8. Bugzilla 14929: [REG2.067] ICE: Assertion failure: 'ez->exp && ez->exp->op == TOKconstruct' on line 302 in file 'escape.c'

  9. Bugzilla 14944: [REG2.064] cannot initialize static array by static this()

  10. Bugzilla 14948: [Reg 2.068.0] AA key requirement was broken w/o notice and w/ horrible error message

  11. Bugzilla 14962: [REG2.068] compiler inference of attributes for nested map seems broken

  12. Bugzilla 14973: [REG2.068] compiler inference of contexts for nested map seems broken

  13. Bugzilla 14985: [REG2.068.1-b1] Link failure for const TypeInfo of speculative instantiated struct

  14. Bugzilla 14986: [REG2.068.1-b2] Assertion failed: (id->dyncast() == DYNCAST_DSYMBOL)

  15. Bugzilla 15002: [REG2.064] ICE with invalid static variable initializer while CTFE

  16. Bugzilla 15017: [REG2.068.1-b2] assigning a Variant to be value in a hashmap

DMD Compiler bugs

  1. Bugzilla 14624: The array operator overloading fallback is not correct

  2. Bugzilla 14625: opIndex() doesn't work on foreach container iteration

  3. Bugzilla 14696: destructor for temporary called before statement is complete with conditional operator

  4. Bugzilla 14708: destructor for temporary not called during stack unwinding

  5. Bugzilla 14889: ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed.

  6. Bugzilla 14900: 2.068.0 change log example does not compile

DMD Compiler enhancements

  1. Bugzilla 13889: mscoff32 libs not available

  2. Bugzilla 14951: Win64: Invalid C++ mangling for __gshared pointer variables

Phobos regressions

  1. Bugzilla 14904: [REG2.067.0] bad error message in reduce: 'Incompatible function/seed/element'

  2. Bugzilla 14920: [REG2.067.0] SList.insertAfter on uninitialized list triggers assertion in _first

  3. Bugzilla 14980: [REG2.068] getAddressInfo(null) broken

Installer bugs

  1. Bugzilla 14897: shared linux libraries from zip package don't work

更多内容请看发行说明

来自:http://www.oschina.net/news/65954/d-2-068-1