certifi / erlang-certifi

SSL Certificates for Erlang
Other
131 stars 33 forks source link

Revert "Add no_debug_info to erl_opts" #13

Closed notriddle closed 7 years ago

notriddle commented 7 years ago

This reverts commit e4993a6588cf000473587a8e0916e9e7f698b692.

It breaks dialyzer, and won't rebar already take care of turning off debug info if the user requests it?

benoitc commented 7 years ago

@notriddle thanks for the patch? how does rebar take care of it? Do you mean an option given to the command line? The issue with having dialyser enabled is the insane amount of ram it will require. Maybe there is another way to ignore the data file though. I will have a look on it.

notriddle commented 7 years ago

After further reading and asking around, rebar won't take care of it.

However, release tools like relx and distillery can be set to strip debug info at the end.

lasseebert commented 7 years ago

Fixes #12

ericmj commented 7 years ago

With debug info the compilation produces ~1400kb of .beam files, without it becomes ~280kb. erlang-certifi also includes ~680kb of files in priv/ that doesn't seem to be used at runtime. This means this package will use more than 2mb of space when compiled when it can use almost a tenth of it.

Do you need to run dialyzer with this package?

lasseebert commented 7 years ago

Since I don't use certfi directly, but as a nested dependency, it would be fine for me to not use dialyzer with certifi when I run dializer for my project.

I am using certifi from Elixir and tried with the following dialyzer settings (for dialyxir):

excluded_paths: [ "_build/dev/lib/certifi"]

However, it still tries to include certifi in the PLT, which makes the entire PLT generation fail, which in turn makes dialyzer fail.

Do anyone know if it is possible to just skip certifi somehow?

benoitc commented 7 years ago

I fixed it differently in the master. But thanks for the patch :)

benoitc commented 7 years ago

@lasseebert i didn't find a way to ignore the error unforunately. So for now let's keep the debug_info by default. Thsi can be overridden in rebar3. Maybe such feature is also available on mix ? cc @ericmj ?

ericmj commented 7 years ago

No, you can't override this on a per-application basis in mix. So it will produce a large compiled application on mix.