Size: a a a

2021 March 03

AB

Alex Bubnov in pro.elixir
Lama Lover
Так и причём тут консолидация, пусть модули со структурами явно у себя вызывают какой-нибудь макрос, который посылает имплементацию в какой-нибудь процесс, который дожидается конца компиляции и потом генерирует код в __before_compile__ твоего модуля-десериализатора
кстати, а как дождаться конца компиляции?
источник

ŹR

Źmićer Rubinštejn in pro.elixir
Lama Lover
Не, у меня модули-структуры просто посылают что-то на процесс (а если его не существует, то создают с таким именем), а потом, в модуле-десериализаторе на хуке __before_compile__ ждать ответа от процесса

А процесс ответит тогда, когда поймёт что скомпилированы все модули кроме модуля десериализатора
Как он поймёт что скомпилированы «все» модули, если один из них может ещё даже не начать компилироваться, и соответственно в твой процесс не придёт от него сообщение
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Вообще, если в эликсир добавить кастомную консолидацию - получились бы рельсы
Полностью согласен, @nwalker хочет слишком много запихнуть под ковёр
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Полностью согласен, @nwalker хочет слишком много запихнуть под ковёр
да нормально я хочу. они же уже сконсолидированы, и даже в доке написано, как их вытащить.
то есть, я даже недокументированные функции не использую
источник

LL

Lama Lover in pro.elixir
Źmićer Rubinštejn
Как он поймёт что скомпилированы «все» модули, если один из них может ещё даже не начать компилироваться, и соответственно в твой процесс не придёт от него сообщение
Хороший вопрос, наверняка из компилятора что-то такое торчит, что позволит это определить.
Например, можно проверять сколько процессов у компилятора работает: если все ждут, то значит они ждут компиляцию модуля-десериализатора
источник

LL

Lama Lover in pro.elixir
Lama Lover
Хороший вопрос, наверняка из компилятора что-то такое торчит, что позволит это определить.
Например, можно проверять сколько процессов у компилятора работает: если все ждут, то значит они ждут компиляцию модуля-десериализатора
Но это всё жуткие хаки, конечно же
Я бы такое не стал бы серьёзно делать
источник

AB

Alex Bubnov in pro.elixir
Lama Lover
Хороший вопрос, наверняка из компилятора что-то такое торчит, что позволит это определить.
Например, можно проверять сколько процессов у компилятора работает: если все ждут, то значит они ждут компиляцию модуля-десериализатора
так вот кажется нет, не торчит
источник

AB

Alex Bubnov in pro.elixir
либо я не там ищу
источник

AB

Alex Bubnov in pro.elixir
Alex Bubnov
короче, это абсолютно провальная зацепка, потому что
1 - у меня этот коллбэк просто не работает, откуда бы я его не регистрировал
2 - он вызывается в compile.all, а compile.protocol работает уже после него
собственно, финальный аккорд - оно просто сломано в амбреллах
источник

AB

Alex Bubnov in pro.elixir
Alex Bubnov
собственно, финальный аккорд - оно просто сломано в амбреллах
~/p/elixir (v1.11|✚1…) $ git diff
diff --git a/lib/mix/test/mix/tasks/compile_test.exs b/lib/mix/test/mix/tasks/compile_test.exs
index c7a8f3369..845e90b86 100644
--- a/lib/mix/test/mix/tasks/compile_test.exs
+++ b/lib/mix/test/mix/tasks/compile_test.exs
@@ -233,7 +233,7 @@ test "loads Mix config with --erl-config" do
  end

  test "runs after_compiler callback once" do
-    in_fixture("no_mixfile", fn ->
+    in_fixture("umbrella_dep", fn ->
      callback = fn result -> send(self(), result) end

~/p/elixir (v1.11|✚1…) $ make test_mix
....
 1) test runs after_compiler callback once (Mix.Tasks.CompileTest)
    test/mix/tasks/compile_test.exs:235
    Assertion failed, no matching message after 0ms
    Showing 2 of 2 messages in the mailbox
    code: assert_received {:ok, []}
    mailbox:
      pattern: {:ok, []}
      value:   {:noop, []}

      pattern: {:ok, []}
      value:   {:mix_shell, :info, ["Generated sample app"]}
    stacktrace:
      test/mix/tasks/compile_test.exs:241: anonymous fn/0 in Mix.Tasks.CompileTest."test runs after_compiler callback once"/1
      (elixir 1.11.3) lib/file.ex:1553: File.cd!/2
      test/test_helper.exs:126: MixTest.Case.in_fixture/3
      test/mix/tasks/compile_test.exs:236: (test)
источник

AB

Alex Bubnov in pro.elixir
простите, кому чят на телефонах порвало
источник
2021 March 04

IF

Igor Filippov in pro.elixir
Подскажите пожалуйста, как в VS Code настроить корректно форматирование .html.eex файлов.  Решение что-то не гуглится. Прописал в настройках

"files.associations": {
   "**/*.html": "html",
   "**/*.html.eex": "html"
 },

"emmet.includeLanguages": {
   "javascript": "javascriptreact",
   "HTML (Eex)": "html"
 },

Но есть только частично подсветка и очень криво форматирует
источник

A ß in pro.elixir
источник

A ß in pro.elixir
первая ссылка в утке
источник

IF

Igor Filippov in pro.elixir
Чуть лучше подсвечивает, но не форматирует
источник

IF

Igor Filippov in pro.elixir
источник

IF

Igor Filippov in pro.elixir
А, я вроде понял что он хочет
источник

ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ... in pro.elixir
всем здрасти, насколько устарело 1 издание Introducing Elixir: Getting Started in Functional Programming?
источник

AD

Aaron Delarge in pro.elixir
ᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠᅠ
всем здрасти, насколько устарело 1 издание Introducing Elixir: Getting Started in Functional Programming?
То, что касается Феникса там расходится с актуальными доками - это из того, что я заметил
источник

А

Александр in pro.elixir
В прошлый раз вопрос потерялся в обсуждении. Если ли где-то прям такая хорошая инструкция как сделать приватный репозитарий hex пакетов (желательно с доками), с возможностью мешать приватные и публичные пакеты (или же проксирование если в приватном нету, то все запросы проксируються на публичный репо)?
источник