From 6c094948c62abdbb132a28a26c0a5042ce2ffb20 Mon Sep 17 00:00:00 2001 From: Alexey Pyltsyn Date: Mon, 6 Sep 2021 10:49:18 +0300 Subject: [RU] Fix some typos (#2357) --- files/ru/webassembly/c_to_wasm/index.html | 8 ++++---- files/ru/webassembly/rust_to_wasm/index.html | 2 +- files/ru/webassembly/using_the_javascript_api/index.html | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'files/ru/webassembly') diff --git a/files/ru/webassembly/c_to_wasm/index.html b/files/ru/webassembly/c_to_wasm/index.html index f0cfd57bfe..bdd2e6dd3d 100644 --- a/files/ru/webassembly/c_to_wasm/index.html +++ b/files/ru/webassembly/c_to_wasm/index.html @@ -20,8 +20,8 @@ translation_of: WebAssembly/C_to_wasm

Когда рабочее окружение подготовлено, попробуем собрать пример кода на языке Си при помощи Emscripten. Вам доступно большое количество опций для настройки компиляции, но мы рассмотрим только два основных сценария компиляции с использованием Emscripten:

Мы рассмотрим оба способа ниже.

@@ -95,7 +95,7 @@ int main(int argc, char ** argv) {

В этот раз мы использовали немного другие параметры компиляции:

@@ -105,7 +105,7 @@ int main(int argc, char ** argv) {
-

Примечание: вы можете указать компилятору создавать только JavaScript кода, без HTML, используя внутри флага -o, .js вместо .html для формата выходного файла, например emcc -o hello2.js hello2.c -O3 -s WASM=1. После этого вы должны создать свой собственный HTML файл с нуля. Однако так делать не рекомендуется — Emscripten требуется большое количество связывающего кода для обработки операций выделения памяти, утечек памяти и других проблем, которые уже включены в предоставляемый шаблон. Намного легче использовать уже готовое решение, чем создавать свои собственные версии самому.

+

Примечание: вы можете указать компилятору создавать только JavaScript-кода, без HTML, используя внутри флага -o, .js вместо .html для формата выходного файла, например emcc -o hello2.js hello2.c -O3 -s WASM=1. После этого вы должны создать свой собственный HTML файл с нуля. Однако так делать не рекомендуется — Emscripten требуется большое количество связывающего кода для обработки операций выделения памяти, утечек памяти и других проблем, которые уже включены в предоставляемый шаблон. Намного легче использовать уже готовое решение, чем создавать свои собственные версии самому.

Вызов пользовательской функции, определённой в Си

diff --git a/files/ru/webassembly/rust_to_wasm/index.html b/files/ru/webassembly/rust_to_wasm/index.html index 9413beea7a..1f2d6d644d 100644 --- a/files/ru/webassembly/rust_to_wasm/index.html +++ b/files/ru/webassembly/rust_to_wasm/index.html @@ -297,7 +297,7 @@ js.then(js => {

Заметьте, что вам нужно будет снова ввести ваше имя для npm.

-

Так мы импортируем наш модуль из папки node_modules. Это не считается лучшей практикой, но это пример, так что пока сойдёт. Как только файл загрузится, он вызовет функцию greet из этого модуля, передав "WebAssembly", как строку. Обратите внимание, что здесь нет ничего особенного, и всё же мы вызываем код на Rust! Насколько JavaScript код может судить, это просто обычный модуль.

+

Так мы импортируем наш модуль из папки node_modules. Это не считается лучшей практикой, но это пример, так что пока сойдёт. Как только файл загрузится, он вызовет функцию greet из этого модуля, передав "WebAssembly", как строку. Обратите внимание, что здесь нет ничего особенного, и всё же мы вызываем код на Rust! Насколько JavaScript-код может судить, это просто обычный модуль.

Мы закончили! Давайте попробуем:

diff --git a/files/ru/webassembly/using_the_javascript_api/index.html b/files/ru/webassembly/using_the_javascript_api/index.html index 1840b83b92..d5e1b72e4a 100644 --- a/files/ru/webassembly/using_the_javascript_api/index.html +++ b/files/ru/webassembly/using_the_javascript_api/index.html @@ -187,7 +187,7 @@ console.log(sum);

Когда приходит время для вызова указателя на функцию, вызывающая сторона WebAssembly предоставляет индекс, который затем может быть проверен на безопасность по таблице перед индексацией и вызовом ссылки на индексированную функцию. Таким образом, таблицы в настоящее время являются лучшим низкоуровневым примитивом, используемым для безопасной и удобной компиляции низкоуровневых возможностей языка программирования.

-

Таблицы могут изменятся с помощью метода Table.prototype.set(), который обновляет одно из значений в таблице, и метода Table.prototype.grow(), который увеличивает количество значений, которое может быть размещено в таблице. Это позволяет этому "непрямо-вызываемому набору функций" изменяться со временем, что необходимо для техник динамического связывания. Изменения немедленно становятся доступными с помощью метода Table.prototype.get() в JavaScript коде и wasm-модулях.

+

Таблицы могут изменятся с помощью метода Table.prototype.set(), который обновляет одно из значений в таблице, и метода Table.prototype.grow(), который увеличивает количество значений, которое может быть размещено в таблице. Это позволяет этому "непрямо-вызываемому набору функций" изменяться со временем, что необходимо для техник динамического связывания. Изменения немедленно становятся доступными с помощью метода Table.prototype.get() в JavaScript-коде и wasm-модулях.

Пример таблицы

-- cgit v1.2.3-54-g00ecf