[erlang-questions] Internal compiler atoms

Erdem Aksu erdemaksu@REDACTED
Thu Jan 17 21:25:19 CET 2019


Hello Håkan,

If you compile your module from core erlang (cerl) forms and pass
'from_core' option to compile:forms/2 call, compiler will skip many passes
including core pass, which calls v3_call:module/2 and will only parse the
core forms and run core_passes.
Thus you can leap list_to_atom/1 calls that are invoked by v3_call:module/2
call.

You can see the link below for the compile call and how cerl is used:
https://github.com/pundunlabs/gb_reg/blob/36f3c32ef18386a10e7a3007e2b25d380e9c2e74/src/gb_reg_worker.erl#L236

Br,
Erdem Aksu

On Thu, Jul 27, 2017 at 4:19 PM Håkan Mattsson <hawk.mattsson@REDACTED>
wrote:

>
> I am trying to compile a
> ​(​
> big
> ​)​
> module from a list of forms
> ​​
> , but it seems
> ​ like the compiler internally generates lots of new atoms:​
>
>
> no more index entries in atom_tab (max=1048576)
>
> Crash dump is being written to: erl_crash.dump...
>
> ​In this case the compiler itself generated ​more than 300K atoms while
> compiling my forms.
>> ​Why is the atoms generated?​
>
> ​Is this anything that can be disabled?​
>
> /Håkan
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20190117/7fe8002f/attachment.htm>


More information about the erlang-questions mailing list