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