查看原文
其他

Deno 1.8发布:实验性支持WebGPU API、导入映射已稳定

局长 FOSS Lab 2021-09-09
点击蓝字默默关注


Deno 1.8 已正式发布,此版本包含许多新功能以及稳定化的改进。

  • 实验性支持 WebGPU API:主要是为在 Deno 中支持开箱即用的 CPU 加速机器学习做准备

  • 启用内置的国际化 API:所有 JS Intl API 支持开箱即用

  • 改进测试覆盖工具:覆盖工具支持输出lcov报告

  • 导入映射 (Import maps) 已处于稳定状态:重写 Web 兼容性的依赖关系已正式生效

  • 支持获取私有模块:可使用身份验证令牌从私有服务器获取远程模块

如果已经安装了 Deno,运行deno upgrade命令即可升级到 1.8 版本。如果是首次安装,可以参考下面的方法:

# Using Shell (macOS and Linux):curl -fsSL https://deno.land/x/install/install.sh | sh
# Using PowerShell (Windows):iwr https://deno.land/x/install/install.ps1 -useb | iex
# Using Homebrew (macOS):brew install deno
# Using Scoop (Windows):scoop install deno
# Using Chocolatey (Windows):choco install deno

实验性支持 WebGPU API

WebGPU API 为开发者提供了一种底层、高性能、跨架构的方式来通过 JavaScript 对 GPU 硬件进行编程。它被认为是 WebGL 在 Web 上的实际继任者。WebGPU 规范尚未最终确定,不过 Firefox、Chromium 和 Safari 已添加对它的支持,现在 Deno 也已添加了实验性支持。

开发者可以通过此 API 直接从 Deno 内部访问 GPU 渲染和通用 GPU 计算。下面是一个基础示例,演示了如何访问连接的 GPU 设备以及读取名称和支持的功能:

// Run with `deno run --unstable https://deno.land/posts/v1.8/webgpu_discover.ts`
// Try to get an adapter from the user agent.const adapter = await navigator.gpu.requestAdapter();if (adapter) {  // Print out some basic details about the adapter.
 console.log(`Found adapter: ${adapter.name}`);
 const features = [...adapter.features.values()];  console.log(`Supported features: ${features.join(", ")}`);
} else {
 console.error("No adapter found");
}

下面的例子演示了 GPU 使用渲染着色器在绿色背景上渲染出一个简单的红色三角形:

$ deno run --unstable --allow-write=output.png https://raw.githubusercontent.com/crowlKats/webgpu-examples/f3b979f57fd471b11a28c5b0c91d0447221ba77b/hello-triangle/mod.ts

Deno 开发团队提到,此功能最终合并的 PR 包含多达 15.5 万行代码,并且花费了整整 5 个月的时间进行合并。

改进测试覆盖工具:deno coverage

此版本扩大了覆盖范围基础架构,以添加一些强大的新功能,其中主要变化是,覆盖率处理现在分为覆盖率集合和覆盖率报告。

导入映射已稳定

导入映射在 Chrome 89 已处于稳定状态,Deno 开发团队也紧跟着进行了更新以匹配该规范的最新版本,并且现在也被认为已处于稳定状态。这就意味着使用--import-map时不再需要--unstableflag。

$ deno run --import-map=./import_map.json ./mod.ts

此外,--import-mapflag 现在不仅接受本地路径,而且接受 URL,从而可以从远程服务器加载导入映射。

$ deno run --import-map=https://example.com/import_map.json ./mod.ts

导入映射允许用户使用所谓的“裸”说明符来表示依赖关系,而不是相对或绝对文件地址/http URL:

// Deno does not support such specifiers by default,// but by providing an import map, users can remap bare specifiers// to some other URLs.import * as http from "std/http";{  "imports": {    "std/http": "https://deno.land/std@0.85.0/http/mod.ts"
 }
}

除了这些更新亮点,发布公告还介绍了许多其他新特性和改进,详情查看:https://deno.land/posts/v1.8



往期推荐

一个基于MongoDB社区版的免费、增强软件

2021-03-03

Windows Terminal Preview 1.7发布,新增只读窗格模式

2021-03-03

1万Star,一款基于C++的屏幕截图软件

2021-03-02


扫码关注最新动态

公众号ID:fosslab

我就知道你“在看”
视频 小程序 ,轻点两下取消赞 在看 ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存