Load all erlang modules in path

前端 未结 2 1097
离开以前
离开以前 2021-01-12 18:45

Using the answer from Easy way of loading projects with rebar dependencies, dependencies are now automatically resolved, but they are not automatically loaded.

So, h

相关标签:
2条回答
  • 2021-01-12 19:28

    This snippet would do the trick:

    [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F))))
     || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")].
    

    Put it in your ~/.erlang file as one row (including the dot: .) and it will be executed upon starting any Erlang shell. Be warned though, it's hideously slow!

    » time erl -noshell -s init stop
    erl -noshell -s init stop  0.11s user 0.02s system 11% cpu 1.143 total # Without
    » time erl -noshell -s init stop
    erl -noshell -s init stop  7.31s user 1.08s system 88% cpu 9.480 total # With 
    
    0 讨论(0)
  • 2021-01-12 19:35

    if you spawn the process, you will get a very fast start.

    LP = fun() -> [code:ensure_loaded(list_to_atom(filename:rootname(filename:basename(F)))) || P <- code:get_path(), F <- filelib:wildcard(P ++ "/*.beam")] end.
    spawn(LP).
    

    in the ~/.erlang file

    0 讨论(0)
提交回复
热议问题