Hi Charles, this list is for proposals to the language, therefore this discussion should continue over the ElixirForum. Thank you.
*José Valimhttps://dashbit.co/ <https://dashbit.co/>* On Sun, Jan 11, 2026 at 11:17 PM Charles Lanahan <[email protected]> wrote: > I'm cross-posting this to the Elixir forums and was discussing it on > discord so I apologize if you see this twice. > > I’m having a bit of an intermittent issue with deriving a protocol with an > Any implementation and I’m not sure how to debug the issue or even > reproduce consistently enough to file a bug so I thought I’d ask for > suggestions here first. > > I have a complex project where this appears. Unfortunately this project > isn’t open source yet but hopefully soon as it would be much easier to > share code to debug this weird issue. I have successfully implemented > about 8 protocols so far (although none with deriving `Any`). I was > creating a textbook Any protocol to derive from similar to > https://hexdocs.pm/elixir/protocols.html#deriving . > > At first this bug arose when I stuck a dbg() statement into the Any > implementation in order to debug an issue I was getting. When I did this > and tried to derive the protocol for a given module struct I’d get > something similar to: > > ``` > == Compilation error in file lib/kerilixir/KERI/events/receipt_event.ex == > ** (ArgumentError) could not load module Said.Saidifiable due to reason > :nofile, cannot derive Said.Saidifiable for Kerilixir.Keri.ReceiptEvent > (elixir 1.19.5) lib/protocol.ex:331: Protocol.assert_protocol!/2 > (elixir 1.19.5) lib/protocol.ex:1104: Protocol.derive/4 > (stdlib 7.2) lists.erl:2641: :lists.foreach_1/2 > (elixir 1.19.5) lib/protocol.ex:1097: Protocol.*derive*/3 > lib/kerilixir/KERI/events/receipt_event.ex:22: (module) > ``` > > When I removed the dbg() statement, removed the @derive from the struct, > recompiled, added back the derive (without the dbg statement) the > protocol would derive successfully. Adding the debug statement back would > reproduce the error consistently. > > Then somehow yesterday in fooling around with it I got the compilation and > tests to pass with dbg() statement allowing me to troubleshoot the > function call and fix the bug. Now when trying to derive this protocol for > other structs I’m getting this error consistently again. At this point, I > don’t have the dbg() calls anymore in the Any implementation but am still > getting the :nofile error. > > It seems like this is an issue in consolidation or compilation or > something else that I don’t understand and so I’m reaching out for any > ideas or even places to look in beginning to debug this. Its frustrating > because the pattern of having a default protocol will work for most of > these structs but then a few will be exceptions that will need custom > implementations. > > It did seem to happen with mix test more than mix compile but maybe > that's all in my head. Now its just occurring over and over with mix > compile. > > I tried to create a simpler example of the file structure and test > structure I’m running here (tests fail but not the :nofile error) but > failed to reproduce my error in this simpler example. > https://github.com/daidoji/simple_example > > *tl;dr something weird is happening in consolidation or compilation > process and my protocol isn’t getting derived even though it should. > Looking for ideas on how to troubleshoot this intermittent error.* > > -- > You received this message because you are subscribed to the Google Groups > "elixir-lang-core" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/elixir-lang-core/dad8f51d-6689-4967-8474-ab8e2ca78c63n%40googlegroups.com > <https://groups.google.com/d/msgid/elixir-lang-core/dad8f51d-6689-4967-8474-ab8e2ca78c63n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "elixir-lang-core" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4J0%3DhmKwxQOWhPh4QOQEtnmwR1dVqVCgahXPvtof%3DsPbg%40mail.gmail.com.
