首页 文章 精选 留言 我的

精选列表

搜索[Rust重写],共9005篇文章
优秀的个人博客,低调大师

Gleam v0.28 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最新发布的 0.28 包含以下变化: 改进语言服务器 (Language server) Gleam 0.21 引入了语言服务器,不过这个初始版本的功能有限。此后开发团队投入了许多资源来重构编译器的内部结构,以便进一步改进语言服务器。此版本便是这些改进的成果。 支持 Monorepo Gleam 通常使用 Erlang 虚拟机运行,但它也可以编译为 JavaScript 并在其他地方运行,例如 Web 浏览器。Gleam 社区用户会使用它来构建前端和后端都基于 Gleam 编写的 Web 应用程序,这两个部分都位于同一个代码仓库中。目录结构如下: louis ~/src/gleam/developer-survey $ tree -L 2 . ├── Dockerfile ├── README.md ├── fly.toml ├── backend │ ├── gleam.toml │ ├── manifest.toml │ ├── src │ └── test └── frontend ├── gleam.toml ├── manifest.toml ├── src └── test 在之前的版本中,语言服务器的每个编辑器实例只支持一个 Gleam 项目,编辑器在根目录下打开。如果打开另一个 Gleam 项目,语言服务器将无法对其进行分析,从而对程序员提供的帮助很少。 现在 Gleam 可以在单个编辑器会话中处理任意数量的 Gleam 项目,并且可以按照开发者自己喜欢的任何方式嵌套。语言服务器将为每个打开的项目启动一个新引擎,并将请求路由到每个文件的正确引擎。 鼠标悬停时显示更多信息 当将鼠标悬停在编辑器中的 Gleam 代码上时,语言服务器现在会显示文档。旧版本在悬停时只显示值,现在支持模式匹配模式,显示它们的类型和文档。 详细更新内容查看发布公告。

优秀的个人博客,低调大师

Gleam v0.27 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最新发布的 0.27 包含以下变化: 支持在use表达式(useexpressions)中使用模式 Gleamv0.25引入了use表达式,该功能有助于避免 Gleam 程序中的“回调地狱 (callback hell)”。它非常强大,可用于模拟其他语言中的许多功能,例如提前返回、列表推导 (list comprehensions)、async/await、monadic do 语法等等! pub fn handle(req: Request) -> Response { // Return an error for non-post requests use <- when(req.method != Post, return: method_not_allowed) // Parse the request body or return an error use json <- require_json_body(req) // Open a database connection, closing it when we're done use conn <- database.with_connection case database.insert(conn, json) { Ok(record) -> created_response(record) Error(err) -> bad_request_response(err) } } 表达式的一个限制use是模式不能用于它们的赋值,只能用于裸变量。这意味着您不能用它们解构元组或其他数据结构。从这个版本开始,表达式中现在支持模式use,以满足所有解构需求。 use #(first, second) <- some_tuple_function() 引入panic关键字 case this_should_never_fail() { Ok(value) -> continue(value) // Oh no! Something went horribly wrong! Error(_) -> panic } 优化断言 Gleam 的assert关键字用于确保数据匹配给定的模式,如果不匹配则程序崩溃。这很有用,但是用于assert此功能意味无法拥有assert与布尔表达式一起使用的功能,而这在其他语言中很常见。 为了解决这个问题,模式匹配功能已移至let assert语法。现有assert关键字已被弃用,稍后将用于更传统的断言功能,成为基于改进测试 Gleam 代码的人体工程学的更大 Gleam 里程碑的一部分。 let assert Ok(value) = this_should_never_fail() 详情查看发布公告。

优秀的个人博客,低调大师

Gleam v0.26 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.26 版本引入了增量编译。该项特性改进了构建工具,仅在必要的情况下编译所需模块,而不是整个包,从而显著提升 Gleam 编译器性能。 下面是官方提供的性能测试数据,参照对象上一个版本的 Gleam。 Erlang Benchmark 1: v0.25 Time (mean ± σ): 18.443 s ± 0.949 s [User: 18.458 s, System: 2.995 s] Range (min … max): 17.102 s … 19.968 s 10 runs Benchmark 2: v0.26 Time (mean ± σ): 140.8 ms ± 3.9 ms [User: 92.5 ms, System: 46.4 ms] Range (min … max): 138.0 ms … 156.1 ms 20 runs Summary 'v0.26' ran 130.99 ± 7.67 times faster than 'v0.25' JavaScript Benchmark 1: v0.25 Time (mean ± σ): 1.861 s ± 0.026 s [User: 1.543 s, System: 0.299 s] Range (min … max): 1.833 s … 1.927 s 10 runs Benchmark 2: v0.26 Time (mean ± σ): 145.3 ms ± 2.9 ms [User: 92.9 ms, System: 50.8 ms] Range (min … max): 141.4 ms … 154.3 ms 20 runs Summary 'v0.26' ran 12.81 ± 0.31 times faster than 'v0.25' Gleam 团队表示,下一步将继续改进编译器 IR 的效率、实现更精确的缓存失效策略、以及多线程编译。 此版本另一项值得关注的变化是支持在 Deno 运行时上运行。团队表示,Deno 在许多方面与 Node.js 相似,但它更符合 Web 标准 API,具有更好的安全性和流畅的开发者体验。 name = "my_project" version = "1.0.0" [javascript] runtime = "deno" 详情查看发布公告。

优秀的个人博客,低调大师

Gleam v0.25 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的 0.25 版本引入了一项期待已久的新特性:use表达式(useexpressions)。 官方介绍称,use表达式是一种语法糖,它将所有后续表达式转换为一个匿名函数,该函数作为附加参数传递给函数调用。 例如,假设有一个待调用的函数with_file,它会打开一个文件,将打开的文件传递给给定的函数,以便它可以读取或写入它,然后关闭文件。 // Define the function pub fn with_file(path, handler) { let file = open(path) handler(file) close(file) } // Use it pub fn main() { with_file("pokemon.txt", fn(file) { write(file, "Oddish\n") write(file, "Farfetch'd\n") }) } 通过使用use,此函数可以在没有额外缩进的情况下调用。下面使用use的示例会编译成与上面完全相同的代码。 pub fn main() { use file <- with_file("pokemon.txt") write(file, "Oddish\n") write(file, "Farfetch'd\n") } 而且它不仅限于单个参数,还可以使用任何参数的函数,包括不接受任何参数的函数。 发布公告 | Release Notes

优秀的个人博客,低调大师

Gleam v0.24 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。Gleam v0.24 现已发布,具体更新内容包括: In-project Elixir support Gleam 构建工具一直支持编译用Gleam或Erlang编写的模块,但现在它也支持Elixir模块。当你运行gleam build、gleam test等时,src目录下的任何Elixir代码的.ex文件将自动为你编译。 $ tree # . # ├── gleam.toml # └── src # └── project.ex # # 1 directories, 2 files $ gleam run # Hello from Elixir in a Gleam project! 这意味着 Gleam 项目现在可以充分利用 Elixir 的代码和库,包括那些使用 Elixir macro system 的项目。“值得注意的是,这并不意味着我们正在对 Elixir 代码进行类型检查或可以分辨出任何 Elixir 函数的类型签名。Elixir 代码将继续使用 Gleam 的外部函数功能导入。” <> operator Gleam 现在有了一个可以处理字符串的 <> operator。在一个表达式中,它将两个字符串不变地连接成一个新的字符串。 let who = "Joe" "Hello, " <> who <> "!" // => "Hello, Joe!" 在 pattern 中使用时,它可用于匹配具有给定前缀的字符串。 case input { "Hello, " <> name -> name _other -> "Unknown" } 这些新的字符串模式意味着可以编写 string parsers,使用虚拟机高度优化的模式匹配功能编译成高效的 Erlang 字节码。 一个演示:gleam-lang/example-lisp-interpreter. 更多 除了这些主要功能之外,开发团队还修复了 bugs并改进了 error messages,重点是:Elixir 依赖包支持现在适用于 Windows。 更多详情可查看changelog。

优秀的个人博客,低调大师

Gleam v0.23 发布,Rust 编写的函数式编程语言

Gleam 是一种类型安全且可扩展的编程语言,可用于 Erlang 虚拟机和 JavaScript 运行时。 最近发布的0.23 版本增加了新特性,以及其他优化。 支持 Elixir Gleam 在 Erlang 虚拟机上与各种其他优秀编程语言一起运行,因此开发团队希望利用通过这些语言编写的所有包。 以前使用 Gleam 构建工具的项目可能依赖于用 Gleam 或 Erlang 编写的包。从这个版本开始,还支持用Elixir编写的项目,让 Gleam 程序员可以访问几乎所有在 Erlang 生态的包管理器Hex 上找到的软件包。 在 Gleam 中使用 Elixir 软件包的开发者体验与使用 Erlang 软件包相同。 # Add an Elixir package to the Gleam project $ gleam add tzdata // Import a function from the package external fn tzdata_version() -> String = "Elixir.Tzdata" "tzdata_version" // Use it in Gleam pub fn main() { io.println(tzdata_version()) } 针对软件包升级的优化 开发团队希望尽可能简单地使用其他人编写的代码,并且希望避免“依赖地狱”,因此构建工具的用户体验是 Gleam 的一个重要领域。 到目前为止,难题的一个缺失部分是升级项目所依赖的包版本——以前它在很大程度上是一个手动过程。 在此版本中,有一个新gleam update命令将使用PubGrub算法有效地解析最新的兼容版本的依赖项。 $ gleam update # Tada, you're on the latest versions! 优化文档 Gleam 为软件包生成文档并将 HTML 发布到HexDocs,这是 Erlang 生态的文档站点。 在此版本中,生成的文档包括一个搜索栏,因此可以比以往更轻松地更快地找到函数、类型和模块。该搜索由LunrJavaScript 库提供支持,因此支持模糊匹配以帮助解决拼写错误,或者不太记得所需要查询的名称。 详情查看发布公告。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册