Skip to content

Commit 1801989

Browse files
authored
fix: remove catch (#43)
* fix: remove catch
1 parent f5fdd13 commit 1801989

23 files changed

Lines changed: 11 additions & 2294 deletions

.github/workflows/build.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
name: OTP ${{matrix.otp}}
99
strategy:
1010
matrix:
11-
otp: ["24.0", "25.0", "26.0", "27.0"]
11+
otp: ["26.0", "27.0"]
1212
steps:
1313
- uses: actions/checkout@v2.0.0
1414
- uses: erlef/setup-beam@v1.18.0

README.md

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,17 @@ Manifest
2525
* time.hrl -- Macros and type aliases related to time and date.
2626
* src/:
2727
* s2_atoms.erl -- Atom-related utilities.
28-
* s2_csets.erl -- Counting sets.
2928
* s2_env.erl -- Environment access and setup.
30-
* s2_export.erl -- Export unexported functions from the REPL.
31-
* s2_fs.erl -- Filesystem-related utilities.
3229
* s2_functors.erl -- The functor typeclass.
3330
* s2_funs.erl -- Combinators.
34-
* s2_gen_db.erl -- Behaviour for persistent state.
35-
* s2_gen_lattice.erl -- Behaviour for lattices.
36-
* s2_hex.erl -- ASCII armor.
3731
* s2_lists.erl -- `lists' extensions.
3832
* s2_loop.erl -- Higher-order functions for writing loops.
3933
* s2_maps.erl -- Nested dictionaries.
4034
* s2_maybe.erl -- The Maybe Monad.
4135
* s2_par.erl -- Better pmap.
42-
* s2_pn_counters.erl -- PN counters.
4336
* s2_procs.erl -- `erlang' extensions.
44-
* s2_rand.erl -- Randomness.
4537
* s2_sh.erl -- Unix commands.
4638
* s2_strats.erl -- Sane supervision defaults.
4739
* s2_time.erl -- Timestamps.
48-
* s2_vclocks.erl -- Vector clocks.
4940

5041
// eof

include/prelude.hrl

Lines changed: 0 additions & 149 deletions
Original file line numberDiff line numberDiff line change
@@ -239,131 +239,6 @@
239239
end
240240
end)()).
241241

242-
-ifdef(S2_USE_KIVRA_METRICS).
243-
244-
-define(do_increment(__Name),
245-
(kivra_metrics:increase_counter([?APP | __Name]))).
246-
-define(do_increment(__Fun, __Ret),
247-
?do_increment([?MODULE, __Fun, __Ret])).
248-
-define(do_time(__Name, __Expr),
249-
(kivra_metrics:time_mfa([?APP | __Name], ?thunk(__Expr)))).
250-
-define(do_time_diff(__Name, __Time),
251-
(kivra_metrics:time_diff([?APP | __Name], __Time))).
252-
-define(do_histogram(__Name, __Value),
253-
(kivra_metrics:histogram([?APP | __Name], __Value))).
254-
255-
-else.
256-
257-
-ifdef(S2_USE_FOLSOM).
258-
259-
-define(name(Xs), (s2_atoms:catenate(s2_lists:intersperse('_', Xs)))).
260-
261-
-define(do_increment(Name),
262-
(catch folsom_metrics:notify({?name(Name), 1}))).
263-
-define(do_increment(Fun, Ret),
264-
?do_increment([?APP, ?MODULE, Fun, Ret])).
265-
-define(do_time(Name, Expr),
266-
(try case is_list(Name) of
267-
true ->
268-
folsom_metrics:histogram_timed_update(?name(Name),
269-
?thunk(Expr));
270-
false ->
271-
folsom_metrics:histogram_timed_update(?name([ ?MODULE
272-
, ?APP
273-
, Name]),
274-
?thunk(Expr))
275-
end catch _:_ -> Expr
276-
end)).
277-
-define(do_time_diff(Name, Time),
278-
(catch case is_list(Name) of
279-
true ->
280-
folsom_metrics:histogram_timed_notify({?name(Name),
281-
Time});
282-
false ->
283-
folsom_metrics:histogram_timed_notify({ ?name([ ?MODULE
284-
, ?APP
285-
, Name])
286-
, Time})
287-
end)).
288-
289-
-else.
290-
291-
-ifdef(S2_USE_ESTATSD).
292-
293-
-define(name(Xs), (s2_atoms:catenate(s2_lists:intersperse('.', Xs)))).
294-
295-
-define(do_increment(__Name),
296-
(catch estatsd:increment(?name(__Name)))).
297-
-define(do_increment(__Fun, __Ret),
298-
?do_increment([?APP, ?MODULE, __Fun, __Ret])).
299-
-define(do_time(__Name, Expr),
300-
(begin
301-
{__T, __Val} = timer:tc(?thunk(Expr)),
302-
case is_list(__Name) of
303-
true -> estatsd:timing(?name(__Name), __T/1000);
304-
false -> estatsd:timing(?name([?MODULE, ?APP, __Name]), __T/1000)
305-
end,
306-
__Val
307-
end)).
308-
-define(do_time_diff(__Name, __Time),
309-
(catch case is_list(__Name) of
310-
true ->
311-
estatsd:timing(?name(__Name), __Time);
312-
false ->
313-
estatsd:timing(?name([?MODULE, ?APP, __Name]), __Time)
314-
end)).
315-
316-
-else.
317-
318-
-ifdef(S2_RIEMANN).
319-
320-
-ifdef(S2_RIEMANN_USE_POOL).
321-
-define(katja, katja_pool).
322-
-else.
323-
-define(katja, katja).
324-
-endif.
325-
326-
-define(name(Xs), (?a2l(s2_atoms:catenate(s2_lists:intersperse('/', Xs))))).
327-
328-
-define(do_increment(__Name),
329-
(ok)).
330-
-define(do_increment(__Fun, __Ret),
331-
?do_increment([?APP, ?MODULE, __Fun, __Ret])).
332-
-define(do_time(__Name, Expr),
333-
(begin
334-
{__T, __Val} = timer:tc(?thunk(Expr)),
335-
case is_list(__Name) of
336-
true ->
337-
?katja:send_event_async([ {service, ?name(__Name)}
338-
, {time, s2_time:unix_epoch()}
339-
, {metric, round(__T/1000)}]);
340-
false ->
341-
?katja:send_event_async([ {service, ?name([?APP, ?MODULE])}
342-
, {time, s2_time:unix_epoch()}
343-
, {metric, round(__T/1000)}])
344-
end,
345-
__Val
346-
end)).
347-
-define(do_time_diff(__Name, __Time),
348-
(catch case is_list(__Name) of
349-
true ->
350-
?katja:send_event_async(
351-
[ {service, ?name(__Name)}
352-
, {time, s2_time:unix_epoch()}
353-
, {metric, timer:now_diff(os:timestamp(), __Time)/1000}] );
354-
false ->
355-
?katja:send_event_async(
356-
[ {service, ?name([?APP, ?MODULE])}
357-
, {time, s2_time:unix_epoch()}
358-
, {metric, timer:now_diff(os:timestamp(), __Time)/1000}] )
359-
end)).
360-
361-
-else. %default
362-
363-
-define(name(Xs), (s2_atoms:catenate(s2_lists:intersperse('.', Xs)))).
364-
365-
-define(do_increment(Name), ok).
366-
-define(do_increment(Fun, Ret), Fun, ok).
367242
-define(do_time(__Name, __Expr),
368243
(begin
369244
{__T, __Val} = timer:tc(?thunk(__Expr)),
@@ -375,40 +250,16 @@
375250
end,
376251
__Val
377252
end)).
378-
-define(do_time_diff(__Name, __Time),
379-
(catch case is_list(__Name) of
380-
true ->
381-
?debug( "time(~s): ~wms ~p~n"
382-
, [ ?MODULE
383-
, timer:now_diff(os:timestamp(), __Time)/1000
384-
, ?name(__Name) ] );
385-
false ->
386-
?debug( "time(~s): ~wms ~p~n"
387-
, [ ?MODULE
388-
, timer:now_diff(os:timestamp(), __Time)/1000
389-
, __Name ] )
390-
end)).
391-
392-
-endif. %S2_USE_ESTATSD
393-
394-
-endif. %S2_RIEMANN
395-
396-
-endif.
397-
398-
-endif.
399253

400254
-define(increment(Name), ?do_increment(Name)).
401255
-define(increment(Fun, Ret), ?do_increment(Fun, Ret)).
402256
-define(time(Name, Expr), ?do_time(Name, Expr)).
403-
-define(time_diff(Name, Time), ?do_time_diff(Name, Time)).
404257
-define(histogram(Name, Value), ?do_histogram(Name, Value)).
405258

406259
%%%_* Misc =============================================================
407260
-define(FUNCTION,
408261
(element(2, element(2, process_info(self(), current_function))))).
409262

410-
-define(UUID(), (s2_rand:int())).
411-
412263
%%%_* Types ============================================================
413264
-type alist(A, B) :: [{A, B}].
414265
-type fd() :: file:io_device().

rebar.config

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
, nowarn_export_all
1010
, warnings_as_errors
1111
]}.
12-
{erl_first_files, [ "src/s2_gen_lattice" ]}.
1312
{xref_checks, [undefined_function_calls]}.
1413

1514
% eof

src/s2_atoms.erl

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@
77
-module(s2_atoms).
88

99
%%%_* Exports ==========================================================
10-
-export([ catenate/1
11-
, gensym/0
12-
, gensym/1
13-
]).
10+
-export([catenate/1]).
1411

1512
%%%_* Includes =========================================================
1613
-include("prelude.hrl").
@@ -30,25 +27,6 @@ catenate_test() ->
3027
'foo426.66000000000000000000e+02bar' = catenate([foo, 42, 666.0, "bar"]).
3128
-endif.
3229

33-
34-
-spec gensym() -> atom().
35-
%% @doc gensym() is a fresh atom.
36-
gensym() ->
37-
gensym('$gensym').
38-
gensym(Prefix0) ->
39-
Prefix = s2_lists:to_list(Prefix0),
40-
Ref = erlang:ref_to_list(make_ref()),
41-
{ok, Suffix0, []} = io_lib:fread("#Ref<~d.~d.~d.~d>", Ref),
42-
Suffix = lists:concat(Suffix0),
43-
Sym = Prefix ++ Suffix,
44-
{'EXIT', {badarg, _}} = (catch list_to_existing_atom(Sym)), %assert unique
45-
?l2a(Sym).
46-
47-
-ifdef(TEST).
48-
gensym0_test() -> ?assert(gensym() =/= gensym()).
49-
gensym1_test() -> ?assert(gensym(foo) =/= gensym(foo)).
50-
-endif.
51-
5230
%%%_* Emacs ============================================================
5331
%%% Local Variables:
5432
%%% allout-layout: t

0 commit comments

Comments
 (0)