Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

Already on GitHub? Sign in to your account

Build Erlang Dialyzer PLTs in a separate optional step #299

Closed
wants to merge 3 commits into
from

Conversation

Projects
None yet
5 participants

erszcz commented Apr 17, 2014

It would be cool if the Travis boxes had PLTs prebuilt as doing that per-build is just a waste of time and CPU cycles (and leads to timeouts without some vile hackery).

However, since that's not the case at the moment, I've cleaned up the PLT generation a bit in order to prepare them for fetching from external storage during a build. The PLTs have absolute paths embedded so generating in a different env than they are intended to be used in is not an option.

This is my first encounter with Chef, so please shout if anything here smells.

Owner

joshk commented Apr 19, 2014

Thanks for the PR, I'll test it out and see if I can get it to work.

erszcz commented Apr 19, 2014

After some testing on my side, I'm reaching the following conclusions.
Before release R15B02 the PLT generation is unbearably slow (the release notes for that release are specific about Dialyzer performance improvements).
Onwards from that release it's much better and fast enough for provisioning a VM.

Owner

joshk commented Jun 21, 2014

I haven't forgotten about this. I'll look into it again over the coming weeks.

@henrikhodne henrikhodne added the erlang label Aug 5, 2014

Owner

BanzaiMan commented Aug 29, 2014

@Lavrin Sorry about the silence. Could you fix the merge conflict, and I'll take a look.

BanzaiMan added a commit that referenced this pull request Jan 8, 2015

Merge pull request #299 from lavrin/erlang-plts
Build Erlang Dialyzer PLTs in a separate optional step

Conflicts:
	ci_environment/kerl/attributes/source.rb

@BanzaiMan BanzaiMan commented on the diff Jan 8, 2015

ci_environment/kerl/recipes/source.rb
@@ -109,4 +109,17 @@
not_if "#{node.kerl.path} list installations | grep #{rel}", :user => node.travis_build_environment.user, :environment => env
end
+
+
+ execute "generate Erlang #{rel} Dialyzer PLT" do
+ command "~/.build_plt #{installation_root}/#{rel} #{installation_root}/#{rel}/lib"
+
+ user node.travis_build_environment.user
+ group node.travis_build_environment.group
+
+ environment(env)
+
+ only_if { node.kerl.build_plt }
@BanzaiMan

BanzaiMan Jan 8, 2015

Owner

Does this not prevent this block from being executed at all, since node.kerl.build_plt is false? Or is this intended to be overridden at the Chef's execution time?

meatballhat added a commit that referenced this pull request Sep 17, 2015

@meatballhat meatballhat closed this in #530 Sep 17, 2015

@BanzaiMan BanzaiMan removed the in progress label Sep 17, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment