Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:25
erlang
dializer-relax-check-plt.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dializer-relax-check-plt.patch of Package erlang
diff -Ndurp otp_src_20.2.4/lib/dialyzer/src/dialyzer_plt.erl otp_src_20.2.4-dializer-relax-check-plt/lib/dialyzer/src/dialyzer_plt.erl --- otp_src_20.2.4/lib/dialyzer/src/dialyzer_plt.erl 2018-02-26 22:09:03.000000000 +0200 +++ otp_src_20.2.4-dializer-relax-check-plt/lib/dialyzer/src/dialyzer_plt.erl 2018-02-26 22:18:47.000000000 +0200 @@ -324,12 +324,7 @@ included_files1(FileName) -> Error end. -check_version(#file_plt{version = ?VSN, implementation_md5 = ImplMd5}) -> - case compute_new_md5(ImplMd5, [], []) of - ok -> ok; - {differ, _, _} -> error; - {error, _} -> error - end; +check_version(#file_plt{version = ?VSN}) -> ok; check_version(#file_plt{}) -> error. get_record_from_file(FileName) -> @@ -474,15 +469,16 @@ check_plt(FileName, RemoveFiles, AddFile check_plt1(FileName, RemoveFiles, AddFiles) -> case get_record_from_file(FileName) of {ok, #file_plt{file_md5_list = Md5, mod_deps = ModDeps} = Rec} -> + Md5Res = compute_new_md5(Md5, RemoveFiles, AddFiles), case check_version(Rec) of ok -> - case compute_new_md5(Md5, RemoveFiles, AddFiles) of + case Md5Res of ok -> ok; {differ, NewMd5, DiffMd5} -> {differ, NewMd5, DiffMd5, ModDeps}; {error, _What} = Err -> Err end; error -> - case compute_new_md5(Md5, RemoveFiles, AddFiles) of + case Md5Res of ok -> {old_version, Md5}; {differ, NewMd5, _DiffMd5} -> {old_version, NewMd5}; {error, _What} = Err -> Err @@ -531,19 +527,9 @@ compute_md5_from_files(Files) -> lists:keysort(1, [{F, compute_md5_from_file(F)} || F <- Files]). compute_md5_from_file(File) -> - case beam_lib:all_chunks(File) of - {ok, _, Chunks} -> - %% We cannot use beam_lib:md5 because it does not consider - %% the debug_info chunk, where typespecs are likely stored. - %% So we consider almost all chunks except the useless ones. - Filtered = [[ID, Chunk] || {ID, Chunk} <- Chunks, ID =/= "CInf", ID =/= "Docs"], - erlang:md5(lists:sort(Filtered)); - {error, beam_lib, {file_error, _, enoent}} -> - Msg = io_lib:format("File not found: ~ts\n", [File]), - plt_error(Msg); - {error, beam_lib, _} -> - Msg = io_lib:format("Could not compute MD5 for .beam: ~ts\n", [File]), - plt_error(Msg) + case beam_lib:md5(File) of + {ok, {_, MD5}} -> MD5; + E -> plt_error(beam_lib:format_error(E)) end. init_diff_list(RemoveFiles, AddFiles) ->
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor