1 | Revision history for AnyEvent::MP |
1 | Revision history for AnyEvent::MP |
2 | |
2 | |
3 | TODO: reconnecting successfull will still drop the queue and invoke monitoring. |
3 | TODO: testsuite |
4 | TODO: vastly improve reconnecting interval |
4 | TODO: intro: maybe simple job pool example? |
|
|
5 | TODO: intro: mention watchdog... |
|
|
6 | TODO: maybe disbale warnings by default? |
|
|
7 | TODO: listener-scopes (10.0.0.1:4040@vpn) and connect-scopes ("vpn,public") |
|
|
8 | TODO: document env-variable usage |
|
|
9 | TODO: make node objects responsible for keepalive? |
|
|
10 | |
|
|
11 | faq: can't se anything |
|
|
12 | faq: all is asynch |
|
|
13 | faq: how to interface to non-perl nodes? |
|
|
14 | |
|
|
15 | TODO: check gproto, nproto, on connect |
|
|
16 | TODO: limiting reconnecting speed when unreachable? somehow use same interval timers as for seeding and keepalive? |
|
|
17 | TODO: multiple profiles? also some default profiles? |
|
|
18 | TODO: export keepalive? |
|
|
19 | TODO: $guard = con $cb->($up) |
|
|
20 | TODO: aemp readline support |
|
|
21 | TODO: gleeco re: AE::MP::DataConn - |
|
|
22 | TODO: version both in MP.pm and MP/Config.pm because of cpan indexer |
|
|
23 | |
|
|
24 | TODO: detect and error out on repeated calls to configure |
|
|
25 | |
|
|
26 | 2.02 Sun Jul 29 04:22:53 CEST 2018 |
|
|
27 | - hardcode version in MP.pm to help the CPAN indexer. |
|
|
28 | |
|
|
29 | 2.01 Tue Jul 24 09:02:34 CEST 2018 |
|
|
30 | - try to work around a race condition that we can't identify |
|
|
31 | (patch suggested by Sadrak). |
|
|
32 | |
|
|
33 | 2.0 Tue Jul 24 08:52:26 CEST 2018 |
|
|
34 | - INCOMPATIBLE CHANGE: the node protocol used by this version is not |
|
|
35 | compatible to versions <2 - you have to upgrade all nodes. |
|
|
36 | - INCOMPATIBLE CHANGE: many APIs have changed, see the section |
|
|
37 | "PORTING FROM VERSION 1" in the AnyEvent::MP manpage for details. |
|
|
38 | - AnyEvent::MP::Global is now optional - only seed nodes autoload it |
|
|
39 | and create a fully-meshed network with each other, normal nodes only |
|
|
40 | have to connect to seed nodes, other connections are on-demand. |
|
|
41 | - remove md6 auth algorithms (and use algorithms based on SHA3 instead). |
|
|
42 | - implement CBOR framing and make it the preferred format. |
|
|
43 | - new "norc" and "force" options for MP::configure to ignore |
|
|
44 | or override the rc file. |
|
|
45 | - a shitload of minor and major fixes all reported and debugged |
|
|
46 | by Felix Ostmann. |
|
|
47 | - move seed code to Kernel. |
|
|
48 | - non-json receive framing was probably broken. |
|
|
49 | - fixed small typo in MP::Transport. |
|
|
50 | - fix (unused) provider-kv (version sometimes missing). |
|
|
51 | - reduce the default export list of MP::Kernel. |
|
|
52 | - reduced various random delays to zero, as they |
|
|
53 | are hopefully no longer needed with the new global |
|
|
54 | protocol. |
|
|
55 | - implement a secure mode that can suppress (some) code execution |
|
|
56 | requests. |
|
|
57 | - do not use GMP for generating alphanumeric strings even when |
|
|
58 | available, use a more tricky algorithm instead. |
|
|
59 | - anonymous node names and remote port names have been shortened |
|
|
60 | considerably. |
|
|
61 | - $AnyEvent::MP::Kernel::SRCNODE contains the node ID of the origin |
|
|
62 | node during message receives. |
|
|
63 | - aemp shell now supports "package" selection and offers an |
|
|
64 | $ECHO port you can send messages to. |
|
|
65 | - rely on perl rand() instead of using /dev/urandom when available, as |
|
|
66 | hopefully it is random enough. |
|
|
67 | - aemp shell no longer leaks one port per command. |
|
|
68 | - nodenames can contain %-escapes such as %n or %u. |
|
|
69 | - aemp now uses aemp/%n/%u as nodename. |
|
|
70 | - configure supports "eval", a small perl snippet to initialsie a node, |
|
|
71 | most useful in "aemp run eval ...". |
|
|
72 | - known_nodes is gone, it has little value, use all_nodes as |
|
|
73 | replacement. |
|
|
74 | - lots of small change and improvements. |
|
|
75 | - node_is_known has been removed. |
|
|
76 | - TRACE now shows the portid on SND. |
|
|
77 | - aggressively reduce number of external modules, to reduce |
|
|
78 | memory usage for nodes. |
|
|
79 | - rework most of the documentation. |
|
|
80 | - clean up MP::Kernel exports. |
|
|
81 | - include AnyEvent::MP in AnyEvent::MP::Kernel's @CARP_NOT to |
|
|
82 | hopefully improve error messages. |
|
|
83 | |
|
|
84 | 1.30 Thu Jun 30 11:30:39 CEST 2011 |
|
|
85 | - connection errors at the right time would kill node |
|
|
86 | connections in a bad way (patch by Malcolm Studd). |
|
|
87 | |
|
|
88 | 1.29 Fri May 7 20:13:39 CEST 2010 |
|
|
89 | - codename "Sadrak". |
|
|
90 | - fix error in callback at AnyEvent/MP/Global.pm line 339 |
|
|
91 | (found by Sadrak). |
|
|
92 | - listener-less nodes had trouble sending keepalive |
|
|
93 | messages on write timeouts (found by Sadrak). |
|
|
94 | - the monitor guard could cause a memleak due |
|
|
95 | to autovivification if a mon was cleared after |
|
|
96 | the port was gone (analysed by Sadrak). |
|
|
97 | - do not overwrite the config file if we couldn't read it |
|
|
98 | for some reason (lesson demonstrated by Sadrak). |
|
|
99 | |
|
|
100 | 1.28 Thu Apr 1 21:23:54 CEST 2010 |
|
|
101 | - accepted connections didn't correctly set up the SRCNODE |
|
|
102 | in some cases, leading to intra-node messages (such as monitoring) |
|
|
103 | to fail silently (great testcase by Sadrak). |
|
|
104 | |
|
|
105 | 1.27 Sat Mar 20 21:11:16 CET 2010 |
|
|
106 | - avoid exceptions in the transport code if the connection |
|
|
107 | fails during TLS negotiation. |
|
|
108 | - delay new address broadcasts in seednodes, to reduce the |
|
|
109 | likelyhood of nodes connecting at the same time, leading to |
|
|
110 | message loss. |
|
|
111 | - improve general message passing efficiency by 8%, and special |
|
|
112 | case json framing for a 50% speed increase. |
|
|
113 | - add hints how to interface to aemp nodes from other programming |
|
|
114 | languages using the aemp protocol in AnyEvent::MP::Transport |
|
|
115 | (it can really be quite simple). |
|
|
116 | - handle unsupported remote framings more gracefully. |
|
|
117 | |
|
|
118 | 1.26 Wed Dec 30 16:48:37 CET 2009 |
|
|
119 | - INCOMPATIBLE CHANGE: the high-level node protocol changed, |
|
|
120 | all nodes need to upgrade. |
|
|
121 | - remote kil's did not work (reported by Eugene Grigoriev). |
|
|
122 | - documented monitor_timeout, connect_interval, auth_offer, |
|
|
123 | auth_accept, framing_format, autocork and nodelay options |
|
|
124 | and make them configurable via bin/aemp. |
|
|
125 | - some doc updates. |
|
|
126 | - remote kil's were not synchronous to message sends which affected |
|
|
127 | nobody, as remote kils were broken. |
|
|
128 | - remote mon/unmonitor requests were not synchronous to message |
|
|
129 | sends either sometimes, although it likely didnt matter. |
|
|
130 | |
|
|
131 | 1.24 Wed Dec 9 14:59:52 CET 2009 |
|
|
132 | - codename "the foul egg". |
|
|
133 | - increased "unmonitored local port died" message level to 2, so |
|
|
134 | it is displayed by default now. |
|
|
135 | - generate random seed at configure time, not module loading time, |
|
|
136 | so fork&configure works as expected. |
|
|
137 | - decreased "seed"-related message priority in Global from 0 (d'oh) |
|
|
138 | to 9, as they are not signifcant. |
|
|
139 | - new experimental module AnyEvent::MP::DataConn to establish |
|
|
140 | additional data connections between nodes. |
|
|
141 | - bin/aemp now loads AnyEvent::Watchdog::Util before trying |
|
|
142 | to call restart. |
|
|
143 | - bin/aemp setcert didn't properly handle the filename argument. |
|
|
144 | - removed empty and unused timeout= parameter from protocol greeting. |
|
|
145 | |
|
|
146 | 1.23 Fri Nov 6 18:46:26 CET 2009 |
|
|
147 | - listener-less nodes were misinformed by their masters about |
|
|
148 | the location of new nodes, and therefore didn't connect |
|
|
149 | properly in all cases. |
|
|
150 | - messages send during node-up processing could sometimes get lost, |
|
|
151 | which would hamper global's ability to mesh the network. |
|
|
152 | - fixed AnyEvent::MP::Global::grp_reg to return a guard also |
|
|
153 | in scalar context. |
|
|
154 | - fixed AnyEvent::MP::Kernel::mon_nodes to return a guard also |
|
|
155 | in scalar context. |
|
|
156 | - try to improve error reporting when automatically loading |
|
|
157 | a function - being unable to load a module will now |
|
|
158 | stop the process and report the error. |
|
|
159 | |
|
|
160 | 1.22 Sat Oct 17 03:41:47 CEST 2009 |
|
|
161 | - fix two rcv-bugs: after adding a tagged rcv, the default |
|
|
162 | callback would not be used or changed anymore (reported |
|
|
163 | by Felix Antonius Wilhelm Ostmann, with apologies for |
|
|
164 | taking so long to releae the fix). |
|
|
165 | - added Coro::MP introduction to AnyEvent::MP::Intro. |
|
|
166 | - add peval function. |
|
|
167 | |
|
|
168 | 1.21 Mon Oct 5 21:58:36 CEST 2009 |
|
|
169 | - always delay kil messages. |
|
|
170 | - remote monitor requests were never cleaned up (found by |
|
|
171 | Sadrak and analysed by elmex). |
|
|
172 | - move $VERSION to AnyEvent::MP and AnyEvent::MP only. |
|
|
173 | |
|
|
174 | 1.2 Thu Oct 1 22:59:35 CEST 2009 |
|
|
175 | - fix a rather big bug where message processing could be |
|
|
176 | inhibited completely. |
|
|
177 | - grp_mon could not return a guard due to a typo. |
|
|
178 | - implement primitive aemp shell. |
|
|
179 | - do not use bound address as listen length (reported by |
|
|
180 | Felix Antonius Wilhelm Ostman). |
|
|
181 | - no longer export an undefined "reg" function from AE::MP. |
|
|
182 | - the mon_guard return value no longer keeps an additional |
|
|
183 | reference to the passed refs. |
|
|
184 | |
|
|
185 | 1.1 Fri Sep 11 04:34:03 CEST 2009 |
|
|
186 | - bumped the transport protocol to version 1 - sorry, but there |
|
|
187 | were too many bugfixes/changes. |
|
|
188 | - new function AnyEvent::MP::cal for simple rpc. |
|
|
189 | - renamed AnyEvent::MP::Global functions to grp_reg|get|mon. |
|
|
190 | - implemented monitoring for Global groups. |
|
|
191 | - removed all userspace time-outs from the transport, instead |
|
|
192 | rely on tcp retransmit timeouts and tcp keepalive. |
|
|
193 | - spawn now delays spawns on the local node artificially, so |
|
|
194 | it can return before invoking the init function. |
|
|
195 | - break endless recursion between ping-pong ports on the local |
|
|
196 | node after ~50 iterations. |
|
|
197 | - support JSON-encoded aemp arguments. |
|
|
198 | - added aemp restart. |
|
|
199 | - support for starting init functions with parameters added. |
|
|
200 | - data_format, auth_offer and auth_accept are now configurable, albeit |
|
|
201 | not documented. |
|
|
202 | - new service: AnyEvent::MP::LogCatcher. |
|
|
203 | - rely on perl srand'ing better than we could. |
|
|
204 | - try to backport to 5.8.2, unfortunately, recursive dependencies |
|
|
205 | rely on Module::Build, which fails at 5.8.7, so YMMV. |
|
|
206 | - use a vastly different reseeding strategy. |
|
|
207 | - use seed nodes to notify nodes about new nodes. |
|
|
208 | - in the case where a ndoe learns new addresses after it tried |
|
|
209 | connecting, prefer the new addrseses over the old ones. |
|
|
210 | |
|
|
211 | 1.0 Wed Sep 2 20:40:43 CEST 2009 |
|
|
212 | - randomise more connection times, but reduce delay to 0.2s (seeds) |
|
|
213 | and 0.05s (normal connects). |
|
|
214 | - upgrade to and require AnyEvent::Watchdog 1.0. |
|
|
215 | |
|
|
216 | 0.95 Mon Aug 31 22:03:55 CEST 2009 |
|
|
217 | - tutorial finally covers all the basics, maybe not optimally, but it |
|
|
218 | is covered. |
|
|
219 | - rename initialise_node to configure and accepts key => value |
|
|
220 | pairs for configuration. |
|
|
221 | - give aemp a full manpage. |
|
|
222 | - bin/aemp now expects comma-separated lists and supports multiple |
|
|
223 | subcommands. |
|
|
224 | - new aemp eval subcommand. |
|
|
225 | - new aemp parent subcommand. |
|
|
226 | - nodes get freed when no longer needed. |
|
|
227 | - support "*" hostname to specify all local interface addresses |
|
|
228 | (without localhost etc.). |
|
|
229 | - support "*" port to specify a dynamically-assigned port (which |
|
|
230 | is the default now). |
|
|
231 | - fix per-transport memory leak. |
|
|
232 | |
|
|
233 | 0.9 Sat Aug 29 18:47:45 CEST 2009 |
|
|
234 | - tutorial was updated to reflect the current API, but |
|
|
235 | does not touch monitoring yet. |
|
|
236 | - got rid of noderefs and slave nodes entirely, introduce |
|
|
237 | free-text node identifiers and anonymous nodes. |
|
|
238 | - document security issues with tls_anon method and introduce |
|
|
239 | optional tls_md6_64_256 method. |
|
|
240 | |
|
|
241 | 0.8 Wed Aug 19 07:54:50 CEST 2009 |
|
|
242 | - added AnyEvent::MP::Global service. |
|
|
243 | - support "package::" names as service names. |
|
|
244 | - many, many, many bugfixes and tweaks. |
|
|
245 | |
|
|
246 | 0.7 Sat Aug 15 01:18:51 CEST 2009 |
|
|
247 | - sorry, another major API simplification. |
|
|
248 | - greatly improved aemp configuration abilities. |
|
|
249 | - introduced profile management. |
|
|
250 | - updated exmaples in eg/. |
|
|
251 | - added Kernel::snd_to_func. |
|
|
252 | |
|
|
253 | 0.6 Thu Aug 13 03:15:05 CEST 2009 |
|
|
254 | - do away with .aemp-secret and use .perl-anyevent-mp as json config |
|
|
255 | file. |
|
|
256 | - introduce bin/aemp to configure nodes. |
|
|
257 | - too many changes to describe. |
5 | |
258 | |
6 | 0.4 Sun Aug 9 18:05:49 CEST 2009 |
259 | 0.4 Sun Aug 9 18:05:49 CEST 2009 |
7 | - API should now be really stable :) |
260 | - API should now be really stable :) |
8 | - distinguish between resolved and unresolved noderefs. |
261 | - distinguish between resolved and unresolved noderefs. |
9 | - certificates in .aemp-secret are now supported. |
262 | - certificates in .aemp-secret are now supported. |