Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
2004-Use-map-based-sets.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2004-Use-map-based-sets.patch of Package erlang
From 5df61852940c7303ce3596e223a95d9b3dd24521 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Mon, 13 Sep 2021 16:29:38 +0200 Subject: [PATCH 04/20] Use map-based sets --- lib/dialyzer/src/cerl_closurean.erl | 2 +- lib/dialyzer/src/cerl_typean.erl | 4 ++-- lib/dialyzer/src/dialyzer_analysis_callgraph.erl | 6 +++--- lib/dialyzer/src/dialyzer_callgraph.erl | 2 +- lib/dialyzer/src/dialyzer_cl.erl | 4 ++-- lib/dialyzer/src/dialyzer_codeserver.erl | 2 +- lib/dialyzer/src/dialyzer_dataflow.erl | 4 ++-- lib/dialyzer/src/dialyzer_dep.erl | 4 ++-- lib/dialyzer/src/dialyzer_typesig.erl | 2 +- 9 files changed, 15 insertions(+), 15 deletions(-) diff --git a/lib/dialyzer/src/cerl_closurean.erl b/lib/dialyzer/src/cerl_closurean.erl index 55dcfeed1d..e4718cb819 100644 --- a/lib/dialyzer/src/cerl_closurean.erl +++ b/lib/dialyzer/src/cerl_closurean.erl @@ -763,7 +763,7 @@ queue__get({In, _}) -> %% The work list - a queue without repeated elements. init_work() -> - {queue__new(), sets:new()}. + {queue__new(), sets:new([{version, 2}])}. add_work(Ls, {Q, Set}) -> add_work(Ls, Q, Set). diff --git a/lib/dialyzer/src/cerl_typean.erl b/lib/dialyzer/src/cerl_typean.erl index 3deb4af3e1..b0e5c10d7d 100644 --- a/lib/dialyzer/src/cerl_typean.erl +++ b/lib/dialyzer/src/cerl_typean.erl @@ -268,7 +268,7 @@ analyze(Tree, Limit, Esc0, Dep0, Par) -> %% receive any values as inputs. Also add an extra dependency edge %% from each fun-expression label to its parent fun-expression. %%% io:fwrite("Escape: ~p.\n",[Esc0]), - Esc = sets:from_list(Esc0), + Esc = sets:from_list(Esc0, [{version, 2}]), Any = t_any(), None = t_none(), Funs0 = dict:new(), @@ -828,7 +828,7 @@ queue__get({In, _}) -> %% The work list - a queue without repeated elements. init_work() -> - {queue__put(external, queue__new()), sets:new()}. + {queue__put(external, queue__new()), sets:new([{version, 2}])}. add_work(Ls, {Q, Set}) -> add_work(Ls, Q, Set). diff --git a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl index 898ed26daf..ea3770270d 100644 --- a/lib/dialyzer/src/dialyzer_analysis_callgraph.erl +++ b/lib/dialyzer/src/dialyzer_analysis_callgraph.erl @@ -143,7 +143,7 @@ analysis_start(Parent, Analysis, LegalWarnings) -> Plt1 = dialyzer_plt:insert_callbacks(Plt1_a, NewCServer), State1 = State#analysis_state{codeserver = NewCServer, plt = Plt1}, Exports = dialyzer_codeserver:get_exports(NewCServer), - NonExports = sets:subtract(sets:from_list(AllNodes), Exports), + NonExports = sets:subtract(sets:from_list(AllNodes, [{version, 2}]), Exports), NonExportsList = sets:to_list(NonExports), NewCallgraph = case Analysis#analysis.race_detection of @@ -382,7 +382,7 @@ cleanup_callgraph(#analysis_state{plt = InitPlt, parent = Parent, {BadCalls1, RealExtCalls} = if ExtCalls1 =:= [] -> {[], []}; true -> - ModuleSet = sets:from_list(Modules), + ModuleSet = sets:from_list(Modules, [{version, 2}]), PltModuleSet = dialyzer_plt:all_modules(InitPlt), AllModules = sets:union(ModuleSet, PltModuleSet), Pred = fun({_From, {M, _F, _A}}) -> sets:is_element(M, AllModules) end, @@ -475,7 +475,7 @@ get_exported_types_from_core(Core) -> cerl:concrete(L1) =:= 'export_type'], ExpTypes2 = lists:flatten(ExpTypes1), M = cerl:atom_val(cerl:module_name(Core)), - sets:from_list([{M, F, A} || {F, A} <- ExpTypes2]). + sets:from_list([{M, F, A} || {F, A} <- ExpTypes2], [{version, 2}]). get_exports_from_core(Core) -> Tree = cerl:from_records(Core), diff --git a/lib/dialyzer/src/dialyzer_callgraph.erl b/lib/dialyzer/src/dialyzer_callgraph.erl index fcf2c9d8af..506a785885 100644 --- a/lib/dialyzer/src/dialyzer_callgraph.erl +++ b/lib/dialyzer/src/dialyzer_callgraph.erl @@ -222,7 +222,7 @@ remove_external(#callgraph{digraph = DG} = CG) -> non_local_calls(#callgraph{digraph = DG}) -> Edges = digraph_edges(DG), - find_non_local_calls(Edges, sets:new()). + find_non_local_calls(Edges, sets:new([{version, 2}])). -type call_tab() :: sets:set(mfa_call()). diff --git a/lib/dialyzer/src/dialyzer_cl.erl b/lib/dialyzer/src/dialyzer_cl.erl index 2dd56ebb08..39c4634d74 100644 --- a/lib/dialyzer/src/dialyzer_cl.erl +++ b/lib/dialyzer/src/dialyzer_cl.erl @@ -452,8 +452,8 @@ clean_plt(PltFile, RemovedMods) -> Plt, RemovedMods). expand_dependent_modules(Md5, DiffMd5, ModDeps) -> - ChangedMods = sets:from_list([M || {differ, M} <- DiffMd5]), - RemovedMods = sets:from_list([M || {removed, M} <- DiffMd5]), + ChangedMods = sets:from_list([M || {differ, M} <- DiffMd5], [{version, 2}]), + RemovedMods = sets:from_list([M || {removed, M} <- DiffMd5], [{version, 2}]), BigSet = sets:union(ChangedMods, RemovedMods), BigList = sets:to_list(BigSet), ExpandedSet = expand_dependent_modules_1(BigList, BigSet, ModDeps), diff --git a/lib/dialyzer/src/dialyzer_codeserver.erl b/lib/dialyzer/src/dialyzer_codeserver.erl index b25ea791d2..9b8a165dd0 100644 --- a/lib/dialyzer/src/dialyzer_codeserver.erl +++ b/lib/dialyzer/src/dialyzer_codeserver.erl @@ -122,7 +122,7 @@ ets_set_insert_list(List, Table) -> ets_set_to_set(Table) -> Fold = fun({E}, Set) -> sets:add_element(E, Set) end, - ets:foldl(Fold, sets:new(), Table). + ets:foldl(Fold, sets:new([{version, 2}]), Table). %%-------------------------------------------------------------------- diff --git a/lib/dialyzer/src/dialyzer_dataflow.erl b/lib/dialyzer/src/dialyzer_dataflow.erl index 2323889a51..49353ff945 100644 --- a/lib/dialyzer/src/dialyzer_dataflow.erl +++ b/lib/dialyzer/src/dialyzer_dataflow.erl @@ -3093,7 +3093,7 @@ state__new(Callgraph, Codeserver, Tree, Plt, Module, Records) -> envs = Env, fun_tab = FunTab, fun_homes = FunHomes, opaques = Opaques, plt = Plt, races = dialyzer_races:new(), records = Records, warning_mode = false, warnings = [], work = Work, tree_map = TreeMap, - module = Module, reachable_funs = sets:new()}. + module = Module, reachable_funs = sets:new([{version, 2}])}. state__warning_mode(#state{warning_mode = WM}) -> WM. @@ -3628,7 +3628,7 @@ renew_race_public_tables([Var], #state{races = Races, callgraph = Callgraph, %%% =========================================================================== init_work(List) -> - {List, [], sets:from_list(List)}. + {List, [], sets:from_list(List, [{version, 2}])}. get_work({[], [], _Set}) -> none; diff --git a/lib/dialyzer/src/dialyzer_dep.erl b/lib/dialyzer/src/dialyzer_dep.erl index 1880e1ee5c..f5885a8567 100644 --- a/lib/dialyzer/src/dialyzer_dep.erl +++ b/lib/dialyzer/src/dialyzer_dep.erl @@ -319,10 +319,10 @@ primop(Tree, ArgFuns, State) -> -record(set, {set :: sets:set()}). set__singleton(Val) -> - #set{set = sets:add_element(Val, sets:new())}. + #set{set = sets:add_element(Val, sets:new([{version, 2}]))}. set__from_list(List) -> - #set{set = sets:from_list(List)}. + #set{set = sets:from_list(List, [{version, 2}])}. set__is_element(_El, none) -> false; diff --git a/lib/dialyzer/src/dialyzer_typesig.erl b/lib/dialyzer/src/dialyzer_typesig.erl index 8daf5d5b69..aadefb7a94 100644 --- a/lib/dialyzer/src/dialyzer_typesig.erl +++ b/lib/dialyzer/src/dialyzer_typesig.erl @@ -181,7 +181,7 @@ analyze_scc(SCC, NextLabel, CallGraph, CServer, Plt, PropTypes, Solvers0) -> Solvers = solvers(Solvers0), State1 = new_state(SCC, NextLabel, CallGraph, CServer, Plt, PropTypes, Solvers), - DefSet = add_def_list(maps:values(State1#state.name_map), sets:new()), + DefSet = add_def_list(maps:values(State1#state.name_map), sets:new([{version, 2}])), State2 = traverse_scc(SCC, CServer, DefSet, State1), State3 = state__finalize(State2), Funs = state__scc(State3), -- 2.31.1
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