<div dir="ltr"><div dir="ltr">> What if it was allowed for package maintainers to publish pre-compiled BEAM files to Hex? I would imagine that everyone who is pushing packages to Hex also has the ability to compile those packages on the machine they’re using to publish.<br><br class="m_1445541843719347878gmail-Apple-interchange-newline"><div><div dir="ltr" class="m_1445541843719347878gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div>Unfortunately that wouldn't solve the issue with macros, because macros are still compiled to regular BEAMs. A precompiled BEAM wouldn't change the module name nor the name of a function. The incompatibility is in the calling convention and in the different ASTs (similar issue to LFE). </div><div><br></div><div>I feel there are some things that could be done from the Elixir side to make things easier (it could maybe ship with a parse_transform?) but I feel that, for full convenience, (small) changes would need to be done to Erlang too, such as allowing ? and ! at the end of atoms without quoting (note: I am not proposing it, just commenting on it).</div><div><br></div><div>Unfortunately, on the topic of macros, I can't see them working from Erlang at all. But I don't consider it a bad thing. Well-designed libraries should use macros just a thin layer on top of a proper functional APIs. For example, the macro layer in Plug is very thin and it should be relatively straight-forward to write your own plug web apps in Erlang. But I also feel that even if we somehow port the Plug macro conveniences to Erlang, people won't enjoy using it if you have to write things such as 'Elixir.Plug':send_resp(...).</div><div><br></div><div>Maybe if we overcome the initial awkwardness which is the different namespace rules, there will be a growing interest in solving those problems.</div><div><br></div><div><span style="font-size:13px"><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><b>José Valim</b></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;border-collapse:collapse"><div><span style="font-family:verdana,sans-serif;font-size:x-small"><a href="http://www.plataformatec.com.br/" style="color:rgb(42,93,176)" target="_blank">www.plataformatec.com.br</a></span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Skype: jv.ptec</span></div><div><span style="font-family:verdana,sans-serif;font-size:x-small">Founder and Director of R&D</span></div></span></div></span></div></div></div></div></div><div class="gmail_quote"><div> </div></div>
</div>