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 +5 -5
- data/CHANGES.md +81 -81
- data/README.md +19 -9
- data/culture/CONDUCT.md +38 -28
- data/culture/GSoC/1010-why_we_will_participate.md +17 -0
- data/culture/GSoC/1020-how_mentors_stay_engaged.md +7 -0
- data/culture/GSoC/1030-keeping_students_on_schedule.md +9 -0
- data/culture/GSoC/1040-getting_students_involved.md +5 -0
- data/culture/GSoC/1050-student_involvement_after.md +5 -0
- data/culture/GSoC/README.md +16 -0
- data/culture/README.md +2 -2
- data/culture/gems/dependencies.yml +8 -0
- data/culture/gems/loader.rb +1 -1
- data/culture/rubocop/style.yml +5 -1
- data/culture/sync.rb +1 -1
- data/lib/celluloid.rb +4 -19
- data/lib/celluloid/autostart.rb +5 -0
- data/lib/celluloid/calls.rb +10 -2
- data/lib/celluloid/current.rb +1 -1
- data/lib/celluloid/deprecate.rb +15 -2
- data/lib/celluloid/future.rb +1 -1
- data/lib/celluloid/rspec.rb +1 -1
- data/lib/celluloid/task/fibered.rb +4 -2
- data/lib/celluloid/version.rb +1 -1
- data/spec/celluloid/future_spec.rb +6 -0
- data/spec/support/logging.rb +1 -0
- metadata +37 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 6567bb5a07a228657c325a1a1edd3e381a67472f
|
4
|
+
data.tar.gz: cf7f91e7a2ff18d99d882a896227e3080e50a3d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b6257f3e3720fd9e4672719aa6fb711b58d01a6c8bfd71cfa9c41d5e02af64094155a05ba1081ae1d0d7eaf236f34f32f2a645388ff3c245da90d91126d2405
|
7
|
+
data.tar.gz: de12fdb823cd615c66402fdd14aa45187d7fc950ee6ec52adf039bb884687e07d048d181466bafb8d1b900ba88be5ca276eac4e1c4a083d0a4e8f0ee43b3fdae
|
data/CHANGES.md
CHANGED
@@ -1,12 +1,9 @@
|
|
1
|
-
0.
|
2
|
-
|
3
|
-
*
|
4
|
-
|
5
|
-
|
6
|
-
|
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.
|
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
|
87
|
-
|
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-
|
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.
|
data/culture/CONDUCT.md
CHANGED
@@ -1,28 +1,38 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
As contributors and maintainers of this project,
|
4
|
-
|
5
|
-
|
6
|
-
activities.
|
7
|
-
|
8
|
-
We are committed to making participation in this project a harassment-free
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
Examples of unacceptable behavior by participants include
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
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
|
data/culture/README.md
CHANGED
@@ -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).
|
data/culture/gems/loader.rb
CHANGED
data/culture/rubocop/style.yml
CHANGED
@@ -26,7 +26,11 @@ Style/SpaceInsideBlockBraces:
|
|
26
26
|
Style/AccessModifierIndentation:
|
27
27
|
Enabled: false
|
28
28
|
|
29
|
-
Style/
|
29
|
+
Style/TrailingCommaInArguments:
|
30
|
+
Enabled: true
|
31
|
+
EnforcedStyleForMultiline: comma
|
32
|
+
|
33
|
+
Style/TrailingCommaInLiteral:
|
30
34
|
Enabled: true
|
31
35
|
EnforcedStyleForMultiline: comma
|
32
36
|
|
data/culture/sync.rb
CHANGED
data/lib/celluloid.rb
CHANGED
@@ -148,7 +148,7 @@ module Celluloid
|
|
148
148
|
end
|
149
149
|
|
150
150
|
def init
|
151
|
-
@actor_system
|
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
|
-
|
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
|
data/lib/celluloid/autostart.rb
CHANGED
data/lib/celluloid/calls.rb
CHANGED
@@ -45,10 +45,18 @@ module Celluloid
|
|
45
45
|
arity = meth.arity
|
46
46
|
|
47
47
|
if arity >= 0
|
48
|
-
|
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
|
-
|
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)
|
data/lib/celluloid/current.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
$CELLULOID_BACKPORTED = false
|
2
|
-
require "celluloid
|
2
|
+
require "celluloid"
|
data/lib/celluloid/deprecate.rb
CHANGED
@@ -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
|
-
|
31
|
+
|
19
32
|
Task::TerminatedError = TaskTerminated
|
20
33
|
Task::TimeoutError = TaskTimeout
|
21
34
|
end
|
data/lib/celluloid/future.rb
CHANGED
data/lib/celluloid/rspec.rb
CHANGED
@@ -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
|
-
|
16
|
-
|
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
|
|
data/lib/celluloid/version.rb
CHANGED
@@ -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
|
data/spec/support/logging.rb
CHANGED
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.
|
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:
|
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.
|
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
|