d

2024/4/12 2:31:51

2308d的7月会议

原文 亚当 独立静态构造器 首先,背景.在6月月度会议上,讨论了,导入其他模块时,即使静态构造器自身没有依赖关系,也可能会进入循环依赖,执行也会因"检测到循环"错误而中止. Adam建议引入可在静态构造器上使用的新注解,以告诉编译器它没有依赖项.然后,在关闭检查循环…

2401d,ddip1027如何支持sql

原文 以下是DIP1036的SQL支持方式: 这里 auto execi(Args...)(Sqlite db, InterpolationHeader header, Args args, InterpolationFooter footer) {import arsd.sqlite;//SQLite允许你执行?1,?2等操作enum string query () {string sql;int number;import std.conv;foreach…

2306d的闭包问题

原文 首先,D的闭包是个好主意.我使用了C的成员函数指针;它们在语法上很糟糕,但概念很好,而闭包更好. D的闭包有些问题,有些是明显错误,有些是不应该不在语言中的改进. 不能调用某些闭包 这很奇怪,但这是真的. 一个问题是常和不变目前没有扩展到闭包环境.要求常和不变的传递性…

2403d,d的com哪里错了

原文 感谢任意见解.细节: >dmd --version DMD64 D Compiler v2.107.0参考: ComObject类 IUnknown接口 我只使用了ComObject类和隐式继承了IUnknown接口,用用ImportC编译并包含以下内容的comheaders.c编写了一些COM测试代码. #define WINVER 0x0A00 #define _WIN32_WINNT…

2311d9月会议

DLF2023年9月月度会议摘要 Robert Robert,在DConf上做了一些初步的JSON5工作.他还更新了Bugzilla到GitHub的迁移脚本.他使用了"隐藏"API,现在脚本要快得多. 除此外,他在DScanner上做了一些小事,并等待JanJurzitza(Webfreak)合并它们.他指出,沃尔特曾要求他写一篇演…

2310D,Dll,栈跟踪

原文 帮助 有没有想过,如果运行时拥有调试器功能,会怎样? 对系统语言来说,常见问题是解引用空针.这几乎总是会导致崩溃,很难找到该问题,特别是你不是该项目的原始开发者时. 但是,不要害怕,在此我要讲如何在不需要实际附加调试器时获得有用的调试信息. 在Java中,已存在一个叫…

2403d,d的108版本更改

原文 编译器更改 1,在object.d中给TypeInfo_Class添加了.nameSig字段 2,总是在调用点求值像__FILE__此类关键字 3,现在可按整数数组转换十六进制串 4,添加支持插值式序列 库更改 1,isForwardRange,isBidirectionalRange和isRandomAccessRange现在带可选元素类型 2,std.uni已…

dgui与游戏的区别

原文 问题是你是在做游戏还是在做其他应用,游戏和gui之间有一些重叠,但并没有太多,两者都是在屏幕上绘画并接受用户输入,但即使是这两件事,它们也往往做得很不一样. GUI倾向于响应性.我知道,有人说"游戏必须更响应!!!"但让我说完:游戏倾向于*可预测性*.(当然也有一些…

2307d的继承与数组

原文 你好! 我是一个来自java而不是C/C的D用户,因此显然是这里为数不多的喜欢OO的人之一. 因此,虽然我很欣赏D严格遵循java设计的事实,但我想知道,为什么数组(AA同样)没有隐式继承: interface I {} class C : I {} void main() {I i;C c null;i c; //工作I[] ii;C[] cc nul…

2401d,d导入C的问题

原文 D中是否可用仅C头文件库? 在C语言中,我需要这样做: #define STB_DS_IMPLEMENTATION #include "stb_ds.h"在包含h文件前,必须在单个C文件中定义. 在D中试过: enum STB_DS_IMPLEMENTATION 1; import stb_ds;但它不管用.有建议吗?也许使用中间C文件会工作 ,但…

2310D库功能还是语言功能

原文 把库可实现的功能放进语言是个坏主意. 是的.但是目前该语言缺乏良好方式完成它的工具.需要它: template FOO(T) {alias FOO T; } pragma(msg, FOO!int); //FOO降级成int template BAR(alias T) {enum BAR T; } pragma(msg, BAR!42); //BAR降级为42//提议的新功能:自动…

2306d安装dub包

原文 已有dcv 只需要: "dependencies": {"dcv": "~>0.3.0" }对ffmpeg,绑定告诉你,在lflags指令中,添加搜索路径.这里 建议确保安装了正确的ffmpeg开发包,且可通过链接器找到它.

2312d,d的sql构建器

原文 项目 该项目在我工作项目中广泛使用,它允许自动处理联接方式动态构建SQL语句. 还会自动直接按表示数据库行结构序化.它在dconf2022在线演讲中介绍了:建模一切. 刚刚添加了对sqlite的支持.该API还不稳定,但仍非常有用.这是按需构建,所以虽然有个计划外表,但满足了我的需要…

dldc跟踪时间

原文 DennisKorpel在基金会的YouTube频道上有一个展示了如何使用LDC的-ftime-trace选项来改善项目编译时间的新的教程. 如果大量使用元编程或CTFE,这会派上用场. 这里 感谢丹尼斯制作视频. 有人知道如何更改txt输出,来欺骗代码折叠编辑器允许折叠timetrace2txt输出吗? 两个补…

OCP-1Z0-051 补充题库 第9题 to_char将数字转成字符的格式应用

一、原题 Which three SQL statements would display the value 1890.55 as $1,890.55? (Choose three.) A. SELECT TO_CHAR(1890.55,$99G999D00) FROM DUAL; B. SELECT TO_CHAR(1890.55,$9,999V99) FROM DUAL; C. SELECT TO_CHAR(1890.55,$0G000D00) FROM DUAL; D. SELECT …

2310D从导入c转换C至D

Bruce,Adam和我在西雅图的RedRobin见面,聊了聊D,他们都提出了D编译器可转换C文件为.di"头"文件. 想法是: 1.可使用只能处理D代码的DIDE程序 2.可处理大量转换.h为D代码,然后手动调整翻译不好的部分. 但某些C代码不能表示为D代码.我太笨了. 但我开始考虑该问题.表明,D…

d亚当替换工厂模式

对象工厂替代方案 一般,需要无需用模块构造器触发d运行时的挑剔循环检测的方法来注册工厂.很多时候,混合模块构造器正是想要方法,但它有全局全开或全闭的循环检测算法. 要全局关闭它,请在Main文件中,添加以下代码行: extern(C) __gshared string[] rt_options ["oncycl…

2404d,d语言1月会议

原文 路易斯 未定义的引用 路易斯说,当属性推导推导出错误属性时,Weka遇见了很多未定义的引用.如,有时在实际使用GC时推导出nogc,反之亦然. 然后,当与推导出不同属性的其他模块链接时,最终会得到未定义的引用. 一个解决方法:用生成的混杂名别名另一个模板,但这非常麻烦.现在…

2310d用d写自证明代码

原文 用D写自证明的代码 你有没有看过五年前的代码,不得不研究它,才能弄清楚它在做什么?越久远,情况就越糟糕.可怜的我,仍在维护40多年前编写的代码. 本文演示了许多简单方法,来使你的代码自证明且更易于理解和维护. 请允许我介绍我在1987年写的该小宝石: #include <st…

d的2303会议

原文 拉兹万 预览开关 Razvan一直在查看-previewnosharedaccess报告的问题,但只从atila那里找到了少数几个.表明或有个没有很多错误的良好实现,或它没有大量使用它.阿蒂拉认为没人用它. Razvan指出,atila报告的一个错误是试实例化共享类会导致错误. 如果不工作,则有其他问题…

美团多渠道打包 总结

一.为什么用? Android 7.0&#xff08;Nougat&#xff09;引入一项新的应用签名方案APK Signature Scheme v2&#xff0c;它是一个对全文件进行签名的方案&#xff0c;能提供更快的应用安装时间、对未授权APK文件的更改提供更多保护&#xff0c;在默认情况下&#xff0c;Andro…

2402d,d的real大小

原文 为什么在x86系统上,real.sizeof16! 它的IEEE754扩展格式:64位尾数15位指数符号. 它应该是10字节! 我意思是,可能对齐不同,但为什么即使在数组中,也浪费这么多内存? 根据语言规范,real是"可用的最大浮点大小".即在某些系统上,它是IEEE754的128位四精度浮点数…

2311d游戏引擎适配ios

原文 通过遵循arsd:simpledisplay(v11.0.0之前)上的一些旧代码,Apple的文档和Jacob的这一惊人贡献桥, 我已从金属绑定中删除了所有extern(Objective-C)代码,现在,所有Objective-C桥接代码都是使用D的反射生成的. 因此,给定此例代码: import core.attribute : selector; extern…

d无法编译常指针

原文 #include <stdio.h>static const unsigned char data[]{1,2,3,4}; static const unsigned char * p &data[0];int main(int argc, char * argv[]) {printf("*p %u\n", *p);return 0; }工作,但: import std.stdio;__gshared immutable ubyte[] dat…

python 矩阵点乘 、 基于向量运算的 softmax实现

1、关于python中矩阵点乘&#xff08;除&#xff09; 只允许三种情况出现&#xff1a; (1)两个矩阵维度相同&#xff0c;则对应元素相乘 (2)矩阵乘以一个向量&#xff1a; a: 矩阵与行向量 相乘(mxn * 1*n 形式)&#xff0c; 此时行向量长度 必须等于矩阵的列数 b&#xff…

d的ldc的pgo优化

原文 三个月前,我使用LDC按配置文件优化(PGO)测量了D编译器前端代码,有7%的性能提升.现在,部分PGO工作于2016年1月20日合并到LDC主分支中! LDC使用PGO,类似Clang使用PGO这里,大部分内容也适合Clang. 按配置优化(PGO) 带PGO构建 配置文件可用不同的方式获得,但(目前)LDC仅支…

加速构建d目标文件

原文 LDC:通过缓存目标文件加速增量构建 为了加快总编译时间,LDC1.1.0可创建目标文件缓存,第二次编译过程中,成功查找缓存时,可跳过优化和构建机器代码,从而显著减少编译时间. 在大型代码基上测试,总构建时间从~3m30(空缓存)减少到~2m30(无更改,所有缓存命中).只需要传递-ir2…

2306d的dll问题

原文 模块信息的实例包含导入模块的模块信息数组.目的是确保,在带模块信息的模块的静态构造器前运行导入模块的静态构造器. 但是,加载DLL时,调用其DllMain,然后调用DLL的静初化函数.因此,已调用了所有这些构造器.EXE静态构造器不再初化顺序依赖DLL的静态构造器. 因此,不应在EX…

2309d指针地址的分享

原文 import std; void main() {string variable;void * pointeraddress &variable;string[void *] associative;associative[pointeraddress] "someinformation";writeln("Hello D ", pointeraddress);writeln("Hello D ", associative[…

2308d8月会议

原文 罗伯特 罗伯特说他很高兴.Dennis问编译器是否足够快. 他只是想在编译器中看到LSP支持,并利用所有好东西. Walter指出,他一直致力于提高编译速度.他发现编译器是带异常编译的,所以他一直在努力无异编译,看看这对速度有什么影响. 亚当说他的库在半秒钟内完成编译.罗伯特说…

咀嚼《大型网站技术架构》-架构初识

为什么要看这本书&#xff1f; 我在一家公司工作了两三年&#xff0c;跟团队着一起开发p2p网站&#xff0c;部分项目是沿用前人留下的“遗产”代码&#xff0c;加以修修补补凑合成的。 随着业务量越来越大&#xff0c;用户量越来越多&#xff0c;老系统必定遇到瓶颈&#xff…

2309d自定义属性

原文 如果想要更强大示例,下面是使用UDA来轻松定义无缝回复是否成功回调的调用函数的RPC模块的概念证明. proxy.requestName().onSuccess((string str) {writefln("We got the name reply back from the server: %s", str); }).onFailure((string errMsg) {writefln…

2403d,d语言直接利用llama.cpp

原文 无需绑定,只需制作个带单个包含的虚C文件,然后就可开始构建由llama.cpp提供支持的D应用,仅此而已,除了制作虚文件外,无需额外工作. 在窗口上使用dmdv2.107来测试. 代码 //llamad.c: #include "llama.h"从llama.cpp的简单的移植D版本示例: //llamad.d: modul…

2312d,d语言作为胶水,用C++调用rust

原理 源码: //主.cpp void foo(); int 主() {foo();中 0; }编译r.rs(被调用函数)文件: //r.rs编译命令. rustc --target i686-pc-windows-msvc r.rs --crate-type staticlib //r.rs文件内容,生成r.lib(11.2M)有点大. //用要staticlib.否则不行. //如果没有i686-pc-windows-m…

2309d的几个问题

要从函数类型取函数指针类型,可在末尾添加*: void func(int) {} alias FuncType typeof(func); pragma(msg, FuncType); //空(整型) alias FuncPtrType FuncType*; pragma(msg, FuncPtrType); //空函数(整数) static assert(is(FuncPtrType typeof(&func)));下个: voi…

2312d,D语言单元测试等

原文 我最近决定在"系统编程"领域试些小众语言.我已用了Java,Dart和Kotlin等高级语言编程多年了(并试了许多其他相同级别或更高级的语言),需要扩大视野,因为对某些类型应用,这些语言并不是最好的工具. 这篇博文中,我想重点介绍D语言这里,经过一些初步实验,它比其他语…

2311ddip1000不能从函数返回域引用

原文 以下程序无法用-previewdip1000编译: void main() safe {int[3] a [1, 2, 3];int[] slice;//好slice a[];scope ref getSlice() { return slice; }//错误:把对a局部变量的引用赋值给非域getSlice()getSlice() a[]; }getSlice应该可返回可安全地赋值给a[]的引用. 如常…

2308d用户定义限定符

原文 import std;enum Qual;template Qualified(Q,T) {Q struct Qualified{T t;alias t this;} }struct S {}alias SQual Qualified!(Qual,S);void filterQual(T : S)(T t) if (hasUDA!(T, Qual)) {}void both(T : S)(T t) {}void main() {S s;SQual sq;both(sq);both(s);fil…

d优化虚函数调用

原文 第1部分介绍ldc中的按配置文件优化(PGO).一篇关于通过转换间接调用为直接调用来,使用配置文件数据优化虚(类)调用函数,并介绍了如何使用llvm在LDC中实现.ldc介绍,llvm地址 用PGO编译时,LDC的D代码(测试用例上)速度提高了7%. 按配置优化(PGO) 本文中,讨论给定程序典型执…

2403d,d解析c++符号

原文 这里有个简单的无需更改动态库或应该动态链接到它的DMD项目中源码的方法.当然,并不能解决潜在的C调用约定问题(C不存在),但可在有它们时再调查. 我做了个小小的概念证明,它有效.为了具体起见,假设动态库是libx.dll,使用安装了最新MSYS2的(mingw64)gcc构建它,因为这是我需…

2312d,d语言调用C++的类

域用法 import core.stdc.stdio; import example1; extern(C): void main() {scope Foo1 fnew Foo1();//D语言在betterC下//可以类似C栈上构造并析构!f.foo();f.bar(42); }/*输出: || Foo1::Foo1() || Foo1::foo() || Foo1::bar(42) || Foo1::~Foo1()*/编译命令:dmd -betterC …

2310D必须在构造器中初化嵌套构的字段

原文 考虑该几乎最小的示例: import std.algorithm; import std.range; import std.stdio; struct S(Nested){Nested member; //I.init;//取消注解无用int g;this(Nested member){this.member member;}this(int g){this.g g;version(fix)member Nested.init;} } //IFTI处理…

2309d用dub使用共享库

原文 大家好! dub是构建D的主要方式. 处理共享库时.特别是在窗口上,如何整合共享库到你的项目中?因为对插件开发,它是超级强大的工具: 对dub.json配置,先构建共享库: "name": "shared_lib", "targetType": "dynamicLibrary", "…

2312d,用d来网络聊天

原文 D中的网络聊天 这是个自包含的小型聊天程序.它没有数据库;如果打开连接,则会看到新消息.否则,就会消失.关闭选项卡,则历史记录会消失. 在此,它是实时可玩的: 这里 代码如下: import arsd.cgi; import arsd.dom; class ChatApi : WebObject {Element main() {auto elem…

2312d,d语言来绑定C++和rust

原文 各编译语言相同概念 1,按可重用函数拆分代码. 2,由源码中的函数名生成的串来标识函数.如,g为void foo()生成_Z3foov的标识.此串总是是可重现的;如,Linux上的Clang和GCC都遵循ItaniumCABI约定来装饰函数名. 3,在内存中的特定位置存储该函数的所有参数,然后用调用或等效指…

2312d,d调用中文C++库

调用方: import core.stdcpp.string; //用C的串. import std.stdio;extern(C){bool bb(ref string a); } bool cc(ref string a);void main() {string c"bb";string d"";writeln(c,d);bool acc(c);writeln(c,d);bool bbb(d);writeln(a,b); }C这边,根据需要…

d答复引用等问题

原文 :让ref成为TypeCtor,不是更简单地解决问题吗? 技术上,答案是肯定的,但现实是,答案不仅是否定的,而是:绝对不行. :虽然使用()是消除两个不同结构歧义的自然方法,但似乎导致问题的唯一情况是,无法在函数类型中表达"按引用返回". 这是开场白.我研究了可表达的各…

2310D导入c部分可用

看看简单的示例(该示例不使用.di文件): 这里 克隆它并放文件在方便的地方. 现在,试使用它. 在此例中,map.c和app.d在同一目录中. import std.stdio : writeln; //使用map.c import map; import std.string : toStringz; alias c toStringz; void main() {hashmap* m hashmap…

2310d编译不过

struct A {this(int[] data) safe { a data; }int[] a; }void main() safe {int[3] test [1, 2, 3];A a A(test); }应该给data参数加上return scope.或让构造器为模板参数来推导,否则,构造器可以把栈分配切片赋值给全局变量.

d修复导入c的问题

原文 void my_fatal() {*((volatile unsigned int *) 0) (unsigned int) 0xdeadbeefUL; }导入C中忽略易失. 可这样替代: static void* p; *(unsigned int*)p (unsigned int) 0xdeadbeefUL;导入C赋值数组复合字面给使用GC分配的指针 void fn() {void *p (int[1]){0}; }这使…

2310d亚当1009

原文 考虑缓存CTFE结果的潜在新示例:只需在标准运行时函数中,包装它们即可.在模板实例周围使用属性取器,而不是声明变量.表明发射到目标文件,而不是在导入时重新计算. ctfe缓存 SS在Discord聊天室发现了MartinNowak在Phobos中编写的一些旧代码,带有一条奇怪的注释:它说它在自…

2306d的模块文件开关

原文 使用d的模块文件开关 D编译器的模块文件切换文档如下说: -mv<包.模块><文件>:<文件>作为<包.模块>的源文件.当源文件路径和名与包和模块层次不同时,使用此方法. 如果路径/文件名和包.模块的最右侧组件相同,则可省略它们. 但这并不能真正描述它…

2311d,模板上的推导类型

原文 我正在试实现替代的基础库,来避免模板/mixin/static/traits代码,只为了:使得更容易解析"智能感知"代码. 我需要"泛型",但D没有泛型:我按"最简单"方式使用模板. 即: interface IIterable(T) {bool empty();void popFront();T front(); } II…

2309亚当arsd的11.1版本

原文 arsd11.1 Minigui 调整主题 在11.0中略有修改Minigui的主题,但它落后于11.1的计划.这是个重大更改,但这些更改很小. 新主题稍微变浅了默认组件的背景色和默认字体,这两者都主要影响Linux,因为窗口上的大多数组件一般使用本地主题. 更改状态栏 现有的状态栏类允许添加…

2309d替换模板

原文 本周开始调试旧PR,以将_d_newarray{U,iT,T}转换为两个模板: 1,_d_newarrayT是让编译器降级新 A[n]到的模板.它决定在编译时,如何根据数组元素类型初化数组元素. 2,_d_newarrayU是_d_newarrayT调用的泛型实现.要分开此勾挂,因为其他函数(如dup())要调用_d_newarrayU. 因为元…

2311d更好C析构类

原文 我在betterC模式下自定义了object.d并创建了新(NEW)模板,使用模块,似乎可在没有extern(C)模式时创建类,且调用函数中的转换类型似乎工作正常. 但是当析构时没有找到调用相应子类的__xtdor()方法,是否可正确执行__xtdor()? 我只是定义了一个空的对象类,在编译时选择objec…

2307d模板的和类型

原文 你好.我无法处理模板.很悲惨,构建正常,测试错误. struct ParsResult(T) { T[] _in; T[] _out; } struct Err(T) { T[] x; } struct Result(T) {SumType!(ParsResult!T, Err!T) data;alias data this;this(Value)(Value value) { data value; } } Result!T applay(T)(Res…

2311d导入c的语义不同

原文 以下D代码正常工作: enum X "X"; import core.stdc.stdio; void main(){puts(X); }但是,如果该X枚举是C文件中#define的结果,则会出现错误: //x.c #define X "X" //D代码 import x; import core.stdc.stdio; void main(){puts(X); //错误 }错误:不…

2310d模板替换运行时

原文 上周,我开始从我之前的PR中的_d_newarray{i,}T实现开始,把_d_newarraym{i,}T转换为模板.目前,我已实现了新勾挂并更新了降级,但在编译器中遇见了一些测试失败. 修复它们之前,出现了该错误,它是因为我降级到_d_arrayappend{T,cTX}引起的. 我前段时间处理了这些勾挂,并用AS…

2307d若加法器

原文 如何缩写类似: struct myS {int a, b, c, d, e, f, g, h, i;adder(string s, int n) {final switch (s) {case "aa" :a n; break;case "bb" :b n; break;...} }可以这样: module mys; import std.exception;class UnknownRegister : Exception {m…

2311dC++连接与串

原文 extern(C)函数使用在装饰名中包括参数类型的C装饰名.但是,因为C没有像D的T[]内置切片类型,因此C没有有效的D切片装饰. 因此,无法编译以D切片为参数的extern(C)函数. 为此,可按结构转换切片: struct DSlice(T) {T* ptr;size_t length;T[] opIndex() > ptr[0 .. length]…