Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:26
erlang
1951-compiler-Update-compile-module-to-use-spec...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 1951-compiler-Update-compile-module-to-use-specs.patch of Package erlang
From 85c4e2fad973a1500a53913e26ff12d6007297fc Mon Sep 17 00:00:00 2001 From: Lukas Larsson <lukas@erlang.org> Date: Mon, 9 Oct 2023 15:32:24 +0200 Subject: [PATCH 1/3] compiler: Update compile module to use specs --- lib/compiler/doc/specs/.gitignore | 0 lib/compiler/doc/src/Makefile | 2 + lib/compiler/doc/src/compile.xml | 89 ++++++++++++++++--------------- lib/compiler/doc/src/specs.xml | 4 ++ lib/compiler/src/compile.erl | 18 ++++--- 5 files changed, 61 insertions(+), 52 deletions(-) create mode 100644 lib/compiler/doc/specs/.gitignore create mode 100644 lib/compiler/doc/src/specs.xml diff --git a/lib/compiler/doc/src/Makefile b/lib/compiler/doc/src/Makefile index 57c7bc2dc7..ae60abba08 100644 --- a/lib/compiler/doc/src/Makefile +++ b/lib/compiler/doc/src/Makefile @@ -46,6 +46,8 @@ XML_FILES = \ $(BOOK_FILES) $(XML_NOTES_FILES) \ $(XML_PART_FILES) $(XML_REF3_FILES) $(XML_APPLICATION_FILES) +TOP_SPECS_FILE = specs.xml + $(XMLDIR)/%.xml: ../../internal_doc/%.md $(ERL_TOP)/make/emd2exml $(ERL_TOP)/make/emd2exml $< $@ diff --git a/lib/compiler/doc/src/compile.xml b/lib/compiler/doc/src/compile.xml index d7bfc63c83..a623281eb7 100644 --- a/lib/compiler/doc/src/compile.xml +++ b/lib/compiler/doc/src/compile.xml @@ -39,19 +39,46 @@ </description> <datatypes> - <datatype> - <name>option() = term()</name> - <desc><p>See <seemfa marker="#file/2">file/2</seemfa> for detailed description</p></desc> - </datatype> - <datatype> - <name>forms() = term()</name> - <desc><p>List of Erlang abstract or Core Erlang format representations, as used by <seemfa marker="#forms/2">forms/2</seemfa></p></desc> - </datatype> + <datatype> + <name name="abstract_code"/> + </datatype> + <datatype> + <name name="bin_ret"/> + </datatype> + <datatype> + <name name="comp_ret"/> + </datatype> + <datatype> + <name name="err_ret"/> + </datatype> + <datatype> + <name name="error_description"/> + </datatype> + <datatype> + <name name="error_info"/> + </datatype> + <datatype> + <name name="errors"/> + </datatype> + <datatype> + <name name="forms"/> + <desc><p>List of Erlang abstract or Core Erlang format representations, as used by <seemfa marker="#forms/2">forms/2</seemfa>.</p></desc> + </datatype> + <datatype> + <name name="mod_ret"/> + </datatype> + <datatype> + <name name="option"/> + <desc><p>See <seemfa marker="#file/2">file/2</seemfa> for detailed description.</p></desc> + </datatype> + <datatype> + <name name="warnings"/> + </datatype> </datatypes> <funcs> <func> - <name since="OTP 19.0">env_compiler_options()</name> + <name name="env_compiler_options" arity="0" since="OTP 19.0"/> <fsummary> Compiler options defined via the environment variable <c>ERL_COMPILER_OPTIONS</c> @@ -64,7 +91,7 @@ </desc> </func> <func> - <name since="">file(File)</name> + <name name="file" arity="1" since=""/> <fsummary>Compiles a file.</fsummary> <desc> <p>Is the same as @@ -74,14 +101,8 @@ </func> <func> - <name since="">file(File, Options) -> CompRet</name> + <name name="file" arity="2" since=""/> <fsummary>Compiles a file.</fsummary> - <type> - <v>CompRet = ModRet | BinRet | ErrRet</v> - <v>ModRet = {ok,ModuleName} | {ok,ModuleName,Warnings}</v> - <v>BinRet = {ok,ModuleName,Binary} | {ok,ModuleName,Binary,Warnings}</v> - <v>ErrRet = error | {error,Errors,Warnings}</v> - </type> <desc> <p>Compiles the code in the file <c>File</c>, which is an Erlang source code file without the <c>.erl</c> extension. @@ -935,7 +956,7 @@ module.beam: module.erl \ </func> <func> - <name since="">forms(Forms)</name> + <name name="forms" arity="1" since=""/> <fsummary>Compiles a list of forms.</fsummary> <desc> <p>Is the same as @@ -945,19 +966,8 @@ module.beam: module.erl \ </func> <func> - <name since="">forms(Forms, Options) -> CompRet</name> + <name name="forms" arity="2" since=""/> <fsummary>Compiles a list of forms.</fsummary> - <type> - <v>Forms = <seetype marker="#forms">forms()</seetype></v> - <v>forms() = [<seetype marker="stdlib:erl_parse#abstract_form">erl_parse:abstract_form</seetype>] | <seeerl marker="cerl#type-c_module">cerl:c_module()</seeerl></v> - <v>Options = [<seetype marker="#option">option()</seetype>]</v> - <v>CompRet = BinRet | ErrRet</v> - <v>BinRet = {ok,ModuleName,BinaryOrCode} | {ok,ModuleName,BinaryOrCode,Warnings}</v> - <v>ModuleName = module()</v> - <v>BinaryOrCode = binary() | term()</v> - <v>ErrRet = error | {error,Errors,Warnings}</v> - <v>Warnings = Errors = [{<seetype marker="kernel:file#filename">file:filename()</seetype>, [{<seetype marker="stdlib:erl_anno#location">erl_anno:location()</seetype> | 'none', module(), term()}]}]</v> - </type> <desc> <p>Analogous to <c>file/1</c>, but takes a list of forms (in either Erlang abstract or Core Erlang format representation) @@ -971,11 +981,8 @@ module.beam: module.erl \ </func> <func> - <name since="">format_error(ErrorDescriptor) -> chars()</name> + <name name="format_error" arity="1" since=""/> <fsummary>Formats an error descriptor.</fsummary> - <type> - <v>ErrorDescriptor = errordesc()</v> - </type> <desc> <p>Uses an <c>ErrorDescriptor</c> and returns a deep list of characters that describes the error. This function is @@ -986,11 +993,8 @@ module.beam: module.erl \ </func> <func> - <name since="">output_generated(Options) -> true | false</name> + <name name="output_generated" arity="1" since=""/> <fsummary>Determines whether the compiler generates an output file.</fsummary> - <type> - <v>Options = [term()]</v> - </type> <desc> <p>Determines whether the compiler generates a <c>beam</c> file with the given options. <c>true</c> means that a <c>beam</c> @@ -1001,7 +1005,7 @@ module.beam: module.erl \ </func> <func> - <name since="">noenv_file(File, Options) -> CompRet</name> + <name name="noenv_file" arity="2" since="" /> <fsummary>Compiles a file (ignoring <c>ERL_COMPILER_OPTIONS)</c>.</fsummary> <desc> <p>Works like <seemfa marker="#file/2">file/2</seemfa>, @@ -1011,7 +1015,7 @@ module.beam: module.erl \ </func> <func> - <name since="">noenv_forms(Forms, Options) -> CompRet</name> + <name name="noenv_forms" arity="2" since="" /> <fsummary>Compiles a list of forms (ignoring <c>ERL_COMPILER_OPTIONS)</c>.</fsummary> <desc> <p>Works like <seemfa marker="#forms/2">forms/2</seemfa>, @@ -1021,12 +1025,9 @@ module.beam: module.erl \ </func> <func> - <name since="">noenv_output_generated(Options) -> true | false</name> + <name name="noenv_output_generated" arity="1" since="" /> <fsummary>Determines whether the compiler generates an output file (ignoring <c>ERL_COMPILER_OPTIONS)</c>.</fsummary> - <type> - <v>Options = [term()]</v> - </type> <desc> <p>Works like <seemfa marker="#output_generated/1">output_generated/1</seemfa>, diff --git a/lib/compiler/doc/src/specs.xml b/lib/compiler/doc/src/specs.xml new file mode 100644 index 0000000000..01df8b6d6e --- /dev/null +++ b/lib/compiler/doc/src/specs.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="utf-8" ?> +<specs xmlns:xi="http://www.w3.org/2001/XInclude"> + <xi:include href="../specs/specs_compile.xml"/> +</specs> diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index 3abcb1df6e..49856b448f 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -82,22 +82,24 @@ -define(DEFAULT_OPTIONS, [verbose,report_errors,report_warnings]). --spec file(module() | file:filename()) -> comp_ret(). +-spec file(module() | file:filename()) -> + CompRet :: comp_ret(). file(File) -> file(File, ?DEFAULT_OPTIONS). --spec file(module() | file:filename(), [option()] | option()) -> comp_ret(). +-spec file(module() | file:filename(), Options :: [option()] | option()) -> + CompRet :: comp_ret(). file(File, Opts) when is_list(Opts) -> do_compile({file,File}, Opts++env_default_opts()); file(File, Opt) -> file(File, [Opt|?DEFAULT_OPTIONS]). --spec forms(abstract_code()) -> comp_ret(). +-spec forms(forms()) -> CompRet :: comp_ret(). forms(Forms) -> forms(Forms, ?DEFAULT_OPTIONS). --spec forms(forms(), [option()] | option()) -> comp_ret(). +-spec forms(forms(), Options :: [option()] | option()) -> CompRet :: comp_ret(). forms(Forms, Opts) when is_list(Opts) -> do_compile({forms,Forms}, [binary|Opts++env_default_opts()]); @@ -108,7 +110,7 @@ forms(Forms, Opt) when is_atom(Opt) -> %% would have generated a Beam file, false otherwise (if only a binary or a %% listing file would have been generated). --spec output_generated([option()]) -> boolean(). +-spec output_generated(Options :: [option()]) -> boolean(). output_generated(Opts) -> noenv_output_generated(Opts++env_default_opts()). @@ -118,7 +120,7 @@ output_generated(Opts) -> %% for default options. %% --spec noenv_file(module() | file:filename(), [option()] | option()) -> comp_ret(). +-spec noenv_file(module() | file:filename(), Options :: [option()] | option()) -> comp_ret(). noenv_file(File, Opts) when is_list(Opts) -> do_compile({file,File}, Opts); @@ -132,7 +134,7 @@ noenv_forms(Forms, Opts) when is_list(Opts) -> noenv_forms(Forms, Opt) when is_atom(Opt) -> noenv_forms(Forms, [Opt|?DEFAULT_OPTIONS]). --spec noenv_output_generated([option()]) -> boolean(). +-spec noenv_output_generated(Options :: [option()]) -> boolean(). noenv_output_generated(Opts) -> {_,Passes} = passes(file, expand_opts(Opts)), @@ -282,7 +284,7 @@ expand_opt({check_ssa,Tag}, Os) -> [check_ssa, Tag | Os]; expand_opt(O, Os) -> [O|Os]. --spec format_error(error_description()) -> iolist(). +-spec format_error(ErrorDescription :: error_description()) -> string(). format_error({obsolete_option,Ver}) -> io_lib:fwrite("the ~p option is no longer supported", [Ver]); -- 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