[eeps] New - EEP 44: Additional preprocessor directives

Loïc Hoguin essen@REDACTED
Tue Oct 13 11:59:38 CEST 2015


Hi,

Overall quite happy with the EEP.

On 10/13/2015 11:31 AM, Vlad Dumitrescu wrote:
> Hi!
>
> While I think that the proposed changes are good and will improve the
> preprocessor, I am worried about the effect it will have on how code is
> build and on code that may run on unspecified OTP versions (escripts).
> If I understand correctly, these are some of the effects:
>
> * one will now be forced to compile within an environment identical to
> the target - so that all the preprocessor conditions resolve to the
> right values. This includes having all dependencies (even transitive?)
> installed in the development environment and the build server, not only
> OTP. Is the application descriptor enough to define that, or does it
> need to be extended? Maybe the new package manager is supposed to help here?

People already do these things, although in a more awkward way, as 
explained in the EEP. I don't foresee the ecosystem to change much just 
because the preprocessor lets you do it more easily.

> * if one targets multiple versions, then the set-up of the development
> environment is unwieldy unless one needs to use something like kerl to
> manage the multiple environments. It feels a bit wrong to have OTP
> depend indirectly on a third party application... I think that OTP
> should provide tools to help with that.

I'm not sure what you think something inside OTP can do better than 
something outside OTP. Can you clarify your thoughts on that?

I think it's very good that so much of the ecosystem relies on third 
party tools and libraries. It's a sign that Erlang is thriving. It's no 
longer the sole responsibility of the OTP team to provide everything.

> * if not deploying an OTP application or a full system, one can't know
> if the target will fulfill the expected conditions - what about compiled
> escripts?

Those tend to be compiled for the lowest supported version to make sure 
they work "everywhere". I don't think this EEP will change anything 
about that.

-- 
Loïc Hoguin
http://ninenines.eu
Author of The Erlanger Playbook,
A book about software development using Erlang



More information about the eeps mailing list