Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:26
erlang
2172-compiler-Allow-user-to-override-handling-o...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2172-compiler-Allow-user-to-override-handling-of-collecte.patch of Package erlang
From c6774065f77cec5ba2a3e0a18b77a75c51b350f0 Mon Sep 17 00:00:00 2001 From: Frej Drejhammar <frej.drejhammar@gmail.com> Date: Tue, 24 Oct 2023 14:17:34 +0200 Subject: [PATCH 2/3] compiler: Allow user to override handling of collected timing info Allow the user to override the handler for collected pass timing info by specifying a {time,Handler} option. --- lib/compiler/src/compile.erl | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index 67333af6f5..587f5201e4 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -283,6 +283,8 @@ expand_opt(no_module_opt=O, Os) -> [O,no_recv_opt | Os]; expand_opt({check_ssa,Tag}, Os) -> [check_ssa, Tag | Os]; +expand_opt(time, Os) -> + [{time,fun print_pass_times/2}|Os]; expand_opt(O, Os) -> [O|Os]. -spec format_error(ErrorDescription :: error_description()) -> string(). @@ -381,8 +383,8 @@ internal_comp(Passes, Code0, File, Suffix, St0) -> ifile=erlfile(Dir, Base, Suffix), ofile=objfile(Base, St0)}, Run = runner(St1), - Folder = case member(time, St1#compile.options) of - true -> + Folder = case keyfind(time, 1, St1#compile.options) of + {time,_} -> fun fold_comp_times/4; false -> fun fold_comp/4 @@ -397,7 +399,8 @@ fold_comp_times(Passes, Run, Code, St) -> R = fold_comp(Passes, Run, Code, St), Times = reverse(get(?PASS_TIMES)), erase(?PASS_TIMES), - print_pass_times(St#compile.filename, Times), + {time,Handler} = keyfind(time, 1, St#compile.options), + Handler(St#compile.filename, Times), R. fold_comp([{delay,Ps0}|Passes], Run, Code, #compile{options=Opts}=St) -> @@ -439,8 +442,8 @@ runner(#compile{options=Opts}) -> Run0 = fun({_Name,Fun}, Code, St) -> Fun(Code, St) end, - Run1 = case member(time, Opts) of - true -> + Run1 = case keyfind(time, 1, Opts) of + {time,_} -> fun run_tc/3; false -> Run0 -- 2.35.3
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