34 个稳定版本
2.3.5 | 2023年12月24日 |
---|---|
2.3.3 | 2023年11月19日 |
2.2.2 | 2023年7月31日 |
1.7.1 | 2023年3月28日 |
#152 在 编程语言 中
173 每月下载量
69KB
2K SLoC
╭─────────────────────────╮
│ ╷ • │
│ │ │
│ ╭─┤ ╭─╴ • ╶┤ ┌─┬─╮ │
│ │ │ │ │ │ │ │ │
│ ╰─┘ ╰─╴ • ╶┴╴ ╵ ╵ │
╰─────────────────────────╯
dc 改进版 - 扩展重写的经典逆波兰表达式计算器/隐秘编程语言
本说明仅提及与 GNU dc 的比较。如果您不熟悉其核心原则,请阅读其 man 页或 维基百科文章。
构建/安装
(假设已完整且更新了 Rust 环境)
一般
cargo install dcim
特定平台的问题
- 由于 Unix-like 处理终端控制的方式,导航输入(箭头、home、end...)已损坏。可能会通过添加适当的行编辑器在某个时候修复它。
- 在 Windows 上,由于某些我无法控制的原因(在 GNU MPFR 内部),一些具有巨大尾数的数字会导致崩溃。如果您想计算到十亿位的数字,请使用 WSL。当有令人满意的纯 Rust 任意精度浮点库可用时,我将切换到该库。
Windows
预构建 x86-64 exe
在此处下载。 存储在我的 NAS 上,不能保证可用或更新。如果您不介意麻烦,强烈建议您自己构建它。
构建
gmp-mpfr-sys
需要特殊的编译环境以链接到 C 库,请按照 此处 的说明进行。在 MinGW 中构建一次后,应该保留工件,并且可以构建新的 dc:im 版本,直到我更新到 gmp-mpfr-sys
的新版本。
Android (Termux)
MAKEFLAGS="-i" cargo install dcim
当前版本的 GNU MPFR 失败了一个无关紧要的测试(不知道为什么),使用 -i
来假装它没有发生。
如果发生其他错误,请使用 clang
export RUSTFLAGS=" -C link-arg=$(clang -print-libgcc-file-name)"
与 GNU dc 相比最重要的变化
- 新的命令,用于更容易的堆栈/寄存器操作和宏执行。
- 数字是具有任意精度的二进制浮点数(参数
W
)。参数K
仅适用于输出。 - 字符串具有完整的 Unicode 支持(以 UTF-8 存储)。
- 改进和新算术命令。
- 完整的字符串操作命令套件,包括正则表达式引擎。
- 可用的寄存器数量是无限的。
- 数字输入/输出基数无限向上,基数大于36时使用自定义的“任意基数”表示法。
- 扩展的命令行参数语法,运行
dcim -h
以获取更多信息。 - 错误信息更加有用和区分,且总是以
!
开头。 - 用于多线程宏执行的命令。
- 包含各种命名常量和单位转换系数的库。
将dc:im用作库
- 主要目的是将逻辑连接到不同的IO流集。
- 您还可以用它为您的程序计算某些内容,之后从
State
手动提取结果。
依赖项
~6.5MB
~116K SLoC