farce 0.2.0-java → 0.4.0-java

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 +35 -3
metadata CHANGED
@@ -1,13 +1,13 @@
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: java
6
6
  authors:
7
7
  - Konstantin Haase
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2026-10-11 00:00:00.000000000 Z
10
+ date: 2026-10-16 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  email:
13
13
  - konstantin.mailinglists@googlemail.com
@@ -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
  - lib/farce.rb
32
43
  - lib/farce/_yard/internal.rb
@@ -40,6 +51,7 @@ files:
40
51
  - lib/farce/abstract/counter.rb
41
52
  - lib/farce/abstract/duplicable_map.rb
42
53
  - lib/farce/abstract/exchanger.rb
54
+ - lib/farce/abstract/executor.rb
43
55
  - lib/farce/abstract/flag.rb
44
56
  - lib/farce/abstract/lazy.rb
45
57
  - lib/farce/abstract/lease.rb
@@ -49,6 +61,7 @@ files:
49
61
  - lib/farce/abstract/lru_map.rb
50
62
  - lib/farce/abstract/map.rb
51
63
  - lib/farce/abstract/molecule.rb
64
+ - lib/farce/abstract/pool.rb
52
65
  - lib/farce/abstract/port.rb
53
66
  - lib/farce/abstract/priority_queue.rb
54
67
  - lib/farce/abstract/queue.rb
@@ -65,6 +78,7 @@ files:
65
78
  - lib/farce/abstract/weak_set.rb
66
79
  - lib/farce/abstract/weak_value_map.rb
67
80
  - lib/farce/atom.rb
81
+ - lib/farce/backports.rb
68
82
  - lib/farce/class_mirror.rb
69
83
  - lib/farce/clock.rb
70
84
  - lib/farce/config.rb
@@ -77,6 +91,7 @@ files:
77
91
  - lib/farce/engine/jruby/lease_waiting.rb
78
92
  - lib/farce/engine/jruby/map.rb
79
93
  - lib/farce/engine/jruby/mutable_numeric_copy.rb
94
+ - lib/farce/engine/jruby/scheduler_synchronization.rb
80
95
  - lib/farce/engine/jruby/signal.rb
81
96
  - lib/farce/engine/jvm.rb
82
97
  - lib/farce/engine/jvm/concurrent_weak_registry.rb
@@ -89,14 +104,18 @@ files:
89
104
  - lib/farce/engine/jvm/types.rb
90
105
  - lib/farce/engine/ruby.rb
91
106
  - lib/farce/engine/ruby/3.4/fiber_scheduler.rb
107
+ - lib/farce/engine/ruby/3.4/null_port.rb
108
+ - lib/farce/engine/ruby/3.4/patch.rb
92
109
  - lib/farce/engine/ruby/3.4/port.rb
93
110
  - lib/farce/engine/ruby/3.4/ractor_methods.rb
94
111
  - lib/farce/engine/ruby/3.4/ractor_selector.rb
95
112
  - lib/farce/engine/ruby/3.4/vault.rb
113
+ - lib/farce/engine/ruby/4.0/null_port.rb
96
114
  - lib/farce/engine/ruby/4.0/port.rb
97
115
  - lib/farce/engine/ruby/4.0/ractor_methods.rb
98
116
  - lib/farce/engine/ruby/4.0/ractor_selector.rb
99
117
  - lib/farce/engine/ruby/4.0/vault.rb
118
+ - lib/farce/engine/ruby/4.1/null_port.rb
100
119
  - lib/farce/engine/ruby/4.1/port.rb
101
120
  - lib/farce/engine/ruby/4.1/ractor_methods.rb
102
121
  - lib/farce/engine/ruby/4.1/ractor_selector.rb
@@ -125,12 +144,14 @@ files:
125
144
  - lib/farce/engine/shared/lease_pool.rb
126
145
  - lib/farce/engine/shared/main_scheduler.rb
127
146
  - lib/farce/engine/shared/map_key_coordination.rb
147
+ - lib/farce/engine/shared/null_port.rb
128
148
  - lib/farce/engine/shared/parallel_scheduler.rb
129
149
  - lib/farce/engine/shared/port.rb
130
150
  - lib/farce/engine/shared/portable_bounded_map.rb
131
151
  - lib/farce/engine/shared/proxy_owner.rb
132
152
  - lib/farce/engine/shared/queue.rb
133
153
  - lib/farce/engine/shared/ractor_methods.rb
154
+ - lib/farce/engine/shared/ractor_selector.rb
134
155
  - lib/farce/engine/shared/rebindable.rb
135
156
  - lib/farce/engine/shared/strict_atom.rb
136
157
  - lib/farce/engine/shared/strict_map.rb
@@ -169,6 +190,7 @@ files:
169
190
  - lib/farce/envelope.rb
170
191
  - lib/farce/error.rb
171
192
  - lib/farce/exchanger.rb
193
+ - lib/farce/extension.rb
172
194
  - lib/farce/flag.rb
173
195
  - lib/farce/integrations.rb
174
196
  - lib/farce/integrations/active_support.rb
@@ -217,6 +239,8 @@ files:
217
239
  - lib/farce/internal/lease_pool_state.rb
218
240
  - lib/farce/internal/lease_state.rb
219
241
  - lib/farce/internal/lease_waiting.rb
242
+ - lib/farce/internal/local_executor_methods.rb
243
+ - lib/farce/internal/local_scheduled_task.rb
220
244
  - lib/farce/internal/managed_queue.rb
221
245
  - lib/farce/internal/map_value_modes.rb
222
246
  - lib/farce/internal/marshal_support.rb
@@ -242,12 +266,14 @@ files:
242
266
  - lib/farce/internal/strict_lease_map.rb
243
267
  - lib/farce/internal/strict_lease_pool.rb
244
268
  - lib/farce/internal/thread_pool.rb
269
+ - lib/farce/internal/thread_pool_supervisor.rb
245
270
  - lib/farce/internal/transaction_conflict.rb
246
271
  - lib/farce/internal/transaction_freeze_guard.rb
247
272
  - lib/farce/internal/transaction_map_snapshot.rb
248
273
  - lib/farce/internal/undefined.rb
249
274
  - lib/farce/internal/unshared_lease.rb
250
275
  - lib/farce/internal/unshared_lease_pool.rb
276
+ - lib/farce/internal/unshared_pool_worker.rb
251
277
  - lib/farce/internal/unshared_queue_waiting.rb
252
278
  - lib/farce/internal/value_serialization.rb
253
279
  - lib/farce/internal/weak_map_value_modes.rb
@@ -271,8 +297,10 @@ files:
271
297
  - lib/farce/local/lru_map.rb
272
298
  - lib/farce/local/map.rb
273
299
  - lib/farce/local/molecule.rb
300
+ - lib/farce/local/pool.rb
274
301
  - lib/farce/local/priority_queue.rb
275
302
  - lib/farce/local/queue.rb
303
+ - lib/farce/local/scheduler.rb
276
304
  - lib/farce/local/scoped.rb
277
305
  - lib/farce/local/set.rb
278
306
  - lib/farce/local/sorted_set.rb
@@ -291,6 +319,7 @@ files:
291
319
  - lib/farce/mode_manager/smart_rule.rb
292
320
  - lib/farce/molecule.rb
293
321
  - lib/farce/mutable.rb
322
+ - lib/farce/null_port.rb
294
323
  - lib/farce/pool.rb
295
324
  - lib/farce/port.rb
296
325
  - lib/farce/priority_queue.rb
@@ -337,7 +366,8 @@ files:
337
366
  - lib/farce/strict/weak_set.rb
338
367
  - lib/farce/strict/weak_value_map.rb
339
368
  - lib/farce/system.rb
340
- - lib/farce/thread_scheduler.rb
369
+ - lib/farce/task.rb
370
+ - lib/farce/thread_executor.rb
341
371
  - lib/farce/timer_queue.rb
342
372
  - lib/farce/transaction.rb
343
373
  - lib/farce/transaction/atom.rb
@@ -370,8 +400,10 @@ files:
370
400
  - lib/farce/unshared/lru_map.rb
371
401
  - lib/farce/unshared/map.rb
372
402
  - lib/farce/unshared/molecule.rb
403
+ - lib/farce/unshared/pool.rb
373
404
  - lib/farce/unshared/priority_queue.rb
374
405
  - lib/farce/unshared/queue.rb
406
+ - lib/farce/unshared/scheduler.rb
375
407
  - lib/farce/unshared/set.rb
376
408
  - lib/farce/unshared/sorted_set.rb
377
409
  - lib/farce/unshared/timer_queue.rb