内容简介: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 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
群智能算法及其应用
高尚 / 中国水利水电出版社 / 2006-5 / 25.00元
《群智能算法及其应用》系统地描述了蚁群算法和粒子群优化算法的理论和实现技术及其应用,简单地介绍了鱼群算法。《群智能算法及其应用》着重强调各种算法的混合,讨论了蚁群算法与模拟退火算法的混合、蚁群算法与遗传算法的混合、蚁群算法与混沌理论混合、模拟退火算法、遗传算法与粒子群优化算法混合、混沌理论与粒子群优化算法的混合以及蚁群算法与粒子群优化算法的混合。书中还讨论了群智能算法在旅行商问题、武器一目标分配问......一起来看看 《群智能算法及其应用》 这本书的介绍吧!
图片转BASE64编码
在线图片转Base64编码工具
Markdown 在线编辑器
Markdown 在线编辑器