Описание тега dialyzer

Dialyzer - это инструмент, который обнаруживает неточности в программах, написанных на Erlang.
0 ответов

Не удается заставить диализатор работать с evm

Я имею erlang 17.5 установлен в /usr/local/lib. evm считает, что мою "систему" устанавливают. После установки evm я скачал erlang 19.2и я могу переключаться между двумя версиями erlang, используя: $ evm system (erlang 17.5) $ evm use 19.2 (erlang 19…
22 мар '17 в 22:12
1 ответ

Ошибка компиляции glpkerl (библиотека glpk erlang)

Я пытаюсь скомпилировать библиотеку glpkerl в Ubuntu 11.10, но пока безуспешно. Поскольку я все время получаю ошибки, может быть, я упускаю что-то важное: Что я пробовал Моя установленная версия Erlang - R14B02 (устанавливается через официальный реп…
20 май '12 в 18:52
2 ответа

Есть ли разница в эффективности между использованием Dialyzer на пучке Эрланга и исходным кодом?

Я собираю все файлы лучей проекта по пути вроде ~/erl_beam dialyzer ~/erl_beam/*.beam --get_warnings -o static_analysis.log Это работает хорошо. Если я сделаю это на исходном коде Erlang: dialyzer --get_warnings -I <Path1> --src <Path2> …
04 апр '14 в 09:18
1 ответ

Предупреждение о диализаторе в Эрланге

Я использую диализатор для исправления предупреждений в коде Erlang, io: format (IoDevice, "[]"); эта строка выдает следующую ошибку Вызов io:format(IoDevice::pid(),[91 | 93,...]) никогда не вернется, так как при успешном наборе будет (atom() | bina…
02 июл '18 в 14:01
2 ответа

Задача dialyxir mix для создания выходов PLT без ошибок или создания таблицы

Я пытаюсь использовать dialyxir для запуска анализа диализатора в моем проекте с помощью смешанных задач, которые он предоставляет. Я добавил его в мои зависимости и скомпилировал в соответствии с README. Когда я бегу mix dialyxir.plt он не сообщает…
04 окт '16 в 14:24
1 ответ

Erlang Dialyzer: принимать только определенные целые числа?

Скажи, у меня есть функция,foo/1чья спецификация -spec foo(atom()) -> #r{}., где #r{} это запись, определенная как -record(r, {a :: 1..789}).Однако у меня есть foo(a) -> 800. в моем коде, когда я запускаю против него диализатор, он не предупре…
09 июн '15 в 10:12
1 ответ

Как исправить ошибку Dialyzer "Обратный вызов о поведении"..... "недоступен" для новых Mix.Tasks

Я создал новый Mix.Task в /lib/mix/tasks/start.ex для моего проекта defmodule Mix.Tasks.Start do use Mix.Task def run(_), do: IO.puts("Hello, World!") end Теперь его можно запустить из консоли следующим образом:mix start Но я получаю ошибку Dialyzer…
06 июл '18 в 10:29
1 ответ

Компилирует ли Rebar3 модули Dialyzer с HiPE?

При работе в автономном режиме Dialyzer компилирует свои модули с HiPE, чтобы ускорить анализ: dialyzer --src -r . Checking whether the PLT /home/foo/.dialyzer_plt is up-to-date... yes Compiling some key modules to native code... done in 0m12.27s Pr…
12 май '17 в 10:03
1 ответ

Указание строкового значения в определении типа для спецификаций типов Elixir

Можно ли определить тип следующим образом: defmodule Role do use Exnumerator, values: ["admin", "regular", "restricted"] @type t :: "admin" | "regular" | "restricted" @spec default() :: t def default() do "regular" end end чтобы лучше проанализирова…
2 ответа

Эрланг Диализатор целочисленных диапазонов

-module(test). -export([f/0, g/0]). -spec f() -> RESULT when RESULT :: 0..12 . -spec g() -> RESULT when RESULT :: 0..13 . f () -> 100 . g () -> 100 . Запуск диализатора (и тайпера) только с функцией f пойман dialyzer test.erl Checking wh…
09 апр '17 в 14:34
1 ответ

Приостановить процесс Erlang с помощью получения после истечения времени бесконечности

Я новичок в Erlang, и я хочу приостановить в функции. Я использую receive with infinity timeout, моя функция выглядит так: suspend() -> receive after infinity->ok end. Когда я запускал инструмент диализатора, он возвращал "Функция не имеет лок…
27 янв '19 в 14:09
1 ответ

Диализатор предупреждает об отсутствии локального возврата, когда функция fun() не возвращает

Я устраняю неполадки в моем коде Erlang, чтобы сделать его более эффективным. Но у меня есть некоторые проблемы с Dialyzer и я не знаю, как это исправить. Первое о том, что "функция не имеет локального возврата". Пример кода здесь print_list(File, L…
25 фев '19 в 15:04
3 ответа

Могу ли я сказать Dialyzer игнорировать некоторые модули?

Я строю PLT, используя dialyzer --output_plt lib.plt --build_plt --apps stdlib kernel mnesia ssl public_key crypto erts asn1 inets sasl odbc Он выдает некоторые ошибки о неизвестных функциях в модулях, которые меня не волнуют. Например: Compiling so…
20 янв '14 в 16:35
1 ответ

Понимание результата диализатора

У меня есть следующая функция: -spec check_connection_header(list()) -> atom(). check_connection_header([{<<"Connection">>, <<"close">>}|_]) -> close; check_connection_header([{<<"Connection">>, <<"Clo…
08 авг '16 в 06:05
1 ответ

Запуск диализатора после аннотации с typer не показывал никаких предупреждений

В проекте около 6000 строк кода Эрланга, но без типа -spec() аннотации еще пробовал следующее: typer --annotate *.erl То я заменил все *.erl файлы с аннотированными и побежал dialyzer --src -c *.erl Я ожидал получить много предупреждений (запускал к…
01 май '11 в 15:28
1 ответ

Анализирует ли Dialyzer анонимные функции?

В своем прогрессе в изучении эликсира, я играю с Dialyzer, чтобы добавлять типы в мои функции. В связи с этим я заметил, что Dialyzer, похоже, не проверяет типы для анонимных функций. В приведенном ниже примере я передаю анонимную функцию, которая д…
09 июл '15 в 02:14
1 ответ

Может ли Dialyzer видеть через функции транзакций Mnesia?

Вот код с ошибкой, которую я думаю, что Dialyzer должен быть в состоянии определить: -module(myapp_thing). -spec exists(pos_integer()) -> yes | no. exists(Id) -> myapp_mnesia:thing_exists(Id). -module(myapp_mnesia). thing_exists(Id) -> Exis…
10 июл '13 в 09:52
2 ответа

Почему Dialyzer не находит этот код неверным?

Я создал фрагмент ниже на основе этого урока. Последние две строки (feed_squid(FeederRP) а также feed_red_panda(FeederSquid)) явно нарушают определенные ограничения, но Dialyzer находит их в порядке. Это довольно обидно, потому что это именно тот ти…
07 авг '12 в 18:08
1 ответ

"спецификация имеет неправильную арность", замеченную при использовании предложения охраны для определения спецификации Эликсира

Вот код, к которому я пытаюсь добавить спецификацию. @spec failure(term) :: error(term) @spec failure(reason) :: error(reason) when reason: term defmacro failure(reason) do quote do {:error, unquote(reason)} end end Первое определение спецификации р…
22 авг '18 в 07:55
1 ответ

Запуск диализатора в приложении: я должен добавить зависимости к PLT?

У меня есть приложение erlang с вложенными приложениями в приложениях / и зависимостями в deps/. Запуск диализатора в одном из подпрограмм, например: $ dialyzer -r apps/app1/src --src работает, но перечисляет как "неизвестные функции" различные функ…
10 июл '13 в 08:29