Spec-Zone.ru › Elixir 1.11

mix compile.protocols

Объединяет все протоколы во всех путях.

Эта задача вызывается автоматически, если проект не отключит опцию :consolidate_protocols в своей конфигурации.

Объединение

Объединение протоколов полезно в производстве, когда не будет динамической загрузки кода, эффективно оптимизируя диспетчеры протоколов, не учитывая загрузку кода.

Эта задача объединяет все протоколы в пути кода и выводит новые двоичные файлы в указанный каталог. По умолчанию это "_build/MIX_ENV/lib/YOUR_APP/consolidated" для обычных приложений и "_build/MIX_ENV/consolidated" для проектов типа umbrella.

Если вы вручную компилируете протоколы или создаете релизы, вам нужно учесть сгенерированные протоколы. Это можно сделать с помощью:

$ elixir -pa _build/MIX_ENV/lib/YOUR_APP/consolidated -S mix run

Или в проектах umbrella:

$ elixir -pa _build/MIX_ENV/consolidated -S mix run

Вы можете проверить, что протокол объединён, проверив его атрибуты:

iex> Protocol.consolidated?(Enumerable)
true

Краткое описание

Функции

consolidated?()

Возвращает, были ли протоколы объединены хотя бы один раз.

Функции

consolidated?()

Возвращает, были ли протоколы объединены хотя бы один раз.

© 2012 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/mix/1.11.2/Mix.Tasks.Compile.Protocols.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API