内容简介:Inko 0.8.1 已经发布了,提供了运行Inko字节码的新方法,减少了依赖,以及简化了构建和安装过程。 内容列表 重用垃圾回收线程 字节码文件(Bytecode files)被字节码映像(Bytecode images)取代 “持续时间”方法的重...
Inko 0.8.1 已经发布了,提供了运行Inko字节码的新方法,减少了依赖,以及简化了构建和安装过程。
内容列表
- 重用垃圾回收线程
- 字节码文件(Bytecode files)被字节码映像(Bytecode images)取代
- “持续时间”方法的重命名
- 翻新构建系统
- 不再有预编译包
- 翻新CLI
- 减少依赖
- 使用AES-NI加快哈希处理
- 文档修改
- Arch Linux 包
- Homebrew 格式
有关更改的完整列表,请看更改日志。
如果您想支持 Inko的发展,请通过Github赞助商赞助商向Inko捐赠。
注意: 此版本对构建系统进行更改。如果使用ienv管理Inko的安装,则需要先升级 ienv,然后才能安装 0.8.1。
重用垃圾回收线程
Inko 执行并行垃圾回收,这意味着多个线程用于垃圾回收进程。在版本 0.8.1 之前,每当执行垃圾回收时,Inko 都会生成这些线程。从 0.8.1 开始,这些线程将引发VM 启动并重新使用。这将减少垃圾收集过程所花费的总时间。
有关详细信息请看合并请求。
字节码文件(Bytecode files)被字节码映像(Bytecode images)取代
在版本 0.8.1 之前,Inko 的编译器将生成每个源文件的字节码文件。每当必须导入模块时,VM 都会加载这些字节码文件。从 Inko 0.8.1 开始,编译器将生成一个称为"字节码映像"的字节码文件。此文件包含运行应用程序所需的所有字节码,与JAR非常相同。VM 不再按需加载单个字节码文件,而是运行此字节码映像。
这减少了加载模块所需的磁盘 IO 量,并允许 VM 并行分析此字节码映像中的模块。由于只需分发单个字节码文件,因此分发也变得更容易。
并行模块解析对小型和大型项目都很有用,有助于尽可能降低启动时间。例如,运行一个空的 Inko 程序只需要大约 5 毫秒。相比之下,一个空 Ruby 2.6.6 程序至少需要 45 毫秒,一个空 Python 3.8.5 程序至少需要 15 毫秒。当然,空程序没有用处,但这给出了基本启动开销的想法 。
有关详细信息请看合并请求。
“持续时间”方法的重命名
对std::time::Duration 类型的以下方法进行了重命名:
旧名 | 新名 |
Duration.as_seconds | Duration.to_seconds |
Duration.as_milliseconds | Duration.to_milliseconds |
Duration.as_microseconds | Duration.to_microseconds |
翻新构建系统
从源头构建 Inko 的过程已经清理、简化,并且拆分为两个阶段:构建和安装; 而不是所有的东西都混入一个单一的阶段。 构建Inko现在是一个运行make build的事件,安装是一个make install的事件。
可以通过设置PREFIX
和/或DESTDIR
变量来定制构建和安装过程可以通过设置PREFIX
和/或DESTDIR
变量来定制构建和安装过程。在运行时,该PREFIX
变量指定的基本目录来加载文件。并且还充当默认DESTDIR。
该 DESTDIR
变量指定在安装过程中将文件移入的目录。该目录可以不同于PREFIX
目录。这很有用对于包管理器。在为软件包管理器构建软件包时,因为这些包通常在打包时安装到某种 chroot/jail 中并且排序 。
开发构建也变得更加容易。例如,要构建用于开发Inko本身的VM,请运行:
make vm/release DEV=1
这将构建VM,使其从Inko存储库的本地Git克隆加载所有必需的文件。
如果使用的是ienv,则必须先升级到最新的ienv版本,然后才能安装0.8.1。假设您已在中安装ienv ~/.local/share/ienv
,则可以进行以下升级:
cd ~/.local/share/ienv
git pull origin master
接下来,您需要清理ienv可能产生的所有缓存:
ienv clean
然后可以按如下所示安装0.8.1:
ienv install 0.8.1
升级到ienv的最新版本后,将无法安装较旧版本的Inko,它们将不再起作用,并且不会显示在中ienv known
。
结合减少的依赖性数量(请参见下文),您现在可以使用Visual Studio构建 工具 在Windows上构建Inko。这个过程仍然有些牵涉并且没有记录,但是可以归结为以下步骤:
- 安装Visual Studio 2017生成工具,并启用C ++ / CLI功能
- 安装Rust和
stable-msvc
工具链rustup toolchain install stable-msvc
- 启动x64 Visual Studio开发人员提示,并导航到Inko源代码的本地副本
- 跑
set RUSTFLAGS=-C target-feature=+aes
- 跑
rustup run stable-msvc cargo build --release
如果一切顺利,您现在应该inko.exe
进入./target/release
。
我们的目标是使此过程更轻松,并在将来进行记录。
没有更多的预编译包
从0.8.1开始,我们不再提供针对Linux,macOS和Windows的预编译软件包。我们发现这会使发布过程变得过于复杂,同时又没有带来足够的收益,因此值得付出努力。相反,我们将集中精力将Inko放入软件包管理器存储库中。有关更多详细信息,请参阅此问题。
改进的CLI
Inko现在仅向您的PATH公开一个可执行文件inko
。0.8.1版本之前,INKO也将暴露的可执行文件ivm
,inkoc
和inko-test
。
要运行脚本,现在使用inko example.inko
或inko run example.inko
。您也可以直接使用来运行脚本-e/--eval option
。例如:
inko run -e "import std::stdio::stdout
stdout.print('hello')"
如果您只想编译程序,请运行inko build example.inko
。然后将结果字节码保存在中./example.ibi
。
如果要从./tests/test
目录运行单元测试,请运行inko test
。
更少的依赖
Inko依赖libffi,因此Inko源代码可以与C库进行交互。在0.8.1版之前,libffi始终是从源代码构建的,并且需要使用automake,autoconf,libtool,Make和libclang进行构建。在 Linux 上,可以使用程序包管理器安装这些依赖项,但是在其他平台上,可能不那么容易。例如,macOS附带clang但不附带libclang。您可以使用Homebrew安装LLVM(从而安装libclang) ,但是默认情况下PATH中不提供此安装。在准备使用安装之前,需要执行额外的步骤。
从Inko 0.8.1开始,不再需要LLVM和libclang依赖项。现在,您还可以选择使用来使用系统提供的libffi安装。如果有的话。使用系统libffi安装时,不需要automake,autoconf和libtool。
要构建Inko以使其使用系统的libffi安装,请运行以下命令:
make build FEATURES='libinko/libffi-system'
sudo make install
然后将相对于Inko安装Inko /usr
,并将可执行文件放置在 /usr/bin/inko
。
使用AES-NI进行更快的哈希处理
Inko在许多地方使用哈希。为了加快速度,Inko现在使用aHash板条箱,并使用AES-NI支持进行编译。自2010年左右以来,几乎所有CPU都具有AES-NI支持,因此无需进一步更改。
如果您的CPU不支持AES-NI,则需要手动构建VM,而不是使用Make。您可以通过cargo build --release
在Inko项目的根目录中运行来实现。如果还想使用系统libffi安装,则需要运行以下命令:
cargo build --release --features libinko/libffi-system
文件变更
我们正在使用mkdocs进行新的文档设置 。在完成这项工作之前,当前的文档可能在几个地方已经过时。新的文档设置旨在使查找文档,撰写文档和提供更丰富的格式设置功能(例如提示和警告)变得更加容易。
在合并请求https://gitlab.com/inko-lang/inko/-/merge_requests/103中跟踪了此进度 。
Arch Linux软件包
如果您使用的是Arch Linux,现在可以使用AUR安装Inko。AUR提供了两个软件包: inko和 inko-git。“ inko”软件包安装Inko的最新稳定版本,而“ inko-git”软件包则从Git安装Inko。
如果您使用yay作为您的AUR助手,则可以按以下方式安装这些软件包:
yay -S inko-git # To install from Git
yay -S inko # To install the latest stable version
自制配方
Inko的Homebrew公式已更新为安装0.8.1。自制软件用户可以按以下方式安装此新版本:
brew update
brew install inko
以上所述就是小编给大家介绍的《Inko 0.8.1 发布》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- NPM包(模块)发布、更新、撤销发布
- 有赞灰度发布与蓝绿发布实践
- 【重磅发布】Linkis 0.10.0 版本发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
- 贝密游戏 0.7.0 发布,发布斗地主
- 【重磅发布】DataSphere Studio 0.9.0 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据压缩导论(第4版)
[美] Khalid Sayood / 贾洪峰 / 人民邮电出版社 / 2014-1 / 129.00
数据压缩已经成为信息革命的一门支撑技术,这场革命已经改变了我们的生活,而在此过程中,数据压缩也变得几乎无处不在。从MP3播放器到智能手机,再到数字电视和数字电影,数据压缩几乎成了所有信息技术的必备要素。 近年来,以大数据为标志的互联网技术高歌猛进。数据规模大、产生速度快、来源多样等特性,导致数据存储和处理都前所未有地复杂。《数据压缩导论(第4版)》作为迄今为止数据压缩领域最全面而深入的著作,......一起来看看 《数据压缩导论(第4版)》 这本书的介绍吧!