发布于 2015-09-07 00:47:19 | 219 次阅读 | 评论: 0 | 来源: 网友投递
D语言
D语言是由Digital Mars公司开发的编程语言,起因是为了改进C++。D 语言既有 C 语言的强大威力,又有 Python 和 Ruby 的开发效率。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息的系统级编程语言。
编程语言 D 2.068.1 发布,此版本添加了 configure coverage, profile 和 profile=gc reports 功能函数。
其他 bug 修复和改进:
Bugzilla 14431: [REG 2.067.0] huge slowdown of compilation speed
Bugzilla 14621: [REG2.066] ICE: Assertion failure: 'global.gaggedErrors || global.errors' on line 752 in file 'statement.c'
Bugzilla 14781: [REG2.067] impure delegate to pure function context should be able to modify context
Bugzilla 14901: [reg 2.067/2.068] template static shared this() run multiple times with separate compilation
Bugzilla 14911: Compiler found indexing in code "new MyStruct[2].ptr"
Bugzilla 14923: [REG2.067] ICE: Assertion failed: (tret->ty != Tvoid), function semantic3, file func.c, line 1736.
Bugzilla 14926: Programs compiled using dmd 2.068 are generating dummy profilegc.log files
Bugzilla 14929: [REG2.067] ICE: Assertion failure: 'ez->exp && ez->exp->op == TOKconstruct' on line 302 in file 'escape.c'
Bugzilla 14944: [REG2.064] cannot initialize static array by static this()
Bugzilla 14948: [Reg 2.068.0] AA key requirement was broken w/o notice and w/ horrible error message
Bugzilla 14962: [REG2.068] compiler inference of attributes for nested map seems broken
Bugzilla 14973: [REG2.068] compiler inference of contexts for nested map seems broken
Bugzilla 14985: [REG2.068.1-b1] Link failure for const TypeInfo of speculative instantiated struct
Bugzilla 14986: [REG2.068.1-b2] Assertion failed: (id->dyncast() == DYNCAST_DSYMBOL)
Bugzilla 15002: [REG2.064] ICE with invalid static variable initializer while CTFE
Bugzilla 15017: [REG2.068.1-b2] assigning a Variant to be value in a hashmap
Bugzilla 14624: The array operator overloading fallback is not correct
Bugzilla 14625: opIndex() doesn't work on foreach container iteration
Bugzilla 14696: destructor for temporary called before statement is complete with conditional operator
Bugzilla 14708: destructor for temporary not called during stack unwinding
Bugzilla 14889: ICE: Assertion `o->dyncast() == DYNCAST_DSYMBOL' failed.
Bugzilla 14900: 2.068.0 change log example does not compile
Bugzilla 13889: mscoff32 libs not available
Bugzilla 14951: Win64: Invalid C++ mangling for __gshared pointer variables
Bugzilla 14904: [REG2.067.0] bad error message in reduce: 'Incompatible function/seed/element'
Bugzilla 14920: [REG2.067.0] SList.insertAfter on uninitialized list triggers assertion in _first
Bugzilla 14980: [REG2.068] getAddressInfo(null) broken
Bugzilla 14897: shared linux libraries from zip package don't work
更多内容请看发行说明。
D语言(Dlang)是由Digital Mars公司开发的编程语言,起因是为了改进C++。它与C二进制兼容(不完全),可编译为本地码,有GC也可手动管理内存,语法上借鉴多种语言,模板则 在C++的基础上做了相当大的扩充。D 语言既有 C 语言的强大威力,又有 Python 和 Ruby 的开发效率。它是一种集垃圾回收、手工内存操作、契约式设计、高级模板技术、内嵌汇编、内置单元测试、Mixin 风格多继承、类 Java 包管理机制、内置同步机制、内建基本运行时信息的系统级编程语言。
D语言是一种通用的系统和应用编程语言。它是比 C++ 更高级的语言,同时还保持了生成高效代码以及直接访问操作系统API和硬件的能力。D 很适合于编写从中等规模到那些由团队合作完成、数百万行代码规模的各种程序。D 易于学习,为编程者提供了很多便利,并且适用各种野心勃勃的编译器优化技术。
D 不是脚本语言,也不是一种解释型语言。它不需要虚拟机、宗教、或者高于一切的哲学。它是给实际的编程者使用的实际的语言,它帮助编程者快速、可靠的完成易于维护、易于理解的代码。
D 是数十年来实现多种语言编译器的经验的积累,是用那些语言构造大型工程的尝试的积累。D 从那些语言(主要是 C++ )那里获得了灵感,并使用经验和现实世界中的实用性来驯服它。