farce 0.2.0-aarch64-linux-gnu → 0.4.0-aarch64-linux-gnu

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 (68) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +91 -0
  3. data/README.md +117 -1451
  4. data/docs/compatibility.md +74 -0
  5. data/docs/concurrency.md +151 -0
  6. data/docs/data-structures.md +313 -0
  7. data/docs/installation.md +63 -0
  8. data/docs/integrations.md +124 -0
  9. data/docs/introduction.md +266 -0
  10. data/docs/modes.md +8 -5
  11. data/docs/scheduling.md +176 -0
  12. data/docs/scopes.md +3 -1
  13. data/docs/sharing.md +211 -0
  14. data/docs/shims.md +144 -0
  15. data/docs/utilities.md +93 -0
  16. data/docs/variants-and-scopes.md +92 -0
  17. data/docs/variants.md +18 -0
  18. data/lib/farce/abstract/executor.rb +130 -0
  19. data/lib/farce/abstract/flag.rb +6 -0
  20. data/lib/farce/abstract/pool.rb +334 -0
  21. data/lib/farce/abstract/scheduler.rb +539 -93
  22. data/lib/farce/backports.rb +274 -0
  23. data/lib/farce/engine/jruby/fiber_scheduler.rb +3 -0
  24. data/lib/farce/engine/jruby/scheduler_synchronization.rb +87 -0
  25. data/lib/farce/engine/jruby/signal.rb +7 -4
  26. data/lib/farce/engine/ruby/3.4/null_port.rb +21 -0
  27. data/lib/farce/engine/ruby/3.4/patch.rb +67 -0
  28. data/lib/farce/engine/ruby/3.4/port.rb +13 -12
  29. data/lib/farce/engine/ruby/3.4/ractor_methods.rb +0 -1
  30. data/lib/farce/engine/ruby/4.0/null_port.rb +36 -0
  31. data/lib/farce/engine/ruby/4.0/port.rb +1 -2
  32. data/lib/farce/engine/ruby/4.1/null_port.rb +5 -0
  33. data/lib/farce/engine/ruby.rb +7 -0
  34. data/lib/farce/engine/shared/main_scheduler.rb +2 -2
  35. data/lib/farce/engine/shared/null_port.rb +18 -0
  36. data/lib/farce/engine/shared/parallel_scheduler.rb +1 -1
  37. data/lib/farce/engine/shared/port.rb +41 -3
  38. data/lib/farce/engine/shared/proxy_owner.rb +1 -1
  39. data/lib/farce/engine/shared/queue.rb +4 -4
  40. data/lib/farce/engine/shared/ractor_methods.rb +2 -2
  41. data/lib/farce/engine/shared/ractor_selector.rb +73 -0
  42. data/lib/farce/engine/shared/unshared_atom.rb +9 -8
  43. data/lib/farce/engine/shared.rb +9 -0
  44. data/lib/farce/extension.rb +150 -0
  45. data/lib/farce/integrations/ractor_tmvar.rb +4 -1
  46. data/lib/farce/internal/fake_ractor.rb +10 -2
  47. data/lib/farce/internal/lease_initialization.rb +1 -1
  48. data/lib/farce/internal/local_executor_methods.rb +33 -0
  49. data/lib/farce/internal/local_scheduled_task.rb +27 -0
  50. data/lib/farce/internal/scheduled_task.rb +1 -1
  51. data/lib/farce/internal/scheduler_lifecycle.rb +7 -4
  52. data/lib/farce/internal/thread_pool_supervisor.rb +45 -0
  53. data/lib/farce/internal/unshared_pool_worker.rb +14 -0
  54. data/lib/farce/internal.rb +14 -0
  55. data/lib/farce/local/pool.rb +111 -0
  56. data/lib/farce/local/scheduler.rb +219 -0
  57. data/lib/farce/null_port.rb +12 -0
  58. data/lib/farce/pool.rb +2 -290
  59. data/lib/farce/proxy.rb +2 -2
  60. data/lib/farce/scheduler.rb +1 -502
  61. data/lib/farce/system.rb +10 -2
  62. data/lib/farce/task.rb +285 -0
  63. data/lib/farce/{thread_scheduler.rb → thread_executor.rb} +7 -7
  64. data/lib/farce/unshared/pool.rb +44 -0
  65. data/lib/farce/unshared/scheduler.rb +89 -0
  66. data/lib/farce/version.rb +1 -1
  67. data/lib/farce.rb +10 -18
  68. metadata +34 -2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: farce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.4.0
5
5
  platform: aarch64-linux-gnu
6
6
  authors:
7
7
  - Konstantin Haase
@@ -22,11 +22,22 @@ files:
22
22
  - README.md
23
23
  - SECURITY.md
24
24
  - docs/benchmarks.md
25
+ - docs/compatibility.md
26
+ - docs/concurrency.md
27
+ - docs/data-structures.md
25
28
  - docs/gems/dry-types.md
26
29
  - docs/gems/msgpack.md
27
30
  - docs/gems/ractor-shim.md
31
+ - docs/installation.md
32
+ - docs/integrations.md
33
+ - docs/introduction.md
28
34
  - docs/modes.md
35
+ - docs/scheduling.md
29
36
  - docs/scopes.md
37
+ - docs/sharing.md
38
+ - docs/shims.md
39
+ - docs/utilities.md
40
+ - docs/variants-and-scopes.md
30
41
  - docs/variants.md
31
42
  - ext/ext_helper.rb
32
43
  - ext/farce/README.md
@@ -83,6 +94,7 @@ files:
83
94
  - lib/farce/abstract/counter.rb
84
95
  - lib/farce/abstract/duplicable_map.rb
85
96
  - lib/farce/abstract/exchanger.rb
97
+ - lib/farce/abstract/executor.rb
86
98
  - lib/farce/abstract/flag.rb
87
99
  - lib/farce/abstract/lazy.rb
88
100
  - lib/farce/abstract/lease.rb
@@ -92,6 +104,7 @@ files:
92
104
  - lib/farce/abstract/lru_map.rb
93
105
  - lib/farce/abstract/map.rb
94
106
  - lib/farce/abstract/molecule.rb
107
+ - lib/farce/abstract/pool.rb
95
108
  - lib/farce/abstract/port.rb
96
109
  - lib/farce/abstract/priority_queue.rb
97
110
  - lib/farce/abstract/queue.rb
@@ -108,6 +121,7 @@ files:
108
121
  - lib/farce/abstract/weak_set.rb
109
122
  - lib/farce/abstract/weak_value_map.rb
110
123
  - lib/farce/atom.rb
124
+ - lib/farce/backports.rb
111
125
  - lib/farce/class_mirror.rb
112
126
  - lib/farce/clock.rb
113
127
  - lib/farce/config.rb
@@ -120,6 +134,7 @@ files:
120
134
  - lib/farce/engine/jruby/lease_waiting.rb
121
135
  - lib/farce/engine/jruby/map.rb
122
136
  - lib/farce/engine/jruby/mutable_numeric_copy.rb
137
+ - lib/farce/engine/jruby/scheduler_synchronization.rb
123
138
  - lib/farce/engine/jruby/signal.rb
124
139
  - lib/farce/engine/jvm.rb
125
140
  - lib/farce/engine/jvm/concurrent_weak_registry.rb
@@ -133,17 +148,21 @@ files:
133
148
  - lib/farce/engine/ruby.rb
134
149
  - lib/farce/engine/ruby/3.4/farce.so
135
150
  - lib/farce/engine/ruby/3.4/fiber_scheduler.rb
151
+ - lib/farce/engine/ruby/3.4/null_port.rb
152
+ - lib/farce/engine/ruby/3.4/patch.rb
136
153
  - lib/farce/engine/ruby/3.4/port.rb
137
154
  - lib/farce/engine/ruby/3.4/ractor_methods.rb
138
155
  - lib/farce/engine/ruby/3.4/ractor_selector.rb
139
156
  - lib/farce/engine/ruby/3.4/rebind.so
140
157
  - lib/farce/engine/ruby/3.4/vault.rb
141
158
  - lib/farce/engine/ruby/4.0/farce.so
159
+ - lib/farce/engine/ruby/4.0/null_port.rb
142
160
  - lib/farce/engine/ruby/4.0/port.rb
143
161
  - lib/farce/engine/ruby/4.0/ractor_methods.rb
144
162
  - lib/farce/engine/ruby/4.0/ractor_selector.rb
145
163
  - lib/farce/engine/ruby/4.0/rebind.so
146
164
  - lib/farce/engine/ruby/4.0/vault.rb
165
+ - lib/farce/engine/ruby/4.1/null_port.rb
147
166
  - lib/farce/engine/ruby/4.1/port.rb
148
167
  - lib/farce/engine/ruby/4.1/ractor_methods.rb
149
168
  - lib/farce/engine/ruby/4.1/ractor_selector.rb
@@ -172,12 +191,14 @@ files:
172
191
  - lib/farce/engine/shared/lease_pool.rb
173
192
  - lib/farce/engine/shared/main_scheduler.rb
174
193
  - lib/farce/engine/shared/map_key_coordination.rb
194
+ - lib/farce/engine/shared/null_port.rb
175
195
  - lib/farce/engine/shared/parallel_scheduler.rb
176
196
  - lib/farce/engine/shared/port.rb
177
197
  - lib/farce/engine/shared/portable_bounded_map.rb
178
198
  - lib/farce/engine/shared/proxy_owner.rb
179
199
  - lib/farce/engine/shared/queue.rb
180
200
  - lib/farce/engine/shared/ractor_methods.rb
201
+ - lib/farce/engine/shared/ractor_selector.rb
181
202
  - lib/farce/engine/shared/rebindable.rb
182
203
  - lib/farce/engine/shared/strict_atom.rb
183
204
  - lib/farce/engine/shared/strict_map.rb
@@ -216,6 +237,7 @@ files:
216
237
  - lib/farce/envelope.rb
217
238
  - lib/farce/error.rb
218
239
  - lib/farce/exchanger.rb
240
+ - lib/farce/extension.rb
219
241
  - lib/farce/flag.rb
220
242
  - lib/farce/integrations.rb
221
243
  - lib/farce/integrations/active_support.rb
@@ -264,6 +286,8 @@ files:
264
286
  - lib/farce/internal/lease_pool_state.rb
265
287
  - lib/farce/internal/lease_state.rb
266
288
  - lib/farce/internal/lease_waiting.rb
289
+ - lib/farce/internal/local_executor_methods.rb
290
+ - lib/farce/internal/local_scheduled_task.rb
267
291
  - lib/farce/internal/managed_queue.rb
268
292
  - lib/farce/internal/map_value_modes.rb
269
293
  - lib/farce/internal/marshal_support.rb
@@ -289,12 +313,14 @@ files:
289
313
  - lib/farce/internal/strict_lease_map.rb
290
314
  - lib/farce/internal/strict_lease_pool.rb
291
315
  - lib/farce/internal/thread_pool.rb
316
+ - lib/farce/internal/thread_pool_supervisor.rb
292
317
  - lib/farce/internal/transaction_conflict.rb
293
318
  - lib/farce/internal/transaction_freeze_guard.rb
294
319
  - lib/farce/internal/transaction_map_snapshot.rb
295
320
  - lib/farce/internal/undefined.rb
296
321
  - lib/farce/internal/unshared_lease.rb
297
322
  - lib/farce/internal/unshared_lease_pool.rb
323
+ - lib/farce/internal/unshared_pool_worker.rb
298
324
  - lib/farce/internal/unshared_queue_waiting.rb
299
325
  - lib/farce/internal/value_serialization.rb
300
326
  - lib/farce/internal/weak_map_value_modes.rb
@@ -318,8 +344,10 @@ files:
318
344
  - lib/farce/local/lru_map.rb
319
345
  - lib/farce/local/map.rb
320
346
  - lib/farce/local/molecule.rb
347
+ - lib/farce/local/pool.rb
321
348
  - lib/farce/local/priority_queue.rb
322
349
  - lib/farce/local/queue.rb
350
+ - lib/farce/local/scheduler.rb
323
351
  - lib/farce/local/scoped.rb
324
352
  - lib/farce/local/set.rb
325
353
  - lib/farce/local/sorted_set.rb
@@ -338,6 +366,7 @@ files:
338
366
  - lib/farce/mode_manager/smart_rule.rb
339
367
  - lib/farce/molecule.rb
340
368
  - lib/farce/mutable.rb
369
+ - lib/farce/null_port.rb
341
370
  - lib/farce/pool.rb
342
371
  - lib/farce/port.rb
343
372
  - lib/farce/priority_queue.rb
@@ -384,7 +413,8 @@ files:
384
413
  - lib/farce/strict/weak_set.rb
385
414
  - lib/farce/strict/weak_value_map.rb
386
415
  - lib/farce/system.rb
387
- - lib/farce/thread_scheduler.rb
416
+ - lib/farce/task.rb
417
+ - lib/farce/thread_executor.rb
388
418
  - lib/farce/timer_queue.rb
389
419
  - lib/farce/transaction.rb
390
420
  - lib/farce/transaction/atom.rb
@@ -417,8 +447,10 @@ files:
417
447
  - lib/farce/unshared/lru_map.rb
418
448
  - lib/farce/unshared/map.rb
419
449
  - lib/farce/unshared/molecule.rb
450
+ - lib/farce/unshared/pool.rb
420
451
  - lib/farce/unshared/priority_queue.rb
421
452
  - lib/farce/unshared/queue.rb
453
+ - lib/farce/unshared/scheduler.rb
422
454
  - lib/farce/unshared/set.rb
423
455
  - lib/farce/unshared/sorted_set.rb
424
456
  - lib/farce/unshared/timer_queue.rb