celluloid 0.17.4 → 0.18.0.pre

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA256:
3
- metadata.gz: 7d771f8b4e3806d69a02a04d77a5cdd5803cf45601fe7db456ae720a0f241553
4
- data.tar.gz: f1b6038c7e3d9438fea74d7665d1e562f747b13a4e0e1bb58ada9128c4d20738
2
+ SHA1:
3
+ metadata.gz: 6567bb5a07a228657c325a1a1edd3e381a67472f
4
+ data.tar.gz: cf7f91e7a2ff18d99d882a896227e3080e50a3d8
5
5
  SHA512:
6
- metadata.gz: 51c7670a71727a603bd61d22ed354d2236757f4a8dcf071f337d9bae16f230ebc0cdf1cc37d31a475c635462875e515744993d9f159560ab175dd64ae6663010
7
- data.tar.gz: b726297f6e11cd5b5fe275e7347b4fd85d708a45838d25e5460ace7bd90bf40a83ffd022d48e1243f0a753b008450091bc90171cb8157418b4e2711d023f9a1e
6
+ metadata.gz: 9b6257f3e3720fd9e4672719aa6fb711b58d01a6c8bfd71cfa9c41d5e02af64094155a05ba1081ae1d0d7eaf236f34f32f2a645388ff3c245da90d91126d2405
7
+ data.tar.gz: de12fdb823cd615c66402fdd14aa45187d7fc950ee6ec52adf039bb884687e07d048d181466bafb8d1b900ba88be5ca276eac4e1c4a083d0a4e8f0ee43b3fdae
data/CHANGES.md CHANGED
@@ -1,12 +1,9 @@
1
- 0.17.4 (2018-12-20)
2
- -----
3
- * [#773](https://github.com/celluloid/celluloid/pull/773)
4
- Fix the errant 'Couldn't cleanly terminate all actors in 10 seconds!' message
5
- after forking. Fixes celluloid/celluloid#696.
6
- ([@digitalextremist])
7
-
8
- 0.17.3 (2016-01-18)
9
- -----
1
+ ## 0.18.0.pre (Final release TBD)
2
+
3
+ * Release notes coming soon!
4
+
5
+ ## 0.17.3 (2016-01-18)
6
+
10
7
  * [#701](https://github.com/celluloid/celluloid/pull/701)
11
8
  Conditions in loose threads loop does not take into account the difference between
12
9
  backtraces from ruby 2.0.0 and greater than. Fixes celluloid/celluloid-io#165.
@@ -40,31 +37,31 @@
40
37
  * [#666](https://github.com/celluloid/celluloid/pull/666)
41
38
  Don't catch IOError.
42
39
 
43
- 0.17.2 (2015-09-30)
44
- -----
40
+ ## 0.17.2 (2015-09-30)
41
+
45
42
  * Revamped test suite, using shared RSpec configuration layer provided by Celluloid itself.
46
43
  * Updated gem dependencies provided by Celluloid::Sync... extraneous gems removed, or marked as development dependencies.
47
44
  * Clean up deprecation notes.
48
45
 
49
- 0.17.1.2 (2015-08-21)
50
- -----
46
+ ## 0.17.1.2 (2015-08-21)
47
+
51
48
  * Fixes to posted markdown content.
52
49
  * Pull in new gem dependencies.
53
50
 
54
- 0.17.1.1 (2015-08-07)
55
- -----
51
+ ## 0.17.1.1 (2015-08-07)
52
+
56
53
  * Revert "no task to suspend" code from #232.
57
54
 
58
- 0.17.1 (2015-08-06)
59
- -----
55
+ ## 0.17.1 (2015-08-06)
56
+
60
57
  * `Celluloid::ActorSystem` moved to `Celluloid::Actor::System`, and from `celluloid/actor_system.rb` to `celluloid/actor/system.rb`
61
58
  * Added extensible API for defining new SystemEvents, and having them handled... without everyone changing `Actor#handle_system_event`.
62
59
  * Deprecated Task::TerminatedError & Task::TimeoutError... Consolidated in exceptions.rb, inherited from Exceptions vs. StandardError.
63
60
  * General round-up of all "errors" emitted throughout Celluloid, to either be derived from `Celluloid::Error` or `Celluloid::Interruption`.
64
61
  * Added ability to pass a block to `Condition#wait` which runs a `{ |value| ... }` type block if present, once the value is obtained by waiting.
65
62
 
66
- 0.17.0 (2015-07-04)
67
- -----
63
+ ## 0.17.0 (2015-07-04)
64
+
68
65
  * Fix $CELLULOID_TEST warnings
69
66
  * Massive overhaul of test suite, end-to-end.
70
67
  * Make "Terminating task" log messages debug-level events
@@ -94,8 +91,8 @@
94
91
  * Implement `Group::Manager` as base for future `Group::Unlocker` and other such systems traversing `ActorSystem#group` regularly.
95
92
  * Reduce number of supervisors instantiated by `ActorSystem` by consolidating them down to `Service::Root` container instances.
96
93
 
97
- 0.16.0 (2014-09-04)
98
- -----
94
+ ## 0.16.0 (2014-09-04)
95
+
99
96
  * Factor apart Celluloid::Cell (concurrent objects) from Celluloid::Actor
100
97
  * Introduce Celluloid::ActorSystem as an abstraction around the backend
101
98
  actor implementation (idea borrowed from Akka)
@@ -113,16 +110,16 @@
113
110
  * Better thread names on JRuby for easier debugging
114
111
  * Thread safety fixes to internal thread pool
115
112
 
116
- 0.15.2 (2013-10-06)
117
- -----
113
+ ## 0.15.2 (2013-10-06)
114
+
118
115
  * require 'celluloid/test' for at_exit-free testing
119
116
 
120
- 0.15.1 (2013-09-06)
121
- -----
117
+ ## 0.15.1 (2013-09-06)
118
+
122
119
  * Only raise on nested tasks if $CELLULOID_DEBUG is set
123
120
 
124
- 0.15.0 (2013-09-04)
125
- -----
121
+ ## 0.15.0 (2013-09-04)
122
+
126
123
  * Remove legacy support for "bang"-method based async invocation
127
124
  * Generic timeout support with Celluloid#timeout
128
125
  * Implement recursion detection for #inspect, avoiding infinite loop bugs
@@ -137,8 +134,8 @@
137
134
  * Reimplement signal system on top of Conditions
138
135
  * Add metadata like the current method to Celluloid::StackDumps
139
136
 
140
- 0.14.0 (2013-05-07)
141
- -----
137
+ ## 0.14.0 (2013-05-07)
138
+
142
139
  * Use a Thread-subclass for Celluloid
143
140
  * Implement actor-local variables
144
141
  * Add helper methods to the class
@@ -152,8 +149,8 @@
152
149
  * Execute blocks on the sender by default
153
150
  * Fix CPU counter on windows
154
151
 
155
- 0.13.0
156
- -----
152
+ ## 0.13.0
153
+
157
154
  * API change: Require Celluloid with: require 'celluloid/autostart' to
158
155
  automatically start support actors and configure at_exit handler which
159
156
  automatically terminates all actors.
@@ -167,8 +164,8 @@
167
164
  * Celluloid#call_chain_id provides UUIDs for calls across actors
168
165
  * Give all thread locals a :celluloid_* prefix
169
166
 
170
- 0.12.4
171
- -----
167
+ ## 0.12.4
168
+
172
169
  * Bugfix: Clear dead/crashed actors out of links
173
170
  * Bugfix: Exclusive mode was broken
174
171
  * Bugfix: Celluloid::SupervisionGroup#run was broken
@@ -178,17 +175,17 @@
178
175
  * Use #public_send to dispatch Celluloid methods
179
176
  * #idle_size and #busy_size for Celluloid::PoolManager
180
177
 
181
- 0.12.3
182
- -----
178
+ ## 0.12.3
179
+
183
180
  * Bugfix: Ensure exclusive mode works correctly for per-method case
184
181
  * Bugfix: Exit handlers were not being inherited correctly
185
182
 
186
- 0.12.2
187
- -----
183
+ ## 0.12.2
184
+
188
185
  * Disable IncidentReporter by default
189
186
 
190
- 0.12.1
191
- -----
187
+ ## 0.12.1
188
+
192
189
  * Fix bug in unsetting of exclusive mode
193
190
  * New incident report system for providing better debugging reports
194
191
  * Revert BasicObject proxies for now... they are causing problems
@@ -198,8 +195,8 @@
198
195
  * Remove Celluloid#alive? as it cannot be called in any manner that will ever
199
196
  return anything but true, rendering it useless
200
197
 
201
- 0.12.0
202
- -----
198
+ ## 0.12.0
199
+
203
200
  * Alternative async syntax: actor.async.method in lieu of actor.method!
204
201
  Original syntax still available but will be removed in Celluloid 1.0
205
202
  * Alternative future syntax: actor.future.method in lieu of future(:method)
@@ -222,8 +219,8 @@
222
219
  defined by use_mailbox. This is now fixed.
223
220
  * `exclusive` class method without arguments makes the whole actor exclusive
224
221
 
225
- 0.11.1
226
- -----
222
+ ## 0.11.1
223
+
227
224
  * 'exclusive' class method marks methods as always exclusive and runs them
228
225
  outside of a Fiber (useful if you need more stack than Fibers provide)
229
226
  * Celluloid::PoolManager returns its own class when #class is called, instead
@@ -232,8 +229,8 @@
232
229
  * Celluloid::Timers extracted into the timers gem, which Celluloid now
233
230
  uses for its own timers
234
231
 
235
- 0.11.0
236
- -----
232
+ ## 0.11.0
233
+
237
234
  * Celluloid::Application constant permanently removed
238
235
  * Celluloid::Pool removed in favor of Celluloid.pool
239
236
  * Celluloid::Group renamed to Celluloid::SupervisionGroup, old name is
@@ -247,22 +244,22 @@
247
244
  * abort can now accept a string instead of an exception object and will raise
248
245
  RuntimeError in the caller's context
249
246
 
250
- 0.10.0
251
- -----
247
+ ## 0.10.0
248
+
252
249
  * Celluloid::Actor.current is now the de facto way to obtain the current actor
253
250
  * #terminate now uses system messages, making termination take priority over
254
251
  other pending methods
255
252
  * #terminate! provides asynchronous termination
256
253
 
257
- 0.9.1
258
- -----
254
+ ## 0.9.1
255
+
259
256
  * Recurring timers with Celluloid#every(n) { ... }
260
257
  * Obtain UUIDs with Celluloid.uuid
261
258
  * Obtain the number of CPU cores available with Celluloid.cores
262
259
  * Celluloid::Pool defaults to one actor per CPU core max by default
263
260
 
264
- 0.9.0
265
- -----
261
+ ## 0.9.0
262
+
266
263
  * Celluloid::Pool supervises pools of actors
267
264
  * Graceful shutdown which calls #terminate on all actors
268
265
  * Celluloid::Actor.all returns all running actors
@@ -271,8 +268,8 @@
271
268
  * Celluloid.exception_handler { |ex| ... } defines a callback for notifying
272
269
  exceptions (for use with Airbrake, exception_notifier, etc.)
273
270
 
274
- 0.8.0
275
- -----
271
+ ## 0.8.0
272
+
276
273
  * Celluloid::Application is now Celluloid::Group
277
274
  * Futures no longer use a thread unless created with a block
278
275
  * No more future thread-leaks! Future threads auto-terminate now
@@ -283,20 +280,20 @@
283
280
  * Celluloid::FSMs are no longer actors themselves
284
281
  * Benchmarks using benchmark_suite
285
282
 
286
- 0.7.2
287
- -----
283
+ ## 0.7.2
284
+
288
285
  * Workaround fiber problems on JRuby 1.6.5.1 in addition to 1.6.5
289
286
  * Fix class displayed when inspecting dead actors
290
287
 
291
- 0.7.1
292
- -----
288
+ ## 0.7.1
289
+
293
290
  * More examples!
294
291
  * Cancel all pending tasks when actors crash
295
292
  * Log all errors that occur during signaling failures
296
293
  * Work around thread-local issues on rbx (see 52325ecd)
297
294
 
298
- 0.7.0
299
- -----
295
+ ## 0.7.0
296
+
300
297
  * Celluloid::Task abstraction replaces Celluloid::Fiber
301
298
  * Celluloid#tasks API to introspect on running tasks
302
299
  * Move Celluloid::IO into its own gem, celluloid-io
@@ -310,22 +307,22 @@
310
307
  * Celluloid.receive and Celluloid#receive now accept an optional timeout
311
308
  * Celluloid::Mailbox#receive now accepts an optional timeout
312
309
 
313
- 0.6.2
314
- -----
310
+ ## 0.6.2
311
+
315
312
  * List all registered actors with Celluloid::Actor.registered
316
313
  * All logging now handled through Celluloid::Logger
317
314
  * Rescue DeadActorError in Celluloid::ActorProxy#inspect
318
315
 
319
- 0.6.1
320
- -----
316
+ ## 0.6.1
317
+
321
318
  * Celluloid#links obtains Celluloid::Links for a given actor
322
319
  * The #class method is now proxied to actors
323
320
  * Celluloid::Fiber replaces the Celluloid.fiber and Celluloid.resume_fiber API
324
321
  * Use Thread.mailbox instead of Thread.current.mailbox to obtain the mailbox
325
322
  for the current thread
326
323
 
327
- 0.6.0
328
- -----
324
+ ## 0.6.0
325
+
329
326
  * Celluloid::Application classes for describing the structure of applications
330
327
  built with Celluloid
331
328
  * Methods of actors can now participate in the actor protocol directly via
@@ -338,8 +335,8 @@
338
335
  * Add Celluloid.fiber and Celluloid.resume_fiber to allow extension APIs to
339
336
  participate in the Celluloid fiber protocol
340
337
 
341
- 0.5.0
342
- -----
338
+ ## 0.5.0
339
+
343
340
  * "include Celluloid::Actor" no longer supported. Use "include Celluloid"
344
341
  * New Celluloid::IO module for actors that multiplex IO operations
345
342
  * Major overhaul of Celluloid::Actor internals (see 25e22cc1)
@@ -354,8 +351,15 @@
354
351
  * Magically skip ahead a few version numbers to impart the magnitude of this
355
352
  release. It's my versioning scheme and I can do what I wanna.
356
353
 
357
- 0.2.2
358
- -----
354
+ ## 0.4.0
355
+
356
+ * This version was mysteriously lost to the sands of time
357
+
358
+ ## 0.3.0
359
+
360
+ * This version was also mysteriously lost to the sands of time
361
+
362
+ ## 0.2.2
359
363
 
360
364
  * AbortErrors now reraise in caller scope and get a caller-focused backtrace
361
365
  * Log failed async calls instead of just letting them fail silently
@@ -363,14 +367,11 @@
363
367
  * Actors can now make async calls to themselves
364
368
  * Resolve crashes that occur when sending responses to exited/dead callers
365
369
 
366
- 0.2.1
367
- -----
370
+ ## 0.2.1
368
371
 
369
372
  * Hack around a bug of an indeterminate cause (2baba3d2)
370
- * COLON!#@!
371
373
 
372
- 0.2.0
373
- -----
374
+ ## 0.2.0
374
375
 
375
376
  * Support for future method calls with MyActor#future
376
377
  * Initial signaling support via MyActor#signal and MyActor#wait
@@ -379,8 +380,8 @@
379
380
  * Add an underscore prefix to all of Celluloid's instance variables so they don't
380
381
  clash with user-defined ones.
381
382
 
382
- 0.1.0
383
- -----
383
+ ## 0.1.0
384
+
384
385
  * Fiber-based reentrant actors. Requires Ruby 1.9
385
386
  * MyActor.new (where MyActor includes Celluloid::Actor) is now identical to .spawn
386
387
  * Terminate actors with MyActor#terminate
@@ -389,14 +390,13 @@
389
390
  * Synchronization now based on ConditionVariables instead of Celluloid::Waker
390
391
  * Determine if you're in actor scope with Celluloid.actor?
391
392
 
392
- 0.0.3
393
- -----
393
+ ## 0.0.3
394
+
394
395
  * Remove self-referential dependency in gemspec
395
396
 
396
- 0.0.1
397
- -----
397
+ ## 0.0.1
398
+
398
399
  * Initial release
399
400
 
400
- [@digitalextremist]: https://github.com/digitalextremist
401
401
  [@ioquatix]: https://github.com/ioquatix
402
402
  [@TiagoCardoso1983]: https://github.com/TiagoCardoso1983
data/README.md CHANGED
@@ -5,11 +5,6 @@
5
5
  [![Code Climate](https://codeclimate.com/github/celluloid/celluloid.svg)](https://codeclimate.com/github/celluloid/celluloid)
6
6
  [![Coverage Status](https://coveralls.io/repos/celluloid/celluloid/badge.svg?branch=master)](https://coveralls.io/r/celluloid/celluloid)
7
7
 
8
- _NOTE: This is the 0.17.x **stable** branch of Celluloid. For the 0.18.x
9
- **development** branch, please see:_
10
-
11
- https://github.com/celluloid/celluloid
12
-
13
8
  > "I thought of objects being like biological cells and/or individual
14
9
  > computers on a network, only able to communicate with messages"
15
10
  > _--Alan Kay, creator of Smalltalk, on the meaning of "object oriented programming"_
@@ -83,8 +78,9 @@ or visit us on IRC at #celluloid on freenode
83
78
 
84
79
  ### Is It "Production Ready™"?
85
80
 
86
- Yes, many users are now running Celluloid in production by using
87
- [Sidekiq](http://sidekiq.org) and [Adhearsion](http://adhearsion.com/)
81
+ Yes, many users are now running Celluloid in production.
82
+
83
+ * **See:** [Projects Using Celluloid](https://github.com/celluloid/celluloid/wiki/Projects-Using-Celluloid)
88
84
 
89
85
  Documentation
90
86
  -------------
@@ -156,6 +152,20 @@ Or to support the old API, use:
156
152
  require 'celluloid/backported'
157
153
  ```
158
154
 
155
+ ###Cloning via GitHub
156
+
157
+ Right now `Celluloid` has a [submodule](https://github.com/celluloid/culture). To install the framework via GitHub, you need to clone the submodules as well.
158
+
159
+ __Clone from scratch:__
160
+
161
+ $ git clone --recursive https://github.com/celluloid/celluloid
162
+
163
+ __If you already cloned `Celluloid` without submodules:__
164
+
165
+ Run the following command in the directory containing `Celluloid`:
166
+
167
+ git submodule update --init --recursive
168
+
159
169
  Supported Platforms
160
170
  -------------------
161
171
 
@@ -165,7 +175,7 @@ JRuby or Rubinius are the preferred platforms as they support true thread-level
165
175
  parallelism when executing Ruby code, whereas MRI/YARV is constrained by a global
166
176
  interpreter lock (GIL) and can only execute one thread at a time.
167
177
 
168
- Celluloid requires Ruby 1.9 mode on all interpreters.
178
+ Celluloid requires Ruby 1.9 mode or higher on all interpreters.
169
179
 
170
180
  Additional Reading
171
181
  ------------------
@@ -185,6 +195,6 @@ Contributing to Celluloid
185
195
  License
186
196
  -------
187
197
 
188
- Copyright (c) 2011-2015 Tony Arcieri, Donovan Keme.
198
+ Copyright (c) 2011-2016 Tony Arcieri, Donovan Keme.
189
199
 
190
200
  Distributed under the MIT License. See [LICENSE.txt](https://github.com/celluloid/celluloid/blob/master/LICENSE.txt) for further details.
@@ -1,28 +1,38 @@
1
- # Contributor Code of Conduct
2
-
3
- As contributors and maintainers of this project, we pledge to respect all
4
- people who contribute through reporting issues, posting feature requests,
5
- updating documentation, submitting pull requests or patches, and other
6
- activities.
7
-
8
- We are committed to making participation in this project a harassment-free
9
- experience for everyone, regardless of level of experience, gender, gender
10
- identity and expression, sexual orientation, disability, personal appearance,
11
- body size, race, age, or religion.
12
-
13
- Examples of unacceptable behavior by participants include the use of sexual
14
- language or imagery, derogatory comments or personal attacks, trolling, public
15
- or private harassment, insults, or other unprofessional conduct.
16
-
17
- Project maintainers have the right and responsibility to remove, edit, or
18
- reject comments, commits, code, wiki edits, issues, and other contributions
19
- that are not aligned to this Code of Conduct. Project maintainers who do not
20
- follow the Code of Conduct may be removed from the project team.
21
-
22
- Instances of abusive, harassing, or otherwise unacceptable behavior may be
23
- reported by opening an issue or contacting one or more of the project
24
- maintainers.
25
-
26
- This Code of Conduct is adapted from the [Contributor Covenant](http
27
- :contributor-covenant.org), version 1.0.0, available at [http://contributor-
28
- covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/)
1
+ Contributor Code of Conduct
2
+
3
+ As contributors and maintainers of this project, and in the interest of fostering
4
+ an open and welcoming community, we pledge to respect all people who contribute
5
+ through reporting issues, posting feature requests, updating documentation,
6
+ submitting pull requests or patches, and other activities.
7
+
8
+ We are committed to making participation in this project a harassment-free experience for
9
+ everyone, regardless of level of experience, gender, gender identity and expression,
10
+ sexual orientation, disability, personal appearance, body size, race, ethnicity, age,
11
+ religion, or nationality.
12
+
13
+ Examples of unacceptable behavior by participants include:
14
+
15
+ * The use of sexualized language or imagery
16
+ * Personal attacks
17
+ * Trolling or insulting/derogatory comments
18
+ * Public or private harassment
19
+ * Publishing other's private information, such as physical or electronic addresses,
20
+ without explicit permission
21
+ * Other unethical or unprofessional conduct.
22
+
23
+ Project maintainers have the right and responsibility to remove, edit, or reject
24
+ comments, commits, code, wiki edits, issues, and other contributions that are not
25
+ aligned to this Code of Conduct. By adopting this Code of Conduct, project maintainers
26
+ commit themselves to fairly and consistently applying these principles to every aspect
27
+ of managing this project. Project maintainers who do not follow or enforce the Code of
28
+ Conduct may be permanently removed from the project team.
29
+
30
+ This code of conduct applies both within project spaces and in public spaces
31
+ when an individual is representing the project or its community.
32
+
33
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
34
+ opening an issue or contacting one or more of the project maintainers.
35
+
36
+ This Code of Conduct is adapted from the Contributor Covenant
37
+ (http://contributor-covenant.org), version 1.2.0, available at
38
+ http://contributor-covenant.org/version/1/2/0/
@@ -0,0 +1,17 @@
1
+ ### Why does your org want to participate in Google Summer of Code?
2
+
3
+ This year is pivotal for us. Celluloid is approaching "1.0" across its suite of Ruby gems. We need students' attention focused on Celluloid itself now.
4
+
5
+ We want to participate directly this year, for three reasons:
6
+
7
+ 1) We grew beyond the scope of umbrella organizations, and are establishing a new non-profit corporation.
8
+
9
+ 2) We are important to one of the most epic shifts in software. With us, any coder can create parallel, asynchronous, concurrent, and/or distributed systems, simply. We hold & gain ground in a fierce, ordinarily complicated, multi-threaded multi-core space; fought over by Erlang/Elixr, Go, Rust, Akka, etc.
10
+
11
+ 3) We are important to Ruby:
12
+
13
+ a) We maintain many widely used libraries, and have millions of downloads.
14
+
15
+ b) We bring design diversity to Ruby. The vast majority of Rubyists tend toward one design approach: Rails+Rack. We offer alternatives sparing Ruby from monoculture.
16
+
17
+ c) We cause Ruby itself to evolve. We use and stretch nearly every aspect of every Ruby engine.
@@ -0,0 +1,7 @@
1
+ ### How will you keep mentors engaged with their students?
2
+
3
+ We have many contributors with management experience. One of our administrators will not be mentoring a student, but instead will be responsible for assessing public communication and activity, providing encouragement and support. We will also be creating healthy competition between mentors.
4
+
5
+ All mentors and students will be present in Ryver. All student activity ( code and communication ) will be visible, and administrators will be monitoring student activity and mentor interactions. On a weekly basis, before prolonged trouble or inactivity, at least one person in addition to the mentor involved will know a mentor or student began to fall behind the stated project goals, and/or the program's expectations.
6
+
7
+ Celluloid is a tight community who will be encouraging both mentors and students. But we will also be offering incentives to top performing students, offering prizes such as stickers, shirts, virtual server credits, internships at Celluloid supporting organizations, etc.
@@ -0,0 +1,9 @@
1
+ ### How will you help your students stay on schedule to complete their projects?
2
+
3
+ We will hold short but frequent status meetings every two weeks at the longest ( but aspiring to weekly ) - implementing the Agile and Scrum methodology's style of status and assistance meetings.
4
+
5
+ We will treat the group of mentors as a team, the students as a team, the students and mentors as teams, and treat the entire organization as a pool of talent and assistance for all the other students and mentors in the organization. If anyone encounters a roadblock, they have plenty of support.
6
+
7
+ Rather than treat projects as a water-tight compartments, we will cross-motivate students: We will share successes, draw attention to unique dilemmas, etc. We will encourage, showcase progress, and foster a spirit of respectful competition between projects for mentors and students alike.
8
+
9
+ And as mentioned, will have a non-mentor organization administrator acting as a communications and performance monitor, mentor assistant, and "cheer-leader" for both students and mentors.
@@ -0,0 +1,5 @@
1
+ ### How will you get your students involved in your community during GSoC?
2
+
3
+ In addition to Ryver, we will be engaging students on GitHub, Hangouts, IRC, Twitter, Google Groups, even LinkedIn. These will be all introduced and utilized by students during the GSoC program. By the time the program is over, the students will be new community members who are each deeply connected.
4
+
5
+ Our quick but frequent Agile-style meetings will further orient the students to the wider community, rather than just speaking with their mentor. By the end, everyone will know each other. Students will become aware of opportunities to work in the community, and community veterans will have a chance to observe -- then establish relationships which lead to their own businesses and other organizations engaging students as interns, future contractors, technical co-founders, and more.
@@ -0,0 +1,5 @@
1
+ ### How will you keep students involved with your community after GSoC?
2
+
3
+ Organizations who use Celluloid will be offering internships to top performing students. We have many disciplines a student start a career in after school, both in Open Source directly, and in organizations all over the world.
4
+
5
+ In the past Celluloid mentors and students have been known to keep contact long after GSoC is over. We draw students into the organic relationships and community ties we normally have in our existing sub-culture.
@@ -0,0 +1,16 @@
1
+ ### Answers to our GSoC Organization application questions:
2
+
3
+ Please feel free to fork, edit, and request your changes be pulled in.
4
+
5
+ * [Why does your org want to participate in Google Summer of Code?][1]
6
+ * [How will you keep mentors engaged with their students?][2]
7
+ * [How will you help your students stay on schedule to complete their projects?][3]
8
+ * [How will you get your students involved in your community during GSoC?][4]
9
+ * [How will you keep students involved with your community after GSoC?][5]
10
+
11
+
12
+ [1]: https://github.com/celluloid/culture/blob/master/GSoC/1010-why_we_will_participate.md
13
+ [2]: https://github.com/celluloid/culture/blob/master/GSoC/1020-how_mentors_stay_engaged.md
14
+ [3]: https://github.com/celluloid/culture/blob/master/GSoC/1030-keeping_students_on_schedule.md
15
+ [4]: https://github.com/celluloid/culture/blob/master/GSoC/1040-getting_students_involved.md
16
+ [5]: https://github.com/celluloid/culture/blob/master/GSoC/1050-student_involvement_after.md
@@ -3,7 +3,7 @@ Celluloid::Culture
3
3
  [![Build Status](https://travis-ci.org/celluloid/culture.svg)](https://travis-ci.org/celluloid/culture)
4
4
 
5
5
  ### Please see...
6
- * Important [issues for discussion](/celluloid/culture/issues).
6
+ * Important [issues for discussion](https://github.com/celluloid/culture/issues).
7
7
  * Information about [Celluloid::Sync](SYNC.md).
8
8
  * Information about [RuboCop](rubocop/README.md).
9
9
 
@@ -19,4 +19,4 @@ git submodule add http://github.com/celluloid/culture.git
19
19
  Make sure `http://` is used and no other method of inclusion. CI needs it to be `http://`
20
20
 
21
21
  ### Then what?
22
- Once you've done that, read up on [Celluloid::Sync](SYNC.md) and [RuboCop](rubocop/README.md).
22
+ Once you've done that, read up on [Celluloid::Sync](SYNC.md) and [RuboCop](rubocop/README.md).
@@ -25,6 +25,14 @@ rake:
25
25
  rspec:
26
26
  dependency: development
27
27
 
28
+ listen:
29
+ version: '3.0.3'
30
+ dependency: development
31
+
32
+ guard:
33
+ version: '2.13.0'
34
+ dependency: development
35
+
28
36
  guard-rspec:
29
37
  dependency: development
30
38
 
@@ -33,7 +33,7 @@ module Celluloid
33
33
  end
34
34
 
35
35
  unless @dependencies.is_a?(Hash) && @dependencies.any?
36
- fail "Celluloid cannot find its dependencies."
36
+ raise "Celluloid cannot find its dependencies."
37
37
  end
38
38
 
39
39
  undef core? rescue nil
@@ -26,7 +26,11 @@ Style/SpaceInsideBlockBraces:
26
26
  Style/AccessModifierIndentation:
27
27
  Enabled: false
28
28
 
29
- Style/TrailingComma:
29
+ Style/TrailingCommaInArguments:
30
+ Enabled: true
31
+ EnforcedStyleForMultiline: comma
32
+
33
+ Style/TrailingCommaInLiteral:
30
34
  Enabled: true
31
35
  EnforcedStyleForMultiline: comma
32
36
 
@@ -39,7 +39,7 @@ module Celluloid
39
39
  end
40
40
  end
41
41
 
42
- fail "Missing gemspec." unless gem_name?
42
+ raise "Missing gemspec." unless gem_name?
43
43
  $LOAD_PATH.push(gem_path)
44
44
  $LOAD_PATH.push(lib_path)
45
45
 
@@ -148,7 +148,7 @@ module Celluloid
148
148
  end
149
149
 
150
150
  def init
151
- @actor_system = Actor::System.new
151
+ @actor_system ||= Actor::System.new
152
152
  end
153
153
 
154
154
  def start
@@ -159,22 +159,12 @@ module Celluloid
159
159
  actor_system && actor_system.running?
160
160
  end
161
161
 
162
+ #de TODO Anticipate outside process finalizer that would by-pass this.
162
163
  def register_shutdown
163
164
  return if defined?(@shutdown_registered) && @shutdown_registered
164
-
165
- # Terminate all actors at exit
165
+ # Terminate all actors at exit, unless the exit is abnormal.
166
166
  at_exit do
167
- sleep 0.126 # hax grace period for unnaturally terminating actors
168
- # allows "reason" in exit_handler to resolve before being destroyed
169
- if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION >= "1.9"
170
- # workaround for MRI bug losing exit status in at_exit block
171
- # http://bugs.ruby-lang.org/issues/5218
172
- exit_status = $ERROR_INFO.status if $ERROR_INFO.is_a?(SystemExit)
173
- Celluloid.shutdown
174
- exit exit_status if exit_status
175
- else
176
- Celluloid.shutdown
177
- end
167
+ Celluloid.shutdown unless $!
178
168
  end
179
169
  @shutdown_registered = true
180
170
  end
@@ -530,8 +520,3 @@ Celluloid.group_class =
530
520
  Celluloid::Group.const_get(str)
531
521
  end
532
522
  end
533
-
534
- unless defined?($CELLULOID_TEST) && $CELLULOID_TEST
535
- Celluloid.register_shutdown
536
- Celluloid.init
537
- end
@@ -1,3 +1,8 @@
1
1
  require "celluloid"
2
2
 
3
3
  Celluloid.start
4
+
5
+ unless defined?($CELLULOID_TEST) && $CELLULOID_TEST
6
+ Celluloid.register_shutdown
7
+ Celluloid.init
8
+ end
@@ -45,10 +45,18 @@ module Celluloid
45
45
  arity = meth.arity
46
46
 
47
47
  if arity >= 0
48
- fail ArgumentError, "wrong number of arguments (#{@arguments.size} for #{arity})" if @arguments.size != arity
48
+ if @arguments.size != arity
49
+ e = ArgumentError.new("wrong number of arguments (#{@arguments.size} for #{arity})")
50
+ e.set_backtrace(caller << "#{meth.source_location.join(':')}: in `#{meth.name}`")
51
+ fail e
52
+ end
49
53
  elsif arity < -1
50
54
  mandatory_args = -arity - 1
51
- fail ArgumentError, "wrong number of arguments (#{@arguments.size} for #{mandatory_args}+)" if arguments.size < mandatory_args
55
+ if arguments.size < mandatory_args
56
+ e = ArgumentError.new("wrong number of arguments (#{@arguments.size} for #{mandatory_args}+)")
57
+ e.set_backtrace(caller << "#{meth.source_location.join(':')}: in `#{meth.name}`")
58
+ fail e
59
+ end
52
60
  end
53
61
  rescue => ex
54
62
  raise AbortError.new(ex)
@@ -1,2 +1,2 @@
1
1
  $CELLULOID_BACKPORTED = false
2
- require "celluloid/autostart"
2
+ require "celluloid"
@@ -8,14 +8,27 @@ class Thread
8
8
  end
9
9
  end
10
10
 
11
- # TODO: Remove link to Interal::Logger
12
11
  module Celluloid
12
+ ActorSystem = Actor::System
13
+
13
14
  SyncCall = Call::Sync
15
+ AsyncCall = Call::Async
16
+ BlockCall = Call::Block
17
+
18
+ AbstractProxy = Proxy::Abstract
19
+ ActorProxy = Proxy::Actor
20
+ AsyncProxy = Proxy::Async
21
+ BlockProxy = Proxy::Block
22
+ CellProxy = Proxy::Cell
23
+ FutureProxy = Proxy::Future
24
+ SyncProxy = Proxy::Sync
25
+
14
26
  EventedMailbox = Mailbox::Evented
15
27
  InternalPool = Group::Pool
28
+
16
29
  TaskThread = Task::Threaded
17
30
  TaskFiber = Task::Fibered
18
- ActorSystem = Actor::System
31
+
19
32
  Task::TerminatedError = TaskTerminated
20
33
  Task::TimeoutError = TaskTimeout
21
34
  end
@@ -119,7 +119,7 @@ module Celluloid
119
119
  alias_method :<<, :signal
120
120
 
121
121
  def cancel(error)
122
- response = ErrorResponse.new(@call, error)
122
+ response = Internals::Response::Error.new(@call, error)
123
123
  signal response
124
124
  @mutex.synchronize do
125
125
  @cancelled = true
@@ -13,7 +13,7 @@ end
13
13
  require "rspec/retry"
14
14
 
15
15
  module Specs
16
-
16
+ ALLOW_SLOW_MAILBOXES = true # TODO: Remove hax.
17
17
  CHECK_LOOSE_THREADS = !Nenv.ci? unless defined? CHECK_LOOSE_THREADS
18
18
  ALLOW_RETRIES = 3 unless defined? ALLOW_RETRIES
19
19
 
@@ -12,8 +12,10 @@ module Celluloid
12
12
  Thread.current[:celluloid_queue] = queue
13
13
  Thread.current[:celluloid_actor_system] = actor_system
14
14
  yield
15
- # TODO: Determine why infinite thread leakage happens under jRuby, if `Fiber.yield` is used:
16
- Fiber.yield unless RUBY_PLATFORM == "java"
15
+
16
+ # Alleged workaround for a MRI memory leak
17
+ # TODO: validate/confirm this is actually necessary
18
+ Fiber.yield if RUBY_ENGINE == "ruby"
17
19
  end
18
20
  end
19
21
 
@@ -1,3 +1,3 @@
1
1
  module Celluloid
2
- VERSION = "0.17.4"
2
+ VERSION = "0.18.0.pre"
3
3
  end
@@ -32,4 +32,10 @@ RSpec.describe Celluloid::Future, actor_system: :global do
32
32
  future = Celluloid::Future.new { sleep 2 }
33
33
  expect { future.value(1) }.to raise_exception(Celluloid::TaskTimeout)
34
34
  end
35
+
36
+ it "cancels future" do
37
+ future = Celluloid::Future.new { sleep 3600 }
38
+ future.cancel(StandardError.new('cancelled'))
39
+ expect { future.value }.to raise_exception(StandardError, "cancelled")
40
+ end
35
41
  end
@@ -37,6 +37,7 @@ module Specs
37
37
  def open_logfile(rel_path, sync)
38
38
  root = Pathname(__FILE__).dirname.dirname.dirname
39
39
  log_path = root + rel_path
40
+ log_path.dirname.mkpath
40
41
  logfile = File.open(log_path.to_s, "a")
41
42
  logfile.sync if sync
42
43
  logfile
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: celluloid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.4
4
+ version: 0.18.0.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Arcieri
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-12-20 00:00:00.000000000 Z
12
+ date: 2016-11-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -137,6 +137,34 @@ dependencies:
137
137
  - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
+ - !ruby/object:Gem::Dependency
141
+ name: listen
142
+ requirement: !ruby/object:Gem::Requirement
143
+ requirements:
144
+ - - '='
145
+ - !ruby/object:Gem::Version
146
+ version: 3.0.3
147
+ type: :development
148
+ prerelease: false
149
+ version_requirements: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - '='
152
+ - !ruby/object:Gem::Version
153
+ version: 3.0.3
154
+ - !ruby/object:Gem::Dependency
155
+ name: guard
156
+ requirement: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - '='
159
+ - !ruby/object:Gem::Version
160
+ version: 2.13.0
161
+ type: :development
162
+ prerelease: false
163
+ version_requirements: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - '='
166
+ - !ruby/object:Gem::Version
167
+ version: 2.13.0
140
168
  - !ruby/object:Gem::Dependency
141
169
  name: guard-rspec
142
170
  requirement: !ruby/object:Gem::Requirement
@@ -276,6 +304,12 @@ files:
276
304
  - LICENSE.txt
277
305
  - README.md
278
306
  - culture/CONDUCT.md
307
+ - culture/GSoC/1010-why_we_will_participate.md
308
+ - culture/GSoC/1020-how_mentors_stay_engaged.md
309
+ - culture/GSoC/1030-keeping_students_on_schedule.md
310
+ - culture/GSoC/1040-getting_students_involved.md
311
+ - culture/GSoC/1050-student_involvement_after.md
312
+ - culture/GSoC/README.md
279
313
  - culture/Gemfile
280
314
  - culture/LICENSE.txt
281
315
  - culture/README.md
@@ -408,7 +442,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
408
442
  version: 1.3.6
409
443
  requirements: []
410
444
  rubyforge_project:
411
- rubygems_version: 2.7.4
445
+ rubygems_version: 2.5.2
412
446
  signing_key:
413
447
  specification_version: 4
414
448
  summary: Actor-based concurrent object framework for Ruby