Spec-Zone.ru › Elixir 1.12

mix compile.protocols

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

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

Объединение

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

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

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

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

Или в проектах типа "зонт":

$ 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.12.0/Mix.Tasks.Compile.Protocols.html

Spec-Zone.ru

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