D 语言 / DLang 2.100.0 发布 下一个版本将成为宇宙第一语言


D 语言 / DLang 2.100.0 已正式发布。此版本包含 22 个主要更改和 179 个已修复的 Bugzilla 问题。

主要变化

  • 改进 C++ header gen
  • @mustuse强制返回类型错误检查的新属性
  • 支持 contract 不变版本标识符
  • 添加 .tupleof 静态数组的属性
  • Zlib 更新到 1.2.12
  • std.functional 引入新函数 bind
  • 引入不可传递的 inout 返回,以及更多改进

使用 ImportC 在 C 源码中导入 D 代码模块

从 D 2.099.0 开始,可通过__import 关键字直接将 D 代码模块导入 C 文件。

// dsayhello.d
import core.stdc.stdio : puts;

extern(C) void helloImport() {
puts("Hello __import!");
}
// dhelloimport.c
__import dsayhello;
__import core.stdc.stdio : puts;

int main(int argc, char** argv) {
helloImport();
puts("Cool, eh?");
return 0;
}

使用如下代码进行编译:

dmd dhelloimport.c dsayhello.d

此外还可导入已经通过 ImportC 编译过的 C 代码模块:

// csayhello.c
__import core.stdc.stdio : puts;

void helloImport() {
puts("Hello _import!");
}
// chelloimport.c
__import csayhello;
__import core.stdc.stdio : puts;

int main(int argc, char** argv) {
helloImport();
puts("Cool, eh?");
return 0;
}

使用如下代码进行编译:

dmd chelloimport.c csayhello.c

引入抛出表达式 (throw expression)

在 D 语言的生命周期中,throw 属于声明 (statement ),不能在表达式中使用,因为表达式必须有一个类型,而由于 throw 不返回值,所以没有合适的类型,这导致它不能使用以下语法。

(string err) => throw new Exception(err);

只能使用如下的方案:

(string err) { throw new Exception(err); }

不过从 D 2.099.0 开始,以下代码片段可通过编译:

void foo(int function() f) {}

void main() {
foo(() => throw new Exception());
}

详情查看 Changelog。


相關推薦

2022-04-09

D 语言/DLang 2.099.0 已于上月发布。 公告显示,这是一个重大版本,更新亮点包括: D 代码模块可通过 ImportC 被导入 C 代码中 引入抛出表达式 (throw expression) PE/COFF 输出现在是 DMD 在 Windows 上的默认输出 …… 详情查看 Chang

2022-05-21

做开源有十多年了,这也是给自己的一个生日礼物。 D语言在国内的环境来说一直热不起来,我和我的开源团队也做过很多开源的框架,全功能的,基本对标 springboot 和 springcloud 那种级别,但是新手用起来不够友好,由于D语言

2022-02-10

TIOBE 公布了 2022 年 2 月的编程语言排行榜。 从 5 月 1 日起,Alexa 网站流量排名引擎将停止其服务。一直以来,Alexa 都被用来为 TIOBE 指数选择搜索引擎。鉴于此,TIOBE CEO Paul Jansen 表示,其决定选择 Similarweb 作为 Alex

2021-11-09

TIOBE 公布了 2021 年 11 月的编程语言排行榜。 自 20 多年前 TIOBE 指数开始发布以来,PHP 一直常驻在榜单前十;然而最近,该语言已经开始在前十的边缘苦苦挣扎。TIOBE CEO Paul Jansen 称,“PHP 曾经是 Web 编程领域的佼佼者

2023-01-30

”“大前端新趋势”“云原生技术”“开源教育”“编程语言”“嵌入式”“开源治理”“数据与数据库技术”“DevOps”“Web3.0” 等开源热门主题,开源大牛们将轮番上阵,激荡思想火花。 Cloud Native Summit:Cloud Native Summit

2022-10-16

”“大前端新趋势”“云原生技术”“开源教育”“编程语言”“嵌入式”“开源治理”“数据与数据库技术”“DevOps”“Web3.0”等开源热门主题,开源大牛们将轮番上阵,激荡思想火花。 Cloud Native Summit:Cloud Native Summit 是

2022-05-21

指出,JavaScript 已经连续十次在该调查中占据最受欢迎的语言位置;社区持续增长,目前全球共有近 1750 万开发人员在使用。自两年前超过 Java 以来,Python 持续占据第二大流行语言的位置;目前社区开发者数量为 1570 万,在过去

2022-10-13

强大,操作简单 前言:近期,有客户咨询了独立站中多语言的自动翻译功能。OpenCart作为一个开源的多语言电商系统,针对语言翻译功能,进行了多次的迭代和优化 今天我们就来介绍一下,OpenCart独立站的重点功能——OpenCart

2023-10-28

昆仑万维发布了2023年第三季度报告。据报告披露,昆仑万维第三季度全面加速推进“All in” AGI与AIGC的战略布局,在多个方向均取得了突破性进展。截至本报告期末,昆仑万维实现营业收入36.8亿元,同比增长8%。实现经营性现金

2023-10-10

失、模型偷懒、上下文越长大模型越笨......如果体验过大语言模型产品,用户多少会对文本输入长度带来的限制有所感触,比如当想和大模型讨论一些稍长的内容,需要拆分输入,而前面输入的要点,很快就会被大模型忘记。 这

2022-11-30

IEEE 发布了一项最新的调查结果,主要研究技术对 2023 及未来发展的影响。该调查基于来自美国、英国、中国、印度和巴西的 350 名首席技术官、首席信息官和 IT 主管等全球技术领导者的反馈。 调查指出,云计算 (40%)、5G (38%)、

2022-12-10

根据 Dart 的开发进度,Dart 编程语言的第三个主要版本(Dart 3)将于 2023 年中期亮相,届时 Dart 将成为 100% 健全的空安全语言,变量默认是「非空」的。 空值引用可以追溯到 1964 年左右,当时英国计算机科学家 Tony Hoare 在 ALGOL

2023-03-20

午,文心一言 (ERNIE Bot)—— 百度全新一代知识增强大语言模型、文心大模型家族的新成员,正式在百度总部 “挥手点江山” 会议室里发布。 发布会一开场,百度 CEO 李彦宏先给大家打了一剂预防针: 从某种意义上说

2022-08-12

该本报告中深入挖掘基于 CircleCI 的组织中最流行的编程语言的数据。 CircleCI 上使用的前 25 种编程语言,按完成的工作量排名(2019-2021 年) 要进入前 25 名,一种语言需要在超过 15 万次的工作流中使用,要达到前 10 名则需要