1 diff --git a/src/mochiglobal.erl b/src/mochiglobal.erl
2 deleted file mode 100644
4 --- a/src/mochiglobal.erl
7 -%% @author Bob Ippolito <bob@mochimedia.com>
8 -%% @copyright 2010 Mochi Media, Inc.
9 -%% @doc Abuse module constant pools as a "read-only shared heap" (since erts 5.6)
10 -%% <a href="http://www.erlang.org/pipermail/erlang-questions/2009-March/042503.html">[1]</a>.
11 --module(mochiglobal).
12 --author("Bob Ippolito <bob@mochimedia.com>").
13 --export([get/1, get/2, put/2, delete/1]).
15 -%% -spec get(atom()) -> any() | undefined.
16 -%% @equiv get(K, undefined)
20 -%% -spec get(atom(), T) -> any() | T.
21 -%% @doc Get the term for K or return Default.
23 - get(K, Default, key_to_module(K)).
25 -get(_K, Default, Mod) ->
27 - catch error:undef ->
31 -%% -spec put(atom(), any()) -> ok.
32 -%% @doc Store term V at K, replaces an existing term if present.
34 - put(K, V, key_to_module(K)).
37 - Bin = compile(Mod, V),
39 - {module, Mod} = code:load_binary(Mod, atom_to_list(Mod) ++ ".erl", Bin),
42 -%% -spec delete(atom()) -> boolean().
43 -%% @doc Delete term stored at K, no-op if non-existent.
45 - delete(K, key_to_module(K)).
51 -%% -spec key_to_module(atom()) -> atom().
53 - list_to_atom("mochiglobal:" ++ atom_to_list(K)).
55 -%% -spec compile(atom(), any()) -> binary().
56 -compile(Module, T) ->
57 - {ok, Module, Bin} = compile:forms(forms(Module, T),
58 - [verbose, report_errors]),
61 -%% -spec forms(atom(), any()) -> [erl_syntax:syntaxTree()].
63 - [erl_syntax:revert(X) || X <- term_to_abstract(Module, term, T)].
65 -%% -spec term_to_abstract(atom(), atom(), any()) -> [erl_syntax:syntaxTree()].
66 -term_to_abstract(Module, Getter, T) ->
67 - [%% -module(Module).
68 - erl_syntax:attribute(
69 - erl_syntax:atom(module),
70 - [erl_syntax:atom(Module)]),
71 - %% -export([Getter/0]).
72 - erl_syntax:attribute(
73 - erl_syntax:atom(export),
75 - [erl_syntax:arity_qualifier(
76 - erl_syntax:atom(Getter),
77 - erl_syntax:integer(0))])]),
79 - erl_syntax:function(
80 - erl_syntax:atom(Getter),
81 - [erl_syntax:clause([], none, [erl_syntax:abstract(T)])])].
87 --include_lib("eunit/include/eunit.hrl").
88 -get_put_delete_test() ->
89 - K = '$$test$$mochiglobal',
95 - ?MODULE:put(K, baz),
99 - ?MODULE:put(K, wibble),
114 diff --git a/src/mochiweb.app.src b/src/mochiweb.app.src
115 index c98d8a0..4a6808e 100644
116 --- a/src/mochiweb.app.src
117 +++ b/src/mochiweb.app.src
122 - {applications, [kernel, stdlib, inets, xmerl,
123 - compiler, syntax_tools]}]}.
124 + {applications, [kernel, stdlib, inets, xmerl]}]}.