Size: a a a

2021 April 28

AB

Alex Bubnov in pro.elixir
.app - это фишка из эрланга, описание приложения для erts.
чтобы "запустить .app", нужно поместить его в path  при запуске vm, а потом как-то сказать вм, что его нужно запускать.

типа, вот так
~/p/laundry (to-umbrella|✚7) $ erl -pa _build/dev/lib/*/ebin/ -pa _build/dev/consolidated/ -pa ~/.asdf/installs/elixir/1.11.3-otp-22/lib/*/ebin
Erlang/OTP 22 [erts-10.7.2.3] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Eshell V10.7.2.3  (abort with ^G)
1> application:ensure_all_started(laundry).
{ok,[compiler,elixir,decimal,logger,eex,telemetry,
    connection,db_connection,crypto,ecto,ecto_sql,laundry]}
2>


но обычно за тебя это делают iex и mix в дев-моде, или релиз в проде
источник

DK

Danial Kolyasnikov in pro.elixir
ясно, спасибо
источник

МБ

Максим Барулин... in pro.elixir
Возвращаясь к теме дебага.
А почему нельзя прицепиться observer'ом и потрейсить что угодно на любой ноде?
источник
2021 April 29

V

V in pro.elixir
есть ещё способ запустить команду mix
1. создаём проект mix my_project && cd my_project
2. mkdir -p lib/mix/tasks && editor lib/mix/tasks/foo.ex
3. содержимое foo.ex
defmodule Mix.Tasks.Foo do
 use Mix.Task
 def run(_) do
   IO.puts "Hello, world!"
 end
end
4. Запускать mix foo

Нюанс в том, что запуск команды сам по себе не производит запуск дерева супервизоров, и в ней может не работать например Repo или http-клиент, и приходится делать что-то вроде
def run(_) do
 {:ok, _} = Application.ensure_all_started(:hackney)
 ...

Также mix-команды недоступны в релизах (потому что в релизах нет mix), там нужно делать bin/my_app eval "MyApp.Release.MyCommand"`, предварительно подготовив модуль `MyApp.Release.MyCommand.

Короче гора нюансов.
источник

AB

Alex Bubnov in pro.elixir
"Простой дружелюбный язык"
"Учить эрланг не нужно"
источник

V

V in pro.elixir
Как же можно при изучении языка игнорировать машину, которой он управляет
источник

AM

Aliaksandr Martsinov... in pro.elixir
Ну тут сугубо вина урока по mix на эликсирскуле. Там нигде в основах не упоминается mix run
источник

AM

Aliaksandr Martsinov... in pro.elixir
Только жизнерадостная ремарка “смотрите, мы скопилировали все в _build”. И всё 😄
источник

AM

Aliaksandr Martsinov... in pro.elixir
Надо пулреквест занести
источник

ML

Maksim Lapshin in pro.elixir
mix foo - полный клон рельс конечно
источник

MZ

Maxim Zubarev in pro.elixir
О, привет
источник

DS

Daniel Sevostyanov in pro.elixir
👌
источник
2021 April 30

V

V in pro.elixir
Котаны, есть какой-нибудь сахар для фолбэка на пустой список?
Типа как
a = nil || b
но мне нужно
my_list = [] | other_list
источник

ВК

Василий Кузнецов... in pro.elixir
def funcion([])
источник

V

V in pro.elixir
без дефов бы
источник

ВК

Василий Кузнецов... in pro.elixir
ты что? больше функций богу функций
источник

V

V in pro.elixir
изкоробочное есть что-нибудь?
источник

ВК

Василий Кузнецов... in pro.elixir
тебе прямо в одну строчку и красиво нужно?
источник

IA

Ivan Ananev in pro.elixir
a = if is_list(a) && Enum.any?(a), do: a, else: b
источник

V

V in pro.elixir
плохо
источник