Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
3573-features-Remove-unneeded-functions.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3573-features-Remove-unneeded-functions.patch of Package erlang
From cc69af25a7f50a37b4ed7d052c838a11d4e6c1f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cons=20T=20=C3=85hs?= <cons@erlang.org> Date: Fri, 29 Apr 2022 13:49:04 +0200 Subject: [PATCH 3/6] [features] Remove unneeded functions * Changing set if enabled features not allowed during runtime * Adjust test to not use removed functions * Adjust test to start peer with feature enabled --- erts/test/lux/feature_erlc.lux | 26 ++++----------------- erts/test/lux/feature_output.lux | 11 +-------- erts/test/lux/feature_runtime.lux | 31 ++++++------------------- lib/stdlib/src/erl_features.erl | 38 ------------------------------- lib/stdlib/test/epp_SUITE.erl | 27 +++++++++++++++------- 5 files changed, 32 insertions(+), 101 deletions(-) diff --git a/erts/test/lux/feature_erlc.lux b/erts/test/lux/feature_erlc.lux index 5082f56ad1..e4a092cff6 100644 --- a/erts/test/lux/feature_erlc.lux +++ b/erts/test/lux/feature_erlc.lux @@ -255,13 +255,8 @@ !f(Fs). ?$ERLPROMPT - # Somewhat questionable if we really should allow this in runtime - # FIXME WE should *not* allow this at runtime. - !Fs = erl_features:enable_feature(ifn_expr). - ?$ERLPROMPT - [invoke same-members Fs "[cond_expr,maps,ifn_expr]"] - !f(Fs). - ?$ERLPROMPT + [invoke quit-erl] + [invoke start-erl "-enable-feature ifn_expr"] !l(f_macros). ?{module,f_macros} @@ -286,7 +281,7 @@ ???{ok,f_macros} ?$ERLPROMPT - # This should be allowed as we have not enabled the feature in the + # This should not be allowed as we have not enabled the feature in the # runtime !l(f_macros). ??{error,not_allowed} @@ -309,19 +304,8 @@ [invoke ok] [shell erl] - # FIXME This should not be allowed at runtime.. - !Fs = erl_features:enable_feature(ifn_expr). - ?$ERLPROMPT - [invoke same-members Fs "[cond_expr,maps,ifn_expr]"] - !f(Fs). - ?$ERLPROMPT - - # FIXME This should not be allowed at runtime.. - !Fs = erl_features:enable_feature(while_expr). - ?$ERLPROMPT - [invoke same-members Fs "[cond_expr,maps,ifn_expr,while_expr]"] - !f(Fs). - ?$ERLPROMPT + [invoke quit-erl] + [invoke start-erl "-enable-feature while_expr -enable-feature ifn_expr"] !l(f_macros). ?{module,f_macros} diff --git a/erts/test/lux/feature_output.lux b/erts/test/lux/feature_output.lux index 0b20d3fc4a..30e6c3064f 100644 --- a/erts/test/lux/feature_output.lux +++ b/erts/test/lux/feature_output.lux @@ -8,24 +8,15 @@ !export OTP_TEST_FEATURES=true ?SH-PROMPT: -undefined function - !erl -pa $outdir - ?$ERLPROMPT + [invoke start-erl "-enable-feature while_expr -enable-feature ifn_expr"] # Output should should know about the new reserved words during runtime - [invoke same-members "erl_features:enable_feature(while_expr)" "[cond_expr,maps,while_expr]"] - - [invoke same-members "erl_features:enable_feature(ifn_expr)" "[cond_expr,maps,while_expr,ifn_expr]"] - # !feature_directive_maybe_ifn:foo(). !['ifn','while','until','if']. ??['ifn','while','until','if'] ?$ERLPROMPT - !erl_features:enable_feature(ifn_expr). - ?[ifn_expr,maybe_expr] - ?$ERLPROMPT - [cleanup] [invoke no-dump] !rm -fr $outdir diff --git a/erts/test/lux/feature_runtime.lux b/erts/test/lux/feature_runtime.lux index 1048164a52..3dd1b2aca8 100644 --- a/erts/test/lux/feature_runtime.lux +++ b/erts/test/lux/feature_runtime.lux @@ -8,8 +8,7 @@ !export OTP_TEST_FEATURES=true ?SH-PROMPT: -undefined function - !erl - ?$ERLPROMPT + [invoke start-erl ""] [invoke same-members "erl_features:enabled()" "[cond_expr,maps]"] @@ -17,28 +16,23 @@ ??[] ?$ERLPROMPT - [invoke same-members "erl_features:enable_feature(while_expr)" "[cond_expr,maps,while_expr]"] + [invoke quit-erl] + [invoke start-erl "-enable-feature while_expr"] !erl_features:keywords(). ??['while','until'] ?$ERLPROMPT - [invoke same-members "erl_features:disable_feature(while_expr)" "[cond_expr,maps]"] - - !erl_features:keywords(). - ??[] - ?$ERLPROMPT - - [invoke same-members "erl_features:enable_feature(ifn_expr)" "[cond_expr,maps,ifn_expr]"] - - [invoke same-members "erl_features:enable_feature(while_expr)" "[cond_expr,maps,ifn_expr,while_expr]"] + [invoke quit-erl] + [invoke start-erl "-enable-feature ifn_expr -enable-feature while_expr"] [invoke same-members "erl_features:enabled()" "[cond_expr,maps,ifn_expr,while_expr]"] !erl_features:keywords(). ??['while','until','ifn'] - [invoke same-members "erl_features:disable_feature(ifn_expr)" "[cond_expr,maps,while_expr]"] + [invoke quit-erl] + [invoke start-erl "-enable-feature while_expr"] [invoke same-members "erl_features:enabled()" "[cond_expr,maps,while_expr]"] @@ -46,17 +40,6 @@ ??['while','until'] ?$ERLPROMPT - [invoke same-members "erl_features:disable_feature(while_expr)" "[cond_expr,maps]"] - - !erl_features:keywords(). - ??[] - ?$ERLPROMPT - - !erl_features:enable_feature(misfeature). - ??invalid_feature - ??argument 1: unknown feature - ?$ERLPROMPT - [shell erl] [invoke quit-erl] diff --git a/lib/stdlib/src/erl_features.erl b/lib/stdlib/src/erl_features.erl index edb1e71d52..399d048c27 100644 --- a/lib/stdlib/src/erl_features.erl +++ b/lib/stdlib/src/erl_features.erl @@ -29,8 +29,6 @@ keywords/1, keyword_fun/2, keyword_fun/4, - enable_feature/1, - disable_feature/1, used/1, format_error/1, format_error/2]). @@ -374,42 +372,6 @@ ensure_init() -> init_features() end. -%% FIXME - remove this. It should not be available at runtime. This -%% is all done by the init code. -enable_feature(Feature) -> - ?VALID_FEATURE(Feature), - - Features = enabled(), - case lists:member(Feature, Features) of - true -> - %% already there, maybe raise an error - Features; - false -> - NewFeatures = [Feature| Features], - enabled_features(NewFeatures), - Keywords = keywords(), - New = keywords(Feature), - set_keywords(New ++ Keywords), - NewFeatures - end. - -disable_feature(Feature) -> - ?VALID_FEATURE(Feature), - - Features = enabled(), - case lists:member(Feature, Features) of - true -> - NewFeatures = Features -- [Feature], - enabled_features(NewFeatures), - Keywords = keywords(), - Rem = keywords(Feature), - set_keywords(Keywords -- Rem), - NewFeatures; - false -> - %% Not there, possibly raise an error - Features - end. - %% Return list of currently enabled features -spec enabled() -> [feature()]. enabled() -> diff --git a/lib/stdlib/test/epp_SUITE.erl b/lib/stdlib/test/epp_SUITE.erl index 027d6ec42a..5d7e362c50 100644 --- a/lib/stdlib/test/epp_SUITE.erl +++ b/lib/stdlib/test/epp_SUITE.erl @@ -2116,14 +2116,23 @@ run_test(Config, Test0, Opts0) -> Opts = [return, {i,PrivDir},{outdir,PrivDir}] ++ Opts0, {ok, epp_test, []} = compile:file(File, Opts), AbsFile = filename:rootname(File, ".erl"), - %% FIXME For now, use forbidden feature at rumtime - erl_features:enable_feature(maybe_expr), - {module, epp_test} = code:load_abs(AbsFile, epp_test), - %% FIXME For now, use forbidden feature at rumtime - erl_features:disable_feature(maybe_expr), - Reply = epp_test:t(), - code:purge(epp_test), - Reply. + + case lists:member({feature, maybe_expr, enable}, Opts0) of + false -> + %% Run in node + {module, epp_test} = code:load_abs(AbsFile, epp_test), + Reply = epp_test:t(), + code:purge(epp_test), + Reply; + true -> + %% Run in peer with maybe_expr enabled + {ok, Peer, Node} = + ?CT_PEER(#{args => ["-enable-feature","maybe_expr"], + connection => 0}), + {module, epp_test} = + rpc:call(Node, code, load_abs, [AbsFile, epp_test]), + rpc:call(Node, epp_test, t, []), + end. fail() -> ct:fail(failed). -- 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