2412d,d的6月会议

news2024/12/27 8:25:45

信息:gtkD的文档位置
原文

总结

DMDARM后端

RazvanWalter他对DMDARM后端的分发,并想知道他是否考虑过其他选择,如整合DMD前端与LDC后端.
Walter说,人们写信告诉他,他们喜欢使用DMD,因为它体积小,速度快.多年来,就要求他实现ARM后端.
有的人想写一个,但后来因为太难或太耗时而丢弃了.所以他决定完成它.

最初不打算优化.ARM指令集复杂得离谱,但有一条简单的路径.他坚持使用简单路径,且不会生成超出全局优化器寄存器分配器已完成的优化代码.

一旦实现简单路径正常工作,就可基于每条指令微优化.当前,他的进度很快.可编译简单的函数,且生成的代码是正确的.

他已为它编写了一个反汇编器,这样,就方便检查生成的代码.一个大问题是缺少内联汇编器.如果没有它,就无法编译所有运行时.

BradRoberts已编写了一个ARM反汇编器,并表示想适配ARM64.这与编写ARM后端无关,所以如果他能完成就好了.

Razvan认为,用D认真工作的人都会因ARM使用LDC.
虽然这对D的总体方向可能很有趣,但他不确定这是否是Walter的最好分配时间.

沃尔特说,这很对,但他对它所带来惊讶之多感到兴趣.此外,从头到尾控制编译器是件好事.他不知道LDCGDC后端工作原理,因此他很难添加新功能.

Walter说,DMD中的Intelx86内联汇编器并不是他编造的什么笨拙的东西.它与Intel规范匹配,因此有一一对应的关系.
ARM反汇编器及他打算搞的汇编器匹配规范.他对LDCGDC使用的语法一无所知.

Martin说,对x86,有两个方言,IntelAT&T.LDCGDC都使用了AT&T方言,而该方言恰好不太常用.但对ARM来说,他们恰好到处都是相同方言.
重要的是它是基于串的,因此可独立于架构.

他说内联汇编器是个小问题.关于RazvanWalter使用时间的问题,Martin说根据Walter.如果他认为价值,他就应该去做.
几年前,当该讨论前出现时,Martin认为Walter的时间最好花在修复漏洞上.但他现在有很多行业经验.甚至Symmetry也仅是因为它的速度,而使用DMD调试构建.

他同意Walter.在一个代码基中,而不是依赖有巨大后端的巨大代码基中,放置所有内容真是太好了.在DMD快速的完成了所有操作.

这是最主要的事情.所以他觉得如果Walter想做这件事,他应该有自由.

Rikki说,如果没有ARM支持,DMDOSX上已死了.他说明Atila想在守护进程单元测试.如果你正在编写目标文件,则已失败了.DMD的后端非常适合JIT.

沃尔特说还有另一个小问题.很难理解DMD后端的工作原理,及如何改进或修改它.

他已很多年没有看过太多代码了,在试实现ARM后端时,他不得不重新投入其中,弄清楚它工作原理.他能看出这是多么难以理解.

它的结构相当简单,但所有x86的大量指令集,所有特例,所有来各种对象奇怪指令序列,只是很难梳理出他们的实现.

他觉得ARM的实现要简单得多.

当前,它简单得多,但它遵守与x86实现相同结构.对想要增强代码生成器的人来说,它会更容易.它还可帮助想要修改x86后端的人.

因为结构是相同,所以可查看它以了解x86版本中的给定函数正在做什么.
Walter同意Rikki的视图,即可用作简单的JIT.他没有想到它.

Walter说,很少需要内联汇编.但这是当你需要它时,很重要.否则,你将以十六进制编程.

蒂蒙说,这是他会在所有方面都支持沃尔特的案例之一.为DMD提供ARM后端很重要,因为DMD是一个非常容易理解编译器.

它很容易克隆和构建.如果它在ARM上继续工作,那就太好了.至于内联汇编器,DMDx86干的,要优于LDCGDC.

Walter说明,他不会试适配现有内联汇编器,因为它是一段可怕的代码.他不是原作者,每次有新的Intel指令他必须支持时,他总是担心他无法让它工作.

Rikki认为,如果今天有人使用内联汇编,那就是编译器错误.它表明缺乏内联.如,原子都应该是内置.

这些都不应是内联汇编.因此,内联汇编器的优先级应该是低优先级的.

d标准库与运行时

应该把d运行时精简到编译器的期望核心,并在其他位置放置其余部分.

沃尔特说,它不一定非得去其他地方.可在不同包中放置编译器和库来处理.

为什么vibe.d没有赢得基准测试

Rikki说,他在上个月受到了启发,审查了vibe.d,因为它没有赢得基准测试.他查看了核心,发现它轮询每线程的64个句柄来处理事件.
然后,纤程重载都可安全地移动.
沃尔特说他对此没有异议.
Walter说,另一个方法可能是使函数变为.纯函数禁止访问可变的全局数据,而TLS数据就是这样.Rikki说,这对VM勾挂等等不行.
最好是禁止TLS并有黑名单和白名单.至少它提供了一条移动路径,直到取得合适的协程.
Mathias建议每线程运行一个分发器.Rikki说,问题总结为IOCP事件.要用IOCP.即必须支持在线程间移动纤程.
否则,将每线程有64个句柄.Adam对此表示赞同.他说,现在窗口上的一切都依赖IOCP.没有它,你取得无法性能,吞吐量或低懒.
不得不接受它.
Mathias问这是否是仅限窗口的要求.AdamLinux上的iou_ring是一样的.Rikkiepoll说了同样的话.
Mathias说你可在每个内核上运行一个epoll.Rikki说,你仍只会在其中一个线程上取得句柄的事件.自窗口2k以来,IOCP一直是25年的黄金标准.

.di生成器

Rikki一直在研究.di生成器,并认为它当前对DI文件无用.
但他一直分发使用ImportC和.di生成来重做d运行时的头文件,与窗口模块一样.
Razvan说明,DMD内部使用了DI生成器的一部分.如,如果你想打印一些AST节点,则你使用DI生成器中的功能.

Adam说,根据他的经验,窗口头文件和API非常稳定,尽管他确信可找到边角.使用ImportC生成DI所有其他选项都要好.

它接受了后处理版本,因为D编译器也是一个C编译器,所以它就可正常工作了.他在ODBC头文件上使用它,效果非常好.
这些现在是d运行时窗口头文件的一部分.

可开始制作更多此窗口头文件.然后,当有新的窗口SDK时,更新与提供新SDK的路径给构建系统并生成DI文件一样简单.
之所以这样,是因为他一直在研究Phobosv3d运行时,弄清楚需要做什么.为此,使用ImportCDI生成比从C头文件生成约束其他工具都要好.

Adam说,动力来自工具.他常用VSCode,而code-d可在你只使用普通版本时读取DI文件.不经常预处理可能会带来性能优势,但这不是动机.

Steve说还有一个问题,即你无法组织ImportC文件,但你可组织DI文件.DI文件是独立的模块,但ImportC文件放在一个大模块中,因此如果从多个地方导入,就会冲突.
Adam说他从ImportC生成了DI文件,来他使用zstd一些工作,效果很好.

D的文档/用户指南

略.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式驱动开发详解4(内核定时器)

文章目录 前言通用定时器系统节拍节拍数与时间转换基本框架定时器使用代码展示通用定时器特点 高精度定时器 前言 LInux内核定时器是一种基于未来时间点的计时方式,以当前时刻来启动的时间点,以未来的某一时刻为终止点。比如,现在是10点5分&…

力扣-图论-3【算法学习day.53】

前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向和记录学习过程(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非…

2024年认证杯SPSSPRO杯数学建模D题(第一阶段)AI绘画带来的挑战解题全过程文档及程序

2024年认证杯SPSSPRO杯数学建模 D题 AI绘画带来的挑战 原题再现: 2023 年开年,ChatGPT 作为一款聊天型AI工具,成为了超越疫情的热门词条;而在AI的另一个分支——绘图领域,一款名为Midjourney(MJ&#xff…

各种常见生信格式文件的随机抽样

样本检验、随机生成数据、模拟用等,都需要从现有测序数据中随机抽样出一小部分数据来,按照自己需求。 0,最经典的方式: 使用awk等,只要了解各种数据格式具体的行列组成(一般是headerrecord)&a…

【技展云端,引擎蓝天】2025涡轮展之民用航空发动机技术分论坛及展览展示

2023年全球航空发动机市场规模约为1139.72亿美元,预计到2030年将达到1511.95亿美元,年均复合增长率为4.12%。这主要得益于全球航空运输需求的不断增长、新兴市场的快速扩张以及更高效、更环保的发动机技术创新。 航空发动机是一种高度复杂和精密的热力机…

【算法】——前缀和(矩阵区域和详解,文末附)

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 一:前缀和模版 二:前缀和模版2 三:寻找数组的中心下标 四&#x…

【kotlin 】内联类(value class / inline class)

官方文档:https://kotlinlang.org/docs/inline-classes.html 注:inline class 关键字已经被废弃,取而代之的是value class。现在使用内联类需要定义类为value class,并使用JvmInline注解进行标注。 一、使用场景 有时候&#xff…

【热门主题】000076 探索单片机的奥秘:原理、编程与应用全解析

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

泷羽sec学习打卡-shell命令9

声明 学习视频来自B站UP主 泷羽sec,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都 与本人无关,切莫逾越法律红线,否则后果自负 关于shell的那些事儿-shell完结 方法一方法二重定向示例1示例2示例3 文件描述符例1例2 实践是检验真理的…

【Java】Scanner类的使用

Scanner类:从输入源(键盘)读取数据(Java自己已经写好的一个类) 使用: 1.导入Scanner类:import java.util.Scanner;(为使用Scanner类做准备) 2.创建Scanner类的对象&am…

摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/12/04

Learning Roadmap: Section 1: Intro to Parallel Programming & MUSA Deep Learning Ecosystem(摩尔线程 国产显卡 MUSA 并行编程 学习笔记-2024/11/30-CSDN博客)UbuntuDriverToolkitcondapytorchtorch_musa环境安装(2024/11/24-Ubunt…

Mac安装MINIO服务器实现本地上传和下载服务

0.MINIO学习文档 Minio客户端mc使用 | Elibaron学习笔记 1.Mac安装MINIO 中文官方网址:MinIO下载和安装 | 用于创建高性能对象存储的代码和下载内容 (1) brew 安装 brew install minio/stable/minio (2)安装完成,执行brew i…

2024-12-03OpenCV图片处理基础

OpenCV图片处理基础 OpenCV的视频教学:https://www.bilibili.com/video/BV14P411D7MH 1-OpenCV摄像头读取 OpenCV使用摄像头读取图片帧,点击S保存当前帧到指定文件夹,点击Q关闭窗口,点击其他按钮打印按钮的值 要实现这个功能&…

nginx中tcp_nodelay、types_hash_max_size都是什么配置?

nginx中tcp_nodelay、types_hash_max_size都是什么配置? 在 Nginx 中,tcp_nodelay 和 types_hash_max_size 是两个不同的配置项,它们分别与网络性能优化和 MIME 类型的管理相关。 1. tcp_nodelay 功能: 控制是否启用 TCP_NODELAY…

openGauss开源数据库实战十九

文章目录 任务十九 openGauss DML 语句测试任务目标实施步骤一、准备工作二、INSERT语句三、DELETE语句四、UPDATE语句五、清理工作 任务十九 openGauss DML 语句测试 任务目标 掌握DML语句的用法,包括INSERT语句、DELETE语句和UPDATE语句。 实施步骤 一、准备工作 使用Li…

400G智算网络助力知名自动驾驶企业算力训练提效

根据Gartner的最新趋势预测,自动驾驶技术正迅速发展,预计在未来几年内将带来显著的商业效益,特别是在决策智能和边缘人工智能领域。目前,一家领军企业正积极拥抱基于大模型的数字化转型之路,作为自动驾驶领域的佼佼者&…

openEuler 知:安装 GNOME 桌面

openEuler 标准版 ISO 镜像默认不带桌面安装方式,可以先用最小化方式安装系统,然后单独安装 GNOME 组来实现桌面化 dnf group install GNOME -y安装完后,将 systemd 默认 target 设置为 graphical.target systemctl set-default graphical.…

《ODIN: A Single Model for 2D and 3D Segmentation》CVPR2024

斯坦福和微软: 代码链接:ODIN: A Single Model For 2D and 3D Perception 论文链接:2401.02416 摘要 这篇论文介绍了ODIN(Omni-Dimensional INstance segmentation),一个能够同时处理2D RGB图像和3D点云…

多行为推荐-KBS 24|基于HyperGRU对比网络的短视频推荐多行为序列建模

论文:https://www.sciencedirect.com/science/article/abs/pii/S0950705124004751?via%3Dihub 关键词:短视频推荐,多行为推荐,对比学习,RNN 1 动机 这是我第一次看短视频推荐里涉及到多行为的论文,动机还…