[erlang-questions] Preloaded modules "lists" dependency
Loïc Hoguin
essen@REDACTED
Mon Feb 17 14:40:45 CET 2014
On 02/17/2014 11:58 AM, Lukas Larsson wrote:
> So if you want to change the lists (or ets for that matter) module you
> would have to create a solution for either in compile time removing those
> bifs or possibly figuring it out in runtime.
Why not have this information as an attribute of the module itself?
> It should be possible to do in a separate fork of Erlang/OTP to start with
> and if it proves to be generally useful I don't see why it wouldn't be
> possible to bring it upstream.
This is probably a bit too complicated for me right now, compared to
just working around it, but if I ever want to dig deep into the VM I'll
remember it.
One question though. What happens if I define a function that is
implemented as a BIF (that is, for example, create an Erlang version of
lists:keymember/3 in the lists source code), is it replaced with the BIF
on load?
>> Any chance of having that dependency removed eventually? There are 13
>> occurrences of lists: in the preloaded modules. The functions used are
>> keyreplace, member, reverse, foldl, foreach. The first 3 are BIFs, the
>> other 2 aren't. Perhaps the first 3 could also be available from a
>> prim_lists module and the other two inlined? This way the VM doesn't
>> require any additional module to run, except of course error_logger but
>> that's only a requirement when you want to extend the basic functionality.
>>
>
> This is something that would be a lot easier to do and less complicated to
> make it into upstream. As long as there are tests that make sure nothing is
> broken over time.
Gotcha. Sounds like a good plan for a future week-end.
--
Loïc Hoguin
http://ninenines.eu
More information about the erlang-questions
mailing list