THRIFT-5635 Update erlang client for Erlang 23-25
Client: erl
Patch: Sergey Yelin
This closes #2677
Summary of changes:
- Add useful compiler options
- Format sources using erlfmt
- Switch to modern callbacks in thrift_* modules
- Add static analysis (dialyzer), disabled by default
- Add/fix types for API calls
NOTE: Enabling static analysis requires additional tweaks in multiplexer module.
diff --git a/lib/erl/src/thrift.app.src b/lib/erl/src/thrift.app.src
index 32e1721..0e25b67 100644
--- a/lib/erl/src/thrift.app.src
+++ b/lib/erl/src/thrift.app.src
@@ -18,57 +18,34 @@
%%
%%% -*- mode:erlang -*-
{application, thrift, [
- % A quick description of the application.
- {description, "Thrift bindings"},
+ % A quick description of the application.
+ {description, "Thrift bindings"},
% The version of the applicaton
{vsn, "0.20.0"},
- % All modules used by the application.
- {modules, [
- thrift_base64_transport,
- thrift_binary_protocol,
- thrift_buffered_transport,
- thrift_client_util,
- thrift_client,
- thrift_disk_log_transport,
- thrift_file_transport,
- thrift_framed_transport,
- thrift_http_transport,
- thrift_json_parser,
- thrift_json_protocol,
- thrift_membuffer_transport,
- thrift_memory_buffer,
- thrift_processor,
- thrift_protocol,
- thrift_reconnecting_client,
- thrift_server,
- thrift_service,
- thrift_socket_server,
- thrift_socket_transport,
- thrift_transport_state_test,
- thrift_transport
- ]},
+ % All modules used by the application.
+ {modules, []},
- % All of the registered names the application uses. This can be ignored.
- {registered, []},
+ % All of the registered names the application uses. This can be ignored.
+ {registered, []},
- % Applications that are to be started prior to this one. This can be ignored
- % leave it alone unless you understand it well and let the .rel files in
- % your release handle this.
- {applications, [kernel, stdlib]},
+ % Applications that are to be started prior to this one. This can be ignored
+ % leave it alone unless you understand it well and let the .rel files in
+ % your release handle this.
+ {applications, [kernel, stdlib]},
- % OTP application loader will load, but not start, included apps. Again
- % this can be ignored as well. To load but not start an application it
- % is easier to include it in the .rel file followed by the atom 'none'
- {included_applications, []},
+ % OTP application loader will load, but not start, included apps. Again
+ % this can be ignored as well. To load but not start an application it
+ % is easier to include it in the .rel file followed by the atom 'none'
+ {included_applications, []},
- % configuration parameters similar to those in the config file specified
- % on the command line. can be fetched with gas:get_env
- {env, [
- % If an error/crash occurs during processing of a function,
- % should the TApplicationException serialized back to the client
- % include the erlang backtrace?
- {exceptions_include_traces, true}
- ]}
+ % configuration parameters similar to those in the config file specified
+ % on the command line. can be fetched with gas:get_env
+ {env, [
+ % If an error/crash occurs during processing of a function,
+ % should the TApplicationException serialized back to the client
+ % include the erlang backtrace?
+ {exceptions_include_traces, true}
+ ]}
]}.