问题标签 [ldc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
390 浏览

optimization - 使 D 程序更快的方法

我正在做一个非常苛刻的项目(实际上是一个解释器),专门用 D 编写,我想知道通常会推荐哪种类型的优化。该项目大量使用了 GC、类、关联数组以及几乎任何东西。

关于编译,我已经对 DMD 和 LDC 标志进行了试验,而 LDC-flto=full -O3 -Os -boundscheck=off似乎正在发挥作用。

但是,尽管这听起来很简陋,但我希望您提出任何可以帮助加快性能的想法,无论是否与 D 语言相关。(我确定我错过了几件事)。

0 投票
1 回答
215 浏览

hyperlink - ldc2 -static 失败 ld.gold 错误找不到 -lphobos2-ldc -ldruntime-ldc

tl;dr LDC 编译和链接正常,直到使用 -static 标志,然后 ld.gold 找不到 phobos 或 druntime 库。

操作系统:Gentoo 64 位内核:5.4.48 DMD 版本:2.090 LDC2 版本:1.20.1(DMD v2.090.1,LLVM 10.0.0)

我正在尝试静态链接我制作的一些文件,以便可以在不需要 phobos 的情况下运行二进制文件。如果我尝试使用 dmd 或 ldc2 进行编译,则一切正常,但是当我使用以下命令进行编译时:

$ ldc2 -static -main filename

我收到以下错误:

连同 error: undefined reference to 'XYZ'我认为的许多原因是由于找不到 phobos 和 druntime 库。

我尝试自行运行 cc 指定我的 libphobos2-ldc-shared.so 和 libdruntime-ldc-shared.so 文件的位置,同时指定这些文件,结果相同:

我也尝试LD_LIBRARY_PATHS在我的 ~/.bashrc 中更新(并在更改后获取它),但这没有效果。

我似乎找不到其他人遇到过这个或类似的问题,但我觉得这可能与 gentoo 如何处理不同的 D 编译器有关。

我尝试同时使用 eselect 和外行方向,删除 ldc2 以遵循每种方法的方向,但没有效果。令人担忧的是,我的系统上不存在wiki ( https://wiki.gentoo.org/wiki/Dlang#Executables_paths )中提到的可执行文件和库路径。我也找不到任何 ldc2 配置文件,添加和编辑 ~/.ldc2 或 ~/.config/ldc2 也没有改变任何东西。

我现在也试过删除 dub、dmd、ldc2 和外行,并重新安装(外行先添加覆盖,然后安装 dmd 和 ldc2),但我遇到了同样的问题,路径和配置文件仍然不在dlang 上的 gentoo wiki 说他们应该在的地方。

关于解决这个问题需要做什么的任何想法?

0 投票
1 回答
58 浏览

c - 带有 adafruit RGBLCDShield Buttons 奇怪行为的 Arduino

我有带 rgb 液晶屏的 Arduino uno。一个特定功能中的按钮有一种非常奇怪的行为。

该函数称为是/否。它在屏幕上显示一条消息(工作),用户可以使用上/下/左/右按钮选择回答是/否,并通过按下选择按钮批准答案。

功能如下:

出于某种原因,当按下左/右/上/下时,没有任何反应。按下选择时,它会执行上/下/左/右功能

相反,使用if (buttons &&(BUTTON_UP || BUTTON_DOWN || BUTTON_RIGHT || BUTTON_LEFT))左/右/上/下按钮按预期工作,但按钮选择仍充当其他按钮

菜单的类似代码按预期工作:

由于 arduino uno 上的空间非常有限,我想让代码尽可能简短。

0 投票
1 回答
52 浏览

d - D 的`std.sumtype` 在哪里?

我正在开发一个 D 语言项目,我想使用标准库中的一个名为std.sumtype. 我在 debian oldstable 上,我已经尝试过 GDC 和 LDC。DMD 不可用,因为我使用的是具有 armhf 架构的机器。std.sumtype尽管它在标准库中,但这些编译器都找不到。我还尝试sumtype.d从所有三个 D 编译器的 phobos 存储库中下载 3 个不同版本的版本。这些中的每一个都不会编译。我该如何使用它?我在错误的版本吗?