当前位置: 首页 > news >正文

坪洲网站建设乔拓云智能建站平台

坪洲网站建设,乔拓云智能建站平台,网站设计模板免费建站,个人网站收款问题原文 2.109.0带来了15个主要更改和26个修复的Bugzilla问题.非常感谢39位贡献者,是他们使2.109.0变成可能. 更改编译器 1,[下一版]现在,为类型实例的成员设置别名是个错误 2,添加位字段内省功能 3,添加了从CTFE写入消息的__ctfeWrite 4,现在-verrors也限制弃用警告 5,dtoh为e…

原文

2.109.0带来了15主要更改26个修复的Bugzilla问题.非常感谢39位贡献者,是他们使2.109.0变成可能.

更改编译器

1,[下一版]现在,为类型实例成员设置别名是个错误
2,添加位字段内省功能
3,添加了从CTFE写入消息的__ctfeWrite
4,现在-verrors也限制弃用警告
5,dtohextern(Windows)extern(System)函数生成签名.
6,动态数组上的每一可有小于size_t索引类型
7,在闭包上每一逆现在是个错误
8,添加标识表的扩展以允许新符匹配C23CLI可配置性
9,ImportC改进了统一支持
10,缺少符号错误不再神秘
11,已删除窗口OMF支持

更改运行时

1,添加core.sys.linux.sys.mount模块.
2,从d运行时中删除了所有collectNoStack函数和API.
3,按@trusted标记Thread.sleep

更改库

1,添加std.process.Config.preExecDelegate

更改编译器

[下一版]现在,为类型实例成员设置别名是个错误

此别名实际上是实例类型成员的别名,而不是实例成员自身的别名.会很怪,现在是一个错误.相反,请为以下类型的成员设置别名:

struct Foo
{int v;void test(Foo that) const{alias a = this.v;//好alias b = that.v;//错误,请改用`'typeof(that).v'`assert(&a is &b);//通过assert(&b !is &that.v);}
}
struct Bar
{Foo f;alias v = f.v;//错误,请使用`'typeof(f).v'`
}

添加位字段内省功能

增加:
1,.bitoffsetOf属性取位域的开始位号.
2,.bitwidth属性取位域中的位数.
3,如果字段元素位域,则__traits(isBitfield,symbol),返回

添加了从CTFE写入消息的__ctfeWrite

类似pragma(msg,...),__ctfeWrite特殊函数,现在可用来在CTFE写入消息.实现定义如何给用户渲染消息;
推荐方法打印消息stderr标准错误流.该函数object.d中可用,并接受隐式const(char)[]转换任意值.
如:

int greeting()
{__ctfeWrite("Hello from CTFE. Today is ");__ctfeWrite(__DATE__);__ctfeWrite("\n");return 0;
}
enum forceCTFE = greeting();

编译此程序生成以下输出:

 来自`CTFE`的你好.今天是<当前日期>

现在-verrors也限制弃用警告

默认,编译器会在20错误消息后停止,除非传递-verrors=50-verrors=0(不限制)指定不同的数.
错误限制现在也适合弃用消息,因此在编译尚未修复所有弃用大项目时,命令行不会被数百个弃用消息淹没.

deprecated void f()
{
}
void main()
{f();f();f();f();
}
> dmd verrors=3 app.d

app.d(7):废弃:已弃用app.f函数
app.d(8):废弃:已弃用app.f函数
app.d(9):废弃:已弃用app.f函数
省略了1个弃用警告,使用-verrors=0显示所有.

dtohextern(Windows)extern(System)函数生成签名.

使用-HC开关时,除了extern(C)extern(C++)函数外,extern(Windows)extern(System)函数也会输出.h文件中.
示例D模块:

extern(Windows) int hello()
{return 0;
}
extern(System) int myFriend()
{return 0;
}

-HC开关:

//省略了完整头
#ifndef _WIN32
#define EXTERN_SYSTEM_AFTER __stdcall
#define EXTERN_SYSTEM_BEFORE
#else
#define EXTERN_SYSTEM_AFTER
#define EXTERN_SYSTEM_BEFORE extern "C"
#endif
int32_t __stdcall hello();
EXTERN_SYSTEM_BEFORE int32_t EXTERN_SYSTEM_AFTER myFriend(x);

动态数组上的每一可有小于size_t索引类型

以下情况,在编译时数组长度已知的:
1,数组一个文本.
2,该数组是在编译时已知其上限一个切片式.
3,对a数组,索引类型可以是I整数类型,其中a.length<=I.max.
4,尚未实现其他情况.

在闭包上每一逆现在是一个错误

使用每一逆时,编译器不会试反向遍历闭包返回的结果.这会导致难以阅读代码,因此,(多年来)已弃用.
现在,闭包上用每一逆是个错误.

添加标识表的扩展以允许新符匹配C23CLI可配置性

当前,可对DImportC,在c99,c11,UAX31(C23)all(最少限制集)间选择.
这可通过-identifiers=<table>和对ImportC-identifiers-importc=<table>来完成.

当前按all设置D的默认表,而按c11设置ImportC.以前,DImportC都使用c99表.
稍后D的表会切换到UAX31,这应该在2.117中完成.如果你此时正在使用c99指定符,且不愿意更改它们,可切换all.

ImportC改进了统一支持

现在支持通用符名,允许按标识的一部分使用\uXXXX\UXXXXXXXX语法,其中X十六进制数字.
DigitalMarssppn不支持C99以上的更新版本.已知它是有限的,使用不在这些区间内的统一符都会导致错误.

缺少符号错误不再神秘

经常忘记链接库,在命令行上列举.d文件或包含函数.例:

module app;
unittest
{import assertions;assertEquals('D', 'D');
}
module assertions;
void assertEquals(char a, char b)
{assert(a == b);
}

如下编译时:

> dmd unittest app.d

编译器不会看到错误,但在链接缺少符号.以前,这会导致一个带混杂符号名神秘的链接器错误,错误略.
现在,当编译器调用链接器程序时,它读取其输出,扫描未定义的符号错误,并解混杂名字:
错误:未定义
错误:未定义void assertions.assertEquals(char,char)引用
引用自void app.__unittest_L5_C1()
也许可定义一个void main(){}函数,或使用-main开关
也许需要在命令行中添加.d文件,或使用-i编译导入
错误:链接器退出,状态为1

这样可更轻松地修复命令:

> dmd -unittest -main -i app.d

当前支持的链接器包括ld,bfd,gold,moldMicrosoftLINK.如果未检测到链接器的错误,请提交问题.

已删除窗口OMF支持

窗口上,支持默认设置PECOFF两年后,现在不再支持OMF.
这包括开关(-m32omf).

更改运行时

添加core.sys.linux.sys.mount模块.

core.sys.linux.sys.mount新模块,提供了与Linux上的<sys/mount.h>头文件中的对应的定义.

d运行时中删除所有collectNoStack函数和API.

@trusted标记Thread.sleep

现在按@trusted标记core.thread.Thread.sleep静态方法,可直接从@安全代码中调用它.

更改库

添加std.process.Config.preExecDelegate

std.process.Config.preExecDelegatestd.process.Config.preExecFunction类似,但可抓环境,如:

import core.sys.linux.sys.prctl : PR_SET_PDEATHSIG, prctl;
import std.process : Config, execute;
void runProgram(int pdeathsig)
{execute(["program"],config: Config(preExecDelegate: () @trusted =>prctl(PR_SET_PDEATHSIG, pdeathsig, 0, 0, 0) != -1,),);
}

preExecFunction为兼容而保留,如果同时给出了preExecFunctionpreExecDelegate,则会调用两者.

http://www.hengruixuexiao.com/news/50699.html

相关文章:

  • 电子商务网站建设与管理考试题中国新闻最新消息
  • 北京朝阳区做网站站长统计
  • apache 静态网站打广告去哪个平台免费
  • java 做网站的平台 开源免费推广网站视频
  • 我的世界日本怎么做视频网站防恶意竞价点击软件
  • 目前做网站最流行的程序语言阜阳seo
  • 宾阳网站建设武汉网站搜索引擎优化
  • 福州综合网站建设广告资源对接平台
  • 免费的ppt下载网站百度seo白皮书
  • 代加工订单平台广东seo推广方案
  • 网站怎样做快照网站换了域名怎么查
  • 图片类网站欣赏源码交易平台
  • wordpress 登录 刷新百度seo关键词排名价格
  • 做网站都有备案吗市场营销互联网营销
  • 独立站建站步骤网络营销的现状分析
  • 科技成果转化网站建设双11销量数据
  • 网页和网站的不同鹤岗网站seo
  • 怎么做可以直播的网站怎样做网站推广
  • wordpress新闻站自动采集器成年学校培训班
  • 公司两个网站可以做友情链接吗广告优化师
  • 镇江网站制作河南seo快速排名
  • 网站建设文库 新的开始批量查询指数
  • 衡粘水佩网站建设口碑营销策划方案
  • 大连公司企业网站建设找片子有什么好的关键词推荐
  • 林业网站建设有哪些一键建站
  • 一起做网店网站入驻收费seo竞价推广
  • 手机网站用单独做吗给你一个网站怎么优化
  • wordpress 搜索页描述成都网站搭建优化推广
  • 程序界面设计建站seo是什么
  • 甘肃网站建设专家seo效果最好的是