celluloid 0.17.3 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES.md +300 -73
  3. data/CONDUCT.md +13 -0
  4. data/CONTRIBUTING.md +39 -0
  5. data/README.md +54 -150
  6. data/REFACTOR.md +1 -0
  7. data/architecture.md +120 -0
  8. data/examples/basic_usage.rb +1 -1
  9. data/examples/configurations.rb +78 -0
  10. data/examples/futures.rb +1 -1
  11. data/examples/ring.rb +5 -4
  12. data/examples/simple_pmap.rb +1 -1
  13. data/examples/stack.rb +2 -2
  14. data/examples/supervisors_and_registry.rb +82 -0
  15. data/examples/timers.rb +2 -2
  16. data/lib/celluloid.rb +74 -64
  17. data/lib/celluloid/actor.rb +27 -17
  18. data/lib/celluloid/actor/system.rb +13 -29
  19. data/lib/celluloid/autostart.rb +6 -1
  20. data/lib/celluloid/call/async.rb +2 -0
  21. data/lib/celluloid/call/sync.rb +10 -3
  22. data/lib/celluloid/calls.rb +13 -12
  23. data/lib/celluloid/cell.rb +5 -9
  24. data/lib/celluloid/condition.rb +3 -3
  25. data/lib/celluloid/core_ext.rb +0 -2
  26. data/lib/celluloid/debug.rb +3 -0
  27. data/lib/celluloid/exceptions.rb +2 -2
  28. data/lib/celluloid/future.rb +8 -10
  29. data/lib/celluloid/group.rb +16 -6
  30. data/lib/celluloid/group/pool.rb +1 -3
  31. data/lib/celluloid/group/spawner.rb +2 -6
  32. data/lib/celluloid/internals/call_chain.rb +15 -0
  33. data/lib/celluloid/internals/cpu_counter.rb +62 -0
  34. data/lib/celluloid/internals/handlers.rb +42 -0
  35. data/lib/celluloid/internals/links.rb +38 -0
  36. data/lib/celluloid/internals/logger.rb +104 -0
  37. data/lib/celluloid/internals/method.rb +34 -0
  38. data/lib/celluloid/internals/properties.rb +32 -0
  39. data/lib/celluloid/internals/receivers.rb +64 -0
  40. data/lib/celluloid/internals/registry.rb +102 -0
  41. data/lib/celluloid/internals/responses.rb +46 -0
  42. data/lib/celluloid/internals/signals.rb +24 -0
  43. data/lib/celluloid/internals/stack.rb +74 -0
  44. data/lib/celluloid/internals/stack/dump.rb +12 -0
  45. data/lib/celluloid/internals/stack/states.rb +72 -0
  46. data/lib/celluloid/internals/stack/summary.rb +12 -0
  47. data/lib/celluloid/internals/task_set.rb +51 -0
  48. data/lib/celluloid/internals/thread_handle.rb +52 -0
  49. data/lib/celluloid/internals/uuid.rb +40 -0
  50. data/lib/celluloid/logging/incident.rb +21 -0
  51. data/lib/celluloid/logging/incident_logger.rb +147 -0
  52. data/lib/celluloid/logging/incident_reporter.rb +49 -0
  53. data/lib/celluloid/logging/log_event.rb +20 -0
  54. data/lib/celluloid/logging/ring_buffer.rb +64 -0
  55. data/lib/celluloid/mailbox.rb +22 -9
  56. data/lib/celluloid/mailbox/evented.rb +13 -5
  57. data/lib/celluloid/notifications.rb +95 -0
  58. data/lib/celluloid/pool.rb +6 -0
  59. data/lib/celluloid/probe.rb +81 -0
  60. data/lib/celluloid/proxy/abstract.rb +9 -9
  61. data/lib/celluloid/proxy/async.rb +1 -1
  62. data/lib/celluloid/proxy/block.rb +2 -2
  63. data/lib/celluloid/proxy/cell.rb +1 -1
  64. data/lib/celluloid/proxy/future.rb +2 -4
  65. data/lib/celluloid/proxy/sync.rb +1 -3
  66. data/lib/celluloid/rspec.rb +22 -33
  67. data/lib/celluloid/supervision.rb +17 -0
  68. data/lib/celluloid/supervision/configuration.rb +169 -0
  69. data/lib/celluloid/supervision/configuration/injections.rb +8 -0
  70. data/lib/celluloid/supervision/configuration/instance.rb +113 -0
  71. data/lib/celluloid/supervision/constants.rb +123 -0
  72. data/lib/celluloid/supervision/container.rb +144 -0
  73. data/lib/celluloid/supervision/container/behavior.rb +89 -0
  74. data/lib/celluloid/supervision/container/behavior/pool.rb +71 -0
  75. data/lib/celluloid/supervision/container/behavior/tree.rb +23 -0
  76. data/lib/celluloid/supervision/container/injections.rb +8 -0
  77. data/lib/celluloid/supervision/container/instance.rb +116 -0
  78. data/lib/celluloid/supervision/container/pool.rb +210 -0
  79. data/lib/celluloid/supervision/service.rb +27 -0
  80. data/lib/celluloid/supervision/supervise.rb +34 -0
  81. data/lib/celluloid/supervision/validation.rb +40 -0
  82. data/lib/celluloid/supervision/version.rb +5 -0
  83. data/lib/celluloid/system_events.rb +11 -6
  84. data/lib/celluloid/task.rb +25 -12
  85. data/lib/celluloid/task/fibered.rb +6 -2
  86. data/lib/celluloid/task/threaded.rb +3 -3
  87. data/lib/celluloid/test.rb +5 -2
  88. data/lib/celluloid/thread.rb +0 -2
  89. data/lib/celluloid/version.rb +1 -1
  90. data/spec/celluloid/block_spec.rb +29 -32
  91. data/spec/celluloid/calls_spec.rb +5 -15
  92. data/spec/celluloid/future_spec.rb +7 -1
  93. data/spec/celluloid/internals/cpu_counter_spec.rb +129 -0
  94. data/spec/celluloid/internals/links_spec.rb +43 -0
  95. data/spec/celluloid/internals/properties_spec.rb +40 -0
  96. data/spec/celluloid/internals/registry_spec.rb +62 -0
  97. data/spec/celluloid/internals/stack/dump_spec.rb +4 -0
  98. data/spec/celluloid/internals/stack/summary_spec.rb +4 -0
  99. data/spec/celluloid/internals/thread_handle_spec.rb +60 -0
  100. data/spec/celluloid/internals/uuid_spec.rb +9 -0
  101. data/spec/celluloid/logging/ring_buffer_spec.rb +36 -0
  102. data/spec/celluloid/mailbox/evented_spec.rb +11 -22
  103. data/spec/celluloid/misc/leak_spec.rb +3 -4
  104. data/spec/celluloid/notifications_spec.rb +140 -0
  105. data/spec/celluloid/probe_spec.rb +102 -0
  106. data/spec/celluloid/proxy_spec.rb +30 -30
  107. data/spec/celluloid/supervision/behavior_spec.rb +74 -0
  108. data/spec/celluloid/supervision/configuration_spec.rb +181 -0
  109. data/spec/celluloid/supervision/container_spec.rb +72 -0
  110. data/spec/celluloid/supervision/instance_spec.rb +13 -0
  111. data/spec/celluloid/supervision/root_spec.rb +28 -0
  112. data/spec/celluloid/supervision/supervisor_spec.rb +93 -0
  113. data/spec/celluloid/task/fibered_spec.rb +1 -3
  114. data/spec/celluloid/task/threaded_spec.rb +1 -3
  115. data/spec/shared/actor_examples.rb +58 -33
  116. data/spec/shared/group_examples.rb +2 -2
  117. data/spec/shared/mailbox_examples.rb +1 -1
  118. data/spec/shared/stack_examples.rb +87 -0
  119. data/spec/shared/task_examples.rb +2 -3
  120. data/spec/spec_helper.rb +2 -4
  121. data/spec/support/configure_rspec.rb +2 -3
  122. data/spec/support/coverage.rb +2 -4
  123. data/spec/support/crash_checking.rb +2 -2
  124. data/spec/support/examples/actor_class.rb +3 -8
  125. data/spec/support/examples/call_class.rb +2 -2
  126. data/spec/support/examples/container_class.rb +35 -0
  127. data/spec/support/examples/evented_mailbox_class.rb +1 -2
  128. data/spec/support/examples/stack_classes.rb +58 -0
  129. data/spec/support/examples/stack_methods.rb +23 -0
  130. data/spec/support/examples/subordinate_class.rb +19 -0
  131. data/spec/support/logging.rb +3 -34
  132. data/spec/support/loose_threads.rb +3 -16
  133. data/spec/support/reset_class_variables.rb +5 -1
  134. data/spec/support/stubbing.rb +1 -1
  135. metadata +91 -290
  136. data/culture/CONDUCT.md +0 -28
  137. data/culture/Gemfile +0 -9
  138. data/culture/LICENSE.txt +0 -22
  139. data/culture/README.md +0 -22
  140. data/culture/Rakefile +0 -5
  141. data/culture/SYNC.md +0 -70
  142. data/culture/celluloid-culture.gemspec +0 -18
  143. data/culture/gems/README.md +0 -39
  144. data/culture/gems/dependencies.yml +0 -85
  145. data/culture/gems/loader.rb +0 -101
  146. data/culture/rubocop/README.md +0 -38
  147. data/culture/rubocop/lint.yml +0 -8
  148. data/culture/rubocop/metrics.yml +0 -15
  149. data/culture/rubocop/perf.yml +0 -0
  150. data/culture/rubocop/rubocop.yml +0 -5
  151. data/culture/rubocop/style.yml +0 -57
  152. data/culture/spec/gems_spec.rb +0 -2
  153. data/culture/spec/spec_helper.rb +0 -0
  154. data/culture/spec/sync_spec.rb +0 -2
  155. data/culture/sync.rb +0 -56
  156. data/culture/tasks/rspec.rake +0 -5
  157. data/culture/tasks/rubocop.rake +0 -2
  158. data/lib/celluloid/actor/manager.rb +0 -7
  159. data/lib/celluloid/backported.rb +0 -2
  160. data/lib/celluloid/current.rb +0 -2
  161. data/lib/celluloid/deprecate.rb +0 -21
  162. data/lib/celluloid/fiber.rb +0 -32
  163. data/lib/celluloid/managed.rb +0 -3
  164. data/lib/celluloid/notices.rb +0 -15
  165. data/spec/deprecate/actor_system_spec.rb +0 -72
  166. data/spec/deprecate/block_spec.rb +0 -52
  167. data/spec/deprecate/calls_spec.rb +0 -39
  168. data/spec/deprecate/evented_mailbox_spec.rb +0 -34
  169. data/spec/deprecate/future_spec.rb +0 -32
  170. data/spec/deprecate/internal_pool_spec.rb +0 -4
  171. data/spec/support/env.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: eff22fc2c5057bb33885344388462730338e2b5c
4
- data.tar.gz: 45dab801f10eb84efedd3734f60a7e600bf77618
2
+ SHA256:
3
+ metadata.gz: fede4c9c3907c29a0dc303e711077a7b3196fc2acaf3b099ee98b197076c3fdc
4
+ data.tar.gz: f8bd8ffc37cddd24000d66e56d1bafc03796e309101fa4b6f5e02ab5e11f9aac
5
5
  SHA512:
6
- metadata.gz: 8d99c5e87c151a511a52c7b159cbd2b07ec2d898027aba8573260db4ead19381bfa629bff6ee8b3cc5a2537bef8cab3f626c42798d68717a35a7f8d3e8644767
7
- data.tar.gz: 03231c9ab4686ef1812ef88a7a44e51029db1c30743622e5dbbbc38eb6cb7db1f917942df887d57006e772a8936a8ae1cbe0f6fc8e29603f2dc979a97b584d9f
6
+ metadata.gz: dc813a35e9f74a49a0f875d290e41fe6445dfd7f6778b46bd3e19b741446c590e1b05be2bc697e6d8641548165baee2494a49960fa7e3782f71b50a13cb50ee1
7
+ data.tar.gz: 9a47f043d4929f833b05187c88a487351e4f26da10038b1045497ed3c7e0fdf980e4b5fe753d7cc4ae1f2db70d0d5fe5966520e2bdff5f08a558c62d82c12fee
data/CHANGES.md CHANGED
@@ -1,5 +1,155 @@
1
- 0.17.3 (2016-01-18)
2
- -----
1
+ ## 0.18.0 (2020-12-05)
2
+
3
+ [0.18.0]: https://github.com/celluloid/celluloid/compare/v0.17.3...v0.18.0
4
+
5
+ * [#804](https://github.com/celluloid/celluloid/pull/804)
6
+ Remove deprecation warnings
7
+
8
+ * [#802](https://github.com/celluloid/celluloid/pull/802)
9
+ Remove lattice link itself.
10
+
11
+ * [#797](https://github.com/celluloid/celluloid/pull/797)
12
+ Update Ruby versions in CI script
13
+
14
+ * [#801](https://github.com/celluloid/celluloid/pull/801)
15
+ Associate Open Collective sponsorship option
16
+
17
+ * [#800](https://github.com/celluloid/celluloid/pull/800)
18
+ Streamline README
19
+
20
+ * [#799](https://github.com/celluloid/celluloid/pull/799)
21
+ Update links, add diagram preview.
22
+
23
+ * [#796](https://github.com/celluloid/celluloid/pull/796)
24
+ Create Class Diagram in Draw.io
25
+
26
+ * [#798](https://github.com/celluloid/celluloid/pull/798)
27
+ Pertinent Newsflash
28
+
29
+ * [#792](https://github.com/celluloid/celluloid/pull/792)
30
+ CI: 2.5.5, 2.6.2
31
+
32
+ * [#788](https://github.com/celluloid/celluloid/pull/788)
33
+ Travis: Include Ruby 2.5, 2.6
34
+
35
+ * [#787](https://github.com/celluloid/celluloid/pull/787)
36
+ Travis config: drop old configuration sudo: false
37
+
38
+ * [#786](https://github.com/celluloid/celluloid/pull/786)
39
+ Travis: use jruby-9.2.5.0
40
+
41
+ * [#783](https://github.com/celluloid/celluloid/pull/783)
42
+ v0.18.0.pre2
43
+
44
+ * [#782](https://github.com/celluloid/celluloid/pull/782)
45
+ Merge 'celluloid-supervision' back into the tree
46
+
47
+ * [#781](https://github.com/celluloid/celluloid/pull/781)
48
+ .gitmodules: No longer used
49
+
50
+ * [#780](https://github.com/celluloid/celluloid/pull/780)
51
+ README.md: Link to unmaintained issue
52
+
53
+ * [#778](https://github.com/celluloid/celluloid/pull/778)
54
+ README.md: Add "maintained: no! (as of 2016)" badge
55
+
56
+ * [#777](https://github.com/celluloid/celluloid/pull/777)
57
+ gemspec: Metadata with supported links
58
+
59
+ * [#776](https://github.com/celluloid/celluloid/pull/776)
60
+ Travis: use jruby-9.2.0.0
61
+
62
+ * [#775](https://github.com/celluloid/celluloid/pull/775)
63
+ Travis: jruby-9.1.17.0
64
+
65
+ * [#769](https://github.com/celluloid/celluloid/pull/769)
66
+ Travis: jruby-9.1.15.0
67
+
68
+ * [#768](https://github.com/celluloid/celluloid/pull/768)
69
+ Travis: use latest JRuby
70
+
71
+ * [#767](https://github.com/celluloid/celluloid/pull/767)
72
+ CHANGES: Add GitHub compare link on each heading
73
+
74
+ * [#766](https://github.com/celluloid/celluloid/pull/766)
75
+ Fix celluloid/celluloid#758
76
+
77
+ * [#765](https://github.com/celluloid/celluloid/pull/765)
78
+ Travis: jruby-9.1.13.0
79
+
80
+ * [#761](https://github.com/celluloid/celluloid/pull/761)
81
+ Travis: jruby-9.1.12.0
82
+
83
+ * [#760](https://github.com/celluloid/celluloid/pull/760)
84
+ Travis: jruby-9.1.10.0
85
+
86
+ * [#759](https://github.com/celluloid/celluloid/pull/759)
87
+ Travis: jruby-9.1.9.0
88
+
89
+ * [#757](https://github.com/celluloid/celluloid/pull/757)
90
+ parameterize error message so old and new Rubies match text
91
+
92
+ * [#756](https://github.com/celluloid/celluloid/pull/756)
93
+ Travis: latest stable rubies
94
+
95
+ * [#754](https://github.com/celluloid/celluloid/pull/754)
96
+ README: Fix badge rendering in Markdown
97
+
98
+ * [#753](https://github.com/celluloid/celluloid/pull/753)
99
+ Travis: use jruby-9.1.8.0
100
+
101
+ * [#752](https://github.com/celluloid/celluloid/pull/752)
102
+ Misspellings
103
+
104
+ * [#749](https://github.com/celluloid/celluloid/pull/749)
105
+ Return false from Celluloid.running? if Celluloid.boot hasn't been called
106
+
107
+ * [#751](https://github.com/celluloid/celluloid/pull/751)
108
+ Travis: Use JRuby 9.1.7.0
109
+
110
+ * [#740](https://github.com/celluloid/celluloid/pull/740)
111
+ Global variables: stop the bleeding
112
+
113
+ * [#739](https://github.com/celluloid/celluloid/pull/739)
114
+ Remove hacks around old MRIs, JRuby, and rbx
115
+
116
+ * [#738](https://github.com/celluloid/celluloid/pull/738)
117
+ Update to RuboCop 0.45.0 (with new rubocop.yml policy)
118
+
119
+ * [#737](https://github.com/celluloid/celluloid/pull/737)
120
+ Simplify dependencies: merge 'essentials' and 'culture' repos
121
+
122
+ * [#736](https://github.com/celluloid/celluloid/pull/736)
123
+ Remove $CELLULOID_BACKPORTED and $CELLULOID_MANAGED
124
+
125
+ * [#735](https://github.com/celluloid/celluloid/pull/735)
126
+ Require Ruby 2.2.6+
127
+
128
+ * [#729](https://github.com/celluloid/celluloid/pull/729)
129
+ Remove mysterious Fiber.yield
130
+
131
+ * [#721](https://github.com/celluloid/celluloid/pull/721)
132
+ Instruction for cloning Celluloid via github
133
+
134
+ * [#715](https://github.com/celluloid/celluloid/pull/715)
135
+ fix error response reference in Future#cancel
136
+
137
+ * [#712](https://github.com/celluloid/celluloid/pull/712)
138
+ Add RBX-3 to the build
139
+
140
+ * [#711](https://github.com/celluloid/celluloid/pull/711)
141
+ Added bundler cache
142
+
143
+ * [#709](https://github.com/celluloid/celluloid/pull/709)
144
+ Fix autostart. Fixes https://github.com/celluloid/celluloid/issues/698
145
+
146
+ * [#705](https://github.com/celluloid/celluloid/pull/705)
147
+ Adding method source code path to backtrace
148
+
149
+ ## [0.17.3] (2016-01-18)
150
+
151
+ [0.17.3]: https://github.com/celluloid/celluloid/compare/v0.17.2...v0.17.3
152
+
3
153
  * [#701](https://github.com/celluloid/celluloid/pull/701)
4
154
  Conditions in loose threads loop does not take into account the difference between
5
155
  backtraces from ruby 2.0.0 and greater than. Fixes celluloid/celluloid-io#165.
@@ -33,31 +183,41 @@
33
183
  * [#666](https://github.com/celluloid/celluloid/pull/666)
34
184
  Don't catch IOError.
35
185
 
36
- 0.17.2 (2015-09-30)
37
- -----
186
+ ## [0.17.2] (2015-09-30)
187
+
188
+ [0.17.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.2...v0.17.2
189
+
38
190
  * Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
39
191
  * Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
40
192
  * Clean up deprecation notes.
41
193
 
42
- 0.17.1.2 (2015-08-21)
43
- -----
194
+ ## [0.17.1.2] (2015-08-21)
195
+
196
+ [0.17.1.2]: https://github.com/celluloid/celluloid/compare/v0.17.1.1...v0.17.1.2
197
+
44
198
  * Fixes to posted markdown content.
45
199
  * Pull in new gem dependencies.
46
200
 
47
- 0.17.1.1 (2015-08-07)
48
- -----
201
+ ## [0.17.1.1] (2015-08-07)
202
+
203
+ [0.17.1.1]: https://github.com/celluloid/celluloid/compare/v0.17.1...v0.17.1.1
204
+
49
205
  * Revert "no task to suspend" code from #232.
50
206
 
51
- 0.17.1 (2015-08-06)
52
- -----
207
+ ## [0.17.1] (2015-08-06)
208
+
209
+ [0.17.1]: https://github.com/celluloid/celluloid/compare/v0.17.0...v0.17.1
210
+
53
211
  * `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
54
212
  * Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
55
213
  * Deprecated Task::TerminatedError & Task::TimeoutError... Consolidated in exceptions.rb, inherited from Exceptions vs. StandardError.
56
214
  * General round-up of all "errors" emitted throughout Celluloid, to either be derived from `Celluloid::Error` or `Celluloid::Interruption`.
57
215
  * Added ability to pass a block to `Condition#wait` which runs a `{ |value| ... }` type block if present, once the value is obtained by waiting.
58
216
 
59
- 0.17.0 (2015-07-04)
60
- -----
217
+ ## [0.17.0] (2015-07-04)
218
+
219
+ [0.17.0]: https://github.com/celluloid/celluloid/compare/v0.16.0...v0.17.0
220
+
61
221
  * Fix $CELLULOID_TEST warnings
62
222
  * Massive overhaul of test suite, end-to-end.
63
223
  * Make "Terminating task" log messages debug-level events
@@ -87,8 +247,10 @@
87
247
  * Implement `Group::Manager` as base for future `Group::Unlocker` and other such systems traversing `ActorSystem#group` regularly.
88
248
  * Reduce number of supervisors instantiated by `ActorSystem` by consolidating them down to `Service::Root` container instances.
89
249
 
90
- 0.16.0 (2014-09-04)
91
- -----
250
+ ## [0.16.0] (2014-09-04)
251
+
252
+ [0.16.0]: https://github.com/celluloid/celluloid/compare/v0.15.2...v0.16.0
253
+
92
254
  * Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
93
255
  * Introduce Celluloid::ActorSystem as an abstraction around the backend
94
256
  actor implementation (idea borrowed from Akka)
@@ -106,16 +268,22 @@
106
268
  * Better thread names on JRuby for easier debugging
107
269
  * Thread safety fixes to internal thread pool
108
270
 
109
- 0.15.2 (2013-10-06)
110
- -----
271
+ ## [0.15.2] (2013-10-06)
272
+
273
+ [0.15.2]: https://github.com/celluloid/celluloid/compare/v0.15.1...v0.15.2
274
+
111
275
  * require 'celluloid/test' for at_exit-free testing
112
276
 
113
- 0.15.1 (2013-09-06)
114
- -----
277
+ ## [0.15.1] (2013-09-06)
278
+
279
+ [0.15.1]: https://github.com/celluloid/celluloid/compare/v0.15.0...v0.15.1
280
+
115
281
  * Only raise on nested tasks if $CELLULOID_DEBUG is set
116
282
 
117
- 0.15.0 (2013-09-04)
118
- -----
283
+ ## [0.15.0] (2013-09-04)
284
+
285
+ [0.15.0]: https://github.com/celluloid/celluloid/compare/v0.14.0...v0.15.0
286
+
119
287
  * Remove legacy support for "bang"-method based async invocation
120
288
  * Generic timeout support with Celluloid#timeout
121
289
  * Implement recursion detection for #inspect, avoiding infinite loop bugs
@@ -130,8 +298,10 @@
130
298
  * Reimplement signal system on top of Conditions
131
299
  * Add metadata like the current method to Celluloid::StackDumps
132
300
 
133
- 0.14.0 (2013-05-07)
134
- -----
301
+ ## [0.14.0] (2013-05-07)
302
+
303
+ [0.14.0]: https://github.com/celluloid/celluloid/compare/v0.13.0...v0.14.0
304
+
135
305
  * Use a Thread-subclass for Celluloid
136
306
  * Implement actor-local variables
137
307
  * Add helper methods to the class
@@ -145,8 +315,10 @@
145
315
  * Execute blocks on the sender by default
146
316
  * Fix CPU counter on windows
147
317
 
148
- 0.13.0
149
- -----
318
+ ## [0.13.0]
319
+
320
+ [0.13.0]: https://github.com/celluloid/celluloid/compare/v0.12.4...v0.13.0
321
+
150
322
  * API change: Require Celluloid with: require 'celluloid/autostart' to
151
323
  automatically start support actors and configure at_exit handler which
152
324
  automatically terminates all actors.
@@ -160,8 +332,10 @@
160
332
  * Celluloid#call_chain_id provides UUIDs for calls across actors
161
333
  * Give all thread locals a :celluloid_* prefix
162
334
 
163
- 0.12.4
164
- -----
335
+ ## [0.12.4]
336
+
337
+ [0.12.4]: https://github.com/celluloid/celluloid/compare/v0.12.3...v0.12.4
338
+
165
339
  * Bugfix: Clear dead/crashed actors out of links
166
340
  * Bugfix: Exclusive mode was broken
167
341
  * Bugfix: Celluloid::SupervisionGroup#run was broken
@@ -171,17 +345,24 @@
171
345
  * Use #public_send to dispatch Celluloid methods
172
346
  * #idle_size and #busy_size for Celluloid::PoolManager
173
347
 
174
- 0.12.3
175
- -----
348
+ ## [0.12.3]
349
+
350
+ [0.12.3]: https://github.com/celluloid/celluloid/compare/v0.12.2...v0.12.3
351
+
352
+
176
353
  * Bugfix: Ensure exclusive mode works correctly for per-method case
177
354
  * Bugfix: Exit handlers were not being inherited correctly
178
355
 
179
- 0.12.2
180
- -----
356
+ ## [0.12.2]
357
+
358
+ [0.12.2]: https://github.com/celluloid/celluloid/compare/v0.12.1...v0.12.2
359
+
181
360
  * Disable IncidentReporter by default
182
361
 
183
- 0.12.1
184
- -----
362
+ ## [0.12.1]
363
+
364
+ [0.12.1]: https://github.com/celluloid/celluloid/compare/v0.12.0...v0.12.1
365
+
185
366
  * Fix bug in unsetting of exclusive mode
186
367
  * New incident report system for providing better debugging reports
187
368
  * Revert BasicObject proxies for now... they are causing problems
@@ -191,8 +372,10 @@
191
372
  * Remove Celluloid#alive? as it cannot be called in any manner that will ever
192
373
  return anything but true, rendering it useless
193
374
 
194
- 0.12.0
195
- -----
375
+ ## [0.12.0]
376
+
377
+ [0.12.0]: https://github.com/celluloid/celluloid/compare/v0.11.1...v0.12.0
378
+
196
379
  * Alternative async syntax: actor.async.method in lieu of actor.method!
197
380
  Original syntax still available but will be removed in Celluloid 1.0
198
381
  * Alternative future syntax: actor.future.method in lieu of future(:method)
@@ -215,8 +398,10 @@
215
398
  defined by use_mailbox. This is now fixed.
216
399
  * `exclusive` class method without arguments makes the whole actor exclusive
217
400
 
218
- 0.11.1
219
- -----
401
+ ## [0.11.1]
402
+
403
+ [0.11.1]: https://github.com/celluloid/celluloid/compare/v0.11.0...v0.11.1
404
+
220
405
  * 'exclusive' class method marks methods as always exclusive and runs them
221
406
  outside of a Fiber (useful if you need more stack than Fibers provide)
222
407
  * Celluloid::PoolManager returns its own class when #class is called, instead
@@ -225,8 +410,10 @@
225
410
  * Celluloid::Timers extracted into the timers gem, which Celluloid now
226
411
  uses for its own timers
227
412
 
228
- 0.11.0
229
- -----
413
+ ## [0.11.0]
414
+
415
+ [0.11.0]: https://github.com/celluloid/celluloid/compare/v0.10.0...v0.11.0
416
+
230
417
  * Celluloid::Application constant permanently removed
231
418
  * Celluloid::Pool removed in favor of Celluloid.pool
232
419
  * Celluloid::Group renamed to Celluloid::SupervisionGroup, old name is
@@ -240,22 +427,28 @@
240
427
  * abort can now accept a string instead of an exception object and will raise
241
428
  RuntimeError in the caller's context
242
429
 
243
- 0.10.0
244
- -----
430
+ ## [0.10.0]
431
+
432
+ [0.10.0]: https://github.com/celluloid/celluloid/compare/v0.9.1...v0.10.0
433
+
245
434
  * Celluloid::Actor.current is now the de facto way to obtain the current actor
246
435
  * #terminate now uses system messages, making termination take priority over
247
436
  other pending methods
248
437
  * #terminate! provides asynchronous termination
249
438
 
250
- 0.9.1
251
- -----
439
+ ## [0.9.1]
440
+
441
+ [0.9.1]: https://github.com/celluloid/celluloid/compare/v0.9.0...v0.9.1
442
+
252
443
  * Recurring timers with Celluloid#every(n) { ... }
253
444
  * Obtain UUIDs with Celluloid.uuid
254
445
  * Obtain the number of CPU cores available with Celluloid.cores
255
446
  * Celluloid::Pool defaults to one actor per CPU core max by default
256
447
 
257
- 0.9.0
258
- -----
448
+ ## [0.9.0]
449
+
450
+ [0.9.0]: https://github.com/celluloid/celluloid/compare/v0.8.0...v0.9.0
451
+
259
452
  * Celluloid::Pool supervises pools of actors
260
453
  * Graceful shutdown which calls #terminate on all actors
261
454
  * Celluloid::Actor.all returns all running actors
@@ -264,8 +457,10 @@
264
457
  * Celluloid.exception_handler { |ex| ... } defines a callback for notifying
265
458
  exceptions (for use with Airbrake, exception_notifier, etc.)
266
459
 
267
- 0.8.0
268
- -----
460
+ ## [0.8.0]
461
+
462
+ [0.8.0]: https://github.com/celluloid/celluloid/compare/v0.7.2...v0.8.0
463
+
269
464
  * Celluloid::Application is now Celluloid::Group
270
465
  * Futures no longer use a thread unless created with a block
271
466
  * No more future thread-leaks! Future threads auto-terminate now
@@ -276,20 +471,26 @@
276
471
  * Celluloid::FSMs are no longer actors themselves
277
472
  * Benchmarks using benchmark_suite
278
473
 
279
- 0.7.2
280
- -----
474
+ ## [0.7.2]
475
+
476
+ [0.7.2]: https://github.com/celluloid/celluloid/compare/v0.7.1...v0.7.2
477
+
281
478
  * Workaround fiber problems on JRuby 1.6.5.1 in addition to 1.6.5
282
479
  * Fix class displayed when inspecting dead actors
283
480
 
284
- 0.7.1
285
- -----
481
+ ## [0.7.1]
482
+
483
+ [0.7.1]: https://github.com/celluloid/celluloid/compare/v0.7.0...v0.7.1
484
+
286
485
  * More examples!
287
486
  * Cancel all pending tasks when actors crash
288
487
  * Log all errors that occur during signaling failures
289
488
  * Work around thread-local issues on rbx (see 52325ecd)
290
489
 
291
- 0.7.0
292
- -----
490
+ ## [0.7.0]
491
+
492
+ [0.7.0]: https://github.com/celluloid/celluloid/compare/v0.6.2...v0.7.0
493
+
293
494
  * Celluloid::Task abstraction replaces Celluloid::Fiber
294
495
  * Celluloid#tasks API to introspect on running tasks
295
496
  * Move Celluloid::IO into its own gem, celluloid-io
@@ -303,22 +504,28 @@
303
504
  * Celluloid.receive and Celluloid#receive now accept an optional timeout
304
505
  * Celluloid::Mailbox#receive now accepts an optional timeout
305
506
 
306
- 0.6.2
307
- -----
507
+ ## [0.6.2]
508
+
509
+ [0.6.2]: https://github.com/celluloid/celluloid/compare/v0.6.1...v0.6.2
510
+
308
511
  * List all registered actors with Celluloid::Actor.registered
309
512
  * All logging now handled through Celluloid::Logger
310
513
  * Rescue DeadActorError in Celluloid::ActorProxy#inspect
311
514
 
312
- 0.6.1
313
- -----
515
+ ## [0.6.1]
516
+
517
+ [0.6.1]: https://github.com/celluloid/celluloid/compare/v0.6.0...v0.6.1
518
+
314
519
  * Celluloid#links obtains Celluloid::Links for a given actor
315
520
  * The #class method is now proxied to actors
316
521
  * Celluloid::Fiber replaces the Celluloid.fiber and Celluloid.resume_fiber API
317
522
  * Use Thread.mailbox instead of Thread.current.mailbox to obtain the mailbox
318
523
  for the current thread
319
524
 
320
- 0.6.0
321
- -----
525
+ ## [0.6.0]
526
+
527
+ [0.6.0]: https://github.com/celluloid/celluloid/compare/v0.5.0...v0.6.0
528
+
322
529
  * Celluloid::Application classes for describing the structure of applications
323
530
  built with Celluloid
324
531
  * Methods of actors can now participate in the actor protocol directly via
@@ -331,8 +538,10 @@
331
538
  * Add Celluloid.fiber and Celluloid.resume_fiber to allow extension APIs to
332
539
  participate in the Celluloid fiber protocol
333
540
 
334
- 0.5.0
335
- -----
541
+ ## [0.5.0]
542
+
543
+ [0.5.0]: https://github.com/celluloid/celluloid/compare/v0.4.0...v0.5.0
544
+
336
545
  * "include Celluloid::Actor" no longer supported. Use "include Celluloid"
337
546
  * New Celluloid::IO module for actors that multiplex IO operations
338
547
  * Major overhaul of Celluloid::Actor internals (see 25e22cc1)
@@ -347,8 +556,21 @@
347
556
  * Magically skip ahead a few version numbers to impart the magnitude of this
348
557
  release. It's my versioning scheme and I can do what I wanna.
349
558
 
350
- 0.2.2
351
- -----
559
+ ## [0.4.0]
560
+
561
+ [0.4.0]: https://github.com/celluloid/celluloid/compare/v0.3.0...v0.4.0
562
+
563
+ * This version was mysteriously lost to the sands of time
564
+
565
+ ## [0.3.0]
566
+
567
+ [0.3.0]: https://github.com/celluloid/celluloid/compare/v0.2.2...v0.3.0
568
+
569
+ * This version was also mysteriously lost to the sands of time
570
+
571
+ ## [0.2.2]
572
+
573
+ [0.2.2]: https://github.com/celluloid/celluloid/compare/v0.2.1...v0.2.2
352
574
 
353
575
  * AbortErrors now reraise in caller scope and get a caller-focused backtrace
354
576
  * Log failed async calls instead of just letting them fail silently
@@ -356,14 +578,15 @@
356
578
  * Actors can now make async calls to themselves
357
579
  * Resolve crashes that occur when sending responses to exited/dead callers
358
580
 
359
- 0.2.1
360
- -----
581
+ ## [0.2.1]
582
+
583
+ [0.2.1]: https://github.com/celluloid/celluloid/compare/v0.2.0...v0.2.1
361
584
 
362
585
  * Hack around a bug of an indeterminate cause (2baba3d2)
363
- * COLON!#@!
364
586
 
365
- 0.2.0
366
- -----
587
+ ## [0.2.0]
588
+
589
+ [0.2.0]: https://github.com/celluloid/celluloid/compare/v0.1.0...v0.2.0
367
590
 
368
591
  * Support for future method calls with MyActor#future
369
592
  * Initial signaling support via MyActor#signal and MyActor#wait
@@ -372,8 +595,10 @@
372
595
  * Add an underscore prefix to all of Celluloid's instance variables so they don't
373
596
  clash with user-defined ones.
374
597
 
375
- 0.1.0
376
- -----
598
+ ## [0.1.0]
599
+
600
+ [0.1.0]: https://github.com/celluloid/celluloid/compare/v0.0.3...v0.1.0
601
+
377
602
  * Fiber-based reentrant actors. Requires Ruby 1.9
378
603
  * MyActor.new (where MyActor includes Celluloid::Actor) is now identical to .spawn
379
604
  * Terminate actors with MyActor#terminate
@@ -382,12 +607,14 @@
382
607
  * Synchronization now based on ConditionVariables instead of Celluloid::Waker
383
608
  * Determine if you're in actor scope with Celluloid.actor?
384
609
 
385
- 0.0.3
386
- -----
610
+ ## [0.0.3]
611
+
612
+ [0.0.3]: https://github.com/celluloid/celluloid/compare/v0.0.1...v0.0.3
613
+
387
614
  * Remove self-referential dependency in gemspec
388
615
 
389
- 0.0.1
390
- -----
616
+ ## 0.0.1
617
+
391
618
  * Initial release
392
619
 
393
620
  [@ioquatix]: https://github.com/ioquatix